[Fontinst] Mapping all diacritics to actual glyphs rather than composites
Lars.Hellstrom at residenset.net
Sat Jan 16 23:33:39 CET 2010
Christopher Adams skrev:
> What I don't understand is why A/E/a/eogonek and gbreve are not being taken
> directly from the font, while, for example, iacute and acircumflex are.
First note that "the font", as it gets defined in a PS or PDF file, is
the *base* font; all glyphs will have to be expressed in terms of slots
in this font.
Second, look in the MTX file for the base font you're feeding into
\installfont, and compare the entries for e.g. iacute and eogonek. Most
likely, one is like
and the other is either missing or like
The first says an iacute glyph appears in slot 237 of that font (named
in second argument). The second says an eogonek glyph is currently
unencoded (but might become available if the font is reencoded). The
first really defines an iacute glyph to fontinst, and the second
doesn't. Hence llbuild.mtx will later find eogonek undefined, and do
its best to provide one.
(For various arcane reasons, which are related to the AFM CC commands
Hilmar wrote about off-list, the \setscalednotglyph command *does*
define a pseudoglyph eogonek-not, but that's probably of no use to you.
There's still no slot in a font defined through any .map file which
corresponds to the proper eogonek defined in the PFB.)
The main point is that fontinst can't reach into the bowels of a font
and access arbitrary fonts therein, it can only make use of glyphs that
the DVI drivers assign to some slot of some font.
This point is somewhat blurred by the fact that it is often fontinst
that manufactures the mapfile lines that told the drivers about the
fonts in the first place, but in this area fontinst merely follows
orders, so if you didn't tell it to reencode a base font so that its
eogonek appears in some slot, then the eogonek of that base font won't
be available (as far as \installfont is concerned).
More information about the fontinst