On Thu, 10 Sep 2009, Linda W wrote: > (If you can't read this *_in HTML_*, you are deprived, and maybe, in the > internet "3rd world", my condolences, as documents structure can't be > properly represented in plain text, (unless your eyes have built-in > XML/HTML or LaTeX code interpretation).
I think that your claim is ungrounded, the following is the same document in plain text. • Contents □ Current Problem □ Desired Enhancement 1: Font Lists, acting as fall-through backups for missing chars □ Desired Enhancement 2: Support of Font Families Current problem: (If you can't read this in HTML, you are deprived, and maybe, in the internet "3rd world", my condolences, as documents structure can't be properly represented in plain text, (unless your eyes have built-in XML/HTML or LaTeX code interpretation). I've been trying to use better fonts and Unicode usage in my work (email, web pages, etc). Of source, using Vim for just about everything (Does anyone know of a Thunderbird extension to automatically allow or call Vim to edit dir Thunderbird composition --- especially when one switches into 'Source(HTML)' mode...that editor *sucks* big-time..., but I digress. I really am getting discouraged with the fonts available to me in monospaced fonts. The only ones that look halfway readable are the Lucida family...followed by the Monospace 821. . New courier is just too thin. Consolas isn't much better (a free font download from MS, no less!) My font (in Truetype or OpenType) list has: several monospace fonts that specialize in the CJK block, but non of those have great latin rendering and little coverage for Unicode blocks outside of the CJK blocks those include: (all the 'che variations seem to be the monospace ones) Batang, Doton Gulim Gunshuh, Jurchen Krystoid, MingLiU, MS Gothic, and MS Mincho. The few that specialize in the Hebrew block, don't help me much: Fixed Miriam Transparent, Rod (& Rod Transparent), neither the one in Arabic (Simplified Arabic Fixed). Non Unicode, symbol-only or raster fonts I won't mention in this listing. Among the Unicode fonts, ones that have western font and western usage (symbols, etc) coverage , I list the number of Unicode blocks they cover as well as total characters in the font. There are only 9 choices on my system, (though I describe one's coverage in detail with the lament that for some unknown reason, it isn't offered on the list, though it's 2nd plane 'cousin' is): ┌─────────────────────┬──────┬───────────┬──────────────────────────────┐ │Name │Blocks│Total-Chars│ Comments │ ├─────────────────────┼──────┼───────────┼──────────────────────────────┤ │Andale Mono │22, │654 │ │ ├─────────────────────┼──────┼───────────┼──────────────────────────────┤ │Bitstream Vera Sans │12 │256 │ │ │Mono │ │ │ │ ├─────────────────────┼──────┼───────────┼──────────────────────────────┤ │Code2002 │11 │20,409 │ [sic/broken] this entry is │ │ │(CJK) │ │broken │ └─────────────────────┴──────┴───────────┴──────────────────────────────┘ Note on Code2002: It is the 3rd font in a 3 font series (Code2000, Code2001, and Code2002, all available for very low (as low as $0) price (shareware(non-crippled)) or freeware from http://www.code2000.net/). All are monospaced fonts. Code2000 was for our first 64K (MS's initial UCS-2 set for NT4) code plane. When discovering 64K was no where near enough, more planes were added. Code2001 is for Unicode Plane 1 and Code2002 is for plane 2. Code 2000 -- the one that contains the latin characters doesn't show up as a choice, though it should -- they are all monospaced fonts; Code2002 is useless for Latin fonts (has 95/128 of Basic, 1/128 of Ext-A, 1/208 of Ext-B 96/129 of Supplement-1, 1/80 of Spacing modifiers), vs "Code2000" which is designed to cover Plane 1 (first 64K), which has 118 blocks and 54,068 chars). It's not the most excellent looking (at 1024^2 points per char) it was designed with less resolution than MS's TTF fonts, like Lucida Console (@4096^2 ppc), BUT on the list of unicode fonts it's pretty darn good, and probably 2nd best after the top MS fonts (which have no where near the coverage -- it could be there's a tradeoff -- 4x4 or 16 times the resolution/char OR 54,068/663 = 81 times the coverage. Of Latin usable chars, it has ☆ all alphabetic presentation forms (58/58), ☆ all arrows(112/112), ☆ 95/128 of Basic Latin ☆ all the Box drawing chars (128/128), ☆ all Braille Patterns (256/256) ☆ Combining diacriticals [like accents over chars) (112/112) ☆ Combining for symbols (28/33) & supplement (13/41) & half marks(4/7) ☆ control pics (symbols for the control characters below like "LF", TAB, CR"; 39/39); ☆ 22/22 Currency symbols 174/174 Dingbats (all the special symbols designed by the designer "Zapf" last century) ☆ 160/160 Enclosed alpha numerics ☆ 106/107 General Puncuntuation ☆ Greek symbols (2 blocks: 134/134+233/233) ☆ halfwidth and full width forms (including !!colon!! that you can put in Windows (and linux) filenames: "file:foobar" (the character after 'file' and before 'foobar' is a single character composed of a colon and an embeded space. It is legal in WinXP and above and linux (and likely MAC) if you are using UTF-8. It displays as a colon followed by a space! So in a linux shell, you don't need to quote it -- it's not a space breaking character! ☆ Then 6 Latin extended blocks "extended additional(256/25), A(128/128) B(208/208) C(29/29), D(114/ 114) & Latin-1 Supple(96/128) ☆ Letter like symbols (like the C for Centigrade, or 'c/o' as a single char(80/80) ☆ Mathematical Operators (256/256), Math symbols A (44/44), B(128/128) ☆ Misc Symbols(183/191), Misc Sym+Arrows(82/82) ☆ Misc Technical (228/232) ☆ Number Forms (Roman numberals, fractions, et al) (54/54) ☆ OCR (11/11) ☆ Phonetic Extensions (128/128) & Supplements (64/64) (for pronuncation) ☆ Spacing modifiers (including small spaces, the ever used  , (80/80) ☆ Superscripts/subscripts (29/34) ☆ Supplemental: Arrows A(16/16), Arrows B(128/128), Math(256/256) and Punctuation(49/49) AND a bunch of foreign languages symbols ... but due to some bug, somewhere, and I don't think it is in Vim, since it is also in 'SecureCRT' (http://www.vandyke.com/products/securecrt/index.html), my Win->lin TTY program (that also supports UTF-8) has same font list as Vim and includes Code2002, but not Code 2000. Grrr! It seems like it's some bit not set right somewhere, so Windows isn't displaying the correct font list...or, it's JAMSB (Just another MicroSoft Bug) :-). Continuing, a few last fonts...other fonts: ┌─────────────────────┬────────────┬────────────────────────────────────┐ │Name │blocks,chars│ Comments │ ├─────────────────────┼────────────┼────────────────────────────────────┤ │Courier New │(28, 1230) │but this font isn't easy on the eyes│ ├─────────────────────┼────────────┼────────────────────────────────────┤ │DejaVu Sans Mono │(39, 2900) │ │ ├─────────────────────┼────────────┼────────────────────────────────────┤ │Everson Mono │(67, 6391) │2nd best coverage, poor readability)│ ├─────────────────────┼────────────┼────────────────────────────────────┤ │Lucida Console │(22, 663) │Best readable (IMO) │ ├─────────────────────┼────────────┼────────────────────────────────────┤ │Lucida SansTypewriter│(12, 240) │fairly good read, taller/thinner │ └─────────────────────┴────────────┴────────────────────────────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Desired Enhancement 1: Font Lists, acting as fall-through backups for missing chars I'd first like something like the 'guifontset' option work to automatically use successive entries on the font list as 'fallback' entries if the character being displayed isn't in the currently selected font. That way, I can have my primary, and a backup, and, possibly a catchall, though I could see this being also used to support multiple families -- like if I write in Cherokee, I could have a Cherokee font in my list, and when I typed in that font, Gvim would automatically fall through the fonts that don't have those chars mapped, and would display chars from a font with those chars mapped. I would expect that the fonts would be examined once, on startup, with maybe a 'cache-file' being created, of the mappings (if the examination process takes any appreciable length of time). Once examined, the mappings could be used automatically at runtime. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Desired Enhancement 2: Support of Font Families If this were supported, one could actually specify what font to use for what named Unicode block. The names of the blocks are published and can be tested. Perl has had this support for a few years, for example (man perlunicode). All of the information on the ranges and glyph names can be found on "http://www.unicode.org " . The data files are in the directory "http://www.unicode.org/Public/UNIDATA/". Under that, Scripts.txt tells the different scripts one can write in. An excellent reference for all of this (which seems to be 'the Bible' for fonts and encodings is the book, "Fonts & Encodings by Yannis Haralambous". It has all of the URLS in there as well as usage of the tools to deal with the fonts. One tool (2 tools together, actually), I might recommend for exploring the different font mappings (it can allow you to create a "Composite" mapping using all the fonts on your system, of as many of the Unicode characters as possible are tools "Babelmap and Babelpad". Best of all, they are Free! Bablemap can be used to create an XML file that maps fonts to each of the scripts (well, all of the scripts you have fonts for, anyway). It's similar to the Windows "Character Map" program, but on steroids! It's only on Windows (Mac and X users have other tools mentioned in the book), and supports up to Unicode V 5.1.0 [http://www.unicode.org/versions/Unicode5.1.0/ ]. It's website is "http//:www.BabelStone.co.uk/Software/BabelMap.html". Using a config tool like that, one could define a complete set of fonts to use within another program (like Vim!) to provide font mapping. I know Enhancement 2 might be a ways away, but would #1 be doable in any near time frame? Thanks, Linda -- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_use" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---