[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

TrueType & Fontname




More than a year ago I've written about fontnames for TrueType fonts:

   The only problem is the naming of the fonts: Consider the font
   Antqua.ttf . It identifies itself as `Book Antiqua Regular' and has
   been created by Monotype.

   Looking into the naming scheme I came up with maqr8[rt], but this
   is apparently for a PostScript font having the same name and
   creator. I don't have this font but I'm quite sure that neither the
   outlines nor the metrics are absolutely identical for various
   reasons mainly due to conversion from one format to another.

   With other words, if I write a document with a TeX setup having a
   TrueType maqr8 font, I will get a different result processing it on
   a TeX setup having a PostScript maqr8 font (besides checksum
   errors).

   What to do? I'm rather sure that there is a long list of fonts
   which exist in both TT and PS formats.

   The main question is: Should we treat TrueType and PostScript fonts
   identically?

Meanwhile I believe that treating the fonts equal in case the
PostScript font name in the TrueType font is identical to the name of
a Type 1 font is OK.  At least it will simplify life.

Just an addition about TTF and PS versions of the same fonts: AFAIK
the major font design companies use software to create fonts which
stores the master font files in a format which is neither TT nor PS
but rather suited to be converted into both.

I will now send additions to the fontname scheme to this list from
time to time for discussion (and eventual inclusion into the official
distribution).  Starting point is my ttf2tfm program, which uses a
generic mapping file called T1-WGL4.enc to map the available glyphs in
the TTFs (usually a subset of the WGL4 character set) to T1.  So both
the raw and virtual encoding is T1 already -- I will use `8r' and `8t'
for consistency.

Nevertheless, my major concern is how to handle CJK subfonts (i.e.,
splitting large Asian character sets into subfont with 256 characters
each).  Here my proposal for subfonts:

  `x' S TT W V XX

S   The supplier.
TT  The typeface name.  Must also include the character set.
W   The weight.
V   The variant.
XX  A running digit indicating the subfont.

Since the available typeface character combinations are almost
exhausted already, I suggest to use completely new mapping files if
the first letter is `x', e.g. `xsupp.map', `xtypface.map',
`xweight.map', and `xvariant.map' (the latter two would not be really
necessary but it simplifies parsing).

Example:

  mincho.ttc for Japanese

    This font contains the JIS X 0208 character set encoded originally
    in Unicode.  Since this is not useful for TeX for various reasons,
    ttf2tfm reencodes the font to the EUC character encoding.  The
    vendor is Microsoft, its PostScript name is `MS-Mincho', its
    weight is `regular'. [TTC indicates that it is a TrueType
    collection, containing more than one TTF.  In this case, some
    non-CJK characters have either `fullwidth' or proportional widths.
    `Fullwidth' means that e.g. ASCII characters have the same width
    as CJK glyphs.  This is of no importance here since the non-CJK
    glyphs usually are of poor quality.]

  Let's assume that `mc' indicates MS-Mincho in EUC encoding.

  So subfont names according to my suggestion would be

    x j mc r + running digit, i.e. xjmcr01, xjmcr02, ... xjmcr32

  In a similar fashion, subfonts based on CID-keyed PostScript fonts
  could be named (at home I have something working for ghostscript. It
  is necessary to add just one line to texps.pro...)  Just recently
  they have become freely available together with Acrobat 4.


Please comment.


    Werner


PS: Two questions about the fontname.texinfo:  I can't find an
explanation what e.g. the entry `- jknappen' means.  Please help.
Similarly, I'm missing an explanation why so many fonts have `__' as
the typeface.  How will this be handled?  Answers to these two
questions should probably be added to fontname.texinfo.