problem with Thai font

Lars Hellström Lars.Hellstrom@math.umu.se
Thu, 3 Aug 2000 13:13:39 -0400


At 01.50 +0200 0-07-30, Werner LEMBERG wrote:
>Dear font experts,
>
>
>I'm trying to create an intelligent Thai encoding for TeX which uses
>ligatures.  This is not a trivial task -- I've already written a file
>`thai.enc' intended for use with afm2tfm which is 43kByte large and
>contains 486 LIGKERN commands (either `|=:>' or `=:|>').
>
[snip]
>
>Inspite of TeX's short patterns the problem can be solved by
>introducing an additional `alias group', i.e., a group of glyphs which
>are identical to the glyphs in the original group but have different
>glyph indices.  With other words, I need that the PostScript encoding
>vector puts glyph `/foo' twice at positions x and y, and my TeX
>encoding vector then accesses glyph index x as `/bar' and glyph
>index y as `/bar1'.  But due to the reasons explained above this
>fails.
>
>Is there any clean solution to this?  What about fontinst?  Does it
>provide a similar restriction?  Or is the only solution to either hack
>afm2tfm or to write the VPL file manually?

There are no such mapping restrictions (you can put a glyph in as many
slots as you want) in fontinst v1.9, and it also provides a mechanism for
renaming glyphs.

fontinst v1.8 (and before) has a bug which may be a problem for you:
although you can put a glyph in as many slots as you like, fontinst will
only remember that it has been put in one of these slots when it is writing
the ligkern program for another slot. This means that a
   \ligature{LIG}{bar}{baz}
might merely generate a
   LIG D x D z
for the bar in slot x, although it should also have generated a
   LIG D y D z
for the bar in slot y. It is possible to work around this bug by declaring
the same glyph under several names, e.g.
  \setglyph{bar1} \glyph{bar}{1000} \endsetglyph
but the bug is fixed in fontinst v1.9.

Lars Hellström