Hagen - Pragma ADE
Hagen - Pragma ADE Hagen - Pragma ADE
146 Hooks
A Appendix A.1 The tfm file The (binary) tfm file is not human readable but can be turned into a verbose property list which is not that hard to understand. tftopl texnansi-lmr10.tfm Here is an excerpt from the data file. It starts with some general properties of the font. The O means that the value is in octal while the R is a real. Keep in mind that T E X has no datatype ‘real’ so internally it is just integers representing scaled points. (FAMILY LMROMAN10) (FACE O 352) (CODINGSCHEME LY1 ENCODING /TEX'N'ANSI, Y&Y/) (DESIGNSIZE R 10.0) (COMMENT DESIGNSIZE IS IN POINTS) (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) (CHECKSUM O 4720464277) A text font has the following font dimensions: (FONTDIMEN (SLANT R 0.0) (SPACE R 0.333333) (STRETCH R 0.166667) (SHRINK R 0.111112) (XHEIGHT R 0.43055) (QUAD R 1.0) (EXTRASPACE R 0.111112) ... ) Kerns and ligatures are packed into a table that is basically a sequence of labelled entries. Here we see the entry for the character f which has three ligatures: ff, fi and fl. Because ligatures can be chained, octal slot 13 will have ligature entries for ffl and ffi. (LIGTABLE ... (LABEL C f) (LIG C f O 13) (LIG C i O 14) 147 Appendix
- Page 98 and 99: 96 Features } This time the applica
- Page 100 and 101: 98 Features step 1 I don't wanna kn
- Page 102 and 103: 100 Features If you’re lucky your
- Page 104 and 105: 102 Scripts
- Page 121 and 122: However, when we go the other way,
- Page 124: 122 Math the regular a--z character
- Page 127 and 128: While there are lots of text fonts,
- Page 129 and 130: 8 Extensions 8.1 Introduction One o
- Page 131: [default] [itlc=5] This is demonstr
- Page 134 and 135: 132 Extensions \definefontfeature [
- Page 136 and 137: 134 Extensions characters to improv
- Page 138 and 139: 136 Extensions U+00079 0.05 y 0.05
- Page 140 and 141: 138 Extensions protrusion classes T
- Page 142 and 143: 140 Extensions [fonts.composing.def
- Page 144 and 145: 142 } Extensions top = { x = -250,
- Page 146 and 147: 144 Extensions
- Page 150 and 151: 148 ) Appendix (LIG C l O 10) (KRN
- Page 152 and 153: 150 ) Appendix (KRN O 177 R 0.056)
- Page 154 and 155: 152 Appendix Notice Copyright 2003-
- Page 156 and 157: 154 Appendix ... KPX seven.prop hyp
- Page 158 and 159: 156 Appendix name = , features = ,
- Page 160 and 161: 158 Appendix [] = "", ... default =
- Page 162: 160 Appendix A.10 Discretionary nod
A Appendix<br />
A.1 The tfm file<br />
The (binary) tfm file is not human readable but can be turned into a verbose property<br />
list which is not that hard to understand.<br />
tftopl texnansi-lmr10.tfm<br />
Here is an excerpt from the data file. It starts with some general properties of the font.<br />
The O means that the value is in octal while the R is a real. Keep in mind that T E X has no<br />
datatype ‘real’ so internally it is just integers representing scaled points.<br />
(FAMILY LMROMAN10)<br />
(FACE O 352)<br />
(CODINGSCHEME LY1 ENCODING /TEX'N'ANSI, Y&Y/)<br />
(DESIGNSIZE R 10.0)<br />
(COMMENT DESIGNSIZE IS IN POINTS)<br />
(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)<br />
(CHECKSUM O 4720464277)<br />
A text font has the following font dimensions:<br />
(FONTDIMEN<br />
(SLANT R 0.0)<br />
(SPACE R 0.333333)<br />
(STRETCH R 0.166667)<br />
(SHRINK R 0.111112)<br />
(XHEIGHT R 0.43055)<br />
(QUAD R 1.0)<br />
(EXTRASPACE R 0.111112)<br />
...<br />
)<br />
Kerns and ligatures are packed into a table that is basically a sequence of labelled entries.<br />
Here we see the entry for the character f which has three ligatures: ff, fi and<br />
fl. Because ligatures can be chained, octal slot 13 will have ligature entries for ffl and<br />
ffi.<br />
(LIGTABLE<br />
...<br />
(LABEL C f)<br />
(LIG C f O 13)<br />
(LIG C i O 14)<br />
147<br />
Appendix