Hagen - Pragma ADE
Hagen - Pragma ADE Hagen - Pragma ADE
30 Modes glyph 256 font 42: U+00074: t glyph 256 font 42: U+00065: e glyph 256 font 42: U+00073: s glyph 256 font 42: U+00074: t userskip 1.9072 - 0.9536 + 0.6357 glyph 256 font 42: U+00042: B glyph 256 font 42: U+0004C: L glyph 256 font 42: U+00041: A glyph 256 font 42: U+00074: t glyph 256 font 42: U+00065: e glyph 256 font 42: U+00073: s glyph 256 font 42: U+00074: t Figure 2.2 The text ‘test BLAtest’ converted to nodes. In addition to hyphenation and kerning we can have ligatures. The list in figure 2.4 shows that we get a reference to a ligature in the glyph node but that the components are still known. This figure also demonstrates that the ligature is build in steps. A.10 If we insert an explicit \discretionary command, we see in figure 2.5 that we get three variants. In figure 2.6 we render some Dutch words and these have quite some ligatures. So, we have hyphenation, ligature building and kerning and to some extent these mechanisms hook into each other. This process is driven by information stored in the font and rules related to the language. The hyphenation happens first, so the builder just sees discretionary nodes and needs to act properly on them. Although languages play an important role in formatting the text, for the moment we can forget about that. This leaves the font. As we already mentioned in a previous chapter, in ConT E Xt we use Unicode internally. This also means that fonts are organized this way. By default the glyph representation of a Unicode character sits in the same slot in the glyph table. All additional glyphs, like
glyph 256 font 33: U+00074: t glyph 256 font 33: U+00065: e glyph 256 font 33: U+00073: s glyph 256 font 33: U+00074: t userskip 1.9072 - 0.9536 + 0.6357 glyph 256 font 33: U+00042: B glyph 256 font 33: U+0004C: L glyph 256 font 33: U+00041: A userkern -0.1055 glyph 256 font 33: U+00074: t disc glyph 256 font 33: U+00065: e glyph 256 font 33: U+00073: s glyph 256 font 33: U+00074: t prebreak : glyph 0 font 33: U+0002D: - Figure 2.3 The text ‘test BLAtest’ converted to nodes, hyphenated and kerned. ligatures or alternates are pushed in the private unicode space. This is why in the lists shown in the figures the ligatures have a private Unicode number. The basic mode of operation in the builder in LuaT E X is as follows: • hyphenate the node list • build ligatures • inject kerns • optionally break into lines In traditional T E X the first step is not that independent. There hyphenation takes place when the text is broken into lines, and only in places that are candidate for such a break. In LuaT E X the whole text is hyphenated. This has the advantage that the steps 31 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 20 and 21: 18 Modes raw tfm normalized tfm raw
- 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 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
- Page 70 and 71: 68 F -0.492 eatures result ffi feat
- Page 72 and 73: 70 Features font 80: lmroman10-regu
- Page 74 and 75: 72 Features font 46: cambria.ttf @
- Page 76 and 77: 74 Features } } This goodie file is
- Page 78 and 79: 76 Features { name = "msbm10.tfm",
- Page 80 and 81: 78 Features \starttypescript[somefo
glyph 256<br />
font 33: U+00074: t<br />
glyph 256<br />
font 33: U+00065: e<br />
glyph 256<br />
font 33: U+00073: s<br />
glyph 256<br />
font 33: U+00074: t<br />
userskip<br />
1.9072 - 0.9536 + 0.6357<br />
glyph 256<br />
font 33: U+00042: B<br />
glyph 256<br />
font 33: U+0004C: L<br />
glyph 256<br />
font 33: U+00041: A<br />
userkern<br />
-0.1055<br />
glyph 256<br />
font 33: U+00074: t<br />
disc<br />
glyph 256<br />
font 33: U+00065: e<br />
glyph 256<br />
font 33: U+00073: s<br />
glyph 256<br />
font 33: U+00074: t<br />
prebreak : glyph 0<br />
font 33: U+0002D: -<br />
Figure 2.3 The text ‘test BLAtest’ converted<br />
to nodes, hyphenated and kerned.<br />
ligatures or alternates are pushed in the private unicode space. This is why in the lists<br />
shown in the figures the ligatures have a private Unicode number.<br />
The basic mode of operation in the builder in LuaT E X is as follows:<br />
• hyphenate the node list<br />
• build ligatures<br />
• inject kerns<br />
• optionally break into lines<br />
In traditional T E X the first step is not that independent. There hyphenation takes<br />
place when the text is broken into lines, and only in places that are candidate for such<br />
a break. In LuaT E X the whole text is hyphenated. This has the advantage that the steps<br />
31<br />
Modes