Hagen - Pragma ADE
Hagen - Pragma ADE Hagen - Pragma ADE
18 Modes raw tfm normalized tfm raw afm normalized afm raw otf normalized otf cached afm cached otf featured tfm featured afm featured afm featured otf featured otf Figure 2.1 Defining a font. scaled tfm scaled tfm scaled tfm scaled afm scaled afm scaled afm scaled otf scaled otf scaled otf engine tfm The first step is loading the font (or using the cached copy). From that a copy is made that has some additional data concerning the features set and from that a scaled copy is constructed. These copies share as much data as possible to keep the memory footprint as small as possible. The table that is passed to LuaT E X gets cleaned up afterwards. In practice the tfm loader only kicks in for creating virtual math fonts. The afm reader is used for Type1 fonts and as there is no free upgrade path from Type1 to OpenType for commercial fonts, that one will get used for older fonts. Of course most loading is done by the otf reader(s). A.8 The data in the final tfm table is organized in subtables. The biggest ones are the characters and descriptions tables that have information about each glyph. Later we will see more of that. There are a few additional tables of which we show two: properties and parameters. For the current font the first one has the following entries: autoitalicamount embedding subset encodingbytes 2 filename DejaVuSerif.ttf finalized true
fontname DejaVuSerif format truetype fullname DejaVu Serif hasitalics false hasmath false mathitalics false mode node name DejaVuSerif noglyphnames true nostackmath false psname DejaVuSerif textitalics false virtualized false The parameters table has variables that have been (re)assigned in the process. A period in the key indicates that we are dealing with a subtable, for instance expansion. ascender 6.83789pt descender 2.16211pt designsize 10pt expansion.auto false expansion.shrink 0 expansion.step 0 expansion.stretch 0 extendfactor 1000 factor 288 hfactor 288 mathsize 0 protrusion.auto false quad 9pt (em) scaledpoints 9pt scriptpercentage scriptscriptpercentage size 9pt slantfactor 0 slantperpoint 0pt (slant) spacing.extra 0.95361pt (extra_space extraspace) spacing.shrink 0.95361pt (space_shrink spaceshrink) spacing.stretch 1.43042pt (space_stretch spacestretch) spacing.width 2.86084pt (space) units 0.03125pt vfactor 288 xheight 4.67139pt (ex x_height) To give you an impression of what we are dealing with, the positional features are 19 Modes
- Page 1: explaining luatex and mkiv Fonts ou
- Page 4 and 5: 2 Contents 5.4 Goodies 73 5.5 Analy
- Page 6 and 7: 4 Contents
- Page 8 and 9: 6 Introduction In this manual we wi
- Page 10 and 11: 8 Font formats a b g l q . ; ? ffi
- Page 12 and 13: 10 Font formats When T E X ships ou
- Page 14 and 15: 12 A.4 A.3 Font formats multiple ac
- Page 16 and 17: 14 Font formats can be rules that t
- Page 18 and 19: 16 Font formats /fonts/tfm/vendor/t
- Page 22 and 23: 20 Modes shown next: kern cyrl dflt
- Page 24 and 25: 22 Modes ccmp cyrl mkd абвгде
- Page 26 and 27: 24 Modes dlig latn gag abcdefghijkl
- Page 28 and 29: 26 Modes liga latn nsm abcdefghijkl
- Page 30 and 31: 28 Modes salt latn mol abcdefghijkl
- Page 32 and 33: 30 Modes glyph 256 font 42: U+00074
- Page 34 and 35: 32 Modes glyph 256 font 33: U+00061
- Page 36 and 37: 34 Modes glyph 256 font 33: U+00065
- Page 38 and 39: 36 Modes optimizer that can apply a
- Page 40 and 41: 38 Modes ا خLJَ﮲ ف﮲َ step
- Page 42 and 43: 40 Modes dir +TRT glyph 256 font 49
- Page 44 and 45: 42 Modes and now we get: 123 normal
- Page 46 and 47: 44 Modes MkIV run can be faster tha
- Page 48 and 49: 46 Lookups \font \MyFontG = lmr12 s
- Page 50 and 51: 48 Lookups 3.4 Name Say that we wan
- Page 52 and 53: 50 Lookups We add another specifier
- Page 54 and 55: 52 Methods \definefont [MyFont] [Bo
- Page 56 and 57: 54 Methods } copyright = "ConTeXt d
- Page 58 and 59: 56 Features of all, all we get to s
- Page 60 and 61: 58 Features in base mode. A single
- Page 62 and 63: 60 Features accumulate within a wor
- Page 64 and 65: 62 Features features analyze=yes, c
- Page 66 and 67: 64 Features \definedfont[lmroman10-
- Page 68 and 69: 66 Features single substitutions or
fontname DejaVuSerif<br />
format truetype<br />
fullname DejaVu Serif<br />
hasitalics false<br />
hasmath false<br />
mathitalics false<br />
mode node<br />
name DejaVuSerif<br />
noglyphnames true<br />
nostackmath false<br />
psname DejaVuSerif<br />
textitalics false<br />
virtualized false<br />
The parameters table has variables that have been (re)assigned in the process. A<br />
period in the key indicates that we are dealing with a subtable, for instance expansion.<br />
ascender 6.83789pt<br />
descender 2.16211pt<br />
designsize 10pt<br />
expansion.auto false<br />
expansion.shrink 0<br />
expansion.step 0<br />
expansion.stretch 0<br />
extendfactor 1000<br />
factor 288<br />
hfactor 288<br />
mathsize 0<br />
protrusion.auto false<br />
quad 9pt (em)<br />
scaledpoints 9pt<br />
scriptpercentage <br />
scriptscriptpercentage <br />
size 9pt<br />
slantfactor 0<br />
slantperpoint 0pt (slant)<br />
spacing.extra 0.95361pt (extra_space extraspace)<br />
spacing.shrink 0.95361pt (space_shrink spaceshrink)<br />
spacing.stretch 1.43042pt (space_stretch spacestretch)<br />
spacing.width 2.86084pt (space)<br />
units 0.03125pt<br />
vfactor 288<br />
xheight 4.67139pt (ex x_height)<br />
To give you an impression of what we are dealing with, the positional features are<br />
19<br />
Modes