*

              Contents

          o


                      Current Problem <#Current_problem:>

          o


                      Desired Enhancement 1:   Font Lists, acting as
                      fall-through backups for missing chars
                      <#Fallback_Font_List>

          o


                      Desired Enhancement 2:   Support of Font Families
                      <#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 Mono        12      256
        
Code2002        11 (CJK)
        20,409    [sic/broken] this entry is 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
              &nbsp, (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
<http://www.unicode.org/Public/UNIDATA/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
<http://books.google.com/books?id=qrElYgVLDwYC&dq=books+%22fonts+%26+encodings%22&source=gbs_navlinks_s>
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/>
[http://www.unicode.org/versions/Unicode5.1.0/].  It's website is
"http//:www.BabelStone.co.uk/Software/BabelMap.html
<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




--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to