The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE
The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE The history of luaTEX 2006–2009 / v 0.50 - Pragma ADE
otf.replacements otf.sequences otf.singles show what glyphs are replaced (combines other trackers) show what glyph is replaced by one other Some other trackers might also come in handy: fonts.combining fonts.defining fonts.loading show what extra characters are added when forcing combined shapes show what fonts are dened show more details when a font is loaded (and cached) for the rst time We now show another way to track what happens with your text. Because this is rather verbose, you should only apply it to words. The second argument can be -1 (right to left), 0 (default) or 1 (left to right). The third argument can be invisible in the code because the font used for verbatim might lack the shapes. A font has a different ordering than Unicode because after all one character can have multiple representations, one shape can be used for multiple characters, or shapes might not have a Unicode point at all. In MkIV we push all shapes that have no direct relationship with Unicode to the private area so that TEX still sees them (hence the large numbers in the following examples). The next example uses Latin Modern. Here we apply the following features: \definefontfeature [latin-default] [mode=node,language=dflt,script=latn, liga=yes,calt=yes,clig=yes, kern=yes] \showotfcomposition {name:lmroman12regular*latin-default at 24pt} {0} {flinke fietser} features: analyze=yes, calt=yes, clig=yes, kern=yes, language=dflt, liga=yes, mode=node, script=latn result: flinke fietser 1: U+66:f U+6C:l U+69:i U+6E:n U+6B:k U+65:e [glue] U+66:f U+69:i [disc] U+65:e U+74:t U+73:s U+65:e U+72:r 252 Tracking
flinke fietser feature liga, lookup ls_l_8_s replacing U+0066 (f) upto U+006C (l) by ligature U+FB02 (f_l) 2: U+FB02:fl U+69:i U+6E:n U+6B:k U+65:e [glue] U+66:f U+69:i [disc] U+65:e U+74:t U+73:s U+65:e U+72:r flinke fietser feature liga, lookup ls_l_9_s replacing U+0066 (f) upto U+0069 (i) by ligature U+FB01 (f_i) 3: U+FB02:fl U+69:i U+6E:n U+6B:k U+65:e [glue] U+FB01:fi [disc] U+65:e U+74:t U+73:s U+65:e U+72:r flinke fietser feature kern, lookup pp_l_1_s inserting kern -42467.328 between U+006B (k) and U+0065 (e) 4: U+FB02:fl U+69:i U+6E:n U+6B:k [kern] U+65:e [glue] U+FB01:fi [disc] U+65:e U+74:t U+73:s U+65:e U+72:r flinke fietser The next example uses Arabtype. Here we apply the following features: \definefontfeature [arabtype-default] [mode=node,language=dflt,script=arab, init=yes,medi=yes,fina=yes,isol=yes, ccmp=yes,locl=yes,calt=yes, liga=yes,clig=yes,dlig=yes,rlig=yes, mark=yes,mkmk=yes,kern=yes,curs=yes] \showotfcomposition {arabtype*arabtype-default at 48pt} {-1} {} Tracking 253
- Page 204 and 205: } end And still it's not okay, sinc
- Page 206 and 207: eason why such code normally is not
- Page 208 and 209: Of course we can discuss until eter
- Page 210 and 211: some text some more When using Co
- Page 212 and 213: and the document itself is processe
- Page 214 and 215: setups and functions are assigned n
- Page 216: using some kind of api and history
- Page 226 and 227: In LuaTEX with ConTEXt MkIV support
- Page 228 and 229: • Designers (or programmers) may
- Page 230 and 231: 228 OpenType: too open?
- Page 232 and 233: cannot be grabbed and they make the
- Page 234 and 235: 232 It works!
- Page 236 and 237: when writing the result to le, TEX
- Page 238 and 239: 236 Virtual Reality
- Page 240 and 241: \start \textdir TLT one \bidilro tw
- Page 242 and 243: 240 Getting lost
- Page 244 and 245: using a few arabic fonts, some chin
- Page 246 and 247: The core data structure that we nee
- Page 248 and 249: table can contain information about
- Page 250 and 251: The ConTEXt cross reference mechani
- Page 252 and 253: of them. Each lookup has a detailed
- Page 256 and 257: features: analyze=yes, calt=yes, cc
- Page 258 and 259: feature mark, lookup ml_arab_l_16_s
- Page 260 and 261: للِ ه ِ feature init, lo
- Page 262 and 263: features: analyze=yes, calt=yes, cc
- Page 264 and 265: esult: 1: [+TRT] U+6DD: [-TRT]
- Page 266 and 267: 2: [+TRT] U+F01DD: [-TRT] The
- Page 268 and 269: Pro. Dr. Donld E. Knuth feature cal
- Page 270 and 271: 268 Tracking
- Page 272 and 273: The order in which this happens now
- Page 274 and 275: normalizers characters words fonts
- Page 276 and 277: local function hyphenation(head,tai
- Page 278 and 279: 276 The order of things
- Page 280 and 281: of LuaTEX Taco and I worked in para
- Page 282 and 283: Next we see (scaled) Latin Modern:
- Page 284 and 285: As you can see, it is possible to a
- Page 286 and 287: next: U+FF008 { => U+FF06E { => U+F
- Page 288 and 289: end } commands = { { "slot", 1, bas
- Page 290 and 291: (a,b) = (1.20,3.40) So we don't nee
- Page 292 and 293: } description = "SOLIDUS", directio
- Page 294 and 295: ⎧ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎩
- Page 296 and 297: 840 italic 60 top_accent (0,1020) f
- Page 298 and 299: 296 Unicode math
- Page 300 and 301: tex.print("access") else tex.print(
- Page 302 and 303: 300 User code
otf.replacements<br />
otf.sequences<br />
otf.singles<br />
show what glyphs are replaced (combines other trackers)<br />
show what glyph is replaced by one other<br />
Some other trackers might also come in handy:<br />
fonts.combining<br />
fonts.defining<br />
fonts.loading<br />
show what extra characters are added when forcing combined<br />
shapes<br />
show what fonts are dened<br />
show more details when a font is loaded (and cached) for the rst<br />
time<br />
We now show another way to track what happens with your text. Because this is rather<br />
verbose, you should only apply it to words. <strong>The</strong> second argument can be -1 (right to left),<br />
0 (default) or 1 (left to right). <strong>The</strong> third argument can be invisible in the code because the<br />
font used for verbatim might lack the shapes. A font has a different ordering than Unicode<br />
because after all one character can have multiple representations, one shape can be used<br />
for multiple characters, or shapes might not have a Unicode point at all. In MkIV we push<br />
all shapes that have no direct relationship with Unicode to the private area so that TEX still<br />
sees them (hence the large numbers in the following examples).<br />
<strong>The</strong> next example uses Latin Modern. Here we apply the following features:<br />
\definefontfeature<br />
[latin-default]<br />
[mode=node,language=dflt,script=latn,<br />
liga=yes,calt=yes,clig=yes,<br />
kern=yes]<br />
\showotfcomposition<br />
{name:lmroman12regular*latin-default at 24pt}<br />
{0}<br />
{flinke fietser}<br />
features: analyze=yes, calt=yes, clig=yes, kern=yes,<br />
language=dflt, liga=yes, mode=node, script=latn<br />
result:<br />
flinke fietser<br />
1: U+66:f U+6C:l U+69:i U+6E:n U+6B:k U+65:e [glue] U+66:f<br />
U+69:i [disc] U+65:e U+74:t U+73:s U+65:e U+72:r<br />
252 Tracking