Hagen - Pragma ADE
Hagen - Pragma ADE
Hagen - Pragma ADE
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
18<br />
Modes<br />
raw tfm<br />
normalized<br />
tfm<br />
raw afm<br />
normalized<br />
afm<br />
raw otf<br />
normalized<br />
otf<br />
cached afm<br />
cached otf<br />
featured<br />
tfm<br />
featured<br />
afm<br />
featured<br />
afm<br />
featured<br />
otf<br />
featured<br />
otf<br />
Figure 2.1 Defining a font.<br />
scaled tfm<br />
scaled tfm<br />
scaled tfm<br />
scaled afm<br />
scaled afm<br />
scaled afm<br />
scaled otf<br />
scaled otf<br />
scaled otf<br />
engine tfm<br />
The first step is loading the font (or using the cached copy). From that a copy is made<br />
that has some additional data concerning the features set and from that a scaled copy is<br />
constructed. These copies share as much data as possible to keep the memory footprint<br />
as small as possible. The table that is passed to LuaT E X gets cleaned up afterwards. In<br />
practice the tfm loader only kicks in for creating virtual math fonts. The afm reader is<br />
used for Type1 fonts and as there is no free upgrade path from Type1 to OpenType for<br />
commercial fonts, that one will get used for older fonts. Of course most loading is done<br />
by the otf reader(s).<br />
A.8 The data in the final tfm table is organized in subtables. The biggest ones are the<br />
characters and descriptions tables that have information about each glyph. Later<br />
we will see more of that. There are a few additional tables of which we show two:<br />
properties and parameters. For the current font the first one has the following entries:<br />
autoitalicamount <br />
embedding subset<br />
encodingbytes 2<br />
filename DejaVuSerif.ttf<br />
finalized true