Hagen - Pragma ADE
Hagen - Pragma ADE Hagen - Pragma ADE
90 Features local defaultfraction = 0.85 local compose = { DY = defaultfraction, -- uppercase compensation } return { name = "lucida-one", version = "1.00", comment = "Goodies that complement lucida.", author = "Hans and Mojca", copyright = "ConTeXt development team", compositions = { ["lbr"] = compose, ["lbi"] = compose, ["lbd"] = compose, ["lbdi"] = compose, } } Of course no one really needs this because OpenType Lucida fonts have replaced the Type1 versions. The next goodie table is dedicated to the de facto standard T E X font Latin Modern. There is a bit of history behind this file. When we started writing ConT E Xt there were not that many fonts available and so we ended up with a font system that was rather well suited for the predecessor of Latin Modern, called Computer Modern. And because these fonts came in design sizes the font system was made such that it could cope efficiently with many files in a font set. Although there is no additional overhead compared to small font sets, apart from more files, there is some burden in defining them. And, as they are the default fonts, these definitions slow down the initialization of ConT E Xt (which is due to the fact that the large typescript definitions were loaded and parsed). So, at some point the decision was made to kick out these definitions and move the burden of figuring out the right size to Lua. When Latin Modern is chosen as font the effect is the same when design sizes are enabled. But, instead of many definitions (one for each combination of size and style) we now have an option. A non-designsize typeface is defined as follows: \starttypescript [modern,modern-base] \definetypeface [\typescriptone] [rm] [serif] [modern] [default] \definetypeface [\typescriptone] [ss] [sans] [modern] [default] \definetypeface [\typescriptone] [tt] [mono] [modern] [default] \definetypeface [\typescriptone] [mm] [math] [modern] [default] \quittypescriptscanning \stoptypescript The designsize variant looks like this:
\starttypescript [modern-designsize] \definetypeface [\typescriptone] [rm] [serif] [latin-modern-designsize] [default] [designsize=auto] \definetypeface [\typescriptone] [ss] [sans] [latin-modern-designsize] [default] [designsize=auto] \definetypeface [\typescriptone] [tt] [mono] [latin-modern-designsize] [default] [designsize=auto] \definetypeface [\typescriptone] [mm] [math] [latin-modern-designsize] [default] [designsize=auto] \quittypescriptscanning \stoptypescript Of course there are accompanying typescripts that map the sans, serif, mono and math styles onto files. The designsize magic uses the following table. We show only part of the file, as it is in the ConT E Xt distribution. return { name = "latin modern", version = "1.00", comment = "Goodies that complement latin modern.", author = "Hans Hagen", copyright = "ConTeXt development team", mathematics = { tweaks = { aftercopying = { mathematics.tweaks.fixbadprime, -- prime is too low }, }, }, designsizes = { ["LMMathRoman-Regular"] = { ["4pt"] = "LMMath5-Regular@lmroman5-math", ... ["12pt"] = "LMMath12-Regular@lmroman12-math", default = "LMMath10-Regular@lmroman10-math" }, ["LMMathRoman-Bold"] = { -- not yet ready ... }, ["LMRoman-Regular"] = { ["4pt"] = "file:lmroman5-regular", ... ["12pt"] = "file:lmroman12-regular", default = "file:lmroman10-regular", }, 91 Features
- 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
- Page 82 and 83: 80 Features \setupbodyfont [mojcasf
- Page 84 and 85: 82 Features } normalweight = "extra
- Page 86 and 87: 84 Features "QF.waqf", "SKTH.waqf",
- Page 88 and 89: 86 Features featureset=smallcaps] O
- Page 90 and 91: 88 Features } }, When defining the
- Page 94 and 95: 92 Features } } ["LMRoman-Bold"] =
- Page 96 and 97: 94 Features In fact, in addition to
- 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
\starttypescript [modern-designsize]<br />
\definetypeface [\typescriptone]<br />
[rm] [serif] [latin-modern-designsize] [default] [designsize=auto]<br />
\definetypeface [\typescriptone]<br />
[ss] [sans] [latin-modern-designsize] [default] [designsize=auto]<br />
\definetypeface [\typescriptone]<br />
[tt] [mono] [latin-modern-designsize] [default] [designsize=auto]<br />
\definetypeface [\typescriptone]<br />
[mm] [math] [latin-modern-designsize] [default] [designsize=auto]<br />
\quittypescriptscanning<br />
\stoptypescript<br />
Of course there are accompanying typescripts that map the sans, serif, mono and math<br />
styles onto files. The designsize magic uses the following table. We show only part of<br />
the file, as it is in the ConT E Xt distribution.<br />
return {<br />
name = "latin modern",<br />
version = "1.00",<br />
comment = "Goodies that complement latin modern.",<br />
author = "Hans <strong>Hagen</strong>",<br />
copyright = "ConTeXt development team",<br />
mathematics = {<br />
tweaks = {<br />
aftercopying = {<br />
mathematics.tweaks.fixbadprime, -- prime is too low<br />
},<br />
},<br />
},<br />
designsizes = {<br />
["LMMathRoman-Regular"] = {<br />
["4pt"] = "LMMath5-Regular@lmroman5-math",<br />
...<br />
["12pt"] = "LMMath12-Regular@lmroman12-math",<br />
default = "LMMath10-Regular@lmroman10-math"<br />
},<br />
["LMMathRoman-Bold"] = { -- not yet ready<br />
...<br />
},<br />
["LMRoman-Regular"] = {<br />
["4pt"] = "file:lmroman5-regular",<br />
...<br />
["12pt"] = "file:lmroman12-regular",<br />
default = "file:lmroman10-regular",<br />
},<br />
91<br />
Features