nonstandard names for characters & reencoding

Melissa O'Neill
Wed, 17 Jun 1998 02:14:15 -0700 (PDT)

Vladimir Volovich writes:
> Some type1 fonts have nonstandard names for some characters. An
> example is /Ng vs /Eng, but there are a lot of other examples
> (including funny ones, e.g. /quilsinglleft instead of /guilsinglleft;
> /numero instead of /afii61352, etc, etc, etc).
> Fontinst is able to deal with this: if e.g. it sees that there is no
> /Ng in the AFM, it can use /Eng when creating vpl file.
> But it is not sufficient to use only virtual fonts (?): we also should
> use ReEncodeFont with some .enc file. But how can one specify there
> variants of glyph names? It is simply impossible to create a separate
> enc file for each font out there, because there are a LOT of them with
> various differences and variants. Maybe, an extension to dvips is
> needed to be able to specify there variants for some character names?
> Or maybe, i'm overlooking something?

In Adobe Technical Note 5089, _Glyph Naming for Type 1 Font Programs_,
Adobe strongly recommends fonts use consistent glyph names. Also,
Adobe's names for typical latin fonts can be found in Appendix E of
_The PostScript Language Reference Manual: 2nd Edition_.

Generally, if a font uses non-standard glyph names, I'd recommend
complaining to the vendor or fixing it yourself. Admittedly, this
requires some knowledge and tools to do (but is very quick when you
know how).

It is possible to make font reencoding smarter and understand synonyms
for glyphs (the PostScript code necessary is pretty straightforward),
but my gut feeling is that this is the wrong way to address the
problem. Then again, only yesterday I recommended that DVIPS's
reencoding behaviour be adjusted to work around other bugs, so perhaps
it could make similar sense to make a further change to work around
errant fonts.


P.S. Probably this thread would have been better suited to the tex-fonts
mailing list rather than the fontinst mailing list, since these are
general issues not restricted to fontinst.