Hagen - Pragma ADE
Hagen - Pragma ADE Hagen - Pragma ADE
28 Modes salt latn mol abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | salt latn nsm abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | salt latn rom abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | salt latn sks abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | salt latn ssm abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | salt latn tat abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | salt latn trk abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | tcom * * abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | tlig * * abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | trep * * abcdefghijklmnopqrstuvwxyz 1234567890 1/2 . , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / | This is clearly an OpenType font. Normally there are a default script and default language supported. If this is not the case you need to provide them as part of the featureset, otherwise there will be no features applied. 2.3 Base mode We talk of base mode processing when the font machinery is used that is built in LuaT E X. So what does this traditional mechanism provide? Before we discuss this, a somewhat simplified model of how T E X works has to be given. Say that we have the following input: \def\bla{BLA} test \bla test
This input gets translated into tokens and those tokens are either processed later or they become something else directly. Take the first line. Characters in the input have a so called catcode property that determines how the parser tokenized them. Effectively we therefore get something like this: and finally in the hash table there will be an entry for bla that has the meaning BLA expressed in three characters. The second line refers to \bla and in the process this macro gets expanded, so we get: Because the parser gobbles spaces after a macro name, there is no space before the second test. In practice there will be no intermediate list like this, because as soon as possible T E X will add something to a so called node list. When the moment is there, this list will be passed to the typesetting routine that constructs a horizontal list. Later this list can be converted into a horizontal box or broken into lines when it concerns a paragraph. In traditional T E X characters are stored into char nodes and the builder turns them into glyph nodes. In LuaT E X they start out as glyph nodes and the subtype number will flag them as glyphs. Any value larger than 255 is a signal that the list has been processed. The previous example leads to the list shown in figure 2.2. Here we have turned off inter-character kerning and hyphenation. When we turn that on, we get a slightly more complex list, as shown in figure 2.3. Hyphenation points are represented by discretionary nodes and these have pointers to a pre break, post break and replacement text. 29 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 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
- 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",
28<br />
Modes<br />
salt latn mol abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
salt latn nsm abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
salt latn rom abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
salt latn sks abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
salt latn ssm abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
salt latn tat abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
salt latn trk abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
tcom * * abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
tlig * * abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
trep * * abcdefghijklmnopqrstuvwxyz<br />
1234567890 1/2<br />
. , : ; ? ! ‹ › « » @ # $ % & * () [] {} + - = / |<br />
This is clearly an OpenType font. Normally there are a default script and default<br />
language supported. If this is not the case you need to provide them as part of the<br />
featureset, otherwise there will be no features applied.<br />
2.3 Base mode<br />
We talk of base mode processing when the font machinery is used that is built in LuaT E X.<br />
So what does this traditional mechanism provide?<br />
Before we discuss this, a somewhat simplified model of how T E X works has to be<br />
given. Say that we have the following input:<br />
\def\bla{BLA}<br />
test \bla test