summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-context.lua4
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-interfaces.lua2
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-tex.lua4
-rw-r--r--context/data/scite/context/scite-context-data-context.properties579
-rw-r--r--context/data/scite/context/scite-context-data-interfaces.properties1271
-rw-r--r--context/data/scite/context/scite-context-data-tex.properties272
-rw-r--r--context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json8
-rw-r--r--doc/context/documents/general/manuals/luametatex.pdfbin1269492 -> 1278862 bytes
-rw-r--r--doc/context/documents/general/manuals/ontarget.pdfbin29193 -> 319134 bytes
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-differences.tex14
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex10
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-math.tex526
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex19
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-nodes.tex3
-rw-r--r--doc/context/sources/general/manuals/metafun/metafun-effects.tex12
-rw-r--r--doc/context/sources/general/manuals/metafun/metafun.tex2
-rw-r--r--doc/context/sources/general/manuals/ontarget/ontarget-anchoring.tex1
-rw-r--r--doc/context/sources/general/manuals/ontarget/ontarget-math.tex1816
-rw-r--r--doc/context/sources/general/manuals/ontarget/ontarget.tex1
-rw-r--r--doc/context/sources/general/manuals/svg/svg-lmtx.tex26
-rw-r--r--fonts/data/keep/keep-latinmodern-math.otfbin733500 -> 0 bytes
-rw-r--r--fonts/data/keep/keep-texgyrepagella-math.otfbin601220 -> 0 bytes
-rw-r--r--metapost/context/base/mpxl/mp-cont.mpxl107
-rw-r--r--metapost/context/base/mpxl/mp-page.mpxl156
-rw-r--r--metapost/context/base/mpxl/mp-tool.mpxl16
-rw-r--r--scripts/context/lua/mtx-patterns.lua2
-rw-r--r--scripts/context/lua/mtx-pdf.lua1
-rw-r--r--scripts/context/lua/mtx-unicode.lua4
-rw-r--r--scripts/context/lua/mtxrun.lua48
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua48
-rw-r--r--scripts/context/stubs/unix/mtxrun48
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua48
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-cs.mkii10
-rw-r--r--tex/context/base/mkii/mult-fr.mkii15
-rw-r--r--tex/context/base/mkii/mult-pe.mkii14
-rw-r--r--tex/context/base/mkiv/anch-pos.lua13
-rw-r--r--tex/context/base/mkiv/char-def.lua312
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/font-osd.lua59
-rw-r--r--tex/context/base/mkiv/font-otc.lua52
-rw-r--r--tex/context/base/mkiv/lang-imp-indic.lua1017
-rw-r--r--tex/context/base/mkiv/lang-imp-serbian.lua113
-rw-r--r--tex/context/base/mkiv/lpdf-pda.xml18
-rw-r--r--tex/context/base/mkiv/lpdf-pdx.xml25
-rw-r--r--tex/context/base/mkiv/lpdf-pua.xml29
-rw-r--r--tex/context/base/mkiv/lpdf-xmp.lua7
-rw-r--r--tex/context/base/mkiv/math-act.lua2
-rw-r--r--tex/context/base/mkiv/math-ini.lua531
-rw-r--r--tex/context/base/mkiv/math-int.mkiv4
-rw-r--r--tex/context/base/mkiv/math-tag.lua3
-rw-r--r--tex/context/base/mkiv/mult-def.lua25
-rw-r--r--tex/context/base/mkiv/mult-low.lua60
-rw-r--r--tex/context/base/mkiv/mult-prm.lua173
-rw-r--r--tex/context/base/mkiv/node-ser.lua2
-rw-r--r--tex/context/base/mkiv/page-str.lua10
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24745 -> 24667 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin257662 -> 258099 bytes
-rw-r--r--tex/context/base/mkiv/strc-pag.lua4
-rw-r--r--tex/context/base/mkiv/syst-ini.mkiv2
-rw-r--r--tex/context/base/mkiv/typo-mar.lua4
-rw-r--r--tex/context/base/mkiv/util-sac.lua36
-rw-r--r--tex/context/base/mkiv/util-sql-tickets.lua2
-rw-r--r--tex/context/base/mkiv/util-sql.lua2
-rw-r--r--tex/context/base/mkiv/util-zip.lua30
-rw-r--r--tex/context/base/mkxl/anch-pos.lmt13
-rw-r--r--tex/context/base/mkxl/attr-ini.lmt10
-rw-r--r--tex/context/base/mkxl/back-exp-imp-mth.lmt27
-rw-r--r--tex/context/base/mkxl/colo-ini.mkxl10
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl4
-rw-r--r--tex/context/base/mkxl/driv-shp.lmt126
-rw-r--r--tex/context/base/mkxl/font-chk.lmt4
-rw-r--r--tex/context/base/mkxl/font-con.lmt85
-rw-r--r--tex/context/base/mkxl/font-imp-math.lmt42
-rw-r--r--tex/context/base/mkxl/font-imp-sanitize.lmt197
-rw-r--r--tex/context/base/mkxl/font-imp-tracing.lmt7
-rw-r--r--tex/context/base/mkxl/font-lib.mklx2
-rw-r--r--tex/context/base/mkxl/font-mat.mklx2
-rw-r--r--tex/context/base/mkxl/font-ogr.lmt5
-rw-r--r--tex/context/base/mkxl/font-otl.lmt45
-rw-r--r--tex/context/base/mkxl/font-ots.lmt5
-rw-r--r--tex/context/base/mkxl/font-pre.mkxl13
-rw-r--r--tex/context/base/mkxl/font-tfm.lmt2
-rw-r--r--tex/context/base/mkxl/font-vfc.lmt2
-rw-r--r--tex/context/base/mkxl/lang-def.mkxl6
-rw-r--r--tex/context/base/mkxl/lang-tra.lmt160
-rw-r--r--tex/context/base/mkxl/lang-tra.mkxl58
-rw-r--r--tex/context/base/mkxl/libs-imp-zint.lmt64
-rw-r--r--tex/context/base/mkxl/libs-imp-zint.mkxl90
-rw-r--r--tex/context/base/mkxl/lpdf-emb.lmt2
-rw-r--r--tex/context/base/mkxl/lpdf-lmt.lmt11
-rw-r--r--tex/context/base/mkxl/lpdf-rul.lmt24
-rw-r--r--tex/context/base/mkxl/lpdf-xmp.lmt11
-rw-r--r--tex/context/base/mkxl/math-acc.mklx143
-rw-r--r--tex/context/base/mkxl/math-act.lmt634
-rw-r--r--tex/context/base/mkxl/math-ali.mkxl19
-rw-r--r--tex/context/base/mkxl/math-def.mkxl22
-rw-r--r--tex/context/base/mkxl/math-del.mkxl4
-rw-r--r--tex/context/base/mkxl/math-dim.lmt10
-rw-r--r--tex/context/base/mkxl/math-fbk.lmt312
-rw-r--r--tex/context/base/mkxl/math-fen.mkxl473
-rw-r--r--tex/context/base/mkxl/math-frc.lmt136
-rw-r--r--tex/context/base/mkxl/math-frc.mkxl346
-rw-r--r--tex/context/base/mkxl/math-ini.lmt446
-rw-r--r--tex/context/base/mkxl/math-ini.mkxl1050
-rw-r--r--tex/context/base/mkxl/math-int.mkxl99
-rw-r--r--tex/context/base/mkxl/math-lop.mkxl143
-rw-r--r--tex/context/base/mkxl/math-noa.lmt255
-rw-r--r--tex/context/base/mkxl/math-pln.mkxl8
-rw-r--r--tex/context/base/mkxl/math-rad.mklx53
-rw-r--r--tex/context/base/mkxl/math-scr.mkxl2
-rw-r--r--tex/context/base/mkxl/math-spa.lmt83
-rw-r--r--tex/context/base/mkxl/math-stc.mklx147
-rw-r--r--tex/context/base/mkxl/math-tag.lmt4
-rw-r--r--tex/context/base/mkxl/math-vfu.lmt39
-rw-r--r--tex/context/base/mkxl/mlib-int.lmt6
-rw-r--r--tex/context/base/mkxl/mult-aux.mkxl16
-rw-r--r--tex/context/base/mkxl/mult-sys.mkxl15
-rw-r--r--tex/context/base/mkxl/node-bck.mkxl2
-rw-r--r--tex/context/base/mkxl/node-ini.lmt34
-rw-r--r--tex/context/base/mkxl/node-res.lmt13
-rw-r--r--tex/context/base/mkxl/norm-ctx.mkxl116
-rw-r--r--tex/context/base/mkxl/pack-box.mkxl73
-rw-r--r--tex/context/base/mkxl/pack-lyr.mkxl2
-rw-r--r--tex/context/base/mkxl/pack-mat.mkxl84
-rw-r--r--tex/context/base/mkxl/page-bck.mkxl5
-rw-r--r--tex/context/base/mkxl/page-box.mklx11
-rw-r--r--tex/context/base/mkxl/page-flt.mkxl2
-rw-r--r--tex/context/base/mkxl/page-lay.mkxl40
-rw-r--r--tex/context/base/mkxl/page-mbk.mklx200
-rw-r--r--tex/context/base/mkxl/page-one.mkxl1
-rw-r--r--tex/context/base/mkxl/page-sid.mkxl2
-rw-r--r--tex/context/base/mkxl/page-str.lmt320
-rw-r--r--tex/context/base/mkxl/page-str.mkxl2
-rw-r--r--tex/context/base/mkxl/page-txt.mklx6
-rw-r--r--tex/context/base/mkxl/spac-hor.mkxl3
-rw-r--r--tex/context/base/mkxl/spac-par.mkxl4
-rw-r--r--tex/context/base/mkxl/spac-ver.mkxl198
-rw-r--r--tex/context/base/mkxl/strc-flt.mklx2
-rw-r--r--tex/context/base/mkxl/strc-mat.mkxl4
-rw-r--r--tex/context/base/mkxl/strc-ref.mklx16
-rw-r--r--tex/context/base/mkxl/supp-box.lmt34
-rw-r--r--tex/context/base/mkxl/supp-box.mkxl19
-rw-r--r--tex/context/base/mkxl/symb-ini.mkxl2
-rw-r--r--tex/context/base/mkxl/syst-aux.mkxl17
-rw-r--r--tex/context/base/mkxl/syst-fnt.mkxl26
-rw-r--r--tex/context/base/mkxl/syst-ini.mkxl158
-rw-r--r--tex/context/base/mkxl/toks-aux.lmt22
-rw-r--r--tex/context/base/mkxl/trac-vis.lmt87
-rw-r--r--tex/context/base/mkxl/type-imp-bengali.mkxl73
-rw-r--r--tex/context/base/mkxl/type-imp-devanagari.mkxl244
-rw-r--r--tex/context/base/mkxl/type-imp-gujarati.mkxl77
-rw-r--r--tex/context/base/mkxl/type-imp-indic.mkxl800
-rw-r--r--tex/context/base/mkxl/type-imp-kannada.mkxl73
-rw-r--r--tex/context/base/mkxl/type-imp-malayalam.mkxl224
-rw-r--r--tex/context/base/mkxl/type-imp-tamil.mkxl53
-rw-r--r--tex/context/base/mkxl/type-imp-telugu.mkxl74
-rw-r--r--tex/context/base/mkxl/typo-mar.lmt7
-rw-r--r--tex/context/base/mkxl/typo-mar.mkxl2
-rw-r--r--tex/context/fonts/mkiv/asana-math.lfg68
-rw-r--r--tex/context/fonts/mkiv/bonum-math.lfg216
-rw-r--r--tex/context/fonts/mkiv/cambria-math.lfg102
-rw-r--r--tex/context/fonts/mkiv/concrete-math.lfg29
-rw-r--r--tex/context/fonts/mkiv/dejavu-math.lfg23
-rw-r--r--tex/context/fonts/mkiv/ebgaramond.lfg87
-rw-r--r--tex/context/fonts/mkiv/erewhon-math.lfg44
-rw-r--r--tex/context/fonts/mkiv/euler-math.lfg6
-rw-r--r--tex/context/fonts/mkiv/garamond-math.lfg133
-rw-r--r--tex/context/fonts/mkiv/generic-math.lfg74
-rw-r--r--tex/context/fonts/mkiv/kpfonts-math.lfg33
-rw-r--r--tex/context/fonts/mkiv/libertinus-math.lfg54
-rw-r--r--tex/context/fonts/mkiv/lm-math.lfg10
-rw-r--r--tex/context/fonts/mkiv/lm.lfg43
-rw-r--r--tex/context/fonts/mkiv/lucida-opentype-math.lfg58
-rw-r--r--tex/context/fonts/mkiv/minion-math.lfg6
-rw-r--r--tex/context/fonts/mkiv/newcomputermodern-math.lfg311
-rw-r--r--tex/context/fonts/mkiv/pagella-math.lfg78
-rw-r--r--tex/context/fonts/mkiv/schola-math.lfg21
-rw-r--r--tex/context/fonts/mkiv/stix-two-math.lfg44
-rw-r--r--tex/context/fonts/mkiv/termes-math.lfg38
-rw-r--r--tex/context/fonts/mkiv/tx-math.lfg8
-rw-r--r--tex/context/fonts/mkiv/type-imp-concrete.mkiv51
-rw-r--r--tex/context/fonts/mkiv/type-imp-erewhon.mkiv45
-rw-r--r--tex/context/fonts/mkiv/type-imp-libertinus.mkiv1
-rw-r--r--tex/context/fonts/mkiv/type-imp-modernlatin.mkiv4
-rw-r--r--tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv4
-rw-r--r--tex/context/fonts/mkiv/xits-math.lfg6
-rw-r--r--tex/context/fonts/mkxl/bhai.lfg74
-rw-r--r--tex/context/fonts/mkxl/shobhika.lfg74
-rw-r--r--tex/context/interface/mkii/keys-cs.xml10
-rw-r--r--tex/context/interface/mkii/keys-fr.xml15
-rw-r--r--tex/context/interface/mkii/keys-pe.xml14
-rw-r--r--tex/context/modules/mkiv/m-zint.mkiv33
-rw-r--r--tex/context/modules/mkiv/s-math-characters.lua35
-rw-r--r--tex/context/modules/mkiv/s-math-characters.mkiv80
-rw-r--r--tex/context/modules/mkiv/s-math-parameters.lua22
-rw-r--r--tex/context/modules/mkxl/m-svg.mkxl39
-rw-r--r--tex/context/modules/mkxl/s-math-atoms.mkxl104
-rw-r--r--tex/context/modules/mkxl/s-math-definitions.mkxl56
-rw-r--r--tex/context/modules/mkxl/s-math-tweaks.mkxl185
-rw-r--r--tex/context/patterns/mkii/lang-sr.hyp186
-rw-r--r--tex/context/patterns/mkii/lang-sr.pat7022
-rw-r--r--tex/context/patterns/mkiv/lang-sr.lua16
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua58
207 files changed, 18891 insertions, 6985 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-context.lua b/context/data/scite/context/lexers/data/scite-context-data-context.lua
index 7509ee50e..03cc76b3c 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-context.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-context.lua
@@ -1,4 +1,4 @@
return {
- ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "shapingpenaltiesfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "accentitalickernmathcontrolcode", "delimiteritalickernmathcontrolcode", "noorditalickernmathcontrolcode", "charitalicwidthmathcontrolcode", "charitalicnoreboxmathcontrolcode", "boxednoitalickernmathcontrolcode", "nostaircasekernmathcontrolcode", "textitalickernmathcontrolcode", "noscriptitalickernmathcontrolcode", "italicshapekernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode", "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode", "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode", "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode", "halfwayleftlistanchorcode", "halfwayrightlistanchorcode", "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" },
- ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "lessboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "tracingcatcodes", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "aligncontentleft", "aligncontentmiddle", "aligncontentright", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "ordfracspacing", "ordradspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "opfracspacing", "opradspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "binfracspacing", "binradspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "relfracspacing", "relradspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "openfracspacing", "openradspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "closefracspacing", "closeradspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "punctfracspacing", "punctradspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "innerfracspacing", "innerradspacing", "fracordspacing", "fracopspacing", "fracbinspacing", "fracrelspacing", "fracopenspacing", "fracclosespacing", "fracpunctspacing", "fracinnerspacing", "fracfracspacing", "fracradspacing", "radordspacing", "radopspacing", "radbinspacing", "radrelspacing", "radopenspacing", "radclosespacing", "radpunctspacing", "radinnerspacing", "radfracspacing", "radradspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "rtltext", "ltrtext", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression" },
+ ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty", "thickermuskip", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "shapingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode", "mathpenaltyfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "checkligatureandkernmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "italicshapekernmathcontrolcode", "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode", "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode", "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode", "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode", "halfwayleftlistanchorcode", "halfwayrightlistanchorcode", "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode", "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode", "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode", "mathfractioncode", "mathmiddlecode", "mathaccentcode", "mathfencedcode", "mathghostcode", "mathvariablecode", "mathactivecode", "mathvcentercode", "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "flattenleadersnormalizecode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" },
+ ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "lessboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "forceinlinemath", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "mathgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "tracingcatcodes", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "aligncontentleft", "aligncontentmiddle", "aligncontentright", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "ordfracspacing", "ordradspacing", "ordmiddlespacing", "ordaccentspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "opfracspacing", "opradspacing", "opmiddlespacing", "opaccentspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "binfracspacing", "binradspacing", "binmiddlespacing", "binaccentspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "relfracspacing", "relradspacing", "relmiddlespacing", "relaccentspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "openfracspacing", "openradspacing", "openmiddlespacing", "openaccentspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "closefracspacing", "closeradspacing", "closemiddlespacing", "closeaccentspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "punctfracspacing", "punctradspacing", "punctmiddlespacing", "punctaccentspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "innerfracspacing", "innerradspacing", "innermiddlespacing", "inneraccentspacing", "fracordspacing", "fracopspacing", "fracbinspacing", "fracrelspacing", "fracopenspacing", "fracclosespacing", "fracpunctspacing", "fracinnerspacing", "fracfracspacing", "fracradspacing", "fracmiddlespacing", "fracaccentspacing", "radordspacing", "radopspacing", "radbinspacing", "radrelspacing", "radopenspacing", "radclosespacing", "radpunctspacing", "radinnerspacing", "radfracspacing", "radradspacing", "radmiddlespacing", "radaccentspacing", "middleordspacing", "middleopspacing", "middlebinspacing", "middlerelspacing", "middleopenspacing", "middleclosespacing", "middlepunctspacing", "middleinnerspacing", "middlefracspacing", "middleradspacing", "middlemiddlespacing", "middleaccentspacing", "accentordspacing", "accentopspacing", "accentbinspacing", "accentrelspacing", "accentopenspacing", "accentclosespacing", "accentpunctspacing", "accentinnerspacing", "accentfracspacing", "accentradspacing", "accentmiddlespacing", "accentaccentspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "rtltext", "ltrtext", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression" },
} \ No newline at end of file
diff --git a/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua b/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua
index d2b000645..d830fd1b9 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua
@@ -1,4 +1,4 @@
return {
- ["common"]={ "AEacute", "AEligature", "AEmacron", "AMSTEX", "Aacute", "Abreve", "Abreveacute", "Abrevedotbelow", "Abrevegrave", "Abrevehook", "Abrevetilde", "Acaron", "Acircumflex", "Acircumflexacute", "Acircumflexdotbelow", "Acircumflexgrave", "Acircumflexhook", "Acircumflextilde", "Adiaeresis", "Adiaeresismacron", "Adotaccent", "Adotaccentmacron", "Adotbelow", "Adoublegrave", "AfterPar", "Agrave", "Ahook", "Ainvertedbreve", "Alpha", "Alphabeticnumerals", "AmSTeX", "Amacron", "And", "Angstrom", "Aogonek", "Aring", "Aringacute", "Arrowvert", "Astroke", "Atilde", "BeforePar", "Beta", "Bhook", "Big", "Bigg", "Biggl", "Biggm", "Biggr", "Bigl", "Bigm", "Bigr", "Box", "Bumpeq", "CONTEXT", "Cacute", "Cap", "Caps", "Ccaron", "Ccedilla", "Ccircumflex", "Cdotaccent", "Character", "Characters", "Chi", "Chook", "ConTeXt", "Context", "ConvertConstantAfter", "ConvertToConstant", "Cstroke", "Cup", "DAYLONG", "DAYSHORT", "DZcaronligature", "DZligature", "Dafrican", "Dcaron", "Ddownarrow", "Delta", "Dhook", "Doteq", "Downarrow", "Dstroke", "Dzcaronligature", "Dzligature", "ETEX", "Eacute", "Ebreve", "Ecaron", "Ecedilla", "Ecircumflex", "Ecircumflexacute", "Ecircumflexdotbelow", "Ecircumflexgrave", "Ecircumflexhook", "Ecircumflextilde", "Ediaeresis", "Edotaccent", "Edotbelow", "Edoublegrave", "Egrave", "Ehook", "Einvertedbreve", "Emacron", "Eogonek", "Epsilon", "Eta", "Eth", "Etilde", "Eulerconst", "EveryLine", "EveryPar", "Fhook", "Finv", "Gacute", "Game", "Gamma", "Gbreve", "Gcaron", "Gcircumflex", "Gcommaaccent", "Gdotaccent", "GetPar", "Ghook", "GotoPar", "Greeknumerals", "Gstroke", "Hat", "Hcaron", "Hcircumflex", "Hstroke", "IJligature", "INRSTEX", "Iacute", "Ibreve", "Icaron", "Icircumflex", "Idiaeresis", "Idotaccent", "Idotbelow", "Idoublegrave", "Igrave", "Ihook", "Iinvertedbreve", "Im", "Imacron", "Iogonek", "Iota", "Istroke", "Itilde", "Jcircumflex", "Join", "Kappa", "Kcaron", "Kcommaaccent", "Khook", "LAMSTEX", "LATEX", "LJligature", "LUAJITTEX", "LUAMETATEX", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaMetaTeX", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKLX", "MKVI", "MKXI", "MKXL", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPLX", "MPVI", "MPXL", "MPanchor", "MPbetex", "MPc", "MPcode", "MPcolor", "MPcoloronly", "MPcolumn", "MPd", "MPdrawing", "MPfontsizehskip", "MPgetmultipars", "MPgetmultishape", "MPgetposboxes", "MPh", "MPinclusions", "MPleftskip", "MPll", "MPlr", "MPls", "MPmenubuttons", "MPn", "MPoptions", "MPoverlayanchor", "MPp", "MPpage", "MPpardata", "MPplus", "MPpos", "MPpositiongraphic", "MPposset", "MPr", "MPrawvar", "MPregion", "MPrest", "MPrightskip", "MPrs", "MPstring", "MPtext", "MPtransparency", "MPul", "MPur", "MPv", "MPvar", "MPvariable", "MPvv", "MPw", "MPwhd", "MPx", "MPxy", "MPxywhd", "MPy", "Mapsfrom", "Mapsto", "MetaFont", "MetaFun", "MetaPost", "Mu", "NJligature", "Nacute", "Ncaron", "Ncommaaccent", "Nearrow", "Neng", "Ngrave", "Njligature", "NormalizeFontHeight", "NormalizeFontWidth", "NormalizeTextHeight", "NormalizeTextWidth", "Ntilde", "Nu", "Numbers", "Nwarrow", "OEligature", "Oacute", "Obreve", "Ocaron", "Ocircumflex", "Ocircumflexacute", "Ocircumflexdotbelow", "Ocircumflexgrave", "Ocircumflexhook", "Ocircumflextilde", "Odiaeresis", "Odiaeresismacron", "Odotaccent", "Odotaccentmacron", "Odotbelow", "Odoublegrave", "Ograve", "Ohook", "Ohorn", "Ohornacute", "Ohorndotbelow", "Ohorngrave", "Ohornhook", "Ohorntilde", "Ohungarumlaut", "Oinvertedbreve", "Omacron", "Omega", "Omicron", "Oogonek", "Oogonekmacron", "Ostroke", "Ostrokeacute", "Otilde", "Otildemacron", "P", "PDFETEX", "PDFTEX", "PDFcolor", "PICTEX", "PPCHTEX", "PPCHTeX", "PRAGMA", "Phi", "Phook", "Pi", "PiCTeX", "Plankconst", "PointsToBigPoints", "PointsToReal", "PointsToWholeBigPoints", "PropertyLine", "Psi", "PtToCm", "Racute", "Rcaron", "Rcommaaccent", "Rdoublegrave", "Rdsh", "Re", "ReadFile", "Relbar", "Rho", "Rightarrow", "Rinvertedbreve", "Romannumerals", "Rrightarrow", "Rsh", "S", "Sacute", "ScaledPointsToBigPoints", "ScaledPointsToWholeBigPoints", "Scaron", "Scedilla", "Schwa", "Scircumflex", "Scommaaccent", "Searrow", "Sigma", "Smallcapped", "Subset", "Supset", "Swarrow", "TABLE", "TEX", "TaBlE", "Tau", "Tcaron", "Tcedilla", "Tcommaaccent", "TeX", "TheNormalizedFontSize", "Theta", "Thook", "Thorn", "TransparencyHack", "Tstroke", "Uacute", "Ubreve", "Ucaron", "Ucircumflex", "Udiaeresis", "Udiaeresisacute", "Udiaeresiscaron", "Udiaeresisgrave", "Udiaeresismacron", "Udotbelow", "Udoublegrave", "Ugrave", "Uhook", "Uhorn", "Uhornacute", "Uhorndotbelow", "Uhorngrave", "Uhornhook", "Uhorntilde", "Uhungarumlaut", "Uinvertedbreve", "Umacron", "Uogonek", "Uparrow", "Updownarrow", "Upsilon", "Uring", "Utilde", "Uuparrow", "VDash", "Vdash", "VerboseNumber", "Vert", "Vhook", "Vvdash", "WEEKDAY", "WORD", "WORDS", "Wcircumflex", "WidthSpanningText", "Word", "Words", "XETEX", "XeTeX", "Xi", "Yacute", "Ycircumflex", "Ydiaeresis", "Ydotbelow", "Ygrave", "Yhook", "Ymacron", "Ytilde", "Zacute", "Zcaron", "Zdotaccent", "Zeta", "Zhook", "Zstroke", "aacute", "abbreviation", "abjadnaivenumerals", "abjadnodotnumerals", "abjadnumerals", "about", "abreve", "abreveacute", "abrevedotbelow", "abrevegrave", "abrevehook", "abrevetilde", "acaron", "acircumflex", "acircumflexacute", "acircumflexdotbelow", "acircumflexgrave", "acircumflexhook", "acircumflextilde", "activatespacehandler", "actualday", "actualmonth", "actualyear", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addtoJSpreamble", "addtocommalist", "addvalue", "adiaeresis", "adiaeresismacron", "adotaccent", "adotaccentmacron", "adotbelow", "adoublegrave", "aeacute", "aeligature", "aemacron", "afghanicurrency", "aftersplitstring", "aftertestandsplitstring", "agrave", "ahook", "ainvertedbreve", "aleph", "alignbottom", "aligned", "alignedbox", "alignedline", "alignhere", "alignmentcharacter", "allinputpaths", "alpha", "alphabeticnumerals", "alwayscitation", "alwayscite", "amacron", "amalg", "ampersand", "anchor", "angle", "aogonek", "appendetoks", "appendgvalue", "appendtocommalist", "appendtoks", "appendtoksonce", "appendvalue", "apply", "applyalternativestyle", "applyprocessor", "applytocharacters", "applytofirstcharacter", "applytosplitstringchar", "applytosplitstringcharspaced", "applytosplitstringline", "applytosplitstringlinespaced", "applytosplitstringword", "applytosplitstringwordspaced", "applytowords", "approx", "approxEq", "approxeq", "approxnEq", "arabicakbar", "arabicalayhe", "arabicallah", "arabicallallahou", "arabicasterisk", "arabicbasmalah", "arabiccomma", "arabiccuberoot", "arabicdateseparator", "arabicdecimals", "arabicdisputedendofayah", "arabicendofayah", "arabicexnumerals", "arabicfootnotemarker", "arabicfourthroot", "arabichighain", "arabichighalayheassallam", "arabichigheqala", "arabichighesala", "arabichighfootnotemarker", "arabichighjeem", "arabichighlamalef", "arabichighmadda", "arabichighmeemlong", "arabichighmeemshort", "arabichighnisf", "arabichighnoon", "arabichighnoonkasra", "arabichighqaf", "arabichighqif", "arabichighradiallahouanhu", "arabichighrahmatullahalayhe", "arabichighrubc", "arabichighsad", "arabichighsajda", "arabichighsakta", "arabichighsallallahou", "arabichighseen", "arabichighsmallsafha", "arabichightah", "arabichightakhallus", "arabichighthalatha", "arabichighwaqf", "arabichighyeh", "arabichighzain", "arabicjallajalalouhou", "arabiclettermark", "arabiclowmeemlong", "arabiclownoonkasra", "arabiclowseen", "arabicmisra", "arabicmuhammad", "arabicnumber", "arabicnumberabove", "arabicnumerals", "arabicparenleft", "arabicparenright", "arabicpercent", "arabicperiod", "arabicpermille", "arabicpertenthousand", "arabicpoeticverse", "arabicqala", "arabicquestion", "arabicrasoul", "arabicray", "arabicrialsign", "arabicsafha", "arabicsajdah", "arabicsalla", "arabicsamvat", "arabicsanah", "arabicsemicolon", "arabicshighthreedots", "arabicslcm", "arabicstartofrubc", "arabictripledot", "arabicvowelwaw", "arabicvowelyeh", "arabicwasallam", "arg", "aring", "aringacute", "arrowvert", "asciimode", "asciistr", "aside", "assignalfadimension", "assigndimen", "assigndimension", "assignifempty", "assigntranslation", "assignvalue", "assignwidth", "assumelongusagecs", "ast", "astype", "asymp", "at", "atilde", "atleftmargin", "atpage", "atrightmargin", "attachment", "autocap", "autodirhbox", "autodirvbox", "autodirvtop", "autoinsertnextspace", "autointegral", "automathematics", "autoorientation", "autopagestaterealpage", "autopagestaterealpageorder", "autorule", "autosetups", "availablehsize", "averagecharwidth", "backepsilon", "background", "backgroundimage", "backgroundimagefill", "backgroundline", "backprime", "backsim", "backslash", "bar", "barleftarrow", "barleftarrowrightarrowbar", "barovernorthwestarrow", "barwedge", "basegrid", "baselinebottom", "baselineleftbox", "baselinemiddlebox", "baselinerightbox", "bbordermatrix", "bbox", "because", "beforesplitstring", "beforetestandsplitstring", "beta", "beth", "between", "bhook", "big", "bigbodyfont", "bigcap", "bigcirc", "bigcircle", "bigcup", "bigdiamond", "bigg", "bigger", "biggl", "biggm", "biggr", "bigl", "bigm", "bigodot", "bigoplus", "bigotimes", "bigr", "bigskip", "bigsqcap", "bigsqcup", "bigsquare", "bigstar", "bigtimes", "bigtriangledown", "bigtriangleup", "bigudot", "biguplus", "bigvee", "bigwedge", "binom", "bitmapimage", "blacklozenge", "blackrule", "blackrules", "blacksquare", "blacktriangle", "blacktriangledown", "blacktriangleleft", "blacktriangleright", "blank", "blap", "bleed", "bleedheight", "bleedwidth", "blockligatures", "blockquote", "blocksynctexfile", "blockuservariable", "bodyfontenvironmentlist", "bodyfontsize", "bold", "boldface", "bolditalic", "boldslanted", "bookmark", "booleanmodevalue", "bordermatrix", "bot", "bottombox", "bottomleftbox", "bottomrightbox", "bowtie", "boxcursor", "boxdot", "boxmarker", "boxminus", "boxofsize", "boxplus", "boxreference", "boxtimes", "bpos", "breakablethinspace", "breakhere", "breve", "bstroke", "btxabbreviatedjournal", "btxaddjournal", "btxalwayscitation", "btxauthorfield", "btxdetail", "btxdirect", "btxdoif", "btxdoifcombiinlistelse", "btxdoifelse", "btxdoifelsecombiinlist", "btxdoifelsesameasprevious", "btxdoifelsesameaspreviouschecked", "btxdoifelseuservariable", "btxdoifnot", "btxdoifsameaspreviouscheckedelse", "btxdoifsameaspreviouselse", "btxdoifuservariableelse", "btxexpandedjournal", "btxfield", "btxfieldname", "btxfieldtype", "btxfirstofrange", "btxflush", "btxflushauthor", "btxflushauthorinverted", "btxflushauthorinvertedshort", "btxflushauthorname", "btxflushauthornormal", "btxflushauthornormalshort", "btxflushsuffix", "btxfoundname", "btxfoundtype", "btxhiddencitation", "btxhybridcite", "btxlabellanguage", "btxlabeltext", "btxlistcitation", "btxloadjournalist", "btxoneorrange", "btxremapauthor", "btxsavejournalist", "btxsetup", "btxsingularorplural", "btxsingularplural", "btxtextcitation", "buildmathaccent", "buildtextaccent", "buildtextbottomcomma", "buildtextbottomdot", "buildtextcedilla", "buildtextgrave", "buildtextmacron", "buildtextognek", "bullet", "button", "cacute", "calligraphic", "camel", "cap", "capital", "carriagereturn", "catcodetablename", "cbox", "ccaron", "ccedilla", "ccircumflex", "ccurl", "cdot", "cdotaccent", "cdotp", "cdots", "centeraligned", "centerbox", "centerdot", "centeredbox", "centeredlastline", "centerednextbox", "centerline", "cfrac", "chapter", "character", "characters", "chardescription", "charwidthlanguage", "check", "checkcharacteralign", "checkedblank", "checkedchar", "checkedfiller", "checkedstrippedcsname", "checkinjector", "checkmark", "checknextindentation", "checknextinjector", "checkpage", "checkparameters", "checkpreviousinjector", "checksoundtrack", "checktwopassdata", "checkvariables", "chem", "chemical", "chemicalbottext", "chemicalmidtext", "chemicalsymbol", "chemicaltext", "chemicaltoptext", "chi", "chineseallnumerals", "chinesecapnumerals", "chinesenumerals", "chook", "circ", "circeq", "circlearrowleft", "circlearrowright", "circledR", "circledS", "circledast", "circledcirc", "circleddash", "circledequals", "circleonrightarrow", "citation", "cite", "clap", "classfont", "cldcommand", "cldcontext", "cldloadfile", "cldprocessfile", "cleftarrow", "clip", "clippedoverlayimage", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "columnsetspanwidth", "combinepages", "commalistelement", "commalistsentence", "commalistsize", "comment", "comparecolorgroup", "comparedimension", "comparedimensioneps", "comparepalet", "complement", "completebtxrendering", "completecontent", "completeindex", "completelist", "completelistofabbreviations", "completelistofchemicals", "completelistoffigures", "completelistofgraphics", "completelistofintermezzi", "completelistoflogos", "completelistofpublications", "completelistofsorts", "completelistofsynonyms", "completelistoftables", "completepagenumber", "completeregister", "complexes", "complexorsimple", "complexorsimpleempty", "component", "composedcollector", "composedlayer", "compounddiscretionary", "compresult", "cong", "constantdimen", "constantdimenargument", "constantemptyargument", "constantnumber", "constantnumberargument", "contentreference", "continuednumber", "continueifinputfile", "convertargument", "convertcommand", "convertedcounter", "converteddimen", "convertedsubcounter", "convertmonth", "convertnumber", "convertvalue", "convertvboxtohbox", "coprod", "copyboxfromcache", "copybtxlabeltext", "copyfield", "copyheadtext", "copylabeltext", "copymathlabeltext", "copyoperatortext", "copypages", "copyparameters", "copyposition", "copyprefixtext", "copyright", "copysetups", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "crightoverleftarrow", "crlf", "crlfplaceholder", "cstroke", "ctop", "ctxcommand", "ctxdirectcommand", "ctxdirectlua", "ctxfunction", "ctxlatecommand", "ctxlatelua", "ctxloadluafile", "ctxlua", "ctxluabuffer", "ctxluacode", "ctxreport", "ctxsprint", "cup", "curlyeqprec", "curlyeqsucc", "curlyvee", "curlywedge", "currentassignmentlistkey", "currentassignmentlistvalue", "currentbtxuservariable", "currentcommalistitem", "currentcomponent", "currentdate", "currentenvironment", "currentfeaturetest", "currentheadnumber", "currentinterface", "currentlanguage", "currentlistentrydestinationattribute", "currentlistentrylimitedtext", "currentlistentrynumber", "currentlistentrypagenumber", "currentlistentryreferenceattribute", "currentlistentrytitle", "currentlistentrytitlerendered", "currentlistsymbol", "currentmainlanguage", "currentmessagetext", "currentmoduleparameter", "currentoutputstream", "currentproduct", "currentproject", "currentregime", "currentregisterpageuserdata", "currentresponses", "currenttime", "currentvalue", "currentxtablecolumn", "currentxtablerow", "curvearrowleft", "curvearrowright", "cwopencirclearrow", "cyrillicA", "cyrillicAE", "cyrillicAbreve", "cyrillicAdiaeresis", "cyrillicB", "cyrillicBIGYUS", "cyrillicBIGYUSiotified", "cyrillicC", "cyrillicCH", "cyrillicCHEDC", "cyrillicCHEDCabkhasian", "cyrillicCHEabkhasian", "cyrillicCHEdiaeresis", "cyrillicCHEkhakassian", "cyrillicCHEvertstroke", "cyrillicD", "cyrillicDASIAPNEUMATA", "cyrillicDJE", "cyrillicDZE", "cyrillicDZEabkhasian", "cyrillicDZHE", "cyrillicE", "cyrillicELtail", "cyrillicEMtail", "cyrillicENDC", "cyrillicENGHE", "cyrillicENhook", "cyrillicENtail", "cyrillicEREV", "cyrillicERY", "cyrillicERtick", "cyrillicEbreve", "cyrillicEdiaeresis", "cyrillicEgrave", "cyrillicEiotified", "cyrillicF", "cyrillicFITA", "cyrillicG", "cyrillicGHEmidhook", "cyrillicGHEstroke", "cyrillicGHEupturn", "cyrillicGJE", "cyrillicH", "cyrillicHA", "cyrillicHADC", "cyrillicHRDSN", "cyrillicI", "cyrillicIE", "cyrillicII", "cyrillicISHRT", "cyrillicISHRTtail", "cyrillicIZHITSA", "cyrillicIZHITSAdoublegrave", "cyrillicIdiaeresis", "cyrillicIgrave", "cyrillicImacron", "cyrillicJE", "cyrillicK", "cyrillicKADC", "cyrillicKAbashkir", "cyrillicKAhook", "cyrillicKAstroke", "cyrillicKAvertstroke", "cyrillicKJE", "cyrillicKOPPA", "cyrillicKSI", "cyrillicL", "cyrillicLITTLEYUS", "cyrillicLITTLEYUSiotified", "cyrillicLJE", "cyrillicM", "cyrillicN", "cyrillicNJE", "cyrillicO", "cyrillicOMEGA", "cyrillicOMEGAround", "cyrillicOMEGAtitlo", "cyrillicOT", "cyrillicObarred", "cyrillicObarreddiaeresis", "cyrillicOdiaeresis", "cyrillicP", "cyrillicPALATALIZATION", "cyrillicPALOCHKA", "cyrillicPEmidhook", "cyrillicPSI", "cyrillicPSILIPNEUMATA", "cyrillicR", "cyrillicS", "cyrillicSCHWA", "cyrillicSCHWAdiaeresis", "cyrillicSDSC", "cyrillicSEMISOFT", "cyrillicSFTSN", "cyrillicSH", "cyrillicSHCH", "cyrillicSHHA", "cyrillicT", "cyrillicTEDC", "cyrillicTETSE", "cyrillicTITLO", "cyrillicTSHE", "cyrillicU", "cyrillicUK", "cyrillicUSHRT", "cyrillicUdiaeresis", "cyrillicUdoubleacute", "cyrillicUmacron", "cyrillicV", "cyrillicYA", "cyrillicYAT", "cyrillicYERUdiaeresis", "cyrillicYI", "cyrillicYO", "cyrillicYU", "cyrillicYstr", "cyrillicYstrstroke", "cyrillicZ", "cyrillicZDSC", "cyrillicZEdiaeresis", "cyrillicZH", "cyrillicZHEbreve", "cyrillicZHEdescender", "cyrillicZHEdiaeresis", "cyrillica", "cyrillicabreve", "cyrillicadiaeresis", "cyrillicae", "cyrillicb", "cyrillicbigyus", "cyrillicbigyusiotified", "cyrillicc", "cyrillicch", "cyrilliccheabkhasian", "cyrillicchedc", "cyrillicchedcabkhasian", "cyrillicchediaeresis", "cyrillicchekhakassian", "cyrillicchevertstroke", "cyrillicd", "cyrillicdje", "cyrillicdze", "cyrillicdzeabkhasian", "cyrillicdzhe", "cyrillice", "cyrillicebreve", "cyrillicediaeresis", "cyrillicegrave", "cyrilliceiotified", "cyrilliceltail", "cyrillicemtail", "cyrillicendc", "cyrillicenghe", "cyrillicenhook", "cyrillicentail", "cyrillicerev", "cyrillicertick", "cyrillicery", "cyrillicf", "cyrillicfita", "cyrillicg", "cyrillicghemidhook", "cyrillicghestroke", "cyrillicgheupturn", "cyrillicgje", "cyrillich", "cyrillicha", "cyrillichadc", "cyrillichrdsn", "cyrillici", "cyrillicidiaeresis", "cyrillicie", "cyrillicigrave", "cyrillicii", "cyrillicimacron", "cyrillicishrt", "cyrillicishrttail", "cyrillicizhitsa", "cyrillicizhitsadoublegrave", "cyrillicje", "cyrillick", "cyrillickabashkir", "cyrillickadc", "cyrillickahook", "cyrillickastroke", "cyrillickavertstroke", "cyrillickje", "cyrillickoppa", "cyrillicksi", "cyrillicl", "cyrilliclittleyus", "cyrilliclittleyusiotified", "cyrilliclje", "cyrillicm", "cyrillicn", "cyrillicnje", "cyrillico", "cyrillicobarred", "cyrillicobarreddiaeresis", "cyrillicodiaeresis", "cyrillicomega", "cyrillicomegaround", "cyrillicomegatitlo", "cyrillicot", "cyrillicp", "cyrillicpemidhook", "cyrillicpsi", "cyrillicr", "cyrillics", "cyrillicschwa", "cyrillicschwadiaeresis", "cyrillicsdsc", "cyrillicsemisoft", "cyrillicsftsn", "cyrillicsh", "cyrillicshch", "cyrillicshha", "cyrillict", "cyrillictedc", "cyrillictetse", "cyrillictshe", "cyrillicu", "cyrillicudiaeresis", "cyrillicudoubleacute", "cyrillicuk", "cyrillicumacron", "cyrillicushrt", "cyrillicv", "cyrillicya", "cyrillicyat", "cyrillicyerudiaeresis", "cyrillicyi", "cyrillicyo", "cyrillicystr", "cyrillicystrstroke", "cyrillicyu", "cyrillicz", "cyrilliczdsc", "cyrilliczediaeresis", "cyrilliczh", "cyrilliczhebreve", "cyrilliczhedescender", "cyrilliczhediaeresis", "d", "dag", "dagger", "daleth", "dasharrow", "dashedleftarrow", "dashedrightarrow", "dashv", "datasetvariable", "date", "daylong", "dayoftheweek", "dayshort", "dayspermonth", "dbinom", "dcaron", "dcurl", "ddag", "ddagger", "dddot", "ddot", "ddots", "decrement", "decrementcounter", "decrementedcounter", "decrementpagenumber", "decrementsubpagenumber", "decrementvalue", "defaultinterface", "defaultobjectpage", "defaultobjectreference", "defcatcodecommand", "defconvertedargument", "defconvertedcommand", "defconvertedvalue", "define", "defineMPinstance", "defineTABLEsetup", "defineaccent", "defineactivecharacter", "definealternativestyle", "defineanchor", "defineattachment", "defineattribute", "definebackground", "definebar", "defineblock", "definebodyfont", "definebodyfontenvironment", "definebodyfontswitch", "definebreakpoint", "definebreakpoints", "definebtx", "definebtxdataset", "definebtxregister", "definebtxrendering", "definebuffer", "definebutton", "definecapitals", "definecharacter", "definecharacterkerning", "definecharacterspacing", "definechemical", "definechemicals", "definechemicalsymbol", "definecollector", "definecolor", "definecolorgroup", "definecolumnbreak", "definecolumnset", "definecolumnsetarea", "definecolumnsetspan", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedate", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "definedocument", "defineeffect", "defineenumeration", "defineexpandable", "defineexpansion", "defineexternalfigure", "definefacingfloat", "definefallbackfamily", "definefield", "definefieldbody", "definefieldbodyset", "definefieldcategory", "definefieldstack", "definefiguresymbol", "definefileconstant", "definefilefallback", "definefilesynonym", "definefiller", "definefirstline", "definefittingpage", "definefloat", "definefont", "definefontalternative", "definefontfallback", "definefontfamily", "definefontfamilypreset", "definefontfeature", "definefontfile", "definefontsize", "definefontsolution", "definefontstyle", "definefontsynonym", "defineformula", "defineformulaalternative", "defineformulaframed", "defineframed", "defineframedcontent", "defineframedtable", "defineframedtext", "definefrozenfont", "defineglobalcolor", "definegraphictypesynonym", "definegridsnapping", "definehbox", "definehead", "defineheadalternative", "definehelp", "definehigh", "definehighlight", "definehspace", "definehyphenationfeatures", "defineindentedtext", "defineindenting", "defineinitial", "defineinsertion", "defineinteraction", "defineinteractionbar", "defineinteractionmenu", "defineinterfaceconstant", "defineinterfaceelement", "defineinterfacevariable", "defineinterlinespace", "defineintermediatecolor", "defineitemgroup", "defineitems", "definelabel", "definelabelclass", "definelayer", "definelayerpreset", "definelayout", "definelinefiller", "definelinenote", "definelinenumbering", "definelines", "definelist", "definelistalternative", "definelistextra", "definelow", "definelowhigh", "definelowmidhigh", "definemakeup", "definemarginblock", "definemargindata", "definemarker", "definemarking", "definemathaccent", "definemathalignment", "definemathcases", "definemathcommand", "definemathdouble", "definemathdoubleextensible", "definemathematics", "definemathextensible", "definemathfence", "definemathfraction", "definemathframed", "definemathmatrix", "definemathornament", "definemathover", "definemathoverextensible", "definemathovertextextensible", "definemathradical", "definemathstackers", "definemathstyle", "definemathtriplet", "definemathunder", "definemathunderextensible", "definemathundertextextensible", "definemathunstacked", "definemeasure", "definemessageconstant", "definemixedcolumns", "definemode", "definemulticolumns", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineorientation", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagecolumns", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineperiodkerning", "defineplaceholder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "defineruby", "definescale", "definescript", "definesection", "definesectionblock", "definesectionlevels", "defineselector", "defineseparatorset", "defineshift", "definesidebar", "definesort", "definesorting", "definespotcolor", "definestartstop", "definestyle", "definestyleinstance", "definesubfield", "definesubformula", "definesymbol", "definesynonym", "definesynonyms", "definesystemattribute", "definesystemconstant", "definesystemvariable", "definetabletemplate", "definetabulate", "definetext", "definetextbackground", "definetextflow", "definetextnote", "definetokenlist", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineuserdata", "defineuserdataalternative", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "defrostparagraphproperties", "delimited", "delimitedtext", "delta", "depthofstring", "depthonlybox", "depthspanningtext", "depthstrut", "determineheadnumber", "determinelistcharacteristics", "determinenoflines", "determineregistercharacteristics", "devanagarinumerals", "dfrac", "dhook", "diameter", "diamond", "diamondsuit", "differentialD", "differentiald", "digamma", "digits", "dimensiontocount", "directboxfromcache", "directcolor", "directcolored", "directconvertedcounter", "directcopyboxfromcache", "directdummyparameter", "directgetboxllx", "directgetboxlly", "directhighlight", "directlocalframed", "directluacode", "directparwrapper", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "disposeluatable", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "dohyphens", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifassignmentelsecs", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcheckedpagestate", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdocumentvariable", "doifdocumentvariableelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseassignmentcs", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedocumentvariable", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontfeature", "doifelsefontpresent", "doifelsefontsynonym", "doifelseframed", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseindented", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedcontent", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseorientation", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelseparwrapper", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "doifelserightpage", "doifelserightpagefloat", "doifelserighttoleftinbox", "doifelsesamelinereference", "doifelsesamestring", "doifelsesetups", "doifelsesomebackground", "doifelsesomespace", "doifelsesomething", "doifelsesometoks", "doifelsestringinstring", "doifelsestructurelisthasnumber", "doifelsestructurelisthaspage", "doifelsesymboldefined", "doifelsesymbolset", "doifelsetext", "doifelsetextflow", "doifelsetextflowcollector", "doifelsetopofpage", "doifelsetypingfile", "doifelseundefined", "doifelseurldefined", "doifelsevalue", "doifelsevaluenothing", "doifelsevariable", "doifempty", "doifemptyelse", "doifemptytoks", "doifemptyvalue", "doifemptyvalueelse", "doifemptyvariable", "doifemptyvariableelse", "doifenv", "doifenvelse", "doiffastoptionalcheckcselse", "doiffastoptionalcheckelse", "doiffieldbodyelse", "doiffieldcategoryelse", "doiffigureelse", "doiffile", "doiffiledefinedelse", "doiffileelse", "doiffileexistselse", "doiffirstcharelse", "doifflaggedelse", "doiffontcharelse", "doiffontfeatureelse", "doiffontpresentelse", "doiffontsynonymelse", "doifhasspaceelse", "doifhelpelse", "doifincsnameelse", "doifinelementelse", "doifinputfileelse", "doifinsertionelse", "doifinset", "doifinsetelse", "doifinstring", "doifinstringelse", "doifinsymbolset", "doifinsymbolsetelse", "doifintokselse", "doifintwopassdataelse", "doifitalicelse", "doiflanguageelse", "doiflayerdataelse", "doiflayoutdefinedelse", "doiflayoutsomelineelse", "doiflayouttextlineelse", "doifleapyearelse", "doiflistelse", "doiflocationelse", "doiflocfileelse", "doifmainfloatbodyelse", "doifmarkingelse", "doifmeaningelse", "doifmessageelse", "doifmode", "doifmodeelse", "doifnextbgroupcselse", "doifnextbgroupelse", "doifnextcharelse", "doifnextoptionalcselse", "doifnextoptionalelse", "doifnextparenthesiselse", "doifnonzeropositiveelse", "doifnot", "doifnotallcommon", "doifnotallmodes", "doifnotcommandhandler", "doifnotcommon", "doifnotcounter", "doifnotdocumentargument", "doifnotdocumentfilename", "doifnotdocumentvariable", "doifnotempty", "doifnotemptyvalue", "doifnotemptyvariable", "doifnotenv", "doifnoteonsamepageelse", "doifnotescollected", "doifnotfile", "doifnotflagged", "doifnothing", "doifnothingelse", "doifnotinset", "doifnotinsidesplitfloat", "doifnotinstring", "doifnotmode", "doifnotnumber", "doifnotsamestring", "doifnotsetups", "doifnotvalue", "doifnotvariable", "doifnumber", "doifnumberelse", "doifobjectfoundelse", "doifobjectreferencefoundelse", "doifoddpageelse", "doifoddpagefloatelse", "doifoldercontextelse", "doifolderversionelse", "doifoutervmode", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "doifrightpageelse", "doifrightpagefloatelse", "doifrighttoleftinboxelse", "doifsamelinereferenceelse", "doifsamestring", "doifsamestringelse", "doifsetups", "doifsetupselse", "doifsomebackground", "doifsomebackgroundelse", "doifsomespaceelse", "doifsomething", "doifsomethingelse", "doifsometoks", "doifsometokselse", "doifstringinstringelse", "doifstructurelisthasnumberelse", "doifstructurelisthaspageelse", "doifsymboldefinedelse", "doifsymbolsetelse", "doiftext", "doiftextelse", "doiftextflowcollectorelse", "doiftextflowelse", "doiftopofpageelse", "doiftypingfileelse", "doifundefined", "doifundefinedcounter", "doifundefinedelse", "doifunknownfontfeature", "doifurldefinedelse", "doifvalue", "doifvalueelse", "doifvaluenothing", "doifvaluenothingelse", "doifvaluesomething", "doifvariable", "doifvariableelse", "doindentation", "dollar", "doloop", "doloopoverlist", "donothing", "dontconvertfont", "dontleavehmode", "dontpermitspacesbetweengroups", "dopositionaction", "doprocesslocalsetups", "doquadrupleargument", "doquadrupleempty", "doquadruplegroupempty", "doquintupleargument", "doquintupleempty", "doquintuplegroupempty", "dorechecknextindentation", "dorecurse", "dorepeatwithcommand", "doreplacefeature", "doresetandafffeature", "doresetattribute", "dorotatebox", "dosetattribute", "dosetleftskipadaption", "dosetrightskipadaption", "dosetupcheckedinterlinespace", "doseventupleargument", "doseventupleempty", "dosingleargument", "dosingleempty", "dosinglegroupempty", "dosixtupleargument", "dosixtupleempty", "dosomebreak", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "dotfill", "dotfskip", "dotlessI", "dotlessJ", "dotlessi", "dotlessj", "dotlessjstroke", "dotminus", "dotoks", "dotplus", "dotripleargument", "dotripleargumentwithset", "dotripleempty", "dotripleemptywithset", "dotriplegroupempty", "dots", "dottedcircle", "dottedrightarrow", "doublebar", "doublebond", "doublebrace", "doublebracket", "doublecap", "doublecup", "doubleparent", "doubleprime", "doubleverticalbar", "dowith", "dowithnextbox", "dowithnextboxcontent", "dowithnextboxcontentcs", "dowithnextboxcs", "dowithpargument", "dowithrange", "dowithwargument", "downarrow", "downdasharrow", "downdownarrows", "downharpoonleft", "downharpoonright", "downuparrows", "downwhitearrow", "downzigzagarrow", "dpofstring", "dstroke", "dtail", "dummydigit", "dummyparameter", "dzcaronligature", "dzligature", "eTeX", "eacute", "ebreve", "ecaron", "ecedilla", "ecircumflex", "ecircumflexacute", "ecircumflexdotbelow", "ecircumflexgrave", "ecircumflexhook", "ecircumflextilde", "edefconvertedargument", "ediaeresis", "edotaccent", "edotbelow", "edoublegrave", "efcmaxheight", "efcmaxwidth", "efcminheight", "efcminwidth", "efcparameter", "effect", "egrave", "ehook", "einvertedbreve", "elapsedseconds", "elapsedsteptime", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "enableasciimode", "enabledirectives", "enableexperiments", "enablemode", "enableoutputstream", "enableparpositions", "enableregime", "enabletrackers", "endash", "endnote", "enquad", "enskip", "enspace", "env", "environment", "envvar", "eogonek", "eoverbarfill", "eoverbracefill", "eoverbracketfill", "eoverparentfill", "epos", "epsilon", "eq", "eqcirc", "eqeq", "eqeqeq", "eqgtr", "eqless", "eqsim", "eqslantgtr", "eqslantless", "equaldigits", "equalscolon", "equiv", "erightarrowfill", "erightharpoondownfill", "erightharpoonupfill", "eta", "eth", "ethiopic", "etilde", "etwoheadrightarrowfill", "eunderbarfill", "eunderbracefill", "eunderbracketfill", "eunderparentfill", "exclamdown", "executeifdefined", "exists", "exitloop", "exitloopnow", "expandcheckedcsname", "expanded", "expandeddoif", "expandeddoifelse", "expandeddoifnot", "expandfontsynonym", "expdoif", "expdoifcommonelse", "expdoifelse", "expdoifelsecommon", "expdoifelseinset", "expdoifinsetelse", "expdoifnot", "exponentiale", "externalfigure", "externalfigurecollectionmaxheight", "externalfigurecollectionmaxwidth", "externalfigurecollectionminheight", "externalfigurecollectionminwidth", "externalfigurecollectionparameter", "fakebox", "fallingdotseq", "fastdecrement", "fastincrement", "fastlocalframed", "fastloopfinal", "fastloopindex", "fastscale", "fastsetup", "fastsetupwithargument", "fastsetupwithargumentswapped", "fastswitchtobodyfont", "fastsxsy", "feature", "fence", "fenced", "fetchallmarkings", "fetchallmarks", "fetchmark", "fetchmarking", "fetchonemark", "fetchonemarking", "fetchruntinecommand", "fetchtwomarkings", "fetchtwomarks", "ffiligature", "ffligature", "fflligature", "fhook", "field", "fieldbody", "fieldstack", "fifthoffivearguments", "fifthofsixarguments", "figurefilename", "figurefilepath", "figurefiletype", "figurefullname", "figureheight", "figurenaturalheight", "figurenaturalwidth", "figurespace", "figuresymbol", "figurewidth", "filename", "filigature", "filledhboxb", "filledhboxc", "filledhboxg", "filledhboxk", "filledhboxm", "filledhboxr", "filledhboxy", "filler", "fillinline", "fillinrules", "fillintext", "fillupto", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "firstinlist", "firstoffivearguments", "firstoffourarguments", "firstofoneargument", "firstofoneunexpanded", "firstofsixarguments", "firstofthreearguments", "firstofthreeunexpanded", "firstoftwoarguments", "firstoftwounexpanded", "firstrealpage", "firstrealpagenumber", "firstsubcountervalue", "firstsubpage", "firstsubpagenumber", "firstuserpage", "firstuserpagenumber", "fitfield", "fitfieldframed", "fittopbaselinegrid", "fiveeighths", "fivesixths", "fixedspace", "fixedspaces", "flag", "flat", "flligature", "floatuserdataparameter", "flushbox", "flushboxregister", "flushcollector", "flushedrightlastline", "flushlayer", "flushlocalfloats", "flushnextbox", "flushnotes", "flushoutputstream", "flushshapebox", "flushtextflow", "flushtokens", "flushtoks", "fontalternative", "fontbody", "fontchar", "fontcharbyindex", "fontclass", "fontclassname", "fontface", "fontfeaturelist", "fontsize", "fontstyle", "footnote", "footnotetext", "forall", "forcecharacterstripping", "forcelocalfloats", "forgeteverypar", "forgetparagraphfreezing", "forgetparameters", "forgetparskip", "forgetparwrapper", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "freezeparagraphproperties", "frenchspacing", "from", "fromlinenote", "frown", "frozenhbox", "frule", "gacute", "gamma", "gbreve", "gcaron", "gcircumflex", "gcommaaccent", "gdefconvertedargument", "gdefconvertedcommand", "gdotaccent", "ge", "geq", "geqq", "geqslant", "getMPdrawing", "getMPlayer", "getboxfromcache", "getboxllx", "getboxlly", "getbuffer", "getbufferdata", "getcommacommandsize", "getcommalistsize", "getdatavalue", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromluatable", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getinlineuserdata", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getparwrapper", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettokenlist", "gettwopassdata", "gettwopassdatalist", "getuserdata", "getuvalue", "getvalue", "getvariable", "getvariabledefault", "getxparameters", "gg", "ggg", "gggtr", "gimel", "globaldisablemode", "globalenablemode", "globalletempty", "globalpopbox", "globalpopmacro", "globalpreventmode", "globalprocesscommalist", "globalpushbox", "globalpushmacro", "globalswapcounts", "globalswapdimens", "globalswapmacros", "globalundefine", "glyphfontfile", "gnapprox", "gneqq", "gnsim", "gobbledoubleempty", "gobbleeightarguments", "gobblefivearguments", "gobblefiveoptionals", "gobblefourarguments", "gobblefouroptionals", "gobbleninearguments", "gobbleoneargument", "gobbleoneoptional", "gobblesevenarguments", "gobblesingleempty", "gobblesixarguments", "gobblespacetokens", "gobbletenarguments", "gobblethreearguments", "gobblethreeoptionals", "gobbletwoarguments", "gobbletwooptionals", "gobbleuntil", "gobbleuntilrelax", "godown", "goto", "gotobox", "gotopage", "grabbufferdata", "grabbufferdatadirect", "grabuntil", "grave", "graycolor", "grayvalue", "greedysplitstring", "greekAlpha", "greekAlphadasia", "greekAlphadasiaperispomeni", "greekAlphadasiatonos", "greekAlphadasiavaria", "greekAlphaiotasub", "greekAlphaiotasubdasia", "greekAlphaiotasubdasiaperispomeni", "greekAlphaiotasubdasiatonos", "greekAlphaiotasubdasiavaria", "greekAlphaiotasubpsili", "greekAlphaiotasubpsiliperispomeni", "greekAlphaiotasubpsilitonos", "greekAlphaiotasubpsilivaria", "greekAlphamacron", "greekAlphapsili", "greekAlphapsiliperispomeni", "greekAlphapsilitonos", "greekAlphapsilivaria", "greekAlphatonos", "greekAlphavaria", "greekAlphavrachy", "greekBeta", "greekChi", "greekCoronis", "greekDelta", "greekEpsilon", "greekEpsilondasia", "greekEpsilondasiatonos", "greekEpsilondasiavaria", "greekEpsilonpsili", "greekEpsilonpsilitonos", "greekEpsilonpsilivaria", "greekEpsilontonos", "greekEpsilonvaria", "greekEta", "greekEtadasia", "greekEtadasiaperispomeni", "greekEtadasiatonos", "greekEtadasiavaria", "greekEtaiotasub", "greekEtaiotasubdasia", "greekEtaiotasubdasiaperispomeni", "greekEtaiotasubdasiatonos", "greekEtaiotasubdasiavaria", "greekEtaiotasubpsili", "greekEtaiotasubpsiliperispomeni", "greekEtaiotasubpsilitonos", "greekEtaiotasubpsilivaria", "greekEtapsili", "greekEtapsiliperispomeni", "greekEtapsilitonos", "greekEtapsilivaria", "greekEtatonos", "greekEtavaria", "greekGamma", "greekIota", "greekIotadasia", "greekIotadasiaperispomeni", "greekIotadasiatonos", "greekIotadasiavaria", "greekIotadialytika", "greekIotamacron", "greekIotapsili", "greekIotapsiliperispomeni", "greekIotapsilitonos", "greekIotapsilivaria", "greekIotatonos", "greekIotavaria", "greekIotavrachy", "greekKappa", "greekLambda", "greekMu", "greekNu", "greekOmega", "greekOmegadasia", "greekOmegadasiaperispomeni", "greekOmegadasiatonos", "greekOmegadasiavaria", "greekOmegaiotasub", "greekOmegaiotasubdasia", "greekOmegaiotasubdasiaperispomeni", "greekOmegaiotasubdasiatonos", "greekOmegaiotasubdasiavaria", "greekOmegaiotasubpsili", "greekOmegaiotasubpsiliperispomeni", "greekOmegaiotasubpsilitonos", "greekOmegaiotasubpsilivaria", "greekOmegapsili", "greekOmegapsiliperispomeni", "greekOmegapsilitonos", "greekOmegapsilivaria", "greekOmegatonos", "greekOmegavaria", "greekOmicron", "greekOmicrondasia", "greekOmicrondasiatonos", "greekOmicrondasiavaria", "greekOmicronpsili", "greekOmicronpsilitonos", "greekOmicronpsilivaria", "greekOmicrontonos", "greekOmicronvaria", "greekPhi", "greekPi", "greekPsi", "greekRho", "greekRhodasia", "greekSigma", "greekSigmalunate", "greekTau", "greekTheta", "greekUpsilon", "greekUpsilondasia", "greekUpsilondasiaperispomeni", "greekUpsilondasiatonos", "greekUpsilondasiavaria", "greekUpsilondialytika", "greekUpsilonmacron", "greekUpsilontonos", "greekUpsilonvaria", "greekUpsilonvrachy", "greekXi", "greekZeta", "greekalpha", "greekalphadasia", "greekalphadasiaperispomeni", "greekalphadasiatonos", "greekalphadasiavaria", "greekalphaiotasub", "greekalphaiotasubdasia", "greekalphaiotasubdasiaperispomeni", "greekalphaiotasubdasiatonos", "greekalphaiotasubdasiavaria", "greekalphaiotasubperispomeni", "greekalphaiotasubpsili", "greekalphaiotasubpsiliperispomeni", "greekalphaiotasubpsilitonos", "greekalphaiotasubpsilivaria", "greekalphaiotasubtonos", "greekalphaiotasubvaria", "greekalphamacron", "greekalphaoxia", "greekalphaperispomeni", "greekalphapsili", "greekalphapsiliperispomeni", "greekalphapsilitonos", "greekalphapsilivaria", "greekalphatonos", "greekalphavaria", "greekalphavrachy", "greekbeta", "greekbetaalt", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiavaria", "greekdelta", "greekdialytikaperispomeni", "greekdialytikatonos", "greekdialytikavaria", "greekdigamma", "greekepsilon", "greekepsilonalt", "greekepsilondasia", "greekepsilondasiatonos", "greekepsilondasiavaria", "greekepsilonoxia", "greekepsilonpsili", "greekepsilonpsilitonos", "greekepsilonpsilivaria", "greekepsilontonos", "greekepsilonvaria", "greeketa", "greeketadasia", "greeketadasiaperispomeni", "greeketadasiatonos", "greeketadasiavaria", "greeketaiotasub", "greeketaiotasubdasia", "greeketaiotasubdasiaperispomeni", "greeketaiotasubdasiatonos", "greeketaiotasubdasiavaria", "greeketaiotasubperispomeni", "greeketaiotasubpsili", "greeketaiotasubpsiliperispomeni", "greeketaiotasubpsilitonos", "greeketaiotasubpsilivaria", "greeketaiotasubtonos", "greeketaiotasubvaria", "greeketaoxia", "greeketaperispomeni", "greeketapsili", "greeketapsiliperispomeni", "greeketapsilitonos", "greeketapsilivaria", "greeketatonos", "greeketavaria", "greekfinalsigma", "greekgamma", "greekiota", "greekiotadasia", "greekiotadasiaperispomeni", "greekiotadasiatonos", "greekiotadasiavaria", "greekiotadialytika", "greekiotadialytikaperispomeni", "greekiotadialytikatonos", "greekiotadialytikavaria", "greekiotamacron", "greekiotaoxia", "greekiotaperispomeni", "greekiotapsili", "greekiotapsiliperispomeni", "greekiotapsilitonos", "greekiotapsilivaria", "greekiotatonos", "greekiotavaria", "greekiotavrachy", "greekkappa", "greekkoppa", "greeklambda", "greekmu", "greeknu", "greeknumerals", "greeknumkoppa", "greekomega", "greekomegadasia", "greekomegadasiaperispomeni", "greekomegadasiatonos", "greekomegadasiavaria", "greekomegaiotasub", "greekomegaiotasubdasia", "greekomegaiotasubdasiaperispomeni", "greekomegaiotasubdasiatonos", "greekomegaiotasubdasiavaria", "greekomegaiotasubperispomeni", "greekomegaiotasubpsili", "greekomegaiotasubpsiliperispomeni", "greekomegaiotasubpsilitonos", "greekomegaiotasubpsilivaria", "greekomegaiotasubtonos", "greekomegaiotasubvaria", "greekomegaoxia", "greekomegaperispomeni", "greekomegapsili", "greekomegapsiliperispomeni", "greekomegapsilitonos", "greekomegapsilivaria", "greekomegatonos", "greekomegavaria", "greekomicron", "greekomicrondasia", "greekomicrondasiatonos", "greekomicrondasiavaria", "greekomicronoxia", "greekomicronpsili", "greekomicronpsilitonos", "greekomicronpsilivaria", "greekomicrontonos", "greekomicronvaria", "greekoxia", "greekperispomeni", "greekphi", "greekphialt", "greekpi", "greekpialt", "greekprosgegrammeni", "greekpsi", "greekpsili", "greekpsiliperispomeni", "greekpsilivaria", "greekrho", "greekrhoalt", "greekrhodasia", "greekrhopsili", "greeksampi", "greeksigma", "greeksigmalunate", "greekstigma", "greektau", "greektheta", "greekthetaalt", "greektonos", "greekupsilon", "greekupsilondasia", "greekupsilondasiaperispomeni", "greekupsilondasiatonos", "greekupsilondasiavaria", "greekupsilondiaeresis", "greekupsilondialytikaperispomeni", "greekupsilondialytikatonos", "greekupsilondialytikavaria", "greekupsilonmacron", "greekupsilonoxia", "greekupsilonperispomeni", "greekupsilonpsili", "greekupsilonpsiliperispomeni", "greekupsilonpsilitonos", "greekupsilonpsilivaria", "greekupsilontonos", "greekupsilonvaria", "greekupsilonvrachy", "greekvaria", "greekxi", "greekzeta", "grid", "groupedcommand", "gsetboxllx", "gsetboxlly", "gstroke", "gt", "gtrapprox", "gtrdot", "gtreqless", "gtreqqless", "gtrless", "gtrsim", "guilsingleleft", "guilsingleright", "gujaratinumerals", "gurmurkhinumerals", "hairline", "hairspace", "halflinestrut", "halfstrut", "halfwaybox", "handletokens", "handwritten", "hangul", "hanzi", "hash", "hat", "hbar", "hboxofvbox", "hboxreference", "hcaron", "hcircumflex", "hdofstring", "headhbox", "headlanguage", "headnumber", "headnumbercontent", "headnumberdistance", "headnumberwidth", "headreferenceattributes", "headsetupspacing", "headtext", "headtextcontent", "headtextdistance", "headtexts", "headtextwidth", "headvbox", "headwidth", "heartsuit", "hebrewAlef", "hebrewAyin", "hebrewBet", "hebrewDalet", "hebrewGimel", "hebrewHe", "hebrewHet", "hebrewKaf", "hebrewKaffinal", "hebrewLamed", "hebrewMem", "hebrewMemfinal", "hebrewNun", "hebrewNunfinal", "hebrewPe", "hebrewPefinal", "hebrewQof", "hebrewResh", "hebrewSamekh", "hebrewShin", "hebrewTav", "hebrewTet", "hebrewTsadi", "hebrewTsadifinal", "hebrewVav", "hebrewYod", "hebrewZayin", "hebrewnumerals", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hexnumber", "hexstringtonumber", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "hpackbox", "hpackedbox", "hphantom", "hpos", "hsizefraction", "hslash", "hsmash", "hsmashbox", "hsmashed", "hspace", "hstroke", "htdpofstring", "htofstring", "hyphen", "hyphenatedcoloredword", "hyphenatedfile", "hyphenatedfilename", "hyphenatedhbox", "hyphenatedpar", "hyphenatedurl", "hyphenatedword", "iacute", "ibox", "ibreve", "icaron", "icircumflex", "ideographichalffillspace", "ideographicspace", "idiaeresis", "idotaccent", "idotbelow", "idoublegrave", "idxfromluatable", "ifassignment", "iff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignoretagsinexport", "ignorevalue", "igrave", "ihook", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "includesvgbuffer", "includesvgfile", "includeversioninfo", "increment", "incrementcounter", "incrementedcounter", "incrementpagenumber", "incrementsubpagenumber", "incrementvalue", "indentation", "index", "infofont", "infofontbold", "inframed", "infty", "infull", "inheritparameter", "inhibitblank", "ininner", "ininneredge", "ininnermargin", "initializeboxstack", "inleft", "inleftedge", "inleftmargin", "inline", "inlinebuffer", "inlinedbox", "inlinemath", "inlinemathematics", "inlinemessage", "inlineordisplaymath", "inlineprettyprintbuffer", "inlinerange", "inmargin", "inmframed", "innerflushshapebox", "inother", "inouter", "inouteredge", "inoutermargin", "input", "inputfilebarename", "inputfilename", "inputfilerealsuffix", "inputfilesuffix", "inputgivenfile", "inright", "inrightedge", "inrightmargin", "insertpages", "inspectluatable", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installctxfunction", "installctxscanner", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installglobalmacrostack", "installlanguage", "installleftframerenderer", "installmacrostack", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "installprotectedctxfunction", "installprotectedctxscanner", "installrightframerenderer", "installrootparameterhandler", "installsetuphandler", "installsetuponlycommandhandler", "installshipoutmethod", "installsimplecommandhandler", "installsimpleframedcommandhandler", "installstyleandcolorhandler", "installswitchcommandhandler", "installswitchsetuphandler", "installtexdirective", "installtextracker", "installtopframerenderer", "installunitsseparator", "installunitsspace", "installversioninfo", "int", "intclockwise", "integerrounding", "integers", "interactionbar", "interactionbuttons", "interactionmenu", "intercal", "intertext", "interwordspaceafter", "interwordspacebefore", "interwordspaces", "interwordspacesafter", "interwordspacesbefore", "intop", "invisibletimes", "invokepagehandler", "iogonek", "iota", "italic", "italicbold", "italiccorrection", "italicface", "item", "items", "itemtag", "itilde", "jcaron", "jcircumflex", "jmath", "jobfilename", "jobfilesuffix", "kap", "kappa", "kcaron", "kcommaaccent", "keepblocks", "keeplinestogether", "keepunwantedspaces", "kerncharacters", "khook", "kkra", "koreancirclenumerals", "koreannumerals", "koreannumeralsc", "koreannumeralsp", "koreanparentnumerals", "lVert", "labellanguage", "labeltext", "labeltexts", "lacute", "lambda", "lambdabar", "land", "langle", "language", "languageCharacters", "languagecharacters", "languagecharwidth", "lastcounter", "lastcountervalue", "lastdigit", "lastlinewidth", "lastnaturalboxdp", "lastnaturalboxht", "lastnaturalboxwd", "lastparwrapper", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "lchexnumber", "lchexnumbers", "lcommaaccent", "lcurl", "ldotmiddle", "ldotp", "ldots", "le", "leadsto", "left", "leftaligned", "leftarrow", "leftarrowtail", "leftarrowtriangle", "leftbottombox", "leftbox", "leftdasharrow", "leftguillemot", "leftharpoondown", "leftharpoonup", "lefthbox", "leftheadtext", "leftlabeltext", "leftleftarrows", "leftline", "leftmathlabeltext", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "leftrightarrow", "leftrightarrows", "leftrightarrowtriangle", "leftrightharpoons", "leftrightsquigarrow", "leftskipadaption", "leftsquigarrow", "leftsubguillemot", "leftthreetimes", "lefttopbox", "lefttoright", "lefttorighthbox", "lefttorightvbox", "lefttorightvtop", "leftwavearrow", "leftwhitearrow", "leq", "leqq", "leqslant", "lessapprox", "lessdot", "lesseqgtr", "lesseqqgtr", "lessgtr", "lesssim", "letbeundefined", "letcatcodecommand", "letcscsname", "letcsnamecs", "letcsnamecsname", "letdummyparameter", "letempty", "letgvalue", "letgvalueempty", "letgvalurelax", "letterampersand", "letterat", "letterbackslash", "letterbar", "letterbgroup", "letterclosebrace", "lettercolon", "letterdollar", "letterdoublequote", "letteregroup", "letterescape", "letterexclamationmark", "letterhash", "letterhat", "letterleftbrace", "letterleftbracket", "letterleftparenthesis", "letterless", "lettermore", "letteropenbrace", "letterpercent", "letterquestionmark", "letterrightbrace", "letterrightbracket", "letterrightparenthesis", "lettersinglequote", "letterslash", "letterspacing", "lettertilde", "letterunderscore", "letvalue", "letvalueempty", "letvaluerelax", "lfence", "lfloor", "lgroup", "lhbox", "lhooknwarrow", "lhooksearrow", "limitatefirstline", "limitatelines", "limitatetext", "line", "linebox", "linefeed", "linefillerhbox", "linefillervbox", "linefillervtop", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "literalmode", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "llointerval", "lmoustache", "lnapprox", "lneq", "lneqq", "lnot", "lnsim", "loadanyfile", "loadanyfileonce", "loadbtxdefinitionfile", "loadbtxreplacementfile", "loadcldfile", "loadcldfileonce", "loadfontgoodies", "loadluafile", "loadluafileonce", "loadspellchecklist", "loadtexfile", "loadtexfileonce", "loadtypescriptfile", "localframed", "localframedwithsettings", "localhsize", "localpopbox", "localpopmacro", "localpushbox", "localpushmacro", "localundefine", "locatedfilepath", "locatefilepath", "locfilename", "logo", "lohi", "lointerval", "lomihi", "longleftarrow", "longleftrightarrow", "longmapsfrom", "longmapsto", "longrightarrow", "longrightsquigarrow", "looparrowleft", "looparrowright", "lor", "low", "lowerbox", "lowercased", "lowercasestring", "lowercasing", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "ltrhbox", "ltrvbox", "ltrvtop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luametaTeX", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "markedpages", "marking", "markinjector", "markpage", "markreferencepage", "mat", "math", "mathampersand", "mathbf", "mathbi", "mathblackboard", "mathbs", "mathdefault", "mathdollar", "mathdouble", "mathematics", "mathfraktur", "mathfunction", "mathhash", "mathhyphen", "mathit", "mathitalic", "mathlabellanguage", "mathlabeltext", "mathlabeltexts", "mathop", "mathover", "mathpercent", "mathrm", "mathscript", "mathsl", "mathss", "mathtext", "mathtextbf", "mathtextbi", "mathtextbs", "mathtextit", "mathtextsl", "mathtexttf", "mathtf", "mathtriplet", "mathtt", "mathunder", "mathupright", "mathword", "mathwordbf", "mathwordbi", "mathwordbs", "mathwordit", "mathwordsl", "mathwordtf", "maxaligned", "mbox", "mcframed", "measure", "measured", "measuredangle", "measuredeq", "medskip", "medspace", "menubutton", "mequal", "message", "mfence", "mframed", "mfunction", "mfunctionlabeltext", "mhbox", "mho", "mhookleftarrow", "mhookrightarrow", "mid", "midaligned", "middle", "middlealigned", "middlebox", "midhbox", "midsubsentence", "minimalhbox", "minus", "minuscolon", "mirror", "mixedcaps", "mkvibuffer", "mleftarrow", "mleftharpoondown", "mleftharpoonup", "mleftrightarrow", "mleftrightharpoons", "mmapsto", "models", "moduleparameter", "molecule", "mono", "monobold", "mononormal", "month", "monthlong", "monthshort", "mp", "mprandomnumber", "mrel", "mrightarrow", "mrightharpoondown", "mrightharpoonup", "mrightleftharpoons", "mrightoverleftarrow", "mtext", "mtriplerel", "mtwoheadleftarrow", "mtwoheadrightarrow", "mu", "multimap", "nHdownarrow", "nHuparrow", "nLeftarrow", "nLeftrightarrow", "nRightarrow", "nVDash", "nVdash", "nVleftarrow", "nVleftrightarrow", "nVrightarrow", "nabla", "nacute", "namedheadnumber", "namedstructureheadlocation", "namedstructureuservariable", "namedstructurevariable", "namedtaggedlabeltexts", "napostrophe", "napprox", "napproxEq", "narrownobreakspace", "nasymp", "natural", "naturalhbox", "naturalhpack", "naturalnumbers", "naturaltpack", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negemspace", "negenspace", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "newluatable", "newmode", "newsignal", "newsystemmode", "nexists", "nextbox", "nextboxdp", "nextboxht", "nextboxhtdp", "nextboxwd", "nextcounter", "nextcountervalue", "nextdepth", "nextparagraphs", "nextrealpage", "nextrealpagenumber", "nextsubcountervalue", "nextsubpage", "nextsubpagenumber", "nextuserpage", "nextuserpagenumber", "ngeq", "ngrave", "ngtr", "ngtrless", "ngtrsim", "ni", "nihongo", "nin", "njligature", "nleftarrow", "nleftrightarrow", "nleq", "nless", "nlessgtr", "nlesssim", "nmid", "nni", "nobar", "nobreakspace", "nocap", "nocharacteralign", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflinesinbox", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "nohyphens", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "nonvalidassignment", "normal", "normalboldface", "normalframedwithsettings", "normalitalicface", "normalizebodyfontsize", "normalizedfontsize", "normalizefontdepth", "normalizefontheight", "normalizefontline", "normalizefontwidth", "normalizetextdepth", "normalizetextheight", "normalizetextline", "normalizetextwidth", "normalslantedface", "normaltypeface", "nospace", "not", "note", "notesymbol", "notin", "notopandbottomlines", "notragged", "nowns", "nparallel", "nprec", "npreccurlyeq", "nrightarrow", "nsim", "nsimeq", "nsqsubseteq", "nsqsupseteq", "nsubset", "nsubseteq", "nsucc", "nsucccurlyeq", "nsupset", "nsupseteq", "ntilde", "ntimes", "ntriangleleft", "ntrianglelefteq", "ntriangleright", "ntrianglerighteq", "nu", "numberofpoints", "numbers", "nvDash", "nvdash", "nvleftarrow", "nvleftrightarrow", "nvrightarrow", "nwarrow", "nwsearrow", "oacute", "obeydepth", "objectdepth", "objectheight", "objectmargin", "objectwidth", "obox", "obreve", "ocaron", "ocircumflex", "ocircumflexacute", "ocircumflexdotbelow", "ocircumflexgrave", "ocircumflexhook", "ocircumflextilde", "octnumber", "octstringtonumber", "odiaeresis", "odiaeresismacron", "odot", "odotaccent", "odotaccentmacron", "odotbelow", "odoublegrave", "oeligature", "offset", "offsetbox", "ograve", "ohm", "ohook", "ohorn", "ohornacute", "ohorndotbelow", "ohorngrave", "ohornhook", "ohorntilde", "ohungarumlaut", "oiiint", "oiint", "oint", "ointclockwise", "ointctrclockwise", "oinvertedbreve", "omacron", "omega", "omicron", "ominus", "onedigitrounding", "oneeighth", "onefifth", "onehalf", "onequarter", "onesixth", "onesuperior", "onethird", "oogonek", "oogonekmacron", "operatorlanguage", "operatortext", "oplus", "ordfeminine", "ordinaldaynumber", "ordinalstr", "ordmasculine", "ornamenttext", "oslash", "ostroke", "ostrokeacute", "otilde", "otildemacron", "otimes", "outputfilename", "outputstreambox", "outputstreamcopy", "outputstreamunvbox", "outputstreamunvcopy", "over", "overbar", "overbars", "overbartext", "overbarunderbar", "overbrace", "overbracetext", "overbraceunderbrace", "overbracket", "overbrackettext", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlayimage", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overleftharpoondown", "overleftharpoonup", "overleftrightarrow", "overloaderror", "overparent", "overparenttext", "overparentunderparent", "overrightarrow", "overrightharpoondown", "overrightharpoonup", "overset", "overstrike", "overstrikes", "overtwoheadleftarrow", "overtwoheadrightarrow", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "pagestaterealpageorder", "paletsize", "paragraphmark", "parallel", "part", "partial", "pdfTeX", "pdfactualtext", "pdfbackendactualtext", "pdfbackendcurrentresources", "pdfbackendsetcatalog", "pdfbackendsetcolorspace", "pdfbackendsetextgstate", "pdfbackendsetinfo", "pdfbackendsetname", "pdfbackendsetpageattribute", "pdfbackendsetpageresource", "pdfbackendsetpagesattribute", "pdfbackendsetpattern", "pdfbackendsetshade", "pdfcolor", "pdfeTeX", "percent", "percentdimen", "periodcentered", "periods", "permitcaretescape", "permitcircumflexescape", "permitspacesbetweengroups", "perp", "persiandecimals", "persiandecimalseparator", "persiannumerals", "persianthousandsseparator", "perthousand", "phantom", "phantombox", "phi", "phook", "pi", "pickupgroupedcommand", "pitchfork", "placeattachments", "placebookmarks", "placebtxrendering", "placechemical", "placecitation", "placecombinedlist", "placecomments", "placecontent", "placecurrentformulanumber", "placedbox", "placefigure", "placefloat", "placefloatcaption", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "placeholder", "placeindex", "placeinitial", "placeintermezzo", "placelayer", "placelayeredtext", "placelegend", "placelist", "placelistofabbreviations", "placelistofchemicals", "placelistoffigures", "placelistofgraphics", "placelistofintermezzi", "placelistoflogos", "placelistofpublications", "placelistofsorts", "placelistofsynonyms", "placelistoftables", "placelocalfootnotes", "placelocalnotes", "placement", "placenamedfloat", "placenamedformula", "placenotes", "placeongrid", "placeontopofeachother", "placepagenumber", "placepairedbox", "placeparallel", "placerawheaddata", "placerawheadnumber", "placerawheadtext", "placerawlist", "placeregister", "placerenderingwindow", "placesidebyside", "placesubformula", "placetable", "pm", "popattribute", "popmacro", "popmode", "popsystemmode", "position", "positionoverlay", "positionregionoverlay", "positivesign", "postponenotes", "prec", "precapprox", "preccurlyeq", "preceq", "preceqq", "precnapprox", "precneq", "precneqq", "precnsim", "precsim", "predefinedfont", "predefinefont", "predefinesymbol", "prefixedpagenumber", "prefixlanguage", "prefixtext", "prependetoks", "prependgvalue", "prependtocommalist", "prependtoks", "prependtoksonce", "prependvalue", "prerollblank", "presetbtxlabeltext", "presetdocument", "presetfieldsymbols", "presetheadtext", "presetlabeltext", "presetmathlabeltext", "presetoperatortext", "presetprefixtext", "presetsuffixtext", "presettaglabeltext", "presetunittext", "pretocommalist", "prettyprintbuffer", "prevcounter", "prevcountervalue", "preventmode", "prevrealpage", "prevrealpagenumber", "prevsubcountervalue", "prevsubpage", "prevsubpagenumber", "prevuserpage", "prevuserpagenumber", "prime", "primes", "procent", "processMPbuffer", "processMPfigurefile", "processaction", "processallactionsinset", "processassignlist", "processassignmentcommand", "processassignmentlist", "processbetween", "processblocks", "processbodyfontenvironmentlist", "processcolorcomponents", "processcommacommand", "processcommalist", "processcommalistwithparameters", "processcontent", "processfile", "processfilemany", "processfilenone", "processfileonce", "processfirstactioninset", "processisolatedchars", "processisolatedwords", "processlinetablebuffer", "processlinetablefile", "processlist", "processmonth", "processranges", "processseparatedlist", "processtexbuffer", "processtokens", "processuntil", "processxtablebuffer", "processyear", "prod", "product", "profiledbox", "profilegivenbox", "program", "project", "propto", "pseudoMixedCapped", "pseudoSmallCapped", "pseudoSmallcapped", "pseudosmallcapped", "psi", "punctuationspace", "purenumber", "pushattribute", "pushbutton", "pushmacro", "pushmode", "pushoutputstream", "pushsystemmode", "putboxincache", "putnextboxincache", "qquad", "quad", "quadrupleprime", "quads", "quarterstrut", "questiondown", "questionedeq", "quitcommalist", "quitprevcommalist", "quittypescriptscanning", "quotation", "quote", "quotedbl", "quotedblbase", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "quotesingle", "quotesinglebase", "rVert", "racute", "raggedbottom", "raggedcenter", "raggedleft", "raggedright", "raggedwidecenter", "raisebox", "randomizetext", "randomnumber", "rangle", "rationals", "rawcounter", "rawcountervalue", "rawdate", "rawdoifelseinset", "rawdoifinset", "rawdoifinsetelse", "rawgetparameters", "rawprocessaction", "rawprocesscommacommand", "rawprocesscommalist", "rawstructurelistuservariable", "rawsubcountervalue", "rbox", "rbrace", "rbracket", "rcaron", "rceil", "rcommaaccent", "rdoublegrave", "readfile", "readfixfile", "readjobfile", "readlocfile", "readsetfile", "readsysfile", "readtexfile", "readxmlfile", "realSmallCapped", "realSmallcapped", "realpagenumber", "reals", "realsmallcapped", "recursedepth", "recurselevel", "recursestring", "redoconvertfont", "ref", "reference", "referencecolumnnumber", "referencepagedetail", "referencepagestate", "referenceprefix", "referencerealpage", "referencesymbol", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registerparwrapper", "registerparwrapperreverse", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "repeathead", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetctxscanner", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetperiodkerning", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacements", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettokenlist", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "retestfeature", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "reversehbox", "reversehpack", "reversetpack", "reversevbox", "reversevboxcontent", "reversevpack", "reversevtop", "revivefeature", "rfence", "rfloor", "rgroup", "rhbox", "rho", "rhooknearrow", "rhookswarrow", "right", "rightaligned", "rightangle", "rightarrow", "rightarrowbar", "rightarrowtail", "rightarrowtriangle", "rightbottombox", "rightbox", "rightdasharrow", "rightguillemot", "rightharpoondown", "rightharpoonup", "righthbox", "rightheadtext", "rightlabeltext", "rightleftarrows", "rightleftharpoons", "rightline", "rightmathlabeltext", "rightorleftpageaction", "rightpageorder", "rightrightarrows", "rightskipadaption", "rightsquigarrow", "rightsubguillemot", "rightthreearrows", "rightthreetimes", "righttoleft", "righttolefthbox", "righttoleftvbox", "righttoleftvtop", "righttopbox", "rightwavearrow", "rightwhitearrow", "ring", "rinterval", "rinvertedbreve", "risingdotseq", "rlap", "rlointerval", "rmoustache", "rneq", "robustaddtocommalist", "robustdoifelseinset", "robustdoifinsetelse", "robustpretocommalist", "rointerval", "rollbutton", "roman", "romanC", "romanD", "romanI", "romanII", "romanIII", "romanIV", "romanIX", "romanL", "romanM", "romanV", "romanVI", "romanVII", "romanVIII", "romanX", "romanXI", "romanXII", "romanc", "romand", "romani", "romanii", "romaniii", "romaniv", "romanix", "romanl", "romanm", "romannumerals", "romanv", "romanvi", "romanvii", "romanviii", "romanx", "romanxi", "romanxii", "rootradical", "rotate", "rparent", "rrangle", "rrbracket", "rrointerval", "rtimes", "rtlhbox", "rtlvbox", "rtlvtop", "rtop", "ruby", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "russianNumerals", "russiannumerals", "rvert", "sacute", "safechar", "samplefile", "sans", "sansbold", "sansnormal", "sansserif", "savebox", "savebtxdataset", "savebuffer", "savecounter", "savecurrentattributes", "savenormalmeaning", "savetaggedtwopassdata", "savetwopassdata", "sbox", "scale", "scaron", "scedilla", "schwa", "schwahook", "scircumflex", "scommaaccent", "screen", "searrow", "secondoffivearguments", "secondoffourarguments", "secondofsixarguments", "secondofthreearguments", "secondofthreeunexpanded", "secondoftwoarguments", "secondoftwounexpanded", "section", "sectionmark", "seeindex", "select", "selectblocks", "serializecommalist", "serializedcommalist", "serif", "serifbold", "serifnormal", "setJSpreamble", "setMPlayer", "setMPpositiongraphic", "setMPpositiongraphicrange", "setMPtext", "setMPvariable", "setMPvariables", "setautopagestaterealpageno", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharacteraligndetail", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setctxluafunction", "setcurrentfontclass", "setdataset", "setdatavalue", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setexpansion", "setfirstline", "setfirstpasscharacteralign", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setfractions", "setglobalscript", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setlocalscript", "setluatable", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagereference", "setpagestate", "setpagestaterealpageno", "setparagraphfreezing", "setpenalties", "setpercentdimen", "setperiodkerning", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacements", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsecondpasscharacteralign", "setsectionblock", "setsimplecolumnshsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settestcrlf", "settextcontent", "settightobject", "settightreferencedobject", "settightstrut", "settightunreferencedobject", "settokenlist", "settrialtypesetting", "setuevalue", "setugvalue", "setunreferencedobject", "setup", "setupMPgraphics", "setupMPinstance", "setupMPpage", "setupMPvariables", "setupTABLE", "setupTEXpage", "setupalign", "setupalternativestyles", "setuparranging", "setupattachment", "setupattachments", "setupbackend", "setupbackground", "setupbackgrounds", "setupbar", "setupbars", "setupblackrules", "setupblank", "setupbleeding", "setupblock", "setupbodyfont", "setupbodyfontenvironment", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacteralign", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnset", "setupcolumnsetarea", "setupcolumnsetareatext", "setupcolumnsetlines", "setupcolumnsetspan", "setupcolumnsetstart", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdescriptions", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexpansion", "setupexport", "setupexternalfigure", "setupexternalfigures", "setupexternalsoundtracks", "setupfacingfloat", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatframed", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "setupfootnotes", "setupforms", "setupformula", "setupformulae", "setupformulaframed", "setupframed", "setupframedcontent", "setupframedtable", "setupframedtablecolumn", "setupframedtablerow", "setupframedtext", "setupframedtexts", "setupglobalreferenceprefix", "setuphead", "setupheadalternative", "setupheader", "setupheadertexts", "setupheadnumber", "setupheads", "setupheadtext", "setuphelp", "setuphigh", "setuphighlight", "setuphyphenation", "setuphyphenmark", "setupindentedtext", "setupindenting", "setupindex", "setupinitial", "setupinsertion", "setupinteraction", "setupinteractionbar", "setupinteractionmenu", "setupinteractionscreen", "setupinterlinespace", "setupitaliccorrection", "setupitemgroup", "setupitemizations", "setupitemize", "setupitems", "setuplabel", "setuplabeltext", "setuplanguage", "setuplayer", "setuplayeredtext", "setuplayout", "setuplayouttext", "setuplegend", "setuplinefiller", "setuplinefillers", "setuplinenote", "setuplinenumbering", "setuplines", "setuplinetable", "setuplinewidth", "setuplist", "setuplistalternative", "setuplistextra", "setuplocalfloats", "setuplocalinterlinespace", "setuplow", "setuplowhigh", "setuplowmidhigh", "setupmakeup", "setupmarginblock", "setupmargindata", "setupmarginframed", "setupmarginrule", "setupmarginrules", "setupmarking", "setupmathalignment", "setupmathcases", "setupmathematics", "setupmathfence", "setupmathfraction", "setupmathfractions", "setupmathframed", "setupmathlabeltext", "setupmathmatrix", "setupmathornament", "setupmathradical", "setupmathstackers", "setupmathstyle", "setupmixedcolumns", "setupmodule", "setupmulticolumns", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setuporientation", "setupoutput", "setupoutputroutine", "setuppagechecker", "setuppagecolumns", "setuppagecomment", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiodkerning", "setupperiods", "setupplaceholder", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setupruby", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstrut", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbols", "setupsymbolset", "setupsynctex", "setupsynonyms", "setupsystem", "setuptables", "setuptabulate", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextnote", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "setupuserdata", "setupuserdataalternative", "setupuserpagenumber", "setupversion", "setupviewerlayer", "setupvspacing", "setupwhitespace", "setupwithargument", "setupwithargumentswapped", "setupxml", "setupxtable", "setuvalue", "setuxvalue", "setvalue", "setvariable", "setvariables", "setvboxregister", "setvisualizerfont", "setvtopregister", "setwidthof", "setxmeasure", "setxvalue", "setxvariable", "setxvariables", "seveneighths", "sfrac", "shapedhbox", "sharp", "shiftbox", "shiftdown", "shiftup", "showallmakeup", "showattributes", "showbodyfont", "showbodyfontenvironment", "showboxes", "showbtxdatasetauthors", "showbtxdatasetcompleteness", "showbtxdatasetfields", "showbtxfields", "showbtxhashedauthors", "showbtxtables", "showchardata", "showcharratio", "showcolor", "showcolorbar", "showcolorcomponents", "showcolorgroup", "showcolorset", "showcolorstruts", "showcounter", "showdirectives", "showdirsinmargin", "showedebuginfo", "showexperiments", "showfont", "showfontdata", "showfontexpansion", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphdata", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showluatables", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showparwrapperstate", "showprint", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "signalrightpage", "sim", "simeq", "simplealignedbox", "simplealignedboxplus", "simplealignedspreadbox", "simplegroupedcommand", "simplereversealignedbox", "simplereversealignedboxplus", "singalcharacteralign", "singlebond", "singleverticalbar", "sixperemspace", "sixthofsixarguments", "slanted", "slantedbold", "slantedface", "slash", "slicepages", "slong", "slovenianNumerals", "sloveniannumerals", "small", "smallbodyfont", "smallbold", "smallbolditalic", "smallboldslanted", "smallcappedcharacters", "smallcappedromannumerals", "smallcaps", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "spaceddigits", "spaceddigitsmethod", "spaceddigitsseparator", "spaceddigitssymbol", "spadesuit", "spanishNumerals", "spanishnumerals", "speech", "sphericalangle", "splitatasterisk", "splitatcolon", "splitatcolons", "splitatcomma", "splitatperiod", "splitdfrac", "splitfilename", "splitfloat", "splitfrac", "splitoffbase", "splitofffull", "splitoffkind", "splitoffname", "splitoffpath", "splitoffroot", "splitofftokens", "splitofftype", "splitstring", "spreadhbox", "sqcap", "sqcup", "sqrt", "sqsubset", "sqsubseteq", "sqsubsetneq", "sqsupset", "sqsupseteq", "sqsupsetneq", "square", "squaredots", "ssharp", "stackrel", "stackscripts", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnested", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "startasciimode", "startaside", "startattachment", "startbackground", "startbackmatter", "startbar", "startbbordermatrix", "startbitmapimage", "startblockquote", "startbodymatter", "startbordermatrix", "startboxedcolumns", "startbtxlabeltext", "startbtxrenderingdefinitions", "startbuffer", "startcases", "startcatcodetable", "startcenteraligned", "startchapter", "startcharacteralign", "startcheckedfences", "startchemical", "startchemicaltext", "startcollect", "startcollecting", "startcolor", "startcolorintent", "startcoloronly", "startcolorset", "startcolumns", "startcolumnset", "startcolumnsetspan", "startcombination", "startcomment", "startcomponent", "startcontextcode", "startcontextdefinitioncode", "startctxfunction", "startctxfunctiondefinition", "startcurrentcolor", "startcurrentlistentrywrapper", "startdelimited", "startdelimitedtext", "startdisplaymath", "startdmath", "startdocument", "starteffect", "startelement", "startembeddedxtable", "startendnote", "startendofline", "startenvironment", "startexceptions", "startexpanded", "startexpandedcollect", "startextendedcatcodetable", "startexternalfigurecollection", "startfacingfloat", "startfact", "startfigure", "startfiguretext", "startfittingpage", "startfixed", "startfloatcombination", "startfont", "startfontclass", "startfontsolution", "startfootnote", "startformula", "startformulas", "startframed", "startframedcell", "startframedcontent", "startframedrow", "startframedtable", "startframedtext", "startfrontmatter", "startgoto", "startgraphictext", "startgridsnapping", "starthanging", "starthbox", "starthboxestohbox", "starthboxregister", "starthead", "startheadtext", "starthelptext", "starthiding", "starthighlight", "starthyphenation", "startimath", "startindentation", "startindentedtext", "startinteraction", "startinteractionmenu", "startinterface", "startintermezzotext", "startintertext", "startitem", "startitemgroup", "startitemgroupcolumns", "startitemize", "startknockout", "startlabeltext", "startlanguage", "startlayout", "startleftaligned", "startlegend", "startline", "startlinealignment", "startlinecorrection", "startlinefiller", "startlinenote", "startlinenumbering", "startlines", "startlinetable", "startlinetablebody", "startlinetablecell", "startlinetablehead", "startlocalfootnotes", "startlocalheadsetup", "startlocallinecorrection", "startlocalnotes", "startlocalsetups", "startlua", "startluacode", "startluaparameterset", "startluasetups", "startmakeup", "startmarginblock", "startmarginrule", "startmarkedcontent", "startmarkpages", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startmulticolumns", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecolumns", "startpagecomment", "startpagefigure", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startpostponingnotes", "startprefixtext", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startruby", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startsplittext", "startspread", "startstandardmakeup", "startstaticMPfigure", "startstaticMPgraphic", "startstrictinspectnextcharacter", "startstructurepageregister", "startstrut", "startstyle", "startsubformulas", "startsubject", "startsubjectlevel", "startsubsection", "startsubsentence", "startsubstack", "startsubsubject", "startsubsubsection", "startsubsubsubject", "startsubsubsubsection", "startsubsubsubsubject", "startsubsubsubsubsection", "startsubsubsubsubsubject", "startsuffixtext", "startsymbolset", "starttable", "starttablehead", "starttables", "starttabletail", "starttabletext", "starttabulate", "starttabulatehead", "starttabulatetail", "starttagged", "starttaglabeltext", "starttexcode", "starttexdefinition", "starttext", "starttextbackground", "starttextbackgroundmanual", "starttextcolor", "starttextcolorintent", "starttextflow", "starttextmakeup", "starttextrule", "startthematrix", "starttitle", "starttokenlist", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startuserdata", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "startxcolumn", "startxgroup", "startxmldisplayverbatim", "startxmlinlineverbatim", "startxmlraw", "startxmlsetups", "startxrow", "startxrowgroup", "startxtable", "startxtablebody", "startxtablefoot", "startxtablehead", "startxtablenext", "stligature", "stopJScode", "stopJSpreamble", "stopLUA", "stopMP", "stopMPclip", "stopMPcode", "stopMPdefinitions", "stopMPdrawing", "stopMPenvironment", "stopMPextensions", "stopMPinclusions", "stopMPinitializations", "stopMPpage", "stopMPpositiongraphic", "stopMPpositionmethod", "stopMPrun", "stopPARSEDXML", "stopTABLE", "stopTABLEbody", "stopTABLEfoot", "stopTABLEhead", "stopTABLEnested", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "stopasciimode", "stopaside", "stopattachment", "stopbackground", "stopbackmatter", "stopbar", "stopbbordermatrix", "stopbitmapimage", "stopblockquote", "stopbodymatter", "stopbordermatrix", "stopboxedcolumns", "stopbtxlabeltext", "stopbtxrenderingdefinitions", "stopbuffer", "stopcases", "stopcatcodetable", "stopcenteraligned", "stopchapter", "stopcharacteralign", "stopcheckedfences", "stopchemical", "stopchemicaltext", "stopcollect", "stopcollecting", "stopcolor", "stopcolorintent", "stopcoloronly", "stopcolorset", "stopcolumns", "stopcolumnset", "stopcolumnsetspan", "stopcombination", "stopcomment", "stopcomponent", "stopcontextcode", "stopcontextdefinitioncode", "stopctxfunction", "stopctxfunctiondefinition", "stopcurrentcolor", "stopcurrentlistentrywrapper", "stopdelimited", "stopdelimitedtext", "stopdisplaymath", "stopdmath", "stopdocument", "stopeffect", "stopelement", "stopembeddedxtable", "stopendnote", "stopendofline", "stopenvironment", "stopexceptions", "stopexpanded", "stopexpandedcollect", "stopextendedcatcodetable", "stopexternalfigurecollection", "stopfacingfloat", "stopfact", "stopfigure", "stopfiguretext", "stopfittingpage", "stopfixed", "stopfloatcombination", "stopfont", "stopfontclass", "stopfontsolution", "stopfootnote", "stopformula", "stopformulas", "stopframed", "stopframedcell", "stopframedcontent", "stopframedrow", "stopframedtable", "stopframedtext", "stopfrontmatter", "stopgoto", "stopgraphictext", "stopgridsnapping", "stophanging", "stophbox", "stophboxestohbox", "stophboxregister", "stophead", "stopheadtext", "stophelptext", "stophiding", "stophighlight", "stophyphenation", "stopimath", "stopindentation", "stopindentedtext", "stopinteraction", "stopinteractionmenu", "stopinterface", "stopintermezzotext", "stopintertext", "stopitem", "stopitemgroup", "stopitemgroupcolumns", "stopitemize", "stopknockout", "stoplabeltext", "stoplanguage", "stoplayout", "stopleftaligned", "stoplegend", "stopline", "stoplinealignment", "stoplinecorrection", "stoplinefiller", "stoplinenote", "stoplinenumbering", "stoplines", "stoplinetable", "stoplinetablebody", "stoplinetablecell", "stoplinetablehead", "stoplocalfootnotes", "stoplocalheadsetup", "stoplocallinecorrection", "stoplocalnotes", "stoplocalsetups", "stoplua", "stopluacode", "stopluaparameterset", "stopluasetups", "stopmakeup", "stopmarginblock", "stopmarginrule", "stopmarkedcontent", "stopmarkpages", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopmulticolumns", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecolumns", "stoppagecomment", "stoppagefigure", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stoppostponingnotes", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopreusableMPgraphic", "stoprightaligned", "stopruby", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopsplittext", "stopspread", "stopstandardmakeup", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstrut", "stopstyle", "stopsubformulas", "stopsubject", "stopsubjectlevel", "stopsubsection", "stopsubsentence", "stopsubstack", "stopsubsubject", "stopsubsubsection", "stopsubsubsubject", "stopsubsubsubsection", "stopsubsubsubsubject", "stopsubsubsubsubsection", "stopsubsubsubsubsubject", "stopsuffixtext", "stopsymbolset", "stoptable", "stoptablehead", "stoptables", "stoptabletail", "stoptabletext", "stoptabulate", "stoptabulatehead", "stoptabulatetail", "stoptagged", "stoptaglabeltext", "stoptexcode", "stoptexdefinition", "stoptext", "stoptextbackground", "stoptextbackgroundmanual", "stoptextcolor", "stoptextcolorintent", "stoptextflow", "stoptextmakeup", "stoptextrule", "stopthematrix", "stoptitle", "stoptokenlist", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopuserdata", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "stopxcolumn", "stopxgroup", "stopxmldisplayverbatim", "stopxmlinlineverbatim", "stopxmlraw", "stopxmlsetups", "stopxrow", "stopxrowgroup", "stopxtable", "stopxtablebody", "stopxtablefoot", "stopxtablehead", "stopxtablenext", "stretched", "strictdoifelsenextoptional", "strictdoifnextoptionalelse", "stripcharacter", "strippedcsname", "stripspaces", "structurelistuservariable", "structurenumber", "structuretitle", "structureuservariable", "structurevariable", "strut", "strutdp", "strutgap", "strutht", "struthtdp", "struttedbox", "strutwd", "style", "styleinstance", "subject", "subpagenumber", "subsection", "subsentence", "subset", "subseteq", "subseteqq", "subsetneq", "subsetneqq", "substituteincommalist", "subsubject", "subsubsection", "subsubsubject", "subsubsubsection", "subsubsubsubject", "subsubsubsubsection", "subsubsubsubsubject", "subtractfeature", "succ", "succapprox", "succcurlyeq", "succeq", "succeqq", "succnapprox", "succneq", "succneqq", "succnsim", "succsim", "suffixlanguage", "suffixtext", "sum", "supset", "supseteq", "supseteqq", "supsetneq", "supsetneqq", "surd", "surdradical", "swapcounts", "swapdimens", "swapface", "swapmacros", "swaptypeface", "swarrow", "switchstyleonly", "switchtobodyfont", "switchtocolor", "switchtointerlinespace", "symbol", "symbolreference", "synchronizeblank", "synchronizeindenting", "synchronizemarking", "synchronizeoutputstreams", "synchronizestrut", "synchronizewhitespace", "synctexblockfilename", "synctexresetfilename", "synctexsetfilename", "systemlog", "systemlogfirst", "systemloglast", "systemsetups", "tLeftarrow", "tLeftrightarrow", "tRightarrow", "tabulateautoline", "tabulateautorule", "tabulateline", "tabulaterule", "taggedctxcommand", "taggedlabeltexts", "taglabellanguage", "taglabeltext", "tau", "tbinom", "tbox", "tcaron", "tcedilla", "tcommaaccent", "tcurl", "tequal", "test", "testandsplitstring", "testcolumn", "testfeature", "testfeatureonce", "testpage", "testpageonly", "testpagesync", "testtokens", "tex", "texdefinition", "texsetup", "textAngstrom", "textacute", "textampersand", "textasciicircum", "textasciitilde", "textat", "textbackslash", "textbar", "textbottomcomma", "textbottomdot", "textbraceleft", "textbraceright", "textbreve", "textbrokenbar", "textbullet", "textcaron", "textcedilla", "textcelsius", "textcent", "textcircledP", "textcircumflex", "textcitation", "textcite", "textcomma", "textcontrolspace", "textcurrency", "textdag", "textddag", "textdegree", "textdiaeresis", "textdiv", "textdollar", "textdong", "textdotaccent", "textellipsis", "texteuro", "textflowcollector", "textfraction", "textgrave", "texthash", "texthorizontalbar", "texthungarumlaut", "texthyphen", "textkelvin", "textlognot", "textmacron", "textmath", "textmho", "textminus", "textmu", "textmultiply", "textnumero", "textogonek", "textohm", "textormathchar", "textormathchars", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thedatavalue", "thefirstcharacter", "thematrix", "thenormalizedbodyfontsize", "theorientation", "therefore", "theremainingcharacters", "theta", "thickspace", "thinrule", "thinrules", "thinspace", "thirdoffivearguments", "thirdoffourarguments", "thirdofsixarguments", "thirdofthreearguments", "thirdofthreeunexpanded", "thook", "thookleftarrow", "thookrightarrow", "thorn", "threedigitrounding", "threeeighths", "threefifths", "threeperemspace", "threequarter", "threesuperior", "tibetannumerals", "tightlayer", "tilde", "times", "tinyfont", "title", "tlap", "tleftarrow", "tleftharpoondown", "tleftharpoonup", "tleftrightarrow", "tleftrightharpoons", "tmapsto", "to", "tochar", "tolinenote", "tooltip", "top", "topbox", "topleftbox", "toplinebox", "toprightbox", "topskippedbox", "tracecatcodetables", "tracedfontname", "tracedpagestate", "traceoutputroutines", "tracepositions", "trademark", "translate", "transparencycomponents", "transparent", "trel", "triangle", "triangledown", "triangleleft", "triangleq", "triangleright", "trightarrow", "trightharpoondown", "trightharpoonup", "trightleftharpoons", "trightoverleftarrow", "triplebond", "tripleprime", "tripleverticalbar", "truefilename", "truefontname", "tstroke", "ttraggedright", "ttriplerel", "ttwoheadleftarrow", "ttwoheadrightarrow", "turnediota", "twodigitrounding", "twofifths", "twoheaddownarrow", "twoheadleftarrow", "twoheadrightarrow", "twoheadrightarrowtail", "twoheaduparrow", "twosuperior", "twothirds", "tx", "txx", "typ", "type", "typebuffer", "typedefinedbuffer", "typeface", "typefile", "typeinlinebuffer", "typescriptone", "typescriptprefix", "typescriptthree", "typescripttwo", "typesetbuffer", "typesetbufferonly", "typesetfile", "uacute", "ubreve", "ucaron", "uchexnumber", "uchexnumbers", "ucircumflex", "uconvertnumber", "udiaeresis", "udiaeresisacute", "udiaeresiscaron", "udiaeresisgrave", "udiaeresismacron", "udotbelow", "udots", "udoublegrave", "uedcatcodecommand", "ugrave", "uhook", "uhorn", "uhornacute", "uhorndotbelow", "uhorngrave", "uhornhook", "uhorntilde", "uhungarumlaut", "uinvertedbreve", "ulcorner", "umacron", "undefinevalue", "undepthed", "underbar", "underbars", "underbartext", "underbrace", "underbracetext", "underbracket", "underbrackettext", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underleftharpoondown", "underleftharpoonup", "underleftrightarrow", "underparent", "underparenttext", "underrandom", "underrandoms", "underrightarrow", "underrightharpoondown", "underrightharpoonup", "underset", "understrike", "understrikes", "undertwoheadleftarrow", "undertwoheadrightarrow", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unregisterparwrapper", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "unstackscripts", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updateparagraphdemerits", "updateparagraphpenalties", "updateparagraphproperties", "updateparagraphshapes", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "uppercasing", "upperleftdoubleninequote", "upperleftdoublesixquote", "upperleftsingleninequote", "upperleftsinglesixquote", "upperrightdoubleninequote", "upperrightdoublesixquote", "upperrightsingleninequote", "upperrightsinglesixquote", "upsilon", "upuparrows", "upwhitearrow", "urcorner", "uring", "url", "useJSscripts", "useMPenvironmentbuffer", "useMPgraphic", "useMPlibrary", "useMPrun", "useMPvariables", "useURL", "usealignparameter", "useblankparameter", "useblocks", "usebodyfont", "usebodyfontparameter", "usebtxdataset", "usebtxdefinitions", "usecitation", "usecolors", "usecomponent", "usedirectory", "usedummycolorparameter", "usedummystyleandcolor", "usedummystyleparameter", "useenvironment", "useexternaldocument", "useexternalfigure", "useexternalrendering", "useexternalsoundtrack", "usefigurebase", "usefile", "usefontpath", "usegridparameter", "usehyphensparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "useluatable", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "validassignment", "varTheta", "varepsilon", "varkappa", "varnothing", "varphi", "varpi", "varrho", "varsigma", "vartheta", "vboxreference", "vdash", "vdots", "vec", "vee", "veebar", "veeeq", "verbatim", "verbatimstring", "verbosenumber", "version", "vert", "verticalgrowingbar", "verticalpositionbar", "veryraggedcenter", "veryraggedleft", "veryraggedright", "vglue", "viewerlayer", "vl", "vpackbox", "vpackedbox", "vphantom", "vpos", "vsmash", "vsmashbox", "vsmashed", "vspace", "vspacing", "wcircumflex", "wdofstring", "wedge", "wedgeeq", "weekday", "whitearrowupfrombar", "widehat", "widetilde", "widthofstring", "widthspanningtext", "withoutpt", "word", "wordright", "words", "wordtonumber", "wp", "wr", "writebetweenlist", "writedatatolist", "writestatus", "writetolist", "xLeftarrow", "xLeftrightarrow", "xRightarrow", "xdefconvertedargument", "xequal", "xfrac", "xhookleftarrow", "xhookrightarrow", "xi", "xleftarrow", "xleftharpoondown", "xleftharpoonup", "xleftrightarrow", "xleftrightharpoons", "xmapsto", "xmladdindex", "xmlafterdocumentsetup", "xmlaftersetup", "xmlall", "xmlappenddocumentsetup", "xmlappendsetup", "xmlapplyselectors", "xmlatt", "xmlattdef", "xmlattribute", "xmlattributedef", "xmlbadinclusions", "xmlbeforedocumentsetup", "xmlbeforesetup", "xmlchainatt", "xmlchainattdef", "xmlchecknamespace", "xmlcommand", "xmlconcat", "xmlconcatrange", "xmlcontext", "xmlcount", "xmldefaulttotext", "xmldepth", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifatt", "xmldoifelse", "xmldoifelseatt", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "xmldoifnotatt", "xmldoifnotselfempty", "xmldoifnottext", "xmldoifselfempty", "xmldoiftext", "xmlelement", "xmlfilter", "xmlfirst", "xmlflush", "xmlflushcontext", "xmlflushdocumentsetups", "xmlflushlinewise", "xmlflushpure", "xmlflushspacewise", "xmlflushtext", "xmlinclude", "xmlinclusion", "xmlinclusions", "xmlinfo", "xmlinjector", "xmlinlineprettyprint", "xmlinlineprettyprinttext", "xmlinlineverbatim", "xmlinstalldirective", "xmllast", "xmllastatt", "xmllastmatch", "xmllastpar", "xmlloadbuffer", "xmlloaddata", "xmlloaddirectives", "xmlloadfile", "xmlloadonly", "xmlmain", "xmlmapvalue", "xmlname", "xmlnamespace", "xmlnonspace", "xmlpar", "xmlparam", "xmlpath", "xmlpos", "xmlposition", "xmlprependdocumentsetup", "xmlprependsetup", "xmlprettyprint", "xmlprettyprinttext", "xmlprocessbuffer", "xmlprocessdata", "xmlprocessfile", "xmlpure", "xmlraw", "xmlrefatt", "xmlregistereddocumentsetups", "xmlregisteredsetups", "xmlregisterns", "xmlremapname", "xmlremapnamespace", "xmlremovedocumentsetup", "xmlremovesetup", "xmlresetdocumentsetups", "xmlresetinjectors", "xmlresetsetups", "xmlsave", "xmlsetatt", "xmlsetattribute", "xmlsetentity", "xmlsetfunction", "xmlsetinjectors", "xmlsetpar", "xmlsetparam", "xmlsetsetup", "xmlsetup", "xmlshow", "xmlsnippet", "xmlstrip", "xmlstripnolines", "xmlstripped", "xmlstrippednolines", "xmltag", "xmltexentity", "xmltext", "xmltobuffer", "xmltobufferverbose", "xmltofile", "xmlvalue", "xmlverbatim", "xrel", "xrightarrow", "xrightharpoondown", "xrightharpoonup", "xrightleftharpoons", "xrightoverleftarrow", "xsplitstring", "xtriplerel", "xtwoheadleftarrow", "xtwoheadrightarrow", "xxfrac", "xypos", "yacute", "ycircumflex", "ydiaeresis", "ydotbelow", "yen", "ygrave", "yhook", "yiddishnumerals", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "zeronumberconversion", "zerowidthnobreakspace", "zerowidthspace", "zeta", "zhook", "zstroke", "zwj", "zwnj" },
+ ["common"]={ "AEacute", "AEligature", "AEmacron", "AMSTEX", "Aacute", "Abreve", "Abreveacute", "Abrevedotbelow", "Abrevegrave", "Abrevehook", "Abrevetilde", "Acaron", "Acircumflex", "Acircumflexacute", "Acircumflexdotbelow", "Acircumflexgrave", "Acircumflexhook", "Acircumflextilde", "Adiaeresis", "Adiaeresismacron", "Adotaccent", "Adotaccentmacron", "Adotbelow", "Adoublegrave", "AfterPar", "Agrave", "Ahook", "Ainvertedbreve", "Alpha", "Alphabeticnumerals", "AmSTeX", "Amacron", "And", "Angstrom", "Aogonek", "Aring", "Aringacute", "Arrowvert", "Astroke", "Atilde", "BeforePar", "Beta", "Bhook", "Big", "Bigg", "Biggl", "Biggm", "Biggr", "Bigl", "Bigm", "Bigr", "Box", "Bumpeq", "CONTEXT", "Cacute", "Cap", "Caps", "Ccaron", "Ccedilla", "Ccircumflex", "Cdotaccent", "Character", "Characters", "Chi", "Chook", "ConTeXt", "Context", "ConvertConstantAfter", "ConvertToConstant", "Cstroke", "Cup", "DAYLONG", "DAYSHORT", "DZcaronligature", "DZligature", "Dafrican", "Dcaron", "Dd", "Ddownarrow", "Delta", "Dhook", "Doteq", "Downarrow", "Dstroke", "Dzcaronligature", "Dzligature", "ETEX", "Eacute", "Ebreve", "Ecaron", "Ecedilla", "Ecircumflex", "Ecircumflexacute", "Ecircumflexdotbelow", "Ecircumflexgrave", "Ecircumflexhook", "Ecircumflextilde", "Ediaeresis", "Edotaccent", "Edotbelow", "Edoublegrave", "Egrave", "Ehook", "Einvertedbreve", "Emacron", "Eogonek", "Epsilon", "Eta", "Eth", "Etilde", "Eulerconst", "EveryLine", "EveryPar", "Fhook", "Finv", "Gacute", "Game", "Gamma", "Gbreve", "Gcaron", "Gcircumflex", "Gcommaaccent", "Gdotaccent", "GetPar", "Ghook", "GotoPar", "Greeknumerals", "Gstroke", "Hat", "Hcaron", "Hcircumflex", "Hstroke", "IJligature", "INRSTEX", "Iacute", "Ibreve", "Icaron", "Icircumflex", "Idiaeresis", "Idotaccent", "Idotbelow", "Idoublegrave", "Igrave", "Ihook", "Iinvertedbreve", "Im", "Imacron", "Iogonek", "Iota", "Istroke", "Itilde", "Jcircumflex", "Join", "Kappa", "Kcaron", "Kcommaaccent", "Khook", "LAMSTEX", "LATEX", "LJligature", "LUAJITTEX", "LUAMETATEX", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaMetaTeX", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKLX", "MKVI", "MKXI", "MKXL", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPLX", "MPVI", "MPXL", "MPanchor", "MPbetex", "MPc", "MPcode", "MPcolor", "MPcoloronly", "MPcolumn", "MPd", "MPdrawing", "MPfontsizehskip", "MPgetmultipars", "MPgetmultishape", "MPgetposboxes", "MPh", "MPinclusions", "MPleftskip", "MPll", "MPlr", "MPls", "MPmenubuttons", "MPn", "MPoptions", "MPoverlayanchor", "MPp", "MPpage", "MPpardata", "MPplus", "MPpos", "MPpositiongraphic", "MPposset", "MPr", "MPrawvar", "MPregion", "MPrest", "MPrightskip", "MPrs", "MPstring", "MPtext", "MPtransparency", "MPul", "MPur", "MPv", "MPvar", "MPvariable", "MPvv", "MPw", "MPwhd", "MPx", "MPxy", "MPxywhd", "MPy", "Mapsfrom", "Mapsto", "MetaFont", "MetaFun", "MetaPost", "Mu", "NJligature", "Nacute", "Ncaron", "Ncommaaccent", "Nearrow", "Neng", "Ngrave", "Njligature", "NormalizeFontHeight", "NormalizeFontWidth", "NormalizeTextHeight", "NormalizeTextWidth", "Ntilde", "Nu", "Numbers", "Nwarrow", "OEligature", "Oacute", "Obreve", "Ocaron", "Ocircumflex", "Ocircumflexacute", "Ocircumflexdotbelow", "Ocircumflexgrave", "Ocircumflexhook", "Ocircumflextilde", "Odiaeresis", "Odiaeresismacron", "Odotaccent", "Odotaccentmacron", "Odotbelow", "Odoublegrave", "Ograve", "Ohook", "Ohorn", "Ohornacute", "Ohorndotbelow", "Ohorngrave", "Ohornhook", "Ohorntilde", "Ohungarumlaut", "Oinvertedbreve", "Omacron", "Omega", "Omicron", "Oogonek", "Oogonekmacron", "Ostroke", "Ostrokeacute", "Otilde", "Otildemacron", "P", "PDFETEX", "PDFTEX", "PDFcolor", "PICTEX", "PPCHTEX", "PPCHTeX", "PRAGMA", "Phi", "Phook", "Pi", "PiCTeX", "Plankconst", "PointsToBigPoints", "PointsToReal", "PointsToWholeBigPoints", "PropertyLine", "Psi", "PtToCm", "Racute", "Rcaron", "Rcommaaccent", "Rdoublegrave", "Rdsh", "Re", "ReadFile", "Relbar", "Rho", "Rightarrow", "Rinvertedbreve", "Romannumerals", "Rrightarrow", "Rsh", "S", "Sacute", "ScaledPointsToBigPoints", "ScaledPointsToWholeBigPoints", "Scaron", "Scedilla", "Schwa", "Scircumflex", "Scommaaccent", "Searrow", "Sigma", "Smallcapped", "Subset", "Supset", "Swarrow", "TABLE", "TEX", "TaBlE", "Tau", "Tcaron", "Tcedilla", "Tcommaaccent", "TeX", "TheNormalizedFontSize", "Theta", "Thook", "Thorn", "TransparencyHack", "Tstroke", "Uacute", "Ubreve", "Ucaron", "Ucircumflex", "Udiaeresis", "Udiaeresisacute", "Udiaeresiscaron", "Udiaeresisgrave", "Udiaeresismacron", "Udotbelow", "Udoublegrave", "Ugrave", "Uhook", "Uhorn", "Uhornacute", "Uhorndotbelow", "Uhorngrave", "Uhornhook", "Uhorntilde", "Uhungarumlaut", "Uinvertedbreve", "Umacron", "Uogonek", "Uparrow", "Updownarrow", "Upsilon", "Uring", "Utilde", "Uuparrow", "VDash", "Vdash", "VerboseNumber", "Vert", "Vhook", "Vvdash", "WEEKDAY", "WORD", "WORDS", "Wcircumflex", "WidthSpanningText", "Word", "Words", "XETEX", "XeTeX", "Xi", "Yacute", "Ycircumflex", "Ydiaeresis", "Ydotbelow", "Ygrave", "Yhook", "Ymacron", "Ytilde", "Zacute", "Zcaron", "Zdotaccent", "Zeta", "Zhook", "Zstroke", "aacute", "abbreviation", "abjadnaivenumerals", "abjadnodotnumerals", "abjadnumerals", "about", "abreve", "abreveacute", "abrevedotbelow", "abrevegrave", "abrevehook", "abrevetilde", "acaron", "acircumflex", "acircumflexacute", "acircumflexdotbelow", "acircumflexgrave", "acircumflexhook", "acircumflextilde", "activatespacehandler", "actualday", "actualmonth", "actualyear", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addtoJSpreamble", "addtocommalist", "addvalue", "adiaeresis", "adiaeresismacron", "adotaccent", "adotaccentmacron", "adotbelow", "adoublegrave", "aeacute", "aeligature", "aemacron", "afghanicurrency", "aftersplitstring", "aftertestandsplitstring", "agrave", "ahook", "ainvertedbreve", "aleph", "alignbottom", "aligned", "alignedbox", "alignedline", "alignhere", "alignmentcharacter", "allinputpaths", "alpha", "alphabeticnumerals", "alwayscitation", "alwayscite", "amacron", "amalg", "ampersand", "anchor", "angle", "aogonek", "appendetoks", "appendgvalue", "appendtocommalist", "appendtoks", "appendtoksonce", "appendvalue", "apply", "applyalternativestyle", "applyprocessor", "applytocharacters", "applytofirstcharacter", "applytosplitstringchar", "applytosplitstringcharspaced", "applytosplitstringline", "applytosplitstringlinespaced", "applytosplitstringword", "applytosplitstringwordspaced", "applytowords", "approx", "approxEq", "approxeq", "approxnEq", "arabicakbar", "arabicalayhe", "arabicallah", "arabicallallahou", "arabicasterisk", "arabicbasmalah", "arabiccomma", "arabiccuberoot", "arabicdateseparator", "arabicdecimals", "arabicdisputedendofayah", "arabicendofayah", "arabicexnumerals", "arabicfootnotemarker", "arabicfourthroot", "arabichighain", "arabichighalayheassallam", "arabichigheqala", "arabichighesala", "arabichighfootnotemarker", "arabichighjeem", "arabichighlamalef", "arabichighmadda", "arabichighmeemlong", "arabichighmeemshort", "arabichighnisf", "arabichighnoon", "arabichighnoonkasra", "arabichighqaf", "arabichighqif", "arabichighradiallahouanhu", "arabichighrahmatullahalayhe", "arabichighrubc", "arabichighsad", "arabichighsajda", "arabichighsakta", "arabichighsallallahou", "arabichighseen", "arabichighsmallsafha", "arabichightah", "arabichightakhallus", "arabichighthalatha", "arabichighwaqf", "arabichighyeh", "arabichighzain", "arabicjallajalalouhou", "arabiclettermark", "arabiclowmeemlong", "arabiclownoonkasra", "arabiclowseen", "arabicmisra", "arabicmuhammad", "arabicnumber", "arabicnumberabove", "arabicnumerals", "arabicparenleft", "arabicparenright", "arabicpercent", "arabicperiod", "arabicpermille", "arabicpertenthousand", "arabicpoeticverse", "arabicqala", "arabicquestion", "arabicrasoul", "arabicray", "arabicrialsign", "arabicsafha", "arabicsajdah", "arabicsalla", "arabicsamvat", "arabicsanah", "arabicsemicolon", "arabicshighthreedots", "arabicslcm", "arabicstartofrubc", "arabictripledot", "arabicvowelwaw", "arabicvowelyeh", "arabicwasallam", "arg", "aring", "aringacute", "arrowvert", "asciimode", "asciistr", "aside", "assignalfadimension", "assigndimen", "assigndimension", "assignifempty", "assigntranslation", "assignvalue", "assignwidth", "assumelongusagecs", "ast", "astype", "asymp", "at", "atilde", "atleftmargin", "atpage", "atrightmargin", "attachment", "autocap", "autodirhbox", "autodirvbox", "autodirvtop", "autoinsertnextspace", "autointegral", "automathematics", "autoorientation", "autopagestaterealpage", "autopagestaterealpageorder", "autorule", "autosetups", "availablehsize", "averagecharwidth", "backepsilon", "background", "backgroundimage", "backgroundimagefill", "backgroundline", "backprime", "backsim", "backslash", "bar", "barleftarrow", "barleftarrowrightarrowbar", "barovernorthwestarrow", "barwedge", "basegrid", "baselinebottom", "baselineleftbox", "baselinemiddlebox", "baselinerightbox", "bbordermatrix", "bbox", "because", "beforesplitstring", "beforetestandsplitstring", "beta", "beth", "between", "bhook", "big", "bigbodyfont", "bigcap", "bigcirc", "bigcircle", "bigcup", "bigdiamond", "bigg", "bigger", "biggl", "biggm", "biggr", "bigl", "bigm", "bigodot", "bigoplus", "bigotimes", "bigr", "bigskip", "bigsqcap", "bigsqcup", "bigsquare", "bigstar", "bigtimes", "bigtriangledown", "bigtriangleup", "bigudot", "biguplus", "bigvee", "bigwedge", "binom", "bitmapimage", "blacklozenge", "blackrule", "blackrules", "blacksquare", "blacktriangle", "blacktriangledown", "blacktriangleleft", "blacktriangleright", "blank", "blap", "bleed", "bleedheight", "bleedwidth", "blockligatures", "blockquote", "blocksynctexfile", "blockuservariable", "bodyfontenvironmentlist", "bodyfontsize", "bold", "boldface", "bolditalic", "boldslanted", "bookmark", "booleanmodevalue", "bordermatrix", "bot", "bottombox", "bottomleftbox", "bottomrightbox", "bowtie", "boxcursor", "boxdot", "boxmarker", "boxminus", "boxofsize", "boxplus", "boxreference", "boxtimes", "bpos", "breakablethinspace", "breakhere", "breve", "bstroke", "btxabbreviatedjournal", "btxaddjournal", "btxalwayscitation", "btxauthorfield", "btxdetail", "btxdirect", "btxdoif", "btxdoifcombiinlistelse", "btxdoifelse", "btxdoifelsecombiinlist", "btxdoifelsesameasprevious", "btxdoifelsesameaspreviouschecked", "btxdoifelseuservariable", "btxdoifnot", "btxdoifsameaspreviouscheckedelse", "btxdoifsameaspreviouselse", "btxdoifuservariableelse", "btxexpandedjournal", "btxfield", "btxfieldname", "btxfieldtype", "btxfirstofrange", "btxflush", "btxflushauthor", "btxflushauthorinverted", "btxflushauthorinvertedshort", "btxflushauthorname", "btxflushauthornormal", "btxflushauthornormalshort", "btxflushsuffix", "btxfoundname", "btxfoundtype", "btxhiddencitation", "btxhybridcite", "btxlabellanguage", "btxlabeltext", "btxlistcitation", "btxloadjournalist", "btxoneorrange", "btxremapauthor", "btxsavejournalist", "btxsetup", "btxsingularorplural", "btxsingularplural", "btxtextcitation", "buildmathaccent", "buildtextaccent", "buildtextbottomcomma", "buildtextbottomdot", "buildtextcedilla", "buildtextgrave", "buildtextmacron", "buildtextognek", "bullet", "button", "cacute", "calligraphic", "camel", "cap", "capital", "carriagereturn", "catcodetablename", "cbox", "ccaron", "ccedilla", "ccircumflex", "ccurl", "cdot", "cdotaccent", "cdotp", "cdots", "centeraligned", "centerbox", "centerdot", "centeredbox", "centeredlastline", "centerednextbox", "centerline", "cfrac", "chapter", "character", "characters", "chardescription", "charwidthlanguage", "check", "checkcharacteralign", "checkedblank", "checkedchar", "checkedfiller", "checkedstrippedcsname", "checkinjector", "checkmark", "checknextindentation", "checknextinjector", "checkpage", "checkparameters", "checkpreviousinjector", "checksoundtrack", "checktwopassdata", "checkvariables", "chem", "chemical", "chemicalbottext", "chemicalmidtext", "chemicalsymbol", "chemicaltext", "chemicaltoptext", "chi", "chineseallnumerals", "chinesecapnumerals", "chinesenumerals", "chook", "circ", "circeq", "circlearrowleft", "circlearrowright", "circledR", "circledS", "circledast", "circledcirc", "circleddash", "circledequals", "circleonrightarrow", "citation", "cite", "clap", "classfont", "cldcommand", "cldcontext", "cldloadfile", "cldprocessfile", "cleftarrow", "clip", "clippedoverlayimage", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "columnsetspanwidth", "combinepages", "commalistelement", "commalistsentence", "commalistsize", "comment", "comparecolorgroup", "comparedimension", "comparedimensioneps", "comparepalet", "complement", "completebtxrendering", "completecontent", "completeindex", "completelist", "completelistofabbreviations", "completelistofchemicals", "completelistoffigures", "completelistofgraphics", "completelistofintermezzi", "completelistoflogos", "completelistofpublications", "completelistofsorts", "completelistofsynonyms", "completelistoftables", "completepagenumber", "completeregister", "complexes", "complexorsimple", "complexorsimpleempty", "component", "composedcollector", "composedlayer", "compounddiscretionary", "compresult", "cong", "constantdimen", "constantdimenargument", "constantemptyargument", "constantnumber", "constantnumberargument", "contentreference", "continuednumber", "continueifinputfile", "convertargument", "convertcommand", "convertedcounter", "converteddimen", "convertedsubcounter", "convertmonth", "convertnumber", "convertvalue", "convertvboxtohbox", "coprod", "copyboxfromcache", "copybtxlabeltext", "copyfield", "copyheadtext", "copylabeltext", "copymathlabeltext", "copyoperatortext", "copypages", "copyparameters", "copyposition", "copyprefixtext", "copyright", "copysetups", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "crightoverleftarrow", "crlf", "crlfplaceholder", "cstroke", "ctop", "ctxcommand", "ctxdirectcommand", "ctxdirectlua", "ctxfunction", "ctxlatecommand", "ctxlatelua", "ctxloadluafile", "ctxlua", "ctxluabuffer", "ctxluacode", "ctxreport", "ctxsprint", "cup", "curlyeqprec", "curlyeqsucc", "curlyvee", "curlywedge", "currentassignmentlistkey", "currentassignmentlistvalue", "currentbtxuservariable", "currentcommalistitem", "currentcomponent", "currentdate", "currentenvironment", "currentfeaturetest", "currentheadnumber", "currentinterface", "currentlanguage", "currentlistentrydestinationattribute", "currentlistentrylimitedtext", "currentlistentrynumber", "currentlistentrypagenumber", "currentlistentryreferenceattribute", "currentlistentrytitle", "currentlistentrytitlerendered", "currentlistsymbol", "currentmainlanguage", "currentmessagetext", "currentmoduleparameter", "currentoutputstream", "currentproduct", "currentproject", "currentregime", "currentregisterpageuserdata", "currentresponses", "currenttime", "currentvalue", "currentxtablecolumn", "currentxtablerow", "curvearrowleft", "curvearrowright", "cwopencirclearrow", "cyrillicA", "cyrillicAE", "cyrillicAbreve", "cyrillicAdiaeresis", "cyrillicB", "cyrillicBIGYUS", "cyrillicBIGYUSiotified", "cyrillicC", "cyrillicCH", "cyrillicCHEDC", "cyrillicCHEDCabkhasian", "cyrillicCHEabkhasian", "cyrillicCHEdiaeresis", "cyrillicCHEkhakassian", "cyrillicCHEvertstroke", "cyrillicD", "cyrillicDASIAPNEUMATA", "cyrillicDJE", "cyrillicDZE", "cyrillicDZEabkhasian", "cyrillicDZHE", "cyrillicE", "cyrillicELtail", "cyrillicEMtail", "cyrillicENDC", "cyrillicENGHE", "cyrillicENhook", "cyrillicENtail", "cyrillicEREV", "cyrillicERY", "cyrillicERtick", "cyrillicEbreve", "cyrillicEdiaeresis", "cyrillicEgrave", "cyrillicEiotified", "cyrillicF", "cyrillicFITA", "cyrillicG", "cyrillicGHEmidhook", "cyrillicGHEstroke", "cyrillicGHEupturn", "cyrillicGJE", "cyrillicH", "cyrillicHA", "cyrillicHADC", "cyrillicHRDSN", "cyrillicI", "cyrillicIE", "cyrillicII", "cyrillicISHRT", "cyrillicISHRTtail", "cyrillicIZHITSA", "cyrillicIZHITSAdoublegrave", "cyrillicIdiaeresis", "cyrillicIgrave", "cyrillicImacron", "cyrillicJE", "cyrillicK", "cyrillicKADC", "cyrillicKAbashkir", "cyrillicKAhook", "cyrillicKAstroke", "cyrillicKAvertstroke", "cyrillicKJE", "cyrillicKOPPA", "cyrillicKSI", "cyrillicL", "cyrillicLITTLEYUS", "cyrillicLITTLEYUSiotified", "cyrillicLJE", "cyrillicM", "cyrillicN", "cyrillicNJE", "cyrillicO", "cyrillicOMEGA", "cyrillicOMEGAround", "cyrillicOMEGAtitlo", "cyrillicOT", "cyrillicObarred", "cyrillicObarreddiaeresis", "cyrillicOdiaeresis", "cyrillicP", "cyrillicPALATALIZATION", "cyrillicPALOCHKA", "cyrillicPEmidhook", "cyrillicPSI", "cyrillicPSILIPNEUMATA", "cyrillicR", "cyrillicS", "cyrillicSCHWA", "cyrillicSCHWAdiaeresis", "cyrillicSDSC", "cyrillicSEMISOFT", "cyrillicSFTSN", "cyrillicSH", "cyrillicSHCH", "cyrillicSHHA", "cyrillicT", "cyrillicTEDC", "cyrillicTETSE", "cyrillicTITLO", "cyrillicTSHE", "cyrillicU", "cyrillicUK", "cyrillicUSHRT", "cyrillicUdiaeresis", "cyrillicUdoubleacute", "cyrillicUmacron", "cyrillicV", "cyrillicYA", "cyrillicYAT", "cyrillicYERUdiaeresis", "cyrillicYI", "cyrillicYO", "cyrillicYU", "cyrillicYstr", "cyrillicYstrstroke", "cyrillicZ", "cyrillicZDSC", "cyrillicZEdiaeresis", "cyrillicZH", "cyrillicZHEbreve", "cyrillicZHEdescender", "cyrillicZHEdiaeresis", "cyrillica", "cyrillicabreve", "cyrillicadiaeresis", "cyrillicae", "cyrillicb", "cyrillicbigyus", "cyrillicbigyusiotified", "cyrillicc", "cyrillicch", "cyrilliccheabkhasian", "cyrillicchedc", "cyrillicchedcabkhasian", "cyrillicchediaeresis", "cyrillicchekhakassian", "cyrillicchevertstroke", "cyrillicd", "cyrillicdje", "cyrillicdze", "cyrillicdzeabkhasian", "cyrillicdzhe", "cyrillice", "cyrillicebreve", "cyrillicediaeresis", "cyrillicegrave", "cyrilliceiotified", "cyrilliceltail", "cyrillicemtail", "cyrillicendc", "cyrillicenghe", "cyrillicenhook", "cyrillicentail", "cyrillicerev", "cyrillicertick", "cyrillicery", "cyrillicf", "cyrillicfita", "cyrillicg", "cyrillicghemidhook", "cyrillicghestroke", "cyrillicgheupturn", "cyrillicgje", "cyrillich", "cyrillicha", "cyrillichadc", "cyrillichrdsn", "cyrillici", "cyrillicidiaeresis", "cyrillicie", "cyrillicigrave", "cyrillicii", "cyrillicimacron", "cyrillicishrt", "cyrillicishrttail", "cyrillicizhitsa", "cyrillicizhitsadoublegrave", "cyrillicje", "cyrillick", "cyrillickabashkir", "cyrillickadc", "cyrillickahook", "cyrillickastroke", "cyrillickavertstroke", "cyrillickje", "cyrillickoppa", "cyrillicksi", "cyrillicl", "cyrilliclittleyus", "cyrilliclittleyusiotified", "cyrilliclje", "cyrillicm", "cyrillicn", "cyrillicnje", "cyrillico", "cyrillicobarred", "cyrillicobarreddiaeresis", "cyrillicodiaeresis", "cyrillicomega", "cyrillicomegaround", "cyrillicomegatitlo", "cyrillicot", "cyrillicp", "cyrillicpemidhook", "cyrillicpsi", "cyrillicr", "cyrillics", "cyrillicschwa", "cyrillicschwadiaeresis", "cyrillicsdsc", "cyrillicsemisoft", "cyrillicsftsn", "cyrillicsh", "cyrillicshch", "cyrillicshha", "cyrillict", "cyrillictedc", "cyrillictetse", "cyrillictshe", "cyrillicu", "cyrillicudiaeresis", "cyrillicudoubleacute", "cyrillicuk", "cyrillicumacron", "cyrillicushrt", "cyrillicv", "cyrillicya", "cyrillicyat", "cyrillicyerudiaeresis", "cyrillicyi", "cyrillicyo", "cyrillicystr", "cyrillicystrstroke", "cyrillicyu", "cyrillicz", "cyrilliczdsc", "cyrilliczediaeresis", "cyrilliczh", "cyrilliczhebreve", "cyrilliczhedescender", "cyrilliczhediaeresis", "d", "dag", "dagger", "daleth", "dasharrow", "dashedleftarrow", "dashedrightarrow", "dashv", "datasetvariable", "date", "daylong", "dayoftheweek", "dayshort", "dayspermonth", "dbinom", "dcaron", "dcurl", "dd", "ddag", "ddagger", "dddot", "ddot", "ddots", "decrement", "decrementcounter", "decrementedcounter", "decrementpagenumber", "decrementsubpagenumber", "decrementvalue", "defaultinterface", "defaultobjectpage", "defaultobjectreference", "defcatcodecommand", "defconvertedargument", "defconvertedcommand", "defconvertedvalue", "define", "defineMPinstance", "defineTABLEsetup", "defineaccent", "defineactivecharacter", "definealternativestyle", "defineanchor", "defineattachment", "defineattribute", "definebackground", "definebar", "defineblock", "definebodyfont", "definebodyfontenvironment", "definebodyfontswitch", "definebreakpoint", "definebreakpoints", "definebtx", "definebtxdataset", "definebtxregister", "definebtxrendering", "definebuffer", "definebutton", "definecapitals", "definecharacter", "definecharacterkerning", "definecharacterspacing", "definechemical", "definechemicals", "definechemicalsymbol", "definecollector", "definecolor", "definecolorgroup", "definecolumnbreak", "definecolumnset", "definecolumnsetarea", "definecolumnsetspan", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedate", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "definedocument", "defineeffect", "defineenumeration", "defineexpandable", "defineexpansion", "defineexternalfigure", "definefacingfloat", "definefallbackfamily", "definefield", "definefieldbody", "definefieldbodyset", "definefieldcategory", "definefieldstack", "definefiguresymbol", "definefileconstant", "definefilefallback", "definefilesynonym", "definefiller", "definefirstline", "definefittingpage", "definefloat", "definefont", "definefontalternative", "definefontfallback", "definefontfamily", "definefontfamilypreset", "definefontfeature", "definefontfile", "definefontsize", "definefontsolution", "definefontstyle", "definefontsynonym", "defineformula", "defineformulaalternative", "defineformulaframed", "defineframed", "defineframedcontent", "defineframedtable", "defineframedtext", "definefrozenfont", "defineglobalcolor", "definegraphictypesynonym", "definegridsnapping", "definehbox", "definehead", "defineheadalternative", "definehelp", "definehigh", "definehighlight", "definehspace", "definehyphenationfeatures", "defineindentedtext", "defineindenting", "defineinitial", "defineinsertion", "defineinteraction", "defineinteractionbar", "defineinteractionmenu", "defineinterfaceconstant", "defineinterfaceelement", "defineinterfacevariable", "defineinterlinespace", "defineintermediatecolor", "defineitemgroup", "defineitems", "definelabel", "definelabelclass", "definelayer", "definelayerpreset", "definelayout", "definelinefiller", "definelinenote", "definelinenumbering", "definelines", "definelist", "definelistalternative", "definelistextra", "definelow", "definelowhigh", "definelowmidhigh", "definemakeup", "definemarginblock", "definemargindata", "definemarker", "definemarking", "definemathaccent", "definemathalignment", "definemathcases", "definemathcommand", "definemathdouble", "definemathdoubleextensible", "definemathematics", "definemathextensible", "definemathfence", "definemathfraction", "definemathframed", "definemathmatrix", "definemathornament", "definemathover", "definemathoverextensible", "definemathovertextextensible", "definemathradical", "definemathstackers", "definemathstyle", "definemathtriplet", "definemathunder", "definemathunderextensible", "definemathundertextextensible", "definemathunstacked", "definemeasure", "definemessageconstant", "definemixedcolumns", "definemode", "definemulticolumns", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineorientation", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagecolumns", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineperiodkerning", "defineplaceholder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "defineruby", "definescale", "definescript", "definesection", "definesectionblock", "definesectionlevels", "defineselector", "defineseparatorset", "defineshift", "definesidebar", "definesort", "definesorting", "definespotcolor", "definestartstop", "definestyle", "definestyleinstance", "definesubfield", "definesubformula", "definesymbol", "definesynonym", "definesynonyms", "definesystemattribute", "definesystemconstant", "definesystemvariable", "definetabletemplate", "definetabulate", "definetext", "definetextbackground", "definetextflow", "definetextnote", "definetokenlist", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineuserdata", "defineuserdataalternative", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "defrostparagraphproperties", "delimited", "delimitedtext", "delta", "depthofstring", "depthonlybox", "depthspanningtext", "depthstrut", "determineheadnumber", "determinelistcharacteristics", "determinenoflines", "determineregistercharacteristics", "devanagarinumerals", "dfrac", "dhook", "diameter", "diamond", "diamondsuit", "differentialD", "differentiald", "digamma", "digits", "dimensiontocount", "directboxfromcache", "directcolor", "directcolored", "directconvertedcounter", "directcopyboxfromcache", "directdummyparameter", "directgetboxllx", "directgetboxlly", "directhighlight", "directlocalframed", "directluacode", "directparwrapper", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "disposeluatable", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "dohyphens", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifassignmentelsecs", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcheckedpagestate", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdocumentvariable", "doifdocumentvariableelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseassignmentcs", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedocumentvariable", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontfeature", "doifelsefontpresent", "doifelsefontsynonym", "doifelseframed", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseindented", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedcontent", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseorientation", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelseparwrapper", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "doifelserightpage", "doifelserightpagefloat", "doifelserighttoleftinbox", "doifelsesamelinereference", "doifelsesamestring", "doifelsesetups", "doifelsesomebackground", "doifelsesomespace", "doifelsesomething", "doifelsesometoks", "doifelsestringinstring", "doifelsestructurelisthasnumber", "doifelsestructurelisthaspage", "doifelsesymboldefined", "doifelsesymbolset", "doifelsetext", "doifelsetextflow", "doifelsetextflowcollector", "doifelsetopofpage", "doifelsetypingfile", "doifelseundefined", "doifelseurldefined", "doifelsevalue", "doifelsevaluenothing", "doifelsevariable", "doifempty", "doifemptyelse", "doifemptytoks", "doifemptyvalue", "doifemptyvalueelse", "doifemptyvariable", "doifemptyvariableelse", "doifenv", "doifenvelse", "doiffastoptionalcheckcselse", "doiffastoptionalcheckelse", "doiffieldbodyelse", "doiffieldcategoryelse", "doiffigureelse", "doiffile", "doiffiledefinedelse", "doiffileelse", "doiffileexistselse", "doiffirstcharelse", "doifflaggedelse", "doiffontcharelse", "doiffontfeatureelse", "doiffontpresentelse", "doiffontsynonymelse", "doifhasspaceelse", "doifhelpelse", "doifincsnameelse", "doifinelementelse", "doifinputfileelse", "doifinsertionelse", "doifinset", "doifinsetelse", "doifinstring", "doifinstringelse", "doifinsymbolset", "doifinsymbolsetelse", "doifintokselse", "doifintwopassdataelse", "doifitalicelse", "doiflanguageelse", "doiflayerdataelse", "doiflayoutdefinedelse", "doiflayoutsomelineelse", "doiflayouttextlineelse", "doifleapyearelse", "doiflistelse", "doiflocationelse", "doiflocfileelse", "doifmainfloatbodyelse", "doifmarkingelse", "doifmeaningelse", "doifmessageelse", "doifmode", "doifmodeelse", "doifnextbgroupcselse", "doifnextbgroupelse", "doifnextcharelse", "doifnextoptionalcselse", "doifnextoptionalelse", "doifnextparenthesiselse", "doifnonzeropositiveelse", "doifnot", "doifnotallcommon", "doifnotallmodes", "doifnotcommandhandler", "doifnotcommon", "doifnotcounter", "doifnotdocumentargument", "doifnotdocumentfilename", "doifnotdocumentvariable", "doifnotempty", "doifnotemptyvalue", "doifnotemptyvariable", "doifnotenv", "doifnoteonsamepageelse", "doifnotescollected", "doifnotfile", "doifnotflagged", "doifnothing", "doifnothingelse", "doifnotinset", "doifnotinsidesplitfloat", "doifnotinstring", "doifnotmode", "doifnotnumber", "doifnotsamestring", "doifnotsetups", "doifnotvalue", "doifnotvariable", "doifnumber", "doifnumberelse", "doifobjectfoundelse", "doifobjectreferencefoundelse", "doifoddpageelse", "doifoddpagefloatelse", "doifoldercontextelse", "doifolderversionelse", "doifoutervmode", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "doifrightpageelse", "doifrightpagefloatelse", "doifrighttoleftinboxelse", "doifsamelinereferenceelse", "doifsamestring", "doifsamestringelse", "doifsetups", "doifsetupselse", "doifsomebackground", "doifsomebackgroundelse", "doifsomespaceelse", "doifsomething", "doifsomethingelse", "doifsometoks", "doifsometokselse", "doifstringinstringelse", "doifstructurelisthasnumberelse", "doifstructurelisthaspageelse", "doifsymboldefinedelse", "doifsymbolsetelse", "doiftext", "doiftextelse", "doiftextflowcollectorelse", "doiftextflowelse", "doiftopofpageelse", "doiftypingfileelse", "doifundefined", "doifundefinedcounter", "doifundefinedelse", "doifunknownfontfeature", "doifurldefinedelse", "doifvalue", "doifvalueelse", "doifvaluenothing", "doifvaluenothingelse", "doifvaluesomething", "doifvariable", "doifvariableelse", "doindentation", "dollar", "doloop", "doloopoverlist", "donothing", "dontconvertfont", "dontleavehmode", "dontpermitspacesbetweengroups", "dopositionaction", "doprocesslocalsetups", "doquadrupleargument", "doquadrupleempty", "doquadruplegroupempty", "doquintupleargument", "doquintupleempty", "doquintuplegroupempty", "dorechecknextindentation", "dorecurse", "dorepeatwithcommand", "doreplacefeature", "doresetandafffeature", "doresetattribute", "dorotatebox", "dosetattribute", "dosetleftskipadaption", "dosetrightskipadaption", "dosetupcheckedinterlinespace", "doseventupleargument", "doseventupleempty", "dosingleargument", "dosingleempty", "dosinglegroupempty", "dosixtupleargument", "dosixtupleempty", "dosomebreak", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "dotfill", "dotfskip", "dotlessI", "dotlessJ", "dotlessi", "dotlessj", "dotlessjstroke", "dotminus", "dotoks", "dotplus", "dotripleargument", "dotripleargumentwithset", "dotripleempty", "dotripleemptywithset", "dotriplegroupempty", "dots", "dottedcircle", "dottedrightarrow", "doublebar", "doublebond", "doublebrace", "doublebracket", "doublecap", "doublecup", "doubleparent", "doubleprime", "doubleverticalbar", "dowith", "dowithnextbox", "dowithnextboxcontent", "dowithnextboxcontentcs", "dowithnextboxcs", "dowithpargument", "dowithrange", "dowithwargument", "downarrow", "downdasharrow", "downdownarrows", "downharpoonleft", "downharpoonright", "downuparrows", "downwhitearrow", "downzigzagarrow", "dpofstring", "dstroke", "dtail", "dummydigit", "dummyparameter", "dzcaronligature", "dzligature", "eTeX", "eacute", "ebreve", "ecaron", "ecedilla", "ecircumflex", "ecircumflexacute", "ecircumflexdotbelow", "ecircumflexgrave", "ecircumflexhook", "ecircumflextilde", "edefconvertedargument", "ediaeresis", "edotaccent", "edotbelow", "edoublegrave", "ee", "efcmaxheight", "efcmaxwidth", "efcminheight", "efcminwidth", "efcparameter", "effect", "egrave", "ehook", "einvertedbreve", "elapsedseconds", "elapsedsteptime", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "enableasciimode", "enabledirectives", "enableexperiments", "enablemode", "enableoutputstream", "enableparpositions", "enableregime", "enabletrackers", "endash", "endnote", "enquad", "enskip", "enspace", "env", "environment", "envvar", "eogonek", "eoverbarfill", "eoverbracefill", "eoverbracketfill", "eoverparentfill", "epos", "epsilon", "eq", "eqcirc", "eqeq", "eqeqeq", "eqgtr", "eqless", "eqsim", "eqslantgtr", "eqslantless", "equaldigits", "equalscolon", "equiv", "erightarrowfill", "erightharpoondownfill", "erightharpoonupfill", "eta", "eth", "ethiopic", "etilde", "etwoheadrightarrowfill", "eunderbarfill", "eunderbracefill", "eunderbracketfill", "eunderparentfill", "exclamdown", "executeifdefined", "exists", "exitloop", "exitloopnow", "expandcheckedcsname", "expanded", "expandeddoif", "expandeddoifelse", "expandeddoifnot", "expandfontsynonym", "expdoif", "expdoifcommonelse", "expdoifelse", "expdoifelsecommon", "expdoifelseinset", "expdoifinsetelse", "expdoifnot", "exponentiale", "externalfigure", "externalfigurecollectionmaxheight", "externalfigurecollectionmaxwidth", "externalfigurecollectionminheight", "externalfigurecollectionminwidth", "externalfigurecollectionparameter", "fakebox", "fallingdotseq", "fastdecrement", "fastincrement", "fastlocalframed", "fastloopfinal", "fastloopindex", "fastscale", "fastsetup", "fastsetupwithargument", "fastsetupwithargumentswapped", "fastswitchtobodyfont", "fastsxsy", "feature", "fence", "fenced", "fetchallmarkings", "fetchallmarks", "fetchmark", "fetchmarking", "fetchonemark", "fetchonemarking", "fetchruntinecommand", "fetchtwomarkings", "fetchtwomarks", "ffiligature", "ffligature", "fflligature", "fhook", "field", "fieldbody", "fieldstack", "fifthoffivearguments", "fifthofsixarguments", "figurefilename", "figurefilepath", "figurefiletype", "figurefullname", "figureheight", "figurenaturalheight", "figurenaturalwidth", "figurespace", "figuresymbol", "figurewidth", "filename", "filigature", "filledhboxb", "filledhboxc", "filledhboxg", "filledhboxk", "filledhboxm", "filledhboxr", "filledhboxy", "filler", "fillinline", "fillinrules", "fillintext", "fillupto", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "firstinlist", "firstoffivearguments", "firstoffourarguments", "firstofoneargument", "firstofoneunexpanded", "firstofsixarguments", "firstofthreearguments", "firstofthreeunexpanded", "firstoftwoarguments", "firstoftwounexpanded", "firstrealpage", "firstrealpagenumber", "firstsubcountervalue", "firstsubpage", "firstsubpagenumber", "firstuserpage", "firstuserpagenumber", "fitfield", "fitfieldframed", "fittopbaselinegrid", "fiveeighths", "fivesixths", "fixedspace", "fixedspaces", "flag", "flat", "flligature", "floatuserdataparameter", "flushbox", "flushboxregister", "flushcollector", "flushedrightlastline", "flushlayer", "flushlocalfloats", "flushnextbox", "flushnotes", "flushoutputstream", "flushshapebox", "flushtextflow", "flushtokens", "flushtoks", "fontalternative", "fontbody", "fontchar", "fontcharbyindex", "fontclass", "fontclassname", "fontface", "fontfeaturelist", "fontsize", "fontstyle", "footnote", "footnotetext", "forall", "forcecharacterstripping", "forcelocalfloats", "forgeteverypar", "forgetparagraphfreezing", "forgetparameters", "forgetparskip", "forgetparwrapper", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "freezeparagraphproperties", "frenchspacing", "from", "fromlinenote", "frown", "frozenhbox", "frule", "gacute", "gamma", "gbreve", "gcaron", "gcircumflex", "gcommaaccent", "gdefconvertedargument", "gdefconvertedcommand", "gdotaccent", "ge", "geq", "geqq", "geqslant", "getMPdrawing", "getMPlayer", "getboxfromcache", "getboxllx", "getboxlly", "getbuffer", "getbufferdata", "getcommacommandsize", "getcommalistsize", "getdatavalue", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromluatable", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getinlineuserdata", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getparwrapper", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettokenlist", "gettwopassdata", "gettwopassdatalist", "getuserdata", "getuvalue", "getvalue", "getvariable", "getvariabledefault", "getxparameters", "gg", "ggg", "gggtr", "gimel", "globaldisablemode", "globalenablemode", "globalletempty", "globalpopbox", "globalpopmacro", "globalpreventmode", "globalprocesscommalist", "globalpushbox", "globalpushmacro", "globalswapcounts", "globalswapdimens", "globalswapmacros", "globalundefine", "glyphfontfile", "gnapprox", "gneqq", "gnsim", "gobbledoubleempty", "gobbleeightarguments", "gobblefivearguments", "gobblefiveoptionals", "gobblefourarguments", "gobblefouroptionals", "gobbleninearguments", "gobbleoneargument", "gobbleoneoptional", "gobblesevenarguments", "gobblesingleempty", "gobblesixarguments", "gobblespacetokens", "gobbletenarguments", "gobblethreearguments", "gobblethreeoptionals", "gobbletwoarguments", "gobbletwooptionals", "gobbleuntil", "gobbleuntilrelax", "godown", "goto", "gotobox", "gotopage", "grabbufferdata", "grabbufferdatadirect", "grabuntil", "grave", "graycolor", "grayvalue", "greedysplitstring", "greekAlpha", "greekAlphadasia", "greekAlphadasiaperispomeni", "greekAlphadasiatonos", "greekAlphadasiavaria", "greekAlphaiotasub", "greekAlphaiotasubdasia", "greekAlphaiotasubdasiaperispomeni", "greekAlphaiotasubdasiatonos", "greekAlphaiotasubdasiavaria", "greekAlphaiotasubpsili", "greekAlphaiotasubpsiliperispomeni", "greekAlphaiotasubpsilitonos", "greekAlphaiotasubpsilivaria", "greekAlphamacron", "greekAlphapsili", "greekAlphapsiliperispomeni", "greekAlphapsilitonos", "greekAlphapsilivaria", "greekAlphatonos", "greekAlphavaria", "greekAlphavrachy", "greekBeta", "greekChi", "greekCoronis", "greekDelta", "greekEpsilon", "greekEpsilondasia", "greekEpsilondasiatonos", "greekEpsilondasiavaria", "greekEpsilonpsili", "greekEpsilonpsilitonos", "greekEpsilonpsilivaria", "greekEpsilontonos", "greekEpsilonvaria", "greekEta", "greekEtadasia", "greekEtadasiaperispomeni", "greekEtadasiatonos", "greekEtadasiavaria", "greekEtaiotasub", "greekEtaiotasubdasia", "greekEtaiotasubdasiaperispomeni", "greekEtaiotasubdasiatonos", "greekEtaiotasubdasiavaria", "greekEtaiotasubpsili", "greekEtaiotasubpsiliperispomeni", "greekEtaiotasubpsilitonos", "greekEtaiotasubpsilivaria", "greekEtapsili", "greekEtapsiliperispomeni", "greekEtapsilitonos", "greekEtapsilivaria", "greekEtatonos", "greekEtavaria", "greekGamma", "greekIota", "greekIotadasia", "greekIotadasiaperispomeni", "greekIotadasiatonos", "greekIotadasiavaria", "greekIotadialytika", "greekIotamacron", "greekIotapsili", "greekIotapsiliperispomeni", "greekIotapsilitonos", "greekIotapsilivaria", "greekIotatonos", "greekIotavaria", "greekIotavrachy", "greekKappa", "greekLambda", "greekMu", "greekNu", "greekOmega", "greekOmegadasia", "greekOmegadasiaperispomeni", "greekOmegadasiatonos", "greekOmegadasiavaria", "greekOmegaiotasub", "greekOmegaiotasubdasia", "greekOmegaiotasubdasiaperispomeni", "greekOmegaiotasubdasiatonos", "greekOmegaiotasubdasiavaria", "greekOmegaiotasubpsili", "greekOmegaiotasubpsiliperispomeni", "greekOmegaiotasubpsilitonos", "greekOmegaiotasubpsilivaria", "greekOmegapsili", "greekOmegapsiliperispomeni", "greekOmegapsilitonos", "greekOmegapsilivaria", "greekOmegatonos", "greekOmegavaria", "greekOmicron", "greekOmicrondasia", "greekOmicrondasiatonos", "greekOmicrondasiavaria", "greekOmicronpsili", "greekOmicronpsilitonos", "greekOmicronpsilivaria", "greekOmicrontonos", "greekOmicronvaria", "greekPhi", "greekPi", "greekPsi", "greekRho", "greekRhodasia", "greekSigma", "greekSigmalunate", "greekTau", "greekTheta", "greekUpsilon", "greekUpsilondasia", "greekUpsilondasiaperispomeni", "greekUpsilondasiatonos", "greekUpsilondasiavaria", "greekUpsilondialytika", "greekUpsilonmacron", "greekUpsilontonos", "greekUpsilonvaria", "greekUpsilonvrachy", "greekXi", "greekZeta", "greekalpha", "greekalphadasia", "greekalphadasiaperispomeni", "greekalphadasiatonos", "greekalphadasiavaria", "greekalphaiotasub", "greekalphaiotasubdasia", "greekalphaiotasubdasiaperispomeni", "greekalphaiotasubdasiatonos", "greekalphaiotasubdasiavaria", "greekalphaiotasubperispomeni", "greekalphaiotasubpsili", "greekalphaiotasubpsiliperispomeni", "greekalphaiotasubpsilitonos", "greekalphaiotasubpsilivaria", "greekalphaiotasubtonos", "greekalphaiotasubvaria", "greekalphamacron", "greekalphaoxia", "greekalphaperispomeni", "greekalphapsili", "greekalphapsiliperispomeni", "greekalphapsilitonos", "greekalphapsilivaria", "greekalphatonos", "greekalphavaria", "greekalphavrachy", "greekbeta", "greekbetaalt", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiavaria", "greekdelta", "greekdialytikaperispomeni", "greekdialytikatonos", "greekdialytikavaria", "greekdigamma", "greekepsilon", "greekepsilonalt", "greekepsilondasia", "greekepsilondasiatonos", "greekepsilondasiavaria", "greekepsilonoxia", "greekepsilonpsili", "greekepsilonpsilitonos", "greekepsilonpsilivaria", "greekepsilontonos", "greekepsilonvaria", "greeketa", "greeketadasia", "greeketadasiaperispomeni", "greeketadasiatonos", "greeketadasiavaria", "greeketaiotasub", "greeketaiotasubdasia", "greeketaiotasubdasiaperispomeni", "greeketaiotasubdasiatonos", "greeketaiotasubdasiavaria", "greeketaiotasubperispomeni", "greeketaiotasubpsili", "greeketaiotasubpsiliperispomeni", "greeketaiotasubpsilitonos", "greeketaiotasubpsilivaria", "greeketaiotasubtonos", "greeketaiotasubvaria", "greeketaoxia", "greeketaperispomeni", "greeketapsili", "greeketapsiliperispomeni", "greeketapsilitonos", "greeketapsilivaria", "greeketatonos", "greeketavaria", "greekfinalsigma", "greekgamma", "greekiota", "greekiotadasia", "greekiotadasiaperispomeni", "greekiotadasiatonos", "greekiotadasiavaria", "greekiotadialytika", "greekiotadialytikaperispomeni", "greekiotadialytikatonos", "greekiotadialytikavaria", "greekiotamacron", "greekiotaoxia", "greekiotaperispomeni", "greekiotapsili", "greekiotapsiliperispomeni", "greekiotapsilitonos", "greekiotapsilivaria", "greekiotatonos", "greekiotavaria", "greekiotavrachy", "greekkappa", "greekkoppa", "greeklambda", "greekmu", "greeknu", "greeknumerals", "greeknumkoppa", "greekomega", "greekomegadasia", "greekomegadasiaperispomeni", "greekomegadasiatonos", "greekomegadasiavaria", "greekomegaiotasub", "greekomegaiotasubdasia", "greekomegaiotasubdasiaperispomeni", "greekomegaiotasubdasiatonos", "greekomegaiotasubdasiavaria", "greekomegaiotasubperispomeni", "greekomegaiotasubpsili", "greekomegaiotasubpsiliperispomeni", "greekomegaiotasubpsilitonos", "greekomegaiotasubpsilivaria", "greekomegaiotasubtonos", "greekomegaiotasubvaria", "greekomegaoxia", "greekomegaperispomeni", "greekomegapsili", "greekomegapsiliperispomeni", "greekomegapsilitonos", "greekomegapsilivaria", "greekomegatonos", "greekomegavaria", "greekomicron", "greekomicrondasia", "greekomicrondasiatonos", "greekomicrondasiavaria", "greekomicronoxia", "greekomicronpsili", "greekomicronpsilitonos", "greekomicronpsilivaria", "greekomicrontonos", "greekomicronvaria", "greekoxia", "greekperispomeni", "greekphi", "greekphialt", "greekpi", "greekpialt", "greekprosgegrammeni", "greekpsi", "greekpsili", "greekpsiliperispomeni", "greekpsilivaria", "greekrho", "greekrhoalt", "greekrhodasia", "greekrhopsili", "greeksampi", "greeksigma", "greeksigmalunate", "greekstigma", "greektau", "greektheta", "greekthetaalt", "greektonos", "greekupsilon", "greekupsilondasia", "greekupsilondasiaperispomeni", "greekupsilondasiatonos", "greekupsilondasiavaria", "greekupsilondiaeresis", "greekupsilondialytikaperispomeni", "greekupsilondialytikatonos", "greekupsilondialytikavaria", "greekupsilonmacron", "greekupsilonoxia", "greekupsilonperispomeni", "greekupsilonpsili", "greekupsilonpsiliperispomeni", "greekupsilonpsilitonos", "greekupsilonpsilivaria", "greekupsilontonos", "greekupsilonvaria", "greekupsilonvrachy", "greekvaria", "greekxi", "greekzeta", "grid", "groupedcommand", "gsetboxllx", "gsetboxlly", "gstroke", "gt", "gtrapprox", "gtrdot", "gtreqless", "gtreqqless", "gtrless", "gtrsim", "guilsingleleft", "guilsingleright", "gujaratinumerals", "gurmurkhinumerals", "hairline", "hairspace", "halflinestrut", "halfstrut", "halfwaybox", "handletokens", "handwritten", "hangul", "hanzi", "hash", "hat", "hbar", "hboxofvbox", "hboxreference", "hcaron", "hcircumflex", "hdofstring", "headhbox", "headlanguage", "headnumber", "headnumbercontent", "headnumberdistance", "headnumberwidth", "headreferenceattributes", "headsetupspacing", "headtext", "headtextcontent", "headtextdistance", "headtexts", "headtextwidth", "headvbox", "headwidth", "heartsuit", "hebrewAlef", "hebrewAyin", "hebrewBet", "hebrewDalet", "hebrewGimel", "hebrewHe", "hebrewHet", "hebrewKaf", "hebrewKaffinal", "hebrewLamed", "hebrewMem", "hebrewMemfinal", "hebrewNun", "hebrewNunfinal", "hebrewPe", "hebrewPefinal", "hebrewQof", "hebrewResh", "hebrewSamekh", "hebrewShin", "hebrewTav", "hebrewTet", "hebrewTsadi", "hebrewTsadifinal", "hebrewVav", "hebrewYod", "hebrewZayin", "hebrewnumerals", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hexnumber", "hexstringtonumber", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "hpackbox", "hpackedbox", "hphantom", "hpos", "hsizefraction", "hslash", "hsmash", "hsmashbox", "hsmashed", "hspace", "hstroke", "htdpofstring", "htofstring", "hyphen", "hyphenatedcoloredword", "hyphenatedfile", "hyphenatedfilename", "hyphenatedhbox", "hyphenatedpar", "hyphenatedurl", "hyphenatedword", "iacute", "ibox", "ibreve", "icaron", "icircumflex", "ideographichalffillspace", "ideographicspace", "idiaeresis", "idotaccent", "idotbelow", "idoublegrave", "idxfromluatable", "ifassignment", "iff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignoretagsinexport", "ignorevalue", "igrave", "ihook", "ii", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "includesvgbuffer", "includesvgfile", "includeversioninfo", "increment", "incrementcounter", "incrementedcounter", "incrementpagenumber", "incrementsubpagenumber", "incrementvalue", "indentation", "index", "infofont", "infofontbold", "inframed", "infty", "infull", "inheritparameter", "inhibitblank", "ininner", "ininneredge", "ininnermargin", "initializeboxstack", "inleft", "inleftedge", "inleftmargin", "inline", "inlinebuffer", "inlinedbox", "inlinemath", "inlinemathematics", "inlinemessage", "inlineordisplaymath", "inlineprettyprintbuffer", "inlinerange", "inmargin", "inmframed", "innerflushshapebox", "inother", "inouter", "inouteredge", "inoutermargin", "input", "inputfilebarename", "inputfilename", "inputfilerealsuffix", "inputfilesuffix", "inputgivenfile", "inright", "inrightedge", "inrightmargin", "insertpages", "inspectluatable", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installctxfunction", "installctxscanner", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installglobalmacrostack", "installlanguage", "installleftframerenderer", "installmacrostack", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "installprotectedctxfunction", "installprotectedctxscanner", "installrightframerenderer", "installrootparameterhandler", "installsetuphandler", "installsetuponlycommandhandler", "installshipoutmethod", "installsimplecommandhandler", "installsimpleframedcommandhandler", "installstyleandcolorhandler", "installswitchcommandhandler", "installswitchsetuphandler", "installtexdirective", "installtextracker", "installtopframerenderer", "installunitsseparator", "installunitsspace", "installversioninfo", "int", "intclockwise", "integerrounding", "integers", "interactionbar", "interactionbuttons", "interactionmenu", "intercal", "intertext", "interwordspaceafter", "interwordspacebefore", "interwordspaces", "interwordspacesafter", "interwordspacesbefore", "intop", "invisibletimes", "invokepagehandler", "iogonek", "iota", "italic", "italicbold", "italiccorrection", "italicface", "item", "items", "itemtag", "itilde", "jcaron", "jcircumflex", "ji", "jmath", "jobfilename", "jobfilesuffix", "kap", "kappa", "kcaron", "kcommaaccent", "keepblocks", "keeplinestogether", "keepunwantedspaces", "kerncharacters", "khook", "kkra", "koreancirclenumerals", "koreannumerals", "koreannumeralsc", "koreannumeralsp", "koreanparentnumerals", "lVert", "labellanguage", "labeltext", "labeltexts", "lacute", "lambda", "lambdabar", "land", "langle", "language", "languageCharacters", "languagecharacters", "languagecharwidth", "lastcounter", "lastcountervalue", "lastdigit", "lastlinewidth", "lastnaturalboxdp", "lastnaturalboxht", "lastnaturalboxwd", "lastparwrapper", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "lchexnumber", "lchexnumbers", "lcommaaccent", "lcurl", "ldotmiddle", "ldotp", "ldots", "le", "leadsto", "left", "leftaligned", "leftarrow", "leftarrowtail", "leftarrowtriangle", "leftbottombox", "leftbox", "leftdasharrow", "leftguillemot", "leftharpoondown", "leftharpoonup", "lefthbox", "leftheadtext", "leftlabeltext", "leftleftarrows", "leftline", "leftmathlabeltext", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "leftrightarrow", "leftrightarrows", "leftrightarrowtriangle", "leftrightharpoons", "leftrightsquigarrow", "leftskipadaption", "leftsquigarrow", "leftsubguillemot", "leftthreetimes", "lefttopbox", "lefttoright", "lefttorighthbox", "lefttorightvbox", "lefttorightvtop", "leftwavearrow", "leftwhitearrow", "leq", "leqq", "leqslant", "lessapprox", "lessdot", "lesseqgtr", "lesseqqgtr", "lessgtr", "lesssim", "letbeundefined", "letcatcodecommand", "letcscsname", "letcsnamecs", "letcsnamecsname", "letdummyparameter", "letempty", "letgvalue", "letgvalueempty", "letgvalurelax", "letterampersand", "letterat", "letterbackslash", "letterbar", "letterbgroup", "letterclosebrace", "lettercolon", "letterdollar", "letterdoublequote", "letteregroup", "letterescape", "letterexclamationmark", "letterhash", "letterhat", "letterleftbrace", "letterleftbracket", "letterleftparenthesis", "letterless", "lettermore", "letteropenbrace", "letterpercent", "letterquestionmark", "letterrightbrace", "letterrightbracket", "letterrightparenthesis", "lettersinglequote", "letterslash", "letterspacing", "lettertilde", "letterunderscore", "letvalue", "letvalueempty", "letvaluerelax", "lfence", "lfloor", "lgroup", "lhbox", "lhooknwarrow", "lhooksearrow", "limitatefirstline", "limitatelines", "limitatetext", "line", "linebox", "linefeed", "linefillerhbox", "linefillervbox", "linefillervtop", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "literalmode", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "llointerval", "lmoustache", "lnapprox", "lneq", "lneqq", "lnot", "lnsim", "loadanyfile", "loadanyfileonce", "loadbtxdefinitionfile", "loadbtxreplacementfile", "loadcldfile", "loadcldfileonce", "loadfontgoodies", "loadluafile", "loadluafileonce", "loadspellchecklist", "loadtexfile", "loadtexfileonce", "loadtypescriptfile", "localframed", "localframedwithsettings", "localhsize", "localpopbox", "localpopmacro", "localpushbox", "localpushmacro", "localundefine", "locatedfilepath", "locatefilepath", "locfilename", "logo", "lohi", "lointerval", "lomihi", "longleftarrow", "longleftrightarrow", "longmapsfrom", "longmapsto", "longrightarrow", "longrightsquigarrow", "looparrowleft", "looparrowright", "lor", "low", "lowerbox", "lowercased", "lowercasestring", "lowercasing", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "ltrhbox", "ltrvbox", "ltrvtop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luametaTeX", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "markedpages", "marking", "markinjector", "markpage", "markreferencepage", "mat", "math", "mathampersand", "mathbf", "mathbi", "mathblackboard", "mathbs", "mathdefault", "mathdollar", "mathdouble", "mathematics", "mathfraktur", "mathfunction", "mathhash", "mathhyphen", "mathit", "mathitalic", "mathlabellanguage", "mathlabeltext", "mathlabeltexts", "mathop", "mathover", "mathpercent", "mathrm", "mathscript", "mathsl", "mathss", "mathtext", "mathtextbf", "mathtextbi", "mathtextbs", "mathtextit", "mathtextsl", "mathtexttf", "mathtf", "mathtriplet", "mathtt", "mathunder", "mathupright", "mathword", "mathwordbf", "mathwordbi", "mathwordbs", "mathwordit", "mathwordsl", "mathwordtf", "maxaligned", "mbox", "mcframed", "measure", "measured", "measuredangle", "measuredeq", "medskip", "medspace", "menubutton", "mequal", "message", "mfence", "mframed", "mfunction", "mfunctionlabeltext", "mhbox", "mho", "mhookleftarrow", "mhookrightarrow", "mid", "midaligned", "middle", "middlealigned", "middlebox", "midhbox", "midsubsentence", "minimalhbox", "minus", "minuscolon", "mirror", "mixedcaps", "mkvibuffer", "mleftarrow", "mleftharpoondown", "mleftharpoonup", "mleftrightarrow", "mleftrightharpoons", "mmapsto", "models", "moduleparameter", "molecule", "mono", "monobold", "mononormal", "month", "monthlong", "monthshort", "mp", "mprandomnumber", "mrel", "mrightarrow", "mrightharpoondown", "mrightharpoonup", "mrightleftharpoons", "mrightoverleftarrow", "mtext", "mtriplerel", "mtwoheadleftarrow", "mtwoheadrightarrow", "mu", "multimap", "nHdownarrow", "nHuparrow", "nLeftarrow", "nLeftrightarrow", "nRightarrow", "nVDash", "nVdash", "nVleftarrow", "nVleftrightarrow", "nVrightarrow", "nabla", "nacute", "namedheadnumber", "namedstructureheadlocation", "namedstructureuservariable", "namedstructurevariable", "namedtaggedlabeltexts", "napostrophe", "napprox", "napproxEq", "narrownobreakspace", "nasymp", "natural", "naturalhbox", "naturalhpack", "naturalnumbers", "naturaltpack", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negemspace", "negenspace", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "newluatable", "newmode", "newsignal", "newsystemmode", "nexists", "nextbox", "nextboxdp", "nextboxht", "nextboxhtdp", "nextboxwd", "nextcounter", "nextcountervalue", "nextdepth", "nextparagraphs", "nextrealpage", "nextrealpagenumber", "nextsubcountervalue", "nextsubpage", "nextsubpagenumber", "nextuserpage", "nextuserpagenumber", "ngeq", "ngrave", "ngtr", "ngtrless", "ngtrsim", "ni", "nihongo", "nin", "njligature", "nleftarrow", "nleftrightarrow", "nleq", "nless", "nlessgtr", "nlesssim", "nmid", "nni", "nobar", "nobreakspace", "nocap", "nocharacteralign", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflinesinbox", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "nohyphens", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "nonvalidassignment", "normal", "normalboldface", "normalframedwithsettings", "normalitalicface", "normalizebodyfontsize", "normalizedfontsize", "normalizefontdepth", "normalizefontheight", "normalizefontline", "normalizefontwidth", "normalizetextdepth", "normalizetextheight", "normalizetextline", "normalizetextwidth", "normalslantedface", "normaltypeface", "nospace", "not", "note", "notesymbol", "notin", "notopandbottomlines", "notragged", "nowns", "nparallel", "nprec", "npreccurlyeq", "nrightarrow", "nsim", "nsimeq", "nsqsubseteq", "nsqsupseteq", "nsubset", "nsubseteq", "nsucc", "nsucccurlyeq", "nsupset", "nsupseteq", "ntilde", "ntimes", "ntriangleleft", "ntrianglelefteq", "ntriangleright", "ntrianglerighteq", "nu", "numberofpoints", "numbers", "nvDash", "nvdash", "nvleftarrow", "nvleftrightarrow", "nvrightarrow", "nwarrow", "nwsearrow", "oacute", "obeydepth", "objectdepth", "objectheight", "objectmargin", "objectwidth", "obox", "obreve", "ocaron", "ocircumflex", "ocircumflexacute", "ocircumflexdotbelow", "ocircumflexgrave", "ocircumflexhook", "ocircumflextilde", "octnumber", "octstringtonumber", "odiaeresis", "odiaeresismacron", "odot", "odotaccent", "odotaccentmacron", "odotbelow", "odoublegrave", "oeligature", "offset", "offsetbox", "ograve", "ohm", "ohook", "ohorn", "ohornacute", "ohorndotbelow", "ohorngrave", "ohornhook", "ohorntilde", "ohungarumlaut", "oiiint", "oiint", "oint", "ointclockwise", "ointctrclockwise", "oinvertedbreve", "omacron", "omega", "omicron", "ominus", "onedigitrounding", "oneeighth", "onefifth", "onehalf", "onequarter", "onesixth", "onesuperior", "onethird", "oogonek", "oogonekmacron", "operatorlanguage", "operatortext", "oplus", "ordfeminine", "ordinaldaynumber", "ordinalstr", "ordmasculine", "ornamenttext", "oslash", "ostroke", "ostrokeacute", "otilde", "otildemacron", "otimes", "outputfilename", "outputstreambox", "outputstreamcopy", "outputstreamunvbox", "outputstreamunvcopy", "over", "overbar", "overbars", "overbartext", "overbarunderbar", "overbrace", "overbracetext", "overbraceunderbrace", "overbracket", "overbrackettext", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlayimage", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overleftharpoondown", "overleftharpoonup", "overleftrightarrow", "overloaderror", "overparent", "overparenttext", "overparentunderparent", "overrightarrow", "overrightharpoondown", "overrightharpoonup", "overset", "overstrike", "overstrikes", "overtwoheadleftarrow", "overtwoheadrightarrow", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "pagestaterealpageorder", "paletsize", "paragraphmark", "parallel", "part", "partial", "pdfTeX", "pdfactualtext", "pdfbackendactualtext", "pdfbackendcurrentresources", "pdfbackendsetcatalog", "pdfbackendsetcolorspace", "pdfbackendsetextgstate", "pdfbackendsetinfo", "pdfbackendsetname", "pdfbackendsetpageattribute", "pdfbackendsetpageresource", "pdfbackendsetpagesattribute", "pdfbackendsetpattern", "pdfbackendsetshade", "pdfcolor", "pdfeTeX", "percent", "percentdimen", "periodcentered", "periods", "permitcaretescape", "permitcircumflexescape", "permitspacesbetweengroups", "perp", "persiandecimals", "persiandecimalseparator", "persiannumerals", "persianthousandsseparator", "perthousand", "phantom", "phantombox", "phi", "phook", "pi", "pickupgroupedcommand", "pitchfork", "placeattachments", "placebookmarks", "placebtxrendering", "placechemical", "placecitation", "placecombinedlist", "placecomments", "placecontent", "placecurrentformulanumber", "placedbox", "placefigure", "placefloat", "placefloatcaption", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "placeholder", "placeindex", "placeinitial", "placeintermezzo", "placelayer", "placelayeredtext", "placelegend", "placelist", "placelistofabbreviations", "placelistofchemicals", "placelistoffigures", "placelistofgraphics", "placelistofintermezzi", "placelistoflogos", "placelistofpublications", "placelistofsorts", "placelistofsynonyms", "placelistoftables", "placelocalfootnotes", "placelocalnotes", "placement", "placenamedfloat", "placenamedformula", "placenotes", "placeongrid", "placeontopofeachother", "placepagenumber", "placepairedbox", "placeparallel", "placerawheaddata", "placerawheadnumber", "placerawheadtext", "placerawlist", "placeregister", "placerenderingwindow", "placesidebyside", "placesubformula", "placetable", "pm", "popattribute", "popmacro", "popmode", "popsystemmode", "position", "positionoverlay", "positionregionoverlay", "positivesign", "postponenotes", "prec", "precapprox", "preccurlyeq", "preceq", "preceqq", "precnapprox", "precneq", "precneqq", "precnsim", "precsim", "predefinedfont", "predefinefont", "predefinesymbol", "prefixedpagenumber", "prefixlanguage", "prefixtext", "prependetoks", "prependgvalue", "prependtocommalist", "prependtoks", "prependtoksonce", "prependvalue", "prerollblank", "presetbtxlabeltext", "presetdocument", "presetfieldsymbols", "presetheadtext", "presetlabeltext", "presetmathlabeltext", "presetoperatortext", "presetprefixtext", "presetsuffixtext", "presettaglabeltext", "presetunittext", "pretocommalist", "prettyprintbuffer", "prevcounter", "prevcountervalue", "preventmode", "prevrealpage", "prevrealpagenumber", "prevsubcountervalue", "prevsubpage", "prevsubpagenumber", "prevuserpage", "prevuserpagenumber", "prime", "primes", "procent", "processMPbuffer", "processMPfigurefile", "processaction", "processallactionsinset", "processassignlist", "processassignmentcommand", "processassignmentlist", "processbetween", "processblocks", "processbodyfontenvironmentlist", "processcolorcomponents", "processcommacommand", "processcommalist", "processcommalistwithparameters", "processcontent", "processfile", "processfilemany", "processfilenone", "processfileonce", "processfirstactioninset", "processisolatedchars", "processisolatedwords", "processlinetablebuffer", "processlinetablefile", "processlist", "processmonth", "processranges", "processseparatedlist", "processtexbuffer", "processtokens", "processuntil", "processxtablebuffer", "processyear", "prod", "product", "profiledbox", "profilegivenbox", "program", "project", "propto", "pseudoMixedCapped", "pseudoSmallCapped", "pseudoSmallcapped", "pseudosmallcapped", "psi", "punctuationspace", "purenumber", "pushattribute", "pushbutton", "pushmacro", "pushmode", "pushoutputstream", "pushsystemmode", "putboxincache", "putnextboxincache", "qquad", "quad", "quadrupleprime", "quads", "quarterstrut", "questiondown", "questionedeq", "quitcommalist", "quitprevcommalist", "quittypescriptscanning", "quotation", "quote", "quotedbl", "quotedblbase", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "quotesingle", "quotesinglebase", "rVert", "racute", "raggedbottom", "raggedcenter", "raggedleft", "raggedright", "raggedwidecenter", "raisebox", "randomizetext", "randomnumber", "rangle", "rationals", "rawcounter", "rawcountervalue", "rawdate", "rawdoifelseinset", "rawdoifinset", "rawdoifinsetelse", "rawgetparameters", "rawprocessaction", "rawprocesscommacommand", "rawprocesscommalist", "rawstructurelistuservariable", "rawsubcountervalue", "rbox", "rbrace", "rbracket", "rcaron", "rceil", "rcommaaccent", "rdoublegrave", "readfile", "readfixfile", "readjobfile", "readlocfile", "readsetfile", "readsysfile", "readtexfile", "readxmlfile", "realSmallCapped", "realSmallcapped", "realpagenumber", "reals", "realsmallcapped", "recursedepth", "recurselevel", "recursestring", "redoconvertfont", "ref", "reference", "referencecolumnnumber", "referencepagedetail", "referencepagestate", "referenceprefix", "referencerealpage", "referencesymbol", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registerparwrapper", "registerparwrapperreverse", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "repeathead", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetctxscanner", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetperiodkerning", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacements", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettokenlist", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "retestfeature", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "reversehbox", "reversehpack", "reversetpack", "reversevbox", "reversevboxcontent", "reversevpack", "reversevtop", "revivefeature", "rfence", "rfloor", "rgroup", "rhbox", "rho", "rhooknearrow", "rhookswarrow", "right", "rightaligned", "rightangle", "rightarrow", "rightarrowbar", "rightarrowtail", "rightarrowtriangle", "rightbottombox", "rightbox", "rightdasharrow", "rightguillemot", "rightharpoondown", "rightharpoonup", "righthbox", "rightheadtext", "rightlabeltext", "rightleftarrows", "rightleftharpoons", "rightline", "rightmathlabeltext", "rightorleftpageaction", "rightpageorder", "rightrightarrows", "rightskipadaption", "rightsquigarrow", "rightsubguillemot", "rightthreearrows", "rightthreetimes", "righttoleft", "righttolefthbox", "righttoleftvbox", "righttoleftvtop", "righttopbox", "rightwavearrow", "rightwhitearrow", "ring", "rinterval", "rinvertedbreve", "risingdotseq", "rlap", "rlointerval", "rmoustache", "rneq", "robustaddtocommalist", "robustdoifelseinset", "robustdoifinsetelse", "robustpretocommalist", "rointerval", "rollbutton", "roman", "romanC", "romanD", "romanI", "romanII", "romanIII", "romanIV", "romanIX", "romanL", "romanM", "romanV", "romanVI", "romanVII", "romanVIII", "romanX", "romanXI", "romanXII", "romanc", "romand", "romani", "romanii", "romaniii", "romaniv", "romanix", "romanl", "romanm", "romannumerals", "romanv", "romanvi", "romanvii", "romanviii", "romanx", "romanxi", "romanxii", "rootradical", "rotate", "rparent", "rrangle", "rrbracket", "rrointerval", "rtimes", "rtlhbox", "rtlvbox", "rtlvtop", "rtop", "ruby", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "russianNumerals", "russiannumerals", "rvert", "sacute", "safechar", "samplefile", "sans", "sansbold", "sansnormal", "sansserif", "savebox", "savebtxdataset", "savebuffer", "savecounter", "savecurrentattributes", "savenormalmeaning", "savetaggedtwopassdata", "savetwopassdata", "sbox", "scale", "scaron", "scedilla", "schwa", "schwahook", "scircumflex", "scommaaccent", "screen", "searrow", "secondoffivearguments", "secondoffourarguments", "secondofsixarguments", "secondofthreearguments", "secondofthreeunexpanded", "secondoftwoarguments", "secondoftwounexpanded", "section", "sectionmark", "seeindex", "select", "selectblocks", "serializecommalist", "serializedcommalist", "serif", "serifbold", "serifnormal", "setJSpreamble", "setMPlayer", "setMPpositiongraphic", "setMPpositiongraphicrange", "setMPtext", "setMPvariable", "setMPvariables", "setautopagestaterealpageno", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharacteraligndetail", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setctxluafunction", "setcurrentfontclass", "setdataset", "setdatavalue", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setexpansion", "setfirstline", "setfirstpasscharacteralign", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setfractions", "setglobalscript", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setlocalscript", "setluatable", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagereference", "setpagestate", "setpagestaterealpageno", "setparagraphfreezing", "setpenalties", "setpercentdimen", "setperiodkerning", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacements", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsecondpasscharacteralign", "setsectionblock", "setsimplecolumnshsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settestcrlf", "settextcontent", "settightobject", "settightreferencedobject", "settightstrut", "settightunreferencedobject", "settokenlist", "settrialtypesetting", "setuevalue", "setugvalue", "setunreferencedobject", "setup", "setupMPgraphics", "setupMPinstance", "setupMPpage", "setupMPvariables", "setupTABLE", "setupTEXpage", "setupalign", "setupalternativestyles", "setuparranging", "setupattachment", "setupattachments", "setupbackend", "setupbackground", "setupbackgrounds", "setupbar", "setupbars", "setupblackrules", "setupblank", "setupbleeding", "setupblock", "setupbodyfont", "setupbodyfontenvironment", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacteralign", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnset", "setupcolumnsetarea", "setupcolumnsetareatext", "setupcolumnsetlines", "setupcolumnsetspan", "setupcolumnsetstart", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdescriptions", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexpansion", "setupexport", "setupexternalfigure", "setupexternalfigures", "setupexternalsoundtracks", "setupfacingfloat", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatframed", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "setupfootnotes", "setupforms", "setupformula", "setupformulae", "setupformulaframed", "setupframed", "setupframedcontent", "setupframedtable", "setupframedtablecolumn", "setupframedtablerow", "setupframedtext", "setupframedtexts", "setupglobalreferenceprefix", "setuphead", "setupheadalternative", "setupheader", "setupheadertexts", "setupheadnumber", "setupheads", "setupheadtext", "setuphelp", "setuphigh", "setuphighlight", "setuphyphenation", "setuphyphenmark", "setupindentedtext", "setupindenting", "setupindex", "setupinitial", "setupinsertion", "setupinteraction", "setupinteractionbar", "setupinteractionmenu", "setupinteractionscreen", "setupinterlinespace", "setupitaliccorrection", "setupitemgroup", "setupitemizations", "setupitemize", "setupitems", "setuplabel", "setuplabeltext", "setuplanguage", "setuplayer", "setuplayeredtext", "setuplayout", "setuplayouttext", "setuplegend", "setuplinefiller", "setuplinefillers", "setuplinenote", "setuplinenumbering", "setuplines", "setuplinetable", "setuplinewidth", "setuplist", "setuplistalternative", "setuplistextra", "setuplocalfloats", "setuplocalinterlinespace", "setuplow", "setuplowhigh", "setuplowmidhigh", "setupmakeup", "setupmarginblock", "setupmargindata", "setupmarginframed", "setupmarginrule", "setupmarginrules", "setupmarking", "setupmathalignment", "setupmathcases", "setupmathematics", "setupmathfence", "setupmathfraction", "setupmathfractions", "setupmathframed", "setupmathlabeltext", "setupmathmatrix", "setupmathornament", "setupmathradical", "setupmathstackers", "setupmathstyle", "setupmixedcolumns", "setupmodule", "setupmulticolumns", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setuporientation", "setupoutput", "setupoutputroutine", "setuppagechecker", "setuppagecolumns", "setuppagecomment", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiodkerning", "setupperiods", "setupplaceholder", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setupruby", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstrut", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbols", "setupsymbolset", "setupsynctex", "setupsynonyms", "setupsystem", "setuptables", "setuptabulate", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextnote", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "setupuserdata", "setupuserdataalternative", "setupuserpagenumber", "setupversion", "setupviewerlayer", "setupvspacing", "setupwhitespace", "setupwithargument", "setupwithargumentswapped", "setupxml", "setupxtable", "setuvalue", "setuxvalue", "setvalue", "setvariable", "setvariables", "setvboxregister", "setvisualizerfont", "setvtopregister", "setwidthof", "setxmeasure", "setxvalue", "setxvariable", "setxvariables", "seveneighths", "sfrac", "shapedhbox", "sharp", "shiftbox", "shiftdown", "shiftup", "showallmakeup", "showattributes", "showbodyfont", "showbodyfontenvironment", "showboxes", "showbtxdatasetauthors", "showbtxdatasetcompleteness", "showbtxdatasetfields", "showbtxfields", "showbtxhashedauthors", "showbtxtables", "showchardata", "showcharratio", "showcolor", "showcolorbar", "showcolorcomponents", "showcolorgroup", "showcolorset", "showcolorstruts", "showcounter", "showdirectives", "showdirsinmargin", "showedebuginfo", "showexperiments", "showfont", "showfontdata", "showfontexpansion", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphdata", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showluatables", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showparwrapperstate", "showprint", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "signalrightpage", "sim", "simeq", "simplealignedbox", "simplealignedboxplus", "simplealignedspreadbox", "simplegroupedcommand", "simplereversealignedbox", "simplereversealignedboxplus", "singalcharacteralign", "singlebond", "singleverticalbar", "sixperemspace", "sixthofsixarguments", "slanted", "slantedbold", "slantedface", "slash", "slicepages", "slong", "slovenianNumerals", "sloveniannumerals", "small", "smallbodyfont", "smallbold", "smallbolditalic", "smallboldslanted", "smallcappedcharacters", "smallcappedromannumerals", "smallcaps", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "spaceddigits", "spaceddigitsmethod", "spaceddigitsseparator", "spaceddigitssymbol", "spadesuit", "spanishNumerals", "spanishnumerals", "speech", "sphericalangle", "splitatasterisk", "splitatcolon", "splitatcolons", "splitatcomma", "splitatperiod", "splitdfrac", "splitfilename", "splitfloat", "splitfrac", "splitoffbase", "splitofffull", "splitoffkind", "splitoffname", "splitoffpath", "splitoffroot", "splitofftokens", "splitofftype", "splitstring", "spreadhbox", "sqcap", "sqcup", "sqrt", "sqsubset", "sqsubseteq", "sqsubsetneq", "sqsupset", "sqsupseteq", "sqsupsetneq", "square", "squaredots", "ssharp", "stackrel", "stackscripts", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnested", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "startasciimode", "startaside", "startattachment", "startbackground", "startbackmatter", "startbar", "startbbordermatrix", "startbitmapimage", "startblockquote", "startbodymatter", "startbordermatrix", "startboxedcolumns", "startbtxlabeltext", "startbtxrenderingdefinitions", "startbuffer", "startcases", "startcatcodetable", "startcenteraligned", "startchapter", "startcharacteralign", "startcheckedfences", "startchemical", "startchemicaltext", "startcollect", "startcollecting", "startcolor", "startcolorintent", "startcoloronly", "startcolorset", "startcolumns", "startcolumnset", "startcolumnsetspan", "startcombination", "startcomment", "startcomponent", "startcontextcode", "startcontextdefinitioncode", "startctxfunction", "startctxfunctiondefinition", "startcurrentcolor", "startcurrentlistentrywrapper", "startdelimited", "startdelimitedtext", "startdisplaymath", "startdmath", "startdocument", "starteffect", "startelement", "startembeddedxtable", "startendnote", "startendofline", "startenvironment", "startexceptions", "startexpanded", "startexpandedcollect", "startextendedcatcodetable", "startexternalfigurecollection", "startfacingfloat", "startfact", "startfigure", "startfiguretext", "startfittingpage", "startfixed", "startfloatcombination", "startfont", "startfontclass", "startfontsolution", "startfootnote", "startformula", "startformulas", "startframed", "startframedcell", "startframedcontent", "startframedrow", "startframedtable", "startframedtext", "startfrontmatter", "startgoto", "startgraphictext", "startgridsnapping", "starthanging", "starthbox", "starthboxestohbox", "starthboxregister", "starthead", "startheadtext", "starthelptext", "starthiding", "starthighlight", "starthyphenation", "startimath", "startindentation", "startindentedtext", "startinteraction", "startinteractionmenu", "startinterface", "startintermezzotext", "startintertext", "startitem", "startitemgroup", "startitemgroupcolumns", "startitemize", "startknockout", "startlabeltext", "startlanguage", "startlayout", "startleftaligned", "startlegend", "startline", "startlinealignment", "startlinecorrection", "startlinefiller", "startlinenote", "startlinenumbering", "startlines", "startlinetable", "startlinetablebody", "startlinetablecell", "startlinetablehead", "startlocalfootnotes", "startlocalheadsetup", "startlocallinecorrection", "startlocalnotes", "startlocalsetups", "startlua", "startluacode", "startluaparameterset", "startluasetups", "startmakeup", "startmarginblock", "startmarginrule", "startmarkedcontent", "startmarkpages", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startmulticolumns", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecolumns", "startpagecomment", "startpagefigure", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startpostponingnotes", "startprefixtext", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startruby", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startsplittext", "startspread", "startstandardmakeup", "startstaticMPfigure", "startstaticMPgraphic", "startstrictinspectnextcharacter", "startstructurepageregister", "startstrut", "startstyle", "startsubformulas", "startsubject", "startsubjectlevel", "startsubsection", "startsubsentence", "startsubstack", "startsubsubject", "startsubsubsection", "startsubsubsubject", "startsubsubsubsection", "startsubsubsubsubject", "startsubsubsubsubsection", "startsubsubsubsubsubject", "startsuffixtext", "startsymbolset", "starttable", "starttablehead", "starttables", "starttabletail", "starttabletext", "starttabulate", "starttabulatehead", "starttabulatetail", "starttagged", "starttaglabeltext", "starttexcode", "starttexdefinition", "starttext", "starttextbackground", "starttextbackgroundmanual", "starttextcolor", "starttextcolorintent", "starttextflow", "starttextmakeup", "starttextrule", "startthematrix", "starttitle", "starttokenlist", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startuserdata", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "startxcolumn", "startxgroup", "startxmldisplayverbatim", "startxmlinlineverbatim", "startxmlraw", "startxmlsetups", "startxrow", "startxrowgroup", "startxtable", "startxtablebody", "startxtablefoot", "startxtablehead", "startxtablenext", "stligature", "stopJScode", "stopJSpreamble", "stopLUA", "stopMP", "stopMPclip", "stopMPcode", "stopMPdefinitions", "stopMPdrawing", "stopMPenvironment", "stopMPextensions", "stopMPinclusions", "stopMPinitializations", "stopMPpage", "stopMPpositiongraphic", "stopMPpositionmethod", "stopMPrun", "stopPARSEDXML", "stopTABLE", "stopTABLEbody", "stopTABLEfoot", "stopTABLEhead", "stopTABLEnested", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "stopasciimode", "stopaside", "stopattachment", "stopbackground", "stopbackmatter", "stopbar", "stopbbordermatrix", "stopbitmapimage", "stopblockquote", "stopbodymatter", "stopbordermatrix", "stopboxedcolumns", "stopbtxlabeltext", "stopbtxrenderingdefinitions", "stopbuffer", "stopcases", "stopcatcodetable", "stopcenteraligned", "stopchapter", "stopcharacteralign", "stopcheckedfences", "stopchemical", "stopchemicaltext", "stopcollect", "stopcollecting", "stopcolor", "stopcolorintent", "stopcoloronly", "stopcolorset", "stopcolumns", "stopcolumnset", "stopcolumnsetspan", "stopcombination", "stopcomment", "stopcomponent", "stopcontextcode", "stopcontextdefinitioncode", "stopctxfunction", "stopctxfunctiondefinition", "stopcurrentcolor", "stopcurrentlistentrywrapper", "stopdelimited", "stopdelimitedtext", "stopdisplaymath", "stopdmath", "stopdocument", "stopeffect", "stopelement", "stopembeddedxtable", "stopendnote", "stopendofline", "stopenvironment", "stopexceptions", "stopexpanded", "stopexpandedcollect", "stopextendedcatcodetable", "stopexternalfigurecollection", "stopfacingfloat", "stopfact", "stopfigure", "stopfiguretext", "stopfittingpage", "stopfixed", "stopfloatcombination", "stopfont", "stopfontclass", "stopfontsolution", "stopfootnote", "stopformula", "stopformulas", "stopframed", "stopframedcell", "stopframedcontent", "stopframedrow", "stopframedtable", "stopframedtext", "stopfrontmatter", "stopgoto", "stopgraphictext", "stopgridsnapping", "stophanging", "stophbox", "stophboxestohbox", "stophboxregister", "stophead", "stopheadtext", "stophelptext", "stophiding", "stophighlight", "stophyphenation", "stopimath", "stopindentation", "stopindentedtext", "stopinteraction", "stopinteractionmenu", "stopinterface", "stopintermezzotext", "stopintertext", "stopitem", "stopitemgroup", "stopitemgroupcolumns", "stopitemize", "stopknockout", "stoplabeltext", "stoplanguage", "stoplayout", "stopleftaligned", "stoplegend", "stopline", "stoplinealignment", "stoplinecorrection", "stoplinefiller", "stoplinenote", "stoplinenumbering", "stoplines", "stoplinetable", "stoplinetablebody", "stoplinetablecell", "stoplinetablehead", "stoplocalfootnotes", "stoplocalheadsetup", "stoplocallinecorrection", "stoplocalnotes", "stoplocalsetups", "stoplua", "stopluacode", "stopluaparameterset", "stopluasetups", "stopmakeup", "stopmarginblock", "stopmarginrule", "stopmarkedcontent", "stopmarkpages", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopmulticolumns", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecolumns", "stoppagecomment", "stoppagefigure", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stoppostponingnotes", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopreusableMPgraphic", "stoprightaligned", "stopruby", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopsplittext", "stopspread", "stopstandardmakeup", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstrut", "stopstyle", "stopsubformulas", "stopsubject", "stopsubjectlevel", "stopsubsection", "stopsubsentence", "stopsubstack", "stopsubsubject", "stopsubsubsection", "stopsubsubsubject", "stopsubsubsubsection", "stopsubsubsubsubject", "stopsubsubsubsubsection", "stopsubsubsubsubsubject", "stopsuffixtext", "stopsymbolset", "stoptable", "stoptablehead", "stoptables", "stoptabletail", "stoptabletext", "stoptabulate", "stoptabulatehead", "stoptabulatetail", "stoptagged", "stoptaglabeltext", "stoptexcode", "stoptexdefinition", "stoptext", "stoptextbackground", "stoptextbackgroundmanual", "stoptextcolor", "stoptextcolorintent", "stoptextflow", "stoptextmakeup", "stoptextrule", "stopthematrix", "stoptitle", "stoptokenlist", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopuserdata", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "stopxcolumn", "stopxgroup", "stopxmldisplayverbatim", "stopxmlinlineverbatim", "stopxmlraw", "stopxmlsetups", "stopxrow", "stopxrowgroup", "stopxtable", "stopxtablebody", "stopxtablefoot", "stopxtablehead", "stopxtablenext", "stretched", "strictdoifelsenextoptional", "strictdoifnextoptionalelse", "stripcharacter", "strippedcsname", "stripspaces", "structurelistuservariable", "structurenumber", "structuretitle", "structureuservariable", "structurevariable", "strut", "strutdp", "strutgap", "strutht", "struthtdp", "struttedbox", "strutwd", "style", "styleinstance", "subject", "subpagenumber", "subsection", "subsentence", "subset", "subseteq", "subseteqq", "subsetneq", "subsetneqq", "substituteincommalist", "subsubject", "subsubsection", "subsubsubject", "subsubsubsection", "subsubsubsubject", "subsubsubsubsection", "subsubsubsubsubject", "subtractfeature", "succ", "succapprox", "succcurlyeq", "succeq", "succeqq", "succnapprox", "succneq", "succneqq", "succnsim", "succsim", "suffixlanguage", "suffixtext", "sum", "supset", "supseteq", "supseteqq", "supsetneq", "supsetneqq", "surd", "surdradical", "swapcounts", "swapdimens", "swapface", "swapmacros", "swaptypeface", "swarrow", "switchstyleonly", "switchtobodyfont", "switchtocolor", "switchtointerlinespace", "symbol", "symbolreference", "synchronizeblank", "synchronizeindenting", "synchronizemarking", "synchronizeoutputstreams", "synchronizestrut", "synchronizewhitespace", "synctexblockfilename", "synctexresetfilename", "synctexsetfilename", "systemlog", "systemlogfirst", "systemloglast", "systemsetups", "tLeftarrow", "tLeftrightarrow", "tRightarrow", "tabulateautoline", "tabulateautorule", "tabulateline", "tabulaterule", "taggedctxcommand", "taggedlabeltexts", "taglabellanguage", "taglabeltext", "tau", "tbinom", "tbox", "tcaron", "tcedilla", "tcommaaccent", "tcurl", "tequal", "test", "testandsplitstring", "testcolumn", "testfeature", "testfeatureonce", "testpage", "testpageonly", "testpagesync", "testtokens", "tex", "texdefinition", "texsetup", "textAngstrom", "textacute", "textampersand", "textasciicircum", "textasciitilde", "textat", "textbackslash", "textbar", "textbottomcomma", "textbottomdot", "textbraceleft", "textbraceright", "textbreve", "textbrokenbar", "textbullet", "textcaron", "textcedilla", "textcelsius", "textcent", "textcircledP", "textcircumflex", "textcitation", "textcite", "textcomma", "textcontrolspace", "textcurrency", "textdag", "textddag", "textdegree", "textdiaeresis", "textdiv", "textdollar", "textdong", "textdotaccent", "textellipsis", "texteuro", "textflowcollector", "textfraction", "textgrave", "texthash", "texthorizontalbar", "texthungarumlaut", "texthyphen", "textkelvin", "textlognot", "textmacron", "textmath", "textmho", "textminus", "textmu", "textmultiply", "textnumero", "textogonek", "textohm", "textormathchar", "textormathchars", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thedatavalue", "thefirstcharacter", "thematrix", "thenormalizedbodyfontsize", "theorientation", "therefore", "theremainingcharacters", "theta", "thickspace", "thinrule", "thinrules", "thinspace", "thirdoffivearguments", "thirdoffourarguments", "thirdofsixarguments", "thirdofthreearguments", "thirdofthreeunexpanded", "thook", "thookleftarrow", "thookrightarrow", "thorn", "threedigitrounding", "threeeighths", "threefifths", "threeperemspace", "threequarter", "threesuperior", "tibetannumerals", "tightlayer", "tilde", "times", "tinyfont", "title", "tlap", "tleftarrow", "tleftharpoondown", "tleftharpoonup", "tleftrightarrow", "tleftrightharpoons", "tmapsto", "to", "tochar", "tolinenote", "tooltip", "top", "topbox", "topleftbox", "toplinebox", "toprightbox", "topskippedbox", "tracecatcodetables", "tracedfontname", "tracedpagestate", "traceoutputroutines", "tracepositions", "trademark", "translate", "transparencycomponents", "transparent", "trel", "triangle", "triangledown", "triangleleft", "triangleq", "triangleright", "trightarrow", "trightharpoondown", "trightharpoonup", "trightleftharpoons", "trightoverleftarrow", "triplebond", "tripleprime", "tripleverticalbar", "truefilename", "truefontname", "tstroke", "ttraggedright", "ttriplerel", "ttwoheadleftarrow", "ttwoheadrightarrow", "turnediota", "twodigitrounding", "twofifths", "twoheaddownarrow", "twoheadleftarrow", "twoheadrightarrow", "twoheadrightarrowtail", "twoheaduparrow", "twosuperior", "twothirds", "tx", "txx", "typ", "type", "typebuffer", "typedefinedbuffer", "typeface", "typefile", "typeinlinebuffer", "typescriptone", "typescriptprefix", "typescriptthree", "typescripttwo", "typesetbuffer", "typesetbufferonly", "typesetfile", "uacute", "ubreve", "ucaron", "uchexnumber", "uchexnumbers", "ucircumflex", "uconvertnumber", "udiaeresis", "udiaeresisacute", "udiaeresiscaron", "udiaeresisgrave", "udiaeresismacron", "udotbelow", "udots", "udoublegrave", "uedcatcodecommand", "ugrave", "uhook", "uhorn", "uhornacute", "uhorndotbelow", "uhorngrave", "uhornhook", "uhorntilde", "uhungarumlaut", "uinvertedbreve", "ulcorner", "umacron", "undefinevalue", "undepthed", "underbar", "underbars", "underbartext", "underbrace", "underbracetext", "underbracket", "underbrackettext", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underleftharpoondown", "underleftharpoonup", "underleftrightarrow", "underparent", "underparenttext", "underrandom", "underrandoms", "underrightarrow", "underrightharpoondown", "underrightharpoonup", "underset", "understrike", "understrikes", "undertwoheadleftarrow", "undertwoheadrightarrow", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unregisterparwrapper", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "unstackscripts", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updateparagraphdemerits", "updateparagraphpenalties", "updateparagraphproperties", "updateparagraphshapes", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "uppercasing", "upperleftdoubleninequote", "upperleftdoublesixquote", "upperleftsingleninequote", "upperleftsinglesixquote", "upperrightdoubleninequote", "upperrightdoublesixquote", "upperrightsingleninequote", "upperrightsinglesixquote", "upsilon", "upuparrows", "upwhitearrow", "urcorner", "uring", "url", "useJSscripts", "useMPenvironmentbuffer", "useMPgraphic", "useMPlibrary", "useMPrun", "useMPvariables", "useURL", "usealignparameter", "useblankparameter", "useblocks", "usebodyfont", "usebodyfontparameter", "usebtxdataset", "usebtxdefinitions", "usecitation", "usecolors", "usecomponent", "usedirectory", "usedummycolorparameter", "usedummystyleandcolor", "usedummystyleparameter", "useenvironment", "useexternaldocument", "useexternalfigure", "useexternalrendering", "useexternalsoundtrack", "usefigurebase", "usefile", "usefontpath", "usegridparameter", "usehyphensparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "useluatable", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "validassignment", "varTheta", "varepsilon", "varkappa", "varnothing", "varphi", "varpi", "varrho", "varsigma", "vartheta", "vboxreference", "vdash", "vdots", "vec", "vee", "veebar", "veeeq", "verbatim", "verbatimstring", "verbosenumber", "version", "vert", "verticalgrowingbar", "verticalpositionbar", "veryraggedcenter", "veryraggedleft", "veryraggedright", "vglue", "viewerlayer", "vl", "vpackbox", "vpackedbox", "vphantom", "vpos", "vsmash", "vsmashbox", "vsmashed", "vspace", "vspacing", "wcircumflex", "wdofstring", "wedge", "wedgeeq", "weekday", "whitearrowupfrombar", "widegrave", "widehat", "widetilde", "widthofstring", "widthspanningtext", "withoutpt", "word", "wordright", "words", "wordtonumber", "wp", "wr", "writebetweenlist", "writedatatolist", "writestatus", "writetolist", "xLeftarrow", "xLeftrightarrow", "xRightarrow", "xdefconvertedargument", "xequal", "xfrac", "xhookleftarrow", "xhookrightarrow", "xi", "xleftarrow", "xleftharpoondown", "xleftharpoonup", "xleftrightarrow", "xleftrightharpoons", "xmapsto", "xmladdindex", "xmlafterdocumentsetup", "xmlaftersetup", "xmlall", "xmlappenddocumentsetup", "xmlappendsetup", "xmlapplyselectors", "xmlatt", "xmlattdef", "xmlattribute", "xmlattributedef", "xmlbadinclusions", "xmlbeforedocumentsetup", "xmlbeforesetup", "xmlchainatt", "xmlchainattdef", "xmlchecknamespace", "xmlcommand", "xmlconcat", "xmlconcatrange", "xmlcontext", "xmlcount", "xmldefaulttotext", "xmldepth", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifatt", "xmldoifelse", "xmldoifelseatt", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "xmldoifnotatt", "xmldoifnotselfempty", "xmldoifnottext", "xmldoifselfempty", "xmldoiftext", "xmlelement", "xmlfilter", "xmlfirst", "xmlflush", "xmlflushcontext", "xmlflushdocumentsetups", "xmlflushlinewise", "xmlflushpure", "xmlflushspacewise", "xmlflushtext", "xmlinclude", "xmlinclusion", "xmlinclusions", "xmlinfo", "xmlinjector", "xmlinlineprettyprint", "xmlinlineprettyprinttext", "xmlinlineverbatim", "xmlinstalldirective", "xmllast", "xmllastatt", "xmllastmatch", "xmllastpar", "xmlloadbuffer", "xmlloaddata", "xmlloaddirectives", "xmlloadfile", "xmlloadonly", "xmlmain", "xmlmapvalue", "xmlname", "xmlnamespace", "xmlnonspace", "xmlpar", "xmlparam", "xmlpath", "xmlpos", "xmlposition", "xmlprependdocumentsetup", "xmlprependsetup", "xmlprettyprint", "xmlprettyprinttext", "xmlprocessbuffer", "xmlprocessdata", "xmlprocessfile", "xmlpure", "xmlraw", "xmlrefatt", "xmlregistereddocumentsetups", "xmlregisteredsetups", "xmlregisterns", "xmlremapname", "xmlremapnamespace", "xmlremovedocumentsetup", "xmlremovesetup", "xmlresetdocumentsetups", "xmlresetinjectors", "xmlresetsetups", "xmlsave", "xmlsetatt", "xmlsetattribute", "xmlsetentity", "xmlsetfunction", "xmlsetinjectors", "xmlsetpar", "xmlsetparam", "xmlsetsetup", "xmlsetup", "xmlshow", "xmlsnippet", "xmlstrip", "xmlstripnolines", "xmlstripped", "xmlstrippednolines", "xmltag", "xmltexentity", "xmltext", "xmltobuffer", "xmltobufferverbose", "xmltofile", "xmlvalue", "xmlverbatim", "xrel", "xrightarrow", "xrightharpoondown", "xrightharpoonup", "xrightleftharpoons", "xrightoverleftarrow", "xsplitstring", "xtriplerel", "xtwoheadleftarrow", "xtwoheadrightarrow", "xxfrac", "xypos", "yacute", "ycircumflex", "ydiaeresis", "ydotbelow", "yen", "ygrave", "yhook", "yiddishnumerals", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "zeronumberconversion", "zerowidthnobreakspace", "zerowidthspace", "zeta", "zhook", "zstroke", "zwj", "zwnj" },
["en"]={},
} \ No newline at end of file
diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
index 579ef3414..88918b8b2 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-tex.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
@@ -1,9 +1,9 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracinglevels", "tracingnesting", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbinfracspacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinradspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathclosefracspacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloseradspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathfracbinspacing", "Umathfracclosespacing", "Umathfracfracspacing", "Umathfracinnerspacing", "Umathfracopenspacing", "Umathfracopspacing", "Umathfracordspacing", "Umathfracpunctspacing", "Umathfracradspacing", "Umathfracrelspacing", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerfracspacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerradspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopenfracspacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenradspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopfracspacing", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathopradspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordfracspacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordradspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctfracspacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctradspacing", "Umathpunctrelspacing", "Umathquad", "Umathradbinspacing", "Umathradclosespacing", "Umathradfracspacing", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathradinnerspacing", "Umathradopenspacing", "Umathradopspacing", "Umathradordspacing", "Umathradpunctspacing", "Umathradradspacing", "Umathradrelspacing", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelfracspacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelradspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "allmathstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxgeometry", "boxorientation", "boxshift", "boxsource", "boxtarget", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "currentloopiterator", "currentloopnesting", "currentmarks", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandedloop", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "flushmarks", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "inherited", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledloop", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathfrac", "mathlimitsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrad", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "pageboundary", "pageboundarypenalty", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitvmode", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "semiexpanded", "semiprotected", "setfontid", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "todimension", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracingmarks", "tracingmath", "tracingnodes", "undent", "unexpandedloop", "unletfrozen", "unletprotected", "untraced", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" },
+ ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpresubshiftdistance", "Umathpresupshiftdistance", "Umathprimeraise", "Umathprimeshiftdrop", "Umathprimeshiftup", "Umathprimesupspace", "Umathprimevariant", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdistance", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdistance", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uprimescript", "Uradical", "Uright", "Uroot", "Ushiftedsubprescript", "Ushiftedsubscript", "Ushiftedsuperprescript", "Ushiftedsuperscript", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxgeometry", "boxorientation", "boxshift", "boxsource", "boxtarget", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "copymathatomrule", "copymathparent", "copymathspacing", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "currentloopiterator", "currentloopnesting", "currentmarks", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandedloop", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "flushmarks", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "inherited", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastchkdim", "lastchknum", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastparcontext", "lastrightclass", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letmathatomrule", "letmathparent", "letmathspacing", "letprotected", "lettonothing", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledloop", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathaccent", "mathatom", "mathatomskip", "mathbackwardpenalties", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathfenced", "mathfencesmode", "mathfontcontrol", "mathforwardpenalties", "mathfrac", "mathghost", "mathlimitsmode", "mathmiddle", "mathnolimitsmode", "mathpenaltiesmode", "mathrad", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "pageboundary", "pageboundarypenalty", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitvmode", "resetmathspacing", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledslantperpoint", "scantextokens", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "skewed", "skewedwithdelims", "snapshotpar", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "todimension", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracingmarks", "tracingmath", "tracingnodes", "uleaders", "undent", "unexpandedloop", "unletfrozen", "unletprotected", "untraced", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" },
["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" },
["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" },
- ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "aligncontent", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "fontspecifiedname", "futurelet", "gdef", "global", "globaldefs", "glyph", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "meaningasis", "meaningfull", "meaningless", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overshoot", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scaledfontdimen", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unhpack", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "unvpack", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
+ ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "aligncontent", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "fontspecifiedname", "futurelet", "gdef", "global", "globaldefs", "glyph", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "meaningasis", "meaningfull", "meaningless", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overshoot", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scaledfontdimen", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "srule", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "tinymuskip", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unhpack", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "unvpack", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
["xetex"]={ "XeTeXversion" },
} \ No newline at end of file
diff --git a/context/data/scite/context/scite-context-data-context.properties b/context/data/scite/context/scite-context-data-context.properties
index 81719cf19..0078430fa 100644
--- a/context/data/scite/context/scite-context-data-context.properties
+++ b/context/data/scite/context/scite-context-data-context.properties
@@ -8,104 +8,110 @@ medcard maxcard maxcardminusone zeropoint onepoint \
halfapoint onebasepoint maxcount maxdimen scaledpoint \
thousandpoint points halfpoint zeroskip zeromuskip \
onemuskip pluscxxvii pluscxxviii pluscclv pluscclvi \
-normalpagebox binaryshiftedten binaryshiftedtwenty binaryshiftedthirty directionlefttoright \
-directionrighttoleft endoflinetoken outputnewlinechar emptytoks empty \
-undefined prerollrun voidbox emptybox emptyvbox \
-emptyhbox bigskipamount medskipamount smallskipamount fmtname \
-fmtversion texengine texenginename texengineversion texenginefunctionality \
-luatexengine pdftexengine xetexengine unknownengine contextformat \
-contextversion contextlmtxmode contextmark mksuffix activecatcode \
-bgroup egroup endline conditionaltrue conditionalfalse \
-attributeunsetvalue statuswrite uprotationangle rightrotationangle downrotationangle \
-leftrotationangle inicatcodes ctxcatcodes texcatcodes notcatcodes \
-txtcatcodes vrbcatcodes prtcatcodes nilcatcodes luacatcodes \
-tpacatcodes tpbcatcodes xmlcatcodes ctdcatcodes rlncatcodes \
-escapecatcode begingroupcatcode endgroupcatcode mathshiftcatcode alignmentcatcode \
-endoflinecatcode parametercatcode superscriptcatcode subscriptcatcode ignorecatcode \
-spacecatcode lettercatcode othercatcode activecatcode commentcatcode \
-invalidcatcode tabasciicode newlineasciicode formfeedasciicode endoflineasciicode \
-endoffileasciicode commaasciicode spaceasciicode periodasciicode hashasciicode \
-dollarasciicode commentasciicode ampersandasciicode colonasciicode backslashasciicode \
-circumflexasciicode underscoreasciicode leftbraceasciicode barasciicode rightbraceasciicode \
-tildeasciicode delasciicode leftparentasciicode rightparentasciicode lessthanasciicode \
-morethanasciicode doublecommentsignal atsignasciicode exclamationmarkasciicode questionmarkasciicode \
-doublequoteasciicode singlequoteasciicode forwardslashasciicode primeasciicode hyphenasciicode \
-percentasciicode leftbracketasciicode rightbracketasciicode hsizefrozenparcode skipfrozenparcode \
-hangfrozenparcode indentfrozenparcode parfillfrozenparcode adjustfrozenparcode protrudefrozenparcode \
-tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode lastlinefrozenparcode linepenaltyfrozenparcode \
-clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode brokenpenaltyfrozenparcode demeritsfrozenparcode \
-shapefrozenparcode linefrozenparcode hyphenationfrozenparcode shapingpenaltiesfrozenparcode orphanpenaltyfrozenparcode \
-allfrozenparcode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken \
-batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode \
-simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode \
-aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode \
-insertgroupcode vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode \
-alsosimplegroupcode semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode \
-splitoffgroupcode splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode \
-discretionarygroupcode markautomigrationcode insertautomigrationcode adjustautomigrationcode preautomigrationcode \
-postautomigrationcode charnodecode hlistnodecode vlistnodecode rulenodecode \
-insertnodecode marknodecode adjustnodecode ligaturenodecode discretionarynodecode \
-whatsitnodecode mathnodecode gluenodecode kernnodecode penaltynodecode \
-unsetnodecode mathsnodecode charifcode catifcode numifcode \
-dimifcode oddifcode vmodeifcode hmodeifcode mmodeifcode \
-innerifcode voidifcode hboxifcode vboxifcode xifcode \
-eofifcode trueifcode falseifcode caseifcode definedifcode \
-csnameifcode fontcharifcode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode \
-fractionrulemathcontrolcode accentskewhalfmathcontrolcode accentskewapplymathcontrolcode accentitalickernmathcontrolcode delimiteritalickernmathcontrolcode \
-noorditalickernmathcontrolcode charitalicwidthmathcontrolcode charitalicnoreboxmathcontrolcode boxednoitalickernmathcontrolcode nostaircasekernmathcontrolcode \
-textitalickernmathcontrolcode noscriptitalickernmathcontrolcode italicshapekernmathcontrolcode noligaturingglyphoptioncode nokerningglyphoptioncode \
-noexpansionglyphoptioncode noprotrusionglyphoptioncode noleftkerningglyphoptioncode noleftligaturingglyphoptioncode norightkerningglyphoptioncode \
-norightligaturingglyphoptioncode noitaliccorrectionglyphoptioncode normalparcontextcode vmodeparcontextcode vboxparcontextcode \
-vtopparcontextcode vcenterparcontextcode vadjustparcontextcode insertparcontextcode outputparcontextcode \
-alignparcontextcode noalignparcontextcode spanparcontextcode resetparcontextcode leftoriginlistanchorcode \
-leftheightlistanchorcode leftdepthlistanchorcode rightoriginlistanchorcode rightheightlistanchorcode rightdepthlistanchorcode \
-centeroriginlistanchorcode centerheightlistanchorcode centerdepthlistanchorcode halfwaytotallistanchorcode halfwayheightlistanchorcode \
-halfwaydepthlistanchorcode halfwayleftlistanchorcode halfwayrightlistanchorcode negatexlistsigncode negateylistsigncode \
-negatelistsigncode fontslantperpoint fontinterwordspace fontinterwordstretch fontinterwordshrink \
-fontexheight fontemwidth fontextraspace slantperpoint mathexheight \
-mathemwidth interwordspace interwordstretch interwordshrink exheight \
-emwidth extraspace mathaxisheight muquad startmode \
-stopmode startnotmode stopnotmode startmodeset stopmodeset \
-doifmode doifelsemode doifmodeelse doifnotmode startmodeset \
-stopmodeset startallmodes stopallmodes startnotallmodes stopnotallmodes \
-doifallmodes doifelseallmodes doifallmodeselse doifnotallmodes startenvironment \
-stopenvironment environment startcomponent stopcomponent component \
-startproduct stopproduct product startproject stopproject \
-project starttext stoptext startnotext stopnotext \
-startdocument stopdocument documentvariable unexpandeddocumentvariable setupdocument \
-presetdocument doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable \
-startmodule stopmodule usemodule usetexmodule useluamodule \
-setupmodule currentmoduleparameter moduleparameter everystarttext everystoptext \
-startTEXpage stopTEXpage enablemode disablemode preventmode \
-definemode globalenablemode globaldisablemode globalpreventmode pushmode \
-popmode typescriptone typescripttwo typescriptthree mathsizesuffix \
-mathordcode mathopcode mathbincode mathrelcode mathopencode \
-mathclosecode mathpunctcode mathalphacode mathinnercode mathnothingcode \
-mathlimopcode mathnolopcode mathboxcode mathchoicecode mathaccentcode \
-mathradicalcode constantnumber constantnumberargument constantdimen constantdimenargument \
-constantemptyargument continueifinputfile luastringsep !!bs !!es \
-lefttorightmark righttoleftmark lrm rlm bidilre \
-bidirle bidipop bidilro bidirlo breakablethinspace \
-nobreakspace nonbreakablespace narrownobreakspace zerowidthnobreakspace ideographicspace \
-ideographichalffillspace twoperemspace threeperemspace fourperemspace fiveperemspace \
-sixperemspace figurespace punctuationspace hairspace enquad \
-emquad zerowidthspace zerowidthnonjoiner zerowidthjoiner zwnj \
-zwj optionalspace asciispacechar softhyphen Ux \
-eUx Umathaccents parfillleftskip parfillrightskip startlmtxmode \
-stoplmtxmode startmkivmode stopmkivmode wildcardsymbol normalhyphenationcode \
-automatichyphenationcode explicithyphenationcode syllablehyphenationcode uppercasehyphenationcode collapsehyphenationcode \
-compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode \
-permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode forcecheckhyphenationcode lazyligatureshyphenationcode \
-forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode partialhyphenationcode completehyphenationcode \
-normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode swapparsshapenormalizecode breakafterdirnormalizecode \
-removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode discardzerotabskipsnormalizecode noligaturingglyphoptioncode \
-nokerningglyphoptioncode noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode norightkernglyphoptioncode \
-noexpansionglyphoptioncode noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode noligaturingcode \
-frozenflagcode tolerantflagcode protectedflagcode primitiveflagcode permanentflagcode \
-noalignedflagcode immutableflagcode mutableflagcode globalflagcode overloadedflagcode \
-immediateflagcode conditionalflagcode valueflagcode instanceflagcode ordmathflattencode \
-binmathflattencode relmathflattencode punctmathflattencode innermathflattencode normalworddiscoptioncode \
-preworddiscoptioncode postworddiscoptioncode continuewhenlmtxmode
+normalpagebox binaryshiftedten binaryshiftedtwenty binaryshiftedthirty thickermuskip \
+directionlefttoright directionrighttoleft endoflinetoken outputnewlinechar emptytoks \
+empty undefined prerollrun voidbox emptybox \
+emptyvbox emptyhbox bigskipamount medskipamount smallskipamount \
+fmtname fmtversion texengine texenginename texengineversion \
+texenginefunctionality luatexengine pdftexengine xetexengine unknownengine \
+contextformat contextversion contextlmtxmode contextmark mksuffix \
+activecatcode bgroup egroup endline conditionaltrue \
+conditionalfalse attributeunsetvalue statuswrite uprotationangle rightrotationangle \
+downrotationangle leftrotationangle inicatcodes ctxcatcodes texcatcodes \
+notcatcodes txtcatcodes vrbcatcodes prtcatcodes nilcatcodes \
+luacatcodes tpacatcodes tpbcatcodes xmlcatcodes ctdcatcodes \
+rlncatcodes escapecatcode begingroupcatcode endgroupcatcode mathshiftcatcode \
+alignmentcatcode endoflinecatcode parametercatcode superscriptcatcode subscriptcatcode \
+ignorecatcode spacecatcode lettercatcode othercatcode activecatcode \
+commentcatcode invalidcatcode tabasciicode newlineasciicode formfeedasciicode \
+endoflineasciicode endoffileasciicode commaasciicode spaceasciicode periodasciicode \
+hashasciicode dollarasciicode commentasciicode ampersandasciicode colonasciicode \
+backslashasciicode circumflexasciicode underscoreasciicode leftbraceasciicode barasciicode \
+rightbraceasciicode tildeasciicode delasciicode leftparentasciicode rightparentasciicode \
+lessthanasciicode morethanasciicode doublecommentsignal atsignasciicode exclamationmarkasciicode \
+questionmarkasciicode doublequoteasciicode singlequoteasciicode forwardslashasciicode primeasciicode \
+hyphenasciicode percentasciicode leftbracketasciicode rightbracketasciicode hsizefrozenparcode \
+skipfrozenparcode hangfrozenparcode indentfrozenparcode parfillfrozenparcode adjustfrozenparcode \
+protrudefrozenparcode tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode lastlinefrozenparcode \
+linepenaltyfrozenparcode clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode brokenpenaltyfrozenparcode \
+demeritsfrozenparcode shapefrozenparcode linefrozenparcode hyphenationfrozenparcode shapingpenaltyfrozenparcode \
+orphanpenaltyfrozenparcode allfrozenparcode mathpenaltyfrozenparcode activemathcharcode activetabtoken \
+activeformfeedtoken activeendoflinetoken batchmodecode nonstopmodecode scrollmodecode \
+errorstopmodecode bottomlevelgroupcode simplegroupcode hboxgroupcode adjustedhboxgroupcode \
+vboxgroupcode vtopgroupcode aligngroupcode noaligngroupcode outputgroupcode \
+mathgroupcode discretionarygroupcode insertgroupcode vadjustgroupcode vcentergroupcode \
+mathabovegroupcode mathchoicegroupcode alsosimplegroupcode semisimplegroupcode mathshiftgroupcode \
+mathleftgroupcode localboxgroupcode splitoffgroupcode splitkeepgroupcode preamblegroupcode \
+alignsetgroupcode finrowgroupcode discretionarygroupcode markautomigrationcode insertautomigrationcode \
+adjustautomigrationcode preautomigrationcode postautomigrationcode charnodecode hlistnodecode \
+vlistnodecode rulenodecode insertnodecode marknodecode adjustnodecode \
+ligaturenodecode discretionarynodecode whatsitnodecode mathnodecode gluenodecode \
+kernnodecode penaltynodecode unsetnodecode mathsnodecode charifcode \
+catifcode numifcode dimifcode oddifcode vmodeifcode \
+hmodeifcode mmodeifcode innerifcode voidifcode hboxifcode \
+vboxifcode xifcode eofifcode trueifcode falseifcode \
+caseifcode definedifcode csnameifcode fontcharifcode overrulemathcontrolcode \
+underrulemathcontrolcode radicalrulemathcontrolcode fractionrulemathcontrolcode accentskewhalfmathcontrolcode accentskewapplymathcontrolcode \
+checkligatureandkernmathcontrolcode applyverticalitalickernmathcontrolcode applyordinaryitalickernmathcontrolcode applycharitalickernmathcontrolcode reboxcharitalickernmathcontrolcode \
+applyboxeditalickernmathcontrolcode staircasekernmathcontrolcode applytextitalickernmathcontrolcode applyscriptitalickernmathcontrolcode italicshapekernmathcontrolcode \
+checkspaceitalickernmathcontrolcode checktextitalickernmathcontrolcode noligaturingglyphoptioncode nokerningglyphoptioncode noexpansionglyphoptioncode \
+noprotrusionglyphoptioncode noleftkerningglyphoptioncode noleftligaturingglyphoptioncode norightkerningglyphoptioncode norightligaturingglyphoptioncode \
+noitaliccorrectionglyphoptioncode normalparcontextcode vmodeparcontextcode vboxparcontextcode vtopparcontextcode \
+vcenterparcontextcode vadjustparcontextcode insertparcontextcode outputparcontextcode alignparcontextcode \
+noalignparcontextcode spanparcontextcode resetparcontextcode leftoriginlistanchorcode leftheightlistanchorcode \
+leftdepthlistanchorcode rightoriginlistanchorcode rightheightlistanchorcode rightdepthlistanchorcode centeroriginlistanchorcode \
+centerheightlistanchorcode centerdepthlistanchorcode halfwaytotallistanchorcode halfwayheightlistanchorcode halfwaydepthlistanchorcode \
+halfwayleftlistanchorcode halfwayrightlistanchorcode negatexlistsigncode negateylistsigncode negatelistsigncode \
+fontslantperpoint fontinterwordspace fontinterwordstretch fontinterwordshrink fontexheight \
+fontemwidth fontextraspace slantperpoint mathexheight mathemwidth \
+interwordspace interwordstretch interwordshrink exheight emwidth \
+extraspace mathaxisheight muquad startmode stopmode \
+startnotmode stopnotmode startmodeset stopmodeset doifmode \
+doifelsemode doifmodeelse doifnotmode startmodeset stopmodeset \
+startallmodes stopallmodes startnotallmodes stopnotallmodes doifallmodes \
+doifelseallmodes doifallmodeselse doifnotallmodes startenvironment stopenvironment \
+environment startcomponent stopcomponent component startproduct \
+stopproduct product startproject stopproject project \
+starttext stoptext startnotext stopnotext startdocument \
+stopdocument documentvariable unexpandeddocumentvariable setupdocument presetdocument \
+doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable startmodule \
+stopmodule usemodule usetexmodule useluamodule setupmodule \
+currentmoduleparameter moduleparameter everystarttext everystoptext startTEXpage \
+stopTEXpage enablemode disablemode preventmode definemode \
+globalenablemode globaldisablemode globalpreventmode pushmode popmode \
+typescriptone typescripttwo typescriptthree mathsizesuffix mathordinarycode \
+mathordcode mathoperatorcode mathopcode mathbinarycode mathbincode \
+mathrelationcode mathrelcode mathopencode mathclosecode mathpunctuationcode \
+mathpunctcode mathovercode mathundercode mathinnercode mathradicalcode \
+mathfractioncode mathmiddlecode mathaccentcode mathfencedcode mathghostcode \
+mathvariablecode mathactivecode mathvcentercode mathbegincode mathendcode \
+mathexplicitcode mathdivisioncode mathfactorialcode mathimaginarycode mathdifferentialcode \
+mathexponentialcode mathfunctioncode mathdigitcode mathalphacode mathboxcode \
+mathchoicecode mathnothingcode mathlimopcode mathnolopcode constantnumber \
+constantnumberargument constantdimen constantdimenargument constantemptyargument continueifinputfile \
+luastringsep !!bs !!es lefttorightmark righttoleftmark \
+lrm rlm bidilre bidirle bidipop \
+bidilro bidirlo breakablethinspace nobreakspace nonbreakablespace \
+narrownobreakspace zerowidthnobreakspace ideographicspace ideographichalffillspace twoperemspace \
+threeperemspace fourperemspace fiveperemspace sixperemspace figurespace \
+punctuationspace hairspace enquad emquad zerowidthspace \
+zerowidthnonjoiner zerowidthjoiner zwnj zwj optionalspace \
+asciispacechar softhyphen Ux eUx Umathaccents \
+parfillleftskip parfillrightskip startlmtxmode stoplmtxmode startmkivmode \
+stopmkivmode wildcardsymbol normalhyphenationcode automatichyphenationcode explicithyphenationcode \
+syllablehyphenationcode uppercasehyphenationcode collapsehyphenationcode compoundhyphenationcode strictstarthyphenationcode \
+strictendhyphenationcode automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode \
+permitmathreplacehyphenationcode forcecheckhyphenationcode lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode \
+ignoreboundshyphenationcode partialhyphenationcode completehyphenationcode normalizelinenormalizecode parindentskipnormalizecode \
+swaphangindentnormalizecode swapparsshapenormalizecode breakafterdirnormalizecode removemarginkernsnormalizecode clipwidthnormalizecode \
+flattendiscretionariesnormalizecode discardzerotabskipsnormalizecode flattenleadersnormalizecode noligaturingglyphoptioncode nokerningglyphoptioncode \
+noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode norightkernglyphoptioncode noexpansionglyphoptioncode \
+noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode noligaturingcode frozenflagcode \
+tolerantflagcode protectedflagcode primitiveflagcode permanentflagcode noalignedflagcode \
+immutableflagcode mutableflagcode globalflagcode overloadedflagcode immediateflagcode \
+conditionalflagcode valueflagcode instanceflagcode ordmathflattencode binmathflattencode \
+relmathflattencode punctmathflattencode innermathflattencode normalworddiscoptioncode preworddiscoptioncode \
+postworddiscoptioncode continuewhenlmtxmode
keywordclass.context.helpers=\
startsetups stopsetups startxmlsetups stopxmlsetups \
@@ -130,190 +136,199 @@ vpenalty hpenalty doglobal dodoglobal redoglobal \
resetglobal donothing untraceddonothing dontcomplain lessboxtracing \
forgetall donetrue donefalse foundtrue foundfalse \
inlineordisplaymath indisplaymath forcedisplaymath startforceddisplaymath stopforceddisplaymath \
-startpickupmath stoppickupmath reqno mathortext thebox \
-htdp unvoidbox hfilll vfilll mathbox \
-mathlimop mathnolop mathnothing mathalpha currentcatcodetable \
-defaultcatcodetable catcodetablename newcatcodetable startcatcodetable stopcatcodetable \
-startextendcatcodetable stopextendcatcodetable pushcatcodetable popcatcodetable restorecatcodes \
-setcatcodetable letcatcodecommand defcatcodecommand uedcatcodecommand hglue \
-vglue hfillneg vfillneg hfilllneg vfilllneg \
-ruledhss ruledhfil ruledhfill ruledhfilll ruledhfilneg \
-ruledhfillneg normalhfillneg normalhfilllneg ruledvss ruledvfil \
-ruledvfill ruledvfilll ruledvfilneg ruledvfillneg normalvfillneg \
-normalvfilllneg ruledhbox ruledvbox ruledvtop ruledvcenter \
-ruledmbox ruledhpack ruledvpack ruledtpack ruledhskip \
-ruledvskip ruledkern ruledmskip ruledmkern ruledhglue \
-ruledvglue normalhglue normalvglue ruledpenalty filledhboxb \
-filledhboxr filledhboxg filledhboxc filledhboxm filledhboxy \
-filledhboxk scratchstring scratchstringone scratchstringtwo tempstring \
-scratchcounter globalscratchcounter privatescratchcounter scratchdimen globalscratchdimen \
-privatescratchdimen scratchskip globalscratchskip privatescratchskip scratchmuskip \
-globalscratchmuskip privatescratchmuskip scratchtoks globalscratchtoks privatescratchtoks \
-scratchbox globalscratchbox privatescratchbox scratchmacro scratchmacroone \
-scratchmacrotwo scratchconditiontrue scratchconditionfalse ifscratchcondition scratchconditiononetrue \
-scratchconditiononefalse ifscratchconditionone scratchconditiontwotrue scratchconditiontwofalse ifscratchconditiontwo \
-globalscratchcounterone globalscratchcountertwo globalscratchcounterthree groupedcommand groupedcommandcs \
-triggergroupedcommand triggergroupedcommandcs simplegroupedcommand simplegroupedcommandcs pickupgroupedcommand \
-pickupgroupedcommandcs usedbaselineskip usedlineskip usedlineskiplimit availablehsize \
-localhsize setlocalhsize distributedhsize hsizefraction next \
-nexttoken nextbox dowithnextbox dowithnextboxcs dowithnextboxcontent \
-dowithnextboxcontentcs flushnextbox boxisempty boxtostring contentostring \
-prerolltostring givenwidth givenheight givendepth scangivendimensions \
-scratchwidth scratchheight scratchdepth scratchoffset scratchdistance \
-scratchtotal scratchhsize scratchvsize scratchxoffset scratchyoffset \
-scratchhoffset scratchvoffset scratchxposition scratchyposition scratchtopoffset \
-scratchbottomoffset scratchleftoffset scratchrightoffset scratchcounterone scratchcountertwo \
-scratchcounterthree scratchcounterfour scratchcounterfive scratchcountersix scratchdimenone \
-scratchdimentwo scratchdimenthree scratchdimenfour scratchdimenfive scratchdimensix \
-scratchskipone scratchskiptwo scratchskipthree scratchskipfour scratchskipfive \
-scratchskipsix scratchmuskipone scratchmuskiptwo scratchmuskipthree scratchmuskipfour \
-scratchmuskipfive scratchmuskipsix scratchtoksone scratchtokstwo scratchtoksthree \
-scratchtoksfour scratchtoksfive scratchtokssix scratchboxone scratchboxtwo \
-scratchboxthree scratchboxfour scratchboxfive scratchboxsix scratchnx \
-scratchny scratchmx scratchmy scratchunicode scratchmin \
-scratchmax scratchleftskip scratchrightskip scratchtopskip scratchbottomskip \
-doif doifnot doifelse firstinset doifinset \
-doifnotinset doifelseinset doifinsetelse doifelsenextchar doifnextcharelse \
-doifelsenextcharcs doifnextcharcselse doifelsenextoptional doifnextoptionalelse doifelsenextoptionalcs \
-doifnextoptionalcselse doifelsefastoptionalcheck doiffastoptionalcheckelse doifelsefastoptionalcheckcs doiffastoptionalcheckcselse \
-doifelsenextbgroup doifnextbgroupelse doifelsenextbgroupcs doifnextbgroupcselse doifelsenextparenthesis \
-doifnextparenthesiselse doifelseundefined doifundefinedelse doifelsedefined doifdefinedelse \
-doifundefined doifdefined doifelsevalue doifvalue doifnotvalue \
-doifnothing doifsomething doifelsenothing doifnothingelse doifelsesomething \
-doifsomethingelse doifvaluenothing doifvaluesomething doifelsevaluenothing doifvaluenothingelse \
-doifelsedimension doifdimensionelse doifelsenumber doifnumberelse doifnumber \
-doifnotnumber doifelsecommon doifcommonelse doifcommon doifnotcommon \
-doifinstring doifnotinstring doifelseinstring doifinstringelse doifelseassignment \
-doifassignmentelse docheckassignment doifelseassignmentcs doifassignmentelsecs validassignment \
-novalidassignment doiftext doifelsetext doiftextelse doifnottext \
-quitcondition truecondition falsecondition tracingall tracingnone \
-loggingall tracingcatcodes showluatokens aliasmacro removetoks \
-appendtoks prependtoks appendtotoks prependtotoks to \
-endgraf endpar reseteverypar finishpar empty \
-null space quad enspace emspace \
-charspace nbsp crlf obeyspaces obeylines \
-obeytabs obeypages obeyedspace obeyedline obeyedtab \
-obeyedpage normalspace naturalspace controlspace normalspaces \
-ignoretabs ignorelines ignorepages ignoreeofs setcontrolspaces \
-executeifdefined singleexpandafter doubleexpandafter tripleexpandafter dontleavehmode \
-removelastspace removeunwantedspaces keepunwantedspaces removepunctuation ignoreparskip \
-forcestrutdepth onlynonbreakablespace wait writestatus define \
-defineexpandable redefine setmeasure setemeasure setgmeasure \
-setxmeasure definemeasure freezemeasure measure measured \
-directmeasure setquantity setequantity setgquantity setxquantity \
-definequantity freezequantity quantity quantitied directquantity \
-installcorenamespace getvalue getuvalue setvalue setevalue \
-setgvalue setxvalue letvalue letgvalue resetvalue \
-undefinevalue ignorevalue setuvalue setuevalue setugvalue \
-setuxvalue globallet udef ugdef uedef \
-uxdef checked unique getparameters geteparameters \
-getgparameters getxparameters forgetparameters copyparameters getdummyparameters \
-dummyparameter directdummyparameter setdummyparameter letdummyparameter setexpandeddummyparameter \
-usedummystyleandcolor usedummystyleparameter usedummycolorparameter processcommalist processcommacommand \
-quitcommalist quitprevcommalist processaction processallactions processfirstactioninset \
-processallactionsinset unexpanded expanded startexpanded stopexpanded \
-protect unprotect firstofoneargument firstoftwoarguments secondoftwoarguments \
-firstofthreearguments secondofthreearguments thirdofthreearguments firstoffourarguments secondoffourarguments \
-thirdoffourarguments fourthoffourarguments firstoffivearguments secondoffivearguments thirdoffivearguments \
-fourthoffivearguments fifthoffivearguments firstofsixarguments secondofsixarguments thirdofsixarguments \
-fourthofsixarguments fifthofsixarguments sixthofsixarguments firstofoneunexpanded firstoftwounexpanded \
-secondoftwounexpanded firstofthreeunexpanded secondofthreeunexpanded thirdofthreeunexpanded gobbleoneargument \
-gobbletwoarguments gobblethreearguments gobblefourarguments gobblefivearguments gobblesixarguments \
-gobblesevenarguments gobbleeightarguments gobbleninearguments gobbletenarguments gobbleoneoptional \
-gobbletwooptionals gobblethreeoptionals gobblefouroptionals gobblefiveoptionals dorecurse \
-doloop exitloop dostepwiserecurse recurselevel recursedepth \
-dofastloopcs fastloopindex fastloopfinal dowith doloopovermatch \
-doloopovermatched doloopoverlist newconstant setnewconstant setconstant \
-setconstantvalue newconditional settrue setfalse settruevalue \
-setfalsevalue setconditional newmacro setnewmacro newfraction \
-newsignal dosingleempty dodoubleempty dotripleempty doquadrupleempty \
-doquintupleempty dosixtupleempty doseventupleempty dosingleargument dodoubleargument \
-dotripleargument doquadrupleargument doquintupleargument dosixtupleargument doseventupleargument \
-dosinglegroupempty dodoublegroupempty dotriplegroupempty doquadruplegroupempty doquintuplegroupempty \
-permitspacesbetweengroups dontpermitspacesbetweengroups nopdfcompression maximumpdfcompression normalpdfcompression \
-onlypdfobjectcompression nopdfobjectcompression modulonumber dividenumber getfirstcharacter \
-doifelsefirstchar doiffirstcharelse startnointerference stopnointerference twodigits \
-threedigits leftorright offinterlineskip oninterlineskip nointerlineskip \
-strut halfstrut quarterstrut depthstrut halflinestrut \
-noheightstrut setstrut strutbox strutht strutdp \
-strutwd struthtdp strutgap begstrut endstrut \
-lineheight leftboundary rightboundary signalcharacter aligncontentleft \
-aligncontentmiddle aligncontentright shiftbox vpackbox hpackbox \
-vpackedbox hpackedbox ordordspacing ordopspacing ordbinspacing \
-ordrelspacing ordopenspacing ordclosespacing ordpunctspacing ordinnerspacing \
-ordfracspacing ordradspacing opordspacing opopspacing opbinspacing \
-oprelspacing opopenspacing opclosespacing oppunctspacing opinnerspacing \
-opfracspacing opradspacing binordspacing binopspacing binbinspacing \
-binrelspacing binopenspacing binclosespacing binpunctspacing bininnerspacing \
-binfracspacing binradspacing relordspacing relopspacing relbinspacing \
-relrelspacing relopenspacing relclosespacing relpunctspacing relinnerspacing \
-relfracspacing relradspacing openordspacing openopspacing openbinspacing \
+startpickupmath stoppickupmath reqno forceinlinemath mathortext \
+thebox htdp unvoidbox hfilll vfilll \
+mathbox mathlimop mathnolop mathnothing mathalpha \
+currentcatcodetable defaultcatcodetable catcodetablename newcatcodetable startcatcodetable \
+stopcatcodetable startextendcatcodetable stopextendcatcodetable pushcatcodetable popcatcodetable \
+restorecatcodes setcatcodetable letcatcodecommand defcatcodecommand uedcatcodecommand \
+hglue vglue hfillneg vfillneg hfilllneg \
+vfilllneg ruledhss ruledhfil ruledhfill ruledhfilll \
+ruledhfilneg ruledhfillneg normalhfillneg normalhfilllneg ruledvss \
+ruledvfil ruledvfill ruledvfilll ruledvfilneg ruledvfillneg \
+normalvfillneg normalvfilllneg ruledhbox ruledvbox ruledvtop \
+ruledvcenter ruledmbox ruledhpack ruledvpack ruledtpack \
+ruledhskip ruledvskip ruledkern ruledmskip ruledmkern \
+ruledhglue ruledvglue normalhglue normalvglue ruledpenalty \
+filledhboxb filledhboxr filledhboxg filledhboxc filledhboxm \
+filledhboxy filledhboxk scratchstring scratchstringone scratchstringtwo \
+tempstring scratchcounter globalscratchcounter privatescratchcounter scratchdimen \
+globalscratchdimen privatescratchdimen scratchskip globalscratchskip privatescratchskip \
+scratchmuskip globalscratchmuskip privatescratchmuskip scratchtoks globalscratchtoks \
+privatescratchtoks scratchbox globalscratchbox privatescratchbox scratchmacro \
+scratchmacroone scratchmacrotwo scratchconditiontrue scratchconditionfalse ifscratchcondition \
+scratchconditiononetrue scratchconditiononefalse ifscratchconditionone scratchconditiontwotrue scratchconditiontwofalse \
+ifscratchconditiontwo globalscratchcounterone globalscratchcountertwo globalscratchcounterthree groupedcommand \
+groupedcommandcs triggergroupedcommand triggergroupedcommandcs simplegroupedcommand simplegroupedcommandcs \
+pickupgroupedcommand pickupgroupedcommandcs mathgroupedcommandcs usedbaselineskip usedlineskip \
+usedlineskiplimit availablehsize localhsize setlocalhsize distributedhsize \
+hsizefraction next nexttoken nextbox dowithnextbox \
+dowithnextboxcs dowithnextboxcontent dowithnextboxcontentcs flushnextbox boxisempty \
+boxtostring contentostring prerolltostring givenwidth givenheight \
+givendepth scangivendimensions scratchwidth scratchheight scratchdepth \
+scratchoffset scratchdistance scratchtotal scratchhsize scratchvsize \
+scratchxoffset scratchyoffset scratchhoffset scratchvoffset scratchxposition \
+scratchyposition scratchtopoffset scratchbottomoffset scratchleftoffset scratchrightoffset \
+scratchcounterone scratchcountertwo scratchcounterthree scratchcounterfour scratchcounterfive \
+scratchcountersix scratchdimenone scratchdimentwo scratchdimenthree scratchdimenfour \
+scratchdimenfive scratchdimensix scratchskipone scratchskiptwo scratchskipthree \
+scratchskipfour scratchskipfive scratchskipsix scratchmuskipone scratchmuskiptwo \
+scratchmuskipthree scratchmuskipfour scratchmuskipfive scratchmuskipsix scratchtoksone \
+scratchtokstwo scratchtoksthree scratchtoksfour scratchtoksfive scratchtokssix \
+scratchboxone scratchboxtwo scratchboxthree scratchboxfour scratchboxfive \
+scratchboxsix scratchnx scratchny scratchmx scratchmy \
+scratchunicode scratchmin scratchmax scratchleftskip scratchrightskip \
+scratchtopskip scratchbottomskip doif doifnot doifelse \
+firstinset doifinset doifnotinset doifelseinset doifinsetelse \
+doifelsenextchar doifnextcharelse doifelsenextcharcs doifnextcharcselse doifelsenextoptional \
+doifnextoptionalelse doifelsenextoptionalcs doifnextoptionalcselse doifelsefastoptionalcheck doiffastoptionalcheckelse \
+doifelsefastoptionalcheckcs doiffastoptionalcheckcselse doifelsenextbgroup doifnextbgroupelse doifelsenextbgroupcs \
+doifnextbgroupcselse doifelsenextparenthesis doifnextparenthesiselse doifelseundefined doifundefinedelse \
+doifelsedefined doifdefinedelse doifundefined doifdefined doifelsevalue \
+doifvalue doifnotvalue doifnothing doifsomething doifelsenothing \
+doifnothingelse doifelsesomething doifsomethingelse doifvaluenothing doifvaluesomething \
+doifelsevaluenothing doifvaluenothingelse doifelsedimension doifdimensionelse doifelsenumber \
+doifnumberelse doifnumber doifnotnumber doifelsecommon doifcommonelse \
+doifcommon doifnotcommon doifinstring doifnotinstring doifelseinstring \
+doifinstringelse doifelseassignment doifassignmentelse docheckassignment doifelseassignmentcs \
+doifassignmentelsecs validassignment novalidassignment doiftext doifelsetext \
+doiftextelse doifnottext quitcondition truecondition falsecondition \
+tracingall tracingnone loggingall tracingcatcodes showluatokens \
+aliasmacro removetoks appendtoks prependtoks appendtotoks \
+prependtotoks to endgraf endpar reseteverypar \
+finishpar empty null space quad \
+enspace emspace charspace nbsp crlf \
+obeyspaces obeylines obeytabs obeypages obeyedspace \
+obeyedline obeyedtab obeyedpage normalspace naturalspace \
+controlspace normalspaces ignoretabs ignorelines ignorepages \
+ignoreeofs setcontrolspaces executeifdefined singleexpandafter doubleexpandafter \
+tripleexpandafter dontleavehmode removelastspace removeunwantedspaces keepunwantedspaces \
+removepunctuation ignoreparskip forcestrutdepth onlynonbreakablespace wait \
+writestatus define defineexpandable redefine setmeasure \
+setemeasure setgmeasure setxmeasure definemeasure freezemeasure \
+measure measured directmeasure setquantity setequantity \
+setgquantity setxquantity definequantity freezequantity quantity \
+quantitied directquantity installcorenamespace getvalue getuvalue \
+setvalue setevalue setgvalue setxvalue letvalue \
+letgvalue resetvalue undefinevalue ignorevalue setuvalue \
+setuevalue setugvalue setuxvalue globallet udef \
+ugdef uedef uxdef checked unique \
+getparameters geteparameters getgparameters getxparameters forgetparameters \
+copyparameters getdummyparameters dummyparameter directdummyparameter setdummyparameter \
+letdummyparameter setexpandeddummyparameter usedummystyleandcolor usedummystyleparameter usedummycolorparameter \
+processcommalist processcommacommand quitcommalist quitprevcommalist processaction \
+processallactions processfirstactioninset processallactionsinset unexpanded expanded \
+startexpanded stopexpanded protect unprotect firstofoneargument \
+firstoftwoarguments secondoftwoarguments firstofthreearguments secondofthreearguments thirdofthreearguments \
+firstoffourarguments secondoffourarguments thirdoffourarguments fourthoffourarguments firstoffivearguments \
+secondoffivearguments thirdoffivearguments fourthoffivearguments fifthoffivearguments firstofsixarguments \
+secondofsixarguments thirdofsixarguments fourthofsixarguments fifthofsixarguments sixthofsixarguments \
+firstofoneunexpanded firstoftwounexpanded secondoftwounexpanded firstofthreeunexpanded secondofthreeunexpanded \
+thirdofthreeunexpanded gobbleoneargument gobbletwoarguments gobblethreearguments gobblefourarguments \
+gobblefivearguments gobblesixarguments gobblesevenarguments gobbleeightarguments gobbleninearguments \
+gobbletenarguments gobbleoneoptional gobbletwooptionals gobblethreeoptionals gobblefouroptionals \
+gobblefiveoptionals dorecurse doloop exitloop dostepwiserecurse \
+recurselevel recursedepth dofastloopcs fastloopindex fastloopfinal \
+dowith doloopovermatch doloopovermatched doloopoverlist newconstant \
+setnewconstant setconstant setconstantvalue newconditional settrue \
+setfalse settruevalue setfalsevalue setconditional newmacro \
+setnewmacro newfraction newsignal dosingleempty dodoubleempty \
+dotripleempty doquadrupleempty doquintupleempty dosixtupleempty doseventupleempty \
+dosingleargument dodoubleargument dotripleargument doquadrupleargument doquintupleargument \
+dosixtupleargument doseventupleargument dosinglegroupempty dodoublegroupempty dotriplegroupempty \
+doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups dontpermitspacesbetweengroups nopdfcompression \
+maximumpdfcompression normalpdfcompression onlypdfobjectcompression nopdfobjectcompression modulonumber \
+dividenumber getfirstcharacter doifelsefirstchar doiffirstcharelse startnointerference \
+stopnointerference twodigits threedigits leftorright offinterlineskip \
+oninterlineskip nointerlineskip strut halfstrut quarterstrut \
+depthstrut halflinestrut noheightstrut setstrut strutbox \
+strutht strutdp strutwd struthtdp strutgap \
+begstrut endstrut lineheight leftboundary rightboundary \
+signalcharacter aligncontentleft aligncontentmiddle aligncontentright shiftbox \
+vpackbox hpackbox vpackedbox hpackedbox ordordspacing \
+ordopspacing ordbinspacing ordrelspacing ordopenspacing ordclosespacing \
+ordpunctspacing ordinnerspacing ordfracspacing ordradspacing ordmiddlespacing \
+ordaccentspacing opordspacing opopspacing opbinspacing oprelspacing \
+opopenspacing opclosespacing oppunctspacing opinnerspacing opfracspacing \
+opradspacing opmiddlespacing opaccentspacing binordspacing binopspacing \
+binbinspacing binrelspacing binopenspacing binclosespacing binpunctspacing \
+bininnerspacing binfracspacing binradspacing binmiddlespacing binaccentspacing \
+relordspacing relopspacing relbinspacing relrelspacing relopenspacing \
+relclosespacing relpunctspacing relinnerspacing relfracspacing relradspacing \
+relmiddlespacing relaccentspacing openordspacing openopspacing openbinspacing \
openrelspacing openopenspacing openclosespacing openpunctspacing openinnerspacing \
-openfracspacing openradspacing closeordspacing closeopspacing closebinspacing \
-closerelspacing closeopenspacing closeclosespacing closepunctspacing closeinnerspacing \
-closefracspacing closeradspacing punctordspacing punctopspacing punctbinspacing \
-punctrelspacing punctopenspacing punctclosespacing punctpunctspacing punctinnerspacing \
-punctfracspacing punctradspacing innerordspacing inneropspacing innerbinspacing \
-innerrelspacing inneropenspacing innerclosespacing innerpunctspacing innerinnerspacing \
-innerfracspacing innerradspacing fracordspacing fracopspacing fracbinspacing \
-fracrelspacing fracopenspacing fracclosespacing fracpunctspacing fracinnerspacing \
-fracfracspacing fracradspacing radordspacing radopspacing radbinspacing \
+openfracspacing openradspacing openmiddlespacing openaccentspacing closeordspacing \
+closeopspacing closebinspacing closerelspacing closeopenspacing closeclosespacing \
+closepunctspacing closeinnerspacing closefracspacing closeradspacing closemiddlespacing \
+closeaccentspacing punctordspacing punctopspacing punctbinspacing punctrelspacing \
+punctopenspacing punctclosespacing punctpunctspacing punctinnerspacing punctfracspacing \
+punctradspacing punctmiddlespacing punctaccentspacing innerordspacing inneropspacing \
+innerbinspacing innerrelspacing inneropenspacing innerclosespacing innerpunctspacing \
+innerinnerspacing innerfracspacing innerradspacing innermiddlespacing inneraccentspacing \
+fracordspacing fracopspacing fracbinspacing fracrelspacing fracopenspacing \
+fracclosespacing fracpunctspacing fracinnerspacing fracfracspacing fracradspacing \
+fracmiddlespacing fracaccentspacing radordspacing radopspacing radbinspacing \
radrelspacing radopenspacing radclosespacing radpunctspacing radinnerspacing \
-radfracspacing radradspacing normalreqno startimath stopimath \
-normalstartimath normalstopimath startdmath stopdmath normalstartdmath \
-normalstopdmath normalsuperscript normalsubscript normalnosuperscript normalnosubscript \
-superscript subscript nosuperscript nosubscript superprescript \
-subprescript nosuperprescript nosubsprecript uncramped cramped \
-mathstyletrigger triggermathstyle mathstylefont mathsmallstylefont mathstyleface \
-mathsmallstyleface mathstylecommand mathpalette mathstylehbox mathstylevbox \
-mathstylevcenter mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox \
-setmathtextbox pushmathstyle popmathstyle triggerdisplaystyle triggertextstyle \
-triggerscriptstyle triggerscriptscriptstyle triggeruncrampedstyle triggercrampedstyle triggersmallstyle \
-triggeruncrampedsmallstyle triggercrampedsmallstyle triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle \
-luaexpr expelsedoif expdoif expdoifnot expdoifelsecommon \
-expdoifcommonelse expdoifelseinset expdoifinsetelse ctxdirectlua ctxlatelua \
-ctxsprint ctxwrite ctxcommand ctxdirectcommand ctxlatecommand \
-ctxreport ctxlua luacode lateluacode directluacode \
-registerctxluafile ctxloadluafile luaversion luamajorversion luaminorversion \
-ctxluacode luaconditional luaexpanded ctxluamatch startluaparameterset \
-stopluaparameterset luaparameterset definenamedlua obeylualines obeyluatokens \
-startluacode stopluacode startlua stoplua startctxfunction \
-stopctxfunction ctxfunction startctxfunctiondefinition stopctxfunctiondefinition installctxfunction \
-installprotectedctxfunction installprotectedctxscanner installctxscanner resetctxscanner cldprocessfile \
-cldloadfile cldloadviafile cldcontext cldcommand carryoverpar \
-freezeparagraphproperties defrostparagraphproperties setparagraphfreezing forgetparagraphfreezing updateparagraphproperties \
-updateparagraphpenalties updateparagraphdemerits updateparagraphshapes updateparagraphlines lastlinewidth \
-assumelongusagecs Umathbotaccent Umathtopaccent righttolefthbox lefttorighthbox \
-righttoleftvbox lefttorightvbox righttoleftvtop lefttorightvtop rtlhbox \
-ltrhbox rtlvbox ltrvbox rtlvtop ltrvtop \
-autodirhbox autodirvbox autodirvtop leftorrighthbox leftorrightvbox \
-leftorrightvtop lefttoright righttoleft checkedlefttoright checkedrighttoleft \
-synchronizelayoutdirection synchronizedisplaydirection synchronizeinlinedirection dirlre dirrle \
-dirlro dirrlo rtltext ltrtext lesshyphens \
-morehyphens nohyphens dohyphens dohyphencollapsing nohyphencollapsing \
-compounddiscretionary Ucheckedstartdisplaymath Ucheckedstopdisplaymath break nobreak \
-allowbreak goodbreak nospace nospacing dospacing \
-naturalhbox naturalvbox naturalvtop naturalhpack naturalvpack \
-naturaltpack reversehbox reversevbox reversevtop reversehpack \
-reversevpack reversetpack hcontainer vcontainer tcontainer \
-frule compoundhyphenpenalty start stop unsupportedcs \
-openout closeout write openin closein \
-read readline readfromterminal boxlines boxline \
-setboxline copyboxline boxlinewd boxlineht boxlinedp \
-boxlinenw boxlinenh boxlinend boxlinels boxliners \
-boxlinelh boxlinerh boxlinelp boxlinerp boxlinein \
-boxrangewd boxrangeht boxrangedp bitwiseset bitwiseand \
-bitwiseor bitwisexor bitwisenot bitwisenil ifbitwiseand \
-bitwise bitwiseshift bitwiseflip textdir linedir \
-pardir boxdir prelistbox postlistbox prelistcopy \
-postlistcopy setprelistbox setpostlistbox noligaturing nokerning \
-noexpansion noprotrusion noleftkerning noleftligaturing norightkerning \
-norightligaturing noitaliccorrection futureletnexttoken defbackslashbreak letbackslashbreak \
-pushoverloadmode popoverloadmode pushrunstate poprunstate suggestedalias \
-showboxhere discoptioncodestring flagcodestring frozenparcodestring glyphoptioncodestring \
-groupcodestring hyphenationcodestring mathcontrolcodestring mathflattencodestring normalizecodestring \
-parcontextcodestring newlocalcount newlocaldimen newlocalskip newlocalmuskip \
-newlocaltoks newlocalbox newlocalwrite newlocalread setnewlocalcount \
-setnewlocaldimen setnewlocalskip setnewlocalmuskip setnewlocaltoks setnewlocalbox \
-ifexpression
+radfracspacing radradspacing radmiddlespacing radaccentspacing middleordspacing \
+middleopspacing middlebinspacing middlerelspacing middleopenspacing middleclosespacing \
+middlepunctspacing middleinnerspacing middlefracspacing middleradspacing middlemiddlespacing \
+middleaccentspacing accentordspacing accentopspacing accentbinspacing accentrelspacing \
+accentopenspacing accentclosespacing accentpunctspacing accentinnerspacing accentfracspacing \
+accentradspacing accentmiddlespacing accentaccentspacing normalreqno startimath \
+stopimath normalstartimath normalstopimath startdmath stopdmath \
+normalstartdmath normalstopdmath normalsuperscript normalsubscript normalnosuperscript \
+normalnosubscript superscript subscript nosuperscript nosubscript \
+superprescript subprescript nosuperprescript nosubsprecript uncramped \
+cramped mathstyletrigger triggermathstyle mathstylefont mathsmallstylefont \
+mathstyleface mathsmallstyleface mathstylecommand mathpalette mathstylehbox \
+mathstylevbox mathstylevcenter mathstylevcenteredhbox mathstylevcenteredvbox mathtext \
+setmathsmalltextbox setmathtextbox pushmathstyle popmathstyle triggerdisplaystyle \
+triggertextstyle triggerscriptstyle triggerscriptscriptstyle triggeruncrampedstyle triggercrampedstyle \
+triggersmallstyle triggeruncrampedsmallstyle triggercrampedsmallstyle triggerbigstyle triggeruncrampedbigstyle \
+triggercrampedbigstyle luaexpr expelsedoif expdoif expdoifnot \
+expdoifelsecommon expdoifcommonelse expdoifelseinset expdoifinsetelse ctxdirectlua \
+ctxlatelua ctxsprint ctxwrite ctxcommand ctxdirectcommand \
+ctxlatecommand ctxreport ctxlua luacode lateluacode \
+directluacode registerctxluafile ctxloadluafile luaversion luamajorversion \
+luaminorversion ctxluacode luaconditional luaexpanded ctxluamatch \
+startluaparameterset stopluaparameterset luaparameterset definenamedlua obeylualines \
+obeyluatokens startluacode stopluacode startlua stoplua \
+startctxfunction stopctxfunction ctxfunction startctxfunctiondefinition stopctxfunctiondefinition \
+installctxfunction installprotectedctxfunction installprotectedctxscanner installctxscanner resetctxscanner \
+cldprocessfile cldloadfile cldloadviafile cldcontext cldcommand \
+carryoverpar freezeparagraphproperties defrostparagraphproperties setparagraphfreezing forgetparagraphfreezing \
+updateparagraphproperties updateparagraphpenalties updateparagraphdemerits updateparagraphshapes updateparagraphlines \
+lastlinewidth assumelongusagecs Umathbotaccent Umathtopaccent righttolefthbox \
+lefttorighthbox righttoleftvbox lefttorightvbox righttoleftvtop lefttorightvtop \
+rtlhbox ltrhbox rtlvbox ltrvbox rtlvtop \
+ltrvtop autodirhbox autodirvbox autodirvtop leftorrighthbox \
+leftorrightvbox leftorrightvtop lefttoright righttoleft checkedlefttoright \
+checkedrighttoleft synchronizelayoutdirection synchronizedisplaydirection synchronizeinlinedirection dirlre \
+dirrle dirlro dirrlo rtltext ltrtext \
+lesshyphens morehyphens nohyphens dohyphens dohyphencollapsing \
+nohyphencollapsing compounddiscretionary Ucheckedstartdisplaymath Ucheckedstopdisplaymath break \
+nobreak allowbreak goodbreak nospace nospacing \
+dospacing naturalhbox naturalvbox naturalvtop naturalhpack \
+naturalvpack naturaltpack reversehbox reversevbox reversevtop \
+reversehpack reversevpack reversetpack hcontainer vcontainer \
+tcontainer frule compoundhyphenpenalty start stop \
+unsupportedcs openout closeout write openin \
+closein read readline readfromterminal boxlines \
+boxline setboxline copyboxline boxlinewd boxlineht \
+boxlinedp boxlinenw boxlinenh boxlinend boxlinels \
+boxliners boxlinelh boxlinerh boxlinelp boxlinerp \
+boxlinein boxrangewd boxrangeht boxrangedp bitwiseset \
+bitwiseand bitwiseor bitwisexor bitwisenot bitwisenil \
+ifbitwiseand bitwise bitwiseshift bitwiseflip textdir \
+linedir pardir boxdir prelistbox postlistbox \
+prelistcopy postlistcopy setprelistbox setpostlistbox noligaturing \
+nokerning noexpansion noprotrusion noleftkerning noleftligaturing \
+norightkerning norightligaturing noitaliccorrection futureletnexttoken defbackslashbreak \
+letbackslashbreak pushoverloadmode popoverloadmode pushrunstate poprunstate \
+suggestedalias showboxhere discoptioncodestring flagcodestring frozenparcodestring \
+glyphoptioncodestring groupcodestring hyphenationcodestring mathcontrolcodestring mathflattencodestring \
+normalizecodestring parcontextcodestring newlocalcount newlocaldimen newlocalskip \
+newlocalmuskip newlocaltoks newlocalbox newlocalwrite newlocalread \
+setnewlocalcount setnewlocaldimen setnewlocalskip setnewlocalmuskip setnewlocaltoks \
+setnewlocalbox ifexpression
diff --git a/context/data/scite/context/scite-context-data-interfaces.properties b/context/data/scite/context/scite-context-data-interfaces.properties
index f1153a3f8..4a6c65571 100644
--- a/context/data/scite/context/scite-context-data-interfaces.properties
+++ b/context/data/scite/context/scite-context-data-interfaces.properties
@@ -14,603 +14,604 @@ Cacute Cap Caps Ccaron Ccedilla \
Ccircumflex Cdotaccent Character Characters Chi \
Chook ConTeXt Context ConvertConstantAfter ConvertToConstant \
Cstroke Cup DAYLONG DAYSHORT DZcaronligature \
-DZligature Dafrican Dcaron Ddownarrow Delta \
-Dhook Doteq Downarrow Dstroke Dzcaronligature \
-Dzligature ETEX Eacute Ebreve Ecaron \
-Ecedilla Ecircumflex Ecircumflexacute Ecircumflexdotbelow Ecircumflexgrave \
-Ecircumflexhook Ecircumflextilde Ediaeresis Edotaccent Edotbelow \
-Edoublegrave Egrave Ehook Einvertedbreve Emacron \
-Eogonek Epsilon Eta Eth Etilde \
-Eulerconst EveryLine EveryPar Fhook Finv \
-Gacute Game Gamma Gbreve Gcaron \
-Gcircumflex Gcommaaccent Gdotaccent GetPar Ghook \
-GotoPar Greeknumerals Gstroke Hat Hcaron \
-Hcircumflex Hstroke IJligature INRSTEX Iacute \
-Ibreve Icaron Icircumflex Idiaeresis Idotaccent \
-Idotbelow Idoublegrave Igrave Ihook Iinvertedbreve \
-Im Imacron Iogonek Iota Istroke \
-Itilde Jcircumflex Join Kappa Kcaron \
-Kcommaaccent Khook LAMSTEX LATEX LJligature \
-LUAJITTEX LUAMETATEX LUATEX LaTeX Lacute \
-LamSTeX Lambda Lbar Lcaron Lcommaaccent \
-Ldotmiddle Ldsh Leftarrow Leftrightarrow Ljligature \
-Lleftarrow Longleftarrow Longleftrightarrow Longmapsfrom Longmapsto \
-Longrightarrow Lsh Lstroke Lua LuaMetaTeX \
-LuaTeX LuajitTeX METAFONT METAFUN METAPOST \
-MKII MKIV MKIX MKLX MKVI \
-MKXI MKXL MONTH MONTHLONG MONTHSHORT \
-MPII MPIV MPLX MPVI MPXL \
-MPanchor MPbetex MPc MPcode MPcolor \
-MPcoloronly MPcolumn MPd MPdrawing MPfontsizehskip \
-MPgetmultipars MPgetmultishape MPgetposboxes MPh MPinclusions \
-MPleftskip MPll MPlr MPls MPmenubuttons \
-MPn MPoptions MPoverlayanchor MPp MPpage \
-MPpardata MPplus MPpos MPpositiongraphic MPposset \
-MPr MPrawvar MPregion MPrest MPrightskip \
-MPrs MPstring MPtext MPtransparency MPul \
-MPur MPv MPvar MPvariable MPvv \
-MPw MPwhd MPx MPxy MPxywhd \
-MPy Mapsfrom Mapsto MetaFont MetaFun \
-MetaPost Mu NJligature Nacute Ncaron \
-Ncommaaccent Nearrow Neng Ngrave Njligature \
-NormalizeFontHeight NormalizeFontWidth NormalizeTextHeight NormalizeTextWidth Ntilde \
-Nu Numbers Nwarrow OEligature Oacute \
-Obreve Ocaron Ocircumflex Ocircumflexacute Ocircumflexdotbelow \
-Ocircumflexgrave Ocircumflexhook Ocircumflextilde Odiaeresis Odiaeresismacron \
-Odotaccent Odotaccentmacron Odotbelow Odoublegrave Ograve \
-Ohook Ohorn Ohornacute Ohorndotbelow Ohorngrave \
-Ohornhook Ohorntilde Ohungarumlaut Oinvertedbreve Omacron \
-Omega Omicron Oogonek Oogonekmacron Ostroke \
-Ostrokeacute Otilde Otildemacron P PDFETEX \
-PDFTEX PDFcolor PICTEX PPCHTEX PPCHTeX \
-PRAGMA Phi Phook Pi PiCTeX \
-Plankconst PointsToBigPoints PointsToReal PointsToWholeBigPoints PropertyLine \
-Psi PtToCm Racute Rcaron Rcommaaccent \
-Rdoublegrave Rdsh Re ReadFile Relbar \
-Rho Rightarrow Rinvertedbreve Romannumerals Rrightarrow \
-Rsh S Sacute ScaledPointsToBigPoints ScaledPointsToWholeBigPoints \
-Scaron Scedilla Schwa Scircumflex Scommaaccent \
-Searrow Sigma Smallcapped Subset Supset \
-Swarrow TABLE TEX TaBlE Tau \
-Tcaron Tcedilla Tcommaaccent TeX TheNormalizedFontSize \
-Theta Thook Thorn TransparencyHack Tstroke \
-Uacute Ubreve Ucaron Ucircumflex Udiaeresis \
-Udiaeresisacute Udiaeresiscaron Udiaeresisgrave Udiaeresismacron Udotbelow \
-Udoublegrave Ugrave Uhook Uhorn Uhornacute \
-Uhorndotbelow Uhorngrave Uhornhook Uhorntilde Uhungarumlaut \
-Uinvertedbreve Umacron Uogonek Uparrow Updownarrow \
-Upsilon Uring Utilde Uuparrow VDash \
-Vdash VerboseNumber Vert Vhook Vvdash \
-WEEKDAY WORD WORDS Wcircumflex WidthSpanningText \
-Word Words XETEX XeTeX Xi \
-Yacute Ycircumflex Ydiaeresis Ydotbelow Ygrave \
-Yhook Ymacron Ytilde Zacute Zcaron \
-Zdotaccent Zeta Zhook Zstroke aacute \
-abbreviation abjadnaivenumerals abjadnodotnumerals abjadnumerals about \
-abreve abreveacute abrevedotbelow abrevegrave abrevehook \
-abrevetilde acaron acircumflex acircumflexacute acircumflexdotbelow \
-acircumflexgrave acircumflexhook acircumflextilde activatespacehandler actualday \
-actualmonth actualyear actuarial acute acwopencirclearrow \
-adaptcollector adaptfontfeature adaptlayout adaptpapersize addfeature \
-addtoJSpreamble addtocommalist addvalue adiaeresis adiaeresismacron \
-adotaccent adotaccentmacron adotbelow adoublegrave aeacute \
-aeligature aemacron afghanicurrency aftersplitstring aftertestandsplitstring \
-agrave ahook ainvertedbreve aleph alignbottom \
-aligned alignedbox alignedline alignhere alignmentcharacter \
-allinputpaths alpha alphabeticnumerals alwayscitation alwayscite \
-amacron amalg ampersand anchor angle \
-aogonek appendetoks appendgvalue appendtocommalist appendtoks \
-appendtoksonce appendvalue apply applyalternativestyle applyprocessor \
-applytocharacters applytofirstcharacter applytosplitstringchar applytosplitstringcharspaced applytosplitstringline \
-applytosplitstringlinespaced applytosplitstringword applytosplitstringwordspaced applytowords approx \
-approxEq approxeq approxnEq arabicakbar arabicalayhe \
-arabicallah arabicallallahou arabicasterisk arabicbasmalah arabiccomma \
-arabiccuberoot arabicdateseparator arabicdecimals arabicdisputedendofayah arabicendofayah \
-arabicexnumerals arabicfootnotemarker arabicfourthroot arabichighain arabichighalayheassallam \
-arabichigheqala arabichighesala arabichighfootnotemarker arabichighjeem arabichighlamalef \
-arabichighmadda arabichighmeemlong arabichighmeemshort arabichighnisf arabichighnoon \
-arabichighnoonkasra arabichighqaf arabichighqif arabichighradiallahouanhu arabichighrahmatullahalayhe \
-arabichighrubc arabichighsad arabichighsajda arabichighsakta arabichighsallallahou \
-arabichighseen arabichighsmallsafha arabichightah arabichightakhallus arabichighthalatha \
-arabichighwaqf arabichighyeh arabichighzain arabicjallajalalouhou arabiclettermark \
-arabiclowmeemlong arabiclownoonkasra arabiclowseen arabicmisra arabicmuhammad \
-arabicnumber arabicnumberabove arabicnumerals arabicparenleft arabicparenright \
-arabicpercent arabicperiod arabicpermille arabicpertenthousand arabicpoeticverse \
-arabicqala arabicquestion arabicrasoul arabicray arabicrialsign \
-arabicsafha arabicsajdah arabicsalla arabicsamvat arabicsanah \
-arabicsemicolon arabicshighthreedots arabicslcm arabicstartofrubc arabictripledot \
-arabicvowelwaw arabicvowelyeh arabicwasallam arg aring \
-aringacute arrowvert asciimode asciistr aside \
-assignalfadimension assigndimen assigndimension assignifempty assigntranslation \
-assignvalue assignwidth assumelongusagecs ast astype \
-asymp at atilde atleftmargin atpage \
-atrightmargin attachment autocap autodirhbox autodirvbox \
-autodirvtop autoinsertnextspace autointegral automathematics autoorientation \
-autopagestaterealpage autopagestaterealpageorder autorule autosetups availablehsize \
-averagecharwidth backepsilon background backgroundimage backgroundimagefill \
-backgroundline backprime backsim backslash bar \
-barleftarrow barleftarrowrightarrowbar barovernorthwestarrow barwedge basegrid \
-baselinebottom baselineleftbox baselinemiddlebox baselinerightbox bbordermatrix \
-bbox because beforesplitstring beforetestandsplitstring beta \
-beth between bhook big bigbodyfont \
-bigcap bigcirc bigcircle bigcup bigdiamond \
-bigg bigger biggl biggm biggr \
-bigl bigm bigodot bigoplus bigotimes \
-bigr bigskip bigsqcap bigsqcup bigsquare \
-bigstar bigtimes bigtriangledown bigtriangleup bigudot \
-biguplus bigvee bigwedge binom bitmapimage \
-blacklozenge blackrule blackrules blacksquare blacktriangle \
-blacktriangledown blacktriangleleft blacktriangleright blank blap \
-bleed bleedheight bleedwidth blockligatures blockquote \
-blocksynctexfile blockuservariable bodyfontenvironmentlist bodyfontsize bold \
-boldface bolditalic boldslanted bookmark booleanmodevalue \
-bordermatrix bot bottombox bottomleftbox bottomrightbox \
-bowtie boxcursor boxdot boxmarker boxminus \
-boxofsize boxplus boxreference boxtimes bpos \
-breakablethinspace breakhere breve bstroke btxabbreviatedjournal \
-btxaddjournal btxalwayscitation btxauthorfield btxdetail btxdirect \
-btxdoif btxdoifcombiinlistelse btxdoifelse btxdoifelsecombiinlist btxdoifelsesameasprevious \
-btxdoifelsesameaspreviouschecked btxdoifelseuservariable btxdoifnot btxdoifsameaspreviouscheckedelse btxdoifsameaspreviouselse \
-btxdoifuservariableelse btxexpandedjournal btxfield btxfieldname btxfieldtype \
-btxfirstofrange btxflush btxflushauthor btxflushauthorinverted btxflushauthorinvertedshort \
-btxflushauthorname btxflushauthornormal btxflushauthornormalshort btxflushsuffix btxfoundname \
-btxfoundtype btxhiddencitation btxhybridcite btxlabellanguage btxlabeltext \
-btxlistcitation btxloadjournalist btxoneorrange btxremapauthor btxsavejournalist \
-btxsetup btxsingularorplural btxsingularplural btxtextcitation buildmathaccent \
-buildtextaccent buildtextbottomcomma buildtextbottomdot buildtextcedilla buildtextgrave \
-buildtextmacron buildtextognek bullet button cacute \
-calligraphic camel cap capital carriagereturn \
-catcodetablename cbox ccaron ccedilla ccircumflex \
-ccurl cdot cdotaccent cdotp cdots \
-centeraligned centerbox centerdot centeredbox centeredlastline \
-centerednextbox centerline cfrac chapter character \
-characters chardescription charwidthlanguage check checkcharacteralign \
-checkedblank checkedchar checkedfiller checkedstrippedcsname checkinjector \
-checkmark checknextindentation checknextinjector checkpage checkparameters \
-checkpreviousinjector checksoundtrack checktwopassdata checkvariables chem \
-chemical chemicalbottext chemicalmidtext chemicalsymbol chemicaltext \
-chemicaltoptext chi chineseallnumerals chinesecapnumerals chinesenumerals \
-chook circ circeq circlearrowleft circlearrowright \
-circledR circledS circledast circledcirc circleddash \
-circledequals circleonrightarrow citation cite clap \
-classfont cldcommand cldcontext cldloadfile cldprocessfile \
-cleftarrow clip clippedoverlayimage clonefield clubsuit \
-collect collectedtext collectexpanded colon coloncolonequals \
-colonequals color colorbar colorcomponents colored \
-coloronly colorvalue column columnbreak columnsetspanwidth \
-combinepages commalistelement commalistsentence commalistsize comment \
-comparecolorgroup comparedimension comparedimensioneps comparepalet complement \
-completebtxrendering completecontent completeindex completelist completelistofabbreviations \
-completelistofchemicals completelistoffigures completelistofgraphics completelistofintermezzi completelistoflogos \
-completelistofpublications completelistofsorts completelistofsynonyms completelistoftables completepagenumber \
-completeregister complexes complexorsimple complexorsimpleempty component \
-composedcollector composedlayer compounddiscretionary compresult cong \
-constantdimen constantdimenargument constantemptyargument constantnumber constantnumberargument \
-contentreference continuednumber continueifinputfile convertargument convertcommand \
-convertedcounter converteddimen convertedsubcounter convertmonth convertnumber \
-convertvalue convertvboxtohbox coprod copyboxfromcache copybtxlabeltext \
-copyfield copyheadtext copylabeltext copymathlabeltext copyoperatortext \
-copypages copyparameters copyposition copyprefixtext copyright \
-copysetups copysuffixtext copytaglabeltext copyunittext correctwhitespace \
-countersubs counttoken counttokens cramped crampedclap \
-crampedllap crampedrlap crightarrow crightoverleftarrow crlf \
-crlfplaceholder cstroke ctop ctxcommand ctxdirectcommand \
-ctxdirectlua ctxfunction ctxlatecommand ctxlatelua ctxloadluafile \
-ctxlua ctxluabuffer ctxluacode ctxreport ctxsprint \
-cup curlyeqprec curlyeqsucc curlyvee curlywedge \
-currentassignmentlistkey currentassignmentlistvalue currentbtxuservariable currentcommalistitem currentcomponent \
-currentdate currentenvironment currentfeaturetest currentheadnumber currentinterface \
-currentlanguage currentlistentrydestinationattribute currentlistentrylimitedtext currentlistentrynumber currentlistentrypagenumber \
-currentlistentryreferenceattribute currentlistentrytitle currentlistentrytitlerendered currentlistsymbol currentmainlanguage \
-currentmessagetext currentmoduleparameter currentoutputstream currentproduct currentproject \
-currentregime currentregisterpageuserdata currentresponses currenttime currentvalue \
-currentxtablecolumn currentxtablerow curvearrowleft curvearrowright cwopencirclearrow \
-cyrillicA cyrillicAE cyrillicAbreve cyrillicAdiaeresis cyrillicB \
-cyrillicBIGYUS cyrillicBIGYUSiotified cyrillicC cyrillicCH cyrillicCHEDC \
-cyrillicCHEDCabkhasian cyrillicCHEabkhasian cyrillicCHEdiaeresis cyrillicCHEkhakassian cyrillicCHEvertstroke \
-cyrillicD cyrillicDASIAPNEUMATA cyrillicDJE cyrillicDZE cyrillicDZEabkhasian \
-cyrillicDZHE cyrillicE cyrillicELtail cyrillicEMtail cyrillicENDC \
-cyrillicENGHE cyrillicENhook cyrillicENtail cyrillicEREV cyrillicERY \
-cyrillicERtick cyrillicEbreve cyrillicEdiaeresis cyrillicEgrave cyrillicEiotified \
-cyrillicF cyrillicFITA cyrillicG cyrillicGHEmidhook cyrillicGHEstroke \
-cyrillicGHEupturn cyrillicGJE cyrillicH cyrillicHA cyrillicHADC \
-cyrillicHRDSN cyrillicI cyrillicIE cyrillicII cyrillicISHRT \
-cyrillicISHRTtail cyrillicIZHITSA cyrillicIZHITSAdoublegrave cyrillicIdiaeresis cyrillicIgrave \
-cyrillicImacron cyrillicJE cyrillicK cyrillicKADC cyrillicKAbashkir \
-cyrillicKAhook cyrillicKAstroke cyrillicKAvertstroke cyrillicKJE cyrillicKOPPA \
-cyrillicKSI cyrillicL cyrillicLITTLEYUS cyrillicLITTLEYUSiotified cyrillicLJE \
-cyrillicM cyrillicN cyrillicNJE cyrillicO cyrillicOMEGA \
-cyrillicOMEGAround cyrillicOMEGAtitlo cyrillicOT cyrillicObarred cyrillicObarreddiaeresis \
-cyrillicOdiaeresis cyrillicP cyrillicPALATALIZATION cyrillicPALOCHKA cyrillicPEmidhook \
-cyrillicPSI cyrillicPSILIPNEUMATA cyrillicR cyrillicS cyrillicSCHWA \
-cyrillicSCHWAdiaeresis cyrillicSDSC cyrillicSEMISOFT cyrillicSFTSN cyrillicSH \
-cyrillicSHCH cyrillicSHHA cyrillicT cyrillicTEDC cyrillicTETSE \
-cyrillicTITLO cyrillicTSHE cyrillicU cyrillicUK cyrillicUSHRT \
-cyrillicUdiaeresis cyrillicUdoubleacute cyrillicUmacron cyrillicV cyrillicYA \
-cyrillicYAT cyrillicYERUdiaeresis cyrillicYI cyrillicYO cyrillicYU \
-cyrillicYstr cyrillicYstrstroke cyrillicZ cyrillicZDSC cyrillicZEdiaeresis \
-cyrillicZH cyrillicZHEbreve cyrillicZHEdescender cyrillicZHEdiaeresis cyrillica \
-cyrillicabreve cyrillicadiaeresis cyrillicae cyrillicb cyrillicbigyus \
-cyrillicbigyusiotified cyrillicc cyrillicch cyrilliccheabkhasian cyrillicchedc \
-cyrillicchedcabkhasian cyrillicchediaeresis cyrillicchekhakassian cyrillicchevertstroke cyrillicd \
-cyrillicdje cyrillicdze cyrillicdzeabkhasian cyrillicdzhe cyrillice \
-cyrillicebreve cyrillicediaeresis cyrillicegrave cyrilliceiotified cyrilliceltail \
-cyrillicemtail cyrillicendc cyrillicenghe cyrillicenhook cyrillicentail \
-cyrillicerev cyrillicertick cyrillicery cyrillicf cyrillicfita \
-cyrillicg cyrillicghemidhook cyrillicghestroke cyrillicgheupturn cyrillicgje \
-cyrillich cyrillicha cyrillichadc cyrillichrdsn cyrillici \
-cyrillicidiaeresis cyrillicie cyrillicigrave cyrillicii cyrillicimacron \
-cyrillicishrt cyrillicishrttail cyrillicizhitsa cyrillicizhitsadoublegrave cyrillicje \
-cyrillick cyrillickabashkir cyrillickadc cyrillickahook cyrillickastroke \
-cyrillickavertstroke cyrillickje cyrillickoppa cyrillicksi cyrillicl \
-cyrilliclittleyus cyrilliclittleyusiotified cyrilliclje cyrillicm cyrillicn \
-cyrillicnje cyrillico cyrillicobarred cyrillicobarreddiaeresis cyrillicodiaeresis \
-cyrillicomega cyrillicomegaround cyrillicomegatitlo cyrillicot cyrillicp \
-cyrillicpemidhook cyrillicpsi cyrillicr cyrillics cyrillicschwa \
-cyrillicschwadiaeresis cyrillicsdsc cyrillicsemisoft cyrillicsftsn cyrillicsh \
-cyrillicshch cyrillicshha cyrillict cyrillictedc cyrillictetse \
-cyrillictshe cyrillicu cyrillicudiaeresis cyrillicudoubleacute cyrillicuk \
-cyrillicumacron cyrillicushrt cyrillicv cyrillicya cyrillicyat \
-cyrillicyerudiaeresis cyrillicyi cyrillicyo cyrillicystr cyrillicystrstroke \
-cyrillicyu cyrillicz cyrilliczdsc cyrilliczediaeresis cyrilliczh \
-cyrilliczhebreve cyrilliczhedescender cyrilliczhediaeresis d dag \
-dagger daleth dasharrow dashedleftarrow dashedrightarrow \
-dashv datasetvariable date daylong dayoftheweek \
-dayshort dayspermonth dbinom dcaron dcurl \
-ddag ddagger dddot ddot ddots \
-decrement decrementcounter decrementedcounter decrementpagenumber decrementsubpagenumber \
-decrementvalue defaultinterface defaultobjectpage defaultobjectreference defcatcodecommand \
-defconvertedargument defconvertedcommand defconvertedvalue define defineMPinstance \
-defineTABLEsetup defineaccent defineactivecharacter definealternativestyle defineanchor \
-defineattachment defineattribute definebackground definebar defineblock \
-definebodyfont definebodyfontenvironment definebodyfontswitch definebreakpoint definebreakpoints \
-definebtx definebtxdataset definebtxregister definebtxrendering definebuffer \
-definebutton definecapitals definecharacter definecharacterkerning definecharacterspacing \
-definechemical definechemicals definechemicalsymbol definecollector definecolor \
-definecolorgroup definecolumnbreak definecolumnset definecolumnsetarea definecolumnsetspan \
-definecombination definecombinedlist definecommand definecomment definecomplexorsimple \
-definecomplexorsimpleempty defineconversion defineconversionset definecounter definedataset \
-definedate definedelimitedtext definedeq definedescription definedfont \
-definedocument defineeffect defineenumeration defineexpandable defineexpansion \
-defineexternalfigure definefacingfloat definefallbackfamily definefield definefieldbody \
-definefieldbodyset definefieldcategory definefieldstack definefiguresymbol definefileconstant \
-definefilefallback definefilesynonym definefiller definefirstline definefittingpage \
-definefloat definefont definefontalternative definefontfallback definefontfamily \
-definefontfamilypreset definefontfeature definefontfile definefontsize definefontsolution \
-definefontstyle definefontsynonym defineformula defineformulaalternative defineformulaframed \
-defineframed defineframedcontent defineframedtable defineframedtext definefrozenfont \
-defineglobalcolor definegraphictypesynonym definegridsnapping definehbox definehead \
-defineheadalternative definehelp definehigh definehighlight definehspace \
-definehyphenationfeatures defineindentedtext defineindenting defineinitial defineinsertion \
-defineinteraction defineinteractionbar defineinteractionmenu defineinterfaceconstant defineinterfaceelement \
-defineinterfacevariable defineinterlinespace defineintermediatecolor defineitemgroup defineitems \
-definelabel definelabelclass definelayer definelayerpreset definelayout \
-definelinefiller definelinenote definelinenumbering definelines definelist \
-definelistalternative definelistextra definelow definelowhigh definelowmidhigh \
-definemakeup definemarginblock definemargindata definemarker definemarking \
-definemathaccent definemathalignment definemathcases definemathcommand definemathdouble \
-definemathdoubleextensible definemathematics definemathextensible definemathfence definemathfraction \
-definemathframed definemathmatrix definemathornament definemathover definemathoverextensible \
-definemathovertextextensible definemathradical definemathstackers definemathstyle definemathtriplet \
-definemathunder definemathunderextensible definemathundertextextensible definemathunstacked definemeasure \
-definemessageconstant definemixedcolumns definemode definemulticolumns definemultitonecolor \
-definenamedcolor definenamespace definenarrower definenote defineorientation \
-defineornament defineoutputroutine defineoutputroutinecommand defineoverlay definepage \
-definepagebreak definepagechecker definepagecolumns definepageinjection definepageinjectionalternative \
-definepageshift definepagestate definepairedbox definepalet definepapersize \
-defineparagraph defineparagraphs defineparallel defineparbuilder defineperiodkerning \
-defineplaceholder defineplacement definepositioning defineprefixset defineprocesscolor \
-defineprocessor defineprofile defineprogram definepushbutton definepushsymbol \
-definereference definereferenceformat defineregister definerenderingwindow defineresetset \
-defineruby definescale definescript definesection definesectionblock \
-definesectionlevels defineselector defineseparatorset defineshift definesidebar \
-definesort definesorting definespotcolor definestartstop definestyle \
-definestyleinstance definesubfield definesubformula definesymbol definesynonym \
-definesynonyms definesystemattribute definesystemconstant definesystemvariable definetabletemplate \
-definetabulate definetext definetextbackground definetextflow definetextnote \
-definetokenlist definetooltip definetransparency definetwopasslist definetype \
-definetypeface definetypescriptprefix definetypescriptsynonym definetypesetting definetyping \
-defineunit defineuserdata defineuserdataalternative defineviewerlayer definevspace \
-definevspacing definevspacingamount definextable defrostparagraphproperties delimited \
-delimitedtext delta depthofstring depthonlybox depthspanningtext \
-depthstrut determineheadnumber determinelistcharacteristics determinenoflines determineregistercharacteristics \
-devanagarinumerals dfrac dhook diameter diamond \
-diamondsuit differentialD differentiald digamma digits \
-dimensiontocount directboxfromcache directcolor directcolored directconvertedcounter \
-directcopyboxfromcache directdummyparameter directgetboxllx directgetboxlly directhighlight \
-directlocalframed directluacode directparwrapper directselect directsetbar \
-directsetup directsymbol directvspacing dis disabledirectives \
-disableexperiments disablemode disableoutputstream disableparpositions disableregime \
-disabletrackers displaymath displaymathematics displaymessage disposeluatable \
-distributedhsize div dividedsize divideontimes divides \
-doadaptleftskip doadaptrightskip doaddfeature doassign doassignempty \
-doboundtext docheckassignment docheckedpair documentvariable dodoubleargument \
-dodoubleargumentwithset dodoubleempty dodoubleemptywithset dodoublegroupempty doeassign \
-doexpandedrecurse dofastloopcs dogetattribute dogetattributeid dogetcommacommandelement \
-dogobbledoubleempty dogobblesingleempty dohyphens doif doifMPgraphicelse \
-doifallcommon doifallcommonelse doifalldefinedelse doifallmodes doifallmodeselse \
-doifassignmentelse doifassignmentelsecs doifblackelse doifbothsides doifbothsidesoverruled \
-doifboxelse doifbufferelse doifcheckedpagestate doifcolor doifcolorelse \
-doifcommandhandler doifcommandhandlerelse doifcommon doifcommonelse doifcontent \
-doifconversiondefinedelse doifconversionnumberelse doifcounter doifcounterelse doifcurrentfonthasfeatureelse \
-doifdefined doifdefinedcounter doifdefinedcounterelse doifdefinedelse doifdimensionelse \
-doifdimenstringelse doifdocumentargument doifdocumentargumentelse doifdocumentfilename doifdocumentfilenameelse \
-doifdocumentvariable doifdocumentvariableelse doifdrawingblackelse doifelse doifelseMPgraphic \
-doifelseallcommon doifelsealldefined doifelseallmodes doifelseassignment doifelseassignmentcs \
-doifelseblack doifelsebox doifelseboxincache doifelsebuffer doifelsecolor \
-doifelsecommandhandler doifelsecommon doifelseconversiondefined doifelseconversionnumber doifelsecounter \
-doifelsecurrentfonthasfeature doifelsecurrentsortingused doifelsecurrentsynonymshown doifelsecurrentsynonymused doifelsedefined \
-doifelsedefinedcounter doifelsedimension doifelsedimenstring doifelsedocumentargument doifelsedocumentfilename \
-doifelsedocumentvariable doifelsedrawingblack doifelseempty doifelseemptyvalue doifelseemptyvariable \
-doifelseenv doifelsefastoptionalcheck doifelsefastoptionalcheckcs doifelsefieldbody doifelsefieldcategory \
-doifelsefigure doifelsefile doifelsefiledefined doifelsefileexists doifelsefirstchar \
-doifelseflagged doifelsefontchar doifelsefontfeature doifelsefontpresent doifelsefontsynonym \
-doifelseframed doifelsehasspace doifelsehelp doifelseincsname doifelseindented \
-doifelseinelement doifelseinputfile doifelseinsertion doifelseinset doifelseinstring \
-doifelseinsymbolset doifelseintoks doifelseintwopassdata doifelseitalic doifelselanguage \
-doifelselayerdata doifelselayoutdefined doifelselayoutsomeline doifelselayouttextline doifelseleapyear \
-doifelselist doifelselocation doifelselocfile doifelsemainfloatbody doifelsemarkedcontent \
-doifelsemarkedpage doifelsemarking doifelsemeaning doifelsemessage doifelsemode \
-doifelsenextbgroup doifelsenextbgroupcs doifelsenextchar doifelsenextoptional doifelsenextoptionalcs \
-doifelsenextparenthesis doifelsenonzeropositive doifelsenoteonsamepage doifelsenothing doifelsenumber \
-doifelseobjectfound doifelseobjectreferencefound doifelseoddpage doifelseoddpagefloat doifelseoldercontext \
-doifelseolderversion doifelseorientation doifelseoverlapping doifelseoverlay doifelseparallel \
-doifelseparentfile doifelseparwrapper doifelsepath doifelsepathexists doifelsepatterns \
-doifelseposition doifelsepositionaction doifelsepositiononpage doifelsepositionsonsamepage doifelsepositionsonthispage \
-doifelsepositionsused doifelsereferencefound doifelserightpage doifelserightpagefloat doifelserighttoleftinbox \
-doifelsesamelinereference doifelsesamestring doifelsesetups doifelsesomebackground doifelsesomespace \
-doifelsesomething doifelsesometoks doifelsestringinstring doifelsestructurelisthasnumber doifelsestructurelisthaspage \
-doifelsesymboldefined doifelsesymbolset doifelsetext doifelsetextflow doifelsetextflowcollector \
-doifelsetopofpage doifelsetypingfile doifelseundefined doifelseurldefined doifelsevalue \
-doifelsevaluenothing doifelsevariable doifempty doifemptyelse doifemptytoks \
-doifemptyvalue doifemptyvalueelse doifemptyvariable doifemptyvariableelse doifenv \
-doifenvelse doiffastoptionalcheckcselse doiffastoptionalcheckelse doiffieldbodyelse doiffieldcategoryelse \
-doiffigureelse doiffile doiffiledefinedelse doiffileelse doiffileexistselse \
-doiffirstcharelse doifflaggedelse doiffontcharelse doiffontfeatureelse doiffontpresentelse \
-doiffontsynonymelse doifhasspaceelse doifhelpelse doifincsnameelse doifinelementelse \
-doifinputfileelse doifinsertionelse doifinset doifinsetelse doifinstring \
-doifinstringelse doifinsymbolset doifinsymbolsetelse doifintokselse doifintwopassdataelse \
-doifitalicelse doiflanguageelse doiflayerdataelse doiflayoutdefinedelse doiflayoutsomelineelse \
-doiflayouttextlineelse doifleapyearelse doiflistelse doiflocationelse doiflocfileelse \
-doifmainfloatbodyelse doifmarkingelse doifmeaningelse doifmessageelse doifmode \
-doifmodeelse doifnextbgroupcselse doifnextbgroupelse doifnextcharelse doifnextoptionalcselse \
-doifnextoptionalelse doifnextparenthesiselse doifnonzeropositiveelse doifnot doifnotallcommon \
-doifnotallmodes doifnotcommandhandler doifnotcommon doifnotcounter doifnotdocumentargument \
-doifnotdocumentfilename doifnotdocumentvariable doifnotempty doifnotemptyvalue doifnotemptyvariable \
-doifnotenv doifnoteonsamepageelse doifnotescollected doifnotfile doifnotflagged \
-doifnothing doifnothingelse doifnotinset doifnotinsidesplitfloat doifnotinstring \
-doifnotmode doifnotnumber doifnotsamestring doifnotsetups doifnotvalue \
-doifnotvariable doifnumber doifnumberelse doifobjectfoundelse doifobjectreferencefoundelse \
-doifoddpageelse doifoddpagefloatelse doifoldercontextelse doifolderversionelse doifoutervmode \
-doifoverlappingelse doifoverlayelse doifparallelelse doifparentfileelse doifpathelse \
-doifpathexistselse doifpatternselse doifposition doifpositionaction doifpositionactionelse \
-doifpositionelse doifpositiononpageelse doifpositionsonsamepageelse doifpositionsonthispageelse doifpositionsusedelse \
-doifreferencefoundelse doifrightpageelse doifrightpagefloatelse doifrighttoleftinboxelse doifsamelinereferenceelse \
-doifsamestring doifsamestringelse doifsetups doifsetupselse doifsomebackground \
-doifsomebackgroundelse doifsomespaceelse doifsomething doifsomethingelse doifsometoks \
-doifsometokselse doifstringinstringelse doifstructurelisthasnumberelse doifstructurelisthaspageelse doifsymboldefinedelse \
-doifsymbolsetelse doiftext doiftextelse doiftextflowcollectorelse doiftextflowelse \
-doiftopofpageelse doiftypingfileelse doifundefined doifundefinedcounter doifundefinedelse \
-doifunknownfontfeature doifurldefinedelse doifvalue doifvalueelse doifvaluenothing \
-doifvaluenothingelse doifvaluesomething doifvariable doifvariableelse doindentation \
-dollar doloop doloopoverlist donothing dontconvertfont \
-dontleavehmode dontpermitspacesbetweengroups dopositionaction doprocesslocalsetups doquadrupleargument \
-doquadrupleempty doquadruplegroupempty doquintupleargument doquintupleempty doquintuplegroupempty \
-dorechecknextindentation dorecurse dorepeatwithcommand doreplacefeature doresetandafffeature \
-doresetattribute dorotatebox dosetattribute dosetleftskipadaption dosetrightskipadaption \
-dosetupcheckedinterlinespace doseventupleargument doseventupleempty dosingleargument dosingleempty \
-dosinglegroupempty dosixtupleargument dosixtupleempty dosomebreak dostepwiserecurse \
-dosubtractfeature dot doteq doteqdot dotfill \
-dotfskip dotlessI dotlessJ dotlessi dotlessj \
-dotlessjstroke dotminus dotoks dotplus dotripleargument \
-dotripleargumentwithset dotripleempty dotripleemptywithset dotriplegroupempty dots \
-dottedcircle dottedrightarrow doublebar doublebond doublebrace \
-doublebracket doublecap doublecup doubleparent doubleprime \
-doubleverticalbar dowith dowithnextbox dowithnextboxcontent dowithnextboxcontentcs \
-dowithnextboxcs dowithpargument dowithrange dowithwargument downarrow \
-downdasharrow downdownarrows downharpoonleft downharpoonright downuparrows \
-downwhitearrow downzigzagarrow dpofstring dstroke dtail \
-dummydigit dummyparameter dzcaronligature dzligature eTeX \
-eacute ebreve ecaron ecedilla ecircumflex \
-ecircumflexacute ecircumflexdotbelow ecircumflexgrave ecircumflexhook ecircumflextilde \
-edefconvertedargument ediaeresis edotaccent edotbelow edoublegrave \
-efcmaxheight efcmaxwidth efcminheight efcminwidth efcparameter \
-effect egrave ehook einvertedbreve elapsedseconds \
-elapsedsteptime elapsedtime eleftarrowfill eleftharpoondownfill eleftharpoonupfill \
-eleftrightarrowfill ell em emacron emdash \
-emphasisboldface emphasistypeface emptylines emptyset emquad \
-emspace enableasciimode enabledirectives enableexperiments enablemode \
-enableoutputstream enableparpositions enableregime enabletrackers endash \
-endnote enquad enskip enspace env \
-environment envvar eogonek eoverbarfill eoverbracefill \
-eoverbracketfill eoverparentfill epos epsilon eq \
-eqcirc eqeq eqeqeq eqgtr eqless \
-eqsim eqslantgtr eqslantless equaldigits equalscolon \
-equiv erightarrowfill erightharpoondownfill erightharpoonupfill eta \
-eth ethiopic etilde etwoheadrightarrowfill eunderbarfill \
-eunderbracefill eunderbracketfill eunderparentfill exclamdown executeifdefined \
-exists exitloop exitloopnow expandcheckedcsname expanded \
-expandeddoif expandeddoifelse expandeddoifnot expandfontsynonym expdoif \
-expdoifcommonelse expdoifelse expdoifelsecommon expdoifelseinset expdoifinsetelse \
-expdoifnot exponentiale externalfigure externalfigurecollectionmaxheight externalfigurecollectionmaxwidth \
-externalfigurecollectionminheight externalfigurecollectionminwidth externalfigurecollectionparameter fakebox fallingdotseq \
-fastdecrement fastincrement fastlocalframed fastloopfinal fastloopindex \
-fastscale fastsetup fastsetupwithargument fastsetupwithargumentswapped fastswitchtobodyfont \
-fastsxsy feature fence fenced fetchallmarkings \
-fetchallmarks fetchmark fetchmarking fetchonemark fetchonemarking \
-fetchruntinecommand fetchtwomarkings fetchtwomarks ffiligature ffligature \
-fflligature fhook field fieldbody fieldstack \
-fifthoffivearguments fifthofsixarguments figurefilename figurefilepath figurefiletype \
-figurefullname figureheight figurenaturalheight figurenaturalwidth figurespace \
-figuresymbol figurewidth filename filigature filledhboxb \
-filledhboxc filledhboxg filledhboxk filledhboxm filledhboxr \
-filledhboxy filler fillinline fillinrules fillintext \
-fillupto filterfromnext filterfromvalue filterpages filterreference \
-findtwopassdata finishregisterentry firstcharacter firstcounter firstcountervalue \
-firstinlist firstoffivearguments firstoffourarguments firstofoneargument firstofoneunexpanded \
-firstofsixarguments firstofthreearguments firstofthreeunexpanded firstoftwoarguments firstoftwounexpanded \
-firstrealpage firstrealpagenumber firstsubcountervalue firstsubpage firstsubpagenumber \
-firstuserpage firstuserpagenumber fitfield fitfieldframed fittopbaselinegrid \
-fiveeighths fivesixths fixedspace fixedspaces flag \
-flat flligature floatuserdataparameter flushbox flushboxregister \
-flushcollector flushedrightlastline flushlayer flushlocalfloats flushnextbox \
-flushnotes flushoutputstream flushshapebox flushtextflow flushtokens \
-flushtoks fontalternative fontbody fontchar fontcharbyindex \
-fontclass fontclassname fontface fontfeaturelist fontsize \
-fontstyle footnote footnotetext forall forcecharacterstripping \
-forcelocalfloats forgeteverypar forgetparagraphfreezing forgetparameters forgetparskip \
-forgetparwrapper forgetragged formula formulanumber foundbox \
-fourfifths fourperemspace fourthoffivearguments fourthoffourarguments fourthofsixarguments \
-frac framed frameddimension framedparameter framedtext \
-freezedimenmacro freezemeasure freezeparagraphproperties frenchspacing from \
-fromlinenote frown frozenhbox frule gacute \
-gamma gbreve gcaron gcircumflex gcommaaccent \
-gdefconvertedargument gdefconvertedcommand gdotaccent ge geq \
-geqq geqslant getMPdrawing getMPlayer getboxfromcache \
-getboxllx getboxlly getbuffer getbufferdata getcommacommandsize \
-getcommalistsize getdatavalue getdayoftheweek getdayspermonth getdefinedbuffer \
-getdocumentargument getdocumentargumentdefault getdocumentfilename getdummyparameters getemptyparameters \
-geteparameters getexpandedparameters getfiguredimensions getfirstcharacter getfirsttwopassdata \
-getfromcommacommand getfromcommalist getfromluatable getfromtwopassdata getglyphdirect \
-getglyphstyled getgparameters getinlineuserdata getlasttwopassdata getlocalfloat \
-getlocalfloats getmarking getmessage getnamedglyphdirect getnamedglyphstyled \
-getnamedtwopassdatalist getnaturaldimensions getnoflines getobject getobjectdimensions \
-getpaletsize getparameters getparwrapper getprivatechar getprivateslot \
-getrandomcount getrandomdimen getrandomfloat getrandomnumber getrandomseed \
-getraweparameters getrawgparameters getrawnoflines getrawparameters getrawxparameters \
-getreference getreferenceentry getroundednoflines gets getsubstring \
-gettokenlist gettwopassdata gettwopassdatalist getuserdata getuvalue \
-getvalue getvariable getvariabledefault getxparameters gg \
-ggg gggtr gimel globaldisablemode globalenablemode \
-globalletempty globalpopbox globalpopmacro globalpreventmode globalprocesscommalist \
-globalpushbox globalpushmacro globalswapcounts globalswapdimens globalswapmacros \
-globalundefine glyphfontfile gnapprox gneqq gnsim \
-gobbledoubleempty gobbleeightarguments gobblefivearguments gobblefiveoptionals gobblefourarguments \
-gobblefouroptionals gobbleninearguments gobbleoneargument gobbleoneoptional gobblesevenarguments \
-gobblesingleempty gobblesixarguments gobblespacetokens gobbletenarguments gobblethreearguments \
-gobblethreeoptionals gobbletwoarguments gobbletwooptionals gobbleuntil gobbleuntilrelax \
-godown goto gotobox gotopage grabbufferdata \
-grabbufferdatadirect grabuntil grave graycolor grayvalue \
-greedysplitstring greekAlpha greekAlphadasia greekAlphadasiaperispomeni greekAlphadasiatonos \
-greekAlphadasiavaria greekAlphaiotasub greekAlphaiotasubdasia greekAlphaiotasubdasiaperispomeni greekAlphaiotasubdasiatonos \
-greekAlphaiotasubdasiavaria greekAlphaiotasubpsili greekAlphaiotasubpsiliperispomeni greekAlphaiotasubpsilitonos greekAlphaiotasubpsilivaria \
-greekAlphamacron greekAlphapsili greekAlphapsiliperispomeni greekAlphapsilitonos greekAlphapsilivaria \
-greekAlphatonos greekAlphavaria greekAlphavrachy greekBeta greekChi \
-greekCoronis greekDelta greekEpsilon greekEpsilondasia greekEpsilondasiatonos \
-greekEpsilondasiavaria greekEpsilonpsili greekEpsilonpsilitonos greekEpsilonpsilivaria greekEpsilontonos \
-greekEpsilonvaria greekEta greekEtadasia greekEtadasiaperispomeni greekEtadasiatonos \
-greekEtadasiavaria greekEtaiotasub greekEtaiotasubdasia greekEtaiotasubdasiaperispomeni greekEtaiotasubdasiatonos \
-greekEtaiotasubdasiavaria greekEtaiotasubpsili greekEtaiotasubpsiliperispomeni greekEtaiotasubpsilitonos greekEtaiotasubpsilivaria \
-greekEtapsili greekEtapsiliperispomeni greekEtapsilitonos greekEtapsilivaria greekEtatonos \
-greekEtavaria greekGamma greekIota greekIotadasia greekIotadasiaperispomeni \
-greekIotadasiatonos greekIotadasiavaria greekIotadialytika greekIotamacron greekIotapsili \
-greekIotapsiliperispomeni greekIotapsilitonos greekIotapsilivaria greekIotatonos greekIotavaria \
-greekIotavrachy greekKappa greekLambda greekMu greekNu \
-greekOmega greekOmegadasia greekOmegadasiaperispomeni greekOmegadasiatonos greekOmegadasiavaria \
-greekOmegaiotasub greekOmegaiotasubdasia greekOmegaiotasubdasiaperispomeni greekOmegaiotasubdasiatonos greekOmegaiotasubdasiavaria \
-greekOmegaiotasubpsili greekOmegaiotasubpsiliperispomeni greekOmegaiotasubpsilitonos greekOmegaiotasubpsilivaria greekOmegapsili \
-greekOmegapsiliperispomeni greekOmegapsilitonos greekOmegapsilivaria greekOmegatonos greekOmegavaria \
-greekOmicron greekOmicrondasia greekOmicrondasiatonos greekOmicrondasiavaria greekOmicronpsili \
-greekOmicronpsilitonos greekOmicronpsilivaria greekOmicrontonos greekOmicronvaria greekPhi \
-greekPi greekPsi greekRho greekRhodasia greekSigma \
-greekSigmalunate greekTau greekTheta greekUpsilon greekUpsilondasia \
-greekUpsilondasiaperispomeni greekUpsilondasiatonos greekUpsilondasiavaria greekUpsilondialytika greekUpsilonmacron \
-greekUpsilontonos greekUpsilonvaria greekUpsilonvrachy greekXi greekZeta \
-greekalpha greekalphadasia greekalphadasiaperispomeni greekalphadasiatonos greekalphadasiavaria \
-greekalphaiotasub greekalphaiotasubdasia greekalphaiotasubdasiaperispomeni greekalphaiotasubdasiatonos greekalphaiotasubdasiavaria \
-greekalphaiotasubperispomeni greekalphaiotasubpsili greekalphaiotasubpsiliperispomeni greekalphaiotasubpsilitonos greekalphaiotasubpsilivaria \
-greekalphaiotasubtonos greekalphaiotasubvaria greekalphamacron greekalphaoxia greekalphaperispomeni \
-greekalphapsili greekalphapsiliperispomeni greekalphapsilitonos greekalphapsilivaria greekalphatonos \
-greekalphavaria greekalphavrachy greekbeta greekbetaalt greekchi \
-greekdasia greekdasiaperispomeni greekdasiavaria greekdelta greekdialytikaperispomeni \
-greekdialytikatonos greekdialytikavaria greekdigamma greekepsilon greekepsilonalt \
-greekepsilondasia greekepsilondasiatonos greekepsilondasiavaria greekepsilonoxia greekepsilonpsili \
-greekepsilonpsilitonos greekepsilonpsilivaria greekepsilontonos greekepsilonvaria greeketa \
-greeketadasia greeketadasiaperispomeni greeketadasiatonos greeketadasiavaria greeketaiotasub \
-greeketaiotasubdasia greeketaiotasubdasiaperispomeni greeketaiotasubdasiatonos greeketaiotasubdasiavaria greeketaiotasubperispomeni \
-greeketaiotasubpsili greeketaiotasubpsiliperispomeni greeketaiotasubpsilitonos greeketaiotasubpsilivaria greeketaiotasubtonos \
-greeketaiotasubvaria greeketaoxia greeketaperispomeni greeketapsili greeketapsiliperispomeni \
-greeketapsilitonos greeketapsilivaria greeketatonos greeketavaria greekfinalsigma \
-greekgamma greekiota greekiotadasia greekiotadasiaperispomeni greekiotadasiatonos \
-greekiotadasiavaria greekiotadialytika greekiotadialytikaperispomeni greekiotadialytikatonos greekiotadialytikavaria \
-greekiotamacron greekiotaoxia greekiotaperispomeni greekiotapsili greekiotapsiliperispomeni \
-greekiotapsilitonos greekiotapsilivaria greekiotatonos greekiotavaria greekiotavrachy \
-greekkappa greekkoppa greeklambda greekmu greeknu \
-greeknumerals greeknumkoppa greekomega greekomegadasia greekomegadasiaperispomeni \
-greekomegadasiatonos greekomegadasiavaria greekomegaiotasub greekomegaiotasubdasia greekomegaiotasubdasiaperispomeni \
-greekomegaiotasubdasiatonos greekomegaiotasubdasiavaria greekomegaiotasubperispomeni greekomegaiotasubpsili greekomegaiotasubpsiliperispomeni \
-greekomegaiotasubpsilitonos greekomegaiotasubpsilivaria greekomegaiotasubtonos greekomegaiotasubvaria greekomegaoxia \
-greekomegaperispomeni greekomegapsili greekomegapsiliperispomeni greekomegapsilitonos greekomegapsilivaria \
-greekomegatonos greekomegavaria greekomicron greekomicrondasia greekomicrondasiatonos \
-greekomicrondasiavaria greekomicronoxia greekomicronpsili greekomicronpsilitonos greekomicronpsilivaria \
-greekomicrontonos greekomicronvaria greekoxia greekperispomeni greekphi \
-greekphialt greekpi greekpialt greekprosgegrammeni greekpsi \
-greekpsili greekpsiliperispomeni greekpsilivaria greekrho greekrhoalt \
-greekrhodasia greekrhopsili greeksampi greeksigma greeksigmalunate \
-greekstigma greektau greektheta greekthetaalt greektonos \
-greekupsilon greekupsilondasia greekupsilondasiaperispomeni greekupsilondasiatonos greekupsilondasiavaria \
-greekupsilondiaeresis greekupsilondialytikaperispomeni greekupsilondialytikatonos greekupsilondialytikavaria greekupsilonmacron \
-greekupsilonoxia greekupsilonperispomeni greekupsilonpsili greekupsilonpsiliperispomeni greekupsilonpsilitonos \
-greekupsilonpsilivaria greekupsilontonos greekupsilonvaria greekupsilonvrachy greekvaria \
-greekxi greekzeta grid groupedcommand gsetboxllx \
-gsetboxlly gstroke gt gtrapprox gtrdot \
-gtreqless gtreqqless gtrless gtrsim guilsingleleft \
-guilsingleright gujaratinumerals gurmurkhinumerals hairline hairspace \
-halflinestrut halfstrut halfwaybox handletokens handwritten \
-hangul hanzi hash hat hbar \
-hboxofvbox hboxreference hcaron hcircumflex hdofstring \
-headhbox headlanguage headnumber headnumbercontent headnumberdistance \
-headnumberwidth headreferenceattributes headsetupspacing headtext headtextcontent \
-headtextdistance headtexts headtextwidth headvbox headwidth \
-heartsuit hebrewAlef hebrewAyin hebrewBet hebrewDalet \
-hebrewGimel hebrewHe hebrewHet hebrewKaf hebrewKaffinal \
-hebrewLamed hebrewMem hebrewMemfinal hebrewNun hebrewNunfinal \
-hebrewPe hebrewPefinal hebrewQof hebrewResh hebrewSamekh \
-hebrewShin hebrewTav hebrewTet hebrewTsadi hebrewTsadifinal \
-hebrewVav hebrewYod hebrewZayin hebrewnumerals heightanddepthofstring \
-heightofstring heightspanningtext helptext hexnumber hexstringtonumber \
-hglue hiddenbar hiddencitation hiddencite hideblocks \
-high highlight highordinalstr hilo himilo \
-hl hookleftarrow hookrightarrow horizontalgrowingbar horizontalpositionbar \
-hpackbox hpackedbox hphantom hpos hsizefraction \
-hslash hsmash hsmashbox hsmashed hspace \
-hstroke htdpofstring htofstring hyphen hyphenatedcoloredword \
-hyphenatedfile hyphenatedfilename hyphenatedhbox hyphenatedpar hyphenatedurl \
-hyphenatedword iacute ibox ibreve icaron \
-icircumflex ideographichalffillspace ideographicspace idiaeresis idotaccent \
-idotbelow idoublegrave idxfromluatable ifassignment iff \
-ifinobject ifinoutputstream ifparameters iftrialtypesetting ignoreimplicitspaces \
-ignoretagsinexport ignorevalue igrave ihook iiiint \
-iiiintop iiint iiintop iint iintop \
-iinvertedbreve ijligature imacron imaginaryi imaginaryj \
-imath immediatesavetwopassdata impliedby implies imply \
-in includemenu includesvgbuffer includesvgfile includeversioninfo \
-increment incrementcounter incrementedcounter incrementpagenumber incrementsubpagenumber \
-incrementvalue indentation index infofont infofontbold \
-inframed infty infull inheritparameter inhibitblank \
-ininner ininneredge ininnermargin initializeboxstack inleft \
-inleftedge inleftmargin inline inlinebuffer inlinedbox \
-inlinemath inlinemathematics inlinemessage inlineordisplaymath inlineprettyprintbuffer \
-inlinerange inmargin inmframed innerflushshapebox inother \
-inouter inouteredge inoutermargin input inputfilebarename \
-inputfilename inputfilerealsuffix inputfilesuffix inputgivenfile inright \
-inrightedge inrightmargin insertpages inspectluatable installactionhandler \
-installactivecharacter installanddefineactivecharacter installattributestack installautocommandhandler installautosetuphandler \
-installbasicautosetuphandler installbasicparameterhandler installbottomframerenderer installcommandhandler installcorenamespace \
-installctxfunction installctxscanner installdefinehandler installdefinitionset installdefinitionsetmember \
-installdirectcommandhandler installdirectparameterhandler installdirectparametersethandler installdirectsetuphandler installdirectstyleandcolorhandler \
-installframedautocommandhandler installframedcommandhandler installglobalmacrostack installlanguage installleftframerenderer \
-installmacrostack installnamespace installoutputroutine installpagearrangement installparameterhandler \
-installparameterhashhandler installparametersethandler installparentinjector installprotectedctxfunction installprotectedctxscanner \
-installrightframerenderer installrootparameterhandler installsetuphandler installsetuponlycommandhandler installshipoutmethod \
-installsimplecommandhandler installsimpleframedcommandhandler installstyleandcolorhandler installswitchcommandhandler installswitchsetuphandler \
-installtexdirective installtextracker installtopframerenderer installunitsseparator installunitsspace \
-installversioninfo int intclockwise integerrounding integers \
-interactionbar interactionbuttons interactionmenu intercal intertext \
-interwordspaceafter interwordspacebefore interwordspaces interwordspacesafter interwordspacesbefore \
-intop invisibletimes invokepagehandler iogonek iota \
-italic italicbold italiccorrection italicface item \
-items itemtag itilde jcaron jcircumflex \
+DZligature Dafrican Dcaron Dd Ddownarrow \
+Delta Dhook Doteq Downarrow Dstroke \
+Dzcaronligature Dzligature ETEX Eacute Ebreve \
+Ecaron Ecedilla Ecircumflex Ecircumflexacute Ecircumflexdotbelow \
+Ecircumflexgrave Ecircumflexhook Ecircumflextilde Ediaeresis Edotaccent \
+Edotbelow Edoublegrave Egrave Ehook Einvertedbreve \
+Emacron Eogonek Epsilon Eta Eth \
+Etilde Eulerconst EveryLine EveryPar Fhook \
+Finv Gacute Game Gamma Gbreve \
+Gcaron Gcircumflex Gcommaaccent Gdotaccent GetPar \
+Ghook GotoPar Greeknumerals Gstroke Hat \
+Hcaron Hcircumflex Hstroke IJligature INRSTEX \
+Iacute Ibreve Icaron Icircumflex Idiaeresis \
+Idotaccent Idotbelow Idoublegrave Igrave Ihook \
+Iinvertedbreve Im Imacron Iogonek Iota \
+Istroke Itilde Jcircumflex Join Kappa \
+Kcaron Kcommaaccent Khook LAMSTEX LATEX \
+LJligature LUAJITTEX LUAMETATEX LUATEX LaTeX \
+Lacute LamSTeX Lambda Lbar Lcaron \
+Lcommaaccent Ldotmiddle Ldsh Leftarrow Leftrightarrow \
+Ljligature Lleftarrow Longleftarrow Longleftrightarrow Longmapsfrom \
+Longmapsto Longrightarrow Lsh Lstroke Lua \
+LuaMetaTeX LuaTeX LuajitTeX METAFONT METAFUN \
+METAPOST MKII MKIV MKIX MKLX \
+MKVI MKXI MKXL MONTH MONTHLONG \
+MONTHSHORT MPII MPIV MPLX MPVI \
+MPXL MPanchor MPbetex MPc MPcode \
+MPcolor MPcoloronly MPcolumn MPd MPdrawing \
+MPfontsizehskip MPgetmultipars MPgetmultishape MPgetposboxes MPh \
+MPinclusions MPleftskip MPll MPlr MPls \
+MPmenubuttons MPn MPoptions MPoverlayanchor MPp \
+MPpage MPpardata MPplus MPpos MPpositiongraphic \
+MPposset MPr MPrawvar MPregion MPrest \
+MPrightskip MPrs MPstring MPtext MPtransparency \
+MPul MPur MPv MPvar MPvariable \
+MPvv MPw MPwhd MPx MPxy \
+MPxywhd MPy Mapsfrom Mapsto MetaFont \
+MetaFun MetaPost Mu NJligature Nacute \
+Ncaron Ncommaaccent Nearrow Neng Ngrave \
+Njligature NormalizeFontHeight NormalizeFontWidth NormalizeTextHeight NormalizeTextWidth \
+Ntilde Nu Numbers Nwarrow OEligature \
+Oacute Obreve Ocaron Ocircumflex Ocircumflexacute \
+Ocircumflexdotbelow Ocircumflexgrave Ocircumflexhook Ocircumflextilde Odiaeresis \
+Odiaeresismacron Odotaccent Odotaccentmacron Odotbelow Odoublegrave \
+Ograve Ohook Ohorn Ohornacute Ohorndotbelow \
+Ohorngrave Ohornhook Ohorntilde Ohungarumlaut Oinvertedbreve \
+Omacron Omega Omicron Oogonek Oogonekmacron \
+Ostroke Ostrokeacute Otilde Otildemacron P \
+PDFETEX PDFTEX PDFcolor PICTEX PPCHTEX \
+PPCHTeX PRAGMA Phi Phook Pi \
+PiCTeX Plankconst PointsToBigPoints PointsToReal PointsToWholeBigPoints \
+PropertyLine Psi PtToCm Racute Rcaron \
+Rcommaaccent Rdoublegrave Rdsh Re ReadFile \
+Relbar Rho Rightarrow Rinvertedbreve Romannumerals \
+Rrightarrow Rsh S Sacute ScaledPointsToBigPoints \
+ScaledPointsToWholeBigPoints Scaron Scedilla Schwa Scircumflex \
+Scommaaccent Searrow Sigma Smallcapped Subset \
+Supset Swarrow TABLE TEX TaBlE \
+Tau Tcaron Tcedilla Tcommaaccent TeX \
+TheNormalizedFontSize Theta Thook Thorn TransparencyHack \
+Tstroke Uacute Ubreve Ucaron Ucircumflex \
+Udiaeresis Udiaeresisacute Udiaeresiscaron Udiaeresisgrave Udiaeresismacron \
+Udotbelow Udoublegrave Ugrave Uhook Uhorn \
+Uhornacute Uhorndotbelow Uhorngrave Uhornhook Uhorntilde \
+Uhungarumlaut Uinvertedbreve Umacron Uogonek Uparrow \
+Updownarrow Upsilon Uring Utilde Uuparrow \
+VDash Vdash VerboseNumber Vert Vhook \
+Vvdash WEEKDAY WORD WORDS Wcircumflex \
+WidthSpanningText Word Words XETEX XeTeX \
+Xi Yacute Ycircumflex Ydiaeresis Ydotbelow \
+Ygrave Yhook Ymacron Ytilde Zacute \
+Zcaron Zdotaccent Zeta Zhook Zstroke \
+aacute abbreviation abjadnaivenumerals abjadnodotnumerals abjadnumerals \
+about abreve abreveacute abrevedotbelow abrevegrave \
+abrevehook abrevetilde acaron acircumflex acircumflexacute \
+acircumflexdotbelow acircumflexgrave acircumflexhook acircumflextilde activatespacehandler \
+actualday actualmonth actualyear actuarial acute \
+acwopencirclearrow adaptcollector adaptfontfeature adaptlayout adaptpapersize \
+addfeature addtoJSpreamble addtocommalist addvalue adiaeresis \
+adiaeresismacron adotaccent adotaccentmacron adotbelow adoublegrave \
+aeacute aeligature aemacron afghanicurrency aftersplitstring \
+aftertestandsplitstring agrave ahook ainvertedbreve aleph \
+alignbottom aligned alignedbox alignedline alignhere \
+alignmentcharacter allinputpaths alpha alphabeticnumerals alwayscitation \
+alwayscite amacron amalg ampersand anchor \
+angle aogonek appendetoks appendgvalue appendtocommalist \
+appendtoks appendtoksonce appendvalue apply applyalternativestyle \
+applyprocessor applytocharacters applytofirstcharacter applytosplitstringchar applytosplitstringcharspaced \
+applytosplitstringline applytosplitstringlinespaced applytosplitstringword applytosplitstringwordspaced applytowords \
+approx approxEq approxeq approxnEq arabicakbar \
+arabicalayhe arabicallah arabicallallahou arabicasterisk arabicbasmalah \
+arabiccomma arabiccuberoot arabicdateseparator arabicdecimals arabicdisputedendofayah \
+arabicendofayah arabicexnumerals arabicfootnotemarker arabicfourthroot arabichighain \
+arabichighalayheassallam arabichigheqala arabichighesala arabichighfootnotemarker arabichighjeem \
+arabichighlamalef arabichighmadda arabichighmeemlong arabichighmeemshort arabichighnisf \
+arabichighnoon arabichighnoonkasra arabichighqaf arabichighqif arabichighradiallahouanhu \
+arabichighrahmatullahalayhe arabichighrubc arabichighsad arabichighsajda arabichighsakta \
+arabichighsallallahou arabichighseen arabichighsmallsafha arabichightah arabichightakhallus \
+arabichighthalatha arabichighwaqf arabichighyeh arabichighzain arabicjallajalalouhou \
+arabiclettermark arabiclowmeemlong arabiclownoonkasra arabiclowseen arabicmisra \
+arabicmuhammad arabicnumber arabicnumberabove arabicnumerals arabicparenleft \
+arabicparenright arabicpercent arabicperiod arabicpermille arabicpertenthousand \
+arabicpoeticverse arabicqala arabicquestion arabicrasoul arabicray \
+arabicrialsign arabicsafha arabicsajdah arabicsalla arabicsamvat \
+arabicsanah arabicsemicolon arabicshighthreedots arabicslcm arabicstartofrubc \
+arabictripledot arabicvowelwaw arabicvowelyeh arabicwasallam arg \
+aring aringacute arrowvert asciimode asciistr \
+aside assignalfadimension assigndimen assigndimension assignifempty \
+assigntranslation assignvalue assignwidth assumelongusagecs ast \
+astype asymp at atilde atleftmargin \
+atpage atrightmargin attachment autocap autodirhbox \
+autodirvbox autodirvtop autoinsertnextspace autointegral automathematics \
+autoorientation autopagestaterealpage autopagestaterealpageorder autorule autosetups \
+availablehsize averagecharwidth backepsilon background backgroundimage \
+backgroundimagefill backgroundline backprime backsim backslash \
+bar barleftarrow barleftarrowrightarrowbar barovernorthwestarrow barwedge \
+basegrid baselinebottom baselineleftbox baselinemiddlebox baselinerightbox \
+bbordermatrix bbox because beforesplitstring beforetestandsplitstring \
+beta beth between bhook big \
+bigbodyfont bigcap bigcirc bigcircle bigcup \
+bigdiamond bigg bigger biggl biggm \
+biggr bigl bigm bigodot bigoplus \
+bigotimes bigr bigskip bigsqcap bigsqcup \
+bigsquare bigstar bigtimes bigtriangledown bigtriangleup \
+bigudot biguplus bigvee bigwedge binom \
+bitmapimage blacklozenge blackrule blackrules blacksquare \
+blacktriangle blacktriangledown blacktriangleleft blacktriangleright blank \
+blap bleed bleedheight bleedwidth blockligatures \
+blockquote blocksynctexfile blockuservariable bodyfontenvironmentlist bodyfontsize \
+bold boldface bolditalic boldslanted bookmark \
+booleanmodevalue bordermatrix bot bottombox bottomleftbox \
+bottomrightbox bowtie boxcursor boxdot boxmarker \
+boxminus boxofsize boxplus boxreference boxtimes \
+bpos breakablethinspace breakhere breve bstroke \
+btxabbreviatedjournal btxaddjournal btxalwayscitation btxauthorfield btxdetail \
+btxdirect btxdoif btxdoifcombiinlistelse btxdoifelse btxdoifelsecombiinlist \
+btxdoifelsesameasprevious btxdoifelsesameaspreviouschecked btxdoifelseuservariable btxdoifnot btxdoifsameaspreviouscheckedelse \
+btxdoifsameaspreviouselse btxdoifuservariableelse btxexpandedjournal btxfield btxfieldname \
+btxfieldtype btxfirstofrange btxflush btxflushauthor btxflushauthorinverted \
+btxflushauthorinvertedshort btxflushauthorname btxflushauthornormal btxflushauthornormalshort btxflushsuffix \
+btxfoundname btxfoundtype btxhiddencitation btxhybridcite btxlabellanguage \
+btxlabeltext btxlistcitation btxloadjournalist btxoneorrange btxremapauthor \
+btxsavejournalist btxsetup btxsingularorplural btxsingularplural btxtextcitation \
+buildmathaccent buildtextaccent buildtextbottomcomma buildtextbottomdot buildtextcedilla \
+buildtextgrave buildtextmacron buildtextognek bullet button \
+cacute calligraphic camel cap capital \
+carriagereturn catcodetablename cbox ccaron ccedilla \
+ccircumflex ccurl cdot cdotaccent cdotp \
+cdots centeraligned centerbox centerdot centeredbox \
+centeredlastline centerednextbox centerline cfrac chapter \
+character characters chardescription charwidthlanguage check \
+checkcharacteralign checkedblank checkedchar checkedfiller checkedstrippedcsname \
+checkinjector checkmark checknextindentation checknextinjector checkpage \
+checkparameters checkpreviousinjector checksoundtrack checktwopassdata checkvariables \
+chem chemical chemicalbottext chemicalmidtext chemicalsymbol \
+chemicaltext chemicaltoptext chi chineseallnumerals chinesecapnumerals \
+chinesenumerals chook circ circeq circlearrowleft \
+circlearrowright circledR circledS circledast circledcirc \
+circleddash circledequals circleonrightarrow citation cite \
+clap classfont cldcommand cldcontext cldloadfile \
+cldprocessfile cleftarrow clip clippedoverlayimage clonefield \
+clubsuit collect collectedtext collectexpanded colon \
+coloncolonequals colonequals color colorbar colorcomponents \
+colored coloronly colorvalue column columnbreak \
+columnsetspanwidth combinepages commalistelement commalistsentence commalistsize \
+comment comparecolorgroup comparedimension comparedimensioneps comparepalet \
+complement completebtxrendering completecontent completeindex completelist \
+completelistofabbreviations completelistofchemicals completelistoffigures completelistofgraphics completelistofintermezzi \
+completelistoflogos completelistofpublications completelistofsorts completelistofsynonyms completelistoftables \
+completepagenumber completeregister complexes complexorsimple complexorsimpleempty \
+component composedcollector composedlayer compounddiscretionary compresult \
+cong constantdimen constantdimenargument constantemptyargument constantnumber \
+constantnumberargument contentreference continuednumber continueifinputfile convertargument \
+convertcommand convertedcounter converteddimen convertedsubcounter convertmonth \
+convertnumber convertvalue convertvboxtohbox coprod copyboxfromcache \
+copybtxlabeltext copyfield copyheadtext copylabeltext copymathlabeltext \
+copyoperatortext copypages copyparameters copyposition copyprefixtext \
+copyright copysetups copysuffixtext copytaglabeltext copyunittext \
+correctwhitespace countersubs counttoken counttokens cramped \
+crampedclap crampedllap crampedrlap crightarrow crightoverleftarrow \
+crlf crlfplaceholder cstroke ctop ctxcommand \
+ctxdirectcommand ctxdirectlua ctxfunction ctxlatecommand ctxlatelua \
+ctxloadluafile ctxlua ctxluabuffer ctxluacode ctxreport \
+ctxsprint cup curlyeqprec curlyeqsucc curlyvee \
+curlywedge currentassignmentlistkey currentassignmentlistvalue currentbtxuservariable currentcommalistitem \
+currentcomponent currentdate currentenvironment currentfeaturetest currentheadnumber \
+currentinterface currentlanguage currentlistentrydestinationattribute currentlistentrylimitedtext currentlistentrynumber \
+currentlistentrypagenumber currentlistentryreferenceattribute currentlistentrytitle currentlistentrytitlerendered currentlistsymbol \
+currentmainlanguage currentmessagetext currentmoduleparameter currentoutputstream currentproduct \
+currentproject currentregime currentregisterpageuserdata currentresponses currenttime \
+currentvalue currentxtablecolumn currentxtablerow curvearrowleft curvearrowright \
+cwopencirclearrow cyrillicA cyrillicAE cyrillicAbreve cyrillicAdiaeresis \
+cyrillicB cyrillicBIGYUS cyrillicBIGYUSiotified cyrillicC cyrillicCH \
+cyrillicCHEDC cyrillicCHEDCabkhasian cyrillicCHEabkhasian cyrillicCHEdiaeresis cyrillicCHEkhakassian \
+cyrillicCHEvertstroke cyrillicD cyrillicDASIAPNEUMATA cyrillicDJE cyrillicDZE \
+cyrillicDZEabkhasian cyrillicDZHE cyrillicE cyrillicELtail cyrillicEMtail \
+cyrillicENDC cyrillicENGHE cyrillicENhook cyrillicENtail cyrillicEREV \
+cyrillicERY cyrillicERtick cyrillicEbreve cyrillicEdiaeresis cyrillicEgrave \
+cyrillicEiotified cyrillicF cyrillicFITA cyrillicG cyrillicGHEmidhook \
+cyrillicGHEstroke cyrillicGHEupturn cyrillicGJE cyrillicH cyrillicHA \
+cyrillicHADC cyrillicHRDSN cyrillicI cyrillicIE cyrillicII \
+cyrillicISHRT cyrillicISHRTtail cyrillicIZHITSA cyrillicIZHITSAdoublegrave cyrillicIdiaeresis \
+cyrillicIgrave cyrillicImacron cyrillicJE cyrillicK cyrillicKADC \
+cyrillicKAbashkir cyrillicKAhook cyrillicKAstroke cyrillicKAvertstroke cyrillicKJE \
+cyrillicKOPPA cyrillicKSI cyrillicL cyrillicLITTLEYUS cyrillicLITTLEYUSiotified \
+cyrillicLJE cyrillicM cyrillicN cyrillicNJE cyrillicO \
+cyrillicOMEGA cyrillicOMEGAround cyrillicOMEGAtitlo cyrillicOT cyrillicObarred \
+cyrillicObarreddiaeresis cyrillicOdiaeresis cyrillicP cyrillicPALATALIZATION cyrillicPALOCHKA \
+cyrillicPEmidhook cyrillicPSI cyrillicPSILIPNEUMATA cyrillicR cyrillicS \
+cyrillicSCHWA cyrillicSCHWAdiaeresis cyrillicSDSC cyrillicSEMISOFT cyrillicSFTSN \
+cyrillicSH cyrillicSHCH cyrillicSHHA cyrillicT cyrillicTEDC \
+cyrillicTETSE cyrillicTITLO cyrillicTSHE cyrillicU cyrillicUK \
+cyrillicUSHRT cyrillicUdiaeresis cyrillicUdoubleacute cyrillicUmacron cyrillicV \
+cyrillicYA cyrillicYAT cyrillicYERUdiaeresis cyrillicYI cyrillicYO \
+cyrillicYU cyrillicYstr cyrillicYstrstroke cyrillicZ cyrillicZDSC \
+cyrillicZEdiaeresis cyrillicZH cyrillicZHEbreve cyrillicZHEdescender cyrillicZHEdiaeresis \
+cyrillica cyrillicabreve cyrillicadiaeresis cyrillicae cyrillicb \
+cyrillicbigyus cyrillicbigyusiotified cyrillicc cyrillicch cyrilliccheabkhasian \
+cyrillicchedc cyrillicchedcabkhasian cyrillicchediaeresis cyrillicchekhakassian cyrillicchevertstroke \
+cyrillicd cyrillicdje cyrillicdze cyrillicdzeabkhasian cyrillicdzhe \
+cyrillice cyrillicebreve cyrillicediaeresis cyrillicegrave cyrilliceiotified \
+cyrilliceltail cyrillicemtail cyrillicendc cyrillicenghe cyrillicenhook \
+cyrillicentail cyrillicerev cyrillicertick cyrillicery cyrillicf \
+cyrillicfita cyrillicg cyrillicghemidhook cyrillicghestroke cyrillicgheupturn \
+cyrillicgje cyrillich cyrillicha cyrillichadc cyrillichrdsn \
+cyrillici cyrillicidiaeresis cyrillicie cyrillicigrave cyrillicii \
+cyrillicimacron cyrillicishrt cyrillicishrttail cyrillicizhitsa cyrillicizhitsadoublegrave \
+cyrillicje cyrillick cyrillickabashkir cyrillickadc cyrillickahook \
+cyrillickastroke cyrillickavertstroke cyrillickje cyrillickoppa cyrillicksi \
+cyrillicl cyrilliclittleyus cyrilliclittleyusiotified cyrilliclje cyrillicm \
+cyrillicn cyrillicnje cyrillico cyrillicobarred cyrillicobarreddiaeresis \
+cyrillicodiaeresis cyrillicomega cyrillicomegaround cyrillicomegatitlo cyrillicot \
+cyrillicp cyrillicpemidhook cyrillicpsi cyrillicr cyrillics \
+cyrillicschwa cyrillicschwadiaeresis cyrillicsdsc cyrillicsemisoft cyrillicsftsn \
+cyrillicsh cyrillicshch cyrillicshha cyrillict cyrillictedc \
+cyrillictetse cyrillictshe cyrillicu cyrillicudiaeresis cyrillicudoubleacute \
+cyrillicuk cyrillicumacron cyrillicushrt cyrillicv cyrillicya \
+cyrillicyat cyrillicyerudiaeresis cyrillicyi cyrillicyo cyrillicystr \
+cyrillicystrstroke cyrillicyu cyrillicz cyrilliczdsc cyrilliczediaeresis \
+cyrilliczh cyrilliczhebreve cyrilliczhedescender cyrilliczhediaeresis d \
+dag dagger daleth dasharrow dashedleftarrow \
+dashedrightarrow dashv datasetvariable date daylong \
+dayoftheweek dayshort dayspermonth dbinom dcaron \
+dcurl dd ddag ddagger dddot \
+ddot ddots decrement decrementcounter decrementedcounter \
+decrementpagenumber decrementsubpagenumber decrementvalue defaultinterface defaultobjectpage \
+defaultobjectreference defcatcodecommand defconvertedargument defconvertedcommand defconvertedvalue \
+define defineMPinstance defineTABLEsetup defineaccent defineactivecharacter \
+definealternativestyle defineanchor defineattachment defineattribute definebackground \
+definebar defineblock definebodyfont definebodyfontenvironment definebodyfontswitch \
+definebreakpoint definebreakpoints definebtx definebtxdataset definebtxregister \
+definebtxrendering definebuffer definebutton definecapitals definecharacter \
+definecharacterkerning definecharacterspacing definechemical definechemicals definechemicalsymbol \
+definecollector definecolor definecolorgroup definecolumnbreak definecolumnset \
+definecolumnsetarea definecolumnsetspan definecombination definecombinedlist definecommand \
+definecomment definecomplexorsimple definecomplexorsimpleempty defineconversion defineconversionset \
+definecounter definedataset definedate definedelimitedtext definedeq \
+definedescription definedfont definedocument defineeffect defineenumeration \
+defineexpandable defineexpansion defineexternalfigure definefacingfloat definefallbackfamily \
+definefield definefieldbody definefieldbodyset definefieldcategory definefieldstack \
+definefiguresymbol definefileconstant definefilefallback definefilesynonym definefiller \
+definefirstline definefittingpage definefloat definefont definefontalternative \
+definefontfallback definefontfamily definefontfamilypreset definefontfeature definefontfile \
+definefontsize definefontsolution definefontstyle definefontsynonym defineformula \
+defineformulaalternative defineformulaframed defineframed defineframedcontent defineframedtable \
+defineframedtext definefrozenfont defineglobalcolor definegraphictypesynonym definegridsnapping \
+definehbox definehead defineheadalternative definehelp definehigh \
+definehighlight definehspace definehyphenationfeatures defineindentedtext defineindenting \
+defineinitial defineinsertion defineinteraction defineinteractionbar defineinteractionmenu \
+defineinterfaceconstant defineinterfaceelement defineinterfacevariable defineinterlinespace defineintermediatecolor \
+defineitemgroup defineitems definelabel definelabelclass definelayer \
+definelayerpreset definelayout definelinefiller definelinenote definelinenumbering \
+definelines definelist definelistalternative definelistextra definelow \
+definelowhigh definelowmidhigh definemakeup definemarginblock definemargindata \
+definemarker definemarking definemathaccent definemathalignment definemathcases \
+definemathcommand definemathdouble definemathdoubleextensible definemathematics definemathextensible \
+definemathfence definemathfraction definemathframed definemathmatrix definemathornament \
+definemathover definemathoverextensible definemathovertextextensible definemathradical definemathstackers \
+definemathstyle definemathtriplet definemathunder definemathunderextensible definemathundertextextensible \
+definemathunstacked definemeasure definemessageconstant definemixedcolumns definemode \
+definemulticolumns definemultitonecolor definenamedcolor definenamespace definenarrower \
+definenote defineorientation defineornament defineoutputroutine defineoutputroutinecommand \
+defineoverlay definepage definepagebreak definepagechecker definepagecolumns \
+definepageinjection definepageinjectionalternative definepageshift definepagestate definepairedbox \
+definepalet definepapersize defineparagraph defineparagraphs defineparallel \
+defineparbuilder defineperiodkerning defineplaceholder defineplacement definepositioning \
+defineprefixset defineprocesscolor defineprocessor defineprofile defineprogram \
+definepushbutton definepushsymbol definereference definereferenceformat defineregister \
+definerenderingwindow defineresetset defineruby definescale definescript \
+definesection definesectionblock definesectionlevels defineselector defineseparatorset \
+defineshift definesidebar definesort definesorting definespotcolor \
+definestartstop definestyle definestyleinstance definesubfield definesubformula \
+definesymbol definesynonym definesynonyms definesystemattribute definesystemconstant \
+definesystemvariable definetabletemplate definetabulate definetext definetextbackground \
+definetextflow definetextnote definetokenlist definetooltip definetransparency \
+definetwopasslist definetype definetypeface definetypescriptprefix definetypescriptsynonym \
+definetypesetting definetyping defineunit defineuserdata defineuserdataalternative \
+defineviewerlayer definevspace definevspacing definevspacingamount definextable \
+defrostparagraphproperties delimited delimitedtext delta depthofstring \
+depthonlybox depthspanningtext depthstrut determineheadnumber determinelistcharacteristics \
+determinenoflines determineregistercharacteristics devanagarinumerals dfrac dhook \
+diameter diamond diamondsuit differentialD differentiald \
+digamma digits dimensiontocount directboxfromcache directcolor \
+directcolored directconvertedcounter directcopyboxfromcache directdummyparameter directgetboxllx \
+directgetboxlly directhighlight directlocalframed directluacode directparwrapper \
+directselect directsetbar directsetup directsymbol directvspacing \
+dis disabledirectives disableexperiments disablemode disableoutputstream \
+disableparpositions disableregime disabletrackers displaymath displaymathematics \
+displaymessage disposeluatable distributedhsize div dividedsize \
+divideontimes divides doadaptleftskip doadaptrightskip doaddfeature \
+doassign doassignempty doboundtext docheckassignment docheckedpair \
+documentvariable dodoubleargument dodoubleargumentwithset dodoubleempty dodoubleemptywithset \
+dodoublegroupempty doeassign doexpandedrecurse dofastloopcs dogetattribute \
+dogetattributeid dogetcommacommandelement dogobbledoubleempty dogobblesingleempty dohyphens \
+doif doifMPgraphicelse doifallcommon doifallcommonelse doifalldefinedelse \
+doifallmodes doifallmodeselse doifassignmentelse doifassignmentelsecs doifblackelse \
+doifbothsides doifbothsidesoverruled doifboxelse doifbufferelse doifcheckedpagestate \
+doifcolor doifcolorelse doifcommandhandler doifcommandhandlerelse doifcommon \
+doifcommonelse doifcontent doifconversiondefinedelse doifconversionnumberelse doifcounter \
+doifcounterelse doifcurrentfonthasfeatureelse doifdefined doifdefinedcounter doifdefinedcounterelse \
+doifdefinedelse doifdimensionelse doifdimenstringelse doifdocumentargument doifdocumentargumentelse \
+doifdocumentfilename doifdocumentfilenameelse doifdocumentvariable doifdocumentvariableelse doifdrawingblackelse \
+doifelse doifelseMPgraphic doifelseallcommon doifelsealldefined doifelseallmodes \
+doifelseassignment doifelseassignmentcs doifelseblack doifelsebox doifelseboxincache \
+doifelsebuffer doifelsecolor doifelsecommandhandler doifelsecommon doifelseconversiondefined \
+doifelseconversionnumber doifelsecounter doifelsecurrentfonthasfeature doifelsecurrentsortingused doifelsecurrentsynonymshown \
+doifelsecurrentsynonymused doifelsedefined doifelsedefinedcounter doifelsedimension doifelsedimenstring \
+doifelsedocumentargument doifelsedocumentfilename doifelsedocumentvariable doifelsedrawingblack doifelseempty \
+doifelseemptyvalue doifelseemptyvariable doifelseenv doifelsefastoptionalcheck doifelsefastoptionalcheckcs \
+doifelsefieldbody doifelsefieldcategory doifelsefigure doifelsefile doifelsefiledefined \
+doifelsefileexists doifelsefirstchar doifelseflagged doifelsefontchar doifelsefontfeature \
+doifelsefontpresent doifelsefontsynonym doifelseframed doifelsehasspace doifelsehelp \
+doifelseincsname doifelseindented doifelseinelement doifelseinputfile doifelseinsertion \
+doifelseinset doifelseinstring doifelseinsymbolset doifelseintoks doifelseintwopassdata \
+doifelseitalic doifelselanguage doifelselayerdata doifelselayoutdefined doifelselayoutsomeline \
+doifelselayouttextline doifelseleapyear doifelselist doifelselocation doifelselocfile \
+doifelsemainfloatbody doifelsemarkedcontent doifelsemarkedpage doifelsemarking doifelsemeaning \
+doifelsemessage doifelsemode doifelsenextbgroup doifelsenextbgroupcs doifelsenextchar \
+doifelsenextoptional doifelsenextoptionalcs doifelsenextparenthesis doifelsenonzeropositive doifelsenoteonsamepage \
+doifelsenothing doifelsenumber doifelseobjectfound doifelseobjectreferencefound doifelseoddpage \
+doifelseoddpagefloat doifelseoldercontext doifelseolderversion doifelseorientation doifelseoverlapping \
+doifelseoverlay doifelseparallel doifelseparentfile doifelseparwrapper doifelsepath \
+doifelsepathexists doifelsepatterns doifelseposition doifelsepositionaction doifelsepositiononpage \
+doifelsepositionsonsamepage doifelsepositionsonthispage doifelsepositionsused doifelsereferencefound doifelserightpage \
+doifelserightpagefloat doifelserighttoleftinbox doifelsesamelinereference doifelsesamestring doifelsesetups \
+doifelsesomebackground doifelsesomespace doifelsesomething doifelsesometoks doifelsestringinstring \
+doifelsestructurelisthasnumber doifelsestructurelisthaspage doifelsesymboldefined doifelsesymbolset doifelsetext \
+doifelsetextflow doifelsetextflowcollector doifelsetopofpage doifelsetypingfile doifelseundefined \
+doifelseurldefined doifelsevalue doifelsevaluenothing doifelsevariable doifempty \
+doifemptyelse doifemptytoks doifemptyvalue doifemptyvalueelse doifemptyvariable \
+doifemptyvariableelse doifenv doifenvelse doiffastoptionalcheckcselse doiffastoptionalcheckelse \
+doiffieldbodyelse doiffieldcategoryelse doiffigureelse doiffile doiffiledefinedelse \
+doiffileelse doiffileexistselse doiffirstcharelse doifflaggedelse doiffontcharelse \
+doiffontfeatureelse doiffontpresentelse doiffontsynonymelse doifhasspaceelse doifhelpelse \
+doifincsnameelse doifinelementelse doifinputfileelse doifinsertionelse doifinset \
+doifinsetelse doifinstring doifinstringelse doifinsymbolset doifinsymbolsetelse \
+doifintokselse doifintwopassdataelse doifitalicelse doiflanguageelse doiflayerdataelse \
+doiflayoutdefinedelse doiflayoutsomelineelse doiflayouttextlineelse doifleapyearelse doiflistelse \
+doiflocationelse doiflocfileelse doifmainfloatbodyelse doifmarkingelse doifmeaningelse \
+doifmessageelse doifmode doifmodeelse doifnextbgroupcselse doifnextbgroupelse \
+doifnextcharelse doifnextoptionalcselse doifnextoptionalelse doifnextparenthesiselse doifnonzeropositiveelse \
+doifnot doifnotallcommon doifnotallmodes doifnotcommandhandler doifnotcommon \
+doifnotcounter doifnotdocumentargument doifnotdocumentfilename doifnotdocumentvariable doifnotempty \
+doifnotemptyvalue doifnotemptyvariable doifnotenv doifnoteonsamepageelse doifnotescollected \
+doifnotfile doifnotflagged doifnothing doifnothingelse doifnotinset \
+doifnotinsidesplitfloat doifnotinstring doifnotmode doifnotnumber doifnotsamestring \
+doifnotsetups doifnotvalue doifnotvariable doifnumber doifnumberelse \
+doifobjectfoundelse doifobjectreferencefoundelse doifoddpageelse doifoddpagefloatelse doifoldercontextelse \
+doifolderversionelse doifoutervmode doifoverlappingelse doifoverlayelse doifparallelelse \
+doifparentfileelse doifpathelse doifpathexistselse doifpatternselse doifposition \
+doifpositionaction doifpositionactionelse doifpositionelse doifpositiononpageelse doifpositionsonsamepageelse \
+doifpositionsonthispageelse doifpositionsusedelse doifreferencefoundelse doifrightpageelse doifrightpagefloatelse \
+doifrighttoleftinboxelse doifsamelinereferenceelse doifsamestring doifsamestringelse doifsetups \
+doifsetupselse doifsomebackground doifsomebackgroundelse doifsomespaceelse doifsomething \
+doifsomethingelse doifsometoks doifsometokselse doifstringinstringelse doifstructurelisthasnumberelse \
+doifstructurelisthaspageelse doifsymboldefinedelse doifsymbolsetelse doiftext doiftextelse \
+doiftextflowcollectorelse doiftextflowelse doiftopofpageelse doiftypingfileelse doifundefined \
+doifundefinedcounter doifundefinedelse doifunknownfontfeature doifurldefinedelse doifvalue \
+doifvalueelse doifvaluenothing doifvaluenothingelse doifvaluesomething doifvariable \
+doifvariableelse doindentation dollar doloop doloopoverlist \
+donothing dontconvertfont dontleavehmode dontpermitspacesbetweengroups dopositionaction \
+doprocesslocalsetups doquadrupleargument doquadrupleempty doquadruplegroupempty doquintupleargument \
+doquintupleempty doquintuplegroupempty dorechecknextindentation dorecurse dorepeatwithcommand \
+doreplacefeature doresetandafffeature doresetattribute dorotatebox dosetattribute \
+dosetleftskipadaption dosetrightskipadaption dosetupcheckedinterlinespace doseventupleargument doseventupleempty \
+dosingleargument dosingleempty dosinglegroupempty dosixtupleargument dosixtupleempty \
+dosomebreak dostepwiserecurse dosubtractfeature dot doteq \
+doteqdot dotfill dotfskip dotlessI dotlessJ \
+dotlessi dotlessj dotlessjstroke dotminus dotoks \
+dotplus dotripleargument dotripleargumentwithset dotripleempty dotripleemptywithset \
+dotriplegroupempty dots dottedcircle dottedrightarrow doublebar \
+doublebond doublebrace doublebracket doublecap doublecup \
+doubleparent doubleprime doubleverticalbar dowith dowithnextbox \
+dowithnextboxcontent dowithnextboxcontentcs dowithnextboxcs dowithpargument dowithrange \
+dowithwargument downarrow downdasharrow downdownarrows downharpoonleft \
+downharpoonright downuparrows downwhitearrow downzigzagarrow dpofstring \
+dstroke dtail dummydigit dummyparameter dzcaronligature \
+dzligature eTeX eacute ebreve ecaron \
+ecedilla ecircumflex ecircumflexacute ecircumflexdotbelow ecircumflexgrave \
+ecircumflexhook ecircumflextilde edefconvertedargument ediaeresis edotaccent \
+edotbelow edoublegrave ee efcmaxheight efcmaxwidth \
+efcminheight efcminwidth efcparameter effect egrave \
+ehook einvertedbreve elapsedseconds elapsedsteptime elapsedtime \
+eleftarrowfill eleftharpoondownfill eleftharpoonupfill eleftrightarrowfill ell \
+em emacron emdash emphasisboldface emphasistypeface \
+emptylines emptyset emquad emspace enableasciimode \
+enabledirectives enableexperiments enablemode enableoutputstream enableparpositions \
+enableregime enabletrackers endash endnote enquad \
+enskip enspace env environment envvar \
+eogonek eoverbarfill eoverbracefill eoverbracketfill eoverparentfill \
+epos epsilon eq eqcirc eqeq \
+eqeqeq eqgtr eqless eqsim eqslantgtr \
+eqslantless equaldigits equalscolon equiv erightarrowfill \
+erightharpoondownfill erightharpoonupfill eta eth ethiopic \
+etilde etwoheadrightarrowfill eunderbarfill eunderbracefill eunderbracketfill \
+eunderparentfill exclamdown executeifdefined exists exitloop \
+exitloopnow expandcheckedcsname expanded expandeddoif expandeddoifelse \
+expandeddoifnot expandfontsynonym expdoif expdoifcommonelse expdoifelse \
+expdoifelsecommon expdoifelseinset expdoifinsetelse expdoifnot exponentiale \
+externalfigure externalfigurecollectionmaxheight externalfigurecollectionmaxwidth externalfigurecollectionminheight externalfigurecollectionminwidth \
+externalfigurecollectionparameter fakebox fallingdotseq fastdecrement fastincrement \
+fastlocalframed fastloopfinal fastloopindex fastscale fastsetup \
+fastsetupwithargument fastsetupwithargumentswapped fastswitchtobodyfont fastsxsy feature \
+fence fenced fetchallmarkings fetchallmarks fetchmark \
+fetchmarking fetchonemark fetchonemarking fetchruntinecommand fetchtwomarkings \
+fetchtwomarks ffiligature ffligature fflligature fhook \
+field fieldbody fieldstack fifthoffivearguments fifthofsixarguments \
+figurefilename figurefilepath figurefiletype figurefullname figureheight \
+figurenaturalheight figurenaturalwidth figurespace figuresymbol figurewidth \
+filename filigature filledhboxb filledhboxc filledhboxg \
+filledhboxk filledhboxm filledhboxr filledhboxy filler \
+fillinline fillinrules fillintext fillupto filterfromnext \
+filterfromvalue filterpages filterreference findtwopassdata finishregisterentry \
+firstcharacter firstcounter firstcountervalue firstinlist firstoffivearguments \
+firstoffourarguments firstofoneargument firstofoneunexpanded firstofsixarguments firstofthreearguments \
+firstofthreeunexpanded firstoftwoarguments firstoftwounexpanded firstrealpage firstrealpagenumber \
+firstsubcountervalue firstsubpage firstsubpagenumber firstuserpage firstuserpagenumber \
+fitfield fitfieldframed fittopbaselinegrid fiveeighths fivesixths \
+fixedspace fixedspaces flag flat flligature \
+floatuserdataparameter flushbox flushboxregister flushcollector flushedrightlastline \
+flushlayer flushlocalfloats flushnextbox flushnotes flushoutputstream \
+flushshapebox flushtextflow flushtokens flushtoks fontalternative \
+fontbody fontchar fontcharbyindex fontclass fontclassname \
+fontface fontfeaturelist fontsize fontstyle footnote \
+footnotetext forall forcecharacterstripping forcelocalfloats forgeteverypar \
+forgetparagraphfreezing forgetparameters forgetparskip forgetparwrapper forgetragged \
+formula formulanumber foundbox fourfifths fourperemspace \
+fourthoffivearguments fourthoffourarguments fourthofsixarguments frac framed \
+frameddimension framedparameter framedtext freezedimenmacro freezemeasure \
+freezeparagraphproperties frenchspacing from fromlinenote frown \
+frozenhbox frule gacute gamma gbreve \
+gcaron gcircumflex gcommaaccent gdefconvertedargument gdefconvertedcommand \
+gdotaccent ge geq geqq geqslant \
+getMPdrawing getMPlayer getboxfromcache getboxllx getboxlly \
+getbuffer getbufferdata getcommacommandsize getcommalistsize getdatavalue \
+getdayoftheweek getdayspermonth getdefinedbuffer getdocumentargument getdocumentargumentdefault \
+getdocumentfilename getdummyparameters getemptyparameters geteparameters getexpandedparameters \
+getfiguredimensions getfirstcharacter getfirsttwopassdata getfromcommacommand getfromcommalist \
+getfromluatable getfromtwopassdata getglyphdirect getglyphstyled getgparameters \
+getinlineuserdata getlasttwopassdata getlocalfloat getlocalfloats getmarking \
+getmessage getnamedglyphdirect getnamedglyphstyled getnamedtwopassdatalist getnaturaldimensions \
+getnoflines getobject getobjectdimensions getpaletsize getparameters \
+getparwrapper getprivatechar getprivateslot getrandomcount getrandomdimen \
+getrandomfloat getrandomnumber getrandomseed getraweparameters getrawgparameters \
+getrawnoflines getrawparameters getrawxparameters getreference getreferenceentry \
+getroundednoflines gets getsubstring gettokenlist gettwopassdata \
+gettwopassdatalist getuserdata getuvalue getvalue getvariable \
+getvariabledefault getxparameters gg ggg gggtr \
+gimel globaldisablemode globalenablemode globalletempty globalpopbox \
+globalpopmacro globalpreventmode globalprocesscommalist globalpushbox globalpushmacro \
+globalswapcounts globalswapdimens globalswapmacros globalundefine glyphfontfile \
+gnapprox gneqq gnsim gobbledoubleempty gobbleeightarguments \
+gobblefivearguments gobblefiveoptionals gobblefourarguments gobblefouroptionals gobbleninearguments \
+gobbleoneargument gobbleoneoptional gobblesevenarguments gobblesingleempty gobblesixarguments \
+gobblespacetokens gobbletenarguments gobblethreearguments gobblethreeoptionals gobbletwoarguments \
+gobbletwooptionals gobbleuntil gobbleuntilrelax godown goto \
+gotobox gotopage grabbufferdata grabbufferdatadirect grabuntil \
+grave graycolor grayvalue greedysplitstring greekAlpha \
+greekAlphadasia greekAlphadasiaperispomeni greekAlphadasiatonos greekAlphadasiavaria greekAlphaiotasub \
+greekAlphaiotasubdasia greekAlphaiotasubdasiaperispomeni greekAlphaiotasubdasiatonos greekAlphaiotasubdasiavaria greekAlphaiotasubpsili \
+greekAlphaiotasubpsiliperispomeni greekAlphaiotasubpsilitonos greekAlphaiotasubpsilivaria greekAlphamacron greekAlphapsili \
+greekAlphapsiliperispomeni greekAlphapsilitonos greekAlphapsilivaria greekAlphatonos greekAlphavaria \
+greekAlphavrachy greekBeta greekChi greekCoronis greekDelta \
+greekEpsilon greekEpsilondasia greekEpsilondasiatonos greekEpsilondasiavaria greekEpsilonpsili \
+greekEpsilonpsilitonos greekEpsilonpsilivaria greekEpsilontonos greekEpsilonvaria greekEta \
+greekEtadasia greekEtadasiaperispomeni greekEtadasiatonos greekEtadasiavaria greekEtaiotasub \
+greekEtaiotasubdasia greekEtaiotasubdasiaperispomeni greekEtaiotasubdasiatonos greekEtaiotasubdasiavaria greekEtaiotasubpsili \
+greekEtaiotasubpsiliperispomeni greekEtaiotasubpsilitonos greekEtaiotasubpsilivaria greekEtapsili greekEtapsiliperispomeni \
+greekEtapsilitonos greekEtapsilivaria greekEtatonos greekEtavaria greekGamma \
+greekIota greekIotadasia greekIotadasiaperispomeni greekIotadasiatonos greekIotadasiavaria \
+greekIotadialytika greekIotamacron greekIotapsili greekIotapsiliperispomeni greekIotapsilitonos \
+greekIotapsilivaria greekIotatonos greekIotavaria greekIotavrachy greekKappa \
+greekLambda greekMu greekNu greekOmega greekOmegadasia \
+greekOmegadasiaperispomeni greekOmegadasiatonos greekOmegadasiavaria greekOmegaiotasub greekOmegaiotasubdasia \
+greekOmegaiotasubdasiaperispomeni greekOmegaiotasubdasiatonos greekOmegaiotasubdasiavaria greekOmegaiotasubpsili greekOmegaiotasubpsiliperispomeni \
+greekOmegaiotasubpsilitonos greekOmegaiotasubpsilivaria greekOmegapsili greekOmegapsiliperispomeni greekOmegapsilitonos \
+greekOmegapsilivaria greekOmegatonos greekOmegavaria greekOmicron greekOmicrondasia \
+greekOmicrondasiatonos greekOmicrondasiavaria greekOmicronpsili greekOmicronpsilitonos greekOmicronpsilivaria \
+greekOmicrontonos greekOmicronvaria greekPhi greekPi greekPsi \
+greekRho greekRhodasia greekSigma greekSigmalunate greekTau \
+greekTheta greekUpsilon greekUpsilondasia greekUpsilondasiaperispomeni greekUpsilondasiatonos \
+greekUpsilondasiavaria greekUpsilondialytika greekUpsilonmacron greekUpsilontonos greekUpsilonvaria \
+greekUpsilonvrachy greekXi greekZeta greekalpha greekalphadasia \
+greekalphadasiaperispomeni greekalphadasiatonos greekalphadasiavaria greekalphaiotasub greekalphaiotasubdasia \
+greekalphaiotasubdasiaperispomeni greekalphaiotasubdasiatonos greekalphaiotasubdasiavaria greekalphaiotasubperispomeni greekalphaiotasubpsili \
+greekalphaiotasubpsiliperispomeni greekalphaiotasubpsilitonos greekalphaiotasubpsilivaria greekalphaiotasubtonos greekalphaiotasubvaria \
+greekalphamacron greekalphaoxia greekalphaperispomeni greekalphapsili greekalphapsiliperispomeni \
+greekalphapsilitonos greekalphapsilivaria greekalphatonos greekalphavaria greekalphavrachy \
+greekbeta greekbetaalt greekchi greekdasia greekdasiaperispomeni \
+greekdasiavaria greekdelta greekdialytikaperispomeni greekdialytikatonos greekdialytikavaria \
+greekdigamma greekepsilon greekepsilonalt greekepsilondasia greekepsilondasiatonos \
+greekepsilondasiavaria greekepsilonoxia greekepsilonpsili greekepsilonpsilitonos greekepsilonpsilivaria \
+greekepsilontonos greekepsilonvaria greeketa greeketadasia greeketadasiaperispomeni \
+greeketadasiatonos greeketadasiavaria greeketaiotasub greeketaiotasubdasia greeketaiotasubdasiaperispomeni \
+greeketaiotasubdasiatonos greeketaiotasubdasiavaria greeketaiotasubperispomeni greeketaiotasubpsili greeketaiotasubpsiliperispomeni \
+greeketaiotasubpsilitonos greeketaiotasubpsilivaria greeketaiotasubtonos greeketaiotasubvaria greeketaoxia \
+greeketaperispomeni greeketapsili greeketapsiliperispomeni greeketapsilitonos greeketapsilivaria \
+greeketatonos greeketavaria greekfinalsigma greekgamma greekiota \
+greekiotadasia greekiotadasiaperispomeni greekiotadasiatonos greekiotadasiavaria greekiotadialytika \
+greekiotadialytikaperispomeni greekiotadialytikatonos greekiotadialytikavaria greekiotamacron greekiotaoxia \
+greekiotaperispomeni greekiotapsili greekiotapsiliperispomeni greekiotapsilitonos greekiotapsilivaria \
+greekiotatonos greekiotavaria greekiotavrachy greekkappa greekkoppa \
+greeklambda greekmu greeknu greeknumerals greeknumkoppa \
+greekomega greekomegadasia greekomegadasiaperispomeni greekomegadasiatonos greekomegadasiavaria \
+greekomegaiotasub greekomegaiotasubdasia greekomegaiotasubdasiaperispomeni greekomegaiotasubdasiatonos greekomegaiotasubdasiavaria \
+greekomegaiotasubperispomeni greekomegaiotasubpsili greekomegaiotasubpsiliperispomeni greekomegaiotasubpsilitonos greekomegaiotasubpsilivaria \
+greekomegaiotasubtonos greekomegaiotasubvaria greekomegaoxia greekomegaperispomeni greekomegapsili \
+greekomegapsiliperispomeni greekomegapsilitonos greekomegapsilivaria greekomegatonos greekomegavaria \
+greekomicron greekomicrondasia greekomicrondasiatonos greekomicrondasiavaria greekomicronoxia \
+greekomicronpsili greekomicronpsilitonos greekomicronpsilivaria greekomicrontonos greekomicronvaria \
+greekoxia greekperispomeni greekphi greekphialt greekpi \
+greekpialt greekprosgegrammeni greekpsi greekpsili greekpsiliperispomeni \
+greekpsilivaria greekrho greekrhoalt greekrhodasia greekrhopsili \
+greeksampi greeksigma greeksigmalunate greekstigma greektau \
+greektheta greekthetaalt greektonos greekupsilon greekupsilondasia \
+greekupsilondasiaperispomeni greekupsilondasiatonos greekupsilondasiavaria greekupsilondiaeresis greekupsilondialytikaperispomeni \
+greekupsilondialytikatonos greekupsilondialytikavaria greekupsilonmacron greekupsilonoxia greekupsilonperispomeni \
+greekupsilonpsili greekupsilonpsiliperispomeni greekupsilonpsilitonos greekupsilonpsilivaria greekupsilontonos \
+greekupsilonvaria greekupsilonvrachy greekvaria greekxi greekzeta \
+grid groupedcommand gsetboxllx gsetboxlly gstroke \
+gt gtrapprox gtrdot gtreqless gtreqqless \
+gtrless gtrsim guilsingleleft guilsingleright gujaratinumerals \
+gurmurkhinumerals hairline hairspace halflinestrut halfstrut \
+halfwaybox handletokens handwritten hangul hanzi \
+hash hat hbar hboxofvbox hboxreference \
+hcaron hcircumflex hdofstring headhbox headlanguage \
+headnumber headnumbercontent headnumberdistance headnumberwidth headreferenceattributes \
+headsetupspacing headtext headtextcontent headtextdistance headtexts \
+headtextwidth headvbox headwidth heartsuit hebrewAlef \
+hebrewAyin hebrewBet hebrewDalet hebrewGimel hebrewHe \
+hebrewHet hebrewKaf hebrewKaffinal hebrewLamed hebrewMem \
+hebrewMemfinal hebrewNun hebrewNunfinal hebrewPe hebrewPefinal \
+hebrewQof hebrewResh hebrewSamekh hebrewShin hebrewTav \
+hebrewTet hebrewTsadi hebrewTsadifinal hebrewVav hebrewYod \
+hebrewZayin hebrewnumerals heightanddepthofstring heightofstring heightspanningtext \
+helptext hexnumber hexstringtonumber hglue hiddenbar \
+hiddencitation hiddencite hideblocks high highlight \
+highordinalstr hilo himilo hl hookleftarrow \
+hookrightarrow horizontalgrowingbar horizontalpositionbar hpackbox hpackedbox \
+hphantom hpos hsizefraction hslash hsmash \
+hsmashbox hsmashed hspace hstroke htdpofstring \
+htofstring hyphen hyphenatedcoloredword hyphenatedfile hyphenatedfilename \
+hyphenatedhbox hyphenatedpar hyphenatedurl hyphenatedword iacute \
+ibox ibreve icaron icircumflex ideographichalffillspace \
+ideographicspace idiaeresis idotaccent idotbelow idoublegrave \
+idxfromluatable ifassignment iff ifinobject ifinoutputstream \
+ifparameters iftrialtypesetting ignoreimplicitspaces ignoretagsinexport ignorevalue \
+igrave ihook ii iiiint iiiintop \
+iiint iiintop iint iintop iinvertedbreve \
+ijligature imacron imaginaryi imaginaryj imath \
+immediatesavetwopassdata impliedby implies imply in \
+includemenu includesvgbuffer includesvgfile includeversioninfo increment \
+incrementcounter incrementedcounter incrementpagenumber incrementsubpagenumber incrementvalue \
+indentation index infofont infofontbold inframed \
+infty infull inheritparameter inhibitblank ininner \
+ininneredge ininnermargin initializeboxstack inleft inleftedge \
+inleftmargin inline inlinebuffer inlinedbox inlinemath \
+inlinemathematics inlinemessage inlineordisplaymath inlineprettyprintbuffer inlinerange \
+inmargin inmframed innerflushshapebox inother inouter \
+inouteredge inoutermargin input inputfilebarename inputfilename \
+inputfilerealsuffix inputfilesuffix inputgivenfile inright inrightedge \
+inrightmargin insertpages inspectluatable installactionhandler installactivecharacter \
+installanddefineactivecharacter installattributestack installautocommandhandler installautosetuphandler installbasicautosetuphandler \
+installbasicparameterhandler installbottomframerenderer installcommandhandler installcorenamespace installctxfunction \
+installctxscanner installdefinehandler installdefinitionset installdefinitionsetmember installdirectcommandhandler \
+installdirectparameterhandler installdirectparametersethandler installdirectsetuphandler installdirectstyleandcolorhandler installframedautocommandhandler \
+installframedcommandhandler installglobalmacrostack installlanguage installleftframerenderer installmacrostack \
+installnamespace installoutputroutine installpagearrangement installparameterhandler installparameterhashhandler \
+installparametersethandler installparentinjector installprotectedctxfunction installprotectedctxscanner installrightframerenderer \
+installrootparameterhandler installsetuphandler installsetuponlycommandhandler installshipoutmethod installsimplecommandhandler \
+installsimpleframedcommandhandler installstyleandcolorhandler installswitchcommandhandler installswitchsetuphandler installtexdirective \
+installtextracker installtopframerenderer installunitsseparator installunitsspace installversioninfo \
+int intclockwise integerrounding integers interactionbar \
+interactionbuttons interactionmenu intercal intertext interwordspaceafter \
+interwordspacebefore interwordspaces interwordspacesafter interwordspacesbefore intop \
+invisibletimes invokepagehandler iogonek iota italic \
+italicbold italiccorrection italicface item items \
+itemtag itilde jcaron jcircumflex ji \
jmath jobfilename jobfilesuffix kap kappa \
kcaron kcommaaccent keepblocks keeplinestogether keepunwantedspaces \
kerncharacters khook kkra koreancirclenumerals koreannumerals \
@@ -1229,44 +1230,44 @@ verticalpositionbar veryraggedcenter veryraggedleft veryraggedright vglue \
viewerlayer vl vpackbox vpackedbox vphantom \
vpos vsmash vsmashbox vsmashed vspace \
vspacing wcircumflex wdofstring wedge wedgeeq \
-weekday whitearrowupfrombar widehat widetilde widthofstring \
-widthspanningtext withoutpt word wordright words \
-wordtonumber wp wr writebetweenlist writedatatolist \
-writestatus writetolist xLeftarrow xLeftrightarrow xRightarrow \
-xdefconvertedargument xequal xfrac xhookleftarrow xhookrightarrow \
-xi xleftarrow xleftharpoondown xleftharpoonup xleftrightarrow \
-xleftrightharpoons xmapsto xmladdindex xmlafterdocumentsetup xmlaftersetup \
-xmlall xmlappenddocumentsetup xmlappendsetup xmlapplyselectors xmlatt \
-xmlattdef xmlattribute xmlattributedef xmlbadinclusions xmlbeforedocumentsetup \
-xmlbeforesetup xmlchainatt xmlchainattdef xmlchecknamespace xmlcommand \
-xmlconcat xmlconcatrange xmlcontext xmlcount xmldefaulttotext \
-xmldepth xmldirectives xmldirectivesafter xmldirectivesbefore xmldisplayverbatim \
-xmldoif xmldoifatt xmldoifelse xmldoifelseatt xmldoifelseempty \
-xmldoifelseselfempty xmldoifelsetext xmldoifelsevalue xmldoifnot xmldoifnotatt \
-xmldoifnotselfempty xmldoifnottext xmldoifselfempty xmldoiftext xmlelement \
-xmlfilter xmlfirst xmlflush xmlflushcontext xmlflushdocumentsetups \
-xmlflushlinewise xmlflushpure xmlflushspacewise xmlflushtext xmlinclude \
-xmlinclusion xmlinclusions xmlinfo xmlinjector xmlinlineprettyprint \
-xmlinlineprettyprinttext xmlinlineverbatim xmlinstalldirective xmllast xmllastatt \
-xmllastmatch xmllastpar xmlloadbuffer xmlloaddata xmlloaddirectives \
-xmlloadfile xmlloadonly xmlmain xmlmapvalue xmlname \
-xmlnamespace xmlnonspace xmlpar xmlparam xmlpath \
-xmlpos xmlposition xmlprependdocumentsetup xmlprependsetup xmlprettyprint \
-xmlprettyprinttext xmlprocessbuffer xmlprocessdata xmlprocessfile xmlpure \
-xmlraw xmlrefatt xmlregistereddocumentsetups xmlregisteredsetups xmlregisterns \
-xmlremapname xmlremapnamespace xmlremovedocumentsetup xmlremovesetup xmlresetdocumentsetups \
-xmlresetinjectors xmlresetsetups xmlsave xmlsetatt xmlsetattribute \
-xmlsetentity xmlsetfunction xmlsetinjectors xmlsetpar xmlsetparam \
-xmlsetsetup xmlsetup xmlshow xmlsnippet xmlstrip \
-xmlstripnolines xmlstripped xmlstrippednolines xmltag xmltexentity \
-xmltext xmltobuffer xmltobufferverbose xmltofile xmlvalue \
-xmlverbatim xrel xrightarrow xrightharpoondown xrightharpoonup \
-xrightleftharpoons xrightoverleftarrow xsplitstring xtriplerel xtwoheadleftarrow \
-xtwoheadrightarrow xxfrac xypos yacute ycircumflex \
-ydiaeresis ydotbelow yen ygrave yhook \
-yiddishnumerals ymacron ytilde zacute zcaron \
-zdotaccent zeronumberconversion zerowidthnobreakspace zerowidthspace zeta \
-zhook zstroke zwj zwnj
+weekday whitearrowupfrombar widegrave widehat widetilde \
+widthofstring widthspanningtext withoutpt word wordright \
+words wordtonumber wp wr writebetweenlist \
+writedatatolist writestatus writetolist xLeftarrow xLeftrightarrow \
+xRightarrow xdefconvertedargument xequal xfrac xhookleftarrow \
+xhookrightarrow xi xleftarrow xleftharpoondown xleftharpoonup \
+xleftrightarrow xleftrightharpoons xmapsto xmladdindex xmlafterdocumentsetup \
+xmlaftersetup xmlall xmlappenddocumentsetup xmlappendsetup xmlapplyselectors \
+xmlatt xmlattdef xmlattribute xmlattributedef xmlbadinclusions \
+xmlbeforedocumentsetup xmlbeforesetup xmlchainatt xmlchainattdef xmlchecknamespace \
+xmlcommand xmlconcat xmlconcatrange xmlcontext xmlcount \
+xmldefaulttotext xmldepth xmldirectives xmldirectivesafter xmldirectivesbefore \
+xmldisplayverbatim xmldoif xmldoifatt xmldoifelse xmldoifelseatt \
+xmldoifelseempty xmldoifelseselfempty xmldoifelsetext xmldoifelsevalue xmldoifnot \
+xmldoifnotatt xmldoifnotselfempty xmldoifnottext xmldoifselfempty xmldoiftext \
+xmlelement xmlfilter xmlfirst xmlflush xmlflushcontext \
+xmlflushdocumentsetups xmlflushlinewise xmlflushpure xmlflushspacewise xmlflushtext \
+xmlinclude xmlinclusion xmlinclusions xmlinfo xmlinjector \
+xmlinlineprettyprint xmlinlineprettyprinttext xmlinlineverbatim xmlinstalldirective xmllast \
+xmllastatt xmllastmatch xmllastpar xmlloadbuffer xmlloaddata \
+xmlloaddirectives xmlloadfile xmlloadonly xmlmain xmlmapvalue \
+xmlname xmlnamespace xmlnonspace xmlpar xmlparam \
+xmlpath xmlpos xmlposition xmlprependdocumentsetup xmlprependsetup \
+xmlprettyprint xmlprettyprinttext xmlprocessbuffer xmlprocessdata xmlprocessfile \
+xmlpure xmlraw xmlrefatt xmlregistereddocumentsetups xmlregisteredsetups \
+xmlregisterns xmlremapname xmlremapnamespace xmlremovedocumentsetup xmlremovesetup \
+xmlresetdocumentsetups xmlresetinjectors xmlresetsetups xmlsave xmlsetatt \
+xmlsetattribute xmlsetentity xmlsetfunction xmlsetinjectors xmlsetpar \
+xmlsetparam xmlsetsetup xmlsetup xmlshow xmlsnippet \
+xmlstrip xmlstripnolines xmlstripped xmlstrippednolines xmltag \
+xmltexentity xmltext xmltobuffer xmltobufferverbose xmltofile \
+xmlvalue xmlverbatim xrel xrightarrow xrightharpoondown \
+xrightharpoonup xrightleftharpoons xrightoverleftarrow xsplitstring xtriplerel \
+xtwoheadleftarrow xtwoheadrightarrow xxfrac xypos yacute \
+ycircumflex ydiaeresis ydotbelow yen ygrave \
+yhook yiddishnumerals ymacron ytilde zacute \
+zcaron zdotaccent zeronumberconversion zerowidthnobreakspace zerowidthspace \
+zeta zhook zstroke zwj zwnj
keywordclass.context.en=\
diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties
index 1c2967c5c..a663dfba2 100644
--- a/context/data/scite/context/scite-context-data-tex.properties
+++ b/context/data/scite/context/scite-context-data-tex.properties
@@ -16,118 +16,110 @@ tracingassigns tracinggroups tracingifs tracinglevels tracingnesting \
unexpanded unless widowpenalties
keywordclass.tex.luatex=\
-UUskewed UUskewedwithdelims Uabove Uabovewithdelims \
-Uatop Uatopwithdelims Uchar Udelcode Udelcodenum \
-Udelimiter Udelimiterover Udelimiterunder Uhextensible Uleft \
-Umathaccent Umathaccentbaseheight Umathaccentvariant Umathadapttoleft Umathadapttoright \
-Umathaxis Umathbinbinspacing Umathbinclosespacing Umathbinfracspacing Umathbininnerspacing \
-Umathbinopenspacing Umathbinopspacing Umathbinordspacing Umathbinpunctspacing Umathbinradspacing \
-Umathbinrelspacing Umathbotaccentvariant Umathchar Umathcharclass Umathchardef \
-Umathcharfam Umathcharnum Umathcharnumdef Umathcharslot Umathclass \
-Umathclosebinspacing Umathcloseclosespacing Umathclosefracspacing Umathcloseinnerspacing Umathcloseopenspacing \
-Umathcloseopspacing Umathcloseordspacing Umathclosepunctspacing Umathcloseradspacing Umathcloserelspacing \
-Umathcode Umathcodenum Umathconnectoroverlapmin Umathdegreevariant Umathdelimiterovervariant \
-Umathdelimiterundervariant Umathdenominatorvariant Umathextrasubpreshift Umathextrasubprespace Umathextrasubshift \
-Umathextrasubspace Umathextrasuppreshift Umathextrasupprespace Umathextrasupshift Umathextrasupspace \
-Umathfracbinspacing Umathfracclosespacing Umathfracfracspacing Umathfracinnerspacing Umathfracopenspacing \
-Umathfracopspacing Umathfracordspacing Umathfracpunctspacing Umathfracradspacing Umathfracrelspacing \
-Umathfractiondelsize Umathfractiondenomdown Umathfractiondenomvgap Umathfractionnumup Umathfractionnumvgap \
-Umathfractionrule Umathfractionvariant Umathhextensiblevariant Umathinnerbinspacing Umathinnerclosespacing \
-Umathinnerfracspacing Umathinnerinnerspacing Umathinneropenspacing Umathinneropspacing Umathinnerordspacing \
-Umathinnerpunctspacing Umathinnerradspacing Umathinnerrelspacing Umathlimitabovebgap Umathlimitabovekern \
-Umathlimitabovevgap Umathlimitbelowbgap Umathlimitbelowkern Umathlimitbelowvgap Umathlimits \
-Umathnoaxis Umathnolimits Umathnolimitsubfactor Umathnolimitsupfactor Umathnumeratorvariant \
-Umathopbinspacing Umathopclosespacing Umathopenbinspacing Umathopenclosespacing Umathopenfracspacing \
-Umathopeninnerspacing Umathopenopenspacing Umathopenopspacing Umathopenordspacing Umathopenpunctspacing \
-Umathopenradspacing Umathopenrelspacing Umathopenupdepth Umathopenupheight Umathoperatorsize \
-Umathopfracspacing Umathopinnerspacing Umathopopenspacing Umathopopspacing Umathopordspacing \
-Umathoppunctspacing Umathopradspacing Umathoprelspacing Umathordbinspacing Umathordclosespacing \
-Umathordfracspacing Umathordinnerspacing Umathordopenspacing Umathordopspacing Umathordordspacing \
-Umathordpunctspacing Umathordradspacing Umathordrelspacing Umathoverbarkern Umathoverbarrule \
-Umathoverbarvgap Umathoverdelimiterbgap Umathoverdelimitervariant Umathoverdelimitervgap Umathoverlayaccentvariant \
-Umathoverlinevariant Umathphantom Umathpunctbinspacing Umathpunctclosespacing Umathpunctfracspacing \
-Umathpunctinnerspacing Umathpunctopenspacing Umathpunctopspacing Umathpunctordspacing Umathpunctpunctspacing \
-Umathpunctradspacing Umathpunctrelspacing Umathquad Umathradbinspacing Umathradclosespacing \
-Umathradfracspacing Umathradicaldegreeafter Umathradicaldegreebefore Umathradicaldegreeraise Umathradicalkern \
-Umathradicalrule Umathradicalvariant Umathradicalvgap Umathradinnerspacing Umathradopenspacing \
-Umathradopspacing Umathradordspacing Umathradpunctspacing Umathradradspacing Umathradrelspacing \
-Umathrelbinspacing Umathrelclosespacing Umathrelfracspacing Umathrelinnerspacing Umathrelopenspacing \
-Umathrelopspacing Umathrelordspacing Umathrelpunctspacing Umathrelradspacing Umathrelrelspacing \
-Umathskewedfractionhgap Umathskewedfractionvgap Umathspaceafterscript Umathspacebeforescript Umathspacingmode \
-Umathstackdenomdown Umathstacknumup Umathstackvariant Umathstackvgap Umathsubscriptvariant \
-Umathsubshiftdown Umathsubshiftdrop Umathsubsupshiftdown Umathsubsupvgap Umathsubtopmax \
-Umathsupbottommin Umathsuperscriptvariant Umathsupshiftdrop Umathsupshiftup Umathsupsubbottommax \
-Umathtopaccentvariant Umathunderbarkern Umathunderbarrule Umathunderbarvgap Umathunderdelimiterbgap \
-Umathunderdelimitervariant Umathunderdelimitervgap Umathunderlinevariant Umathvextensiblevariant Umathvoid \
+Uabove Uabovewithdelims Uatop Uatopwithdelims \
+Uchar Udelcode Udelcodenum Udelimiter Udelimiterover \
+Udelimiterunder Uhextensible Uleft Umathaccent Umathaccentbaseheight \
+Umathaccentvariant Umathadapttoleft Umathadapttoright Umathaxis Umathbotaccentvariant \
+Umathchar Umathcharclass Umathchardef Umathcharfam Umathcharnum \
+Umathcharnumdef Umathcharslot Umathclass Umathcode Umathcodenum \
+Umathconnectoroverlapmin Umathdegreevariant Umathdelimiterovervariant Umathdelimiterundervariant Umathdenominatorvariant \
+Umathextrasubpreshift Umathextrasubprespace Umathextrasubshift Umathextrasubspace Umathextrasuppreshift \
+Umathextrasupprespace Umathextrasupshift Umathextrasupspace Umathfractiondelsize Umathfractiondenomdown \
+Umathfractiondenomvgap Umathfractionnumup Umathfractionnumvgap Umathfractionrule Umathfractionvariant \
+Umathhextensiblevariant Umathlimitabovebgap Umathlimitabovekern Umathlimitabovevgap Umathlimitbelowbgap \
+Umathlimitbelowkern Umathlimitbelowvgap Umathlimits Umathnoaxis Umathnolimits \
+Umathnolimitsubfactor Umathnolimitsupfactor Umathnumeratorvariant Umathopenupdepth Umathopenupheight \
+Umathoperatorsize Umathoverbarkern Umathoverbarrule Umathoverbarvgap Umathoverdelimiterbgap \
+Umathoverdelimitervariant Umathoverdelimitervgap Umathoverlayaccentvariant Umathoverlinevariant Umathphantom \
+Umathpresubshiftdistance Umathpresupshiftdistance Umathprimeraise Umathprimeshiftdrop Umathprimeshiftup \
+Umathprimesupspace Umathprimevariant Umathquad Umathradicaldegreeafter Umathradicaldegreebefore \
+Umathradicaldegreeraise Umathradicalkern Umathradicalrule Umathradicalvariant Umathradicalvgap \
+Umathruledepth Umathruleheight Umathskeweddelimitertolerance Umathskewedfractionhgap Umathskewedfractionvgap \
+Umathspaceafterscript Umathspacebeforescript Umathstackdenomdown Umathstacknumup Umathstackvariant \
+Umathstackvgap Umathsubscriptvariant Umathsubshiftdistance Umathsubshiftdown Umathsubshiftdrop \
+Umathsubsupshiftdown Umathsubsupvgap Umathsubtopmax Umathsupbottommin Umathsuperscriptvariant \
+Umathsupshiftdistance Umathsupshiftdrop Umathsupshiftup Umathsupsubbottommax Umathtopaccentvariant \
+Umathunderbarkern Umathunderbarrule Umathunderbarvgap Umathunderdelimiterbgap Umathunderdelimitervariant \
+Umathunderdelimitervgap Umathunderlinevariant Umathuseaxis Umathvextensiblevariant Umathvoid \
Umathxscale Umathyscale Umiddle Unosubprescript Unosubscript \
-Unosuperprescript Unosuperscript Uover Uoverdelimiter Uoverwithdelims \
-Uradical Uright Uroot Uskewed Uskewedwithdelims \
-Ustack Ustartdisplaymath Ustartmath Ustopdisplaymath Ustopmath \
-Ustyle Usubprescript Usubscript Usuperprescript Usuperscript \
-Uunderdelimiter Uvextensible adjustspacing adjustspacingshrink adjustspacingstep \
-adjustspacingstretch afterassigned aftergrouped aliased alignmark \
-aligntab allmathstyles allscriptstyles allsplitstyles alltextstyles \
+Unosuperprescript Unosuperscript Uoperator Uover Uoverdelimiter \
+Uoverwithdelims Uprimescript Uradical Uright Uroot \
+Ushiftedsubprescript Ushiftedsubscript Ushiftedsuperprescript Ushiftedsuperscript Uskewed \
+Uskewedwithdelims Ustack Ustartdisplaymath Ustartmath Ustopdisplaymath \
+Ustopmath Ustyle Usubprescript Usubscript Usuperprescript \
+Usuperscript Uunderdelimiter Uvextensible adjustspacing adjustspacingshrink \
+adjustspacingstep adjustspacingstretch afterassigned aftergrouped aliased \
+alignmark aligntab allcrampedstyles alldisplaystyles allmathstyles \
+allscriptscriptstyles allscriptstyles allsplitstyles alltextstyles alluncrampedstyles \
atendofgroup atendofgrouped attribute attributedef automaticdiscretionary \
automatichyphenpenalty automigrationmode autoparagraphmode begincsname beginlocalcontrol \
beginmathgroup beginsimplegroup boundary boxanchor boxanchors \
boxattribute boxdirection boxgeometry boxorientation boxshift \
boxsource boxtarget boxtotal boxxmove boxxoffset \
-boxymove boxyoffset catcodetable clearmarks crampeddisplaystyle \
-crampedscriptscriptstyle crampedscriptstyle crampedtextstyle csstring currentloopiterator \
-currentloopnesting currentmarks defcsname dimensiondef dimexpression \
-directlua edefcsname efcode endlocalcontrol endmathgroup \
-endsimplegroup enforced etoks etoksapp etokspre \
-everybeforepar everytab exceptionpenalty expand expandafterpars \
-expandafterspaces expandcstoken expanded expandedafter expandedloop \
-expandtoken explicitdiscretionary explicithyphenpenalty firstvalidlanguage flushmarks \
-fontid fontmathcontrol fontspecdef fontspecid fontspecifiedsize \
-fontspecscale fontspecxscale fontspecyscale fonttextcontrol formatname \
-frozen futurecsname futuredef futureexpand futureexpandis \
-futureexpandisap gdefcsname gleaders glet gletcsname \
-glettonothing gluespecdef glyphdatafield glyphoptions glyphscale \
-glyphscriptfield glyphscriptscale glyphscriptscriptscale glyphstatefield glyphtextscale \
-glyphxoffset glyphxscale glyphyoffset glyphyscale gtoksapp \
-gtokspre hccode hjcode hpack hyphenationmin \
-hyphenationmode ifabsdim ifabsnum ifarguments ifboolean \
-ifchkdim ifchknum ifcmpdim ifcmpnum ifcondition \
-ifcstok ifdimexpression ifdimval ifempty ifflags \
-ifhaschar ifhastok ifhastoks ifhasxtoks ifincsname \
-ifinsert ifmathparameter ifmathstyle ifnumexpression ifnumval \
-ifparameter ifparameters ifrelax iftok ignorearguments \
-ignorepars immediate immutable inherited initcatcodetable \
-insertbox insertcopy insertdepth insertdistance insertheight \
-insertheights insertlimit insertmaxdepth insertmode insertmultiplier \
-insertpenalty insertprogress insertstorage insertstoring insertunbox \
-insertuncopy insertwidth instance integerdef lastarguments \
-lastchkdim lastchknum lastnamedcs lastnodesubtype lastparcontext \
-leftmarginkern letcharcode letcsname letfrozen letprotected \
-lettonothing linedirection localbrokenpenalty localcontrol localcontrolled \
-localcontrolledloop localinterlinepenalty localleftbox localleftboxbox localmiddlebox \
-localmiddleboxbox localrightbox localrightboxbox lpcode luabytecode \
-luabytecodecall luacopyinputnodes luadef luaescapestring luafunction \
-luafunctioncall luatexbanner luatexrevision luatexversion mathcontrolmode \
-mathdelimitersmode mathdirection mathdisplayskipmode matheqnogapstep mathflattenmode \
-mathfontcontrol mathfrac mathlimitsmode mathnolimitsmode mathpenaltiesmode \
-mathrad mathrulesfam mathrulesmode mathrulethicknessmode mathscale \
-mathscriptboxmode mathscriptcharmode mathscriptsmode mathstyle mathsurroundmode \
-mathsurroundskip mugluespecdef mutable noaligned noboundary \
-nohrule norelax normalizelinemode nospaces novrule \
-numericscale numexpression orelse orphanpenalties orphanpenalty \
-orunless outputbox overloaded overloadmode pageboundary \
-pageboundarypenalty pagevsize parametercount parametermark parattribute \
-pardirection permanent postexhyphenchar posthyphenchar prebinoppenalty \
-predisplaygapfactor preexhyphenchar prehyphenchar prerelpenalty protrudechars \
-protrusionboundary pxdimen quitloop quitvmode retokenized \
-rightmarginkern rpcode savecatcodetable scantextokens semiexpanded \
-semiprotected setfontid shapingpenaltiesmode shapingpenalty snapshotpar \
-supmarkmode swapcsvalues tabsize textdirection thewithoutunit \
-todimension tointeger tokenized toksapp tokspre \
-tolerant tomathstyle toscaled tpack tracingadjusts \
-tracingalignments tracingexpressions tracingfonts tracingfullboxes tracinghyphenation \
-tracinginserts tracingmarks tracingmath tracingnodes undent \
-unexpandedloop unletfrozen unletprotected untraced vpack \
-wordboundary wrapuppar xdefcsname xtoks xtoksapp \
-xtokspre
+boxymove boxyoffset catcodetable clearmarks copymathatomrule \
+copymathparent copymathspacing crampeddisplaystyle crampedscriptscriptstyle crampedscriptstyle \
+crampedtextstyle csstring currentloopiterator currentloopnesting currentmarks \
+defcsname dimensiondef dimexpression directlua edefcsname \
+efcode endlocalcontrol endmathgroup endsimplegroup enforced \
+etoks etoksapp etokspre everybeforepar everytab \
+exceptionpenalty expand expandafterpars expandafterspaces expandcstoken \
+expanded expandedafter expandedloop expandtoken explicitdiscretionary \
+explicithyphenpenalty firstvalidlanguage flushmarks fontid fontmathcontrol \
+fontspecdef fontspecid fontspecifiedsize fontspecscale fontspecxscale \
+fontspecyscale fonttextcontrol formatname frozen futurecsname \
+futuredef futureexpand futureexpandis futureexpandisap gdefcsname \
+gleaders glet gletcsname glettonothing gluespecdef \
+glyphdatafield glyphoptions glyphscale glyphscriptfield glyphscriptscale \
+glyphscriptscriptscale glyphstatefield glyphtextscale glyphxoffset glyphxscale \
+glyphyoffset glyphyscale gtoksapp gtokspre hccode \
+hjcode hpack hyphenationmin hyphenationmode ifabsdim \
+ifabsnum ifarguments ifboolean ifchkdim ifchknum \
+ifcmpdim ifcmpnum ifcondition ifcstok ifdimexpression \
+ifdimval ifempty ifflags ifhaschar ifhastok \
+ifhastoks ifhasxtoks ifincsname ifinsert ifmathparameter \
+ifmathstyle ifnumexpression ifnumval ifparameter ifparameters \
+ifrelax iftok ignorearguments ignorepars immediate \
+immutable inherited initcatcodetable insertbox insertcopy \
+insertdepth insertdistance insertheight insertheights insertlimit \
+insertmaxdepth insertmode insertmultiplier insertpenalty insertprogress \
+insertstorage insertstoring insertunbox insertuncopy insertwidth \
+instance integerdef lastarguments lastchkdim lastchknum \
+lastleftclass lastloopiterator lastnamedcs lastnodesubtype lastparcontext \
+lastrightclass leftmarginkern letcharcode letcsname letfrozen \
+letmathatomrule letmathparent letmathspacing letprotected lettonothing \
+linedirection localbrokenpenalty localcontrol localcontrolled localcontrolledloop \
+localinterlinepenalty localleftbox localleftboxbox localmiddlebox localmiddleboxbox \
+localrightbox localrightboxbox lpcode luabytecode luabytecodecall \
+luacopyinputnodes luadef luaescapestring luafunction luafunctioncall \
+luatexbanner luatexrevision luatexversion mathaccent mathatom \
+mathatomskip mathbackwardpenalties mathcontrolmode mathdelimitersmode mathdirection \
+mathdisplayskipmode matheqnogapstep mathfenced mathfencesmode mathfontcontrol \
+mathforwardpenalties mathfrac mathghost mathlimitsmode mathmiddle \
+mathnolimitsmode mathpenaltiesmode mathrad mathrulesfam mathrulesmode \
+mathrulethicknessmode mathscale mathscriptboxmode mathscriptcharmode mathscriptsmode \
+mathslackmode mathspacingmode mathstackstyle mathstyle mathstylefontid \
+mathsurroundmode mathsurroundskip maththreshold mugluespecdef mutable \
+noaligned noboundary nohrule norelax normalizelinemode \
+nospaces novrule numericscale numexpression orelse \
+orphanpenalties orphanpenalty orunless outputbox overloaded \
+overloadmode pageboundary pageboundarypenalty pagevsize parametercount \
+parametermark parattribute pardirection permanent postexhyphenchar \
+posthyphenchar postinlinepenalty prebinoppenalty predisplaygapfactor preexhyphenchar \
+prehyphenchar preinlinepenalty prerelpenalty protrudechars protrusionboundary \
+pxdimen quitloop quitvmode resetmathspacing retokenized \
+rightmarginkern rpcode savecatcodetable scaledemwidth scaledexheight \
+scaledextraspace scaledinterwordshrink scaledinterwordspace scaledinterwordstretch scaledslantperpoint \
+scantextokens semiexpanded semiprotected setdefaultmathcodes setfontid \
+setmathatomrule setmathignore setmathoptions setmathpostpenalty setmathprepenalty \
+setmathspacing shapingpenaltiesmode shapingpenalty skewed skewedwithdelims \
+snapshotpar supmarkmode swapcsvalues tabsize textdirection \
+thewithoutunit todimension tointeger tokenized toksapp \
+tokspre tolerant tomathstyle toscaled tpack \
+tracingadjusts tracingalignments tracingexpressions tracingfonts tracingfullboxes \
+tracinghyphenation tracinginserts tracingmarks tracingmath tracingnodes \
+uleaders undent unexpandedloop unletfrozen unletprotected \
+untraced vpack wordboundary wrapuppar xdefcsname \
+xtoks xtoksapp xtokspre
keywordclass.tex.omega=\
Omegaminorversion Omegarevision Omegaversion
@@ -190,40 +182,40 @@ language lastbox lastkern lastpenalty lastskip \
lccode leaders left lefthyphenmin leftskip \
leqno let limits linepenalty lineskip \
lineskiplimit long looseness lower lowercase \
-mark mathaccent mathbin mathchar mathchardef \
-mathchoice mathclose mathcode mathinner mathop \
-mathopen mathord mathpunct mathrel mathsurround \
-maxdeadcycles maxdepth meaning meaningasis meaningfull \
-meaningless medmuskip message middle mkern \
-month moveleft moveright mskip multiply \
-muskip muskipdef newlinechar noalign noexpand \
-noindent nolimits nonscript nonstopmode nulldelimiterspace \
-nullfont number omit or outer \
-output outputpenalty over overfullrule overline \
-overshoot overwithdelims pagedepth pagefilllstretch pagefillstretch \
-pagefilstretch pagegoal pageshrink pagestretch pagetotal \
-par parfillleftskip parfillskip parindent parshape \
-parskip patterns pausing penalty postdisplaypenalty \
-predisplaypenalty predisplaysize pretolerance prevdepth prevgraf \
-radical raise relax relpenalty right \
-righthyphenmin rightskip romannumeral scaledfontdimen scriptfont \
-scriptscriptfont scriptscriptstyle scriptspace scriptstyle scrollmode \
-setbox setlanguage sfcode shipout show \
-showbox showboxbreadth showboxdepth showlists shownodedetails \
-showthe skewchar skip skipdef spacefactor \
-spaceskip span splitbotmark splitfirstmark splitmaxdepth \
-splittopskip string tabskip textfont textstyle \
-the thickmuskip thinmuskip time toks \
-toksdef tolerance topmark topskip tracingcommands \
-tracinglostchars tracingmacros tracingonline tracingoutput tracingpages \
-tracingparagraphs tracingrestores tracingstats uccode uchyph \
-underline unhbox unhcopy unhpack unkern \
-unpenalty unskip unvbox unvcopy unvpack \
-uppercase vadjust valign vbadness vbox \
-vcenter vfil vfill vfilneg vfuzz \
-vrule vsize vskip vsplit vss \
-vtop wd widowpenalty xdef xleaders \
-xspaceskip year
+mark mathbin mathchar mathchardef mathchoice \
+mathclose mathcode mathinner mathop mathopen \
+mathord mathpunct mathrel mathsurround maxdeadcycles \
+maxdepth meaning meaningasis meaningfull meaningless \
+medmuskip message middle mkern month \
+moveleft moveright mskip multiply muskip \
+muskipdef newlinechar noalign noexpand noindent \
+nolimits nonscript nonstopmode nulldelimiterspace nullfont \
+number omit or outer output \
+outputpenalty over overfullrule overline overshoot \
+overwithdelims pagedepth pagefilllstretch pagefillstretch pagefilstretch \
+pagegoal pageshrink pagestretch pagetotal par \
+parfillleftskip parfillskip parindent parshape parskip \
+patterns pausing penalty postdisplaypenalty predisplaypenalty \
+predisplaysize pretolerance prevdepth prevgraf radical \
+raise relax relpenalty right righthyphenmin \
+rightskip romannumeral scaledfontdimen scriptfont scriptscriptfont \
+scriptscriptstyle scriptspace scriptstyle scrollmode setbox \
+setlanguage sfcode shipout show showbox \
+showboxbreadth showboxdepth showlists shownodedetails showthe \
+skewchar skip skipdef spacefactor spaceskip \
+span splitbotmark splitfirstmark splitmaxdepth splittopskip \
+srule string tabskip textfont textstyle \
+the thickmuskip thinmuskip time tinymuskip \
+toks toksdef tolerance topmark topskip \
+tracingcommands tracinglostchars tracingmacros tracingonline tracingoutput \
+tracingpages tracingparagraphs tracingrestores tracingstats uccode \
+uchyph underline unhbox unhcopy unhpack \
+unkern unpenalty unskip unvbox unvcopy \
+unvpack uppercase vadjust valign vbadness \
+vbox vcenter vfil vfill vfilneg \
+vfuzz vrule vsize vskip vsplit \
+vss vtop wd widowpenalty xdef \
+xleaders xspaceskip year
keywordclass.tex.xetex=\
XeTeXversion
diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
index 1e3e4ce6f..218a8282a 100644
--- a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
+++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
@@ -61,7 +61,7 @@
],
"repository" : {
"command" : {
- "match" : "\u005C\u005C(zwnj|zwj|zstroke|zhook|zeta|zerowidthspace|zerowidthnobreakspace|zeronumberconversion|zdotaccent|zcaron|zacute|ytilde|ymacron|yiddishnumerals|yhook|ygrave|yen|ydotbelow|ydiaeresis|ycircumflex|yacute|xypos|xxfrac|xtwoheadrightarrow|xtwoheadleftarrow|xtriplerel|xsplitstring|xrightoverleftarrow|xrightleftharpoons|xrightharpoonup|xrightharpoondown|xrightarrow|xrel|xmlverbatim|xmlvalue|xmltofile|xmltobufferverbose|xmltobuffer|xmltext|xmltexentity|xmltag|xmlstrippednolines|xmlstripped|xmlstripnolines|xmlstrip|xmlsnippet|xmlshow|xmlsetup|xmlsetsetup|xmlsetparam|xmlsetpar|xmlsetinjectors|xmlsetfunction|xmlsetentity|xmlsetattribute|xmlsetatt|xmlsave|xmlresetsetups|xmlresetinjectors|xmlresetdocumentsetups|xmlremovesetup|xmlremovedocumentsetup|xmlremapnamespace|xmlremapname|xmlregisterns|xmlregisteredsetups|xmlregistereddocumentsetups|xmlrefatt|xmlraw|xmlpure|xmlprocessfile|xmlprocessdata|xmlprocessbuffer|xmlprettyprinttext|xmlprettyprint|xmlprependsetup|xmlprependdocumentsetup|xmlposition|xmlpos|xmlpath|xmlparam|xmlpar|xmlnonspace|xmlnamespace|xmlname|xmlmapvalue|xmlmain|xmlloadonly|xmlloadfile|xmlloaddirectives|xmlloaddata|xmlloadbuffer|xmllastpar|xmllastmatch|xmllastatt|xmllast|xmlinstalldirective|xmlinlineverbatim|xmlinlineprettyprinttext|xmlinlineprettyprint|xmlinjector|xmlinfo|xmlinclusions|xmlinclusion|xmlinclude|xmlflushtext|xmlflushspacewise|xmlflushpure|xmlflushlinewise|xmlflushdocumentsetups|xmlflushcontext|xmlflush|xmlfirst|xmlfilter|xmlelement|xmldoiftext|xmldoifselfempty|xmldoifnottext|xmldoifnotselfempty|xmldoifnotatt|xmldoifnot|xmldoifelsevalue|xmldoifelsetext|xmldoifelseselfempty|xmldoifelseempty|xmldoifelseatt|xmldoifelse|xmldoifatt|xmldoif|xmldisplayverbatim|xmldirectivesbefore|xmldirectivesafter|xmldirectives|xmldepth|xmldefaulttotext|xmlcount|xmlcontext|xmlconcatrange|xmlconcat|xmlcommand|xmlchecknamespace|xmlchainattdef|xmlchainatt|xmlbeforesetup|xmlbeforedocumentsetup|xmlbadinclusions|xmlattributedef|xmlattribute|xmlattdef|xmlatt|xmlapplyselectors|xmlappendsetup|xmlappenddocumentsetup|xmlall|xmlaftersetup|xmlafterdocumentsetup|xmladdindex|xmapsto|xleftrightharpoons|xleftrightarrow|xleftharpoonup|xleftharpoondown|xleftarrow|xi|xhookrightarrow|xhookleftarrow|xfrac|xequal|xdefconvertedargument|xRightarrow|xLeftrightarrow|xLeftarrow|writetolist|writestatus|writedatatolist|writebetweenlist|wr|wp|wordtonumber|words|wordright|word|withoutpt|widthspanningtext|widthofstring|widetilde|widehat|whitearrowupfrombar|weekday|wedgeeq|wedge|wdofstring|wcircumflex|vspacing|vspace|vsmashed|vsmashbox|vsmash|vpos|vphantom|vpackedbox|vpackbox|vl|viewerlayer|vglue|veryraggedright|veryraggedleft|veryraggedcenter|verticalpositionbar|verticalgrowingbar|vert|version|verbosenumber|verbatimstring|verbatim|veeeq|veebar|vee|vec|vdots|vdash|vboxreference|vartheta|varsigma|varrho|varpi|varphi|varnothing|varkappa|varepsilon|varTheta|validassignment|vDash|utilityregisterlength|utilde|utfupper|utflower|utfchar|usezipfile|useurl|usetypescriptfile|usetypescript|usetexmodule|usesymbols|usesubpath|usestaticMPfigure|usesetupsparameter|userpagenumber|usereferenceparameter|useproject|useprofileparameter|useproduct|usemodule|usemathstyleparameter|useluatable|useluamodule|uselanguageparameter|useinterlinespaceparameter|useindentnextparameter|useindentingparameter|usehyphensparameter|usegridparameter|usefontpath|usefile|usefigurebase|useexternalsoundtrack|useexternalrendering|useexternalfigure|useexternaldocument|useenvironment|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedirectory|usecomponent|usecolors|usecitation|usebtxdefinitions|usebtxdataset|usebodyfontparameter|usebodyfont|useblocks|useblankparameter|usealignparameter|useURL|useMPvariables|useMPrun|useMPlibrary|useMPgraphic|useMPenvironmentbuffer|useJSscripts|url|uring|urcorner|upwhitearrow|upuparrows|upsilon|upperrightsinglesixquote|upperrightsingleninequote|upperrightdoublesixquote|upperrightdoubleninequote|upperleftsinglesixquote|upperleftsingleninequote|upperleftdoublesixquote|upperleftdoubleninequote|uppercasing|uppercasestring|uppercased|uplus|upharpoonright|upharpoonleft|updownarrows|updownarrowbar|updownarrow|updateparagraphshapes|updateparagraphproperties|updateparagraphpenalties|updateparagraphdemerits|updasharrow|uparrow|upand|uogonek|untexcommand|untexargument|unstackscripts|unspacestring|unspaced|unspaceargument|unspaceafter|unregisterparwrapper|unregisterhyphenationpattern|unprotected|unknown|unittext|unitslow|unitshigh|unitlanguage|unit|uniqueMPpagegraphic|uniqueMPgraphic|unihex|unhhbox|unframed|unexpandeddocumentvariable|undoassign|undertwoheadrightarrow|undertwoheadleftarrow|understrikes|understrike|underset|underrightharpoonup|underrightharpoondown|underrightarrow|underrandoms|underrandom|underparenttext|underparent|underleftrightarrow|underleftharpoonup|underleftharpoondown|underleftarrow|underdots|underdot|underdashes|underdash|underbrackettext|underbracket|underbracetext|underbrace|underbartext|underbars|underbar|undepthed|undefinevalue|umacron|ulcorner|uinvertedbreve|uhungarumlaut|uhorntilde|uhornhook|uhorngrave|uhorndotbelow|uhornacute|uhorn|uhook|ugrave|uedcatcodecommand|udoublegrave|udots|udotbelow|udiaeresismacron|udiaeresisgrave|udiaeresiscaron|udiaeresisacute|udiaeresis|uconvertnumber|ucircumflex|uchexnumbers|uchexnumber|ucaron|ubreve|uacute|typesetfile|typesetbufferonly|typesetbuffer|typescripttwo|typescriptthree|typescriptprefix|typescriptone|typeinlinebuffer|typefile|typeface|typedefinedbuffer|typebuffer|type|typ|txx|tx|twothirds|twosuperior|twoheaduparrow|twoheadrightarrowtail|twoheadrightarrow|twoheadleftarrow|twoheaddownarrow|twofifths|twodigitrounding|turnediota|ttwoheadrightarrow|ttwoheadleftarrow|ttriplerel|ttraggedright|tstroke|truefontname|truefilename|tripleverticalbar|tripleprime|triplebond|trightoverleftarrow|trightleftharpoons|trightharpoonup|trightharpoondown|trightarrow|triangleright|triangleq|triangleleft|triangledown|triangle|trel|transparent|transparencycomponents|translate|trademark|tracepositions|traceoutputroutines|tracedpagestate|tracedfontname|tracecatcodetables|topskippedbox|toprightbox|toplinebox|topleftbox|topbox|top|tooltip|tolinenote|tochar|to|tmapsto|tleftrightharpoons|tleftrightarrow|tleftharpoonup|tleftharpoondown|tleftarrow|tlap|title|tinyfont|times|tilde|tightlayer|tibetannumerals|threesuperior|threequarter|threeperemspace|threefifths|threeeighths|threedigitrounding|thorn|thookrightarrow|thookleftarrow|thook|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thinspace|thinrules|thinrule|thickspace|theta|theremainingcharacters|therefore|theorientation|thenormalizedbodyfontsize|thematrix|thefirstcharacter|thedatavalue|thainumerals|thai|textyen|textvisiblespace|textunderscore|texttilde|textsterling|textslash|textrule|textring|textreference|textpm|textplus|textperiod|textpercent|textounce|textormathchars|textormathchar|textohm|textogonek|textnumero|textmultiply|textmu|textminus|textmho|textmath|textmacron|textlognot|textkelvin|texthyphen|texthungarumlaut|texthorizontalbar|texthash|textgrave|textfraction|textflowcollector|texteuro|textellipsis|textdotaccent|textdong|textdollar|textdiv|textdiaeresis|textdegree|textddag|textdag|textcurrency|textcontrolspace|textcomma|textcite|textcitation|textcircumflex|textcircledP|textcent|textcelsius|textcedilla|textcaron|textbullet|textbrokenbar|textbreve|textbraceright|textbraceleft|textbottomdot|textbottomcomma|textbar|textbackslash|textat|textasciitilde|textasciicircum|textampersand|textacute|textAngstrom|texsetup|texdefinition|tex|testtokens|testpagesync|testpageonly|testpage|testfeatureonce|testfeature|testcolumn|testandsplitstring|test|tequal|tcurl|tcommaaccent|tcedilla|tcaron|tbox|tbinom|tau|taglabeltext|taglabellanguage|taggedlabeltexts|taggedctxcommand|tabulaterule|tabulateline|tabulateautorule|tabulateautoline|tRightarrow|tLeftrightarrow|tLeftarrow|systemsetups|systemloglast|systemlogfirst|systemlog|synctexsetfilename|synctexresetfilename|synctexblockfilename|synchronizewhitespace|synchronizestrut|synchronizeoutputstreams|synchronizemarking|synchronizeindenting|synchronizeblank|symbolreference|symbol|switchtointerlinespace|switchtocolor|switchtobodyfont|switchstyleonly|swarrow|swaptypeface|swapmacros|swapface|swapdimens|swapcounts|surdradical|surd|supsetneqq|supsetneq|supseteqq|supseteq|supset|sum|suffixtext|suffixlanguage|succsim|succnsim|succneqq|succneq|succnapprox|succeqq|succeq|succcurlyeq|succapprox|succ|subtractfeature|subsubsubsubsubject|subsubsubsubsection|subsubsubsubject|subsubsubsection|subsubsubject|subsubsection|subsubject|substituteincommalist|subsetneqq|subsetneq|subseteqq|subseteq|subset|subsentence|subsection|subpagenumber|subject|styleinstance|style|strutwd|struttedbox|struthtdp|strutht|strutgap|strutdp|strut|structurevariable|structureuservariable|structuretitle|structurenumber|structurelistuservariable|stripspaces|strippedcsname|stripcharacter|strictdoifnextoptionalelse|strictdoifelsenextoptional|stretched|stopxtablenext|stopxtablehead|stopxtablefoot|stopxtablebody|stopxtable|stopxrowgroup|stopxrow|stopxmlsetups|stopxmlraw|stopxmlinlineverbatim|stopxmldisplayverbatim|stopxgroup|stopxcolumn|stopxcellgroup|stopxcell|stopvtopregister|stopvtop|stopviewerlayer|stopvboxtohboxseparator|stopvboxtohbox|stopvboxregister|stopvbox|stopusingbtxspecification|stopuserdata|stopusemathstyleparameter|stopuseMPgraphic|stopusableMPgraphic|stopunpacked|stopunittext|stopuniqueMPpagegraphic|stopuniqueMPgraphic|stoptyping|stoptypescriptcollection|stoptypescript|stoptransparent|stoptokens|stoptokenlist|stoptitle|stopthematrix|stoptextrule|stoptextmakeup|stoptextflow|stoptextcolorintent|stoptextcolor|stoptextbackgroundmanual|stoptextbackground|stoptext|stoptexdefinition|stoptexcode|stoptaglabeltext|stoptagged|stoptabulatetail|stoptabulatehead|stoptabulate|stoptabletext|stoptabletail|stoptables|stoptablehead|stoptable|stopsymbolset|stopsuffixtext|stopsubsubsubsubsubject|stopsubsubsubsubsection|stopsubsubsubsubject|stopsubsubsubsection|stopsubsubsubject|stopsubsubsection|stopsubsubject|stopsubstack|stopsubsentence|stopsubsection|stopsubjectlevel|stopsubject|stopsubformulas|stopstyle|stopstrut|stopstrictinspectnextcharacter|stopstaticMPgraphic|stopstaticMPfigure|stopstandardmakeup|stopspread|stopsplittext|stopsplitformula|stopspformula|stopspeech|stopspecialitem|stopsimplecolumns|stopsidebar|stopshift|stopshapebox|stopsetups|stopsectionlevel|stopsectionblockenvironment|stopsectionblock|stopsection|stopsdformula|stopscript|stopruby|stoprightaligned|stopreusableMPgraphic|stopregime|stopreferenceprefix|stopreadingfile|stoprawsetups|stoprandomseed|stoprandomized|stopquote|stopquotation|stoppunctuation|stoppublication|stopprotectedcolors|stopprotect|stopproject|stopproduct|stopprocesscommalist|stopprocesscommacommand|stopprocessassignmentlist|stopprocessassignmentcommand|stopprefixtext|stoppostponingnotes|stoppostponing|stoppositive|stoppositionoverlay|stoppositioning|stopplacetable|stopplacepairedbox|stopplacelegend|stopplaceintermezzo|stopplacegraphic|stopplaceformula|stopplacefloat|stopplacefigure|stopplacechemical|stoppath|stoppart|stopparbuilder|stopparagraphscell|stopparagraphs|stopparagraph|stoppar|stoppagemakeup|stoppagelayout|stoppagefigure|stoppagecomment|stoppagecolumns|stoppacked|stopoverprint|stopoverlay|stopoutputstream|stopopposite|stopoperatortext|stopnotmode|stopnotext|stopnotallmodes|stopnointerference|stopnicelyfilledbox|stopnegative|stopnarrower|stopnarrow|stopnamedsubformulas|stopnamedsection|stopmulticolumns|stopmpformula|stopmoduletestsection|stopmodule|stopmodeset|stopmode|stopmixedcolumns|stopmiddlemakeup|stopmiddlealigned|stopmidaligned|stopmdformula|stopmaxaligned|stopmatrix|stopmatrices|stopmathstyle|stopmathmode|stopmathmatrix|stopmathlabeltext|stopmathcases|stopmathalignment|stopmarkpages|stopmarkedcontent|stopmarginrule|stopmarginblock|stopmakeup|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stoplocalnotes|stoplocallinecorrection|stoplocalheadsetup|stoplocalfootnotes|stoplinetablehead|stoplinetablecell|stoplinetablebody|stoplinetable|stoplines|stoplinenumbering|stoplinenote|stoplinefiller|stoplinecorrection|stoplinealignment|stopline|stoplegend|stopleftaligned|stoplayout|stoplanguage|stoplabeltext|stopknockout|stopitemize|stopitemgroupcolumns|stopitemgroup|stopitem|stopintertext|stopintermezzotext|stopinterface|stopinteractionmenu|stopinteraction|stopindentedtext|stopindentation|stopimath|stophyphenation|stophighlight|stophiding|stophelptext|stopheadtext|stophead|stophboxregister|stophboxestohbox|stophbox|stophanging|stopgridsnapping|stopgraphictext|stopgoto|stopfrontmatter|stopframedtext|stopframedtable|stopframedrow|stopframedcontent|stopframedcell|stopframed|stopformulas|stopformula|stopfootnote|stopfontsolution|stopfontclass|stopfont|stopfloatcombination|stopfixed|stopfittingpage|stopfiguretext|stopfigure|stopfact|stopfacingfloat|stopexternalfigurecollection|stopextendedcatcodetable|stopexpandedcollect|stopexpanded|stopexceptions|stopenvironment|stopendofline|stopendnote|stopembeddedxtable|stopelement|stopeffect|stopdocument|stopdmath|stopdisplaymath|stopdelimitedtext|stopdelimited|stopcurrentlistentrywrapper|stopcurrentcolor|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcomponent|stopcomment|stopcombination|stopcolumnsetspan|stopcolumnset|stopcolumns|stopcolorset|stopcoloronly|stopcolorintent|stopcolor|stopcollecting|stopcollect|stopchemicaltext|stopchemical|stopcheckedfences|stopcharacteralign|stopchapter|stopcenteraligned|stopcatcodetable|stopcases|stopbuffer|stopbtxrenderingdefinitions|stopbtxlabeltext|stopboxedcolumns|stopbordermatrix|stopbodymatter|stopblockquote|stopbitmapimage|stopbbordermatrix|stopbar|stopbackmatter|stopbackground|stopattachment|stopaside|stopasciimode|stoparrangedpages|stopappendices|stopallmodes|stopalignment|stopalign|stopXML|stopTY|stopTX|stopTRs|stopTR|stopTN|stopTH|stopTEXpage|stopTEX|stopTDs|stopTD|stopTC|stopTABLEnext|stopTABLEnested|stopTABLEhead|stopTABLEfoot|stopTABLEbody|stopTABLE|stopPARSEDXML|stopMPrun|stopMPpositionmethod|stopMPpositiongraphic|stopMPpage|stopMPinitializations|stopMPinclusions|stopMPextensions|stopMPenvironment|stopMPdrawing|stopMPdefinitions|stopMPcode|stopMPclip|stopMP|stopLUA|stopJSpreamble|stopJScode|stligature|startxtablenext|startxtablehead|startxtablefoot|startxtablebody|startxtable|startxrowgroup|startxrow|startxmlsetups|startxmlraw|startxmlinlineverbatim|startxmldisplayverbatim|startxgroup|startxcolumn|startxcellgroup|startxcell|startvtopregister|startvtop|startviewerlayer|startvboxtohboxseparator|startvboxtohbox|startvboxregister|startvbox|startusingbtxspecification|startuserdata|startusemathstyleparameter|startuseMPgraphic|startusableMPgraphic|startunpacked|startunittext|startuniqueMPpagegraphic|startuniqueMPgraphic|starttyping|starttypescriptcollection|starttypescript|starttransparent|starttokens|starttokenlist|starttitle|startthematrix|starttextrule|starttextmakeup|starttextflow|starttextcolorintent|starttextcolor|starttextbackgroundmanual|starttextbackground|starttext|starttexdefinition|starttexcode|starttaglabeltext|starttagged|starttabulatetail|starttabulatehead|starttabulate|starttabletext|starttabletail|starttables|starttablehead|starttable|startsymbolset|startsuffixtext|startsubsubsubsubsubject|startsubsubsubsubsection|startsubsubsubsubject|startsubsubsubsection|startsubsubsubject|startsubsubsection|startsubsubject|startsubstack|startsubsentence|startsubsection|startsubjectlevel|startsubject|startsubformulas|startstyle|startstrut|startstructurepageregister|startstrictinspectnextcharacter|startstaticMPgraphic|startstaticMPfigure|startstandardmakeup|startspread|startsplittext|startsplitformula|startspformula|startspeech|startspecialitem|startsimplecolumns|startsidebar|startshift|startshapebox|startsetups|startsectionlevel|startsectionblockenvironment|startsectionblock|startsection|startsdformula|startscript|startruby|startrightaligned|startreusableMPgraphic|startregister|startregime|startreferenceprefix|startreadingfile|startrawsetups|startrandomseed|startrandomized|startquote|startquotation|startpunctuation|startpublication|startprotectedcolors|startprotect|startproject|startproduct|startprocesscommalist|startprocesscommacommand|startprocessassignmentlist|startprocessassignmentcommand|startprefixtext|startpostponingnotes|startpostponing|startpositive|startpositionoverlay|startpositioning|startplacetable|startplacepairedbox|startplacelegend|startplaceintermezzo|startplacegraphic|startplaceformula|startplacefloat|startplacefigure|startplacechemical|startpath|startpart|startparbuilder|startparagraphscell|startparagraphs|startparagraph|startpar|startpagemakeup|startpagelayout|startpagefigure|startpagecomment|startpagecolumns|startpacked|startoverprint|startoverlay|startoutputstream|startopposite|startoperatortext|startnotmode|startnotext|startnotallmodes|startnointerference|startnicelyfilledbox|startnegative|startnarrower|startnarrow|startnamedsubformulas|startnamedsection|startmulticolumns|startmpformula|startmoduletestsection|startmodule|startmodeset|startmode|startmixedcolumns|startmiddlemakeup|startmiddlealigned|startmidaligned|startmdformula|startmaxaligned|startmatrix|startmatrices|startmathstyle|startmathmode|startmathmatrix|startmathlabeltext|startmathcases|startmathalignment|startmarkpages|startmarkedcontent|startmarginrule|startmarginblock|startmakeup|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startlocalnotes|startlocallinecorrection|startlocalheadsetup|startlocalfootnotes|startlinetablehead|startlinetablecell|startlinetablebody|startlinetable|startlines|startlinenumbering|startlinenote|startlinefiller|startlinecorrection|startlinealignment|startline|startlegend|startleftaligned|startlayout|startlanguage|startlabeltext|startknockout|startitemize|startitemgroupcolumns|startitemgroup|startitem|startintertext|startintermezzotext|startinterface|startinteractionmenu|startinteraction|startindentedtext|startindentation|startimath|starthyphenation|starthighlight|starthiding|starthelptext|startheadtext|starthead|starthboxregister|starthboxestohbox|starthbox|starthanging|startgridsnapping|startgraphictext|startgoto|startfrontmatter|startframedtext|startframedtable|startframedrow|startframedcontent|startframedcell|startframed|startformulas|startformula|startfootnote|startfontsolution|startfontclass|startfont|startfloatcombination|startfixed|startfittingpage|startfiguretext|startfigure|startfact|startfacingfloat|startexternalfigurecollection|startextendedcatcodetable|startexpandedcollect|startexpanded|startexceptions|startenvironment|startendofline|startendnote|startembeddedxtable|startelement|starteffect|startdocument|startdmath|startdisplaymath|startdelimitedtext|startdelimited|startcurrentlistentrywrapper|startcurrentcolor|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcomponent|startcomment|startcombination|startcolumnsetspan|startcolumnset|startcolumns|startcolorset|startcoloronly|startcolorintent|startcolor|startcollecting|startcollect|startchemicaltext|startchemical|startcheckedfences|startcharacteralign|startchapter|startcenteraligned|startcatcodetable|startcases|startbuffer|startbtxrenderingdefinitions|startbtxlabeltext|startboxedcolumns|startbordermatrix|startbodymatter|startblockquote|startbitmapimage|startbbordermatrix|startbar|startbackmatter|startbackground|startattachment|startaside|startasciimode|startarrangedpages|startappendices|startallmodes|startalignment|startalign|startXML|startTY|startTX|startTRs|startTR|startTN|startTH|startTEXpage|startTEX|startTDs|startTD|startTC|startTABLEnext|startTABLEnested|startTABLEhead|startTABLEfoot|startTABLEbody|startTABLE|startPARSEDXML|startMPrun|startMPpositionmethod|startMPpositiongraphic|startMPpage|startMPinitializations|startMPinclusions|startMPextensions|startMPenvironment|startMPdrawing|startMPdefinitions|startMPcode|startMPclip|startMP|startLUA|startJSpreamble|startJScode|stareq|star|stackscripts|stackrel|ssharp|squaredots|square|sqsupsetneq|sqsupseteq|sqsupset|sqsubsetneq|sqsubseteq|sqsubset|sqrt|sqcup|sqcap|spreadhbox|splitstring|splitofftype|splitofftokens|splitoffroot|splitoffpath|splitoffname|splitoffkind|splitofffull|splitoffbase|splitfrac|splitfloat|splitfilename|splitdfrac|splitatperiod|splitatcomma|splitatcolons|splitatcolon|splitatasterisk|sphericalangle|speech|spanishnumerals|spanishNumerals|spadesuit|spaceddigitssymbol|spaceddigitsseparator|spaceddigitsmethod|spaceddigits|space|somewhere|someplace|somenamedheadnumber|somelocalfloat|someline|somekindoftab|someheadnumber|solidus|softhyphen|snaptogrid|smile|smashedvbox|smashedhbox|smashboxed|smashbox|smash|smalltype|smallslantedbold|smallslanted|smallskip|smallnormal|smallitalicbold|smaller|smallcaps|smallcappedromannumerals|smallcappedcharacters|smallboldslanted|smallbolditalic|smallbold|smallbodyfont|small|sloveniannumerals|slovenianNumerals|slong|slicepages|slash|slantedface|slantedbold|slanted|sixthofsixarguments|sixperemspace|singleverticalbar|singlebond|singalcharacteralign|simplereversealignedboxplus|simplereversealignedbox|simplegroupedcommand|simplealignedspreadbox|simplealignedboxplus|simplealignedbox|simeq|sim|signalrightpage|sigma|showwarning|showvariable|showvalue|showtrackers|showtokens|showtimer|showsymbolset|showstruts|showsetupsdefinition|showsetups|showprint|showparwrapperstate|showparentchain|showpalet|showotfcomposition|shownextbox|showminimalbaseline|showmessage|showmargins|showmakeup|showluatables|showlogcategories|showligatures|showligature|showlayoutcomponents|showlayout|showkerning|showjustification|showinjector|showhyphens|showhyphenationtrace|showhelp|showgridsnapping|showgrid|showglyphs|showglyphdata|showframe|showfontstyle|showfontstrip|showfontparameters|showfontkerns|showfontitalics|showfontexpansion|showfontdata|showfont|showexperiments|showedebuginfo|showdirsinmargin|showdirectives|showcounter|showcolorstruts|showcolorset|showcolorgroup|showcolorcomponents|showcolorbar|showcolor|showcharratio|showchardata|showbtxtables|showbtxhashedauthors|showbtxfields|showbtxdatasetfields|showbtxdatasetcompleteness|showbtxdatasetauthors|showboxes|showbodyfontenvironment|showbodyfont|showattributes|showallmakeup|shiftup|shiftdown|shiftbox|sharp|shapedhbox|sfrac|seveneighths|setxvariables|setxvariable|setxvalue|setxmeasure|setwidthof|setvtopregister|setvisualizerfont|setvboxregister|setvariables|setvariable|setvalue|setuxvalue|setuvalue|setupxtable|setupxml|setupwithargumentswapped|setupwithargument|setupwhitespace|setupvspacing|setupviewerlayer|setupversion|setupuserpagenumber|setupuserdataalternative|setupuserdata|setupurl|setupunittext|setupunit|setuptyping|setuptype|setuptoptexts|setuptop|setuptooltip|setuptolerance|setupthinrules|setuptexttexts|setuptextrules|setuptextnote|setuptextflow|setuptextbackground|setuptext|setuptaglabeltext|setuptagging|setuptabulate|setuptables|setupsystem|setupsynonyms|setupsynctex|setupsymbolset|setupsymbols|setupsuffixtext|setupsubpagenumber|setupsubformulas|setupsubformula|setupstyle|setupstrut|setupstretched|setupstartstop|setupspellchecking|setupspacing|setupsorting|setupsidebar|setupshift|setupselector|setupsectionblock|setupscripts|setupscript|setupscale|setups|setupruby|setuprotate|setuprenderingwindow|setupregisters|setupregister|setupreferencing|setupreferencestructureprefix|setupreferenceprefix|setupreferenceformat|setuprealpagenumber|setupquote|setupquotation|setupprograms|setupprofile|setupprocessor|setupprefixtext|setuppositioning|setuppositionbar|setupplacement|setupplaceholder|setupperiods|setupperiodkerning|setupparallel|setupparagraphs|setupparagraphnumbering|setupparagraphintro|setupparagraph|setuppapersize|setuppaper|setuppalet|setuppairedbox|setuppagetransitions|setuppagestate|setuppageshift|setuppagenumbering|setuppagenumber|setuppageinjectionalternative|setuppageinjection|setuppagecomment|setuppagecolumns|setuppagechecker|setupoutputroutine|setupoutput|setuporientation|setupoppositeplacing|setupoperatortext|setupoffsetbox|setupoffset|setupnotes|setupnote|setupnotations|setupnotation|setupnarrower|setupmulticolumns|setupmodule|setupmixedcolumns|setupmathstyle|setupmathstackers|setupmathradical|setupmathornament|setupmathmatrix|setupmathlabeltext|setupmathframed|setupmathfractions|setupmathfraction|setupmathfence|setupmathematics|setupmathcases|setupmathalignment|setupmarking|setupmarginrules|setupmarginrule|setupmarginframed|setupmargindata|setupmarginblock|setupmakeup|setuplowmidhigh|setuplowhigh|setuplow|setuplocalinterlinespace|setuplocalfloats|setuplistextra|setuplistalternative|setuplist|setuplinewidth|setuplinetable|setuplines|setuplinenumbering|setuplinenote|setuplinefillers|setuplinefiller|setuplegend|setuplayouttext|setuplayout|setuplayeredtext|setuplayer|setuplanguage|setuplabeltext|setuplabel|setupitems|setupitemize|setupitemizations|setupitemgroup|setupitaliccorrection|setupinterlinespace|setupinteractionscreen|setupinteractionmenu|setupinteractionbar|setupinteraction|setupinsertion|setupinitial|setupindex|setupindenting|setupindentedtext|setuphyphenmark|setuphyphenation|setuphighlight|setuphigh|setuphelp|setupheadtext|setupheads|setupheadnumber|setupheadertexts|setupheader|setupheadalternative|setuphead|setupglobalreferenceprefix|setupframedtexts|setupframedtext|setupframedtablerow|setupframedtablecolumn|setupframedtable|setupframedcontent|setupframed|setupformulaframed|setupformulae|setupformula|setupforms|setupfootnotes|setupfootertexts|setupfooter|setupfontsolution|setupfonts|setupfontprotrusion|setupfontexpansion|setupfloatsplitting|setupfloats|setupfloatframed|setupfloat|setupfittingpage|setupfirstline|setupfillinrules|setupfillinlines|setupfiller|setupfieldtotalframed|setupfields|setupfieldlabelframed|setupfieldcontentframed|setupfieldcategory|setupfieldbody|setupfield|setupfacingfloat|setupexternalsoundtracks|setupexternalfigures|setupexternalfigure|setupexport|setupexpansion|setupenv|setupenumerations|setupenumeration|setupeffect|setupdocument|setupdirections|setupdescriptions|setupdescription|setupdelimitedtext|setupdataset|setupcounter|setupcontent|setupcomment|setupcombinedlist|setupcombination|setupcolumnsetstart|setupcolumnsetspan|setupcolumnsetlines|setupcolumnsetareatext|setupcolumnsetarea|setupcolumnset|setupcolumns|setupcolors|setupcolor|setupcollector|setupclipping|setupchemicalframed|setupchemical|setupcharacterspacing|setupcharacterkerning|setupcharacteralign|setupcaptions|setupcaption|setupcapitals|setupbutton|setupbuffer|setupbtxrendering|setupbtxregister|setupbtxlist|setupbtxlabeltext|setupbtxdataset|setupbtx|setupbottomtexts|setupbottom|setupbookmark|setupbodyfontenvironment|setupbodyfont|setupblock|setupbleeding|setupblank|setupblackrules|setupbars|setupbar|setupbackgrounds|setupbackground|setupbackend|setupattachments|setupattachment|setuparranging|setupalternativestyles|setupalign|setupTEXpage|setupTABLE|setupMPvariables|setupMPpage|setupMPinstance|setupMPgraphics|setup|setunreferencedobject|setugvalue|setuevalue|settrialtypesetting|settokenlist|settightunreferencedobject|settightstrut|settightreferencedobject|settightobject|settextcontent|settestcrlf|settaggedmetadata|settabular|setsystemmode|setsuperiors|setstrut|setstructurepageregister|setstackbox|setsmallcaps|setsmallbodyfont|setsimplecolumnshsize|setsectionblock|setsecondpasscharacteralign|setscript|setrigidcolumnhsize|setrigidcolumnbalance|setreplacements|setregisterentry|setreferencedobject|setreference|setrandomseed|setprofile|setpositionstrut|setpositionplus|setpositiononly|setpositiondataplus|setpositiondata|setpositionbox|setposition|setperiodkerning|setpercentdimen|setpenalties|setparagraphfreezing|setpagestaterealpageno|setpagestate|setpagereference|setoldstyle|setobject|setnotetext|setnote|setnostrut|setmode|setminus|setmessagetext|setmeasure|setmathstyle|setmarking|setmarker|setmainparbuilder|setmainbodyfont|setluatable|setlocalscript|setlocalhsize|setlinefiller|setlayertext|setlayerframed|setlayer|setitaliccorrection|setinternalrendering|setinterfacevariable|setinterfacemessage|setinterfaceelement|setinterfaceconstant|setinterfacecommand|setinteraction|setinjector|setinitial|sethyphenationfeatures|sethyphenatedurlnormal|sethyphenatedurlbefore|sethyphenatedurlafter|sethboxregister|setgvariables|setgvariable|setgvalue|setgmeasure|setglobalscript|setfractions|setfontstrut|setfontsolution|setfontfeature|setfontcolorsheme|setfont|setflag|setfirstpasscharacteralign|setfirstline|setexpansion|setevariables|setevariable|setevalue|setemeasure|setelementexporttag|setdummyparameter|setdocumentfilename|setdocumentargumentdefault|setdocumentargument|setdirection|setdigitsmanipulation|setdefaultpenalties|setdatavalue|setdataset|setcurrentfontclass|setctxluafunction|setcounterown|setcounter|setcolormodell|setcollector|setcharstrut|setcharacterstripping|setcharacterspacing|setcharacterkerning|setcharactercleaning|setcharactercasing|setcharacteraligndetail|setcharacteralign|setcatcodetable|setcapstrut|setbreakpoints|setboxlly|setboxllx|setbigbodyfont|setbar|setautopagestaterealpageno|setMPvariables|setMPvariable|setMPtext|setMPpositiongraphicrange|setMPpositiongraphic|setMPlayer|setJSpreamble|serifnormal|serifbold|serif|serializedcommalist|serializecommalist|selectblocks|select|seeindex|sectionmark|section|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|searrow|screen|scommaaccent|scircumflex|schwahook|schwa|scedilla|scaron|scale|sbox|savetwopassdata|savetaggedtwopassdata|savenormalmeaning|savecurrentattributes|savecounter|savebuffer|savebtxdataset|savebox|sansserif|sansnormal|sansbold|sans|samplefile|safechar|sacute|rvert|russiannumerals|russianNumerals|runninghbox|runMPbuffer|ruledvtop|ruledvpack|ruledvbox|ruledtpack|ruledtopv|ruledmbox|ruledhpack|ruledhbox|ruby|rtop|rtlvtop|rtlvbox|rtlhbox|rtimes|rrointerval|rrbracket|rrangle|rparent|rotate|rootradical|romanxii|romanxi|romanx|romanviii|romanvii|romanvi|romanv|romannumerals|romanm|romanl|romanix|romaniv|romaniii|romanii|romani|romand|romanc|romanXII|romanXI|romanX|romanVIII|romanVII|romanVI|romanV|romanM|romanL|romanIX|romanIV|romanIII|romanII|romanI|romanD|romanC|roman|rollbutton|rointerval|robustpretocommalist|robustdoifinsetelse|robustdoifelseinset|robustaddtocommalist|rneq|rmoustache|rlointerval|rlap|risingdotseq|rinvertedbreve|rinterval|ring|rightwhitearrow|rightwavearrow|righttopbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightthreetimes|rightthreearrows|rightsubguillemot|rightsquigarrow|rightskipadaption|rightrightarrows|rightpageorder|rightorleftpageaction|rightmathlabeltext|rightline|rightleftharpoons|rightleftarrows|rightlabeltext|rightheadtext|righthbox|rightharpoonup|rightharpoondown|rightguillemot|rightdasharrow|rightbox|rightbottombox|rightarrowtriangle|rightarrowtail|rightarrowbar|rightarrow|rightangle|rightaligned|right|rhookswarrow|rhooknearrow|rho|rhbox|rgroup|rfloor|rfence|revivefeature|reversevtop|reversevpack|reversevboxcontent|reversevbox|reversetpack|reversehpack|reversehbox|reversedtripleprime|reversedprime|reverseddoubleprime|reuserandomseed|reuseMPgraphic|reusableMPgraphic|retestfeature|restriction|restoreglobalbodyfont|restoreendofline|restorecurrentattributes|restorecounter|restorecatcodes|restorebox|restartcounter|resolvedglyphstyled|resolvedglyphdirect|reshapebox|resetvisualizers|resetvalue|resetuserpagenumber|resetusedsynonyms|resetusedsortings|resettrialtypesetting|resettrackers|resettokenlist|resettimer|resetsystemmode|resetsymbolset|resetsubpagenumber|resetshownsynonyms|resetsetups|resetscript|resetreplacements|resetreference|resetrecurselevel|resetprofile|resetperiodkerning|resetpenalties|resetpath|resetparallel|resetpagenumber|resetmode|resetmarking|resetmarker|resetlocalfloats|resetlayer|resetitaliccorrection|resetinteractionmenu|resetinjector|resethyphenationfeatures|resetfontsolution|resetfontfallback|resetfontcolorsheme|resetflag|resetfeature|resetdirection|resetdigitsmanipulation|resetctxscanner|resetcounter|resetcollector|resetcharacterstripping|resetcharacterspacing|resetcharacterkerning|resetcharacteralign|resetbuffer|resetbreakpoints|resetboxesincache|resetbar|resetandaddfeature|resetallattributes|resetMPinstance|resetMPenvironment|resetMPdrawing|rescanwithsetup|rescan|replaceword|replaceincommalist|replacefeature|repeathead|removeunwantedspaces|removetoks|removesubstring|removepunctuation|removemarkedcontent|removelastspace|removelastskip|removefromcommalist|removedepth|removebottomthings|remark|remainingcharacters|relbar|relaxvalueifundefined|relateparameterhandlers|relatemarking|regular|registerunit|registersynonym|registersort|registerparwrapperreverse|registerparwrapper|registermenubuttons|registerhyphenationpattern|registerhyphenationexception|registerfontclass|registerexternalfigure|registered|registerctxluafile|registerattachment|referring|referencesymbol|referencerealpage|referenceprefix|referencepagestate|referencepagedetail|referencecolumnnumber|reference|ref|redoconvertfont|recursestring|recurselevel|recursedepth|realsmallcapped|reals|realpagenumber|realSmallcapped|realSmallCapped|readxmlfile|readtexfile|readsysfile|readsetfile|readlocfile|readjobfile|readfixfile|readfile|rdoublegrave|rcommaaccent|rceil|rcaron|rbracket|rbrace|rbox|rawsubcountervalue|rawstructurelistuservariable|rawprocesscommalist|rawprocesscommacommand|rawprocessaction|rawgetparameters|rawdoifinsetelse|rawdoifinset|rawdoifelseinset|rawdate|rawcountervalue|rawcounter|rationals|rangle|randomnumber|randomizetext|raisebox|raggedwidecenter|raggedright|raggedleft|raggedcenter|raggedbottom|racute|rVert|quotesinglebase|quotesingle|quoteright|quoteleft|quotedblright|quotedblleft|quotedblbase|quotedbl|quote|quotation|quittypescriptscanning|quitprevcommalist|quitcommalist|questionedeq|questiondown|quarterstrut|quads|quadrupleprime|quad|qquad|putnextboxincache|putboxincache|pushsystemmode|pushoutputstream|pushmode|pushmacro|pushbutton|pushattribute|purenumber|punctuationspace|psi|pseudosmallcapped|pseudoSmallcapped|pseudoSmallCapped|pseudoMixedCapped|propto|project|program|profilegivenbox|profiledbox|product|prod|processyear|processxtablebuffer|processuntil|processtokens|processtexbuffer|processseparatedlist|processranges|processmonth|processlist|processlinetablefile|processlinetablebuffer|processisolatedwords|processisolatedchars|processfirstactioninset|processfileonce|processfilenone|processfilemany|processfile|processcontent|processcommalistwithparameters|processcommalist|processcommacommand|processcolorcomponents|processbodyfontenvironmentlist|processblocks|processbetween|processassignmentlist|processassignmentcommand|processassignlist|processallactionsinset|processaction|processMPfigurefile|processMPbuffer|procent|primes|prime|prevuserpagenumber|prevuserpage|prevsubpagenumber|prevsubpage|prevsubcountervalue|prevrealpagenumber|prevrealpage|preventmode|prevcountervalue|prevcounter|prettyprintbuffer|pretocommalist|presetunittext|presettaglabeltext|presetsuffixtext|presetprefixtext|presetoperatortext|presetmathlabeltext|presetlabeltext|presetheadtext|presetfieldsymbols|presetdocument|presetbtxlabeltext|prerollblank|prependvalue|prependtoksonce|prependtoks|prependtocommalist|prependgvalue|prependetoks|prefixtext|prefixlanguage|prefixedpagenumber|predefinesymbol|predefinefont|predefinedfont|precsim|precnsim|precneqq|precneq|precnapprox|preceqq|preceq|preccurlyeq|precapprox|prec|postponenotes|positivesign|positionregionoverlay|positionoverlay|position|popsystemmode|popmode|popmacro|popattribute|pm|placetable|placesubformula|placesidebyside|placerenderingwindow|placeregister|placerawlist|placerawheadtext|placerawheadnumber|placerawheaddata|placeparallel|placepairedbox|placepagenumber|placeontopofeachother|placeongrid|placenotes|placenamedformula|placenamedfloat|placement|placelocalnotes|placelocalfootnotes|placelistoftables|placelistofsynonyms|placelistofsorts|placelistofpublications|placelistoflogos|placelistofintermezzi|placelistofgraphics|placelistoffigures|placelistofchemicals|placelistofabbreviations|placelist|placelegend|placelayeredtext|placelayer|placeintermezzo|placeinitial|placeindex|placeholder|placehelp|placeheadtext|placeheadnumber|placegraphic|placeframed|placeformula|placefootnotes|placefloatwithsetups|placefloatcaption|placefloat|placefigure|placedbox|placecurrentformulanumber|placecontent|placecomments|placecombinedlist|placecitation|placechemical|placebtxrendering|placebookmarks|placeattachments|pitchfork|pickupgroupedcommand|pi|phook|phi|phantombox|phantom|perthousand|persianthousandsseparator|persiannumerals|persiandecimalseparator|persiandecimals|perp|permitspacesbetweengroups|permitcircumflexescape|permitcaretescape|periods|periodcentered|percentdimen|percent|pdfeTeX|pdfcolor|pdfbackendsetshade|pdfbackendsetpattern|pdfbackendsetpagesattribute|pdfbackendsetpageresource|pdfbackendsetpageattribute|pdfbackendsetname|pdfbackendsetinfo|pdfbackendsetextgstate|pdfbackendsetcolorspace|pdfbackendsetcatalog|pdfbackendcurrentresources|pdfbackendactualtext|pdfactualtext|pdfTeX|partial|part|parallel|paragraphmark|paletsize|pagestaterealpageorder|pagestaterealpage|pagereference|pagenumber|pageinjection|pagefigure|pagebreak|pagearea|page|owns|overtwoheadrightarrow|overtwoheadleftarrow|overstrikes|overstrike|overset|overrightharpoonup|overrightharpoondown|overrightarrow|overparentunderparent|overparenttext|overparent|overloaderror|overleftrightarrow|overleftharpoonup|overleftharpoondown|overleftarrow|overlaywidth|overlayrollbutton|overlayoffset|overlaylinewidth|overlaylinecolor|overlayimage|overlayheight|overlayfigure|overlaydepth|overlaycolor|overlaybutton|overbracketunderbracket|overbrackettext|overbracket|overbraceunderbrace|overbracetext|overbrace|overbarunderbar|overbartext|overbars|overbar|over|outputstreamunvcopy|outputstreamunvbox|outputstreamcopy|outputstreambox|outputfilename|otimes|otildemacron|otilde|ostrokeacute|ostroke|oslash|ornamenttext|ordmasculine|ordinalstr|ordinaldaynumber|ordfeminine|oplus|operatortext|operatorlanguage|oogonekmacron|oogonek|onethird|onesuperior|onesixth|onequarter|onehalf|onefifth|oneeighth|onedigitrounding|ominus|omicron|omega|omacron|oinvertedbreve|ointctrclockwise|ointclockwise|oint|oiint|oiiint|ohungarumlaut|ohorntilde|ohornhook|ohorngrave|ohorndotbelow|ohornacute|ohorn|ohook|ohm|ograve|offsetbox|offset|oeligature|odoublegrave|odotbelow|odotaccentmacron|odotaccent|odot|odiaeresismacron|odiaeresis|octstringtonumber|octnumber|ocircumflextilde|ocircumflexhook|ocircumflexgrave|ocircumflexdotbelow|ocircumflexacute|ocircumflex|ocaron|obreve|obox|objectwidth|objectmargin|objectheight|objectdepth|obeydepth|oacute|nwsearrow|nwarrow|nvrightarrow|nvleftrightarrow|nvleftarrow|nvdash|nvDash|numbers|numberofpoints|nu|ntrianglerighteq|ntriangleright|ntrianglelefteq|ntriangleleft|ntimes|ntilde|nsupseteq|nsupset|nsucccurlyeq|nsucc|nsubseteq|nsubset|nsqsupseteq|nsqsubseteq|nsimeq|nsim|nrightarrow|npreccurlyeq|nprec|nparallel|nowns|notragged|notopandbottomlines|notin|notesymbol|note|not|nospace|normaltypeface|normalslantedface|normalizetextwidth|normalizetextline|normalizetextheight|normalizetextdepth|normalizefontwidth|normalizefontline|normalizefontheight|normalizefontdepth|normalizedfontsize|normalizebodyfontsize|normalitalicface|normalframedwithsettings|normalboldface|normal|nonvalidassignment|nonmathematics|nonfrenchspacing|noitem|noindentation|nohyphens|noheightstrut|noheaderandfooterlines|noflocalfloats|noflinesinbox|noflines|noffigurepages|nodetostring|nocite|nocitation|nocharacteralign|nocap|nobreakspace|nobar|nni|nmid|nlesssim|nlessgtr|nless|nleq|nleftrightarrow|nleftarrow|njligature|nin|nihongo|ni|ngtrsim|ngtrless|ngtr|ngrave|ngeq|nextuserpagenumber|nextuserpage|nextsubpagenumber|nextsubpage|nextsubcountervalue|nextrealpagenumber|nextrealpage|nextparagraphs|nextdepth|nextcountervalue|nextcounter|nextboxwd|nextboxhtdp|nextboxht|nextboxdp|nextbox|nexists|newsystemmode|newsignal|newmode|newluatable|newfrenchspacing|newevery|newcounter|newcatcodetable|newattribute|neswarrow|nequiv|neq|neng|negthinspace|negenspace|negemspace|negativesign|negated|negatecolorbox|neg|nearrow|ne|ndivides|ncurl|ncong|ncommaaccent|ncaron|naturalwd|naturalvtop|naturalvpack|naturalvcenter|naturalvbox|naturaltpack|naturalnumbers|naturalhpack|naturalhbox|natural|nasymp|narrownobreakspace|napproxEq|napprox|napostrophe|namedtaggedlabeltexts|namedstructurevariable|namedstructureuservariable|namedstructureheadlocation|namedheadnumber|nacute|nabla|nVrightarrow|nVleftrightarrow|nVleftarrow|nVdash|nVDash|nRightarrow|nLeftrightarrow|nLeftarrow|nHuparrow|nHdownarrow|multimap|mu|mtwoheadrightarrow|mtwoheadleftarrow|mtriplerel|mtext|mrightoverleftarrow|mrightleftharpoons|mrightharpoonup|mrightharpoondown|mrightarrow|mrel|mprandomnumber|mp|monthshort|monthlong|month|mononormal|monobold|mono|molecule|moduleparameter|models|mmapsto|mleftrightharpoons|mleftrightarrow|mleftharpoonup|mleftharpoondown|mleftarrow|mkvibuffer|mixedcaps|mirror|minuscolon|minus|minimalhbox|midsubsentence|midhbox|middlebox|middlealigned|middle|midaligned|mid|mhookrightarrow|mhookleftarrow|mho|mhbox|mfunctionlabeltext|mfunction|mframed|mfence|message|mequal|menubutton|medspace|medskip|measuredeq|measuredangle|measured|measure|mcframed|mbox|maxaligned|mathwordtf|mathwordsl|mathwordit|mathwordbs|mathwordbi|mathwordbf|mathword|mathupright|mathunder|mathtt|mathtriplet|mathtf|mathtexttf|mathtextsl|mathtextit|mathtextbs|mathtextbi|mathtextbf|mathtext|mathss|mathsl|mathscript|mathrm|mathpercent|mathover|mathop|mathlabeltexts|mathlabeltext|mathlabellanguage|mathitalic|mathit|mathhyphen|mathhash|mathfunction|mathfraktur|mathematics|mathdouble|mathdollar|mathdefault|mathbs|mathblackboard|mathbi|mathbf|mathampersand|math|mat|markreferencepage|markpage|markinjector|marking|markedpages|markcontent|margintext|margindata|mapsup|mapsto|mapsfrom|mapsdown|mapfontsize|maltese|makestrutofbox|makerawcommalist|makecharacteractive|mainlanguage|mRightarrow|mLeftrightarrow|mLeftarrow|m|lvert|luaversion|luasetup|luaparameterset|luaminorversion|luametaTeX|luamajorversion|luajitTeX|luafunction|luaexpr|luaexpanded|luaenvironment|luaconditional|luacode|luaTeX|ltrvtop|ltrvbox|ltrhbox|ltop|ltimes|lt|lstroke|lrtbbox|lrointerval|lrcorner|lparent|lozenge|lowerrightsingleninequote|lowerrightdoubleninequote|lowerleftsingleninequote|lowerleftdoubleninequote|lowercasing|lowercasestring|lowercased|lowerbox|low|lor|looparrowright|looparrowleft|longrightsquigarrow|longrightarrow|longmapsto|longmapsfrom|longleftrightarrow|longleftarrow|lomihi|lointerval|lohi|logo|locfilename|locatefilepath|locatedfilepath|localundefine|localpushmacro|localpushbox|localpopmacro|localpopbox|localhsize|localframedwithsettings|localframed|loadtypescriptfile|loadtexfileonce|loadtexfile|loadspellchecklist|loadluafileonce|loadluafile|loadfontgoodies|loadcldfileonce|loadcldfile|loadbtxreplacementfile|loadbtxdefinitionfile|loadanyfileonce|loadanyfile|lnsim|lnot|lneqq|lneq|lnapprox|lmoustache|llointerval|llless|lll|llcorner|llbracket|llap|llangle|ll|ljligature|literalmode|listnamespaces|listlength|listcite|listcitation|linterval|linethickness|linespanningtext|linenote|linefillervtop|linefillervbox|linefillerhbox|linefeed|linebox|line|limitatetext|limitatelines|limitatefirstline|lhooksearrow|lhooknwarrow|lhbox|lgroup|lfloor|lfence|letvaluerelax|letvalueempty|letvalue|letterunderscore|lettertilde|letterspacing|letterslash|lettersinglequote|letterrightparenthesis|letterrightbracket|letterrightbrace|letterquestionmark|letterpercent|letteropenbrace|lettermore|letterless|letterleftparenthesis|letterleftbracket|letterleftbrace|letterhat|letterhash|letterexclamationmark|letterescape|letteregroup|letterdoublequote|letterdollar|lettercolon|letterclosebrace|letterbgroup|letterbar|letterbackslash|letterat|letterampersand|letgvalurelax|letgvalueempty|letgvalue|letempty|letdummyparameter|letcsnamecsname|letcsnamecs|letcscsname|letcatcodecommand|letbeundefined|lesssim|lessgtr|lesseqqgtr|lesseqgtr|lessdot|lessapprox|leqslant|leqq|leq|leftwhitearrow|leftwavearrow|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|lefttopbox|leftthreetimes|leftsubguillemot|leftsquigarrow|leftskipadaption|leftrightsquigarrow|leftrightharpoons|leftrightarrowtriangle|leftrightarrows|leftrightarrow|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftmathlabeltext|leftline|leftleftarrows|leftlabeltext|leftheadtext|lefthbox|leftharpoonup|leftharpoondown|leftguillemot|leftdasharrow|leftbox|leftbottombox|leftarrowtriangle|leftarrowtail|leftarrow|leftaligned|left|leadsto|le|ldots|ldotp|ldotmiddle|lcurl|lcommaaccent|lchexnumbers|lchexnumber|lceil|lcaron|lbracket|lbrace|lbox|lbar|lazysavetwopassdata|lazysavetaggedtwopassdata|layerwidth|layerheight|layeredtext|latin|lateluacode|lastuserpagenumber|lastuserpage|lasttwodigits|lastsubpagenumber|lastsubpage|lastsubcountervalue|lastrealpagenumber|lastrealpage|lastpredefinedsymbol|lastparwrapper|lastnaturalboxwd|lastnaturalboxht|lastnaturalboxdp|lastlinewidth|lastdigit|lastcountervalue|lastcounter|languagecharwidth|languagecharacters|languageCharacters|language|langle|land|lambdabar|lambda|lacute|labeltexts|labeltext|labellanguage|lVert|koreanparentnumerals|koreannumeralsp|koreannumeralsc|koreannumerals|koreancirclenumerals|kkra|khook|kerncharacters|keepunwantedspaces|keeplinestogether|keepblocks|kcommaaccent|kcaron|kappa|kap|jobfilesuffix|jobfilename|jmath|jcircumflex|jcaron|itilde|itemtag|items|item|italicface|italiccorrection|italicbold|italic|iota|iogonek|invokepagehandler|invisibletimes|intop|interwordspacesbefore|interwordspacesafter|interwordspaces|interwordspacebefore|interwordspaceafter|intertext|intercal|interactionmenu|interactionbuttons|interactionbar|integers|integerrounding|intclockwise|int|installversioninfo|installunitsspace|installunitsseparator|installtopframerenderer|installtextracker|installtexdirective|installswitchsetuphandler|installswitchcommandhandler|installstyleandcolorhandler|installsimpleframedcommandhandler|installsimplecommandhandler|installshipoutmethod|installsetuponlycommandhandler|installsetuphandler|installrootparameterhandler|installrightframerenderer|installprotectedctxscanner|installprotectedctxfunction|installparentinjector|installparametersethandler|installparameterhashhandler|installparameterhandler|installpagearrangement|installoutputroutine|installnamespace|installmacrostack|installleftframerenderer|installlanguage|installglobalmacrostack|installframedcommandhandler|installframedautocommandhandler|installdirectstyleandcolorhandler|installdirectsetuphandler|installdirectparametersethandler|installdirectparameterhandler|installdirectcommandhandler|installdefinitionsetmember|installdefinitionset|installdefinehandler|installctxscanner|installctxfunction|installcorenamespace|installcommandhandler|installbottomframerenderer|installbasicparameterhandler|installbasicautosetuphandler|installautosetuphandler|installautocommandhandler|installattributestack|installanddefineactivecharacter|installactivecharacter|installactionhandler|inspectluatable|insertpages|inrightmargin|inrightedge|inright|inputgivenfile|inputfilesuffix|inputfilerealsuffix|inputfilename|inputfilebarename|input|inoutermargin|inouteredge|inouter|inother|innerflushshapebox|inmframed|inmargin|inlinerange|inlineprettyprintbuffer|inlineordisplaymath|inlinemessage|inlinemathematics|inlinemath|inlinedbox|inlinebuffer|inline|inleftmargin|inleftedge|inleft|initializeboxstack|ininnermargin|ininneredge|ininner|inhibitblank|inheritparameter|infull|infty|inframed|infofontbold|infofont|index|indentation|incrementvalue|incrementsubpagenumber|incrementpagenumber|incrementedcounter|incrementcounter|increment|includeversioninfo|includesvgfile|includesvgbuffer|includemenu|in|imply|implies|impliedby|immediatesavetwopassdata|imath|imaginaryj|imaginaryi|imacron|ijligature|iinvertedbreve|iintop|iint|iiintop|iiint|iiiintop|iiiint|ihook|igrave|ignorevalue|ignoretagsinexport|ignoreimplicitspaces|iftrialtypesetting|ifparameters|ifinoutputstream|ifinobject|iff|ifassignment|idxfromluatable|idoublegrave|idotbelow|idotaccent|idiaeresis|ideographicspace|ideographichalffillspace|icircumflex|icaron|ibreve|ibox|iacute|hyphenatedword|hyphenatedurl|hyphenatedpar|hyphenatedhbox|hyphenatedfilename|hyphenatedfile|hyphenatedcoloredword|hyphen|htofstring|htdpofstring|hstroke|hspace|hsmashed|hsmashbox|hsmash|hslash|hsizefraction|hpos|hphantom|hpackedbox|hpackbox|horizontalpositionbar|horizontalgrowingbar|hookrightarrow|hookleftarrow|hl|himilo|hilo|highordinalstr|highlight|high|hideblocks|hiddencite|hiddencitation|hiddenbar|hglue|hexstringtonumber|hexnumber|helptext|heightspanningtext|heightofstring|heightanddepthofstring|hebrewnumerals|hebrewZayin|hebrewYod|hebrewVav|hebrewTsadifinal|hebrewTsadi|hebrewTet|hebrewTav|hebrewShin|hebrewSamekh|hebrewResh|hebrewQof|hebrewPefinal|hebrewPe|hebrewNunfinal|hebrewNun|hebrewMemfinal|hebrewMem|hebrewLamed|hebrewKaffinal|hebrewKaf|hebrewHet|hebrewHe|hebrewGimel|hebrewDalet|hebrewBet|hebrewAyin|hebrewAlef|heartsuit|headwidth|headvbox|headtextwidth|headtexts|headtextdistance|headtextcontent|headtext|headsetupspacing|headreferenceattributes|headnumberwidth|headnumberdistance|headnumbercontent|headnumber|headlanguage|headhbox|hdofstring|hcircumflex|hcaron|hboxreference|hboxofvbox|hbar|hat|hash|hanzi|hangul|handwritten|handletokens|halfwaybox|halfstrut|halflinestrut|hairspace|hairline|gurmurkhinumerals|gujaratinumerals|guilsingleright|guilsingleleft|gtrsim|gtrless|gtreqqless|gtreqless|gtrdot|gtrapprox|gt|gstroke|gsetboxlly|gsetboxllx|groupedcommand|grid|greekzeta|greekxi|greekvaria|greekupsilonvrachy|greekupsilonvaria|greekupsilontonos|greekupsilonpsilivaria|greekupsilonpsilitonos|greekupsilonpsiliperispomeni|greekupsilonpsili|greekupsilonperispomeni|greekupsilonoxia|greekupsilonmacron|greekupsilondialytikavaria|greekupsilondialytikatonos|greekupsilondialytikaperispomeni|greekupsilondiaeresis|greekupsilondasiavaria|greekupsilondasiatonos|greekupsilondasiaperispomeni|greekupsilondasia|greekupsilon|greektonos|greekthetaalt|greektheta|greektau|greekstigma|greeksigmalunate|greeksigma|greeksampi|greekrhopsili|greekrhodasia|greekrhoalt|greekrho|greekpsilivaria|greekpsiliperispomeni|greekpsili|greekpsi|greekprosgegrammeni|greekpialt|greekpi|greekphialt|greekphi|greekperispomeni|greekoxia|greekomicronvaria|greekomicrontonos|greekomicronpsilivaria|greekomicronpsilitonos|greekomicronpsili|greekomicronoxia|greekomicrondasiavaria|greekomicrondasiatonos|greekomicrondasia|greekomicron|greekomegavaria|greekomegatonos|greekomegapsilivaria|greekomegapsilitonos|greekomegapsiliperispomeni|greekomegapsili|greekomegaperispomeni|greekomegaoxia|greekomegaiotasubvaria|greekomegaiotasubtonos|greekomegaiotasubpsilivaria|greekomegaiotasubpsilitonos|greekomegaiotasubpsiliperispomeni|greekomegaiotasubpsili|greekomegaiotasubperispomeni|greekomegaiotasubdasiavaria|greekomegaiotasubdasiatonos|greekomegaiotasubdasiaperispomeni|greekomegaiotasubdasia|greekomegaiotasub|greekomegadasiavaria|greekomegadasiatonos|greekomegadasiaperispomeni|greekomegadasia|greekomega|greeknumkoppa|greeknumerals|greeknu|greekmu|greeklambda|greekkoppa|greekkappa|greekiotavrachy|greekiotavaria|greekiotatonos|greekiotapsilivaria|greekiotapsilitonos|greekiotapsiliperispomeni|greekiotapsili|greekiotaperispomeni|greekiotaoxia|greekiotamacron|greekiotadialytikavaria|greekiotadialytikatonos|greekiotadialytikaperispomeni|greekiotadialytika|greekiotadasiavaria|greekiotadasiatonos|greekiotadasiaperispomeni|greekiotadasia|greekiota|greekgamma|greekfinalsigma|greeketavaria|greeketatonos|greeketapsilivaria|greeketapsilitonos|greeketapsiliperispomeni|greeketapsili|greeketaperispomeni|greeketaoxia|greeketaiotasubvaria|greeketaiotasubtonos|greeketaiotasubpsilivaria|greeketaiotasubpsilitonos|greeketaiotasubpsiliperispomeni|greeketaiotasubpsili|greeketaiotasubperispomeni|greeketaiotasubdasiavaria|greeketaiotasubdasiatonos|greeketaiotasubdasiaperispomeni|greeketaiotasubdasia|greeketaiotasub|greeketadasiavaria|greeketadasiatonos|greeketadasiaperispomeni|greeketadasia|greeketa|greekepsilonvaria|greekepsilontonos|greekepsilonpsilivaria|greekepsilonpsilitonos|greekepsilonpsili|greekepsilonoxia|greekepsilondasiavaria|greekepsilondasiatonos|greekepsilondasia|greekepsilonalt|greekepsilon|greekdigamma|greekdialytikavaria|greekdialytikatonos|greekdialytikaperispomeni|greekdelta|greekdasiavaria|greekdasiaperispomeni|greekdasia|greekchi|greekbetaalt|greekbeta|greekalphavrachy|greekalphavaria|greekalphatonos|greekalphapsilivaria|greekalphapsilitonos|greekalphapsiliperispomeni|greekalphapsili|greekalphaperispomeni|greekalphaoxia|greekalphamacron|greekalphaiotasubvaria|greekalphaiotasubtonos|greekalphaiotasubpsilivaria|greekalphaiotasubpsilitonos|greekalphaiotasubpsiliperispomeni|greekalphaiotasubpsili|greekalphaiotasubperispomeni|greekalphaiotasubdasiavaria|greekalphaiotasubdasiatonos|greekalphaiotasubdasiaperispomeni|greekalphaiotasubdasia|greekalphaiotasub|greekalphadasiavaria|greekalphadasiatonos|greekalphadasiaperispomeni|greekalphadasia|greekalpha|greekZeta|greekXi|greekUpsilonvrachy|greekUpsilonvaria|greekUpsilontonos|greekUpsilonmacron|greekUpsilondialytika|greekUpsilondasiavaria|greekUpsilondasiatonos|greekUpsilondasiaperispomeni|greekUpsilondasia|greekUpsilon|greekTheta|greekTau|greekSigmalunate|greekSigma|greekRhodasia|greekRho|greekPsi|greekPi|greekPhi|greekOmicronvaria|greekOmicrontonos|greekOmicronpsilivaria|greekOmicronpsilitonos|greekOmicronpsili|greekOmicrondasiavaria|greekOmicrondasiatonos|greekOmicrondasia|greekOmicron|greekOmegavaria|greekOmegatonos|greekOmegapsilivaria|greekOmegapsilitonos|greekOmegapsiliperispomeni|greekOmegapsili|greekOmegaiotasubpsilivaria|greekOmegaiotasubpsilitonos|greekOmegaiotasubpsiliperispomeni|greekOmegaiotasubpsili|greekOmegaiotasubdasiavaria|greekOmegaiotasubdasiatonos|greekOmegaiotasubdasiaperispomeni|greekOmegaiotasubdasia|greekOmegaiotasub|greekOmegadasiavaria|greekOmegadasiatonos|greekOmegadasiaperispomeni|greekOmegadasia|greekOmega|greekNu|greekMu|greekLambda|greekKappa|greekIotavrachy|greekIotavaria|greekIotatonos|greekIotapsilivaria|greekIotapsilitonos|greekIotapsiliperispomeni|greekIotapsili|greekIotamacron|greekIotadialytika|greekIotadasiavaria|greekIotadasiatonos|greekIotadasiaperispomeni|greekIotadasia|greekIota|greekGamma|greekEtavaria|greekEtatonos|greekEtapsilivaria|greekEtapsilitonos|greekEtapsiliperispomeni|greekEtapsili|greekEtaiotasubpsilivaria|greekEtaiotasubpsilitonos|greekEtaiotasubpsiliperispomeni|greekEtaiotasubpsili|greekEtaiotasubdasiavaria|greekEtaiotasubdasiatonos|greekEtaiotasubdasiaperispomeni|greekEtaiotasubdasia|greekEtaiotasub|greekEtadasiavaria|greekEtadasiatonos|greekEtadasiaperispomeni|greekEtadasia|greekEta|greekEpsilonvaria|greekEpsilontonos|greekEpsilonpsilivaria|greekEpsilonpsilitonos|greekEpsilonpsili|greekEpsilondasiavaria|greekEpsilondasiatonos|greekEpsilondasia|greekEpsilon|greekDelta|greekCoronis|greekChi|greekBeta|greekAlphavrachy|greekAlphavaria|greekAlphatonos|greekAlphapsilivaria|greekAlphapsilitonos|greekAlphapsiliperispomeni|greekAlphapsili|greekAlphamacron|greekAlphaiotasubpsilivaria|greekAlphaiotasubpsilitonos|greekAlphaiotasubpsiliperispomeni|greekAlphaiotasubpsili|greekAlphaiotasubdasiavaria|greekAlphaiotasubdasiatonos|greekAlphaiotasubdasiaperispomeni|greekAlphaiotasubdasia|greekAlphaiotasub|greekAlphadasiavaria|greekAlphadasiatonos|greekAlphadasiaperispomeni|greekAlphadasia|greekAlpha|greedysplitstring|grayvalue|graycolor|grave|grabuntil|grabbufferdatadirect|grabbufferdata|gotopage|gotobox|goto|godown|gobbleuntilrelax|gobbleuntil|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblespacetokens|gobblesixarguments|gobblesingleempty|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|gobbledoubleempty|gnsim|gneqq|gnapprox|glyphfontfile|globalundefine|globalswapmacros|globalswapdimens|globalswapcounts|globalpushmacro|globalpushbox|globalprocesscommalist|globalpreventmode|globalpopmacro|globalpopbox|globalletempty|globalenablemode|globaldisablemode|gimel|gggtr|ggg|gg|getxparameters|getvariabledefault|getvariable|getvalue|getuvalue|getuserdata|gettwopassdatalist|gettwopassdata|gettokenlist|getsubstring|gets|getroundednoflines|getreferenceentry|getreference|getrawxparameters|getrawparameters|getrawnoflines|getrawgparameters|getraweparameters|getrandomseed|getrandomnumber|getrandomfloat|getrandomdimen|getrandomcount|getprivateslot|getprivatechar|getparwrapper|getparameters|getpaletsize|getobjectdimensions|getobject|getnoflines|getnaturaldimensions|getnamedtwopassdatalist|getnamedglyphstyled|getnamedglyphdirect|getmessage|getmarking|getlocalfloats|getlocalfloat|getlasttwopassdata|getinlineuserdata|getgparameters|getglyphstyled|getglyphdirect|getfromtwopassdata|getfromluatable|getfromcommalist|getfromcommacommand|getfirsttwopassdata|getfirstcharacter|getfiguredimensions|getexpandedparameters|geteparameters|getemptyparameters|getdummyparameters|getdocumentfilename|getdocumentargumentdefault|getdocumentargument|getdefinedbuffer|getdayspermonth|getdayoftheweek|getdatavalue|getcommalistsize|getcommacommandsize|getbufferdata|getbuffer|getboxlly|getboxllx|getboxfromcache|getMPlayer|getMPdrawing|geqslant|geqq|geq|ge|gdotaccent|gdefconvertedcommand|gdefconvertedargument|gcommaaccent|gcircumflex|gcaron|gbreve|gamma|gacute|frule|frozenhbox|frown|fromlinenote|from|frenchspacing|freezeparagraphproperties|freezemeasure|freezedimenmacro|framedtext|framedparameter|frameddimension|framed|frac|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourperemspace|fourfifths|foundbox|formulanumber|formula|forgetragged|forgetparwrapper|forgetparskip|forgetparameters|forgetparagraphfreezing|forgeteverypar|forcelocalfloats|forcecharacterstripping|forall|footnotetext|footnote|fontstyle|fontsize|fontfeaturelist|fontface|fontclassname|fontclass|fontcharbyindex|fontchar|fontbody|fontalternative|flushtoks|flushtokens|flushtextflow|flushshapebox|flushoutputstream|flushnotes|flushnextbox|flushlocalfloats|flushlayer|flushedrightlastline|flushcollector|flushboxregister|flushbox|floatuserdataparameter|flligature|flat|flag|fixedspaces|fixedspace|fivesixths|fiveeighths|fittopbaselinegrid|fitfieldframed|fitfield|firstuserpagenumber|firstuserpage|firstsubpagenumber|firstsubpage|firstsubcountervalue|firstrealpagenumber|firstrealpage|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinlist|firstcountervalue|firstcounter|firstcharacter|finishregisterentry|findtwopassdata|filterreference|filterpages|filterfromvalue|filterfromnext|fillupto|fillintext|fillinrules|fillinline|filler|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|filigature|filename|figurewidth|figuresymbol|figurespace|figurenaturalwidth|figurenaturalheight|figureheight|figurefullname|figurefiletype|figurefilepath|figurefilename|fifthofsixarguments|fifthoffivearguments|fieldstack|fieldbody|field|fhook|fflligature|ffligature|ffiligature|fetchtwomarks|fetchtwomarkings|fetchruntinecommand|fetchonemarking|fetchonemark|fetchmarking|fetchmark|fetchallmarks|fetchallmarkings|fenced|fence|feature|fastsxsy|fastswitchtobodyfont|fastsetupwithargumentswapped|fastsetupwithargument|fastsetup|fastscale|fastloopindex|fastloopfinal|fastlocalframed|fastincrement|fastdecrement|fallingdotseq|fakebox|externalfigurecollectionparameter|externalfigurecollectionminwidth|externalfigurecollectionminheight|externalfigurecollectionmaxwidth|externalfigurecollectionmaxheight|externalfigure|exponentiale|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifelse|expdoifcommonelse|expdoif|expandfontsynonym|expandeddoifnot|expandeddoifelse|expandeddoif|expanded|expandcheckedcsname|exitloopnow|exitloop|exists|executeifdefined|exclamdown|eunderparentfill|eunderbracketfill|eunderbracefill|eunderbarfill|etwoheadrightarrowfill|etilde|ethiopic|eth|eta|erightharpoonupfill|erightharpoondownfill|erightarrowfill|equiv|equalscolon|equaldigits|eqslantless|eqslantgtr|eqsim|eqless|eqgtr|eqeqeq|eqeq|eqcirc|eq|epsilon|epos|eoverparentfill|eoverbracketfill|eoverbracefill|eoverbarfill|eogonek|envvar|environment|env|enspace|enskip|enquad|endnote|endash|enabletrackers|enableregime|enableparpositions|enableoutputstream|enablemode|enableexperiments|enabledirectives|enableasciimode|emspace|emquad|emptyset|emptylines|emphasistypeface|emphasisboldface|emdash|emacron|em|ell|eleftrightarrowfill|eleftharpoonupfill|eleftharpoondownfill|eleftarrowfill|elapsedtime|elapsedsteptime|elapsedseconds|einvertedbreve|ehook|egrave|effect|efcparameter|efcminwidth|efcminheight|efcmaxwidth|efcmaxheight|edoublegrave|edotbelow|edotaccent|ediaeresis|edefconvertedargument|ecircumflextilde|ecircumflexhook|ecircumflexgrave|ecircumflexdotbelow|ecircumflexacute|ecircumflex|ecedilla|ecaron|ebreve|eacute|eTeX|dzligature|dzcaronligature|dummyparameter|dummydigit|dtail|dstroke|dpofstring|downzigzagarrow|downwhitearrow|downuparrows|downharpoonright|downharpoonleft|downdownarrows|downdasharrow|downarrow|dowithwargument|dowithrange|dowithpargument|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleverticalbar|doubleprime|doubleparent|doublecup|doublecap|doublebracket|doublebrace|doublebond|doublebar|dottedrightarrow|dottedcircle|dots|dotriplegroupempty|dotripleemptywithset|dotripleempty|dotripleargumentwithset|dotripleargument|dotplus|dotoks|dotminus|dotlessjstroke|dotlessj|dotlessi|dotlessJ|dotlessI|dotfskip|dotfill|doteqdot|doteq|dot|dosubtractfeature|dostepwiserecurse|dosomebreak|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dosetupcheckedinterlinespace|dosetrightskipadaption|dosetleftskipadaption|dosetattribute|dorotatebox|doresetattribute|doresetandafffeature|doreplacefeature|dorepeatwithcommand|dorecurse|dorechecknextindentation|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|doprocesslocalsetups|dopositionaction|dontpermitspacesbetweengroups|dontleavehmode|dontconvertfont|donothing|doloopoverlist|doloop|dollar|doindentation|doifvariableelse|doifvariable|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalueelse|doifvalue|doifurldefinedelse|doifunknownfontfeature|doifundefinedelse|doifundefinedcounter|doifundefined|doiftypingfileelse|doiftopofpageelse|doiftextflowelse|doiftextflowcollectorelse|doiftextelse|doiftext|doifsymbolsetelse|doifsymboldefinedelse|doifstructurelisthaspageelse|doifstructurelisthasnumberelse|doifstringinstringelse|doifsometokselse|doifsometoks|doifsomethingelse|doifsomething|doifsomespaceelse|doifsomebackgroundelse|doifsomebackground|doifsetupselse|doifsetups|doifsamestringelse|doifsamestring|doifsamelinereferenceelse|doifrighttoleftinboxelse|doifrightpagefloatelse|doifrightpageelse|doifreferencefoundelse|doifpositionsusedelse|doifpositionsonthispageelse|doifpositionsonsamepageelse|doifpositiononpageelse|doifpositionelse|doifpositionactionelse|doifpositionaction|doifposition|doifpatternselse|doifpathexistselse|doifpathelse|doifparentfileelse|doifparallelelse|doifoverlayelse|doifoverlappingelse|doifoutervmode|doifolderversionelse|doifoldercontextelse|doifoddpagefloatelse|doifoddpageelse|doifobjectreferencefoundelse|doifobjectfoundelse|doifnumberelse|doifnumber|doifnotvariable|doifnotvalue|doifnotsetups|doifnotsamestring|doifnotnumber|doifnotmode|doifnotinstring|doifnotinsidesplitfloat|doifnotinset|doifnothingelse|doifnothing|doifnotflagged|doifnotfile|doifnotescollected|doifnoteonsamepageelse|doifnotenv|doifnotemptyvariable|doifnotemptyvalue|doifnotempty|doifnotdocumentvariable|doifnotdocumentfilename|doifnotdocumentargument|doifnotcounter|doifnotcommon|doifnotcommandhandler|doifnotallmodes|doifnotallcommon|doifnot|doifnonzeropositiveelse|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextbgroupelse|doifnextbgroupcselse|doifmodeelse|doifmode|doifmessageelse|doifmeaningelse|doifmarkingelse|doifmainfloatbodyelse|doiflocfileelse|doiflocationelse|doiflistelse|doifleapyearelse|doiflayouttextlineelse|doiflayoutsomelineelse|doiflayoutdefinedelse|doiflayerdataelse|doiflanguageelse|doifitalicelse|doifintwopassdataelse|doifintokselse|doifinsymbolsetelse|doifinsymbolset|doifinstringelse|doifinstring|doifinsetelse|doifinset|doifinsertionelse|doifinputfileelse|doifinelementelse|doifincsnameelse|doifhelpelse|doifhasspaceelse|doiffontsynonymelse|doiffontpresentelse|doiffontfeatureelse|doiffontcharelse|doifflaggedelse|doiffirstcharelse|doiffileexistselse|doiffileelse|doiffiledefinedelse|doiffile|doiffigureelse|doiffieldcategoryelse|doiffieldbodyelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifenvelse|doifenv|doifemptyvariableelse|doifemptyvariable|doifemptyvalueelse|doifemptyvalue|doifemptytoks|doifemptyelse|doifempty|doifelsevariable|doifelsevaluenothing|doifelsevalue|doifelseurldefined|doifelseundefined|doifelsetypingfile|doifelsetopofpage|doifelsetextflowcollector|doifelsetextflow|doifelsetext|doifelsesymbolset|doifelsesymboldefined|doifelsestructurelisthaspage|doifelsestructurelisthasnumber|doifelsestringinstring|doifelsesometoks|doifelsesomething|doifelsesomespace|doifelsesomebackground|doifelsesetups|doifelsesamestring|doifelsesamelinereference|doifelserighttoleftinbox|doifelserightpagefloat|doifelserightpage|doifelsereferencefound|doifelsepositionsused|doifelsepositionsonthispage|doifelsepositionsonsamepage|doifelsepositiononpage|doifelsepositionaction|doifelseposition|doifelsepatterns|doifelsepathexists|doifelsepath|doifelseparwrapper|doifelseparentfile|doifelseparallel|doifelseoverlay|doifelseoverlapping|doifelseorientation|doifelseolderversion|doifelseoldercontext|doifelseoddpagefloat|doifelseoddpage|doifelseobjectreferencefound|doifelseobjectfound|doifelsenumber|doifelsenothing|doifelsenoteonsamepage|doifelsenonzeropositive|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelsemode|doifelsemessage|doifelsemeaning|doifelsemarking|doifelsemarkedpage|doifelsemarkedcontent|doifelsemainfloatbody|doifelselocfile|doifelselocation|doifelselist|doifelseleapyear|doifelselayouttextline|doifelselayoutsomeline|doifelselayoutdefined|doifelselayerdata|doifelselanguage|doifelseitalic|doifelseintwopassdata|doifelseintoks|doifelseinsymbolset|doifelseinstring|doifelseinset|doifelseinsertion|doifelseinputfile|doifelseinelement|doifelseindented|doifelseincsname|doifelsehelp|doifelsehasspace|doifelseframed|doifelsefontsynonym|doifelsefontpresent|doifelsefontfeature|doifelsefontchar|doifelseflagged|doifelsefirstchar|doifelsefileexists|doifelsefiledefined|doifelsefile|doifelsefigure|doifelsefieldcategory|doifelsefieldbody|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelseenv|doifelseemptyvariable|doifelseemptyvalue|doifelseempty|doifelsedrawingblack|doifelsedocumentvariable|doifelsedocumentfilename|doifelsedocumentargument|doifelsedimenstring|doifelsedimension|doifelsedefinedcounter|doifelsedefined|doifelsecurrentsynonymused|doifelsecurrentsynonymshown|doifelsecurrentsortingused|doifelsecurrentfonthasfeature|doifelsecounter|doifelseconversionnumber|doifelseconversiondefined|doifelsecommon|doifelsecommandhandler|doifelsecolor|doifelsebuffer|doifelseboxincache|doifelsebox|doifelseblack|doifelseassignmentcs|doifelseassignment|doifelseallmodes|doifelsealldefined|doifelseallcommon|doifelseMPgraphic|doifelse|doifdrawingblackelse|doifdocumentvariableelse|doifdocumentvariable|doifdocumentfilenameelse|doifdocumentfilename|doifdocumentargumentelse|doifdocumentargument|doifdimenstringelse|doifdimensionelse|doifdefinedelse|doifdefinedcounterelse|doifdefinedcounter|doifdefined|doifcurrentfonthasfeatureelse|doifcounterelse|doifcounter|doifconversionnumberelse|doifconversiondefinedelse|doifcontent|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifcolorelse|doifcolor|doifcheckedpagestate|doifbufferelse|doifboxelse|doifbothsidesoverruled|doifbothsides|doifblackelse|doifassignmentelsecs|doifassignmentelse|doifallmodeselse|doifallmodes|doifalldefinedelse|doifallcommonelse|doifallcommon|doifMPgraphicelse|doif|dohyphens|dogobblesingleempty|dogobbledoubleempty|dogetcommacommandelement|dogetattributeid|dogetattribute|dofastloopcs|doexpandedrecurse|doeassign|dodoublegroupempty|dodoubleemptywithset|dodoubleempty|dodoubleargumentwithset|dodoubleargument|documentvariable|docheckedpair|docheckassignment|doboundtext|doassignempty|doassign|doaddfeature|doadaptrightskip|doadaptleftskip|divides|divideontimes|dividedsize|div|distributedhsize|disposeluatable|displaymessage|displaymathematics|displaymath|disabletrackers|disableregime|disableparpositions|disableoutputstream|disablemode|disableexperiments|disabledirectives|dis|directvspacing|directsymbol|directsetup|directsetbar|directselect|directparwrapper|directluacode|directlocalframed|directhighlight|directgetboxlly|directgetboxllx|directdummyparameter|directcopyboxfromcache|directconvertedcounter|directcolored|directcolor|directboxfromcache|dimensiontocount|digits|digamma|differentiald|differentialD|diamondsuit|diamond|diameter|dhook|dfrac|devanagarinumerals|determineregistercharacteristics|determinenoflines|determinelistcharacteristics|determineheadnumber|depthstrut|depthspanningtext|depthonlybox|depthofstring|delta|delimitedtext|delimited|defrostparagraphproperties|definextable|definevspacingamount|definevspacing|definevspace|defineviewerlayer|defineuserdataalternative|defineuserdata|defineunit|definetyping|definetypesetting|definetypescriptsynonym|definetypescriptprefix|definetypeface|definetype|definetwopasslist|definetransparency|definetooltip|definetokenlist|definetextnote|definetextflow|definetextbackground|definetext|definetabulate|definetabletemplate|definesystemvariable|definesystemconstant|definesystemattribute|definesynonyms|definesynonym|definesymbol|definesubformula|definesubfield|definestyleinstance|definestyle|definestartstop|definespotcolor|definesorting|definesort|definesidebar|defineshift|defineseparatorset|defineselector|definesectionlevels|definesectionblock|definesection|definescript|definescale|defineruby|defineresetset|definerenderingwindow|defineregister|definereferenceformat|definereference|definepushsymbol|definepushbutton|defineprogram|defineprofile|defineprocessor|defineprocesscolor|defineprefixset|definepositioning|defineplacement|defineplaceholder|defineperiodkerning|defineparbuilder|defineparallel|defineparagraphs|defineparagraph|definepapersize|definepalet|definepairedbox|definepagestate|definepageshift|definepageinjectionalternative|definepageinjection|definepagecolumns|definepagechecker|definepagebreak|definepage|defineoverlay|defineoutputroutinecommand|defineoutputroutine|defineornament|defineorientation|definenote|definenarrower|definenamespace|definenamedcolor|definemultitonecolor|definemulticolumns|definemode|definemixedcolumns|definemessageconstant|definemeasure|definemathunstacked|definemathundertextextensible|definemathunderextensible|definemathunder|definemathtriplet|definemathstyle|definemathstackers|definemathradical|definemathovertextextensible|definemathoverextensible|definemathover|definemathornament|definemathmatrix|definemathframed|definemathfraction|definemathfence|definemathextensible|definemathematics|definemathdoubleextensible|definemathdouble|definemathcommand|definemathcases|definemathalignment|definemathaccent|definemarking|definemarker|definemargindata|definemarginblock|definemakeup|definelowmidhigh|definelowhigh|definelow|definelistextra|definelistalternative|definelist|definelines|definelinenumbering|definelinenote|definelinefiller|definelayout|definelayerpreset|definelayer|definelabelclass|definelabel|defineitems|defineitemgroup|defineintermediatecolor|defineinterlinespace|defineinterfacevariable|defineinterfaceelement|defineinterfaceconstant|defineinteractionmenu|defineinteractionbar|defineinteraction|defineinsertion|defineinitial|defineindenting|defineindentedtext|definehyphenationfeatures|definehspace|definehighlight|definehigh|definehelp|defineheadalternative|definehead|definehbox|definegridsnapping|definegraphictypesynonym|defineglobalcolor|definefrozenfont|defineframedtext|defineframedtable|defineframedcontent|defineframed|defineformulaframed|defineformulaalternative|defineformula|definefontsynonym|definefontstyle|definefontsolution|definefontsize|definefontfile|definefontfeature|definefontfamilypreset|definefontfamily|definefontfallback|definefontalternative|definefont|definefloat|definefittingpage|definefirstline|definefiller|definefilesynonym|definefilefallback|definefileconstant|definefiguresymbol|definefieldstack|definefieldcategory|definefieldbodyset|definefieldbody|definefield|definefallbackfamily|definefacingfloat|defineexternalfigure|defineexpansion|defineexpandable|defineenumeration|defineeffect|definedocument|definedfont|definedescription|definedeq|definedelimitedtext|definedate|definedataset|definecounter|defineconversionset|defineconversion|definecomplexorsimpleempty|definecomplexorsimple|definecomment|definecommand|definecombinedlist|definecombination|definecolumnsetspan|definecolumnsetarea|definecolumnset|definecolumnbreak|definecolorgroup|definecolor|definecollector|definechemicalsymbol|definechemicals|definechemical|definecharacterspacing|definecharacterkerning|definecharacter|definecapitals|definebutton|definebuffer|definebtxrendering|definebtxregister|definebtxdataset|definebtx|definebreakpoints|definebreakpoint|definebodyfontswitch|definebodyfontenvironment|definebodyfont|defineblock|definebar|definebackground|defineattribute|defineattachment|defineanchor|definealternativestyle|defineactivecharacter|defineaccent|defineTABLEsetup|defineMPinstance|define|defconvertedvalue|defconvertedcommand|defconvertedargument|defcatcodecommand|defaultobjectreference|defaultobjectpage|defaultinterface|decrementvalue|decrementsubpagenumber|decrementpagenumber|decrementedcounter|decrementcounter|decrement|ddots|ddot|dddot|ddagger|ddag|dcurl|dcaron|dbinom|dayspermonth|dayshort|dayoftheweek|daylong|date|datasetvariable|dashv|dashedrightarrow|dashedleftarrow|dasharrow|daleth|dagger|dag|d|cyrilliczhediaeresis|cyrilliczhedescender|cyrilliczhebreve|cyrilliczh|cyrilliczediaeresis|cyrilliczdsc|cyrillicz|cyrillicyu|cyrillicystrstroke|cyrillicystr|cyrillicyo|cyrillicyi|cyrillicyerudiaeresis|cyrillicyat|cyrillicya|cyrillicv|cyrillicushrt|cyrillicumacron|cyrillicuk|cyrillicudoubleacute|cyrillicudiaeresis|cyrillicu|cyrillictshe|cyrillictetse|cyrillictedc|cyrillict|cyrillicshha|cyrillicshch|cyrillicsh|cyrillicsftsn|cyrillicsemisoft|cyrillicsdsc|cyrillicschwadiaeresis|cyrillicschwa|cyrillics|cyrillicr|cyrillicpsi|cyrillicpemidhook|cyrillicp|cyrillicot|cyrillicomegatitlo|cyrillicomegaround|cyrillicomega|cyrillicodiaeresis|cyrillicobarreddiaeresis|cyrillicobarred|cyrillico|cyrillicnje|cyrillicn|cyrillicm|cyrilliclje|cyrilliclittleyusiotified|cyrilliclittleyus|cyrillicl|cyrillicksi|cyrillickoppa|cyrillickje|cyrillickavertstroke|cyrillickastroke|cyrillickahook|cyrillickadc|cyrillickabashkir|cyrillick|cyrillicje|cyrillicizhitsadoublegrave|cyrillicizhitsa|cyrillicishrttail|cyrillicishrt|cyrillicimacron|cyrillicii|cyrillicigrave|cyrillicie|cyrillicidiaeresis|cyrillici|cyrillichrdsn|cyrillichadc|cyrillicha|cyrillich|cyrillicgje|cyrillicgheupturn|cyrillicghestroke|cyrillicghemidhook|cyrillicg|cyrillicfita|cyrillicf|cyrillicery|cyrillicertick|cyrillicerev|cyrillicentail|cyrillicenhook|cyrillicenghe|cyrillicendc|cyrillicemtail|cyrilliceltail|cyrilliceiotified|cyrillicegrave|cyrillicediaeresis|cyrillicebreve|cyrillice|cyrillicdzhe|cyrillicdzeabkhasian|cyrillicdze|cyrillicdje|cyrillicd|cyrillicchevertstroke|cyrillicchekhakassian|cyrillicchediaeresis|cyrillicchedcabkhasian|cyrillicchedc|cyrilliccheabkhasian|cyrillicch|cyrillicc|cyrillicbigyusiotified|cyrillicbigyus|cyrillicb|cyrillicae|cyrillicadiaeresis|cyrillicabreve|cyrillica|cyrillicZHEdiaeresis|cyrillicZHEdescender|cyrillicZHEbreve|cyrillicZH|cyrillicZEdiaeresis|cyrillicZDSC|cyrillicZ|cyrillicYstrstroke|cyrillicYstr|cyrillicYU|cyrillicYO|cyrillicYI|cyrillicYERUdiaeresis|cyrillicYAT|cyrillicYA|cyrillicV|cyrillicUmacron|cyrillicUdoubleacute|cyrillicUdiaeresis|cyrillicUSHRT|cyrillicUK|cyrillicU|cyrillicTSHE|cyrillicTITLO|cyrillicTETSE|cyrillicTEDC|cyrillicT|cyrillicSHHA|cyrillicSHCH|cyrillicSH|cyrillicSFTSN|cyrillicSEMISOFT|cyrillicSDSC|cyrillicSCHWAdiaeresis|cyrillicSCHWA|cyrillicS|cyrillicR|cyrillicPSILIPNEUMATA|cyrillicPSI|cyrillicPEmidhook|cyrillicPALOCHKA|cyrillicPALATALIZATION|cyrillicP|cyrillicOdiaeresis|cyrillicObarreddiaeresis|cyrillicObarred|cyrillicOT|cyrillicOMEGAtitlo|cyrillicOMEGAround|cyrillicOMEGA|cyrillicO|cyrillicNJE|cyrillicN|cyrillicM|cyrillicLJE|cyrillicLITTLEYUSiotified|cyrillicLITTLEYUS|cyrillicL|cyrillicKSI|cyrillicKOPPA|cyrillicKJE|cyrillicKAvertstroke|cyrillicKAstroke|cyrillicKAhook|cyrillicKAbashkir|cyrillicKADC|cyrillicK|cyrillicJE|cyrillicImacron|cyrillicIgrave|cyrillicIdiaeresis|cyrillicIZHITSAdoublegrave|cyrillicIZHITSA|cyrillicISHRTtail|cyrillicISHRT|cyrillicII|cyrillicIE|cyrillicI|cyrillicHRDSN|cyrillicHADC|cyrillicHA|cyrillicH|cyrillicGJE|cyrillicGHEupturn|cyrillicGHEstroke|cyrillicGHEmidhook|cyrillicG|cyrillicFITA|cyrillicF|cyrillicEiotified|cyrillicEgrave|cyrillicEdiaeresis|cyrillicEbreve|cyrillicERtick|cyrillicERY|cyrillicEREV|cyrillicENtail|cyrillicENhook|cyrillicENGHE|cyrillicENDC|cyrillicEMtail|cyrillicELtail|cyrillicE|cyrillicDZHE|cyrillicDZEabkhasian|cyrillicDZE|cyrillicDJE|cyrillicDASIAPNEUMATA|cyrillicD|cyrillicCHEvertstroke|cyrillicCHEkhakassian|cyrillicCHEdiaeresis|cyrillicCHEabkhasian|cyrillicCHEDCabkhasian|cyrillicCHEDC|cyrillicCH|cyrillicC|cyrillicBIGYUSiotified|cyrillicBIGYUS|cyrillicB|cyrillicAdiaeresis|cyrillicAbreve|cyrillicAE|cyrillicA|cwopencirclearrow|curvearrowright|curvearrowleft|currentxtablerow|currentxtablecolumn|currentvalue|currenttime|currentresponses|currentregisterpageuserdata|currentregime|currentproject|currentproduct|currentoutputstream|currentmoduleparameter|currentmessagetext|currentmainlanguage|currentlistsymbol|currentlistentrytitlerendered|currentlistentrytitle|currentlistentryreferenceattribute|currentlistentrypagenumber|currentlistentrynumber|currentlistentrylimitedtext|currentlistentrydestinationattribute|currentlanguage|currentinterface|currentheadnumber|currentfeaturetest|currentenvironment|currentdate|currentcomponent|currentcommalistitem|currentbtxuservariable|currentassignmentlistvalue|currentassignmentlistkey|curlywedge|curlyvee|curlyeqsucc|curlyeqprec|cup|ctxsprint|ctxreport|ctxluacode|ctxluabuffer|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|ctop|cstroke|crlfplaceholder|crlf|crightoverleftarrow|crightarrow|crampedrlap|crampedllap|crampedclap|cramped|counttokens|counttoken|countersubs|correctwhitespace|copyunittext|copytaglabeltext|copysuffixtext|copysetups|copyright|copyprefixtext|copyposition|copyparameters|copypages|copyoperatortext|copymathlabeltext|copylabeltext|copyheadtext|copyfield|copybtxlabeltext|copyboxfromcache|coprod|convertvboxtohbox|convertvalue|convertnumber|convertmonth|convertedsubcounter|converteddimen|convertedcounter|convertcommand|convertargument|continueifinputfile|continuednumber|contentreference|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|cong|compresult|compounddiscretionary|composedlayer|composedcollector|component|complexorsimpleempty|complexorsimple|complexes|completeregister|completepagenumber|completelistoftables|completelistofsynonyms|completelistofsorts|completelistofpublications|completelistoflogos|completelistofintermezzi|completelistofgraphics|completelistoffigures|completelistofchemicals|completelistofabbreviations|completelist|completeindex|completecontent|completebtxrendering|complement|comparepalet|comparedimensioneps|comparedimension|comparecolorgroup|comment|commalistsize|commalistsentence|commalistelement|combinepages|columnsetspanwidth|columnbreak|column|colorvalue|coloronly|colored|colorcomponents|colorbar|color|colonequals|coloncolonequals|colon|collectexpanded|collectedtext|collect|clubsuit|clonefield|clippedoverlayimage|clip|cleftarrow|cldprocessfile|cldloadfile|cldcontext|cldcommand|classfont|clap|cite|citation|circleonrightarrow|circledequals|circleddash|circledcirc|circledast|circledS|circledR|circlearrowright|circlearrowleft|circeq|circ|chook|chinesenumerals|chinesecapnumerals|chineseallnumerals|chi|chemicaltoptext|chemicaltext|chemicalsymbol|chemicalmidtext|chemicalbottext|chemical|chem|checkvariables|checktwopassdata|checksoundtrack|checkpreviousinjector|checkparameters|checkpage|checknextinjector|checknextindentation|checkmark|checkinjector|checkedstrippedcsname|checkedfiller|checkedchar|checkedblank|checkcharacteralign|check|charwidthlanguage|chardescription|characters|character|chapter|cfrac|centerline|centerednextbox|centeredlastline|centeredbox|centerdot|centerbox|centeraligned|cdots|cdotp|cdotaccent|cdot|ccurl|ccircumflex|ccedilla|ccaron|cbox|catcodetablename|carriagereturn|capital|cap|camel|calligraphic|cacute|button|bullet|buildtextognek|buildtextmacron|buildtextgrave|buildtextcedilla|buildtextbottomdot|buildtextbottomcomma|buildtextaccent|buildmathaccent|btxtextcitation|btxsingularplural|btxsingularorplural|btxsetup|btxsavejournalist|btxremapauthor|btxoneorrange|btxloadjournalist|btxlistcitation|btxlabeltext|btxlabellanguage|btxhybridcite|btxhiddencitation|btxfoundtype|btxfoundname|btxflushsuffix|btxflushauthornormalshort|btxflushauthornormal|btxflushauthorname|btxflushauthorinvertedshort|btxflushauthorinverted|btxflushauthor|btxflush|btxfirstofrange|btxfieldtype|btxfieldname|btxfield|btxexpandedjournal|btxdoifuservariableelse|btxdoifsameaspreviouselse|btxdoifsameaspreviouscheckedelse|btxdoifnot|btxdoifelseuservariable|btxdoifelsesameaspreviouschecked|btxdoifelsesameasprevious|btxdoifelsecombiinlist|btxdoifelse|btxdoifcombiinlistelse|btxdoif|btxdirect|btxdetail|btxauthorfield|btxalwayscitation|btxaddjournal|btxabbreviatedjournal|bstroke|breve|breakhere|breakablethinspace|bpos|boxtimes|boxreference|boxplus|boxofsize|boxminus|boxmarker|boxdot|boxcursor|bowtie|bottomrightbox|bottomleftbox|bottombox|bot|bordermatrix|booleanmodevalue|bookmark|boldslanted|bolditalic|boldface|bold|bodyfontsize|bodyfontenvironmentlist|blockuservariable|blocksynctexfile|blockquote|blockligatures|bleedwidth|bleedheight|bleed|blap|blank|blacktriangleright|blacktriangleleft|blacktriangledown|blacktriangle|blacksquare|blackrules|blackrule|blacklozenge|bitmapimage|binom|bigwedge|bigvee|biguplus|bigudot|bigtriangleup|bigtriangledown|bigtimes|bigstar|bigsquare|bigsqcup|bigsqcap|bigskip|bigr|bigotimes|bigoplus|bigodot|bigm|bigl|biggr|biggm|biggl|bigger|bigg|bigdiamond|bigcup|bigcircle|bigcirc|bigcap|bigbodyfont|big|bhook|between|beth|beta|beforetestandsplitstring|beforesplitstring|because|bbox|bbordermatrix|baselinerightbox|baselinemiddlebox|baselineleftbox|baselinebottom|basegrid|barwedge|barovernorthwestarrow|barleftarrowrightarrowbar|barleftarrow|bar|backslash|backsim|backprime|backgroundline|backgroundimagefill|backgroundimage|background|backepsilon|averagecharwidth|availablehsize|autosetups|autorule|autopagestaterealpageorder|autopagestaterealpage|autoorientation|automathematics|autointegral|autoinsertnextspace|autodirvtop|autodirvbox|autodirhbox|autocap|attachment|atrightmargin|atpage|atleftmargin|atilde|at|asymp|astype|ast|assumelongusagecs|assignwidth|assignvalue|assigntranslation|assignifempty|assigndimension|assigndimen|assignalfadimension|aside|asciistr|asciimode|arrowvert|aringacute|aring|arg|arabicwasallam|arabicvowelyeh|arabicvowelwaw|arabictripledot|arabicstartofrubc|arabicslcm|arabicshighthreedots|arabicsemicolon|arabicsanah|arabicsamvat|arabicsalla|arabicsajdah|arabicsafha|arabicrialsign|arabicray|arabicrasoul|arabicquestion|arabicqala|arabicpoeticverse|arabicpertenthousand|arabicpermille|arabicperiod|arabicpercent|arabicparenright|arabicparenleft|arabicnumerals|arabicnumberabove|arabicnumber|arabicmuhammad|arabicmisra|arabiclowseen|arabiclownoonkasra|arabiclowmeemlong|arabiclettermark|arabicjallajalalouhou|arabichighzain|arabichighyeh|arabichighwaqf|arabichighthalatha|arabichightakhallus|arabichightah|arabichighsmallsafha|arabichighseen|arabichighsallallahou|arabichighsakta|arabichighsajda|arabichighsad|arabichighrubc|arabichighrahmatullahalayhe|arabichighradiallahouanhu|arabichighqif|arabichighqaf|arabichighnoonkasra|arabichighnoon|arabichighnisf|arabichighmeemshort|arabichighmeemlong|arabichighmadda|arabichighlamalef|arabichighjeem|arabichighfootnotemarker|arabichighesala|arabichigheqala|arabichighalayheassallam|arabichighain|arabicfourthroot|arabicfootnotemarker|arabicexnumerals|arabicendofayah|arabicdisputedendofayah|arabicdecimals|arabicdateseparator|arabiccuberoot|arabiccomma|arabicbasmalah|arabicasterisk|arabicallallahou|arabicallah|arabicalayhe|arabicakbar|approxnEq|approxeq|approxEq|approx|applytowords|applytosplitstringwordspaced|applytosplitstringword|applytosplitstringlinespaced|applytosplitstringline|applytosplitstringcharspaced|applytosplitstringchar|applytofirstcharacter|applytocharacters|applyprocessor|applyalternativestyle|apply|appendvalue|appendtoksonce|appendtoks|appendtocommalist|appendgvalue|appendetoks|aogonek|angle|anchor|ampersand|amalg|amacron|alwayscite|alwayscitation|alphabeticnumerals|alpha|allinputpaths|alignmentcharacter|alignhere|alignedline|alignedbox|aligned|alignbottom|aleph|ainvertedbreve|ahook|agrave|aftertestandsplitstring|aftersplitstring|afghanicurrency|aemacron|aeligature|aeacute|adoublegrave|adotbelow|adotaccentmacron|adotaccent|adiaeresismacron|adiaeresis|addvalue|addtocommalist|addtoJSpreamble|addfeature|adaptpapersize|adaptlayout|adaptfontfeature|adaptcollector|acwopencirclearrow|acute|actuarial|actualyear|actualmonth|actualday|activatespacehandler|acircumflextilde|acircumflexhook|acircumflexgrave|acircumflexdotbelow|acircumflexacute|acircumflex|acaron|abrevetilde|abrevehook|abrevegrave|abrevedotbelow|abreveacute|abreve|about|abjadnumerals|abjadnodotnumerals|abjadnaivenumerals|abbreviation|aacute|Zstroke|Zhook|Zeta|Zdotaccent|Zcaron|Zacute|Ytilde|Ymacron|Yhook|Ygrave|Ydotbelow|Ydiaeresis|Ycircumflex|Yacute|Xi|XeTeX|XETEX|Words|Word|WidthSpanningText|Wcircumflex|WORDS|WORD|WEEKDAY|Vvdash|Vhook|Vert|VerboseNumber|Vdash|VDash|Uuparrow|Utilde|Uring|Upsilon|Updownarrow|Uparrow|Uogonek|Umacron|Uinvertedbreve|Uhungarumlaut|Uhorntilde|Uhornhook|Uhorngrave|Uhorndotbelow|Uhornacute|Uhorn|Uhook|Ugrave|Udoublegrave|Udotbelow|Udiaeresismacron|Udiaeresisgrave|Udiaeresiscaron|Udiaeresisacute|Udiaeresis|Ucircumflex|Ucaron|Ubreve|Uacute|Tstroke|TransparencyHack|Thorn|Thook|Theta|TheNormalizedFontSize|TeX|Tcommaaccent|Tcedilla|Tcaron|Tau|TaBlE|TEX|TABLE|Swarrow|Supset|Subset|Smallcapped|Sigma|Searrow|Scommaaccent|Scircumflex|Schwa|Scedilla|Scaron|ScaledPointsToWholeBigPoints|ScaledPointsToBigPoints|Sacute|S|Rsh|Rrightarrow|Romannumerals|Rinvertedbreve|Rightarrow|Rho|Relbar|ReadFile|Re|Rdsh|Rdoublegrave|Rcommaaccent|Rcaron|Racute|PtToCm|Psi|PropertyLine|PointsToWholeBigPoints|PointsToReal|PointsToBigPoints|Plankconst|PiCTeX|Pi|Phook|Phi|PRAGMA|PPCHTeX|PPCHTEX|PICTEX|PDFcolor|PDFTEX|PDFETEX|P|Otildemacron|Otilde|Ostrokeacute|Ostroke|Oogonekmacron|Oogonek|Omicron|Omega|Omacron|Oinvertedbreve|Ohungarumlaut|Ohorntilde|Ohornhook|Ohorngrave|Ohorndotbelow|Ohornacute|Ohorn|Ohook|Ograve|Odoublegrave|Odotbelow|Odotaccentmacron|Odotaccent|Odiaeresismacron|Odiaeresis|Ocircumflextilde|Ocircumflexhook|Ocircumflexgrave|Ocircumflexdotbelow|Ocircumflexacute|Ocircumflex|Ocaron|Obreve|Oacute|OEligature|Nwarrow|Numbers|Nu|Ntilde|NormalizeTextWidth|NormalizeTextHeight|NormalizeFontWidth|NormalizeFontHeight|Njligature|Ngrave|Neng|Nearrow|Ncommaaccent|Ncaron|Nacute|NJligature|Mu|MetaPost|MetaFun|MetaFont|Mapsto|Mapsfrom|MPy|MPxywhd|MPxy|MPx|MPwhd|MPw|MPvv|MPvariable|MPvar|MPv|MPur|MPul|MPtransparency|MPtext|MPstring|MPrs|MPrightskip|MPrest|MPregion|MPrawvar|MPr|MPposset|MPpositiongraphic|MPpos|MPplus|MPpardata|MPpage|MPp|MPoverlayanchor|MPoptions|MPn|MPmenubuttons|MPls|MPlr|MPll|MPleftskip|MPinclusions|MPh|MPgetposboxes|MPgetmultishape|MPgetmultipars|MPfontsizehskip|MPdrawing|MPd|MPcolumn|MPcoloronly|MPcolor|MPcode|MPc|MPbetex|MPanchor|MPXL|MPVI|MPLX|MPIV|MPII|MONTHSHORT|MONTHLONG|MONTH|MKXL|MKXI|MKVI|MKLX|MKIX|MKIV|MKII|METAPOST|METAFUN|METAFONT|LuajitTeX|LuaTeX|LuaMetaTeX|Lua|Lstroke|Lsh|Longrightarrow|Longmapsto|Longmapsfrom|Longleftrightarrow|Longleftarrow|Lleftarrow|Ljligature|Leftrightarrow|Leftarrow|Ldsh|Ldotmiddle|Lcommaaccent|Lcaron|Lbar|Lambda|LamSTeX|Lacute|LaTeX|LUATEX|LUAMETATEX|LUAJITTEX|LJligature|LATEX|LAMSTEX|Khook|Kcommaaccent|Kcaron|Kappa|Join|Jcircumflex|Itilde|Istroke|Iota|Iogonek|Imacron|Im|Iinvertedbreve|Ihook|Igrave|Idoublegrave|Idotbelow|Idotaccent|Idiaeresis|Icircumflex|Icaron|Ibreve|Iacute|INRSTEX|IJligature|Hstroke|Hcircumflex|Hcaron|Hat|Gstroke|Greeknumerals|GotoPar|Ghook|GetPar|Gdotaccent|Gcommaaccent|Gcircumflex|Gcaron|Gbreve|Gamma|Game|Gacute|Finv|Fhook|EveryPar|EveryLine|Eulerconst|Etilde|Eth|Eta|Epsilon|Eogonek|Emacron|Einvertedbreve|Ehook|Egrave|Edoublegrave|Edotbelow|Edotaccent|Ediaeresis|Ecircumflextilde|Ecircumflexhook|Ecircumflexgrave|Ecircumflexdotbelow|Ecircumflexacute|Ecircumflex|Ecedilla|Ecaron|Ebreve|Eacute|ETEX|Dzligature|Dzcaronligature|Dstroke|Downarrow|Doteq|Dhook|Delta|Ddownarrow|Dcaron|Dafrican|DZligature|DZcaronligature|DAYSHORT|DAYLONG|Cup|Cstroke|ConvertToConstant|ConvertConstantAfter|Context|ConTeXt|Chook|Chi|Characters|Character|Cdotaccent|Ccircumflex|Ccedilla|Ccaron|Caps|Cap|Cacute|CONTEXT|Bumpeq|Box|Bigr|Bigm|Bigl|Biggr|Biggm|Biggl|Bigg|Big|Bhook|Beta|BeforePar|Atilde|Astroke|Arrowvert|Aringacute|Aring|Aogonek|Angstrom|And|Amacron|AmSTeX|Alphabeticnumerals|Alpha|Ainvertedbreve|Ahook|Agrave|AfterPar|Adoublegrave|Adotbelow|Adotaccentmacron|Adotaccent|Adiaeresismacron|Adiaeresis|Acircumflextilde|Acircumflexhook|Acircumflexgrave|Acircumflexdotbelow|Acircumflexacute|Acircumflex|Acaron|Abrevetilde|Abrevehook|Abrevegrave|Abrevedotbelow|Abreveacute|Abreve|Aacute|AMSTEX|AEmacron|AEligature|AEacute)(?=[^a-zA-Z])",
+ "match" : "\u005C\u005C(zwnj|zwj|zstroke|zhook|zeta|zerowidthspace|zerowidthnobreakspace|zeronumberconversion|zdotaccent|zcaron|zacute|ytilde|ymacron|yiddishnumerals|yhook|ygrave|yen|ydotbelow|ydiaeresis|ycircumflex|yacute|xypos|xxfrac|xtwoheadrightarrow|xtwoheadleftarrow|xtriplerel|xsplitstring|xrightoverleftarrow|xrightleftharpoons|xrightharpoonup|xrightharpoondown|xrightarrow|xrel|xmlverbatim|xmlvalue|xmltofile|xmltobufferverbose|xmltobuffer|xmltext|xmltexentity|xmltag|xmlstrippednolines|xmlstripped|xmlstripnolines|xmlstrip|xmlsnippet|xmlshow|xmlsetup|xmlsetsetup|xmlsetparam|xmlsetpar|xmlsetinjectors|xmlsetfunction|xmlsetentity|xmlsetattribute|xmlsetatt|xmlsave|xmlresetsetups|xmlresetinjectors|xmlresetdocumentsetups|xmlremovesetup|xmlremovedocumentsetup|xmlremapnamespace|xmlremapname|xmlregisterns|xmlregisteredsetups|xmlregistereddocumentsetups|xmlrefatt|xmlraw|xmlpure|xmlprocessfile|xmlprocessdata|xmlprocessbuffer|xmlprettyprinttext|xmlprettyprint|xmlprependsetup|xmlprependdocumentsetup|xmlposition|xmlpos|xmlpath|xmlparam|xmlpar|xmlnonspace|xmlnamespace|xmlname|xmlmapvalue|xmlmain|xmlloadonly|xmlloadfile|xmlloaddirectives|xmlloaddata|xmlloadbuffer|xmllastpar|xmllastmatch|xmllastatt|xmllast|xmlinstalldirective|xmlinlineverbatim|xmlinlineprettyprinttext|xmlinlineprettyprint|xmlinjector|xmlinfo|xmlinclusions|xmlinclusion|xmlinclude|xmlflushtext|xmlflushspacewise|xmlflushpure|xmlflushlinewise|xmlflushdocumentsetups|xmlflushcontext|xmlflush|xmlfirst|xmlfilter|xmlelement|xmldoiftext|xmldoifselfempty|xmldoifnottext|xmldoifnotselfempty|xmldoifnotatt|xmldoifnot|xmldoifelsevalue|xmldoifelsetext|xmldoifelseselfempty|xmldoifelseempty|xmldoifelseatt|xmldoifelse|xmldoifatt|xmldoif|xmldisplayverbatim|xmldirectivesbefore|xmldirectivesafter|xmldirectives|xmldepth|xmldefaulttotext|xmlcount|xmlcontext|xmlconcatrange|xmlconcat|xmlcommand|xmlchecknamespace|xmlchainattdef|xmlchainatt|xmlbeforesetup|xmlbeforedocumentsetup|xmlbadinclusions|xmlattributedef|xmlattribute|xmlattdef|xmlatt|xmlapplyselectors|xmlappendsetup|xmlappenddocumentsetup|xmlall|xmlaftersetup|xmlafterdocumentsetup|xmladdindex|xmapsto|xleftrightharpoons|xleftrightarrow|xleftharpoonup|xleftharpoondown|xleftarrow|xi|xhookrightarrow|xhookleftarrow|xfrac|xequal|xdefconvertedargument|xRightarrow|xLeftrightarrow|xLeftarrow|writetolist|writestatus|writedatatolist|writebetweenlist|wr|wp|wordtonumber|words|wordright|word|withoutpt|widthspanningtext|widthofstring|widetilde|widehat|widegrave|whitearrowupfrombar|weekday|wedgeeq|wedge|wdofstring|wcircumflex|vspacing|vspace|vsmashed|vsmashbox|vsmash|vpos|vphantom|vpackedbox|vpackbox|vl|viewerlayer|vglue|veryraggedright|veryraggedleft|veryraggedcenter|verticalpositionbar|verticalgrowingbar|vert|version|verbosenumber|verbatimstring|verbatim|veeeq|veebar|vee|vec|vdots|vdash|vboxreference|vartheta|varsigma|varrho|varpi|varphi|varnothing|varkappa|varepsilon|varTheta|validassignment|vDash|utilityregisterlength|utilde|utfupper|utflower|utfchar|usezipfile|useurl|usetypescriptfile|usetypescript|usetexmodule|usesymbols|usesubpath|usestaticMPfigure|usesetupsparameter|userpagenumber|usereferenceparameter|useproject|useprofileparameter|useproduct|usemodule|usemathstyleparameter|useluatable|useluamodule|uselanguageparameter|useinterlinespaceparameter|useindentnextparameter|useindentingparameter|usehyphensparameter|usegridparameter|usefontpath|usefile|usefigurebase|useexternalsoundtrack|useexternalrendering|useexternalfigure|useexternaldocument|useenvironment|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedirectory|usecomponent|usecolors|usecitation|usebtxdefinitions|usebtxdataset|usebodyfontparameter|usebodyfont|useblocks|useblankparameter|usealignparameter|useURL|useMPvariables|useMPrun|useMPlibrary|useMPgraphic|useMPenvironmentbuffer|useJSscripts|url|uring|urcorner|upwhitearrow|upuparrows|upsilon|upperrightsinglesixquote|upperrightsingleninequote|upperrightdoublesixquote|upperrightdoubleninequote|upperleftsinglesixquote|upperleftsingleninequote|upperleftdoublesixquote|upperleftdoubleninequote|uppercasing|uppercasestring|uppercased|uplus|upharpoonright|upharpoonleft|updownarrows|updownarrowbar|updownarrow|updateparagraphshapes|updateparagraphproperties|updateparagraphpenalties|updateparagraphdemerits|updasharrow|uparrow|upand|uogonek|untexcommand|untexargument|unstackscripts|unspacestring|unspaced|unspaceargument|unspaceafter|unregisterparwrapper|unregisterhyphenationpattern|unprotected|unknown|unittext|unitslow|unitshigh|unitlanguage|unit|uniqueMPpagegraphic|uniqueMPgraphic|unihex|unhhbox|unframed|unexpandeddocumentvariable|undoassign|undertwoheadrightarrow|undertwoheadleftarrow|understrikes|understrike|underset|underrightharpoonup|underrightharpoondown|underrightarrow|underrandoms|underrandom|underparenttext|underparent|underleftrightarrow|underleftharpoonup|underleftharpoondown|underleftarrow|underdots|underdot|underdashes|underdash|underbrackettext|underbracket|underbracetext|underbrace|underbartext|underbars|underbar|undepthed|undefinevalue|umacron|ulcorner|uinvertedbreve|uhungarumlaut|uhorntilde|uhornhook|uhorngrave|uhorndotbelow|uhornacute|uhorn|uhook|ugrave|uedcatcodecommand|udoublegrave|udots|udotbelow|udiaeresismacron|udiaeresisgrave|udiaeresiscaron|udiaeresisacute|udiaeresis|uconvertnumber|ucircumflex|uchexnumbers|uchexnumber|ucaron|ubreve|uacute|typesetfile|typesetbufferonly|typesetbuffer|typescripttwo|typescriptthree|typescriptprefix|typescriptone|typeinlinebuffer|typefile|typeface|typedefinedbuffer|typebuffer|type|typ|txx|tx|twothirds|twosuperior|twoheaduparrow|twoheadrightarrowtail|twoheadrightarrow|twoheadleftarrow|twoheaddownarrow|twofifths|twodigitrounding|turnediota|ttwoheadrightarrow|ttwoheadleftarrow|ttriplerel|ttraggedright|tstroke|truefontname|truefilename|tripleverticalbar|tripleprime|triplebond|trightoverleftarrow|trightleftharpoons|trightharpoonup|trightharpoondown|trightarrow|triangleright|triangleq|triangleleft|triangledown|triangle|trel|transparent|transparencycomponents|translate|trademark|tracepositions|traceoutputroutines|tracedpagestate|tracedfontname|tracecatcodetables|topskippedbox|toprightbox|toplinebox|topleftbox|topbox|top|tooltip|tolinenote|tochar|to|tmapsto|tleftrightharpoons|tleftrightarrow|tleftharpoonup|tleftharpoondown|tleftarrow|tlap|title|tinyfont|times|tilde|tightlayer|tibetannumerals|threesuperior|threequarter|threeperemspace|threefifths|threeeighths|threedigitrounding|thorn|thookrightarrow|thookleftarrow|thook|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thinspace|thinrules|thinrule|thickspace|theta|theremainingcharacters|therefore|theorientation|thenormalizedbodyfontsize|thematrix|thefirstcharacter|thedatavalue|thainumerals|thai|textyen|textvisiblespace|textunderscore|texttilde|textsterling|textslash|textrule|textring|textreference|textpm|textplus|textperiod|textpercent|textounce|textormathchars|textormathchar|textohm|textogonek|textnumero|textmultiply|textmu|textminus|textmho|textmath|textmacron|textlognot|textkelvin|texthyphen|texthungarumlaut|texthorizontalbar|texthash|textgrave|textfraction|textflowcollector|texteuro|textellipsis|textdotaccent|textdong|textdollar|textdiv|textdiaeresis|textdegree|textddag|textdag|textcurrency|textcontrolspace|textcomma|textcite|textcitation|textcircumflex|textcircledP|textcent|textcelsius|textcedilla|textcaron|textbullet|textbrokenbar|textbreve|textbraceright|textbraceleft|textbottomdot|textbottomcomma|textbar|textbackslash|textat|textasciitilde|textasciicircum|textampersand|textacute|textAngstrom|texsetup|texdefinition|tex|testtokens|testpagesync|testpageonly|testpage|testfeatureonce|testfeature|testcolumn|testandsplitstring|test|tequal|tcurl|tcommaaccent|tcedilla|tcaron|tbox|tbinom|tau|taglabeltext|taglabellanguage|taggedlabeltexts|taggedctxcommand|tabulaterule|tabulateline|tabulateautorule|tabulateautoline|tRightarrow|tLeftrightarrow|tLeftarrow|systemsetups|systemloglast|systemlogfirst|systemlog|synctexsetfilename|synctexresetfilename|synctexblockfilename|synchronizewhitespace|synchronizestrut|synchronizeoutputstreams|synchronizemarking|synchronizeindenting|synchronizeblank|symbolreference|symbol|switchtointerlinespace|switchtocolor|switchtobodyfont|switchstyleonly|swarrow|swaptypeface|swapmacros|swapface|swapdimens|swapcounts|surdradical|surd|supsetneqq|supsetneq|supseteqq|supseteq|supset|sum|suffixtext|suffixlanguage|succsim|succnsim|succneqq|succneq|succnapprox|succeqq|succeq|succcurlyeq|succapprox|succ|subtractfeature|subsubsubsubsubject|subsubsubsubsection|subsubsubsubject|subsubsubsection|subsubsubject|subsubsection|subsubject|substituteincommalist|subsetneqq|subsetneq|subseteqq|subseteq|subset|subsentence|subsection|subpagenumber|subject|styleinstance|style|strutwd|struttedbox|struthtdp|strutht|strutgap|strutdp|strut|structurevariable|structureuservariable|structuretitle|structurenumber|structurelistuservariable|stripspaces|strippedcsname|stripcharacter|strictdoifnextoptionalelse|strictdoifelsenextoptional|stretched|stopxtablenext|stopxtablehead|stopxtablefoot|stopxtablebody|stopxtable|stopxrowgroup|stopxrow|stopxmlsetups|stopxmlraw|stopxmlinlineverbatim|stopxmldisplayverbatim|stopxgroup|stopxcolumn|stopxcellgroup|stopxcell|stopvtopregister|stopvtop|stopviewerlayer|stopvboxtohboxseparator|stopvboxtohbox|stopvboxregister|stopvbox|stopusingbtxspecification|stopuserdata|stopusemathstyleparameter|stopuseMPgraphic|stopusableMPgraphic|stopunpacked|stopunittext|stopuniqueMPpagegraphic|stopuniqueMPgraphic|stoptyping|stoptypescriptcollection|stoptypescript|stoptransparent|stoptokens|stoptokenlist|stoptitle|stopthematrix|stoptextrule|stoptextmakeup|stoptextflow|stoptextcolorintent|stoptextcolor|stoptextbackgroundmanual|stoptextbackground|stoptext|stoptexdefinition|stoptexcode|stoptaglabeltext|stoptagged|stoptabulatetail|stoptabulatehead|stoptabulate|stoptabletext|stoptabletail|stoptables|stoptablehead|stoptable|stopsymbolset|stopsuffixtext|stopsubsubsubsubsubject|stopsubsubsubsubsection|stopsubsubsubsubject|stopsubsubsubsection|stopsubsubsubject|stopsubsubsection|stopsubsubject|stopsubstack|stopsubsentence|stopsubsection|stopsubjectlevel|stopsubject|stopsubformulas|stopstyle|stopstrut|stopstrictinspectnextcharacter|stopstaticMPgraphic|stopstaticMPfigure|stopstandardmakeup|stopspread|stopsplittext|stopsplitformula|stopspformula|stopspeech|stopspecialitem|stopsimplecolumns|stopsidebar|stopshift|stopshapebox|stopsetups|stopsectionlevel|stopsectionblockenvironment|stopsectionblock|stopsection|stopsdformula|stopscript|stopruby|stoprightaligned|stopreusableMPgraphic|stopregime|stopreferenceprefix|stopreadingfile|stoprawsetups|stoprandomseed|stoprandomized|stopquote|stopquotation|stoppunctuation|stoppublication|stopprotectedcolors|stopprotect|stopproject|stopproduct|stopprocesscommalist|stopprocesscommacommand|stopprocessassignmentlist|stopprocessassignmentcommand|stopprefixtext|stoppostponingnotes|stoppostponing|stoppositive|stoppositionoverlay|stoppositioning|stopplacetable|stopplacepairedbox|stopplacelegend|stopplaceintermezzo|stopplacegraphic|stopplaceformula|stopplacefloat|stopplacefigure|stopplacechemical|stoppath|stoppart|stopparbuilder|stopparagraphscell|stopparagraphs|stopparagraph|stoppar|stoppagemakeup|stoppagelayout|stoppagefigure|stoppagecomment|stoppagecolumns|stoppacked|stopoverprint|stopoverlay|stopoutputstream|stopopposite|stopoperatortext|stopnotmode|stopnotext|stopnotallmodes|stopnointerference|stopnicelyfilledbox|stopnegative|stopnarrower|stopnarrow|stopnamedsubformulas|stopnamedsection|stopmulticolumns|stopmpformula|stopmoduletestsection|stopmodule|stopmodeset|stopmode|stopmixedcolumns|stopmiddlemakeup|stopmiddlealigned|stopmidaligned|stopmdformula|stopmaxaligned|stopmatrix|stopmatrices|stopmathstyle|stopmathmode|stopmathmatrix|stopmathlabeltext|stopmathcases|stopmathalignment|stopmarkpages|stopmarkedcontent|stopmarginrule|stopmarginblock|stopmakeup|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stoplocalnotes|stoplocallinecorrection|stoplocalheadsetup|stoplocalfootnotes|stoplinetablehead|stoplinetablecell|stoplinetablebody|stoplinetable|stoplines|stoplinenumbering|stoplinenote|stoplinefiller|stoplinecorrection|stoplinealignment|stopline|stoplegend|stopleftaligned|stoplayout|stoplanguage|stoplabeltext|stopknockout|stopitemize|stopitemgroupcolumns|stopitemgroup|stopitem|stopintertext|stopintermezzotext|stopinterface|stopinteractionmenu|stopinteraction|stopindentedtext|stopindentation|stopimath|stophyphenation|stophighlight|stophiding|stophelptext|stopheadtext|stophead|stophboxregister|stophboxestohbox|stophbox|stophanging|stopgridsnapping|stopgraphictext|stopgoto|stopfrontmatter|stopframedtext|stopframedtable|stopframedrow|stopframedcontent|stopframedcell|stopframed|stopformulas|stopformula|stopfootnote|stopfontsolution|stopfontclass|stopfont|stopfloatcombination|stopfixed|stopfittingpage|stopfiguretext|stopfigure|stopfact|stopfacingfloat|stopexternalfigurecollection|stopextendedcatcodetable|stopexpandedcollect|stopexpanded|stopexceptions|stopenvironment|stopendofline|stopendnote|stopembeddedxtable|stopelement|stopeffect|stopdocument|stopdmath|stopdisplaymath|stopdelimitedtext|stopdelimited|stopcurrentlistentrywrapper|stopcurrentcolor|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcomponent|stopcomment|stopcombination|stopcolumnsetspan|stopcolumnset|stopcolumns|stopcolorset|stopcoloronly|stopcolorintent|stopcolor|stopcollecting|stopcollect|stopchemicaltext|stopchemical|stopcheckedfences|stopcharacteralign|stopchapter|stopcenteraligned|stopcatcodetable|stopcases|stopbuffer|stopbtxrenderingdefinitions|stopbtxlabeltext|stopboxedcolumns|stopbordermatrix|stopbodymatter|stopblockquote|stopbitmapimage|stopbbordermatrix|stopbar|stopbackmatter|stopbackground|stopattachment|stopaside|stopasciimode|stoparrangedpages|stopappendices|stopallmodes|stopalignment|stopalign|stopXML|stopTY|stopTX|stopTRs|stopTR|stopTN|stopTH|stopTEXpage|stopTEX|stopTDs|stopTD|stopTC|stopTABLEnext|stopTABLEnested|stopTABLEhead|stopTABLEfoot|stopTABLEbody|stopTABLE|stopPARSEDXML|stopMPrun|stopMPpositionmethod|stopMPpositiongraphic|stopMPpage|stopMPinitializations|stopMPinclusions|stopMPextensions|stopMPenvironment|stopMPdrawing|stopMPdefinitions|stopMPcode|stopMPclip|stopMP|stopLUA|stopJSpreamble|stopJScode|stligature|startxtablenext|startxtablehead|startxtablefoot|startxtablebody|startxtable|startxrowgroup|startxrow|startxmlsetups|startxmlraw|startxmlinlineverbatim|startxmldisplayverbatim|startxgroup|startxcolumn|startxcellgroup|startxcell|startvtopregister|startvtop|startviewerlayer|startvboxtohboxseparator|startvboxtohbox|startvboxregister|startvbox|startusingbtxspecification|startuserdata|startusemathstyleparameter|startuseMPgraphic|startusableMPgraphic|startunpacked|startunittext|startuniqueMPpagegraphic|startuniqueMPgraphic|starttyping|starttypescriptcollection|starttypescript|starttransparent|starttokens|starttokenlist|starttitle|startthematrix|starttextrule|starttextmakeup|starttextflow|starttextcolorintent|starttextcolor|starttextbackgroundmanual|starttextbackground|starttext|starttexdefinition|starttexcode|starttaglabeltext|starttagged|starttabulatetail|starttabulatehead|starttabulate|starttabletext|starttabletail|starttables|starttablehead|starttable|startsymbolset|startsuffixtext|startsubsubsubsubsubject|startsubsubsubsubsection|startsubsubsubsubject|startsubsubsubsection|startsubsubsubject|startsubsubsection|startsubsubject|startsubstack|startsubsentence|startsubsection|startsubjectlevel|startsubject|startsubformulas|startstyle|startstrut|startstructurepageregister|startstrictinspectnextcharacter|startstaticMPgraphic|startstaticMPfigure|startstandardmakeup|startspread|startsplittext|startsplitformula|startspformula|startspeech|startspecialitem|startsimplecolumns|startsidebar|startshift|startshapebox|startsetups|startsectionlevel|startsectionblockenvironment|startsectionblock|startsection|startsdformula|startscript|startruby|startrightaligned|startreusableMPgraphic|startregister|startregime|startreferenceprefix|startreadingfile|startrawsetups|startrandomseed|startrandomized|startquote|startquotation|startpunctuation|startpublication|startprotectedcolors|startprotect|startproject|startproduct|startprocesscommalist|startprocesscommacommand|startprocessassignmentlist|startprocessassignmentcommand|startprefixtext|startpostponingnotes|startpostponing|startpositive|startpositionoverlay|startpositioning|startplacetable|startplacepairedbox|startplacelegend|startplaceintermezzo|startplacegraphic|startplaceformula|startplacefloat|startplacefigure|startplacechemical|startpath|startpart|startparbuilder|startparagraphscell|startparagraphs|startparagraph|startpar|startpagemakeup|startpagelayout|startpagefigure|startpagecomment|startpagecolumns|startpacked|startoverprint|startoverlay|startoutputstream|startopposite|startoperatortext|startnotmode|startnotext|startnotallmodes|startnointerference|startnicelyfilledbox|startnegative|startnarrower|startnarrow|startnamedsubformulas|startnamedsection|startmulticolumns|startmpformula|startmoduletestsection|startmodule|startmodeset|startmode|startmixedcolumns|startmiddlemakeup|startmiddlealigned|startmidaligned|startmdformula|startmaxaligned|startmatrix|startmatrices|startmathstyle|startmathmode|startmathmatrix|startmathlabeltext|startmathcases|startmathalignment|startmarkpages|startmarkedcontent|startmarginrule|startmarginblock|startmakeup|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startlocalnotes|startlocallinecorrection|startlocalheadsetup|startlocalfootnotes|startlinetablehead|startlinetablecell|startlinetablebody|startlinetable|startlines|startlinenumbering|startlinenote|startlinefiller|startlinecorrection|startlinealignment|startline|startlegend|startleftaligned|startlayout|startlanguage|startlabeltext|startknockout|startitemize|startitemgroupcolumns|startitemgroup|startitem|startintertext|startintermezzotext|startinterface|startinteractionmenu|startinteraction|startindentedtext|startindentation|startimath|starthyphenation|starthighlight|starthiding|starthelptext|startheadtext|starthead|starthboxregister|starthboxestohbox|starthbox|starthanging|startgridsnapping|startgraphictext|startgoto|startfrontmatter|startframedtext|startframedtable|startframedrow|startframedcontent|startframedcell|startframed|startformulas|startformula|startfootnote|startfontsolution|startfontclass|startfont|startfloatcombination|startfixed|startfittingpage|startfiguretext|startfigure|startfact|startfacingfloat|startexternalfigurecollection|startextendedcatcodetable|startexpandedcollect|startexpanded|startexceptions|startenvironment|startendofline|startendnote|startembeddedxtable|startelement|starteffect|startdocument|startdmath|startdisplaymath|startdelimitedtext|startdelimited|startcurrentlistentrywrapper|startcurrentcolor|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcomponent|startcomment|startcombination|startcolumnsetspan|startcolumnset|startcolumns|startcolorset|startcoloronly|startcolorintent|startcolor|startcollecting|startcollect|startchemicaltext|startchemical|startcheckedfences|startcharacteralign|startchapter|startcenteraligned|startcatcodetable|startcases|startbuffer|startbtxrenderingdefinitions|startbtxlabeltext|startboxedcolumns|startbordermatrix|startbodymatter|startblockquote|startbitmapimage|startbbordermatrix|startbar|startbackmatter|startbackground|startattachment|startaside|startasciimode|startarrangedpages|startappendices|startallmodes|startalignment|startalign|startXML|startTY|startTX|startTRs|startTR|startTN|startTH|startTEXpage|startTEX|startTDs|startTD|startTC|startTABLEnext|startTABLEnested|startTABLEhead|startTABLEfoot|startTABLEbody|startTABLE|startPARSEDXML|startMPrun|startMPpositionmethod|startMPpositiongraphic|startMPpage|startMPinitializations|startMPinclusions|startMPextensions|startMPenvironment|startMPdrawing|startMPdefinitions|startMPcode|startMPclip|startMP|startLUA|startJSpreamble|startJScode|stareq|star|stackscripts|stackrel|ssharp|squaredots|square|sqsupsetneq|sqsupseteq|sqsupset|sqsubsetneq|sqsubseteq|sqsubset|sqrt|sqcup|sqcap|spreadhbox|splitstring|splitofftype|splitofftokens|splitoffroot|splitoffpath|splitoffname|splitoffkind|splitofffull|splitoffbase|splitfrac|splitfloat|splitfilename|splitdfrac|splitatperiod|splitatcomma|splitatcolons|splitatcolon|splitatasterisk|sphericalangle|speech|spanishnumerals|spanishNumerals|spadesuit|spaceddigitssymbol|spaceddigitsseparator|spaceddigitsmethod|spaceddigits|space|somewhere|someplace|somenamedheadnumber|somelocalfloat|someline|somekindoftab|someheadnumber|solidus|softhyphen|snaptogrid|smile|smashedvbox|smashedhbox|smashboxed|smashbox|smash|smalltype|smallslantedbold|smallslanted|smallskip|smallnormal|smallitalicbold|smaller|smallcaps|smallcappedromannumerals|smallcappedcharacters|smallboldslanted|smallbolditalic|smallbold|smallbodyfont|small|sloveniannumerals|slovenianNumerals|slong|slicepages|slash|slantedface|slantedbold|slanted|sixthofsixarguments|sixperemspace|singleverticalbar|singlebond|singalcharacteralign|simplereversealignedboxplus|simplereversealignedbox|simplegroupedcommand|simplealignedspreadbox|simplealignedboxplus|simplealignedbox|simeq|sim|signalrightpage|sigma|showwarning|showvariable|showvalue|showtrackers|showtokens|showtimer|showsymbolset|showstruts|showsetupsdefinition|showsetups|showprint|showparwrapperstate|showparentchain|showpalet|showotfcomposition|shownextbox|showminimalbaseline|showmessage|showmargins|showmakeup|showluatables|showlogcategories|showligatures|showligature|showlayoutcomponents|showlayout|showkerning|showjustification|showinjector|showhyphens|showhyphenationtrace|showhelp|showgridsnapping|showgrid|showglyphs|showglyphdata|showframe|showfontstyle|showfontstrip|showfontparameters|showfontkerns|showfontitalics|showfontexpansion|showfontdata|showfont|showexperiments|showedebuginfo|showdirsinmargin|showdirectives|showcounter|showcolorstruts|showcolorset|showcolorgroup|showcolorcomponents|showcolorbar|showcolor|showcharratio|showchardata|showbtxtables|showbtxhashedauthors|showbtxfields|showbtxdatasetfields|showbtxdatasetcompleteness|showbtxdatasetauthors|showboxes|showbodyfontenvironment|showbodyfont|showattributes|showallmakeup|shiftup|shiftdown|shiftbox|sharp|shapedhbox|sfrac|seveneighths|setxvariables|setxvariable|setxvalue|setxmeasure|setwidthof|setvtopregister|setvisualizerfont|setvboxregister|setvariables|setvariable|setvalue|setuxvalue|setuvalue|setupxtable|setupxml|setupwithargumentswapped|setupwithargument|setupwhitespace|setupvspacing|setupviewerlayer|setupversion|setupuserpagenumber|setupuserdataalternative|setupuserdata|setupurl|setupunittext|setupunit|setuptyping|setuptype|setuptoptexts|setuptop|setuptooltip|setuptolerance|setupthinrules|setuptexttexts|setuptextrules|setuptextnote|setuptextflow|setuptextbackground|setuptext|setuptaglabeltext|setuptagging|setuptabulate|setuptables|setupsystem|setupsynonyms|setupsynctex|setupsymbolset|setupsymbols|setupsuffixtext|setupsubpagenumber|setupsubformulas|setupsubformula|setupstyle|setupstrut|setupstretched|setupstartstop|setupspellchecking|setupspacing|setupsorting|setupsidebar|setupshift|setupselector|setupsectionblock|setupscripts|setupscript|setupscale|setups|setupruby|setuprotate|setuprenderingwindow|setupregisters|setupregister|setupreferencing|setupreferencestructureprefix|setupreferenceprefix|setupreferenceformat|setuprealpagenumber|setupquote|setupquotation|setupprograms|setupprofile|setupprocessor|setupprefixtext|setuppositioning|setuppositionbar|setupplacement|setupplaceholder|setupperiods|setupperiodkerning|setupparallel|setupparagraphs|setupparagraphnumbering|setupparagraphintro|setupparagraph|setuppapersize|setuppaper|setuppalet|setuppairedbox|setuppagetransitions|setuppagestate|setuppageshift|setuppagenumbering|setuppagenumber|setuppageinjectionalternative|setuppageinjection|setuppagecomment|setuppagecolumns|setuppagechecker|setupoutputroutine|setupoutput|setuporientation|setupoppositeplacing|setupoperatortext|setupoffsetbox|setupoffset|setupnotes|setupnote|setupnotations|setupnotation|setupnarrower|setupmulticolumns|setupmodule|setupmixedcolumns|setupmathstyle|setupmathstackers|setupmathradical|setupmathornament|setupmathmatrix|setupmathlabeltext|setupmathframed|setupmathfractions|setupmathfraction|setupmathfence|setupmathematics|setupmathcases|setupmathalignment|setupmarking|setupmarginrules|setupmarginrule|setupmarginframed|setupmargindata|setupmarginblock|setupmakeup|setuplowmidhigh|setuplowhigh|setuplow|setuplocalinterlinespace|setuplocalfloats|setuplistextra|setuplistalternative|setuplist|setuplinewidth|setuplinetable|setuplines|setuplinenumbering|setuplinenote|setuplinefillers|setuplinefiller|setuplegend|setuplayouttext|setuplayout|setuplayeredtext|setuplayer|setuplanguage|setuplabeltext|setuplabel|setupitems|setupitemize|setupitemizations|setupitemgroup|setupitaliccorrection|setupinterlinespace|setupinteractionscreen|setupinteractionmenu|setupinteractionbar|setupinteraction|setupinsertion|setupinitial|setupindex|setupindenting|setupindentedtext|setuphyphenmark|setuphyphenation|setuphighlight|setuphigh|setuphelp|setupheadtext|setupheads|setupheadnumber|setupheadertexts|setupheader|setupheadalternative|setuphead|setupglobalreferenceprefix|setupframedtexts|setupframedtext|setupframedtablerow|setupframedtablecolumn|setupframedtable|setupframedcontent|setupframed|setupformulaframed|setupformulae|setupformula|setupforms|setupfootnotes|setupfootertexts|setupfooter|setupfontsolution|setupfonts|setupfontprotrusion|setupfontexpansion|setupfloatsplitting|setupfloats|setupfloatframed|setupfloat|setupfittingpage|setupfirstline|setupfillinrules|setupfillinlines|setupfiller|setupfieldtotalframed|setupfields|setupfieldlabelframed|setupfieldcontentframed|setupfieldcategory|setupfieldbody|setupfield|setupfacingfloat|setupexternalsoundtracks|setupexternalfigures|setupexternalfigure|setupexport|setupexpansion|setupenv|setupenumerations|setupenumeration|setupeffect|setupdocument|setupdirections|setupdescriptions|setupdescription|setupdelimitedtext|setupdataset|setupcounter|setupcontent|setupcomment|setupcombinedlist|setupcombination|setupcolumnsetstart|setupcolumnsetspan|setupcolumnsetlines|setupcolumnsetareatext|setupcolumnsetarea|setupcolumnset|setupcolumns|setupcolors|setupcolor|setupcollector|setupclipping|setupchemicalframed|setupchemical|setupcharacterspacing|setupcharacterkerning|setupcharacteralign|setupcaptions|setupcaption|setupcapitals|setupbutton|setupbuffer|setupbtxrendering|setupbtxregister|setupbtxlist|setupbtxlabeltext|setupbtxdataset|setupbtx|setupbottomtexts|setupbottom|setupbookmark|setupbodyfontenvironment|setupbodyfont|setupblock|setupbleeding|setupblank|setupblackrules|setupbars|setupbar|setupbackgrounds|setupbackground|setupbackend|setupattachments|setupattachment|setuparranging|setupalternativestyles|setupalign|setupTEXpage|setupTABLE|setupMPvariables|setupMPpage|setupMPinstance|setupMPgraphics|setup|setunreferencedobject|setugvalue|setuevalue|settrialtypesetting|settokenlist|settightunreferencedobject|settightstrut|settightreferencedobject|settightobject|settextcontent|settestcrlf|settaggedmetadata|settabular|setsystemmode|setsuperiors|setstrut|setstructurepageregister|setstackbox|setsmallcaps|setsmallbodyfont|setsimplecolumnshsize|setsectionblock|setsecondpasscharacteralign|setscript|setrigidcolumnhsize|setrigidcolumnbalance|setreplacements|setregisterentry|setreferencedobject|setreference|setrandomseed|setprofile|setpositionstrut|setpositionplus|setpositiononly|setpositiondataplus|setpositiondata|setpositionbox|setposition|setperiodkerning|setpercentdimen|setpenalties|setparagraphfreezing|setpagestaterealpageno|setpagestate|setpagereference|setoldstyle|setobject|setnotetext|setnote|setnostrut|setmode|setminus|setmessagetext|setmeasure|setmathstyle|setmarking|setmarker|setmainparbuilder|setmainbodyfont|setluatable|setlocalscript|setlocalhsize|setlinefiller|setlayertext|setlayerframed|setlayer|setitaliccorrection|setinternalrendering|setinterfacevariable|setinterfacemessage|setinterfaceelement|setinterfaceconstant|setinterfacecommand|setinteraction|setinjector|setinitial|sethyphenationfeatures|sethyphenatedurlnormal|sethyphenatedurlbefore|sethyphenatedurlafter|sethboxregister|setgvariables|setgvariable|setgvalue|setgmeasure|setglobalscript|setfractions|setfontstrut|setfontsolution|setfontfeature|setfontcolorsheme|setfont|setflag|setfirstpasscharacteralign|setfirstline|setexpansion|setevariables|setevariable|setevalue|setemeasure|setelementexporttag|setdummyparameter|setdocumentfilename|setdocumentargumentdefault|setdocumentargument|setdirection|setdigitsmanipulation|setdefaultpenalties|setdatavalue|setdataset|setcurrentfontclass|setctxluafunction|setcounterown|setcounter|setcolormodell|setcollector|setcharstrut|setcharacterstripping|setcharacterspacing|setcharacterkerning|setcharactercleaning|setcharactercasing|setcharacteraligndetail|setcharacteralign|setcatcodetable|setcapstrut|setbreakpoints|setboxlly|setboxllx|setbigbodyfont|setbar|setautopagestaterealpageno|setMPvariables|setMPvariable|setMPtext|setMPpositiongraphicrange|setMPpositiongraphic|setMPlayer|setJSpreamble|serifnormal|serifbold|serif|serializedcommalist|serializecommalist|selectblocks|select|seeindex|sectionmark|section|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|searrow|screen|scommaaccent|scircumflex|schwahook|schwa|scedilla|scaron|scale|sbox|savetwopassdata|savetaggedtwopassdata|savenormalmeaning|savecurrentattributes|savecounter|savebuffer|savebtxdataset|savebox|sansserif|sansnormal|sansbold|sans|samplefile|safechar|sacute|rvert|russiannumerals|russianNumerals|runninghbox|runMPbuffer|ruledvtop|ruledvpack|ruledvbox|ruledtpack|ruledtopv|ruledmbox|ruledhpack|ruledhbox|ruby|rtop|rtlvtop|rtlvbox|rtlhbox|rtimes|rrointerval|rrbracket|rrangle|rparent|rotate|rootradical|romanxii|romanxi|romanx|romanviii|romanvii|romanvi|romanv|romannumerals|romanm|romanl|romanix|romaniv|romaniii|romanii|romani|romand|romanc|romanXII|romanXI|romanX|romanVIII|romanVII|romanVI|romanV|romanM|romanL|romanIX|romanIV|romanIII|romanII|romanI|romanD|romanC|roman|rollbutton|rointerval|robustpretocommalist|robustdoifinsetelse|robustdoifelseinset|robustaddtocommalist|rneq|rmoustache|rlointerval|rlap|risingdotseq|rinvertedbreve|rinterval|ring|rightwhitearrow|rightwavearrow|righttopbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightthreetimes|rightthreearrows|rightsubguillemot|rightsquigarrow|rightskipadaption|rightrightarrows|rightpageorder|rightorleftpageaction|rightmathlabeltext|rightline|rightleftharpoons|rightleftarrows|rightlabeltext|rightheadtext|righthbox|rightharpoonup|rightharpoondown|rightguillemot|rightdasharrow|rightbox|rightbottombox|rightarrowtriangle|rightarrowtail|rightarrowbar|rightarrow|rightangle|rightaligned|right|rhookswarrow|rhooknearrow|rho|rhbox|rgroup|rfloor|rfence|revivefeature|reversevtop|reversevpack|reversevboxcontent|reversevbox|reversetpack|reversehpack|reversehbox|reversedtripleprime|reversedprime|reverseddoubleprime|reuserandomseed|reuseMPgraphic|reusableMPgraphic|retestfeature|restriction|restoreglobalbodyfont|restoreendofline|restorecurrentattributes|restorecounter|restorecatcodes|restorebox|restartcounter|resolvedglyphstyled|resolvedglyphdirect|reshapebox|resetvisualizers|resetvalue|resetuserpagenumber|resetusedsynonyms|resetusedsortings|resettrialtypesetting|resettrackers|resettokenlist|resettimer|resetsystemmode|resetsymbolset|resetsubpagenumber|resetshownsynonyms|resetsetups|resetscript|resetreplacements|resetreference|resetrecurselevel|resetprofile|resetperiodkerning|resetpenalties|resetpath|resetparallel|resetpagenumber|resetmode|resetmarking|resetmarker|resetlocalfloats|resetlayer|resetitaliccorrection|resetinteractionmenu|resetinjector|resethyphenationfeatures|resetfontsolution|resetfontfallback|resetfontcolorsheme|resetflag|resetfeature|resetdirection|resetdigitsmanipulation|resetctxscanner|resetcounter|resetcollector|resetcharacterstripping|resetcharacterspacing|resetcharacterkerning|resetcharacteralign|resetbuffer|resetbreakpoints|resetboxesincache|resetbar|resetandaddfeature|resetallattributes|resetMPinstance|resetMPenvironment|resetMPdrawing|rescanwithsetup|rescan|replaceword|replaceincommalist|replacefeature|repeathead|removeunwantedspaces|removetoks|removesubstring|removepunctuation|removemarkedcontent|removelastspace|removelastskip|removefromcommalist|removedepth|removebottomthings|remark|remainingcharacters|relbar|relaxvalueifundefined|relateparameterhandlers|relatemarking|regular|registerunit|registersynonym|registersort|registerparwrapperreverse|registerparwrapper|registermenubuttons|registerhyphenationpattern|registerhyphenationexception|registerfontclass|registerexternalfigure|registered|registerctxluafile|registerattachment|referring|referencesymbol|referencerealpage|referenceprefix|referencepagestate|referencepagedetail|referencecolumnnumber|reference|ref|redoconvertfont|recursestring|recurselevel|recursedepth|realsmallcapped|reals|realpagenumber|realSmallcapped|realSmallCapped|readxmlfile|readtexfile|readsysfile|readsetfile|readlocfile|readjobfile|readfixfile|readfile|rdoublegrave|rcommaaccent|rceil|rcaron|rbracket|rbrace|rbox|rawsubcountervalue|rawstructurelistuservariable|rawprocesscommalist|rawprocesscommacommand|rawprocessaction|rawgetparameters|rawdoifinsetelse|rawdoifinset|rawdoifelseinset|rawdate|rawcountervalue|rawcounter|rationals|rangle|randomnumber|randomizetext|raisebox|raggedwidecenter|raggedright|raggedleft|raggedcenter|raggedbottom|racute|rVert|quotesinglebase|quotesingle|quoteright|quoteleft|quotedblright|quotedblleft|quotedblbase|quotedbl|quote|quotation|quittypescriptscanning|quitprevcommalist|quitcommalist|questionedeq|questiondown|quarterstrut|quads|quadrupleprime|quad|qquad|putnextboxincache|putboxincache|pushsystemmode|pushoutputstream|pushmode|pushmacro|pushbutton|pushattribute|purenumber|punctuationspace|psi|pseudosmallcapped|pseudoSmallcapped|pseudoSmallCapped|pseudoMixedCapped|propto|project|program|profilegivenbox|profiledbox|product|prod|processyear|processxtablebuffer|processuntil|processtokens|processtexbuffer|processseparatedlist|processranges|processmonth|processlist|processlinetablefile|processlinetablebuffer|processisolatedwords|processisolatedchars|processfirstactioninset|processfileonce|processfilenone|processfilemany|processfile|processcontent|processcommalistwithparameters|processcommalist|processcommacommand|processcolorcomponents|processbodyfontenvironmentlist|processblocks|processbetween|processassignmentlist|processassignmentcommand|processassignlist|processallactionsinset|processaction|processMPfigurefile|processMPbuffer|procent|primes|prime|prevuserpagenumber|prevuserpage|prevsubpagenumber|prevsubpage|prevsubcountervalue|prevrealpagenumber|prevrealpage|preventmode|prevcountervalue|prevcounter|prettyprintbuffer|pretocommalist|presetunittext|presettaglabeltext|presetsuffixtext|presetprefixtext|presetoperatortext|presetmathlabeltext|presetlabeltext|presetheadtext|presetfieldsymbols|presetdocument|presetbtxlabeltext|prerollblank|prependvalue|prependtoksonce|prependtoks|prependtocommalist|prependgvalue|prependetoks|prefixtext|prefixlanguage|prefixedpagenumber|predefinesymbol|predefinefont|predefinedfont|precsim|precnsim|precneqq|precneq|precnapprox|preceqq|preceq|preccurlyeq|precapprox|prec|postponenotes|positivesign|positionregionoverlay|positionoverlay|position|popsystemmode|popmode|popmacro|popattribute|pm|placetable|placesubformula|placesidebyside|placerenderingwindow|placeregister|placerawlist|placerawheadtext|placerawheadnumber|placerawheaddata|placeparallel|placepairedbox|placepagenumber|placeontopofeachother|placeongrid|placenotes|placenamedformula|placenamedfloat|placement|placelocalnotes|placelocalfootnotes|placelistoftables|placelistofsynonyms|placelistofsorts|placelistofpublications|placelistoflogos|placelistofintermezzi|placelistofgraphics|placelistoffigures|placelistofchemicals|placelistofabbreviations|placelist|placelegend|placelayeredtext|placelayer|placeintermezzo|placeinitial|placeindex|placeholder|placehelp|placeheadtext|placeheadnumber|placegraphic|placeframed|placeformula|placefootnotes|placefloatwithsetups|placefloatcaption|placefloat|placefigure|placedbox|placecurrentformulanumber|placecontent|placecomments|placecombinedlist|placecitation|placechemical|placebtxrendering|placebookmarks|placeattachments|pitchfork|pickupgroupedcommand|pi|phook|phi|phantombox|phantom|perthousand|persianthousandsseparator|persiannumerals|persiandecimalseparator|persiandecimals|perp|permitspacesbetweengroups|permitcircumflexescape|permitcaretescape|periods|periodcentered|percentdimen|percent|pdfeTeX|pdfcolor|pdfbackendsetshade|pdfbackendsetpattern|pdfbackendsetpagesattribute|pdfbackendsetpageresource|pdfbackendsetpageattribute|pdfbackendsetname|pdfbackendsetinfo|pdfbackendsetextgstate|pdfbackendsetcolorspace|pdfbackendsetcatalog|pdfbackendcurrentresources|pdfbackendactualtext|pdfactualtext|pdfTeX|partial|part|parallel|paragraphmark|paletsize|pagestaterealpageorder|pagestaterealpage|pagereference|pagenumber|pageinjection|pagefigure|pagebreak|pagearea|page|owns|overtwoheadrightarrow|overtwoheadleftarrow|overstrikes|overstrike|overset|overrightharpoonup|overrightharpoondown|overrightarrow|overparentunderparent|overparenttext|overparent|overloaderror|overleftrightarrow|overleftharpoonup|overleftharpoondown|overleftarrow|overlaywidth|overlayrollbutton|overlayoffset|overlaylinewidth|overlaylinecolor|overlayimage|overlayheight|overlayfigure|overlaydepth|overlaycolor|overlaybutton|overbracketunderbracket|overbrackettext|overbracket|overbraceunderbrace|overbracetext|overbrace|overbarunderbar|overbartext|overbars|overbar|over|outputstreamunvcopy|outputstreamunvbox|outputstreamcopy|outputstreambox|outputfilename|otimes|otildemacron|otilde|ostrokeacute|ostroke|oslash|ornamenttext|ordmasculine|ordinalstr|ordinaldaynumber|ordfeminine|oplus|operatortext|operatorlanguage|oogonekmacron|oogonek|onethird|onesuperior|onesixth|onequarter|onehalf|onefifth|oneeighth|onedigitrounding|ominus|omicron|omega|omacron|oinvertedbreve|ointctrclockwise|ointclockwise|oint|oiint|oiiint|ohungarumlaut|ohorntilde|ohornhook|ohorngrave|ohorndotbelow|ohornacute|ohorn|ohook|ohm|ograve|offsetbox|offset|oeligature|odoublegrave|odotbelow|odotaccentmacron|odotaccent|odot|odiaeresismacron|odiaeresis|octstringtonumber|octnumber|ocircumflextilde|ocircumflexhook|ocircumflexgrave|ocircumflexdotbelow|ocircumflexacute|ocircumflex|ocaron|obreve|obox|objectwidth|objectmargin|objectheight|objectdepth|obeydepth|oacute|nwsearrow|nwarrow|nvrightarrow|nvleftrightarrow|nvleftarrow|nvdash|nvDash|numbers|numberofpoints|nu|ntrianglerighteq|ntriangleright|ntrianglelefteq|ntriangleleft|ntimes|ntilde|nsupseteq|nsupset|nsucccurlyeq|nsucc|nsubseteq|nsubset|nsqsupseteq|nsqsubseteq|nsimeq|nsim|nrightarrow|npreccurlyeq|nprec|nparallel|nowns|notragged|notopandbottomlines|notin|notesymbol|note|not|nospace|normaltypeface|normalslantedface|normalizetextwidth|normalizetextline|normalizetextheight|normalizetextdepth|normalizefontwidth|normalizefontline|normalizefontheight|normalizefontdepth|normalizedfontsize|normalizebodyfontsize|normalitalicface|normalframedwithsettings|normalboldface|normal|nonvalidassignment|nonmathematics|nonfrenchspacing|noitem|noindentation|nohyphens|noheightstrut|noheaderandfooterlines|noflocalfloats|noflinesinbox|noflines|noffigurepages|nodetostring|nocite|nocitation|nocharacteralign|nocap|nobreakspace|nobar|nni|nmid|nlesssim|nlessgtr|nless|nleq|nleftrightarrow|nleftarrow|njligature|nin|nihongo|ni|ngtrsim|ngtrless|ngtr|ngrave|ngeq|nextuserpagenumber|nextuserpage|nextsubpagenumber|nextsubpage|nextsubcountervalue|nextrealpagenumber|nextrealpage|nextparagraphs|nextdepth|nextcountervalue|nextcounter|nextboxwd|nextboxhtdp|nextboxht|nextboxdp|nextbox|nexists|newsystemmode|newsignal|newmode|newluatable|newfrenchspacing|newevery|newcounter|newcatcodetable|newattribute|neswarrow|nequiv|neq|neng|negthinspace|negenspace|negemspace|negativesign|negated|negatecolorbox|neg|nearrow|ne|ndivides|ncurl|ncong|ncommaaccent|ncaron|naturalwd|naturalvtop|naturalvpack|naturalvcenter|naturalvbox|naturaltpack|naturalnumbers|naturalhpack|naturalhbox|natural|nasymp|narrownobreakspace|napproxEq|napprox|napostrophe|namedtaggedlabeltexts|namedstructurevariable|namedstructureuservariable|namedstructureheadlocation|namedheadnumber|nacute|nabla|nVrightarrow|nVleftrightarrow|nVleftarrow|nVdash|nVDash|nRightarrow|nLeftrightarrow|nLeftarrow|nHuparrow|nHdownarrow|multimap|mu|mtwoheadrightarrow|mtwoheadleftarrow|mtriplerel|mtext|mrightoverleftarrow|mrightleftharpoons|mrightharpoonup|mrightharpoondown|mrightarrow|mrel|mprandomnumber|mp|monthshort|monthlong|month|mononormal|monobold|mono|molecule|moduleparameter|models|mmapsto|mleftrightharpoons|mleftrightarrow|mleftharpoonup|mleftharpoondown|mleftarrow|mkvibuffer|mixedcaps|mirror|minuscolon|minus|minimalhbox|midsubsentence|midhbox|middlebox|middlealigned|middle|midaligned|mid|mhookrightarrow|mhookleftarrow|mho|mhbox|mfunctionlabeltext|mfunction|mframed|mfence|message|mequal|menubutton|medspace|medskip|measuredeq|measuredangle|measured|measure|mcframed|mbox|maxaligned|mathwordtf|mathwordsl|mathwordit|mathwordbs|mathwordbi|mathwordbf|mathword|mathupright|mathunder|mathtt|mathtriplet|mathtf|mathtexttf|mathtextsl|mathtextit|mathtextbs|mathtextbi|mathtextbf|mathtext|mathss|mathsl|mathscript|mathrm|mathpercent|mathover|mathop|mathlabeltexts|mathlabeltext|mathlabellanguage|mathitalic|mathit|mathhyphen|mathhash|mathfunction|mathfraktur|mathematics|mathdouble|mathdollar|mathdefault|mathbs|mathblackboard|mathbi|mathbf|mathampersand|math|mat|markreferencepage|markpage|markinjector|marking|markedpages|markcontent|margintext|margindata|mapsup|mapsto|mapsfrom|mapsdown|mapfontsize|maltese|makestrutofbox|makerawcommalist|makecharacteractive|mainlanguage|mRightarrow|mLeftrightarrow|mLeftarrow|m|lvert|luaversion|luasetup|luaparameterset|luaminorversion|luametaTeX|luamajorversion|luajitTeX|luafunction|luaexpr|luaexpanded|luaenvironment|luaconditional|luacode|luaTeX|ltrvtop|ltrvbox|ltrhbox|ltop|ltimes|lt|lstroke|lrtbbox|lrointerval|lrcorner|lparent|lozenge|lowerrightsingleninequote|lowerrightdoubleninequote|lowerleftsingleninequote|lowerleftdoubleninequote|lowercasing|lowercasestring|lowercased|lowerbox|low|lor|looparrowright|looparrowleft|longrightsquigarrow|longrightarrow|longmapsto|longmapsfrom|longleftrightarrow|longleftarrow|lomihi|lointerval|lohi|logo|locfilename|locatefilepath|locatedfilepath|localundefine|localpushmacro|localpushbox|localpopmacro|localpopbox|localhsize|localframedwithsettings|localframed|loadtypescriptfile|loadtexfileonce|loadtexfile|loadspellchecklist|loadluafileonce|loadluafile|loadfontgoodies|loadcldfileonce|loadcldfile|loadbtxreplacementfile|loadbtxdefinitionfile|loadanyfileonce|loadanyfile|lnsim|lnot|lneqq|lneq|lnapprox|lmoustache|llointerval|llless|lll|llcorner|llbracket|llap|llangle|ll|ljligature|literalmode|listnamespaces|listlength|listcite|listcitation|linterval|linethickness|linespanningtext|linenote|linefillervtop|linefillervbox|linefillerhbox|linefeed|linebox|line|limitatetext|limitatelines|limitatefirstline|lhooksearrow|lhooknwarrow|lhbox|lgroup|lfloor|lfence|letvaluerelax|letvalueempty|letvalue|letterunderscore|lettertilde|letterspacing|letterslash|lettersinglequote|letterrightparenthesis|letterrightbracket|letterrightbrace|letterquestionmark|letterpercent|letteropenbrace|lettermore|letterless|letterleftparenthesis|letterleftbracket|letterleftbrace|letterhat|letterhash|letterexclamationmark|letterescape|letteregroup|letterdoublequote|letterdollar|lettercolon|letterclosebrace|letterbgroup|letterbar|letterbackslash|letterat|letterampersand|letgvalurelax|letgvalueempty|letgvalue|letempty|letdummyparameter|letcsnamecsname|letcsnamecs|letcscsname|letcatcodecommand|letbeundefined|lesssim|lessgtr|lesseqqgtr|lesseqgtr|lessdot|lessapprox|leqslant|leqq|leq|leftwhitearrow|leftwavearrow|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|lefttopbox|leftthreetimes|leftsubguillemot|leftsquigarrow|leftskipadaption|leftrightsquigarrow|leftrightharpoons|leftrightarrowtriangle|leftrightarrows|leftrightarrow|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftmathlabeltext|leftline|leftleftarrows|leftlabeltext|leftheadtext|lefthbox|leftharpoonup|leftharpoondown|leftguillemot|leftdasharrow|leftbox|leftbottombox|leftarrowtriangle|leftarrowtail|leftarrow|leftaligned|left|leadsto|le|ldots|ldotp|ldotmiddle|lcurl|lcommaaccent|lchexnumbers|lchexnumber|lceil|lcaron|lbracket|lbrace|lbox|lbar|lazysavetwopassdata|lazysavetaggedtwopassdata|layerwidth|layerheight|layeredtext|latin|lateluacode|lastuserpagenumber|lastuserpage|lasttwodigits|lastsubpagenumber|lastsubpage|lastsubcountervalue|lastrealpagenumber|lastrealpage|lastpredefinedsymbol|lastparwrapper|lastnaturalboxwd|lastnaturalboxht|lastnaturalboxdp|lastlinewidth|lastdigit|lastcountervalue|lastcounter|languagecharwidth|languagecharacters|languageCharacters|language|langle|land|lambdabar|lambda|lacute|labeltexts|labeltext|labellanguage|lVert|koreanparentnumerals|koreannumeralsp|koreannumeralsc|koreannumerals|koreancirclenumerals|kkra|khook|kerncharacters|keepunwantedspaces|keeplinestogether|keepblocks|kcommaaccent|kcaron|kappa|kap|jobfilesuffix|jobfilename|jmath|ji|jcircumflex|jcaron|itilde|itemtag|items|item|italicface|italiccorrection|italicbold|italic|iota|iogonek|invokepagehandler|invisibletimes|intop|interwordspacesbefore|interwordspacesafter|interwordspaces|interwordspacebefore|interwordspaceafter|intertext|intercal|interactionmenu|interactionbuttons|interactionbar|integers|integerrounding|intclockwise|int|installversioninfo|installunitsspace|installunitsseparator|installtopframerenderer|installtextracker|installtexdirective|installswitchsetuphandler|installswitchcommandhandler|installstyleandcolorhandler|installsimpleframedcommandhandler|installsimplecommandhandler|installshipoutmethod|installsetuponlycommandhandler|installsetuphandler|installrootparameterhandler|installrightframerenderer|installprotectedctxscanner|installprotectedctxfunction|installparentinjector|installparametersethandler|installparameterhashhandler|installparameterhandler|installpagearrangement|installoutputroutine|installnamespace|installmacrostack|installleftframerenderer|installlanguage|installglobalmacrostack|installframedcommandhandler|installframedautocommandhandler|installdirectstyleandcolorhandler|installdirectsetuphandler|installdirectparametersethandler|installdirectparameterhandler|installdirectcommandhandler|installdefinitionsetmember|installdefinitionset|installdefinehandler|installctxscanner|installctxfunction|installcorenamespace|installcommandhandler|installbottomframerenderer|installbasicparameterhandler|installbasicautosetuphandler|installautosetuphandler|installautocommandhandler|installattributestack|installanddefineactivecharacter|installactivecharacter|installactionhandler|inspectluatable|insertpages|inrightmargin|inrightedge|inright|inputgivenfile|inputfilesuffix|inputfilerealsuffix|inputfilename|inputfilebarename|input|inoutermargin|inouteredge|inouter|inother|innerflushshapebox|inmframed|inmargin|inlinerange|inlineprettyprintbuffer|inlineordisplaymath|inlinemessage|inlinemathematics|inlinemath|inlinedbox|inlinebuffer|inline|inleftmargin|inleftedge|inleft|initializeboxstack|ininnermargin|ininneredge|ininner|inhibitblank|inheritparameter|infull|infty|inframed|infofontbold|infofont|index|indentation|incrementvalue|incrementsubpagenumber|incrementpagenumber|incrementedcounter|incrementcounter|increment|includeversioninfo|includesvgfile|includesvgbuffer|includemenu|in|imply|implies|impliedby|immediatesavetwopassdata|imath|imaginaryj|imaginaryi|imacron|ijligature|iinvertedbreve|iintop|iint|iiintop|iiint|iiiintop|iiiint|ii|ihook|igrave|ignorevalue|ignoretagsinexport|ignoreimplicitspaces|iftrialtypesetting|ifparameters|ifinoutputstream|ifinobject|iff|ifassignment|idxfromluatable|idoublegrave|idotbelow|idotaccent|idiaeresis|ideographicspace|ideographichalffillspace|icircumflex|icaron|ibreve|ibox|iacute|hyphenatedword|hyphenatedurl|hyphenatedpar|hyphenatedhbox|hyphenatedfilename|hyphenatedfile|hyphenatedcoloredword|hyphen|htofstring|htdpofstring|hstroke|hspace|hsmashed|hsmashbox|hsmash|hslash|hsizefraction|hpos|hphantom|hpackedbox|hpackbox|horizontalpositionbar|horizontalgrowingbar|hookrightarrow|hookleftarrow|hl|himilo|hilo|highordinalstr|highlight|high|hideblocks|hiddencite|hiddencitation|hiddenbar|hglue|hexstringtonumber|hexnumber|helptext|heightspanningtext|heightofstring|heightanddepthofstring|hebrewnumerals|hebrewZayin|hebrewYod|hebrewVav|hebrewTsadifinal|hebrewTsadi|hebrewTet|hebrewTav|hebrewShin|hebrewSamekh|hebrewResh|hebrewQof|hebrewPefinal|hebrewPe|hebrewNunfinal|hebrewNun|hebrewMemfinal|hebrewMem|hebrewLamed|hebrewKaffinal|hebrewKaf|hebrewHet|hebrewHe|hebrewGimel|hebrewDalet|hebrewBet|hebrewAyin|hebrewAlef|heartsuit|headwidth|headvbox|headtextwidth|headtexts|headtextdistance|headtextcontent|headtext|headsetupspacing|headreferenceattributes|headnumberwidth|headnumberdistance|headnumbercontent|headnumber|headlanguage|headhbox|hdofstring|hcircumflex|hcaron|hboxreference|hboxofvbox|hbar|hat|hash|hanzi|hangul|handwritten|handletokens|halfwaybox|halfstrut|halflinestrut|hairspace|hairline|gurmurkhinumerals|gujaratinumerals|guilsingleright|guilsingleleft|gtrsim|gtrless|gtreqqless|gtreqless|gtrdot|gtrapprox|gt|gstroke|gsetboxlly|gsetboxllx|groupedcommand|grid|greekzeta|greekxi|greekvaria|greekupsilonvrachy|greekupsilonvaria|greekupsilontonos|greekupsilonpsilivaria|greekupsilonpsilitonos|greekupsilonpsiliperispomeni|greekupsilonpsili|greekupsilonperispomeni|greekupsilonoxia|greekupsilonmacron|greekupsilondialytikavaria|greekupsilondialytikatonos|greekupsilondialytikaperispomeni|greekupsilondiaeresis|greekupsilondasiavaria|greekupsilondasiatonos|greekupsilondasiaperispomeni|greekupsilondasia|greekupsilon|greektonos|greekthetaalt|greektheta|greektau|greekstigma|greeksigmalunate|greeksigma|greeksampi|greekrhopsili|greekrhodasia|greekrhoalt|greekrho|greekpsilivaria|greekpsiliperispomeni|greekpsili|greekpsi|greekprosgegrammeni|greekpialt|greekpi|greekphialt|greekphi|greekperispomeni|greekoxia|greekomicronvaria|greekomicrontonos|greekomicronpsilivaria|greekomicronpsilitonos|greekomicronpsili|greekomicronoxia|greekomicrondasiavaria|greekomicrondasiatonos|greekomicrondasia|greekomicron|greekomegavaria|greekomegatonos|greekomegapsilivaria|greekomegapsilitonos|greekomegapsiliperispomeni|greekomegapsili|greekomegaperispomeni|greekomegaoxia|greekomegaiotasubvaria|greekomegaiotasubtonos|greekomegaiotasubpsilivaria|greekomegaiotasubpsilitonos|greekomegaiotasubpsiliperispomeni|greekomegaiotasubpsili|greekomegaiotasubperispomeni|greekomegaiotasubdasiavaria|greekomegaiotasubdasiatonos|greekomegaiotasubdasiaperispomeni|greekomegaiotasubdasia|greekomegaiotasub|greekomegadasiavaria|greekomegadasiatonos|greekomegadasiaperispomeni|greekomegadasia|greekomega|greeknumkoppa|greeknumerals|greeknu|greekmu|greeklambda|greekkoppa|greekkappa|greekiotavrachy|greekiotavaria|greekiotatonos|greekiotapsilivaria|greekiotapsilitonos|greekiotapsiliperispomeni|greekiotapsili|greekiotaperispomeni|greekiotaoxia|greekiotamacron|greekiotadialytikavaria|greekiotadialytikatonos|greekiotadialytikaperispomeni|greekiotadialytika|greekiotadasiavaria|greekiotadasiatonos|greekiotadasiaperispomeni|greekiotadasia|greekiota|greekgamma|greekfinalsigma|greeketavaria|greeketatonos|greeketapsilivaria|greeketapsilitonos|greeketapsiliperispomeni|greeketapsili|greeketaperispomeni|greeketaoxia|greeketaiotasubvaria|greeketaiotasubtonos|greeketaiotasubpsilivaria|greeketaiotasubpsilitonos|greeketaiotasubpsiliperispomeni|greeketaiotasubpsili|greeketaiotasubperispomeni|greeketaiotasubdasiavaria|greeketaiotasubdasiatonos|greeketaiotasubdasiaperispomeni|greeketaiotasubdasia|greeketaiotasub|greeketadasiavaria|greeketadasiatonos|greeketadasiaperispomeni|greeketadasia|greeketa|greekepsilonvaria|greekepsilontonos|greekepsilonpsilivaria|greekepsilonpsilitonos|greekepsilonpsili|greekepsilonoxia|greekepsilondasiavaria|greekepsilondasiatonos|greekepsilondasia|greekepsilonalt|greekepsilon|greekdigamma|greekdialytikavaria|greekdialytikatonos|greekdialytikaperispomeni|greekdelta|greekdasiavaria|greekdasiaperispomeni|greekdasia|greekchi|greekbetaalt|greekbeta|greekalphavrachy|greekalphavaria|greekalphatonos|greekalphapsilivaria|greekalphapsilitonos|greekalphapsiliperispomeni|greekalphapsili|greekalphaperispomeni|greekalphaoxia|greekalphamacron|greekalphaiotasubvaria|greekalphaiotasubtonos|greekalphaiotasubpsilivaria|greekalphaiotasubpsilitonos|greekalphaiotasubpsiliperispomeni|greekalphaiotasubpsili|greekalphaiotasubperispomeni|greekalphaiotasubdasiavaria|greekalphaiotasubdasiatonos|greekalphaiotasubdasiaperispomeni|greekalphaiotasubdasia|greekalphaiotasub|greekalphadasiavaria|greekalphadasiatonos|greekalphadasiaperispomeni|greekalphadasia|greekalpha|greekZeta|greekXi|greekUpsilonvrachy|greekUpsilonvaria|greekUpsilontonos|greekUpsilonmacron|greekUpsilondialytika|greekUpsilondasiavaria|greekUpsilondasiatonos|greekUpsilondasiaperispomeni|greekUpsilondasia|greekUpsilon|greekTheta|greekTau|greekSigmalunate|greekSigma|greekRhodasia|greekRho|greekPsi|greekPi|greekPhi|greekOmicronvaria|greekOmicrontonos|greekOmicronpsilivaria|greekOmicronpsilitonos|greekOmicronpsili|greekOmicrondasiavaria|greekOmicrondasiatonos|greekOmicrondasia|greekOmicron|greekOmegavaria|greekOmegatonos|greekOmegapsilivaria|greekOmegapsilitonos|greekOmegapsiliperispomeni|greekOmegapsili|greekOmegaiotasubpsilivaria|greekOmegaiotasubpsilitonos|greekOmegaiotasubpsiliperispomeni|greekOmegaiotasubpsili|greekOmegaiotasubdasiavaria|greekOmegaiotasubdasiatonos|greekOmegaiotasubdasiaperispomeni|greekOmegaiotasubdasia|greekOmegaiotasub|greekOmegadasiavaria|greekOmegadasiatonos|greekOmegadasiaperispomeni|greekOmegadasia|greekOmega|greekNu|greekMu|greekLambda|greekKappa|greekIotavrachy|greekIotavaria|greekIotatonos|greekIotapsilivaria|greekIotapsilitonos|greekIotapsiliperispomeni|greekIotapsili|greekIotamacron|greekIotadialytika|greekIotadasiavaria|greekIotadasiatonos|greekIotadasiaperispomeni|greekIotadasia|greekIota|greekGamma|greekEtavaria|greekEtatonos|greekEtapsilivaria|greekEtapsilitonos|greekEtapsiliperispomeni|greekEtapsili|greekEtaiotasubpsilivaria|greekEtaiotasubpsilitonos|greekEtaiotasubpsiliperispomeni|greekEtaiotasubpsili|greekEtaiotasubdasiavaria|greekEtaiotasubdasiatonos|greekEtaiotasubdasiaperispomeni|greekEtaiotasubdasia|greekEtaiotasub|greekEtadasiavaria|greekEtadasiatonos|greekEtadasiaperispomeni|greekEtadasia|greekEta|greekEpsilonvaria|greekEpsilontonos|greekEpsilonpsilivaria|greekEpsilonpsilitonos|greekEpsilonpsili|greekEpsilondasiavaria|greekEpsilondasiatonos|greekEpsilondasia|greekEpsilon|greekDelta|greekCoronis|greekChi|greekBeta|greekAlphavrachy|greekAlphavaria|greekAlphatonos|greekAlphapsilivaria|greekAlphapsilitonos|greekAlphapsiliperispomeni|greekAlphapsili|greekAlphamacron|greekAlphaiotasubpsilivaria|greekAlphaiotasubpsilitonos|greekAlphaiotasubpsiliperispomeni|greekAlphaiotasubpsili|greekAlphaiotasubdasiavaria|greekAlphaiotasubdasiatonos|greekAlphaiotasubdasiaperispomeni|greekAlphaiotasubdasia|greekAlphaiotasub|greekAlphadasiavaria|greekAlphadasiatonos|greekAlphadasiaperispomeni|greekAlphadasia|greekAlpha|greedysplitstring|grayvalue|graycolor|grave|grabuntil|grabbufferdatadirect|grabbufferdata|gotopage|gotobox|goto|godown|gobbleuntilrelax|gobbleuntil|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblespacetokens|gobblesixarguments|gobblesingleempty|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|gobbledoubleempty|gnsim|gneqq|gnapprox|glyphfontfile|globalundefine|globalswapmacros|globalswapdimens|globalswapcounts|globalpushmacro|globalpushbox|globalprocesscommalist|globalpreventmode|globalpopmacro|globalpopbox|globalletempty|globalenablemode|globaldisablemode|gimel|gggtr|ggg|gg|getxparameters|getvariabledefault|getvariable|getvalue|getuvalue|getuserdata|gettwopassdatalist|gettwopassdata|gettokenlist|getsubstring|gets|getroundednoflines|getreferenceentry|getreference|getrawxparameters|getrawparameters|getrawnoflines|getrawgparameters|getraweparameters|getrandomseed|getrandomnumber|getrandomfloat|getrandomdimen|getrandomcount|getprivateslot|getprivatechar|getparwrapper|getparameters|getpaletsize|getobjectdimensions|getobject|getnoflines|getnaturaldimensions|getnamedtwopassdatalist|getnamedglyphstyled|getnamedglyphdirect|getmessage|getmarking|getlocalfloats|getlocalfloat|getlasttwopassdata|getinlineuserdata|getgparameters|getglyphstyled|getglyphdirect|getfromtwopassdata|getfromluatable|getfromcommalist|getfromcommacommand|getfirsttwopassdata|getfirstcharacter|getfiguredimensions|getexpandedparameters|geteparameters|getemptyparameters|getdummyparameters|getdocumentfilename|getdocumentargumentdefault|getdocumentargument|getdefinedbuffer|getdayspermonth|getdayoftheweek|getdatavalue|getcommalistsize|getcommacommandsize|getbufferdata|getbuffer|getboxlly|getboxllx|getboxfromcache|getMPlayer|getMPdrawing|geqslant|geqq|geq|ge|gdotaccent|gdefconvertedcommand|gdefconvertedargument|gcommaaccent|gcircumflex|gcaron|gbreve|gamma|gacute|frule|frozenhbox|frown|fromlinenote|from|frenchspacing|freezeparagraphproperties|freezemeasure|freezedimenmacro|framedtext|framedparameter|frameddimension|framed|frac|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourperemspace|fourfifths|foundbox|formulanumber|formula|forgetragged|forgetparwrapper|forgetparskip|forgetparameters|forgetparagraphfreezing|forgeteverypar|forcelocalfloats|forcecharacterstripping|forall|footnotetext|footnote|fontstyle|fontsize|fontfeaturelist|fontface|fontclassname|fontclass|fontcharbyindex|fontchar|fontbody|fontalternative|flushtoks|flushtokens|flushtextflow|flushshapebox|flushoutputstream|flushnotes|flushnextbox|flushlocalfloats|flushlayer|flushedrightlastline|flushcollector|flushboxregister|flushbox|floatuserdataparameter|flligature|flat|flag|fixedspaces|fixedspace|fivesixths|fiveeighths|fittopbaselinegrid|fitfieldframed|fitfield|firstuserpagenumber|firstuserpage|firstsubpagenumber|firstsubpage|firstsubcountervalue|firstrealpagenumber|firstrealpage|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinlist|firstcountervalue|firstcounter|firstcharacter|finishregisterentry|findtwopassdata|filterreference|filterpages|filterfromvalue|filterfromnext|fillupto|fillintext|fillinrules|fillinline|filler|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|filigature|filename|figurewidth|figuresymbol|figurespace|figurenaturalwidth|figurenaturalheight|figureheight|figurefullname|figurefiletype|figurefilepath|figurefilename|fifthofsixarguments|fifthoffivearguments|fieldstack|fieldbody|field|fhook|fflligature|ffligature|ffiligature|fetchtwomarks|fetchtwomarkings|fetchruntinecommand|fetchonemarking|fetchonemark|fetchmarking|fetchmark|fetchallmarks|fetchallmarkings|fenced|fence|feature|fastsxsy|fastswitchtobodyfont|fastsetupwithargumentswapped|fastsetupwithargument|fastsetup|fastscale|fastloopindex|fastloopfinal|fastlocalframed|fastincrement|fastdecrement|fallingdotseq|fakebox|externalfigurecollectionparameter|externalfigurecollectionminwidth|externalfigurecollectionminheight|externalfigurecollectionmaxwidth|externalfigurecollectionmaxheight|externalfigure|exponentiale|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifelse|expdoifcommonelse|expdoif|expandfontsynonym|expandeddoifnot|expandeddoifelse|expandeddoif|expanded|expandcheckedcsname|exitloopnow|exitloop|exists|executeifdefined|exclamdown|eunderparentfill|eunderbracketfill|eunderbracefill|eunderbarfill|etwoheadrightarrowfill|etilde|ethiopic|eth|eta|erightharpoonupfill|erightharpoondownfill|erightarrowfill|equiv|equalscolon|equaldigits|eqslantless|eqslantgtr|eqsim|eqless|eqgtr|eqeqeq|eqeq|eqcirc|eq|epsilon|epos|eoverparentfill|eoverbracketfill|eoverbracefill|eoverbarfill|eogonek|envvar|environment|env|enspace|enskip|enquad|endnote|endash|enabletrackers|enableregime|enableparpositions|enableoutputstream|enablemode|enableexperiments|enabledirectives|enableasciimode|emspace|emquad|emptyset|emptylines|emphasistypeface|emphasisboldface|emdash|emacron|em|ell|eleftrightarrowfill|eleftharpoonupfill|eleftharpoondownfill|eleftarrowfill|elapsedtime|elapsedsteptime|elapsedseconds|einvertedbreve|ehook|egrave|effect|efcparameter|efcminwidth|efcminheight|efcmaxwidth|efcmaxheight|ee|edoublegrave|edotbelow|edotaccent|ediaeresis|edefconvertedargument|ecircumflextilde|ecircumflexhook|ecircumflexgrave|ecircumflexdotbelow|ecircumflexacute|ecircumflex|ecedilla|ecaron|ebreve|eacute|eTeX|dzligature|dzcaronligature|dummyparameter|dummydigit|dtail|dstroke|dpofstring|downzigzagarrow|downwhitearrow|downuparrows|downharpoonright|downharpoonleft|downdownarrows|downdasharrow|downarrow|dowithwargument|dowithrange|dowithpargument|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleverticalbar|doubleprime|doubleparent|doublecup|doublecap|doublebracket|doublebrace|doublebond|doublebar|dottedrightarrow|dottedcircle|dots|dotriplegroupempty|dotripleemptywithset|dotripleempty|dotripleargumentwithset|dotripleargument|dotplus|dotoks|dotminus|dotlessjstroke|dotlessj|dotlessi|dotlessJ|dotlessI|dotfskip|dotfill|doteqdot|doteq|dot|dosubtractfeature|dostepwiserecurse|dosomebreak|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dosetupcheckedinterlinespace|dosetrightskipadaption|dosetleftskipadaption|dosetattribute|dorotatebox|doresetattribute|doresetandafffeature|doreplacefeature|dorepeatwithcommand|dorecurse|dorechecknextindentation|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|doprocesslocalsetups|dopositionaction|dontpermitspacesbetweengroups|dontleavehmode|dontconvertfont|donothing|doloopoverlist|doloop|dollar|doindentation|doifvariableelse|doifvariable|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalueelse|doifvalue|doifurldefinedelse|doifunknownfontfeature|doifundefinedelse|doifundefinedcounter|doifundefined|doiftypingfileelse|doiftopofpageelse|doiftextflowelse|doiftextflowcollectorelse|doiftextelse|doiftext|doifsymbolsetelse|doifsymboldefinedelse|doifstructurelisthaspageelse|doifstructurelisthasnumberelse|doifstringinstringelse|doifsometokselse|doifsometoks|doifsomethingelse|doifsomething|doifsomespaceelse|doifsomebackgroundelse|doifsomebackground|doifsetupselse|doifsetups|doifsamestringelse|doifsamestring|doifsamelinereferenceelse|doifrighttoleftinboxelse|doifrightpagefloatelse|doifrightpageelse|doifreferencefoundelse|doifpositionsusedelse|doifpositionsonthispageelse|doifpositionsonsamepageelse|doifpositiononpageelse|doifpositionelse|doifpositionactionelse|doifpositionaction|doifposition|doifpatternselse|doifpathexistselse|doifpathelse|doifparentfileelse|doifparallelelse|doifoverlayelse|doifoverlappingelse|doifoutervmode|doifolderversionelse|doifoldercontextelse|doifoddpagefloatelse|doifoddpageelse|doifobjectreferencefoundelse|doifobjectfoundelse|doifnumberelse|doifnumber|doifnotvariable|doifnotvalue|doifnotsetups|doifnotsamestring|doifnotnumber|doifnotmode|doifnotinstring|doifnotinsidesplitfloat|doifnotinset|doifnothingelse|doifnothing|doifnotflagged|doifnotfile|doifnotescollected|doifnoteonsamepageelse|doifnotenv|doifnotemptyvariable|doifnotemptyvalue|doifnotempty|doifnotdocumentvariable|doifnotdocumentfilename|doifnotdocumentargument|doifnotcounter|doifnotcommon|doifnotcommandhandler|doifnotallmodes|doifnotallcommon|doifnot|doifnonzeropositiveelse|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextbgroupelse|doifnextbgroupcselse|doifmodeelse|doifmode|doifmessageelse|doifmeaningelse|doifmarkingelse|doifmainfloatbodyelse|doiflocfileelse|doiflocationelse|doiflistelse|doifleapyearelse|doiflayouttextlineelse|doiflayoutsomelineelse|doiflayoutdefinedelse|doiflayerdataelse|doiflanguageelse|doifitalicelse|doifintwopassdataelse|doifintokselse|doifinsymbolsetelse|doifinsymbolset|doifinstringelse|doifinstring|doifinsetelse|doifinset|doifinsertionelse|doifinputfileelse|doifinelementelse|doifincsnameelse|doifhelpelse|doifhasspaceelse|doiffontsynonymelse|doiffontpresentelse|doiffontfeatureelse|doiffontcharelse|doifflaggedelse|doiffirstcharelse|doiffileexistselse|doiffileelse|doiffiledefinedelse|doiffile|doiffigureelse|doiffieldcategoryelse|doiffieldbodyelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifenvelse|doifenv|doifemptyvariableelse|doifemptyvariable|doifemptyvalueelse|doifemptyvalue|doifemptytoks|doifemptyelse|doifempty|doifelsevariable|doifelsevaluenothing|doifelsevalue|doifelseurldefined|doifelseundefined|doifelsetypingfile|doifelsetopofpage|doifelsetextflowcollector|doifelsetextflow|doifelsetext|doifelsesymbolset|doifelsesymboldefined|doifelsestructurelisthaspage|doifelsestructurelisthasnumber|doifelsestringinstring|doifelsesometoks|doifelsesomething|doifelsesomespace|doifelsesomebackground|doifelsesetups|doifelsesamestring|doifelsesamelinereference|doifelserighttoleftinbox|doifelserightpagefloat|doifelserightpage|doifelsereferencefound|doifelsepositionsused|doifelsepositionsonthispage|doifelsepositionsonsamepage|doifelsepositiononpage|doifelsepositionaction|doifelseposition|doifelsepatterns|doifelsepathexists|doifelsepath|doifelseparwrapper|doifelseparentfile|doifelseparallel|doifelseoverlay|doifelseoverlapping|doifelseorientation|doifelseolderversion|doifelseoldercontext|doifelseoddpagefloat|doifelseoddpage|doifelseobjectreferencefound|doifelseobjectfound|doifelsenumber|doifelsenothing|doifelsenoteonsamepage|doifelsenonzeropositive|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelsemode|doifelsemessage|doifelsemeaning|doifelsemarking|doifelsemarkedpage|doifelsemarkedcontent|doifelsemainfloatbody|doifelselocfile|doifelselocation|doifelselist|doifelseleapyear|doifelselayouttextline|doifelselayoutsomeline|doifelselayoutdefined|doifelselayerdata|doifelselanguage|doifelseitalic|doifelseintwopassdata|doifelseintoks|doifelseinsymbolset|doifelseinstring|doifelseinset|doifelseinsertion|doifelseinputfile|doifelseinelement|doifelseindented|doifelseincsname|doifelsehelp|doifelsehasspace|doifelseframed|doifelsefontsynonym|doifelsefontpresent|doifelsefontfeature|doifelsefontchar|doifelseflagged|doifelsefirstchar|doifelsefileexists|doifelsefiledefined|doifelsefile|doifelsefigure|doifelsefieldcategory|doifelsefieldbody|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelseenv|doifelseemptyvariable|doifelseemptyvalue|doifelseempty|doifelsedrawingblack|doifelsedocumentvariable|doifelsedocumentfilename|doifelsedocumentargument|doifelsedimenstring|doifelsedimension|doifelsedefinedcounter|doifelsedefined|doifelsecurrentsynonymused|doifelsecurrentsynonymshown|doifelsecurrentsortingused|doifelsecurrentfonthasfeature|doifelsecounter|doifelseconversionnumber|doifelseconversiondefined|doifelsecommon|doifelsecommandhandler|doifelsecolor|doifelsebuffer|doifelseboxincache|doifelsebox|doifelseblack|doifelseassignmentcs|doifelseassignment|doifelseallmodes|doifelsealldefined|doifelseallcommon|doifelseMPgraphic|doifelse|doifdrawingblackelse|doifdocumentvariableelse|doifdocumentvariable|doifdocumentfilenameelse|doifdocumentfilename|doifdocumentargumentelse|doifdocumentargument|doifdimenstringelse|doifdimensionelse|doifdefinedelse|doifdefinedcounterelse|doifdefinedcounter|doifdefined|doifcurrentfonthasfeatureelse|doifcounterelse|doifcounter|doifconversionnumberelse|doifconversiondefinedelse|doifcontent|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifcolorelse|doifcolor|doifcheckedpagestate|doifbufferelse|doifboxelse|doifbothsidesoverruled|doifbothsides|doifblackelse|doifassignmentelsecs|doifassignmentelse|doifallmodeselse|doifallmodes|doifalldefinedelse|doifallcommonelse|doifallcommon|doifMPgraphicelse|doif|dohyphens|dogobblesingleempty|dogobbledoubleempty|dogetcommacommandelement|dogetattributeid|dogetattribute|dofastloopcs|doexpandedrecurse|doeassign|dodoublegroupempty|dodoubleemptywithset|dodoubleempty|dodoubleargumentwithset|dodoubleargument|documentvariable|docheckedpair|docheckassignment|doboundtext|doassignempty|doassign|doaddfeature|doadaptrightskip|doadaptleftskip|divides|divideontimes|dividedsize|div|distributedhsize|disposeluatable|displaymessage|displaymathematics|displaymath|disabletrackers|disableregime|disableparpositions|disableoutputstream|disablemode|disableexperiments|disabledirectives|dis|directvspacing|directsymbol|directsetup|directsetbar|directselect|directparwrapper|directluacode|directlocalframed|directhighlight|directgetboxlly|directgetboxllx|directdummyparameter|directcopyboxfromcache|directconvertedcounter|directcolored|directcolor|directboxfromcache|dimensiontocount|digits|digamma|differentiald|differentialD|diamondsuit|diamond|diameter|dhook|dfrac|devanagarinumerals|determineregistercharacteristics|determinenoflines|determinelistcharacteristics|determineheadnumber|depthstrut|depthspanningtext|depthonlybox|depthofstring|delta|delimitedtext|delimited|defrostparagraphproperties|definextable|definevspacingamount|definevspacing|definevspace|defineviewerlayer|defineuserdataalternative|defineuserdata|defineunit|definetyping|definetypesetting|definetypescriptsynonym|definetypescriptprefix|definetypeface|definetype|definetwopasslist|definetransparency|definetooltip|definetokenlist|definetextnote|definetextflow|definetextbackground|definetext|definetabulate|definetabletemplate|definesystemvariable|definesystemconstant|definesystemattribute|definesynonyms|definesynonym|definesymbol|definesubformula|definesubfield|definestyleinstance|definestyle|definestartstop|definespotcolor|definesorting|definesort|definesidebar|defineshift|defineseparatorset|defineselector|definesectionlevels|definesectionblock|definesection|definescript|definescale|defineruby|defineresetset|definerenderingwindow|defineregister|definereferenceformat|definereference|definepushsymbol|definepushbutton|defineprogram|defineprofile|defineprocessor|defineprocesscolor|defineprefixset|definepositioning|defineplacement|defineplaceholder|defineperiodkerning|defineparbuilder|defineparallel|defineparagraphs|defineparagraph|definepapersize|definepalet|definepairedbox|definepagestate|definepageshift|definepageinjectionalternative|definepageinjection|definepagecolumns|definepagechecker|definepagebreak|definepage|defineoverlay|defineoutputroutinecommand|defineoutputroutine|defineornament|defineorientation|definenote|definenarrower|definenamespace|definenamedcolor|definemultitonecolor|definemulticolumns|definemode|definemixedcolumns|definemessageconstant|definemeasure|definemathunstacked|definemathundertextextensible|definemathunderextensible|definemathunder|definemathtriplet|definemathstyle|definemathstackers|definemathradical|definemathovertextextensible|definemathoverextensible|definemathover|definemathornament|definemathmatrix|definemathframed|definemathfraction|definemathfence|definemathextensible|definemathematics|definemathdoubleextensible|definemathdouble|definemathcommand|definemathcases|definemathalignment|definemathaccent|definemarking|definemarker|definemargindata|definemarginblock|definemakeup|definelowmidhigh|definelowhigh|definelow|definelistextra|definelistalternative|definelist|definelines|definelinenumbering|definelinenote|definelinefiller|definelayout|definelayerpreset|definelayer|definelabelclass|definelabel|defineitems|defineitemgroup|defineintermediatecolor|defineinterlinespace|defineinterfacevariable|defineinterfaceelement|defineinterfaceconstant|defineinteractionmenu|defineinteractionbar|defineinteraction|defineinsertion|defineinitial|defineindenting|defineindentedtext|definehyphenationfeatures|definehspace|definehighlight|definehigh|definehelp|defineheadalternative|definehead|definehbox|definegridsnapping|definegraphictypesynonym|defineglobalcolor|definefrozenfont|defineframedtext|defineframedtable|defineframedcontent|defineframed|defineformulaframed|defineformulaalternative|defineformula|definefontsynonym|definefontstyle|definefontsolution|definefontsize|definefontfile|definefontfeature|definefontfamilypreset|definefontfamily|definefontfallback|definefontalternative|definefont|definefloat|definefittingpage|definefirstline|definefiller|definefilesynonym|definefilefallback|definefileconstant|definefiguresymbol|definefieldstack|definefieldcategory|definefieldbodyset|definefieldbody|definefield|definefallbackfamily|definefacingfloat|defineexternalfigure|defineexpansion|defineexpandable|defineenumeration|defineeffect|definedocument|definedfont|definedescription|definedeq|definedelimitedtext|definedate|definedataset|definecounter|defineconversionset|defineconversion|definecomplexorsimpleempty|definecomplexorsimple|definecomment|definecommand|definecombinedlist|definecombination|definecolumnsetspan|definecolumnsetarea|definecolumnset|definecolumnbreak|definecolorgroup|definecolor|definecollector|definechemicalsymbol|definechemicals|definechemical|definecharacterspacing|definecharacterkerning|definecharacter|definecapitals|definebutton|definebuffer|definebtxrendering|definebtxregister|definebtxdataset|definebtx|definebreakpoints|definebreakpoint|definebodyfontswitch|definebodyfontenvironment|definebodyfont|defineblock|definebar|definebackground|defineattribute|defineattachment|defineanchor|definealternativestyle|defineactivecharacter|defineaccent|defineTABLEsetup|defineMPinstance|define|defconvertedvalue|defconvertedcommand|defconvertedargument|defcatcodecommand|defaultobjectreference|defaultobjectpage|defaultinterface|decrementvalue|decrementsubpagenumber|decrementpagenumber|decrementedcounter|decrementcounter|decrement|ddots|ddot|dddot|ddagger|ddag|dd|dcurl|dcaron|dbinom|dayspermonth|dayshort|dayoftheweek|daylong|date|datasetvariable|dashv|dashedrightarrow|dashedleftarrow|dasharrow|daleth|dagger|dag|d|cyrilliczhediaeresis|cyrilliczhedescender|cyrilliczhebreve|cyrilliczh|cyrilliczediaeresis|cyrilliczdsc|cyrillicz|cyrillicyu|cyrillicystrstroke|cyrillicystr|cyrillicyo|cyrillicyi|cyrillicyerudiaeresis|cyrillicyat|cyrillicya|cyrillicv|cyrillicushrt|cyrillicumacron|cyrillicuk|cyrillicudoubleacute|cyrillicudiaeresis|cyrillicu|cyrillictshe|cyrillictetse|cyrillictedc|cyrillict|cyrillicshha|cyrillicshch|cyrillicsh|cyrillicsftsn|cyrillicsemisoft|cyrillicsdsc|cyrillicschwadiaeresis|cyrillicschwa|cyrillics|cyrillicr|cyrillicpsi|cyrillicpemidhook|cyrillicp|cyrillicot|cyrillicomegatitlo|cyrillicomegaround|cyrillicomega|cyrillicodiaeresis|cyrillicobarreddiaeresis|cyrillicobarred|cyrillico|cyrillicnje|cyrillicn|cyrillicm|cyrilliclje|cyrilliclittleyusiotified|cyrilliclittleyus|cyrillicl|cyrillicksi|cyrillickoppa|cyrillickje|cyrillickavertstroke|cyrillickastroke|cyrillickahook|cyrillickadc|cyrillickabashkir|cyrillick|cyrillicje|cyrillicizhitsadoublegrave|cyrillicizhitsa|cyrillicishrttail|cyrillicishrt|cyrillicimacron|cyrillicii|cyrillicigrave|cyrillicie|cyrillicidiaeresis|cyrillici|cyrillichrdsn|cyrillichadc|cyrillicha|cyrillich|cyrillicgje|cyrillicgheupturn|cyrillicghestroke|cyrillicghemidhook|cyrillicg|cyrillicfita|cyrillicf|cyrillicery|cyrillicertick|cyrillicerev|cyrillicentail|cyrillicenhook|cyrillicenghe|cyrillicendc|cyrillicemtail|cyrilliceltail|cyrilliceiotified|cyrillicegrave|cyrillicediaeresis|cyrillicebreve|cyrillice|cyrillicdzhe|cyrillicdzeabkhasian|cyrillicdze|cyrillicdje|cyrillicd|cyrillicchevertstroke|cyrillicchekhakassian|cyrillicchediaeresis|cyrillicchedcabkhasian|cyrillicchedc|cyrilliccheabkhasian|cyrillicch|cyrillicc|cyrillicbigyusiotified|cyrillicbigyus|cyrillicb|cyrillicae|cyrillicadiaeresis|cyrillicabreve|cyrillica|cyrillicZHEdiaeresis|cyrillicZHEdescender|cyrillicZHEbreve|cyrillicZH|cyrillicZEdiaeresis|cyrillicZDSC|cyrillicZ|cyrillicYstrstroke|cyrillicYstr|cyrillicYU|cyrillicYO|cyrillicYI|cyrillicYERUdiaeresis|cyrillicYAT|cyrillicYA|cyrillicV|cyrillicUmacron|cyrillicUdoubleacute|cyrillicUdiaeresis|cyrillicUSHRT|cyrillicUK|cyrillicU|cyrillicTSHE|cyrillicTITLO|cyrillicTETSE|cyrillicTEDC|cyrillicT|cyrillicSHHA|cyrillicSHCH|cyrillicSH|cyrillicSFTSN|cyrillicSEMISOFT|cyrillicSDSC|cyrillicSCHWAdiaeresis|cyrillicSCHWA|cyrillicS|cyrillicR|cyrillicPSILIPNEUMATA|cyrillicPSI|cyrillicPEmidhook|cyrillicPALOCHKA|cyrillicPALATALIZATION|cyrillicP|cyrillicOdiaeresis|cyrillicObarreddiaeresis|cyrillicObarred|cyrillicOT|cyrillicOMEGAtitlo|cyrillicOMEGAround|cyrillicOMEGA|cyrillicO|cyrillicNJE|cyrillicN|cyrillicM|cyrillicLJE|cyrillicLITTLEYUSiotified|cyrillicLITTLEYUS|cyrillicL|cyrillicKSI|cyrillicKOPPA|cyrillicKJE|cyrillicKAvertstroke|cyrillicKAstroke|cyrillicKAhook|cyrillicKAbashkir|cyrillicKADC|cyrillicK|cyrillicJE|cyrillicImacron|cyrillicIgrave|cyrillicIdiaeresis|cyrillicIZHITSAdoublegrave|cyrillicIZHITSA|cyrillicISHRTtail|cyrillicISHRT|cyrillicII|cyrillicIE|cyrillicI|cyrillicHRDSN|cyrillicHADC|cyrillicHA|cyrillicH|cyrillicGJE|cyrillicGHEupturn|cyrillicGHEstroke|cyrillicGHEmidhook|cyrillicG|cyrillicFITA|cyrillicF|cyrillicEiotified|cyrillicEgrave|cyrillicEdiaeresis|cyrillicEbreve|cyrillicERtick|cyrillicERY|cyrillicEREV|cyrillicENtail|cyrillicENhook|cyrillicENGHE|cyrillicENDC|cyrillicEMtail|cyrillicELtail|cyrillicE|cyrillicDZHE|cyrillicDZEabkhasian|cyrillicDZE|cyrillicDJE|cyrillicDASIAPNEUMATA|cyrillicD|cyrillicCHEvertstroke|cyrillicCHEkhakassian|cyrillicCHEdiaeresis|cyrillicCHEabkhasian|cyrillicCHEDCabkhasian|cyrillicCHEDC|cyrillicCH|cyrillicC|cyrillicBIGYUSiotified|cyrillicBIGYUS|cyrillicB|cyrillicAdiaeresis|cyrillicAbreve|cyrillicAE|cyrillicA|cwopencirclearrow|curvearrowright|curvearrowleft|currentxtablerow|currentxtablecolumn|currentvalue|currenttime|currentresponses|currentregisterpageuserdata|currentregime|currentproject|currentproduct|currentoutputstream|currentmoduleparameter|currentmessagetext|currentmainlanguage|currentlistsymbol|currentlistentrytitlerendered|currentlistentrytitle|currentlistentryreferenceattribute|currentlistentrypagenumber|currentlistentrynumber|currentlistentrylimitedtext|currentlistentrydestinationattribute|currentlanguage|currentinterface|currentheadnumber|currentfeaturetest|currentenvironment|currentdate|currentcomponent|currentcommalistitem|currentbtxuservariable|currentassignmentlistvalue|currentassignmentlistkey|curlywedge|curlyvee|curlyeqsucc|curlyeqprec|cup|ctxsprint|ctxreport|ctxluacode|ctxluabuffer|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|ctop|cstroke|crlfplaceholder|crlf|crightoverleftarrow|crightarrow|crampedrlap|crampedllap|crampedclap|cramped|counttokens|counttoken|countersubs|correctwhitespace|copyunittext|copytaglabeltext|copysuffixtext|copysetups|copyright|copyprefixtext|copyposition|copyparameters|copypages|copyoperatortext|copymathlabeltext|copylabeltext|copyheadtext|copyfield|copybtxlabeltext|copyboxfromcache|coprod|convertvboxtohbox|convertvalue|convertnumber|convertmonth|convertedsubcounter|converteddimen|convertedcounter|convertcommand|convertargument|continueifinputfile|continuednumber|contentreference|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|cong|compresult|compounddiscretionary|composedlayer|composedcollector|component|complexorsimpleempty|complexorsimple|complexes|completeregister|completepagenumber|completelistoftables|completelistofsynonyms|completelistofsorts|completelistofpublications|completelistoflogos|completelistofintermezzi|completelistofgraphics|completelistoffigures|completelistofchemicals|completelistofabbreviations|completelist|completeindex|completecontent|completebtxrendering|complement|comparepalet|comparedimensioneps|comparedimension|comparecolorgroup|comment|commalistsize|commalistsentence|commalistelement|combinepages|columnsetspanwidth|columnbreak|column|colorvalue|coloronly|colored|colorcomponents|colorbar|color|colonequals|coloncolonequals|colon|collectexpanded|collectedtext|collect|clubsuit|clonefield|clippedoverlayimage|clip|cleftarrow|cldprocessfile|cldloadfile|cldcontext|cldcommand|classfont|clap|cite|citation|circleonrightarrow|circledequals|circleddash|circledcirc|circledast|circledS|circledR|circlearrowright|circlearrowleft|circeq|circ|chook|chinesenumerals|chinesecapnumerals|chineseallnumerals|chi|chemicaltoptext|chemicaltext|chemicalsymbol|chemicalmidtext|chemicalbottext|chemical|chem|checkvariables|checktwopassdata|checksoundtrack|checkpreviousinjector|checkparameters|checkpage|checknextinjector|checknextindentation|checkmark|checkinjector|checkedstrippedcsname|checkedfiller|checkedchar|checkedblank|checkcharacteralign|check|charwidthlanguage|chardescription|characters|character|chapter|cfrac|centerline|centerednextbox|centeredlastline|centeredbox|centerdot|centerbox|centeraligned|cdots|cdotp|cdotaccent|cdot|ccurl|ccircumflex|ccedilla|ccaron|cbox|catcodetablename|carriagereturn|capital|cap|camel|calligraphic|cacute|button|bullet|buildtextognek|buildtextmacron|buildtextgrave|buildtextcedilla|buildtextbottomdot|buildtextbottomcomma|buildtextaccent|buildmathaccent|btxtextcitation|btxsingularplural|btxsingularorplural|btxsetup|btxsavejournalist|btxremapauthor|btxoneorrange|btxloadjournalist|btxlistcitation|btxlabeltext|btxlabellanguage|btxhybridcite|btxhiddencitation|btxfoundtype|btxfoundname|btxflushsuffix|btxflushauthornormalshort|btxflushauthornormal|btxflushauthorname|btxflushauthorinvertedshort|btxflushauthorinverted|btxflushauthor|btxflush|btxfirstofrange|btxfieldtype|btxfieldname|btxfield|btxexpandedjournal|btxdoifuservariableelse|btxdoifsameaspreviouselse|btxdoifsameaspreviouscheckedelse|btxdoifnot|btxdoifelseuservariable|btxdoifelsesameaspreviouschecked|btxdoifelsesameasprevious|btxdoifelsecombiinlist|btxdoifelse|btxdoifcombiinlistelse|btxdoif|btxdirect|btxdetail|btxauthorfield|btxalwayscitation|btxaddjournal|btxabbreviatedjournal|bstroke|breve|breakhere|breakablethinspace|bpos|boxtimes|boxreference|boxplus|boxofsize|boxminus|boxmarker|boxdot|boxcursor|bowtie|bottomrightbox|bottomleftbox|bottombox|bot|bordermatrix|booleanmodevalue|bookmark|boldslanted|bolditalic|boldface|bold|bodyfontsize|bodyfontenvironmentlist|blockuservariable|blocksynctexfile|blockquote|blockligatures|bleedwidth|bleedheight|bleed|blap|blank|blacktriangleright|blacktriangleleft|blacktriangledown|blacktriangle|blacksquare|blackrules|blackrule|blacklozenge|bitmapimage|binom|bigwedge|bigvee|biguplus|bigudot|bigtriangleup|bigtriangledown|bigtimes|bigstar|bigsquare|bigsqcup|bigsqcap|bigskip|bigr|bigotimes|bigoplus|bigodot|bigm|bigl|biggr|biggm|biggl|bigger|bigg|bigdiamond|bigcup|bigcircle|bigcirc|bigcap|bigbodyfont|big|bhook|between|beth|beta|beforetestandsplitstring|beforesplitstring|because|bbox|bbordermatrix|baselinerightbox|baselinemiddlebox|baselineleftbox|baselinebottom|basegrid|barwedge|barovernorthwestarrow|barleftarrowrightarrowbar|barleftarrow|bar|backslash|backsim|backprime|backgroundline|backgroundimagefill|backgroundimage|background|backepsilon|averagecharwidth|availablehsize|autosetups|autorule|autopagestaterealpageorder|autopagestaterealpage|autoorientation|automathematics|autointegral|autoinsertnextspace|autodirvtop|autodirvbox|autodirhbox|autocap|attachment|atrightmargin|atpage|atleftmargin|atilde|at|asymp|astype|ast|assumelongusagecs|assignwidth|assignvalue|assigntranslation|assignifempty|assigndimension|assigndimen|assignalfadimension|aside|asciistr|asciimode|arrowvert|aringacute|aring|arg|arabicwasallam|arabicvowelyeh|arabicvowelwaw|arabictripledot|arabicstartofrubc|arabicslcm|arabicshighthreedots|arabicsemicolon|arabicsanah|arabicsamvat|arabicsalla|arabicsajdah|arabicsafha|arabicrialsign|arabicray|arabicrasoul|arabicquestion|arabicqala|arabicpoeticverse|arabicpertenthousand|arabicpermille|arabicperiod|arabicpercent|arabicparenright|arabicparenleft|arabicnumerals|arabicnumberabove|arabicnumber|arabicmuhammad|arabicmisra|arabiclowseen|arabiclownoonkasra|arabiclowmeemlong|arabiclettermark|arabicjallajalalouhou|arabichighzain|arabichighyeh|arabichighwaqf|arabichighthalatha|arabichightakhallus|arabichightah|arabichighsmallsafha|arabichighseen|arabichighsallallahou|arabichighsakta|arabichighsajda|arabichighsad|arabichighrubc|arabichighrahmatullahalayhe|arabichighradiallahouanhu|arabichighqif|arabichighqaf|arabichighnoonkasra|arabichighnoon|arabichighnisf|arabichighmeemshort|arabichighmeemlong|arabichighmadda|arabichighlamalef|arabichighjeem|arabichighfootnotemarker|arabichighesala|arabichigheqala|arabichighalayheassallam|arabichighain|arabicfourthroot|arabicfootnotemarker|arabicexnumerals|arabicendofayah|arabicdisputedendofayah|arabicdecimals|arabicdateseparator|arabiccuberoot|arabiccomma|arabicbasmalah|arabicasterisk|arabicallallahou|arabicallah|arabicalayhe|arabicakbar|approxnEq|approxeq|approxEq|approx|applytowords|applytosplitstringwordspaced|applytosplitstringword|applytosplitstringlinespaced|applytosplitstringline|applytosplitstringcharspaced|applytosplitstringchar|applytofirstcharacter|applytocharacters|applyprocessor|applyalternativestyle|apply|appendvalue|appendtoksonce|appendtoks|appendtocommalist|appendgvalue|appendetoks|aogonek|angle|anchor|ampersand|amalg|amacron|alwayscite|alwayscitation|alphabeticnumerals|alpha|allinputpaths|alignmentcharacter|alignhere|alignedline|alignedbox|aligned|alignbottom|aleph|ainvertedbreve|ahook|agrave|aftertestandsplitstring|aftersplitstring|afghanicurrency|aemacron|aeligature|aeacute|adoublegrave|adotbelow|adotaccentmacron|adotaccent|adiaeresismacron|adiaeresis|addvalue|addtocommalist|addtoJSpreamble|addfeature|adaptpapersize|adaptlayout|adaptfontfeature|adaptcollector|acwopencirclearrow|acute|actuarial|actualyear|actualmonth|actualday|activatespacehandler|acircumflextilde|acircumflexhook|acircumflexgrave|acircumflexdotbelow|acircumflexacute|acircumflex|acaron|abrevetilde|abrevehook|abrevegrave|abrevedotbelow|abreveacute|abreve|about|abjadnumerals|abjadnodotnumerals|abjadnaivenumerals|abbreviation|aacute|Zstroke|Zhook|Zeta|Zdotaccent|Zcaron|Zacute|Ytilde|Ymacron|Yhook|Ygrave|Ydotbelow|Ydiaeresis|Ycircumflex|Yacute|Xi|XeTeX|XETEX|Words|Word|WidthSpanningText|Wcircumflex|WORDS|WORD|WEEKDAY|Vvdash|Vhook|Vert|VerboseNumber|Vdash|VDash|Uuparrow|Utilde|Uring|Upsilon|Updownarrow|Uparrow|Uogonek|Umacron|Uinvertedbreve|Uhungarumlaut|Uhorntilde|Uhornhook|Uhorngrave|Uhorndotbelow|Uhornacute|Uhorn|Uhook|Ugrave|Udoublegrave|Udotbelow|Udiaeresismacron|Udiaeresisgrave|Udiaeresiscaron|Udiaeresisacute|Udiaeresis|Ucircumflex|Ucaron|Ubreve|Uacute|Tstroke|TransparencyHack|Thorn|Thook|Theta|TheNormalizedFontSize|TeX|Tcommaaccent|Tcedilla|Tcaron|Tau|TaBlE|TEX|TABLE|Swarrow|Supset|Subset|Smallcapped|Sigma|Searrow|Scommaaccent|Scircumflex|Schwa|Scedilla|Scaron|ScaledPointsToWholeBigPoints|ScaledPointsToBigPoints|Sacute|S|Rsh|Rrightarrow|Romannumerals|Rinvertedbreve|Rightarrow|Rho|Relbar|ReadFile|Re|Rdsh|Rdoublegrave|Rcommaaccent|Rcaron|Racute|PtToCm|Psi|PropertyLine|PointsToWholeBigPoints|PointsToReal|PointsToBigPoints|Plankconst|PiCTeX|Pi|Phook|Phi|PRAGMA|PPCHTeX|PPCHTEX|PICTEX|PDFcolor|PDFTEX|PDFETEX|P|Otildemacron|Otilde|Ostrokeacute|Ostroke|Oogonekmacron|Oogonek|Omicron|Omega|Omacron|Oinvertedbreve|Ohungarumlaut|Ohorntilde|Ohornhook|Ohorngrave|Ohorndotbelow|Ohornacute|Ohorn|Ohook|Ograve|Odoublegrave|Odotbelow|Odotaccentmacron|Odotaccent|Odiaeresismacron|Odiaeresis|Ocircumflextilde|Ocircumflexhook|Ocircumflexgrave|Ocircumflexdotbelow|Ocircumflexacute|Ocircumflex|Ocaron|Obreve|Oacute|OEligature|Nwarrow|Numbers|Nu|Ntilde|NormalizeTextWidth|NormalizeTextHeight|NormalizeFontWidth|NormalizeFontHeight|Njligature|Ngrave|Neng|Nearrow|Ncommaaccent|Ncaron|Nacute|NJligature|Mu|MetaPost|MetaFun|MetaFont|Mapsto|Mapsfrom|MPy|MPxywhd|MPxy|MPx|MPwhd|MPw|MPvv|MPvariable|MPvar|MPv|MPur|MPul|MPtransparency|MPtext|MPstring|MPrs|MPrightskip|MPrest|MPregion|MPrawvar|MPr|MPposset|MPpositiongraphic|MPpos|MPplus|MPpardata|MPpage|MPp|MPoverlayanchor|MPoptions|MPn|MPmenubuttons|MPls|MPlr|MPll|MPleftskip|MPinclusions|MPh|MPgetposboxes|MPgetmultishape|MPgetmultipars|MPfontsizehskip|MPdrawing|MPd|MPcolumn|MPcoloronly|MPcolor|MPcode|MPc|MPbetex|MPanchor|MPXL|MPVI|MPLX|MPIV|MPII|MONTHSHORT|MONTHLONG|MONTH|MKXL|MKXI|MKVI|MKLX|MKIX|MKIV|MKII|METAPOST|METAFUN|METAFONT|LuajitTeX|LuaTeX|LuaMetaTeX|Lua|Lstroke|Lsh|Longrightarrow|Longmapsto|Longmapsfrom|Longleftrightarrow|Longleftarrow|Lleftarrow|Ljligature|Leftrightarrow|Leftarrow|Ldsh|Ldotmiddle|Lcommaaccent|Lcaron|Lbar|Lambda|LamSTeX|Lacute|LaTeX|LUATEX|LUAMETATEX|LUAJITTEX|LJligature|LATEX|LAMSTEX|Khook|Kcommaaccent|Kcaron|Kappa|Join|Jcircumflex|Itilde|Istroke|Iota|Iogonek|Imacron|Im|Iinvertedbreve|Ihook|Igrave|Idoublegrave|Idotbelow|Idotaccent|Idiaeresis|Icircumflex|Icaron|Ibreve|Iacute|INRSTEX|IJligature|Hstroke|Hcircumflex|Hcaron|Hat|Gstroke|Greeknumerals|GotoPar|Ghook|GetPar|Gdotaccent|Gcommaaccent|Gcircumflex|Gcaron|Gbreve|Gamma|Game|Gacute|Finv|Fhook|EveryPar|EveryLine|Eulerconst|Etilde|Eth|Eta|Epsilon|Eogonek|Emacron|Einvertedbreve|Ehook|Egrave|Edoublegrave|Edotbelow|Edotaccent|Ediaeresis|Ecircumflextilde|Ecircumflexhook|Ecircumflexgrave|Ecircumflexdotbelow|Ecircumflexacute|Ecircumflex|Ecedilla|Ecaron|Ebreve|Eacute|ETEX|Dzligature|Dzcaronligature|Dstroke|Downarrow|Doteq|Dhook|Delta|Ddownarrow|Dd|Dcaron|Dafrican|DZligature|DZcaronligature|DAYSHORT|DAYLONG|Cup|Cstroke|ConvertToConstant|ConvertConstantAfter|Context|ConTeXt|Chook|Chi|Characters|Character|Cdotaccent|Ccircumflex|Ccedilla|Ccaron|Caps|Cap|Cacute|CONTEXT|Bumpeq|Box|Bigr|Bigm|Bigl|Biggr|Biggm|Biggl|Bigg|Big|Bhook|Beta|BeforePar|Atilde|Astroke|Arrowvert|Aringacute|Aring|Aogonek|Angstrom|And|Amacron|AmSTeX|Alphabeticnumerals|Alpha|Ainvertedbreve|Ahook|Agrave|AfterPar|Adoublegrave|Adotbelow|Adotaccentmacron|Adotaccent|Adiaeresismacron|Adiaeresis|Acircumflextilde|Acircumflexhook|Acircumflexgrave|Acircumflexdotbelow|Acircumflexacute|Acircumflex|Acaron|Abrevetilde|Abrevehook|Abrevegrave|Abrevedotbelow|Abreveacute|Abreve|Aacute|AMSTEX|AEmacron|AEligature|AEacute)(?=[^a-zA-Z])",
"name" : "context.command.commands.context.tex"
},
"comment" : {
@@ -69,7 +69,7 @@
"name" : "context.comment.comment.tex"
},
"constant" : {
- "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|widowpenaltyfrozenparcode|whatsitnodecode|vtopparcontextcode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeparcontextcode|vmodeifcode|vlistnodecode|vcenterparcontextcode|vcentergroupcode|vboxparcontextcode|vboxifcode|vboxgroupcode|valueflagcode|vadjustparcontextcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|uppercasehyphenationcode|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|underrulemathcontrolcode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tolerantflagcode|tolerancefrozenparcode|tildeasciicode|threeperemspace|thousandpoint|textitalickernmathcontrolcode|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|syllablehyphenationcode|swapparsshapenormalizecode|swaphangindentnormalizecode|superscriptcatcode|subscriptcatcode|strictstarthyphenationcode|strictendhyphenationcode|stretchfrozenparcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|statuswrite|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|splitoffgroupcode|splitkeepgroupcode|spanparcontextcode|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|skipfrozenparcode|sixperemspace|singlequoteasciicode|simplegroupcode|shapingpenaltiesfrozenparcode|shapefrozenparcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlncatcodes|rlm|righttoleftmark|rightrotationangle|rightparentasciicode|rightoriginlistanchorcode|rightheightlistanchorcode|rightdepthlistanchorcode|rightbracketasciicode|rightbraceasciicode|resetparcontextcode|removemarginkernsnormalizecode|relmathflattencode|radicalrulemathcontrolcode|questionmarkasciicode|pushmode|punctuationspace|punctmathflattencode|prtcatcodes|protrudefrozenparcode|protectedflagcode|project|product|primitiveflagcode|primeasciicode|preworddiscoptioncode|preventmode|presetdocument|prerollrun|preautomigrationcode|preamblegroupcode|postworddiscoptioncode|postautomigrationcode|popmode|points|plustwohundred|plustwo|plustwentythousand|plustwelve|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseleven|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|permitmathreplacehyphenationcode|permitgluehyphenationcode|permitallhyphenationcode|permanentflagcode|periodasciicode|percentasciicode|penaltynodecode|pdftexengine|partialhyphenationcode|parindentskipnormalizecode|parfillrightskip|parfillleftskip|parfillfrozenparcode|parametercatcode|overrulemathcontrolcode|overloadedflagcode|outputparcontextcode|outputnewlinechar|outputgroupcode|othercatcode|orphanpenaltyfrozenparcode|ordmathflattencode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|nostaircasekernmathcontrolcode|noscriptitalickernmathcontrolcode|normalworddiscoptioncode|normalparcontextcode|normalpagebox|normalizelinenormalizecode|normalhyphenationcode|norightligaturingglyphoptioncode|norightligatureglyphoptioncode|norightkerningglyphoptioncode|norightkernglyphoptioncode|noprotrusionglyphoptioncode|noprotrusionglyphoptioncode|noorditalickernmathcontrolcode|nonstopmodecode|nonbreakablespace|noligaturingglyphoptioncode|noligaturingglyphoptioncode|noligaturingcode|noleftligaturingglyphoptioncode|noleftligatureglyphoptioncode|noleftkerningglyphoptioncode|noleftkernglyphoptioncode|nokerningglyphoptioncode|nokerningglyphoptioncode|nokerningcode|noitaliccorrectionglyphoptioncode|noitaliccorrectionglyphoptioncode|noexpansionglyphoptioncode|noexpansionglyphoptioncode|nobreakspace|noalignparcontextcode|noaligngroupcode|noalignedflagcode|nilcatcodes|newlineasciicode|negateylistsigncode|negatexlistsigncode|negatelistsigncode|narrownobreakspace|mutableflagcode|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathradicalcode|mathpunctcode|mathordcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathgroupcode|mathexheight|mathemwidth|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathaxisheight|mathalphacode|mathaccentcode|mathabovegroupcode|marknodecode|markautomigrationcode|luatexengine|luastringsep|luacatcodes|lrm|loosenessfrozenparcode|localboxgroupcode|linepenaltyfrozenparcode|linefrozenparcode|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|leftrotationangle|leftparentasciicode|leftoriginlistanchorcode|leftheightlistanchorcode|leftdepthlistanchorcode|leftbracketasciicode|leftbraceasciicode|lazyligatureshyphenationcode|lastlinefrozenparcode|kernnodecode|italicshapekernmathcontrolcode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|instanceflagcode|insertparcontextcode|insertnodecode|insertgroupcode|insertautomigrationcode|innermathflattencode|innerifcode|inicatcodes|indentfrozenparcode|immutableflagcode|immediateflagcode|ignorecatcode|ignoreboundshyphenationcode|ideographicspace|ideographichalffillspace|hyphenationfrozenparcode|hyphenasciicode|hsizefrozenparcode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|hangfrozenparcode|halfwaytotallistanchorcode|halfwayrightlistanchorcode|halfwayleftlistanchorcode|halfwayheightlistanchorcode|halfwaydepthlistanchorcode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalflagcode|globalenablemode|globaldisablemode|frozenflagcode|fractionrulemathcontrolcode|fourperemspace|forwardslashasciicode|formfeedasciicode|forcehandlerhyphenationcode|forcecheckhyphenationcode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|flattendiscretionariesnormalizecode|fiveperemspace|finrowgroupcode|figurespace|feedbackcompoundhyphenationcode|falseifcode|extraspace|explicitpenaltyhyphenationcode|explicithyphenationcode|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|displaypenaltyfrozenparcode|discretionarynodecode|discretionarygroupcode|discretionarygroupcode|discardzerotabskipsnormalizecode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|demeritsfrozenparcode|delimiteritalickernmathcontrolcode|delasciicode|definemode|definedifcode|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continuewhenlmtxmode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalflagcode|conditionalfalse|compoundhyphenationcode|component|completehyphenationcode|commentcatcode|commentasciicode|commaasciicode|colonasciicode|collapsehyphenationcode|clubpenaltyfrozenparcode|clipwidthnormalizecode|circumflexasciicode|charnodecode|charitalicwidthmathcontrolcode|charitalicnoreboxmathcontrolcode|charifcode|centeroriginlistanchorcode|centerheightlistanchorcode|centerdepthlistanchorcode|catifcode|caseifcode|brokenpenaltyfrozenparcode|breakafterdirnormalizecode|breakablethinspace|boxednoitalickernmathcontrolcode|bottomlevelgroupcode|binmathflattencode|binaryshiftedtwenty|binaryshiftedthirty|binaryshiftedten|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|automaticpenaltyhyphenationcode|automatichyphenationcode|attributeunsetvalue|atsignasciicode|asciispacechar|ampersandasciicode|alsosimplegroupcode|allfrozenparcode|alignsetgroupcode|alignparcontextcode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustfrozenparcode|adjustedhboxgroupcode|adjustautomigrationcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|accentskewhalfmathcontrolcode|accentskewapplymathcontrolcode|accentitalickernmathcontrolcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])",
+ "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|widowpenaltyfrozenparcode|whatsitnodecode|vtopparcontextcode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeparcontextcode|vmodeifcode|vlistnodecode|vcenterparcontextcode|vcentergroupcode|vboxparcontextcode|vboxifcode|vboxgroupcode|valueflagcode|vadjustparcontextcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|uppercasehyphenationcode|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|underrulemathcontrolcode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tolerantflagcode|tolerancefrozenparcode|tildeasciicode|threeperemspace|thousandpoint|thickermuskip|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|syllablehyphenationcode|swapparsshapenormalizecode|swaphangindentnormalizecode|superscriptcatcode|subscriptcatcode|strictstarthyphenationcode|strictendhyphenationcode|stretchfrozenparcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|statuswrite|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|staircasekernmathcontrolcode|splitoffgroupcode|splitkeepgroupcode|spanparcontextcode|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|skipfrozenparcode|sixperemspace|singlequoteasciicode|simplegroupcode|shapingpenaltyfrozenparcode|shapefrozenparcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlncatcodes|rlm|righttoleftmark|rightrotationangle|rightparentasciicode|rightoriginlistanchorcode|rightheightlistanchorcode|rightdepthlistanchorcode|rightbracketasciicode|rightbraceasciicode|resetparcontextcode|removemarginkernsnormalizecode|relmathflattencode|reboxcharitalickernmathcontrolcode|radicalrulemathcontrolcode|questionmarkasciicode|pushmode|punctuationspace|punctmathflattencode|prtcatcodes|protrudefrozenparcode|protectedflagcode|project|product|primitiveflagcode|primeasciicode|preworddiscoptioncode|preventmode|presetdocument|prerollrun|preautomigrationcode|preamblegroupcode|postworddiscoptioncode|postautomigrationcode|popmode|points|plustwohundred|plustwo|plustwentythousand|plustwelve|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseleven|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|permitmathreplacehyphenationcode|permitgluehyphenationcode|permitallhyphenationcode|permanentflagcode|periodasciicode|percentasciicode|penaltynodecode|pdftexengine|partialhyphenationcode|parindentskipnormalizecode|parfillrightskip|parfillleftskip|parfillfrozenparcode|parametercatcode|overrulemathcontrolcode|overloadedflagcode|outputparcontextcode|outputnewlinechar|outputgroupcode|othercatcode|orphanpenaltyfrozenparcode|ordmathflattencode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|normalworddiscoptioncode|normalparcontextcode|normalpagebox|normalizelinenormalizecode|normalhyphenationcode|norightligaturingglyphoptioncode|norightligatureglyphoptioncode|norightkerningglyphoptioncode|norightkernglyphoptioncode|noprotrusionglyphoptioncode|noprotrusionglyphoptioncode|nonstopmodecode|nonbreakablespace|noligaturingglyphoptioncode|noligaturingglyphoptioncode|noligaturingcode|noleftligaturingglyphoptioncode|noleftligatureglyphoptioncode|noleftkerningglyphoptioncode|noleftkernglyphoptioncode|nokerningglyphoptioncode|nokerningglyphoptioncode|nokerningcode|noitaliccorrectionglyphoptioncode|noitaliccorrectionglyphoptioncode|noexpansionglyphoptioncode|noexpansionglyphoptioncode|nobreakspace|noalignparcontextcode|noaligngroupcode|noalignedflagcode|nilcatcodes|newlineasciicode|negateylistsigncode|negatexlistsigncode|negatelistsigncode|narrownobreakspace|mutableflagcode|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathvcentercode|mathvariablecode|mathundercode|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathrelationcode|mathradicalcode|mathpunctuationcode|mathpunctcode|mathpenaltyfrozenparcode|mathovercode|mathordinarycode|mathordcode|mathoperatorcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathmiddlecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathimaginarycode|mathgroupcode|mathghostcode|mathfunctioncode|mathfractioncode|mathfencedcode|mathfactorialcode|mathexponentialcode|mathexplicitcode|mathexheight|mathendcode|mathemwidth|mathdivisioncode|mathdigitcode|mathdifferentialcode|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathbinarycode|mathbegincode|mathaxisheight|mathalphacode|mathactivecode|mathaccentcode|mathabovegroupcode|marknodecode|markautomigrationcode|luatexengine|luastringsep|luacatcodes|lrm|loosenessfrozenparcode|localboxgroupcode|linepenaltyfrozenparcode|linefrozenparcode|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|leftrotationangle|leftparentasciicode|leftoriginlistanchorcode|leftheightlistanchorcode|leftdepthlistanchorcode|leftbracketasciicode|leftbraceasciicode|lazyligatureshyphenationcode|lastlinefrozenparcode|kernnodecode|italicshapekernmathcontrolcode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|instanceflagcode|insertparcontextcode|insertnodecode|insertgroupcode|insertautomigrationcode|innermathflattencode|innerifcode|inicatcodes|indentfrozenparcode|immutableflagcode|immediateflagcode|ignorecatcode|ignoreboundshyphenationcode|ideographicspace|ideographichalffillspace|hyphenationfrozenparcode|hyphenasciicode|hsizefrozenparcode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|hangfrozenparcode|halfwaytotallistanchorcode|halfwayrightlistanchorcode|halfwayleftlistanchorcode|halfwayheightlistanchorcode|halfwaydepthlistanchorcode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalflagcode|globalenablemode|globaldisablemode|frozenflagcode|fractionrulemathcontrolcode|fourperemspace|forwardslashasciicode|formfeedasciicode|forcehandlerhyphenationcode|forcecheckhyphenationcode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|flattenleadersnormalizecode|flattendiscretionariesnormalizecode|fiveperemspace|finrowgroupcode|figurespace|feedbackcompoundhyphenationcode|falseifcode|extraspace|explicitpenaltyhyphenationcode|explicithyphenationcode|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|displaypenaltyfrozenparcode|discretionarynodecode|discretionarygroupcode|discretionarygroupcode|discardzerotabskipsnormalizecode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|demeritsfrozenparcode|delasciicode|definemode|definedifcode|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continuewhenlmtxmode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalflagcode|conditionalfalse|compoundhyphenationcode|component|completehyphenationcode|commentcatcode|commentasciicode|commaasciicode|colonasciicode|collapsehyphenationcode|clubpenaltyfrozenparcode|clipwidthnormalizecode|circumflexasciicode|checktextitalickernmathcontrolcode|checkspaceitalickernmathcontrolcode|checkligatureandkernmathcontrolcode|charnodecode|charifcode|centeroriginlistanchorcode|centerheightlistanchorcode|centerdepthlistanchorcode|catifcode|caseifcode|brokenpenaltyfrozenparcode|breakafterdirnormalizecode|breakablethinspace|bottomlevelgroupcode|binmathflattencode|binaryshiftedtwenty|binaryshiftedthirty|binaryshiftedten|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|automaticpenaltyhyphenationcode|automatichyphenationcode|attributeunsetvalue|atsignasciicode|asciispacechar|applyverticalitalickernmathcontrolcode|applytextitalickernmathcontrolcode|applyscriptitalickernmathcontrolcode|applyordinaryitalickernmathcontrolcode|applycharitalickernmathcontrolcode|applyboxeditalickernmathcontrolcode|ampersandasciicode|alsosimplegroupcode|allfrozenparcode|alignsetgroupcode|alignparcontextcode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustfrozenparcode|adjustedhboxgroupcode|adjustautomigrationcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|accentskewhalfmathcontrolcode|accentskewapplymathcontrolcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])",
"name" : "context.constant.commands.constant.tex"
},
"csname" : {
@@ -89,7 +89,7 @@
"name" : "context.grouping.symbols.groups.tex"
},
"helper" : {
- "match" : "\u005C\u005C(xmlsetup|writestatus|write|wait|vpenalty|vpackedbox|vpackbox|vkern|vglue|vfillneg|vfilllneg|vfilll|vcontainer|validassignment|uxdef|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedlineskiplimit|usedlineskip|usedbaselineskip|updateparagraphshapes|updateparagraphproperties|updateparagraphpenalties|updateparagraphlines|updateparagraphdemerits|unvoidbox|untraceddonothing|unsupportedcs|unprotect|unique|unexpanded|undefinevalue|uncramped|ugdef|uedef|uedcatcodecommand|udef|twodigits|truecondition|tripleexpandafter|triggeruncrampedstyle|triggeruncrampedsmallstyle|triggeruncrampedbigstyle|triggertextstyle|triggersmallstyle|triggerscriptstyle|triggerscriptscriptstyle|triggermathstyle|triggergroupedcommandcs|triggergroupedcommand|triggerdisplaystyle|triggercrampedstyle|triggercrampedsmallstyle|triggercrampedbigstyle|triggerbigstyle|tracingnone|tracingcatcodes|tracingall|to|threedigits|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thirdargumenttrue|thirdargumentfalse|then|thebox|textdir|texsetup|texdefinition|tempstring|tcontainer|synchronizelayoutdirection|synchronizeinlinedirection|synchronizedisplaydirection|superscript|superprescript|suggestedalias|subscript|subprescript|strutwd|struthtdp|strutht|strutgap|strutdp|strutbox|strut|strippedcsname|stopxmlsetups|stoptexsetups|stoptexdefinition|stoptexcode|stopsetups|stoprawsetups|stoppickupmath|stopnointerference|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stopimath|stopforceddisplaymath|stopextendcatcodetable|stopexpanded|stopdmath|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcatcodetable|stop|startxmlsetups|starttexsetups|starttexdefinition|starttexcode|startsetups|startrawsetups|startpickupmath|startnointerference|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startimath|startforceddisplaymath|startextendcatcodetable|startexpanded|startdmath|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcatcodetable|start|space|sixthofsixarguments|sixthargumenttrue|sixthargumentfalse|singleexpandafter|simplegroupedcommandcs|simplegroupedcommand|signalcharacter|showluatokens|showboxhere|shiftbox|seventhargumenttrue|seventhargumentfalse|setxvalue|setxquantity|setxmeasure|setvalue|setuxvalue|setuvalue|setups|setup|setugvalue|setuevalue|settruevalue|settrue|setsystemmode|setstrut|setquantity|setprelistbox|setpostlistbox|setparagraphfreezing|setnewmacro|setnewlocaltoks|setnewlocalskip|setnewlocalmuskip|setnewlocaldimen|setnewlocalcount|setnewlocalbox|setnewconstant|setmode|setmeasure|setmathtextbox|setmathsmalltextbox|setlocalhsize|setgvalue|setgquantity|setgmeasure|setfalsevalue|setfalse|setexpandeddummyparameter|setevalue|setequantity|setemeasure|setdummyparameter|setcontrolspaces|setconstantvalue|setconstant|setconditional|setcatcodetable|setboxline|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|secondargumenttrue|secondargumentfalse|scratchyposition|scratchyoffset|scratchxposition|scratchxoffset|scratchwidth|scratchvsize|scratchvoffset|scratchunicode|scratchtotal|scratchtopskip|scratchtopoffset|scratchtokstwo|scratchtoksthree|scratchtokssix|scratchtoksone|scratchtoksfour|scratchtoksfive|scratchtoks|scratchstringtwo|scratchstringone|scratchstring|scratchskiptwo|scratchskipthree|scratchskipsix|scratchskipone|scratchskipfour|scratchskipfive|scratchskip|scratchrightskip|scratchrightoffset|scratchoffset|scratchny|scratchnx|scratchmy|scratchmx|scratchmuskiptwo|scratchmuskipthree|scratchmuskipsix|scratchmuskipone|scratchmuskipfour|scratchmuskipfive|scratchmuskip|scratchmin|scratchmax|scratchmacrotwo|scratchmacroone|scratchmacro|scratchleftskip|scratchleftoffset|scratchhsize|scratchhoffset|scratchheight|scratchdistance|scratchdimentwo|scratchdimenthree|scratchdimensix|scratchdimenone|scratchdimenfour|scratchdimenfive|scratchdimen|scratchdepth|scratchcountertwo|scratchcounterthree|scratchcountersix|scratchcounterone|scratchcounterfour|scratchcounterfive|scratchcounter|scratchconditiontwotrue|scratchconditiontwofalse|scratchconditiontrue|scratchconditiononetrue|scratchconditiononefalse|scratchconditionfalse|scratchboxtwo|scratchboxthree|scratchboxsix|scratchboxone|scratchboxfour|scratchboxfive|scratchbox|scratchbottomskip|scratchbottomoffset|scangivendimensions|ruledvtop|ruledvss|ruledvskip|ruledvpack|ruledvglue|ruledvfilneg|ruledvfillneg|ruledvfilll|ruledvfill|ruledvfil|ruledvcenter|ruledvbox|ruledtpack|ruledpenalty|ruledmskip|ruledmkern|ruledmbox|ruledkern|ruledhss|ruledhskip|ruledhpack|ruledhglue|ruledhfilneg|ruledhfillneg|ruledhfilll|ruledhfill|ruledhfil|ruledhbox|rtlvtop|rtlvbox|rtltext|rtlhbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightboundary|reversevtop|reversevpack|reversevbox|reversetpack|reversehpack|reversehbox|restorecatcodes|resetvalue|resetsystemmode|resetsetups|resetmode|resetglobal|reseteverypar|resetctxscanner|reqno|removeunwantedspaces|removetoks|removepunctuation|removelastspace|relrelspacing|relradspacing|relpunctspacing|relordspacing|relopspacing|relopenspacing|relinnerspacing|relfracspacing|relclosespacing|relbinspacing|registerctxluafile|redoglobal|redefine|recurselevel|recursedepth|readline|readfromterminal|read|radrelspacing|radradspacing|radpunctspacing|radordspacing|radopspacing|radopenspacing|radinnerspacing|radfracspacing|radclosespacing|radbinspacing|quitprevcommalist|quitcondition|quitcommalist|quarterstrut|quantity|quantitied|quad|pushsystemmode|pushrunstate|pushoverloadmode|pushmathstyle|pushcatcodetable|punctrelspacing|punctradspacing|punctpunctspacing|punctordspacing|punctopspacing|punctopenspacing|punctinnerspacing|punctfracspacing|punctclosespacing|punctbinspacing|protect|processfirstactioninset|processcommalist|processcommacommand|processallactionsinset|processallactions|processaction|privatescratchtoks|privatescratchskip|privatescratchmuskip|privatescratchdimen|privatescratchcounter|privatescratchbox|prerolltostring|prependtotoks|prependtoks|prelistcopy|prelistbox|postlistcopy|postlistbox|popsystemmode|poprunstate|popoverloadmode|popmathstyle|popcatcodetable|pickupgroupedcommandcs|pickupgroupedcommand|permitspacesbetweengroups|pardir|parcontextcodestring|ordrelspacing|ordradspacing|ordpunctspacing|ordordspacing|ordopspacing|ordopenspacing|ordinnerspacing|ordfracspacing|ordclosespacing|ordbinspacing|oprelspacing|opradspacing|oppunctspacing|opordspacing|opopspacing|opopenspacing|opinnerspacing|opfracspacing|openrelspacing|openradspacing|openpunctspacing|openout|openordspacing|openopspacing|openopenspacing|openinnerspacing|openin|openfracspacing|openclosespacing|openbinspacing|opclosespacing|opbinspacing|onlypdfobjectcompression|onlynonbreakablespace|oninterlineskip|offinterlineskip|obeytabs|obeyspaces|obeypages|obeyluatokens|obeylualines|obeylines|obeyedtab|obeyedspace|obeyedpage|obeyedline|null|novalidassignment|nosuperscript|nosuperprescript|nosubsprecript|nosubscript|nospacing|nospace|normalvglue|normalvfillneg|normalvfilllneg|normalsuperscript|normalsubscript|normalstopimath|normalstopdmath|normalstartimath|normalstartdmath|normalspaces|normalspace|normalreqno|normalpdfcompression|normalnosuperscript|normalnosubscript|normalizecodestring|normalhglue|normalhfillneg|normalhfilllneg|norightligaturing|norightkerning|noprotrusion|nopdfobjectcompression|nopdfcompression|noligaturing|noleftligaturing|noleftkerning|nokerning|noitaliccorrection|nointerlineskip|nohyphens|nohyphencollapsing|noheightstrut|nofarguments|noexpansion|nobreak|nexttoken|nextbox|next|newwrite|newtoks|newsystemmode|newskip|newsignal|newread|newmuskip|newmode|newmarks|newmacro|newlocalwrite|newlocaltoks|newlocalskip|newlocalread|newlocalmuskip|newlocaldimen|newlocalcount|newlocalbox|newlanguage|newinsert|newif|newhelp|newfraction|newfamily|newfam|newdimen|newcount|newconstant|newconditional|newcatcodetable|newbox|newattribute|nbsp|naturalvtop|naturalvpack|naturalvbox|naturaltpack|naturalspace|naturalhpack|naturalhbox|morehyphens|modulonumber|measured|measure|maximumpdfcompression|mathtext|mathstylevcenteredvbox|mathstylevcenteredhbox|mathstylevcenter|mathstylevbox|mathstyletrigger|mathstylehbox|mathstylefont|mathstyleface|mathstylecommand|mathsmallstylefont|mathsmallstyleface|mathpalette|mathortext|mathnothing|mathnolop|mathlimop|mathflattencodestring|mathcontrolcodestring|mathbox|mathalpha|luaversion|luasetup|luaparameterset|luaminorversion|luamajorversion|luaexpr|luaexpanded|luaconditional|luacode|ltrvtop|ltrvbox|ltrtext|ltrhbox|loggingall|localhsize|lineheight|linedir|letvalue|letgvalue|letdummyparameter|letcatcodecommand|letbackslashbreak|lesshyphens|lessboxtracing|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftorright|leftboundary|lateluacode|lastlinewidth|keepunwantedspaces|installprotectedctxscanner|installprotectedctxfunction|installctxscanner|installctxfunction|installcorenamespace|innerrelspacing|innerradspacing|innerpunctspacing|innerordspacing|inneropspacing|inneropenspacing|innerinnerspacing|innerfracspacing|innerclosespacing|innerbinspacing|inlineordisplaymath|indisplaymath|ignorevalue|ignoretabs|ignoreparskip|ignorepages|ignorelines|ignoreeofs|ifscratchconditiontwo|ifscratchconditionone|ifscratchcondition|ifexpression|ifbitwiseand|hyphenationcodestring|htdp|hsizefraction|hpenalty|hpackedbox|hpackbox|hkern|hglue|hfillneg|hfilllneg|hfilll|hcontainer|halfstrut|halflinestrut|groupedcommandcs|groupedcommand|groupcodestring|goodbreak|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblesixarguments|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|glyphoptioncodestring|globalsetsystemmode|globalsetmode|globalscratchtoks|globalscratchskip|globalscratchmuskip|globalscratchdimen|globalscratchcountertwo|globalscratchcounterthree|globalscratchcounterone|globalscratchcounter|globalscratchbox|globalresetsystemmode|globalresetmode|globallet|givenwidth|givenheight|givendepth|getxparameters|getvalue|getuvalue|getparameters|getgparameters|getfirstcharacter|geteparameters|getdummyparameters|futureletnexttoken|frule|frozenparcodestring|freezequantity|freezeparagraphproperties|freezemeasure|fracrelspacing|fracradspacing|fracpunctspacing|fracordspacing|fracopspacing|fracopenspacing|fracinnerspacing|fracfracspacing|fracclosespacing|fracbinspacing|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourthargumenttrue|fourthargumentfalse|foundtrue|foundfalse|forgetparameters|forgetparagraphfreezing|forgetall|forcestrutdepth|forcedisplaymath|flushnextbox|flagcodestring|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinset|firstargumenttrue|firstargumentfalse|finishpar|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|fifthofsixarguments|fifthoffivearguments|fifthargumenttrue|fifthargumentfalse|fastsetup|fastloopindex|fastloopfinal|falsecondition|expelsedoif|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifcommonelse|expdoif|expanded|exitloop|executeifdefined|enspace|endstrut|endpar|endgraf|emspace|empty|dummyparameter|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleexpandafter|dotriplegroupempty|dotripleempty|dotripleargument|dostepwiserecurse|dospacing|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dorecurse|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|dontpermitspacesbetweengroups|dontleavehmode|dontcomplain|donothing|donetrue|donefalse|doloopovermatched|doloopovermatch|doloopoverlist|doloop|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalue|doifundefinedelse|doifundefined|doiftextelse|doiftext|doifsomethingelse|doifsomething|doifsetupselse|doifsetups|doifnumberelse|doifnumber|doifnotvalue|doifnottext|doifnotsetups|doifnotnumber|doifnotinstring|doifnotinset|doifnothingelse|doifnothing|doifnotcommon|doifnotcommandhandler|doifnot|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextcharcselse|doifnextbgroupelse|doifnextbgroupcselse|doifinstringelse|doifinstring|doifinsetelse|doifinset|doiffirstcharelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifelsevaluenothing|doifelsevalue|doifelseundefined|doifelsetext|doifelsesomething|doifelsesetups|doifelsenumber|doifelsenothing|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextcharcs|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelseinstring|doifelseinset|doifelsefirstchar|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelsedimension|doifelsedefined|doifelsecommon|doifelsecommandhandler|doifelseassignmentcs|doifelseassignment|doifelse|doifdimensionelse|doifdefinedelse|doifdefined|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifassignmentelsecs|doifassignmentelse|doif|dohyphens|dohyphencollapsing|doglobal|dofastloopcs|dodoublegroupempty|dodoubleempty|dodoubleargument|dodoglobal|docheckassignment|dividenumber|distributedhsize|discoptioncodestring|dirrlo|dirrle|dirlro|dirlre|directsetup|directquantity|directmeasure|directluacode|directdummyparameter|depthstrut|defrostparagraphproperties|definequantity|definenamedlua|definemeasure|defineexpandable|define|defcatcodecommand|defbackslashbreak|defaultcatcodetable|currentcatcodetable|ctxwrite|ctxsprint|ctxreport|ctxluamatch|ctxluacode|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|crlf|cramped|copysetups|copyparameters|copyboxline|controlspace|contentostring|compoundhyphenpenalty|compounddiscretionary|closerelspacing|closeradspacing|closepunctspacing|closeout|closeordspacing|closeopspacing|closeopenspacing|closeinnerspacing|closein|closefracspacing|closeclosespacing|closebinspacing|cldprocessfile|cldloadviafile|cldloadfile|cldcontext|cldcommand|checkedstrippedcsname|checkedrighttoleft|checkedlefttoright|checked|charspace|catcodetablename|carryoverpar|break|boxtostring|boxrangewd|boxrangeht|boxrangedp|boxlinewd|boxlines|boxliners|boxlinerp|boxlinerh|boxlinenw|boxlinenh|boxlinend|boxlinels|boxlinelp|boxlinelh|boxlinein|boxlineht|boxlinedp|boxline|boxisempty|boxdir|booleanmodevalue|bitwisexor|bitwiseshift|bitwiseset|bitwiseor|bitwisenot|bitwisenil|bitwiseflip|bitwiseand|bitwise|binrelspacing|binradspacing|binpunctspacing|binordspacing|binopspacing|binopenspacing|bininnerspacing|binfracspacing|binclosespacing|binbinspacing|begstrut|begcsname|availablehsize|autorule|autodirvtop|autodirvbox|autodirhbox|assumelongusagecs|appendtotoks|appendtoks|allowbreak|aligncontentright|aligncontentmiddle|aligncontentleft|aliasmacro|Umathtopaccent|Umathbotaccent|Ucheckedstopdisplaymath|Ucheckedstartdisplaymath)(?=[^a-zA-Z])",
+ "match" : "\u005C\u005C(xmlsetup|writestatus|write|wait|vpenalty|vpackedbox|vpackbox|vkern|vglue|vfillneg|vfilllneg|vfilll|vcontainer|validassignment|uxdef|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedlineskiplimit|usedlineskip|usedbaselineskip|updateparagraphshapes|updateparagraphproperties|updateparagraphpenalties|updateparagraphlines|updateparagraphdemerits|unvoidbox|untraceddonothing|unsupportedcs|unprotect|unique|unexpanded|undefinevalue|uncramped|ugdef|uedef|uedcatcodecommand|udef|twodigits|truecondition|tripleexpandafter|triggeruncrampedstyle|triggeruncrampedsmallstyle|triggeruncrampedbigstyle|triggertextstyle|triggersmallstyle|triggerscriptstyle|triggerscriptscriptstyle|triggermathstyle|triggergroupedcommandcs|triggergroupedcommand|triggerdisplaystyle|triggercrampedstyle|triggercrampedsmallstyle|triggercrampedbigstyle|triggerbigstyle|tracingnone|tracingcatcodes|tracingall|to|threedigits|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thirdargumenttrue|thirdargumentfalse|then|thebox|textdir|texsetup|texdefinition|tempstring|tcontainer|synchronizelayoutdirection|synchronizeinlinedirection|synchronizedisplaydirection|superscript|superprescript|suggestedalias|subscript|subprescript|strutwd|struthtdp|strutht|strutgap|strutdp|strutbox|strut|strippedcsname|stopxmlsetups|stoptexsetups|stoptexdefinition|stoptexcode|stopsetups|stoprawsetups|stoppickupmath|stopnointerference|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stopimath|stopforceddisplaymath|stopextendcatcodetable|stopexpanded|stopdmath|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcatcodetable|stop|startxmlsetups|starttexsetups|starttexdefinition|starttexcode|startsetups|startrawsetups|startpickupmath|startnointerference|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startimath|startforceddisplaymath|startextendcatcodetable|startexpanded|startdmath|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcatcodetable|start|space|sixthofsixarguments|sixthargumenttrue|sixthargumentfalse|singleexpandafter|simplegroupedcommandcs|simplegroupedcommand|signalcharacter|showluatokens|showboxhere|shiftbox|seventhargumenttrue|seventhargumentfalse|setxvalue|setxquantity|setxmeasure|setvalue|setuxvalue|setuvalue|setups|setup|setugvalue|setuevalue|settruevalue|settrue|setsystemmode|setstrut|setquantity|setprelistbox|setpostlistbox|setparagraphfreezing|setnewmacro|setnewlocaltoks|setnewlocalskip|setnewlocalmuskip|setnewlocaldimen|setnewlocalcount|setnewlocalbox|setnewconstant|setmode|setmeasure|setmathtextbox|setmathsmalltextbox|setlocalhsize|setgvalue|setgquantity|setgmeasure|setfalsevalue|setfalse|setexpandeddummyparameter|setevalue|setequantity|setemeasure|setdummyparameter|setcontrolspaces|setconstantvalue|setconstant|setconditional|setcatcodetable|setboxline|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|secondargumenttrue|secondargumentfalse|scratchyposition|scratchyoffset|scratchxposition|scratchxoffset|scratchwidth|scratchvsize|scratchvoffset|scratchunicode|scratchtotal|scratchtopskip|scratchtopoffset|scratchtokstwo|scratchtoksthree|scratchtokssix|scratchtoksone|scratchtoksfour|scratchtoksfive|scratchtoks|scratchstringtwo|scratchstringone|scratchstring|scratchskiptwo|scratchskipthree|scratchskipsix|scratchskipone|scratchskipfour|scratchskipfive|scratchskip|scratchrightskip|scratchrightoffset|scratchoffset|scratchny|scratchnx|scratchmy|scratchmx|scratchmuskiptwo|scratchmuskipthree|scratchmuskipsix|scratchmuskipone|scratchmuskipfour|scratchmuskipfive|scratchmuskip|scratchmin|scratchmax|scratchmacrotwo|scratchmacroone|scratchmacro|scratchleftskip|scratchleftoffset|scratchhsize|scratchhoffset|scratchheight|scratchdistance|scratchdimentwo|scratchdimenthree|scratchdimensix|scratchdimenone|scratchdimenfour|scratchdimenfive|scratchdimen|scratchdepth|scratchcountertwo|scratchcounterthree|scratchcountersix|scratchcounterone|scratchcounterfour|scratchcounterfive|scratchcounter|scratchconditiontwotrue|scratchconditiontwofalse|scratchconditiontrue|scratchconditiononetrue|scratchconditiononefalse|scratchconditionfalse|scratchboxtwo|scratchboxthree|scratchboxsix|scratchboxone|scratchboxfour|scratchboxfive|scratchbox|scratchbottomskip|scratchbottomoffset|scangivendimensions|ruledvtop|ruledvss|ruledvskip|ruledvpack|ruledvglue|ruledvfilneg|ruledvfillneg|ruledvfilll|ruledvfill|ruledvfil|ruledvcenter|ruledvbox|ruledtpack|ruledpenalty|ruledmskip|ruledmkern|ruledmbox|ruledkern|ruledhss|ruledhskip|ruledhpack|ruledhglue|ruledhfilneg|ruledhfillneg|ruledhfilll|ruledhfill|ruledhfil|ruledhbox|rtlvtop|rtlvbox|rtltext|rtlhbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightboundary|reversevtop|reversevpack|reversevbox|reversetpack|reversehpack|reversehbox|restorecatcodes|resetvalue|resetsystemmode|resetsetups|resetmode|resetglobal|reseteverypar|resetctxscanner|reqno|removeunwantedspaces|removetoks|removepunctuation|removelastspace|relrelspacing|relradspacing|relpunctspacing|relordspacing|relopspacing|relopenspacing|relmiddlespacing|relinnerspacing|relfracspacing|relclosespacing|relbinspacing|relaccentspacing|registerctxluafile|redoglobal|redefine|recurselevel|recursedepth|readline|readfromterminal|read|radrelspacing|radradspacing|radpunctspacing|radordspacing|radopspacing|radopenspacing|radmiddlespacing|radinnerspacing|radfracspacing|radclosespacing|radbinspacing|radaccentspacing|quitprevcommalist|quitcondition|quitcommalist|quarterstrut|quantity|quantitied|quad|pushsystemmode|pushrunstate|pushoverloadmode|pushmathstyle|pushcatcodetable|punctrelspacing|punctradspacing|punctpunctspacing|punctordspacing|punctopspacing|punctopenspacing|punctmiddlespacing|punctinnerspacing|punctfracspacing|punctclosespacing|punctbinspacing|punctaccentspacing|protect|processfirstactioninset|processcommalist|processcommacommand|processallactionsinset|processallactions|processaction|privatescratchtoks|privatescratchskip|privatescratchmuskip|privatescratchdimen|privatescratchcounter|privatescratchbox|prerolltostring|prependtotoks|prependtoks|prelistcopy|prelistbox|postlistcopy|postlistbox|popsystemmode|poprunstate|popoverloadmode|popmathstyle|popcatcodetable|pickupgroupedcommandcs|pickupgroupedcommand|permitspacesbetweengroups|pardir|parcontextcodestring|ordrelspacing|ordradspacing|ordpunctspacing|ordordspacing|ordopspacing|ordopenspacing|ordmiddlespacing|ordinnerspacing|ordfracspacing|ordclosespacing|ordbinspacing|ordaccentspacing|oprelspacing|opradspacing|oppunctspacing|opordspacing|opopspacing|opopenspacing|opmiddlespacing|opinnerspacing|opfracspacing|openrelspacing|openradspacing|openpunctspacing|openout|openordspacing|openopspacing|openopenspacing|openmiddlespacing|openinnerspacing|openin|openfracspacing|openclosespacing|openbinspacing|openaccentspacing|opclosespacing|opbinspacing|opaccentspacing|onlypdfobjectcompression|onlynonbreakablespace|oninterlineskip|offinterlineskip|obeytabs|obeyspaces|obeypages|obeyluatokens|obeylualines|obeylines|obeyedtab|obeyedspace|obeyedpage|obeyedline|null|novalidassignment|nosuperscript|nosuperprescript|nosubsprecript|nosubscript|nospacing|nospace|normalvglue|normalvfillneg|normalvfilllneg|normalsuperscript|normalsubscript|normalstopimath|normalstopdmath|normalstartimath|normalstartdmath|normalspaces|normalspace|normalreqno|normalpdfcompression|normalnosuperscript|normalnosubscript|normalizecodestring|normalhglue|normalhfillneg|normalhfilllneg|norightligaturing|norightkerning|noprotrusion|nopdfobjectcompression|nopdfcompression|noligaturing|noleftligaturing|noleftkerning|nokerning|noitaliccorrection|nointerlineskip|nohyphens|nohyphencollapsing|noheightstrut|nofarguments|noexpansion|nobreak|nexttoken|nextbox|next|newwrite|newtoks|newsystemmode|newskip|newsignal|newread|newmuskip|newmode|newmarks|newmacro|newlocalwrite|newlocaltoks|newlocalskip|newlocalread|newlocalmuskip|newlocaldimen|newlocalcount|newlocalbox|newlanguage|newinsert|newif|newhelp|newfraction|newfamily|newfam|newdimen|newcount|newconstant|newconditional|newcatcodetable|newbox|newattribute|nbsp|naturalvtop|naturalvpack|naturalvbox|naturaltpack|naturalspace|naturalhpack|naturalhbox|morehyphens|modulonumber|middlerelspacing|middleradspacing|middlepunctspacing|middleordspacing|middleopspacing|middleopenspacing|middlemiddlespacing|middleinnerspacing|middlefracspacing|middleclosespacing|middlebinspacing|middleaccentspacing|measured|measure|maximumpdfcompression|mathtext|mathstylevcenteredvbox|mathstylevcenteredhbox|mathstylevcenter|mathstylevbox|mathstyletrigger|mathstylehbox|mathstylefont|mathstyleface|mathstylecommand|mathsmallstylefont|mathsmallstyleface|mathpalette|mathortext|mathnothing|mathnolop|mathlimop|mathgroupedcommandcs|mathflattencodestring|mathcontrolcodestring|mathbox|mathalpha|luaversion|luasetup|luaparameterset|luaminorversion|luamajorversion|luaexpr|luaexpanded|luaconditional|luacode|ltrvtop|ltrvbox|ltrtext|ltrhbox|loggingall|localhsize|lineheight|linedir|letvalue|letgvalue|letdummyparameter|letcatcodecommand|letbackslashbreak|lesshyphens|lessboxtracing|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftorright|leftboundary|lateluacode|lastlinewidth|keepunwantedspaces|installprotectedctxscanner|installprotectedctxfunction|installctxscanner|installctxfunction|installcorenamespace|innerrelspacing|innerradspacing|innerpunctspacing|innerordspacing|inneropspacing|inneropenspacing|innermiddlespacing|innerinnerspacing|innerfracspacing|innerclosespacing|innerbinspacing|inneraccentspacing|inlineordisplaymath|indisplaymath|ignorevalue|ignoretabs|ignoreparskip|ignorepages|ignorelines|ignoreeofs|ifscratchconditiontwo|ifscratchconditionone|ifscratchcondition|ifexpression|ifbitwiseand|hyphenationcodestring|htdp|hsizefraction|hpenalty|hpackedbox|hpackbox|hkern|hglue|hfillneg|hfilllneg|hfilll|hcontainer|halfstrut|halflinestrut|groupedcommandcs|groupedcommand|groupcodestring|goodbreak|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblesixarguments|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|glyphoptioncodestring|globalsetsystemmode|globalsetmode|globalscratchtoks|globalscratchskip|globalscratchmuskip|globalscratchdimen|globalscratchcountertwo|globalscratchcounterthree|globalscratchcounterone|globalscratchcounter|globalscratchbox|globalresetsystemmode|globalresetmode|globallet|givenwidth|givenheight|givendepth|getxparameters|getvalue|getuvalue|getparameters|getgparameters|getfirstcharacter|geteparameters|getdummyparameters|futureletnexttoken|frule|frozenparcodestring|freezequantity|freezeparagraphproperties|freezemeasure|fracrelspacing|fracradspacing|fracpunctspacing|fracordspacing|fracopspacing|fracopenspacing|fracmiddlespacing|fracinnerspacing|fracfracspacing|fracclosespacing|fracbinspacing|fracaccentspacing|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourthargumenttrue|fourthargumentfalse|foundtrue|foundfalse|forgetparameters|forgetparagraphfreezing|forgetall|forcestrutdepth|forceinlinemath|forcedisplaymath|flushnextbox|flagcodestring|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinset|firstargumenttrue|firstargumentfalse|finishpar|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|fifthofsixarguments|fifthoffivearguments|fifthargumenttrue|fifthargumentfalse|fastsetup|fastloopindex|fastloopfinal|falsecondition|expelsedoif|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifcommonelse|expdoif|expanded|exitloop|executeifdefined|enspace|endstrut|endpar|endgraf|emspace|empty|dummyparameter|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleexpandafter|dotriplegroupempty|dotripleempty|dotripleargument|dostepwiserecurse|dospacing|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dorecurse|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|dontpermitspacesbetweengroups|dontleavehmode|dontcomplain|donothing|donetrue|donefalse|doloopovermatched|doloopovermatch|doloopoverlist|doloop|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalue|doifundefinedelse|doifundefined|doiftextelse|doiftext|doifsomethingelse|doifsomething|doifsetupselse|doifsetups|doifnumberelse|doifnumber|doifnotvalue|doifnottext|doifnotsetups|doifnotnumber|doifnotinstring|doifnotinset|doifnothingelse|doifnothing|doifnotcommon|doifnotcommandhandler|doifnot|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextcharcselse|doifnextbgroupelse|doifnextbgroupcselse|doifinstringelse|doifinstring|doifinsetelse|doifinset|doiffirstcharelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifelsevaluenothing|doifelsevalue|doifelseundefined|doifelsetext|doifelsesomething|doifelsesetups|doifelsenumber|doifelsenothing|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextcharcs|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelseinstring|doifelseinset|doifelsefirstchar|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelsedimension|doifelsedefined|doifelsecommon|doifelsecommandhandler|doifelseassignmentcs|doifelseassignment|doifelse|doifdimensionelse|doifdefinedelse|doifdefined|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifassignmentelsecs|doifassignmentelse|doif|dohyphens|dohyphencollapsing|doglobal|dofastloopcs|dodoublegroupempty|dodoubleempty|dodoubleargument|dodoglobal|docheckassignment|dividenumber|distributedhsize|discoptioncodestring|dirrlo|dirrle|dirlro|dirlre|directsetup|directquantity|directmeasure|directluacode|directdummyparameter|depthstrut|defrostparagraphproperties|definequantity|definenamedlua|definemeasure|defineexpandable|define|defcatcodecommand|defbackslashbreak|defaultcatcodetable|currentcatcodetable|ctxwrite|ctxsprint|ctxreport|ctxluamatch|ctxluacode|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|crlf|cramped|copysetups|copyparameters|copyboxline|controlspace|contentostring|compoundhyphenpenalty|compounddiscretionary|closerelspacing|closeradspacing|closepunctspacing|closeout|closeordspacing|closeopspacing|closeopenspacing|closemiddlespacing|closeinnerspacing|closein|closefracspacing|closeclosespacing|closebinspacing|closeaccentspacing|cldprocessfile|cldloadviafile|cldloadfile|cldcontext|cldcommand|checkedstrippedcsname|checkedrighttoleft|checkedlefttoright|checked|charspace|catcodetablename|carryoverpar|break|boxtostring|boxrangewd|boxrangeht|boxrangedp|boxlinewd|boxlines|boxliners|boxlinerp|boxlinerh|boxlinenw|boxlinenh|boxlinend|boxlinels|boxlinelp|boxlinelh|boxlinein|boxlineht|boxlinedp|boxline|boxisempty|boxdir|booleanmodevalue|bitwisexor|bitwiseshift|bitwiseset|bitwiseor|bitwisenot|bitwisenil|bitwiseflip|bitwiseand|bitwise|binrelspacing|binradspacing|binpunctspacing|binordspacing|binopspacing|binopenspacing|binmiddlespacing|bininnerspacing|binfracspacing|binclosespacing|binbinspacing|binaccentspacing|begstrut|begcsname|availablehsize|autorule|autodirvtop|autodirvbox|autodirhbox|assumelongusagecs|appendtotoks|appendtoks|allowbreak|aligncontentright|aligncontentmiddle|aligncontentleft|aliasmacro|accentrelspacing|accentradspacing|accentpunctspacing|accentordspacing|accentopspacing|accentopenspacing|accentmiddlespacing|accentinnerspacing|accentfracspacing|accentclosespacing|accentbinspacing|accentaccentspacing|Umathtopaccent|Umathbotaccent|Ucheckedstopdisplaymath|Ucheckedstartdisplaymath)(?=[^a-zA-Z])",
"name" : "context.plain.commands.plain.tex"
},
"ifprimitive" : {
@@ -216,7 +216,7 @@
]
},
"primitive" : {
- "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xtoks|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|untraced|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|unexpandedloop|underline|undent|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnodes|tracingnesting|tracingmath|tracingmarks|tracingmacros|tracinglostchars|tracinglevels|tracinginserts|tracingifs|tracinghyphenation|tracinggroups|tracingfullboxes|tracingfonts|tracingexpressions|tracingcommands|tracingassigns|tracingalignments|tracingadjusts|tpack|toscaled|topskip|topmarks|topmark|tomathstyle|tolerant|tolerance|tokspre|toksdef|toksapp|toks|tokenized|tointeger|todimension|time|thinmuskip|thickmuskip|thewithoutunit|the|textstyle|textfont|textdirection|tabskip|tabsize|swapcsvalues|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|snapshotpar|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapingpenalty|shapingpenaltiesmode|sfcode|setlanguage|setfontid|setbox|semiprotected|semiexpanded|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|scaledfontdimen|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|retokenized|relpenalty|relax|raise|radical|quitvmode|quitloop|pxdimen|protrusionboundary|protrudechars|protected|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|permanent|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|parattribute|parametermark|parametercount|par|pagevsize|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|pageboundarypenalty|pageboundary|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orphanpenalty|orphanpenalties|orelse|or|omit|numexpression|numexpr|numericscale|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxtoks|normalxspaceskip|normalxleaders|normalxdefcsname|normalxdef|normalwrapuppar|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvpack|normalunvcopy|normalunvbox|normaluntraced|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhpack|normalunhcopy|normalunhbox|normalunexpandedloop|normalunexpanded|normalunderline|normalundent|normaluchyph|normaluccode|normaltracingstats|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnodes|normaltracingnesting|normaltracingmath|normaltracingmarks|normaltracingmacros|normaltracinglostchars|normaltracinglevels|normaltracinginserts|normaltracingifs|normaltracinghyphenation|normaltracinggroups|normaltracingfullboxes|normaltracingfonts|normaltracingexpressions|normaltracingcommands|normaltracingassigns|normaltracingalignments|normaltracingadjusts|normaltpack|normaltoscaled|normaltopskip|normaltopmarks|normaltopmark|normaltomathstyle|normaltolerant|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltokenized|normaltointeger|normaltodimension|normaltime|normalthinmuskip|normalthickmuskip|normalthewithoutunit|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normaltabsize|normalswapcsvalues|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalsnapshotpar|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapingpenalty|normalshapingpenaltiesmode|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalsemiprotected|normalsemiexpanded|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalscaledfontdimen|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalretokenized|normalrelpenalty|normalrelax|normalraise|normalradical|normalquitvmode|normalquitloop|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpermanent|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalparfillleftskip|normalpardirection|normalparattribute|normalparametermark|normalparametercount|normalpar|normalpagevsize|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normalpageboundarypenalty|normalpageboundary|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorphanpenalty|normalorphanpenalties|normalorelse|normalor|normalomit|normalnumexpression|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaningasis|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathrad|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathlimitsmode|normalmathinner|normalmathfrac|normalmathfontcontrol|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcontrolmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightboxbox|normallocalrightbox|normallocalmiddleboxbox|normallocalmiddlebox|normallocalleftboxbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolledloop|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinedirection|normallimits|normallettonothing|normalletprotected|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastparcontext|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|normalinsertstoring|normalinsertstorage|normalinsertprogress|normalinsertpenalty|normalinsertpenalties|normalinsertmultiplier|normalinsertmode|normalinsertmaxdepth|normalinsertlimit|normalinsertheights|normalinsertheight|normalinsertdistance|normalinsertdepth|normalinsertcopy|normalinsertbox|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalinherited|normalindent|normalimmutable|normalimmediate|normalignorespaces|normalignorepars|normalignorearguments|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normaliftok|normalifrelax|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifparameters|normalifparameter|normalifodd|normalifnumval|normalifnumexpression|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normalifhaschar|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdimexpression|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglettonothing|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfuturecsname|normalfrozen|normalformatname|normalfonttextcontrol|normalfontspecyscale|normalfontspecxscale|normalfontspecscale|normalfontspecifiedsize|normalfontspecifiedname|normalfontspecid|normalfontspecdef|normalfontname|normalfontmathcontrol|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalflushmarks|normalfloatingpenalty|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandtoken|normalexpandedloop|normalexpandedafter|normalexpanded|normalexpandcstoken|normalexpandafterspaces|normalexpandafterpars|normalexpandafter|normalexpand|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaleverybeforepar|normaletokspre|normaletoksapp|normaletoks|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalenforced|normalendsimplegroup|normalendmathgroup|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledefcsname|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpression|normaldimexpr|normaldimensiondef|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefcsname|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentmarks|normalcurrentloopnesting|normalcurrentloopiterator|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalclubpenalty|normalclubpenalties|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxtarget|normalboxsource|normalboxshift|normalboxorientation|normalboxmaxdepth|normalboxgeometry|normalboxdirection|normalboxattribute|normalboxanchors|normalboxanchor|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginsimplegroup|normalbeginmathgroup|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbaselineskip|normalbadness|normalautoparagraphmode|normalautomigrationmode|normalautomatichyphenpenalty|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalalltextstyles|normalallsplitstyles|normalallscriptstyles|normalallmathstyles|normalaligntab|normalalignmark|normalaligncontent|normalaliased|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathyscale|normalUmathxscale|normalUmathvoid|normalUmathvextensiblevariant|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelradspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelfracspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradrelspacing|normalUmathradradspacing|normalUmathradpunctspacing|normalUmathradordspacing|normalUmathradopspacing|normalUmathradopenspacing|normalUmathradinnerspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathradfracspacing|normalUmathradclosespacing|normalUmathradbinspacing|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctradspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctfracspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathphantom|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordradspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordfracspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathopradspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathopfracspacing|normalUmathoperatorsize|normalUmathopenupheight|normalUmathopenupdepth|normalUmathopenrelspacing|normalUmathopenradspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenfracspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathnolimits|normalUmathnoaxis|normalUmathlimits|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerradspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerfracspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathfracrelspacing|normalUmathfracradspacing|normalUmathfracpunctspacing|normalUmathfracordspacing|normalUmathfracopspacing|normalUmathfracopenspacing|normalUmathfracinnerspacing|normalUmathfracfracspacing|normalUmathfracclosespacing|normalUmathfracbinspacing|normalUmathextrasupspace|normalUmathextrasupshift|normalUmathextrasupprespace|normalUmathextrasuppreshift|normalUmathextrasubspace|normalUmathextrasubshift|normalUmathextrasubprespace|normalUmathextrasubpreshift|normalUmathdenominatorvariant|normalUmathdelimiterundervariant|normalUmathdelimiterovervariant|normalUmathdegreevariant|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathcloseradspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathclosefracspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbotaccentvariant|normalUmathbinrelspacing|normalUmathbinradspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinfracspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathadapttoright|normalUmathadapttoleft|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaningasis|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathrad|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathlimitsmode|mathinner|mathfrac|mathfontcontrol|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcontrolmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightboxbox|localrightbox|localmiddleboxbox|localmiddlebox|localleftboxbox|localleftbox|localinterlinepenalty|localcontrolledloop|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|limits|lettonothing|letprotected|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastparcontext|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|insertstoring|insertstorage|insertprogress|insertpenalty|insertpenalties|insertmultiplier|insertmode|insertmaxdepth|insertlimit|insertheights|insertheight|insertdistance|insertdepth|insertcopy|insertbox|insert|inputlineno|input|initcatcodetable|inherited|indent|immutable|immediate|ignorespaces|ignorepars|ignorearguments|ifx|ifvoid|ifvmode|ifvbox|iftrue|iftok|ifrelax|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifparameters|ifparameter|ifodd|ifnumval|ifnumexpression|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|ifhaschar|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdimexpression|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|glettonothing|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|futurecsname|frozen|formatname|fonttextcontrol|fontspecyscale|fontspecxscale|fontspecscale|fontspecifiedsize|fontspecifiedname|fontspecid|fontspecdef|fontname|fontmathcontrol|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|flushmarks|floatingpenalty|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandtoken|expandedloop|expandedafter|expandcstoken|expandafterspaces|expandafterpars|expandafter|expand|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|everybeforepar|etokspre|etoksapp|etoks|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|enforced|endsimplegroup|endmathgroup|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edefcsname|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpression|dimexpr|dimensiondef|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defcsname|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentmarks|currentloopnesting|currentloopiterator|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|clubpenalty|clubpenalties|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxtarget|boxsource|boxshift|boxorientation|boxmaxdepth|boxgeometry|boxdirection|boxattribute|boxanchors|boxanchor|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginsimplegroup|beginmathgroup|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|autoparagraphmode|automigrationmode|automatichyphenpenalty|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|alltextstyles|allsplitstyles|allscriptstyles|allmathstyles|aligntab|alignmark|aligncontent|aliased|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathyscale|Umathxscale|Umathvoid|Umathvextensiblevariant|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelradspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelfracspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradrelspacing|Umathradradspacing|Umathradpunctspacing|Umathradordspacing|Umathradopspacing|Umathradopenspacing|Umathradinnerspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathradfracspacing|Umathradclosespacing|Umathradbinspacing|Umathquad|Umathpunctrelspacing|Umathpunctradspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctfracspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathphantom|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordradspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordfracspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathopradspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathopfracspacing|Umathoperatorsize|Umathopenupheight|Umathopenupdepth|Umathopenrelspacing|Umathopenradspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenfracspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathnolimits|Umathnoaxis|Umathlimits|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerradspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerfracspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathfracrelspacing|Umathfracradspacing|Umathfracpunctspacing|Umathfracordspacing|Umathfracopspacing|Umathfracopenspacing|Umathfracinnerspacing|Umathfracfracspacing|Umathfracclosespacing|Umathfracbinspacing|Umathextrasupspace|Umathextrasupshift|Umathextrasupprespace|Umathextrasuppreshift|Umathextrasubspace|Umathextrasubshift|Umathextrasubprespace|Umathextrasubpreshift|Umathdenominatorvariant|Umathdelimiterundervariant|Umathdelimiterovervariant|Umathdegreevariant|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathcloseradspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathclosefracspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbotaccentvariant|Umathbinrelspacing|Umathbinradspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinfracspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathadapttoright|Umathadapttoleft|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])",
+ "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xtoks|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|untraced|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|unexpandedloop|underline|undent|uleaders|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnodes|tracingnesting|tracingmath|tracingmarks|tracingmacros|tracinglostchars|tracinglevels|tracinginserts|tracingifs|tracinghyphenation|tracinggroups|tracingfullboxes|tracingfonts|tracingexpressions|tracingcommands|tracingassigns|tracingalignments|tracingadjusts|tpack|toscaled|topskip|topmarks|topmark|tomathstyle|tolerant|tolerance|tokspre|toksdef|toksapp|toks|tokenized|tointeger|todimension|tinymuskip|time|thinmuskip|thickmuskip|thewithoutunit|the|textstyle|textfont|textdirection|tabskip|tabsize|swapcsvalues|supmarkmode|string|srule|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|snapshotpar|skipdef|skip|skewedwithdelims|skewed|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapingpenalty|shapingpenaltiesmode|sfcode|setmathspacing|setmathprepenalty|setmathpostpenalty|setmathoptions|setmathignore|setmathatomrule|setlanguage|setfontid|setdefaultmathcodes|setbox|semiprotected|semiexpanded|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|scaledslantperpoint|scaledinterwordstretch|scaledinterwordspace|scaledinterwordshrink|scaledfontdimen|scaledextraspace|scaledexheight|scaledemwidth|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|retokenized|resetmathspacing|relpenalty|relax|raise|radical|quitvmode|quitloop|pxdimen|protrusionboundary|protrudechars|protected|prevgraf|prevdepth|pretolerance|prerelpenalty|preinlinepenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|postinlinepenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|permanent|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|parattribute|parametermark|parametercount|par|pagevsize|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|pageboundarypenalty|pageboundary|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orphanpenalty|orphanpenalties|orelse|or|omit|numexpression|numexpr|numericscale|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxtoks|normalxspaceskip|normalxleaders|normalxdefcsname|normalxdef|normalwrapuppar|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvpack|normalunvcopy|normalunvbox|normaluntraced|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhpack|normalunhcopy|normalunhbox|normalunexpandedloop|normalunexpanded|normalunderline|normalundent|normaluleaders|normaluchyph|normaluccode|normaltracingstats|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnodes|normaltracingnesting|normaltracingmath|normaltracingmarks|normaltracingmacros|normaltracinglostchars|normaltracinglevels|normaltracinginserts|normaltracingifs|normaltracinghyphenation|normaltracinggroups|normaltracingfullboxes|normaltracingfonts|normaltracingexpressions|normaltracingcommands|normaltracingassigns|normaltracingalignments|normaltracingadjusts|normaltpack|normaltoscaled|normaltopskip|normaltopmarks|normaltopmark|normaltomathstyle|normaltolerant|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltokenized|normaltointeger|normaltodimension|normaltinymuskip|normaltime|normalthinmuskip|normalthickmuskip|normalthewithoutunit|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normaltabsize|normalswapcsvalues|normalsupmarkmode|normalstring|normalsrule|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalsnapshotpar|normalskipdef|normalskip|normalskewedwithdelims|normalskewed|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapingpenalty|normalshapingpenaltiesmode|normalsfcode|normalsetmathspacing|normalsetmathprepenalty|normalsetmathpostpenalty|normalsetmathoptions|normalsetmathignore|normalsetmathatomrule|normalsetlanguage|normalsetfontid|normalsetdefaultmathcodes|normalsetbox|normalsemiprotected|normalsemiexpanded|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalscaledslantperpoint|normalscaledinterwordstretch|normalscaledinterwordspace|normalscaledinterwordshrink|normalscaledfontdimen|normalscaledextraspace|normalscaledexheight|normalscaledemwidth|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalretokenized|normalresetmathspacing|normalrelpenalty|normalrelax|normalraise|normalradical|normalquitvmode|normalquitloop|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalpreinlinepenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalpostinlinepenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpermanent|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalparfillleftskip|normalpardirection|normalparattribute|normalparametermark|normalparametercount|normalpar|normalpagevsize|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normalpageboundarypenalty|normalpageboundary|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorphanpenalty|normalorphanpenalties|normalorelse|normalor|normalomit|normalnumexpression|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaningasis|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmaththreshold|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstylefontid|normalmathstyle|normalmathstackstyle|normalmathspacingmode|normalmathslackmode|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathrad|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathmiddle|normalmathlimitsmode|normalmathinner|normalmathghost|normalmathfrac|normalmathforwardpenalties|normalmathfontcontrol|normalmathfencesmode|normalmathfenced|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcontrolmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathbackwardpenalties|normalmathatomskip|normalmathatom|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightboxbox|normallocalrightbox|normallocalmiddleboxbox|normallocalmiddlebox|normallocalleftboxbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolledloop|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinedirection|normallimits|normallettonothing|normalletprotected|normalletmathspacing|normalletmathparent|normalletmathatomrule|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastrightclass|normallastpenalty|normallastparcontext|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastloopiterator|normallastlinefit|normallastleftclass|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|normalinsertstoring|normalinsertstorage|normalinsertprogress|normalinsertpenalty|normalinsertpenalties|normalinsertmultiplier|normalinsertmode|normalinsertmaxdepth|normalinsertlimit|normalinsertheights|normalinsertheight|normalinsertdistance|normalinsertdepth|normalinsertcopy|normalinsertbox|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalinherited|normalindent|normalimmutable|normalimmediate|normalignorespaces|normalignorepars|normalignorearguments|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normaliftok|normalifrelax|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifparameters|normalifparameter|normalifodd|normalifnumval|normalifnumexpression|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normalifhaschar|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdimexpression|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglettonothing|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfuturecsname|normalfrozen|normalformatname|normalfonttextcontrol|normalfontspecyscale|normalfontspecxscale|normalfontspecscale|normalfontspecifiedsize|normalfontspecifiedname|normalfontspecid|normalfontspecdef|normalfontname|normalfontmathcontrol|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalflushmarks|normalfloatingpenalty|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandtoken|normalexpandedloop|normalexpandedafter|normalexpanded|normalexpandcstoken|normalexpandafterspaces|normalexpandafterpars|normalexpandafter|normalexpand|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaleverybeforepar|normaletokspre|normaletoksapp|normaletoks|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalenforced|normalendsimplegroup|normalendmathgroup|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledefcsname|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpression|normaldimexpr|normaldimensiondef|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefcsname|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentmarks|normalcurrentloopnesting|normalcurrentloopiterator|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopymathspacing|normalcopymathparent|normalcopymathatomrule|normalcopy|normalclubpenalty|normalclubpenalties|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxtarget|normalboxsource|normalboxshift|normalboxorientation|normalboxmaxdepth|normalboxgeometry|normalboxdirection|normalboxattribute|normalboxanchors|normalboxanchor|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginsimplegroup|normalbeginmathgroup|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbaselineskip|normalbadness|normalautoparagraphmode|normalautomigrationmode|normalautomatichyphenpenalty|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalalluncrampedstyles|normalalltextstyles|normalallsplitstyles|normalallscriptstyles|normalallscriptscriptstyles|normalallmathstyles|normalalldisplaystyles|normalallcrampedstyles|normalaligntab|normalalignmark|normalaligncontent|normalaliased|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUshiftedsuperscript|normalUshiftedsuperprescript|normalUshiftedsubscript|normalUshiftedsubprescript|normalUroot|normalUright|normalUradical|normalUprimescript|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUoperator|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathyscale|normalUmathxscale|normalUmathvoid|normalUmathvextensiblevariant|normalUmathuseaxis|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsupshiftdistance|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubshiftdistance|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathskeweddelimitertolerance|normalUmathruleheight|normalUmathruledepth|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathprimevariant|normalUmathprimesupspace|normalUmathprimeshiftup|normalUmathprimeshiftdrop|normalUmathprimeraise|normalUmathpresupshiftdistance|normalUmathpresubshiftdistance|normalUmathphantom|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathoperatorsize|normalUmathopenupheight|normalUmathopenupdepth|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathnolimits|normalUmathnoaxis|normalUmathlimits|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathextrasupspace|normalUmathextrasupshift|normalUmathextrasupprespace|normalUmathextrasuppreshift|normalUmathextrasubspace|normalUmathextrasubshift|normalUmathextrasubprespace|normalUmathextrasubpreshift|normalUmathdenominatorvariant|normalUmathdelimiterundervariant|normalUmathdelimiterovervariant|normalUmathdegreevariant|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbotaccentvariant|normalUmathaxis|normalUmathadapttoright|normalUmathadapttoleft|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaningasis|meaning|maxdepth|maxdeadcycles|maththreshold|mathsurroundskip|mathsurroundmode|mathsurround|mathstylefontid|mathstyle|mathstackstyle|mathspacingmode|mathslackmode|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathrad|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathmiddle|mathlimitsmode|mathinner|mathghost|mathfrac|mathforwardpenalties|mathfontcontrol|mathfencesmode|mathfenced|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcontrolmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathbackwardpenalties|mathatomskip|mathatom|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightboxbox|localrightbox|localmiddleboxbox|localmiddlebox|localleftboxbox|localleftbox|localinterlinepenalty|localcontrolledloop|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|limits|lettonothing|letprotected|letmathspacing|letmathparent|letmathatomrule|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastrightclass|lastpenalty|lastparcontext|lastnodetype|lastnodesubtype|lastnamedcs|lastloopiterator|lastlinefit|lastleftclass|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|insertstoring|insertstorage|insertprogress|insertpenalty|insertpenalties|insertmultiplier|insertmode|insertmaxdepth|insertlimit|insertheights|insertheight|insertdistance|insertdepth|insertcopy|insertbox|insert|inputlineno|input|initcatcodetable|inherited|indent|immutable|immediate|ignorespaces|ignorepars|ignorearguments|ifx|ifvoid|ifvmode|ifvbox|iftrue|iftok|ifrelax|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifparameters|ifparameter|ifodd|ifnumval|ifnumexpression|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|ifhaschar|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdimexpression|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|glettonothing|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|futurecsname|frozen|formatname|fonttextcontrol|fontspecyscale|fontspecxscale|fontspecscale|fontspecifiedsize|fontspecifiedname|fontspecid|fontspecdef|fontname|fontmathcontrol|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|flushmarks|floatingpenalty|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandtoken|expandedloop|expandedafter|expandcstoken|expandafterspaces|expandafterpars|expandafter|expand|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|everybeforepar|etokspre|etoksapp|etoks|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|enforced|endsimplegroup|endmathgroup|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edefcsname|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpression|dimexpr|dimensiondef|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defcsname|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentmarks|currentloopnesting|currentloopiterator|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copymathspacing|copymathparent|copymathatomrule|copy|clubpenalty|clubpenalties|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxtarget|boxsource|boxshift|boxorientation|boxmaxdepth|boxgeometry|boxdirection|boxattribute|boxanchors|boxanchor|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginsimplegroup|beginmathgroup|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|autoparagraphmode|automigrationmode|automatichyphenpenalty|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|alluncrampedstyles|alltextstyles|allsplitstyles|allscriptstyles|allscriptscriptstyles|allmathstyles|alldisplaystyles|allcrampedstyles|aligntab|alignmark|aligncontent|aliased|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Ushiftedsuperscript|Ushiftedsuperprescript|Ushiftedsubscript|Ushiftedsubprescript|Uroot|Uright|Uradical|Uprimescript|Uoverwithdelims|Uoverdelimiter|Uover|Uoperator|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathyscale|Umathxscale|Umathvoid|Umathvextensiblevariant|Umathuseaxis|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsupshiftdistance|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubshiftdistance|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathskeweddelimitertolerance|Umathruleheight|Umathruledepth|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathprimevariant|Umathprimesupspace|Umathprimeshiftup|Umathprimeshiftdrop|Umathprimeraise|Umathpresupshiftdistance|Umathpresubshiftdistance|Umathphantom|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathoperatorsize|Umathopenupheight|Umathopenupdepth|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathnolimits|Umathnoaxis|Umathlimits|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathextrasupspace|Umathextrasupshift|Umathextrasupprespace|Umathextrasuppreshift|Umathextrasubspace|Umathextrasubshift|Umathextrasubprespace|Umathextrasubpreshift|Umathdenominatorvariant|Umathdelimiterundervariant|Umathdelimiterovervariant|Umathdegreevariant|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbotaccentvariant|Umathaxis|Umathadapttoright|Umathadapttoleft|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])",
"name" : "context.primitive.commands.primitive.tex"
},
"reserved" : {
diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf
index 123c3f000..224d64fd1 100644
--- a/doc/context/documents/general/manuals/luametatex.pdf
+++ b/doc/context/documents/general/manuals/luametatex.pdf
Binary files differ
diff --git a/doc/context/documents/general/manuals/ontarget.pdf b/doc/context/documents/general/manuals/ontarget.pdf
index c4d0077e4..e4fb54bc4 100644
--- a/doc/context/documents/general/manuals/ontarget.pdf
+++ b/doc/context/documents/general/manuals/ontarget.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex b/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex
index 3e80f4ae5..3da557f40 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex
@@ -95,6 +95,15 @@ This chapter will discuss what is gone. We start with the primitives that were d
\NC \NR
\stoptabulate
+The math machinery has been overhauled stepwise. In the process detailed control
+has been added but later some of that got removed or replaced. The engine now
+assumes that \OPENTYPE\ fonts are used but you do need to set up the engine
+properly, something that has to be done with respect to fonts anyway. By enabling
+and|/|disabling certain features you can emulate the traditional engine. Font
+parameters no longer are taken from the traditional parameters when they are not
+set. We just assume properly passed so called math constants and quite a few new
+ones have been added.
+
The resources and positioning primitives are actually useful but can be defined
as macros that (via \LUA) inject nodes in the input that suit the macro package
and backend. The three||letter direction primitives are gone and the numeric
@@ -102,7 +111,7 @@ variants are now leading. There is no need for page and body related directions
and they don't work well in \LUATEX\ anyway. We only have two directions left.
Because we can hook in \LUA\ functions that get information about what is expected
(consumer or provider) there are plenty possibilities for adding functionality
-using this scripting langauge.
+using this scripting language.
The primitive related extensions were not that useful and reliable so they have
been removed. There are some new variants that will be discussed later. The \type
@@ -368,7 +377,8 @@ back mapping if needed (just alias the functions).
It's all part of trying to make the code base consistent but it is sometimes a
bit annoying. However, that's why we develop this engine independent of the
\LUATEX\ code base. It's anyway a change that has been on my todo list for quite
-a while because those inconsistencies annoyed me.
+a while because those inconsistencies annoyed me. It might take some years to
+get all done.
\stopchapter
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
index 5f0ea780a..1c2670ff4 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
@@ -120,9 +120,9 @@ has no ligatures and kerns and is normally not processed at all.
\NC \type {rightprotruding} \NC number \NC right protruding factor (\prm {rpcode}) \NC\NR
\NC \type {expansion} \NC number \NC expansion factor (\prm {efcode}) \NC\NR
\NC \type {next} \NC number \NC \quote {next larger} character index \NC\NR
-\NC \type {extensible} \NC table \NC constituent parts of an extensible recipe \NC\NR
-\NC \type {vvariants} \NC table \NC constituent parts of a vertical variant set \NC \NR
-\NC \type {hvariants} \NC table \NC constituent parts of a horizontal variant set \NC \NR
+\NC \type {extensible} \NC table \NC constituent parts of an extensible (traditional) recipe \NC\NR
+\NC \type {vparts} \NC table \NC constituent parts of a vertical (\OPENTYPE) recipe \NC \NR
+\NC \type {hparts} \NC table \NC constituent parts of a horizontal (\OPENTYPE)recipe \NC \NR
\NC \type {kerns} \NC table \NC kerning information \NC\NR
\NC \type {ligatures} \NC table \NC ligaturing information \NC\NR
\NC \type {mathkern} \NC table \NC math cut-in specifications \NC\NR
@@ -169,7 +169,7 @@ well as on the value of \prm {adjustspacing}.
A math character can have a \type {next} field that points to a next larger
shape. However, the presence of \type {extensible} will overrule \type {next}, if
that is also present. The \type {extensible} field in turn can be overruled by
-\type {vvariants}, the \OPENTYPE\ version. The \type {extensible} table is very
+\type {vparts}, the \OPENTYPE\ version. The \type {extensible} table is very
simple:
\starttabulate[|l|l|p|]
@@ -182,7 +182,7 @@ simple:
\LL
\stoptabulate
-The \type {hvariants} and \type {vvariants} are arrays of components. Each of
+The \type {hparts} and \type {vparts} are arrays of components. Each of
those components is itself a hash of up to five keys:
\starttabulate[|l|l|p|]
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
index 30ce11c3b..eb3f6c61d 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
@@ -10,6 +10,9 @@
\topicindex {math}
+End 2021 this chapter started with this:
+
+\startquotation
At this point there is no difference between \LUAMETATEX\ and \LUATEX\ with
respect to math. \footnote {This might no longer be true because we have more
control options that define default behavior and also have a more extensive
@@ -30,6 +33,24 @@ than gradually add more and more. At some point we should be able to say \quote
{This is it}. Also, when looking at these features, you need to keep in mind that
when it comes to math, \LATEX\ is the dominant macro package and it never needed
these engine features, so most are probably just here for exploration purposes.
+\stopquotation
+
+Although we still process math as \TEX\ does, there have been some fundamental
+changes to the machinery. Most of that is discussed in documents that come with
+\CONTEXT\ and in Mikael Sundqvist math manual. Together we explored some new ways
+to deal with math spacing, penalties, fencing, operators, fractions, atoms and
+other features of the \TEX\ engine. We started from the way \CONTEXT\ used the
+already present functionality combine with sometimes somewhat dirty (but on the
+average working well) tricks.
+
+It will take a while before this chapter is updated. If you find errors or things
+missing, let me know. A lot of pairwise spacing primitives were dropped but also
+quite a bit of new ones introduced to control matters. Much in \LUAMETATEX\ math
+handling is about micro|-|typography and for us the results are quite visible.
+But, as far as we know, there have never been complaints or demands in the
+direction of the features discussed here. Also, \TEX\ math usage outside
+\CONTEXT\ is rather chiselled in stone (already for nearly three decades) so we
+don't expect other macro packages to use the new features anyway.
\stopsection
@@ -38,18 +59,19 @@ these engine features, so most are probably just here for exploration purposes.
\topicindex {math+\UNICODE}
\topicindex {\UNICODE+math}
-Character handling is now extended up to the full \UNICODE\ range (the \type {\U}
-prefix), which is compatible with \XETEX.
+For various reasons we need to encode a math character in a 32 bit number and
+because we often also need to keep track of families and classes the range of
+characters is limited to 20 bits. There are upto 64 classes (more than in
+\LUATEX) and 64 families (less than in \LUATEX). The upper limit of characters is
+less that what \UNICODE\ offers but for math we're okay. If needed we can provide
+less families.
The math primitives from \TEX\ are kept as they are, except for the ones that
convert from input to math commands: \type {mathcode}, and \type {delcode}. These
-two now allow for a 21-bit character argument on the left hand side of the equals
-sign.
-
-Some of the new \LUATEX\ primitives read more than one separate value. This is
-shown in the tables below by a plus sign.
-
-The input for such primitives would look like this:
+two now allow for the larger character codes argument on the left hand side of
+the equals sign. The number variants of some primitives might be dropped in favor
+of the primitives that read more than one separate value (class, family and
+code), for instance:
\starttyping
\def\overbrace{\Umathaccent 0 1 "23DE }
@@ -78,70 +100,128 @@ The unaltered ones are:
\LL
\stoptabulate
-For practical reasons \prm {mathchardef} will silently accept values larger
-that \type {0x8000} and interpret it as \prm {Umathcharnumdef}. This is needed
-to satisfy older macro packages.
-
-The following new primitives are compatible with \XETEX:
-
-% somewhat fuzzy:
+In \LUATEX\ we support the single number primitives *with \type {num} in their
+name) conforming the \XETEX\ method. For the moment that still works but you need
+to figure out the number yourself. The split number variants are more future safe
+with respect to classes and families. Wd don't document \prm {Umathcharnumdef},
+\prm {Umathcharnum}, \prm {Umathcodenum} and \prm {Udelcodenum} here any longer.
-\starttabulate[|l|l|r|c|l|r|]
-\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR
+\starttabulate[|l|l|c|c|c|]
+\DB primitive \BC \BC class \BC family \BC character \NC \NR
\TB
-\NC \prm {Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR
-\NC \prm {Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR
-\NC \prm {Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF \NC \NR
-\NC \prm {Udelcode} \NC 0 \NC 10FFFF \NC = \NC 0+0 \NC FF+10FFFF \NC \NR
-\NC \prm {Umathchar} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR
-\NC \prm {Umathaccent} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR
-\NC \prm {Udelimiter} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR
-\NC \prm {Uradical} \NC 0+0 \NC FF+10FFFF \NC \NC \NC \NC \NR
-\NC \prm {Umathcharnum} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR
-\NC \prm {Umathcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR
-\NC \prm {Udelcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR
+\NC \prm {Umathchardef} \NC csname \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Umathcode} \NC \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Udelcode} \NC "FFFFF \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Umathchar} \NC \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Umathaccent} \NC \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Udelimiter} \NC \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Uradical} \NC \NC "40 \NC "40 \NC "FFFFF \NC \NR
\LL
\stoptabulate
-Specifications typically look like:
+So, there are upto 64 classes of which at this moment about 20 are predefined so,
+taking some future usage by the engine into account,you can assume 32 upto 63 to
+be available for any purpose. The number of families has been reduced from 256 to
+64 which is plenty for daily use in an \OPENTYPE\ setup. If we ever need to
+expand the \UNICODE\ range there will be less families. The values of begin and
+end classes and the number of classes can be fetched from the \LUA\ status
+table.
+
+Given the above, specifications typically look like:
\starttyping
-\Umathchardef\xx="1"0"456
-\Umathcode 123="1"0"789
+\Umathchardef \xx = "1 "0 "456
+\Umathcode 123 = "1 "0 "789
\stoptyping
The new primitives that deal with delimiter|-|style objects do not set up a
\quote {large family}. Selecting a suitable size for display purposes is expected
-to be dealt with by the font via the \prm {Umathoperatorsize} parameter.
-
-For some of these primitives, all information is packed into a single signed
-integer. For the first two (\prm {Umathcharnum} and \prm {Umathcodenum}), the
-lowest 21 bits are the character code, the 3 bits above that represent the math
-class, and the family data is kept in the topmost bits. This means that the values
-for math families 128--255 are actually negative. For \prm {Udelcodenum} there
-is no math class. The math family information is stored in the bits directly on
-top of the character code. Using these three commands is not as natural as using
-the two- and three|-|value commands, so unless you know exactly what you are
-doing and absolutely require the speedup resulting from the faster input
-scanning, it is better to use the verbose commands instead.
+to be dealt with by the font via the \prm {Umathoperatorsize} parameter. Old
+school fonts can still be handled but you need to set up the engine to do that;
+this can be done per font. In principle we assume that \OPENTYPE\ fonts are used,
+which is no big deal because loading fonts is already under \LUA\ control. At
+that moment the distinction between small and large delimiters will be gone. Of
+course an alternative is to support a specific large size but that is unlikely to
+happen.
+
+% For some of these primitives, all information is packed into a single signed
+% integer. For the first two (\prm {Umathcharnum} and \prm {Umathcodenum}), the
+% lowest 21 bits are the character code, the 3 bits above that represent the math
+% class, and the family data is kept in the topmost bits. This means that the values
+% for math families 128--255 are actually negative. For \prm {Udelcodenum} there
+% is no math class. The math family information is stored in the bits directly on
+% top of the character code. Using these three commands is not as natural as using
+% the two- and three|-|value commands, so unless you know exactly what you are
+% doing and absolutely require the speedup resulting from the faster input
+% scanning, it is better to use the verbose commands instead.
The \prm {Umathaccent} command accepts optional keywords to control various
details regarding math accents. See \in {section} [mathacc] below for details.
There are more new primitives and all of these will be explained in following
-sections:
+sections. For instance these are variants of radicals and delimiters all are
+set the same::
-\starttabulate[|l|l|]
-\DB primitive \BC value range (in hex) \NC \NR
+\starttabulate[|l|c|c|c|]
+\DB primitive \BC class \BC family \NC character \NC \NR
+\TB
+\NC \prm {Uroot} \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Uoverdelimiter} \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Uunderdelimiter} \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Udelimiterover} \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\NC \prm {Udelimiterunder} \NC "40 \NC "40 \NC "FFFFF \NC \NR
+\LL
+\stoptabulate
+
+In addition there are \prm {UVextensible} and \prm {Uoperator} and extended
+versions of fenced: \prm {Uleft}, \prm {Uright} and \prm {Umiddle}. There is also
+\prm {Uover} and similar primitives that expect the numerator and denominator
+after the primitive. In addition to regular scripts there are prescripts and a
+dedicated prime script. Many of these \type {U} primitives can be controlled by
+options and keywords.
+
+\stopsection
+
+\startsection[title=Setting up the engine]
+
+\topicindex{math+control}
+
+Processing math is controlled by \prm {mathfontcontrol}, a numeric bitset
+parameter. The recommended bits are marked with a star but it really depends on
+the macro package to set up the machinery well. Of course one can just enable all
+and see what happens.
+
+\starttabulate[|l|l|c|]
+\DB bit \BC name \NC \NC \NR
\TB
-\NC \prm {Uroot} \NC 0 + 0--FF + 10FFFF \NC \NR
-\NC \prm {Uoverdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR
-\NC \prm {Uunderdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR
-\NC \prm {Udelimiterover} \NC 0 + 0--FF + 10FFFF \NC \NR
-\NC \prm {Udelimiterunder} \NC 0 + 0--FF + 10FFFF \NC \NR
+\NC \type {0x00001} \NC \type {usefontcontrol} \NC \star \NR
+\NC \type {0x00002} \NC \type {overrule} \NC \star \NR
+\NC \type {0x00004} \NC \type {underrule} \NC \star \NR
+\NC \type {0x00008} \NC \type {radicalrule} \NC \star \NR
+\NC \type {0x00010} \NC \type {fractionrule} \NC \star \NR
+\NC \type {0x00020} \NC \type {accentskewhalf} \NC \star \NR
+\NC \type {0x00040} \NC \type {accentskewapply} \NC \star \NR
+\NC \type {0x00080} \NC \type {checkligatureandkern} \NC \NR
+\NC \type {0x00100} \NC \type {applyverticalitalickern} \NC \star \NR
+\NC \type {0x00200} \NC \type {applyordinaryitalickern} \NC \star \NR
+\NC \type {0x00400} \NC \type {applycharitalickern} \NC \NR
+\NC \type {0x00800} \NC \type {reboxcharitalickern} \NC \NR
+\NC \type {0x01000} \NC \type {applyboxeditalickern} \NC \star \NR
+\NC \type {0x02000} \NC \type {staircasekern} \NC \star \NR
+\NC \type {0x04000} \NC \type {applytextitalickern} \NC \star \NR
+\NC \type {0x08000} \NC \type {checktextitalickern} \NC \star \NR
+\NC \type {0x10000} \NC \type {checkspaceitalickern} \NC \NR
+\NC \type {0x20000} \NC \type {applyscriptitalickern} \NC \star \NR
+\NC \type {0x40000} \NC \type {italicshapekern} \NC \star \NR
\LL
\stoptabulate
+One reason for this approach is that traditional and \OPENTYPE\ fonts have
+different approaches (especially when it comes to dealing with the width and
+italic corrections) and is even more complicated by the fact that the fonts are
+often inconsistent (within and between). In \CONTEXT\ we deal with this by
+runtime fixes to fonts. In any case the Cambria font is taken as reference.
+
\stopsection
\startsection[title={Math styles}]
@@ -346,8 +426,8 @@ we force styles in the script using \prm {scriptstyle} and \prm
Now we set the following parameters
\startbuffer[setup]
-\Umathordrelspacing\scriptstyle=30mu
-\Umathordordspacing\scriptstyle=30mu
+\setmathspacing 0 3 \scriptstyle = 30mu
+\setmathspacing 0 3 \scriptstyle = 30mu
\stopbuffer
\typebuffer[setup]
@@ -359,10 +439,10 @@ This gives a different result:
But, as this is not what is expected (visually) we should say:
\startbuffer[setup]
-\Umathordrelspacing\scriptstyle=30mu
-\Umathordordspacing\scriptstyle=30mu
-\Umathordrelspacing\crampedscriptstyle=30mu
-\Umathordordspacing\crampedscriptstyle=30mu
+\setmathspacing 0 3 \scriptstyle = 30mu
+\setmathspacing 0 3 \scriptstyle = 30mu
+\setmathspacing 0 3 \crampedscriptstyle = 30mu
+\setmathspacing 0 3 \crampedscriptstyle = 30mu
\stopbuffer
\typebuffer[setup]
@@ -386,7 +466,7 @@ now accessible via primitive commands. In fact, refactoring of the math engine
has resulted in turning some hard codes properties into parameters.
\starttabulate
-\DB primitive name \BC description \NC \NR
+\DB primitive name \BC description \NC \NR
\TB
\NC \prm {Umathquad} \NC the width of 18 mu's \NC \NR
\NC \prm {Umathaxis} \NC height of the vertical center axis of
@@ -441,12 +521,39 @@ has resulted in turning some hard codes properties into parameters.
\NC \prm {Umathsupsubbottommax} \NC the bottom of the superscript of a combined super- and subscript
be at least as high as this above the baseline \NC \NR
\NC \prm {Umathsubsupvgap} \NC vertical clearance between super- and subscript \NC \NR
-\NC \prm {Umathspacebeforescript} \NC additional space added before a super- or subprescript (bonus setting) \NC \NR
\NC \prm {Umathspaceafterscript} \NC additional space added after a super- or subscript \NC \NR
\NC \prm {Umathconnectoroverlapmin}\NC minimum overlap between parts in an extensible recipe \NC \NR
\LL
\stoptabulate
+In addition to the above official \OPENTYPE\ font parameters we have these:
+
+\starttabulate
+\DB primitive name \BC description \NC \NR
+\TB
+\NC \prm{Umathprimeraisepercent} \NC the percentage that the vertical position is scaled \NC \NR
+\NC \prm{Umathprimeshiftup} \NC the prime variant of \prm {SuperscriptShiftUp} \NC \NR
+\NC \prm{Umathprimebaselinedropmax} \NC the prime variant of \prm {SuperscriptBaselineDropMax} \NC \NR
+\NC \prm{Umathprimeshiftupcramped} \NC the prime variant of \prm {SuperscriptShiftUpCramped} \NC \NR
+\NC \prm{Umathprimespaceafter} \NC the prime variant of \prm {UmathSpaceAfterScript} \NC \NR
+\NC \prm{Umathprimewidthpercent} \NC the percentage of width that gets added \NC \NR
+\NC \prm{Umathspacebeforescript} \NC the prescript variant of \prm {UmathSpaceAfterScript} \NC \NR
+\NC \prm{Umathnolimitsupfactor} \NC a multiplier for the way limits are shifted up and down \NC \NR
+\NC \prm{Umathnolimitsubfactor} \NC a multiplier for the way limits are shifted up and down \NC \NR
+\NC \prm{Umathaccenttopshiftup} \NC the amount that a top accent is shifted up \NC \NR
+\NC \prm{Umathaccentbottomshiftdown} \NC the amount that a bottom accent is shifted down \NC \NR
+\NC \prm{Umathflattenedaccenttopshiftup} \NC the amount that a wide top accent is shifted up \NC \NR
+\NC \prm{Umathflattenedaccentbottomshiftdown} \NC the amount that a wide bottom accent is shifted down \NC \NR
+\NC \prm{Umathaccentbasedepth} \NC the complement of \prm {UmathAccentBaseHeight} \NC \NR
+\NC \prm{Umathaccentflattenedbasedepth} \NC the complement of \prm {UmathFlattenedAccentBaseHeight} \NC \NR
+\LL
+\stoptabulate
+
+These parameters not only provide a bit more control over rendering, they also
+can be used in compensating issues in font, because no font is perfect. Some are
+the side effects of experiments and they have CamelCase companions in the \type
+{MathConstants} table.
+
Each of the parameters in this section can be set by a command like this:
\starttyping
@@ -456,6 +563,26 @@ Each of the parameters in this section can be set by a command like this:
they obey grouping, and you can use \type {\the\Umathquad\displaystyle} if
needed.
+There are quite some parameters that can be set and there are eight styles, which means a lot
+of keying in. For that reason is is possible to set parameters groupwise
+
+\starttabulate
+\DB primitive name \BC description \NC \NR
+\TB
+\NC \prm {alldisplaystyles} \NC set both display styles \NC \NR
+\NC \prm {alltextstyles} \NC set both text styles \NC \NR
+\NC \prm {allscriptstyles} \NC set both script styles \NC \NR
+\NC \prm {allscriptscriptstyles} \NC set both scriptscript styles \NC \NR
+\NC \prm {allmathstyles} \NC set all eight styles \NC \NR
+\NC \prm {allsplitstyles} \NC set all display and text styles, and reset all script(script) styles \NC \NR
+\NC \prm {alluncrampedstyles} \NC set all four uncramped styles \NC \NR
+\NC \prm {allcrampedstyles} \NC set all four cramped styles \NC \NR
+\LL
+\stoptabulate
+
+These groups are especially handy when you set up inter atom spacing, pre- and
+post atom penalties and atom rules.
+
\stopsubsection
\startsubsection[title={Font|-|based math parameters}]
@@ -552,6 +679,8 @@ dimension parameter. For math fonts, this should be set to zero.
\LL
\stoptabulate
+{\em Todo: add the extra ones.}
+
Note 1: \OPENTYPE\ fonts set \prm {Umathlimitabovekern} and \prm
{Umathlimitbelowkern} to zero and set \prm {Umathquad} to the font size of the
used font, because these are not supported in the \type {MATH} table,
@@ -660,104 +789,51 @@ applicable in the first occasion that checks them (linebreaking or packaging).
\stopsubsection
-\startsubsection[title={Pairwise spacing and \tex {Umath...spacing} commands}]
+\startsubsection[title={Pairwise spacing}]
\topicindex {math+spacing}
-Besides the parameters mentioned in the previous sections, there are also 64 new
+Besides the parameters mentioned in the previous sections, there are also
primitives to control the math spacing table (as explained in Chapter~18 of the
-\TEX book). The primitive names are a simple matter of combining two math atom
-types, but for completeness' sake, here is the whole list:
+\TEX book). This happens per class pair. Because we have many possible classes,
+we no longer hand the many primitives that \LUATEX\ has but you can define then
+using the generic \prm {setmathspacing} primitive:
-\starttwocolumns
-\startlines
-\prm {Umathordordspacing}
-\prm {Umathordopspacing}
-\prm {Umathordbinspacing}
-\prm {Umathordrelspacing}
-\prm {Umathordopenspacing}
-\prm {Umathordclosespacing}
-\prm {Umathordpunctspacing}
-\prm {Umathordinnerspacing}
-\prm {Umathopordspacing}
-\prm {Umathopopspacing}
-\prm {Umathopbinspacing}
-\prm {Umathoprelspacing}
-\prm {Umathopopenspacing}
-\prm {Umathopclosespacing}
-\prm {Umathoppunctspacing}
-\prm {Umathopinnerspacing}
-\prm {Umathbinordspacing}
-\prm {Umathbinopspacing}
-\prm {Umathbinbinspacing}
-\prm {Umathbinrelspacing}
-\prm {Umathbinopenspacing}
-\prm {Umathbinclosespacing}
-\prm {Umathbinpunctspacing}
-\prm {Umathbininnerspacing}
-\prm {Umathrelordspacing}
-\prm {Umathrelopspacing}
-\prm {Umathrelbinspacing}
-\prm {Umathrelrelspacing}
-\prm {Umathrelopenspacing}
-\prm {Umathrelclosespacing}
-\prm {Umathrelpunctspacing}
-\prm {Umathrelinnerspacing}
-\prm {Umathopenordspacing}
-\prm {Umathopenopspacing}
-\prm {Umathopenbinspacing}
-\prm {Umathopenrelspacing}
-\prm {Umathopenopenspacing}
-\prm {Umathopenclosespacing}
-\prm {Umathopenpunctspacing}
-\prm {Umathopeninnerspacing}
-\prm {Umathcloseordspacing}
-\prm {Umathcloseopspacing}
-\prm {Umathclosebinspacing}
-\prm {Umathcloserelspacing}
-\prm {Umathcloseopenspacing}
-\prm {Umathcloseclosespacing}
-\prm {Umathclosepunctspacing}
-\prm {Umathcloseinnerspacing}
-\prm {Umathpunctordspacing}
-\prm {Umathpunctopspacing}
-\prm {Umathpunctbinspacing}
-\prm {Umathpunctrelspacing}
-\prm {Umathpunctopenspacing}
-\prm {Umathpunctclosespacing}
-\prm {Umathpunctpunctspacing}
-\prm {Umathpunctinnerspacing}
-\prm {Umathinnerordspacing}
-\prm {Umathinneropspacing}
-\prm {Umathinnerbinspacing}
-\prm {Umathinnerrelspacing}
-\prm {Umathinneropenspacing}
-\prm {Umathinnerclosespacing}
-\prm {Umathinnerpunctspacing}
-\prm {Umathinnerinnerspacing}
-\stoplines
-\stoptwocolumns
+\starttyping
+\def\Umathordordspacing {\setmathspacing 0 0 }
+\def\Umathordordopenspacing {\setmathspacing 0 4 }
+\stoptyping
These parameters are of type \prm {muskip}, so setting a parameter can be done
like this:
\starttyping
-\Umathopordspacing\displaystyle=4mu plus 2mu
+\setmathspacing 1 0 \displaystyle=4mu plus 2mu % op ord Umathopordspacing
\stoptyping
-They are all initialized by \type {initex} to the values mentioned in the table
-in Chapter~18 of the \TEX book.
+The atom pairs known by the engine are all initialized by \type {initex} to the
+values mentioned in the table in Chapter~18 of the \TEX book.
+
+For ease of use as well as for backward compatibility, \prm {thinmuskip}, \prm
+{medmuskip} and \prm {thickmuskip} are treated specially. In their case a pointer
+to the corresponding internal parameter is saved, not the actual \prm {muskip}
+value. This means that any later changes to one of these three parameters will be
+taken into account. As a bonus we also introduced a \prm {tinymuskip} primitive.
-Note 1: For ease of use as well as for backward compatibility, \prm {thinmuskip},
-\prm {medmuskip} and \prm {thickmuskip} are treated specially. In their case a
-pointer to the corresponding internal parameter is saved, not the actual \prm
-{muskip} value. This means that any later changes to one of these three
-parameters will be taken into account.
+In \LUAMETATEX\ we go a bit further. Any named dimension, glue and mu glue
+register as well as the constants with these properties can be bound to a pair by
+prefixing \prm {setmathspacing} by \prm {inherited}.
-Note 2: Careful readers will realise that there are also primitives for the items
-marked \type {*} in the \TEX book. These will not actually be used as those
-combinations of atoms cannot actually happen, but it seemed better not to break
-orthogonality. They are initialized to zero.
+Careful readers will realize that there are also primitives for the items marked
+\type {*} in the \TEX book. These will actually be used because we pose no
+restrictions. However, you can enforce the remapping rules to conform to the
+rules of \TEX\ (or yourself).
+
+{\em Todo: explain rules.}
+
+{\em Todo: explain penalties.}
+
+{\em Todo: explain let, set and copy primitives.}
\stopsubsection
@@ -1413,8 +1489,8 @@ where the options can be \type {noaxis} and \type {exact}. By default we add hal
the axis to the shifts and by default we zero the width of the middle character.
For Latin Modern the result looks as follows:
-\def\ShowA#1#2#3{$x + { {#1} \Uskewed / #3 {#2} } + x$}
-\def\ShowB#1#2#3{$x + { {#1} \Uskewedwithdelims / () #3 {#2} } + x$}
+\def\ShowA#1#2#3{$x + { \Uskewed / #3 {#1} {#2} } + x$}
+\def\ShowB#1#2#3{$x + { \Uskewedwithdelims / () #3 {#1} {#2} } + x$}
\start
\switchtobodyfont[modern]
@@ -1659,7 +1735,7 @@ and \prm {Usubscript}}]
\type {^}, \type {_}, \type {$}, and \type {$$}:
\starttabulate[|l|l|]
-\DB primitive \BC explanation \NC \NR
+\DB primitive \BC explanation \NC \NR
\TB
\NC \prm {Usuperscript} \NC duplicates the functionality of \type {^} \NC \NR
\NC \prm {Usubscript} \NC duplicates the functionality of \type {_} \NC \NR
@@ -1703,85 +1779,12 @@ results in \inlinebuffer[script].
\stopsubsection
-\startsubsection[title={Allowed math commands in non|-|math modes}]
-
-\topicindex {math+text}
-\topicindex {text+math}
-
-The commands \prm {mathchar}, and \prm {Umathchar} and control sequences that are
-the result of \prm {mathchardef} or \prm {Umathchardef} are also acceptable in
-the horizontal and vertical modes. In those cases, the \prm {textfont} from the
-requested math family is used.
-
-\stopsubsection
-
-\stopsection
-
-\startsection[title={Goodies}]
-
-\startsubsection[title={Flattening: \prm {mathflattenmode}}]
-
-\topicindex {math+flattening}
-
-The \TEX\ math engine collapses \type {ord} noads without sub- and superscripts
-and a character as nucleus, which has the side effect that in \OPENTYPE\ mode
-italic corrections are applied (given that they are enabled).
-
-\startbuffer[sample]
-\switchtobodyfont[modern]
-$V \mathbin{\mathbin{v}} V$\par
-$V \mathord{\mathord{v}} V$\par
-\stopbuffer
-
-\typebuffer[sample]
-
-This renders as:
-
-\blank \start \mathflattenmode\plusone \getbuffer[sample] \stop \blank
-
-When we set \prm {mathflattenmode} to 31 we get:
-
-\blank \start \mathflattenmode\numexpr1+2+4+8+16\relax \getbuffer[sample] \stop \blank
-
-When you see no difference, then the font probably has the proper character
-dimensions and no italic correction is needed. For Latin Modern (at least till
-2018) there was a visual difference. In that respect this parameter is not always
-needed unless of course you want efficient math lists anyway.
-
-You can influence flattening by adding the appropriate number to the value of the
-mode parameter. The default value is~1.
-
-\starttabulate[|Tc|c|]
-\DB mode \BC class \NC \NR
-\TB
-\NC 1 \NC ord \NC \NR
-\NC 2 \NC bin \NC \NR
-\NC 4 \NC rel \NC \NR
-\NC 8 \NC punct \NC \NR
-\NC 16 \NC inner \NC \NR
-\LL
-\stoptabulate
-
-\stopsubsection
-
-\startsubsection[title={Less Tracing}]
+\startsubsection[title={Injecting primes with {Uprimescript}}]
-\topicindex {math+tracing}
-
-Because there are quite some math related parameters and values, it is possible
-to limit tracing. Only when \type {tracingassigns} and|/|or \type
-{tracingrestores} are set to~2 or more they will be traced.
+{\em Todo: explain this one.}
\stopsubsection
-\stopsection
-
-\startsection[title={Experiments}]
-
-There are a couple of experimental features. They will stay but details might
-change, for instance more control over spacing. We just show some examples and
-let your imagination work it out. First we have prescripts:
-
\startsubsection[title={Prescripts with \prm {Usuperprescript} and {Usubprescript}}]
\startbuffer
@@ -1829,6 +1832,85 @@ These more verbose triggers can be used to build interfaces:
\stopsubsection
+\startsubsection[title={Allowed math commands in non|-|math modes}]
+
+\topicindex {math+text}
+\topicindex {text+math}
+
+The commands \prm {mathchar}, and \prm {Umathchar} and control sequences that are
+the result of \prm {mathchardef} or \prm {Umathchardef} are also acceptable in
+the horizontal and vertical modes. In those cases, the \prm {textfont} from the
+requested math family is used.
+
+\stopsubsection
+
+\stopsection
+
+\startsection[title={Goodies}]
+
+% \startsubsection[title={Flattening: \prm {mathflattenmode}}]
+%
+% \topicindex {math+flattening}
+%
+% The \TEX\ math engine collapses \type {ord} noads without sub- and superscripts
+% and a character as nucleus, which has the side effect that in \OPENTYPE\ mode
+% italic corrections are applied (given that they are enabled).
+%
+% \startbuffer[sample]
+% \switchtobodyfont[modern]
+% $V \mathbin{\mathbin{v}} V$\par
+% $V \mathord{\mathord{v}} V$\par
+% \stopbuffer
+%
+% \typebuffer[sample]
+%
+% This renders as:
+%
+% \blank \start \mathflattenmode\plusone \getbuffer[sample] \stop \blank
+%
+% When we set \prm {mathflattenmode} to 31 we get:
+%
+% \blank \start \mathflattenmode\numexpr1+2+4+8+16\relax \getbuffer[sample] \stop \blank
+%
+% When you see no difference, then the font probably has the proper character
+% dimensions and no italic correction is needed. For Latin Modern (at least till
+% 2018) there was a visual difference. In that respect this parameter is not always
+% needed unless of course you want efficient math lists anyway.
+%
+% You can influence flattening by adding the appropriate number to the value of the
+% mode parameter. The default value is~1.
+%
+% \starttabulate[|Tc|c|]
+% \DB mode \BC class \NC \NR
+% \TB
+% \NC 1 \NC ord \NC \NR
+% \NC 2 \NC bin \NC \NR
+% \NC 4 \NC rel \NC \NR
+% \NC 8 \NC punct \NC \NR
+% \NC 16 \NC inner \NC \NR
+% \LL
+% \stoptabulate
+%
+% \stopsubsection
+
+\startsubsection[title={Less Tracing}]
+
+\topicindex {math+tracing}
+
+Because there are quite some math related parameters and values, it is possible
+to limit tracing. Only when \type {tracingassigns} and|/|or \type
+{tracingrestores} are set to~2 or more they will be traced.
+
+\stopsubsection
+
+\stopsection
+
+\startsection[title={Experiments}]
+
+There are a couple of experimental features. They will stay but details might
+change, for instance more control over spacing. We just show some examples and
+let your imagination work it out.
+
\startsubsection[title={Forcing classes with \prm {Umathclass}}]
You can change the class of a math character on the fly:
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex b/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex
index 083fa732a..054eec421 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex
@@ -48,6 +48,14 @@ distribution, articles and presentations. It doesn't pay of to repeat that here,
especially not in a time when users often search instead of read from cover to
cover.
+Occasionally there are extensions to \PDFTEX\ and \LUATEX\ but these are unlikely
+to en dup in \LUAMETATEX. If needed one can add functionality using \LUA. Another
+reason is that because the way we handle files and generate output being
+compatible would only harm the engine. We have some fundamental extensions that
+overcome limitations anyway. One area where the are significate changes is in
+logging: at some point it no longer made sense to be compatible (with \LUATEX)
+because we carry around more information.
+
\stopsubsection
\startsubsection[title=Changes from \TEX\ 3.1415926...]
@@ -529,6 +537,17 @@ different extension to the original. You're warned.
\stopsubsection
+\startsubsection[title=Changes in keyword scanning]
+
+\topicindex {keywords}
+
+Some primitives accept (optional) keywords and in \LUAMETATEX\ there are more
+keywords than in \LUATEX. Scanning can trigger error messages and lookahead side
+effects and in \LUAMETATEX\ these can be different. This is no big deal because
+errors are still errors.
+
+\stopsubsection
+
\stopsection
\stopchapter
diff --git a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
index 399713c41..e8a1701a3 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
@@ -890,6 +890,9 @@ The difference between \type {data} and \type {string} is that on assignment, th
\type {data} field is converted to a token list, cf.\ use as \lpr {latelua}. The
\type {string} version is treated as a literal string.
+When a function is used, it gets called with as first argument the node that triggers
+the call.
+
\stopsection
\startsection[title={\DVI\ backend whatsits}]
diff --git a/doc/context/sources/general/manuals/metafun/metafun-effects.tex b/doc/context/sources/general/manuals/metafun/metafun-effects.tex
index 0b7984e9e..787bd6f07 100644
--- a/doc/context/sources/general/manuals/metafun/metafun-effects.tex
+++ b/doc/context/sources/general/manuals/metafun/metafun-effects.tex
@@ -318,9 +318,9 @@ Of course this also works well for \CMYK\ colors.
Gray scales work as well:
\startbuffer
-\definecolor[ta][s=.9,t=.7,a=11]
-\definecolor[tb][s=.7,t=.7,a=11]
-\definecolor[tc][s=.5,t=.7,a=11]
+\definecolor[tgraya][s=.9,t=.7,a=11]
+\definecolor[tgrayb][s=.7,t=.7,a=11]
+\definecolor[tgrayc][s=.5,t=.7,a=11]
\stopbuffer
\typebuffer \getbuffer
@@ -339,9 +339,9 @@ difference in fonts.
% \stopbuffer
\startbuffer
-draw textext("\color[ta]{\tf Hello}") scaled 5 ;
-draw textext("\color[tb]{\bf Hello}") scaled 5 ;
-draw textext("\color[tc]{\sl Hello}") scaled 5 ;
+draw textext("\color[tgraya]{\tf Hello}") scaled 5 ;
+draw textext("\color[tgrayb]{\bf Hello}") scaled 5 ;
+draw textext("\color[tgrayc]{\sl Hello}") scaled 5 ;
\stopbuffer
\typebuffer
diff --git a/doc/context/sources/general/manuals/metafun/metafun.tex b/doc/context/sources/general/manuals/metafun/metafun.tex
index 8d3b513e0..a890f04c5 100644
--- a/doc/context/sources/general/manuals/metafun/metafun.tex
+++ b/doc/context/sources/general/manuals/metafun/metafun.tex
@@ -42,7 +42,7 @@
% I expect with the more efficient \LUA|-|\METAPOST\ interfacing). It also means
% that \LUAMETATEX|-|\LMTX\ is now comparable with \LUAJITTEX|-|\MKIV.
-% \enableexperiments[fonts.compact]
+\enableexperiments[fonts.compact]
% \enablemode[optional]
diff --git a/doc/context/sources/general/manuals/ontarget/ontarget-anchoring.tex b/doc/context/sources/general/manuals/ontarget/ontarget-anchoring.tex
index 090c6ba0c..12852ba13 100644
--- a/doc/context/sources/general/manuals/ontarget/ontarget-anchoring.tex
+++ b/doc/context/sources/general/manuals/ontarget/ontarget-anchoring.tex
@@ -273,7 +273,6 @@ is also up to users to come up with demands.
% \hskip-2cm
% \blackrule[width=2cm,height=0cm,depth=1cm,color=darkyellow]}%
% %
-% \smash{\box\scratchboxtwo}%
% \egroup
% \stopbuffer
%
diff --git a/doc/context/sources/general/manuals/ontarget/ontarget-math.tex b/doc/context/sources/general/manuals/ontarget/ontarget-math.tex
new file mode 100644
index 000000000..c7e5551d5
--- /dev/null
+++ b/doc/context/sources/general/manuals/ontarget/ontarget-math.tex
@@ -0,0 +1,1816 @@
+% language=us runpath=texruns:manuals/ontarget
+
+% \profilemacro\scaledfontdimen
+
+% \usebodyfont[modern]
+% \usebodyfont[cambria]
+% \usebodyfont[termes]
+% \usebodyfont[pagella]
+% \usebodyfont[bonum]
+
+\startcomponent ontarget-math
+
+\environment ontarget-style
+
+\startchapter[title={A different approach to math spacing}]
+
+\startsubject[title=Introduction]
+
+The \TEX\ engine is famous for its rendering of math and even after decades there
+is no real contender. And so there also is no real pressure to see if we can do
+better. However, when Mikael Sundqvist ran into a Swedish math rendering
+specification and we started discussing a possible support for that in \CONTEXT,
+it quickly became clear that the way \TEX\ does spacing is a bit less flexible
+than one wishes for. We already have much of what is needed in place but it also
+has to work well with how \TEX\ sees things:
+
+\startitemize[packed,n]
+\startitem
+ Math is made from a sequence of atoms: a quantity with a nucleus, superscript
+ subscript. \footnote {I suddenly realize why in the engine noads have a
+ nucleus field: they are atoms \unknown\ but what does that make super and
+ subscripts.} Atoms are spaced by \type {\thinmuskip}, \type {\medmuskip} and
+ \type {\thickmuskip} or nothing, and that is sort of hard coded.
+\stopitem
+\startitem
+ Atoms are organized by class and there are seven (or eight, depending on how
+ you look at it) of them visible: binary symbols, relations, etc. The
+ invisible ones, composites like fractions and fenced material (we call them
+ molecules) are at some point mapped onto the core set. Molecules like fences
+ have a different class left and right of the fenced material.
+\stopitem
+\startitem
+ In addition the engine itself has all kind of spacing related parameters and
+ these kick in automatically and sometimes have side effects. The same is
+ true for penalties.
+\stopitem
+\stopitemize
+
+The normal approach to spacing other than imposed by the engine is to use
+correction space, like \type {\,} and I think that quite some \TEX\ users think
+that this is how it is supposed to be. The standard way to enter math relates to
+scientific publishing and there the standards are often chiseled in stone so why
+should users tweak anyway. However, in \CONTEXT\ we tend to start from the users
+and not the publishers end so there we can decide to follow different routes.
+Users can always work around something they don't like but we focus on reliable
+input giving predictable output. Also, when reading on, it is good to realize
+that it is all about the user experience here: it should look nice (which then of
+course makes one become aware of issues elsewhere) and we don't care much about
+specific demands of publishers in the scientific field: the fact that they often
+re|-|key content doesn't go well with users paying attention themselves, let
+alone the fact that nowadays they can demand word processor formats.
+
+The three mentioned steps are fine for the average case but sometimes make no
+sense. It was definitely the best approach given time and resources but when
+\LUATEX\ went \OPENTYPE\ a lot of parameters were added and at that time we
+therefore added spacing by class pair. That not only decoupled the relation
+between the three (configurable) muskip parameters but also made it possible to
+use plenty of them. Now it must be said that for consistency having these three
+skips works great but given the tweaking expected from users consistency is
+not always what comes out.
+
+This situation is very well comparable to the proclaimed qualities of the
+typesetting of text by \TEX. Yes, it can do a great job, and often does, but users
+can mess up quite well. I remember that when we did tests with \HZ\ the outcomes
+were pretty unimpressive. When you give an audience a set of sample renderings,
+where each sample is slightly different and each user gets a randomized subset,
+the sudden lack of being able to compare (and agree) with another \TEX ie makes
+for interesting conclusions. They look for the opposites of what is claimed to be
+perfect. So, two lines with hyphens rate low, even if not doing it would look
+worse. The same for a few short words in the last line of a paragraph. Excessive
+spacing is also seen as bad. So, when asked why some paragraphs looked okay
+noticing (excessive and troublesome) expansion was not seen as a problem; instead
+it were hyphens that got the attraction.
+
+The same is probably true for math: the input with lots of correction spaces or
+commands where characters would do can be horrible but it's just the way it is
+supposed to be. The therefore expected output can only be perfect, right,
+independent of how one actually messed up spacing. But personally I think that it
+is often spacing messed up by users that make a \TEX\ document recognizable. It
+compares to word processor results that one can sometimes identify by multiple
+consecutive spaces in the typeset text instead of using a glue model like \TEX.
+Reaching perfection is not always trivial, but fortunately we can also find
+plenty of nice looking documents done with \TEX.
+
+The \TEX book has an excellent and intriguing chapter on the fine points of math
+and it definitely shows why Don Knuth wrote \TEX\ as a tool for his books. He
+pays a lot of attention to detail and that is also why it all works out so well.
+If you need to render from unseen sources (as happens in an \XML\ workflow)
+coming from several authors and have time nor money to check everything, you're
+off worse. And I'm not even talking of input where invisible \UNICODE\ spacing
+characters are injected. It is the \TEX\ book(s) that draw me to this program and
+believe it or not, in the first project I was involved in that demanded typeset
+(quantum mechanics) math the \IBM\ typewriter with changing bulbs ruled the
+scenery. In fact, our involvement was quickly cut off when we dared to show a
+chapter done in \TEX\ that looked better.
+
+Apart from an occasional tweak, in \CONTEXT\ we never really used this opened up
+math atom pair spacing mechanism available in \LUATEX\ extensively. So, when I
+was pondering how to proceed it stroke me that it would make sense to generalize
+this mechanism. It was already possible (via a mode parameter) to bypass the
+second step mentioned above, but we definitely needed more than the visible
+classes that the engine had. In \CONTEXT\ we already had more classes but those
+were meant for assigning characters and commands to specific math constructs
+(think of fences, fractions and radicals) so in the end they were not really
+classes. Considering this option was made easier by the fact that Mikael would do
+the testing and help configuring the defaults, which all will result in a new
+math user manual.
+
+There are extensions introduced in \LUATEX\ and later \LUAMETATEX\ that are not
+discussed here. In this expose we concentrate on the features that were explored,
+extended and introduced while we worked on updating math support in \LMTX.
+
+\stopsubject
+
+\startsubject[title=An example]
+
+Before we go into details, let's give an example of unnoticed spacing effects. We
+use three simple formulas all using fractions:
+
+\startbuffer[one]
+\ruledhbox{$\frac{x^2}{a+1}$}
+\stopbuffer
+
+\startbuffer[two]
+\ruledhbox{$x + \frac{x^2}{a+1} = 10$}
+\stopbuffer
+
+\startbuffer[three]
+\ruledhbox{$\frac{1}{2}\frac{1}{2}x$}
+\stopbuffer
+
+\typebuffer[one]
+
+and:
+
+\typebuffer[two]
+
+as well as:
+
+\typebuffer[three]
+
+\startbuffer[all]
+\dontleavehmode
+\scale[scale=4000]{\getbuffer[one]}
+\scale[scale=4000]{\getbuffer[two]}
+\scale[scale=4000]{\getbuffer[three]}
+\stopbuffer
+
+\startlinecorrection
+\nulldelimiterspace=1.2pt\getbuffer[all]
+\stoplinecorrection
+
+If you look closely you see that the fraction has a little space at the left and
+right. Where does that come from? Because we normally don't put a tight frame
+around a fraction, we are not really aware of it. The spacing between what are
+called ordinary, operator, binary, relation and other classes of atoms is
+explained in the \TEX book (or \quotation {\TEX\ by Topic} if you want a summary)
+and basically we have a class by class matrix that is built into \TEX. The
+engine looks at successive items and spacing depends on their (perceived) class.
+Because the number of classes is limited, and because the spacing pairs are hard
+coded, the engine cheats a little. Depending on what came before or comes next
+the class of an atom is adapted to suit the spacing matrix. One can say that a
+\quotation {reading mathematician} is built in. And most of the decisions are
+okay. If needed one can always wrap something in e.g.\ \type {\mathrel} but of
+course that also can interfere with grouping. All this is true for \TEX, \PDFTEX,
+\XETEX\ and \LUATEX, but a bit different in \LUAMETATEX\ as we will see.
+
+The little spacing on both edges of the fraction is a side effect of the way they
+are build internally: fractions are actually a generalized form of \quotation
+{stuff put on top of other stuff} and they can have left and|/|or right
+delimiters: this is driven by primitives that have names like \type {\atop} and
+\type {\atopwithdelims}. The way the components are placed is (especially in the
+case of \OPENTYPE) driven by lots of parameters and I will leave that out of the
+discussion.
+
+When there are no delimiters, a so called \type {\nulldelimiterspace} will be
+injected. That parameter is set to 1.2 points and I have to admit that in
+\CONTEXT\ I never considered letting that one adapt to the body font size, which
+means that, as we default to a 12 point body font, the value there should have
+been 1.44 points: mea culpa. When we set this parameter to zero point, we get
+this:
+
+\startlinecorrection
+\nulldelimiterspace=0pt\getbuffer[all]
+\stoplinecorrection
+
+As intermezzo and moment of contemplation I show some examples of fractions mixed
+into text. When we have the delimiter space set we get this:
+
+\start \nulldelimiterspace=1.2pt \dorecurse{100}{test $\frac{1}{#1}$ } \stop
+
+While with zero it looks like this, quite a different outcome:
+
+\start \nulldelimiterspace=0pt \dorecurse{100}{test $\frac{1}{#1}$ } \stop
+
+A little tracing shows it more clearly:
+
+\start \showboxes \nulldelimiterspace=1.2pt \dorecurse{100}{test $\frac{1}{#1}$ } \stop
+
+You can zoom in and see where it interferes with margin alignment.
+
+\start \showboxes \nulldelimiterspace=0pt \dorecurse{100}{test $\frac{1}{#1}$ } \stop
+
+So, if you ever meet a user who claims perfection and superiority of typesetting,
+check out her|/|his work which might have inline fractions done the spacy way. It
+might make other visually typesetting claims less trustworthy. And yes, one can
+wonder if margin kerning could help here but as this content is wrapped in boxes it
+is unlikely to work out well (and not worth the effort).
+
+In order to get a better picture of the spacing, two more renderings are shown.
+This time we show the bounding boxes of the characters too (you might need to zoom
+in to see it):
+
+\startlinecorrection
+\showglyphs\nulldelimiterspace=1.2pt\getbuffer[all]
+\stoplinecorrection
+
+Again we also show the zero case
+
+\startlinecorrection
+\showglyphs\nulldelimiterspace=0pt\getbuffer[all]
+\stoplinecorrection
+
+This makes clear why there actually is this extra space around a fraction:
+regular operators have side bearings and thereby have some added space. And when
+we put a fraction in front of a symbol we need that little extra space. Of course
+a proper class pair spacing value could do the job but there is no fraction
+class. The engine cheats by changing the class depending on what follows or came
+before and this is why on the average it looks okay. However, these examples
+demonstrate that there are some assumptions with regard to for instance fonts
+and this is one of the reasons why the more or less official expected \OPENTYPE\
+behavior as dictated by the Cambria font doesn't always work out well for fonts
+that evolved from the ones used in the \TEX\ community. Also imagine how this
+interferes with the fact that traditional \TEX\ fonts and the machinery do magic
+with cheating about width combined with italic correction (all plausible and
+quite clever but somewhat tricky with respect to \OPENTYPE).
+
+Because here we discuss the way \LUAMETATEX\ and \CONTEXT\ deal with this, the
+next examples show a probably unexpected outcome. Again first the non|-|zero
+case:
+
+\startlinecorrection
+\showglyphs\showmakeup[mathglue]\nulldelimiterspace=1.2pt\getbuffer[all]
+\stoplinecorrection
+
+And here the zero case:
+
+\startlinecorrection
+\showglyphs\showmakeup[mathglue]\nulldelimiterspace=0pt\getbuffer[all]
+\stoplinecorrection
+
+I will not go into details about the way fractions are supported in the engine
+because some extensions are already around for quite a while. The main
+observation here is that in \LUAMETATEX\ we have alternative primitives that
+assume forward scanning, as if the numerator and denominator are arguments. The
+engine also supports skewed (vulgar) fractions natively where numerator and
+denominator are raised and lowered relative to the (often) slash. Many aspects
+of the rendering can be tuned in the so called font goodie files, which is also
+the place where we define the additional font parameters.
+
+\stopsubject
+
+\startsubject[title=Atom spacing]
+
+If you are familiar with traditional \TEX\ you know that there is some build in
+\type {ordbin} spacing. But there is no such pair for a fraction and a relation,
+simply because there is no fraction class. However, in \LUAMETATEX\ there is one,
+and we'd better set it up if we zero the margins of a fraction.
+
+It is worth noticing that fractions are sort of special anyway. The official
+syntax is \type {n \over m} and numerator and denominator can be sub formulas.
+This is the one case where the parser sort of has to look back, which is tricky
+because the machinery is a forward looking one. Therefore, in order to get the
+expected styling (or avoid unexpected side effects) one will normally wrap all in
+braces as in: \type {{ {n} \over {m} }} which of course kind defeats the simple
+syntax which probably is supported for \type {1\over2} kind of usage, so a next
+challenge is to make \type {1/2} come out right. All this means that in practice
+we have wrappers like \type {\frac} which accidentally in \LUAMETATEX\ can be
+defined using forward looking primitives with plenty extra properties driven by
+keywords. It also means that fractions as expected by the engine due to wrapping
+actually can be a different kind of atom, which can have puzzling side effects
+with respect to spacing (because the remapping happens unseen).
+
+Interesting is that adapting \LUAMETATEX\ to a more extensive model was quite
+doable, also because the code base had already be made more configurable. Of
+course it involved quite a bit of tedious editing and throwing out already nice
+and clean code that had taken some effort, but that's the way it is. Of course
+more classes also means that some storage properties had to be adapted within the
+available space but by sacrificing families that was possible. With 64 potential
+classes we now are back to 64 families compared to 7 classes and 256 families in
+\LUATEX\ and 7 classes and 16 families in traditional \TEX.
+
+Also interesting is that the new implementation is actually somewhat simpler and
+therefore the binary is a tad smaller too. But does all that mean that there were
+no pitfalls? Sure there were! It is worth noticing that doing all this reminded
+me of the early days of \LUATEX\ development, where Taco and I exchanged binaries
+and \TEX\ code in a more or less constant way using Skype. For \LUAMETATEX\ we
+used good old mail for files and Mojca's build farm for binaries and Mikael and I
+spent many month exchanging information and testing out alternatives on a daily
+basis: it is in my opinion the only way to do this and it's fun too. It has been
+a lot of work but once we got going there was nothing that could stop us. A side
+effect was that there were no updates during this period, which was something
+users noticed.
+
+In the spacing matrix there is \type {inner} and internally there's also some
+care to be taken of \type {vcenter}. The \type {inner} class is actually shared
+with the \type {variable} class which is not so much a real class but more a
+signal to the engine that when an alphabetic or numeric character is included that
+it has to come from a specific family: upright family zero or math italic family
+one in traditional speak. But, what if we don't have that setup? Well, then one
+has to make sure that this special class number is not associated (which is no
+big deal). It does mean that when we extend the repertoire of classes we
+cannot use slot seven. Always keep in mind that classes (and thereby signals) get
+assigned to characters (some defaults by the engine, others by the macro
+package). It is why in \CONTEXT\ we use abstract class numbers, just in case the
+engine gets adapted.
+
+We also cannot use slot eight because that one is a signal too: for a possible
+active math character, a feature somewhat complicated by the fact that it should
+not interfere with passing around such active characters in arguments. In math
+mode where we have lots of macros passing around content, this special class works
+around these side effects. We don't need this feature in \CONTEXT\ because
+contrary to other macro packages we don't handle primes, pseudo superscripts
+potentially followed by other super and subscripts by making the \type {'} an
+active character and thereby a macro in math mode. This trickery again closely
+relates to preferable input, font properties, and limitations of memory and such
+at the time \TEX\ showed up (much has to fit into 8, 16 or 32 bits, so there is
+not much room for e.g.\ more than 8 classes). Since we started with \MKIV\ the way
+math is dealt with is a bit different than normally done in \TEX\ anyway.
+
+\stopsubject
+
+\startsubject[title=Atom rules]
+
+We can now control the spacing between every atom but unfortunately that is not
+good enough. Therefore, we arrive at yet another feature built into the engine:
+turning classes into other classes depending on neighbors. And this is precisely
+why we have certain classes. Let's quote \quotation {\TEX\ by Topic}: {\em The
+cases \type {*} (in the atom spacing matrix) cannot occur, because a \type {bin}
+object is converted to \type {ord} if it is the first in the list, preceded by
+\type {bin}, \type {op}, \type {open}, \type {punct}, \type {rel}, or followed by
+\type{close}, \type {punct}, or \type {rel}; also, a \type{rel} is converted to
+\type{ord} when it is followed by \type {close} or \type {punct}.}
+
+We can of course keep these hard coded heuristics but can as well make that bit
+of code configurable, which we did. Below is demonstrated how one can set up the
+defaults at the \TEX\ end. We use symbolic names for the classes.
+
+\starttyping
+\setmathatomrule \mathbegincode \mathbinarycode % old
+ \allmathstyles \mathordinarycode \mathordinarycode % new
+
+\setmathatomrule \mathbinarycode \mathbinarycode
+ \allmathstyles \mathbinarycode \mathordinarycode
+\setmathatomrule \mathoperatorcode \mathbinarycode
+ \allmathstyles \mathoperatorcode \mathordinarycode
+\setmathatomrule \mathopencode \mathbinarycode
+ \allmathstyles \mathopencode \mathordinarycode
+\setmathatomrule \mathpunctuationcode \mathbinarycode
+ \allmathstyles \mathpunctuationcode \mathordinarycode
+\setmathatomrule \mathrelationcode \mathbinarycode
+ \allmathstyles \mathrelationcode \mathordinarycode
+
+\setmathatomrule \mathbinarycode \mathclosecode
+ \allmathstyles \mathordinarycode \mathclosecode
+\setmathatomrule \mathbinarycode \mathpunctuationcode
+ \allmathstyles \mathordinarycode \mathpunctuationcode
+\setmathatomrule \mathbinarycode \mathrelationcode
+ \allmathstyles \mathordinarycode \mathrelationcode
+
+\setmathatomrule \mathrelationcode \mathclosecode
+ \allmathstyles \mathordinarycode \mathclosecode
+\setmathatomrule \mathrelationcode \mathpunctuationcode
+ \allmathstyles \mathordinarycode \mathpunctuationcode
+\stoptyping
+
+Watch the special class with \type {\mathbegincode}. This is actually class 62 so
+you don't need much fantasy to imagine that class 63 is \type {\mathendcode}, but
+that one is not yet used. In a similar fashion we can initialize the spacing
+itself: \footnote {Constant, engine specific, numbers like these are available in
+tables at the \LUA\ end so we can change them and users can check that.}
+
+\starttyping
+\setmathspacing \mathordcode \mathopcode \allmathstyles \thinmuskip
+\setmathspacing \mathordcode \mathbincode \allsplitstyles \medmuskip
+\setmathspacing \mathordcode \mathrelcode \allsplitstyles \thickmuskip
+\setmathspacing \mathordcode \mathinnercode \allsplitstyles \thinmuskip
+
+\setmathspacing \mathopcode \mathordcode \allmathstyles \thinmuskip
+\setmathspacing \mathopcode \mathopcode \allmathstyles \thinmuskip
+\setmathspacing \mathopcode \mathrelcode \allsplitstyles \thickmuskip
+\setmathspacing \mathopcode \mathinnercode \allsplitstyles \thinmuskip
+
+\setmathspacing \mathbincode \mathordcode \allsplitstyles \medmuskip
+\setmathspacing \mathbincode \mathopcode \allsplitstyles \medmuskip
+\setmathspacing \mathbincode \mathopencode \allsplitstyles \medmuskip
+\setmathspacing \mathbincode \mathinnercode \allsplitstyles \medmuskip
+
+\setmathspacing \mathrelcode \mathordcode \allsplitstyles \thickmuskip
+\setmathspacing \mathrelcode \mathopcode \allsplitstyles \thickmuskip
+\setmathspacing \mathrelcode \mathopencode \allsplitstyles \thickmuskip
+\setmathspacing \mathrelcode \mathinnercode \allsplitstyles \thickmuskip
+
+\setmathspacing \mathclosecode \mathopcode \allmathstyles \thinmuskip
+\setmathspacing \mathclosecode \mathbincode \allsplitstyles \medmuskip
+\setmathspacing \mathclosecode \mathrelcode \allsplitstyles \thickmuskip
+\setmathspacing \mathclosecode \mathinnercode \allsplitstyles \thinmuskip
+
+\setmathspacing \mathpunctcode \mathordcode \allsplitstyles \thinmuskip
+\setmathspacing \mathpunctcode \mathopcode \allsplitstyles \thinmuskip
+\setmathspacing \mathpunctcode \mathrelcode \allsplitstyles \thinmuskip
+\setmathspacing \mathpunctcode \mathopencode \allsplitstyles \thinmuskip
+\setmathspacing \mathpunctcode \mathclosecode \allsplitstyles \thinmuskip
+\setmathspacing \mathpunctcode \mathpunctcode \allsplitstyles \thinmuskip
+\setmathspacing \mathpunctcode \mathinnercode \allsplitstyles \thinmuskip
+
+\setmathspacing \mathinnercode \mathordcode \allsplitstyles \thinmuskip
+\setmathspacing \mathinnercode \mathopcode \allmathstyles \thinmuskip
+\setmathspacing \mathinnercode \mathbincode \allsplitstyles \medmuskip
+\setmathspacing \mathinnercode \mathrelcode \allsplitstyles \thickmuskip
+\setmathspacing \mathinnercode \mathopencode \allsplitstyles \thinmuskip
+\setmathspacing \mathinnercode \mathpunctcode \allsplitstyles \thinmuskip
+\setmathspacing \mathinnercode \mathinnercode \allsplitstyles \thinmuskip
+\stoptyping
+
+And because we have a few more atom classes this also needs to happen:
+
+\starttyping[style=\tt]
+\letmathspacing \mathactivecode \mathordinarycode
+\letmathspacing \mathvariablecode \mathordinarycode
+\letmathspacing \mathovercode \mathordinarycode
+\letmathspacing \mathundercode \mathordinarycode
+\letmathspacing \mathfractioncode \mathordinarycode
+\letmathspacing \mathradicalcode \mathordinarycode
+\letmathspacing \mathmiddlecode \mathopencode
+\letmathspacing \mathaccentcode \mathordinarycode
+
+\letmathatomrule \mathactivecode \mathordinarycode
+\letmathatomrule \mathvariablecode \mathordinarycode
+\letmathatomrule \mathovercode \mathordinarycode
+\letmathatomrule \mathundercode \mathordinarycode
+\letmathatomrule \mathfractioncode \mathordinarycode
+\letmathatomrule \mathradicalcode \mathordinarycode
+\letmathatomrule \mathmiddlecode \mathopencode
+\letmathatomrule \mathaccentcode \mathordinarycode
+\stoptyping
+
+With \type {\resetmathspacing} we get an all|-|zero state but that might become
+more refined in the future. What is not clear from the above is that there is
+also an inheritance mechanism. The three special muskip registers are actually
+shortcuts so that changing the register value is reflected in the spacing. When a
+regular muskip value is (verbose or as register) that value is sort of frozen.
+However, the \type {\inherited} prefix will turn references to registers and
+constants into a delayed value: as with the predefined we now have a more dynamic
+behavior which means that we can for instance use reserved muskip registers as we
+can use the predefined. A bonus is that one can also use regular glue or
+dimensions, just in case one wants the same spacing in all styles (a muskip
+adapts to the size).
+
+When you look at all the above you might wonder how users are supposed to deal
+with math spacing. The answer is that often they can just assume that \TEX\ does
+the right thing. If something somehow doesn't feel right, looking at solutions by
+others will probably lead a new user to just copy a trick, like injecting a \type
+{\thinmuskip}. But it can be that atoms depend on the already applied (or not)
+spacing, which in turn depends on values in the atom spacing matrix that probably
+only a few users have seen. So, in the end it all boils down to trust in the
+engine and one's eyesight combined with hopefully some consistency in adding
+space directives and often with \TEX\ it is consistency that makes documents look
+right. In \CONTEXT\ we have many more classes even if only a few characters fit in,
+like differential, exponential and imaginary.
+
+\stopsubject
+
+\startsubject[title=Fractions again]
+
+We now return to the fraction molecule. With the mechanisms at our disposal we
+can change the fixed margins to more adaptive ones:
+
+\starttyping
+\inherited\setmathspacing \mathbinarycode \mathfractioncode
+ \allmathstyles \thickermuskip
+\inherited\setmathspacing \mathfractioncode \mathbinarycode
+ \allmathstyles \thickermuskip
+\nulldelimiterspace\zeropoint
+$x + \frac{1}{x+2} + x$
+\stoptyping
+
+Here \typ {\thickermuskip} is defined as \type {7mu plus 5mu} where the stretch
+is the same as a \typ {\thickmuskip} and the width \type {2mu} more. We start out
+with three variants, where the last two have \typ {\nulldelimiterspace} set to
+\type {0pt} and the first one uses the \type {1.2pt}.
+
+\definecolor[tred] [r=1,a=1,t=.5]
+\definecolor[tgreen][g=1,a=1,t=.5]
+\definecolor[tblue] [b=1,a=1,t=.5]
+
+\startlinecorrection
+\scale[scale=4000]\bgroup\vbox\bgroup \forgetall
+ \bgroup \tgreen \nulldelimiterspace=1.2pt $x + \frac{1}{x+2} + x$\egroup\par
+ \bgroup \tred \nulldelimiterspace=0.0pt $x + \frac{1}{x+2} + x$\egroup\par
+ \bgroup \tblue \nulldelimiterspace=0.0pt $x + \frac{1}{x+2} + x$\egroup\par
+\egroup\egroup
+\stoplinecorrection
+
+When we now apply the new settings to the last one, and overlay them we get the
+following output: the first and last case are rather similar which is why this
+effort was started in the first place.
+
+\startlinecorrection
+\scale[scale=4000]\bgroup
+ \startoverlay
+ \bgroup
+ \inherited\setmathspacing \mathbinarycode \mathfractioncode \allmathstyles \thickmuskip
+ \inherited\setmathspacing \mathfractioncode \mathbinarycode \allmathstyles \thickmuskip
+ \tgreen \nulldelimiterspace=1.2pt $x + \frac{1}{x+2} + x$
+ \egroup
+ \bgroup
+ \inherited\setmathspacing \mathbinarycode \mathfractioncode \allmathstyles \thickmuskip
+ \inherited\setmathspacing \mathfractioncode \mathbinarycode \allmathstyles \thickmuskip
+ \tred \nulldelimiterspace=0.0pt $x + \frac{1}{x+2} + x$
+ \egroup
+ \bgroup
+ \inherited\setmathspacing \mathbinarycode \mathfractioncode \allmathstyles \thickermuskip
+ \inherited\setmathspacing \mathfractioncode \mathbinarycode \allmathstyles \thickermuskip
+ \tblue \nulldelimiterspace=0.0pt $x + \frac{1}{x+2} + x$
+ \egroup
+ \stopoverlay
+\egroup
+\stoplinecorrection
+
+Of course this kind of changes are not upward compatible but as they are tiny
+they are not that likely to change the number of lines in a paragraph. In display
+mode changes in horizontal dimensions also hav elittle effect.
+
+\startsubject[title=Penalties]
+
+An inline formula can be broken across lines, and for sure there are places where
+you don't want to break or prefer to break. In \TEX\ line breaks can be
+influenced by using penalties. At the outer level of an inline math formula, we
+can have a specific penalty before and after a binary and|/|or relation. The
+defaults are such that there are no penalties set, but most macro packages set
+the so called \type {\relpenalty} and \type {\binoppenalty} (the \type {op} in
+this name does not relate to the operator class) so a value between zero and
+1000. In \LUATEX\ we also have \type{\pre} variants of these, so we have four
+penalties that can be set, but that is not enough in our new approach.
+
+These penalties are class bound and don't relate to styles, like atom spacing
+does. That means that while atom spacing involves $64 \times 64 \times 8$
+potential values, an amount that we can manage by using the discussed
+inheritance. The inheritance takes less values because which store 4 style values
+per class in one number. For penalties we only need to keep $64 \times 2$ in
+mind, plus a range of inheritance numbers. Therefore it was decided to also
+generalize penalties so that each class can have them. The magic commands are
+shown with some useless examples:
+
+\starttyping
+\letmathparent \mathdigitcode
+ \mathbincode % pre penalty
+ \mathbincode % post penalty
+ \mathdigitcode % options
+ \mathdigitcode % reserved
+\stoptyping
+
+By default the penalties are on their own, like:
+
+\starttyping
+\letmathparent \mathdigitcode
+ \mathdigitcode % pre penalty
+ \mathdigitcode % post penalty
+ \mathdigitcode % options
+ \mathdigitcode % reserved
+\stoptyping
+
+The options and reserved parent mapping are not (yet) discussed here. Unless
+values are assigned they are ignored.
+
+\starttyping
+\setmathprepenalty \mathordcode 100
+\setmathpostpenalty \mathordcode 600
+\setmathprepenalty \mathbincode 200
+\setmathpostpenalty \mathbincode 700
+\setmathprepenalty \mathrelcode 300
+\setmathpostpenalty \mathrelcode 800
+\stoptyping
+
+As with spacing, when there is no known value, the parent will be consulted. An unset
+penalty has a value of 10000.
+
+After discussing the implications of inline math crossing lines, Mikael and I
+decided that there can be two solutions. Both can of course be implemented in
+\LUA, but on the other hand, they make good extensions, also because it sort of
+standardized it. The first advanced control feature tweaks penalties:
+
+\starttyping
+\mathforwardpenalties 2 200 100
+\mathbackwardpenalties 2 100 50
+\stoptyping
+
+This will add 200 and 100 to the first two math related penalties, and 100 and 50
+to the last two (watch out: the 100 will be assigned to the last found one, the
+50 to the one before it). As with all things penalty and line break related, you
+need to have some awareness of how non|-|linear the badness calculation is as
+well of the fact that the tolerance and stretch related parameters play a role
+here.
+
+The second tweak is setting \type {\maththreshold} to some value. When set to for
+instance \type {40pt}, formulas that take less space than this will be wrapped in
+a \type {\hbox} and thereby will never break across a page. \footnote {A future
+version might inject severe penalties instead, time will learn.} Actually that
+second tweak has a variant so we have three tweaks! Say that we have this sample
+formula wrapped in some bogus text and repeat that snippet a lot of times:
+
+\startbuffer[demo]
+x xx xxx xxxx $1 + x$ x xx xxx xxxx
+\stopbuffer
+
+\typebuffer[demo]
+
+Now look at the example on the next page. You will notice that the red and blue
+text have different line breaks. This is because we have given the threshold some
+stretch and shrink. The red text has a zero threshold so it doesn't do any magic
+at all, while the second has this setup:
+
+\startbuffer
+\setupmathematics[threshold=medium]
+\stopbuffer
+
+That setting set the threshold to \typ {4em plus 0.75em minus 0.50em} and when
+the formula size exceeds the four quads the line break code will use the real
+formula width but with the given stretch and shrink. Eventually the calculated
+size will be used to repackage the formula. In the future we will also provide a
+way to define slack more relative to the size and|/|or number of atoms.
+
+\startpostponing
+\startlinecorrection \small
+\startoverlay
+ {\setupmathematics[threshold=none]%
+ \vbox\bgroup
+ \darkred
+ \dorecurse {40} {\getbuffer[demo]}
+ \egroup}
+ {\setupmathematics[threshold=medium]%
+ \vbox\bgroup
+ \darkblue
+ \dorecurse {40} {\getbuffer[demo]}
+ \egroup}
+\stopoverlay
+\stoplinecorrection
+\stoppostponing
+
+Another way to influence line breaks is to use the two inline math related
+penalties that have been added at Mikael's suggestion:
+
+\startbuffer \setupalign[verytolerant]
+{\dorecurse{25}{test $\darkred #1^{#1} + x_{#1}^{#1}$ test }\blank}
+{\preinlinepenalty 500 \postinlinepenalty -500
+ \dorecurse{25}{test $\darkgreen #1^{#1} + x_{#1}^{#1}$ test }\blank}
+{\postinlinepenalty 500 \preinlinepenalty -500
+ \dorecurse{25}{test $\darkblue #1^{#1} + x_{#1}^{#1}$ test }\blank}
+\stopbuffer
+
+\typebuffer
+
+To get an example that shows the effect takes a bit of trial and error because
+\TEX\ does a very good job in line breaking. This is why we've set the tolerance
+and also use negative penalties.
+
+In addition to the \type {\mathsurround} (kern) and \type {\mathsurroundskip}
+(glue) parameters this is a property of the nodes that mark the beginning and end
+of an inline math formula.
+
+\blank \getbuffer \blank
+
+\stopsubject
+
+\startsubject[title=Flattening]
+
+The traditional engine has some code for flattening math constructs that in the
+end are just one character. So in the end, \type {\tilde {u}} and \type {\tilde
+{uu}} become different objects even if both are in fact accents. In fact, when an
+accent is constructed there is a special code path for single characters so that
+script placement adapts to the shape of that character.
+
+However because of interaction with primes, which themselves are sort of
+superscripts and due to the somewhat weird way fonts provide them when it comes
+to positioning and sizes, in \CONTEXT\ we already are fooling around a bit with
+these characters. For understandable reasons of memory usage, complexity and
+eightbitness primes are not a native \TEX\ thing but more something that is
+handled at the macro level (although not in \MKIV\ and \LMTX).
+
+In the end it was script placements on (widely) accented math characters that
+made us introduced a dedicated \type {\Umathprime} primitive that adds a prime to
+a math atom. It permits an uninterupted treatment of scripts while in the final
+assembly of the molecule the prime, superscript, subscript and maybe even
+prescripts that prime gets squeezed in. Because the concept of primes is missing
+in \OPENTYPE\ math an additional font parameter \type {PrimeTopRaisePercent} has
+been introduced as well as an \type {\Umathprimeraise} primitive. In retrospect I
+should have done that earlier but one tends to stick to the original as much as
+possible. However, at some point Mikael and I reached a state where we decided
+that proper (clean) engine extensions make way more sense than struggling with
+border cases and explaining users why things are so complicated.
+
+The input \type {$ X \Uprimescript{'} ^2 _3 $} gives this:
+
+\startlinecorrection
+\startcombination[nx=4,distance=3em,inbetween={\blank[3*medium]}]
+ {\switchtobodyfont [modern]\removeunwantedspaces\scale[s=5]{\strut$\showboxes\showglyphs X\Uprimescript{'}^2_3$}} {Latin Modern}
+ {\switchtobodyfont[cambria]\removeunwantedspaces\scale[s=5]{\strut$\showboxes\showglyphs X\Uprimescript{'}^2_3$}} {Cambria}
+ {\switchtobodyfont[pagella]\removeunwantedspaces\scale[s=5]{\strut$\showboxes\showglyphs X\Uprimescript{'}^2_3$}} {Pagella}
+ {\switchtobodyfont [dejavu]\removeunwantedspaces\scale[s=5]{\strut$\showboxes\showglyphs X\Uprimescript{'}^2_3$}} {Dejavu}
+\stopcombination
+\stoplinecorrection
+
+With \type {\tracingmath = 1} this nicely traces as:
+
+\starttyping
+> \inlinemath=
+\mathord
+.\nucleus
+..\mathchar (fam="0,char="58)
+.\superscript
+..\mathchar (fam="0,char="32)
+.\subscript
+..\mathchar (fam="0,char="32)
+.\primescript
+..\mathchar (fam="0,char="27)
+\stoptyping
+
+Of course this feature scan also be used for other prime like ornaments and who
+knows how it will evolve over time.
+
+You can influence the positioning with \type {\Umathprimesupshift} which adds
+some kern between a prime and superscript. The \type {\Umathextraprimeshift}
+moves a prime up. The \type {\Umathprimeraise} is a font parameter that defaults
+to 25 which means a raise of 25\percent of the height. These are all (still)
+experimental parameters.
+
+\stopsubject
+
+\startsubject[title=Fences]
+
+Fences can be good for headaches. Because the math that I (or actually my
+colleague) deal with is mostly school math encoded in presentation \MATHML\ (sort
+or predictable) or some form of sequential \ASCII\ based input (often rather
+messy and therefore unpredictable due to ambiguity) fences are a pain. A \TEX ie
+can make sure that left and right fenced are matched. A \TEX ie also knows when
+something is an inline parenthesis or when a more high level structure is needed,
+for instance when parentheses have to scale with what they wrap. In that case the
+\type {\left} and \type {\right} mechanism is used. In arbitrary input missing
+one of those is fatal. Therefore, handling of fences in \CONTEXT\ is one of the
+more complex sub mechanisms: we not only need to scale when needed, but also
+catch asymmetrical usage.
+
+A side effect of the encapsulating fencing construct is that it wraps the content
+in a so called inner (as in \type {\mathinner}) which means that we get a box,
+and it is a well known property of boxes that they don't break across lines. With
+respect to fences, a way out is to not really fence content, but do something
+like this:
+
+\starttyping
+\left(\strut\right. x + 1 \left.\strut\right)
+\stoptyping
+
+and hope for the best. Both pairs are coupled in the sense that their sizes will
+match and the strut is what determines the size. So, as long as there is a proper
+match of struts all is well, but it is definitely a decent hack. The drawback is
+in the size of the strut: if a formula needs a higher one, larger struts have to
+be used. This is why in plain \TEX\ we have these commands:
+
+\starttyping[style=\small\tt]
+\def\bigl {\mathopen \big } \def\bigm {\mathrel\big } \def\bigr {\mathclose\big }
+\def\Bigl {\mathopen \Big } \def\Bigm {\mathrel\Big } \def\Bigr {\mathclose\Big }
+\def\biggl{\mathopen \bigg} \def\biggm{\mathrel\bigg} \def\biggr{\mathclose\bigg}
+\def\Biggl{\mathopen \Bigg} \def\Biggm{\mathrel\Bigg} \def\Biggr{\mathclose\Bigg}
+
+\def\big #1{{\hbox{$\left#1\vbox to 8.5pt{}\right.\nomathspacing$}}}
+\def\Big #1{{\hbox{$\left#1\vbox to 11.5pt{}\right.\nomathspacing$}}}
+\def\bigg#1{{\hbox{$\left#1\vbox to 14.5pt{}\right.\nomathspacing$}}}
+\def\Bigg#1{{\hbox{$\left#1\vbox to 17.5pt{}\right.\nomathspacing$}}}
+
+\def\nomathspacing{\nulldelimiterspace0pt\mathsurround0pt} % renamed
+\stoptyping
+
+The middle is kind of interesting because it has relation properties, while the
+\type {\middle} introduced in \ETEX\ got open properties, but we leave that
+aside.
+
+In \CONTEXT\ we have plenty of alternatives, including these commands, but they
+are defined differently. For instance they adapt to the font size. The hard coded
+point sizes in the plain \TEX\ code relates to the font and steps available in
+there (either by next larger or by extensible). The values thereby need to be
+adapted to the chosen body font as well as the body font size. In \MKIV\ and even
+better in \LMTX\ we can actually consult the font and get more specific sizes.
+
+But, this section is not about how to get these fixed sizes. Actually, the need
+to choose explicitly is not what we want, especially because \TEX\ can size
+delimiters so well. So, take this code snippet:
+
+\startbuffer
+$ x = \left( \dorecurse{40}{\frac{x}{x+#1} +} x \right) $
+\stopbuffer
+
+\typebuffer
+
+% \dostepwiserecurse{0}{25}{1}{
+% \begingroup \showmakeup[mathglue] \showglyphs
+% \advance\hsize-#1pt\relax \inleftmargin{#1pt}%
+% $ x = \left( \dorecurse{20}{\frac{x}{x+##1} +} x \right) $
+% \blank \endgroup
+% }
+When we typeset this inline, as in \inlinebuffer, we get nicely scaled fences but
+in a way that permits line breaks. The reason is that the engine has been
+extended with a \type {fenced} class so that we can recognize later on,
+when \TEX\ comes to injecting spaces and penalties, that we need to unpack the
+construct. It is another beneficial side effect of the generalization.
+
+The Plain \TEX\ code can be used to illustrate some of what we discussed before
+about fractions. In the next code we use excessive delimiter spacing:
+
+\starttyping
+\def\Bigg#1{% watch the wrapping in a box
+ {%
+ \hbox {%
+ $\normalleft#1\vbox to 17.5pt{}\normalright.\nomathspacing$%
+ }%
+ }%
+}
+
+\nulldelimiterspace0pt
+\def\nomathspacing{\nulldelimiterspace0pt\mathsurround0pt}
+
+$\Bigg( 1 + x\Bigg) \quad \Bigg( \frac{1}{x}\Bigg)$\par
+
+\nulldelimiterspace10pt
+\def\nomathspacing{\nulldelimiterspace0pt\mathsurround0pt}
+
+$\Bigg( 1 + x\Bigg) \quad \Bigg( \frac{1}{x}\Bigg)$\par
+
+\nulldelimiterspace10pt
+\def\nomathspacing{\mathsurround0pt}
+
+$\Bigg( 1 + x\Bigg) \quad \Bigg( \frac{1}{x}\Bigg)$\par
+\stoptyping
+
+This renders as follows. We explicitly set \type {\nulldelimiterspace} to values
+because in \CONTEXT\ it is now zero by default.
+
+\startlinecorrection
+ \pushoverloadmode
+ \def\Bigg#1{{\hbox{$\normalleft#1\vbox to 17.5pt{}\normalright.\nomathspacing$}}}
+ \popoverloadmode
+ \startcombination[nx=3,ny=1,distance=3em]
+ {\showboxes
+ \nulldelimiterspace0pt
+ \def\nomathspacing{\nulldelimiterspace0pt\mathsurround0pt}
+ $\Bigg( 1 + x\Bigg) \quad \Bigg( \frac{1}{x}\Bigg)$}
+ {\tttf 0pt with reset at end}
+ {\showboxes
+ \nulldelimiterspace10pt
+ \def\nomathspacing{\nulldelimiterspace0pt\mathsurround0pt}
+ $\Bigg( 1 + x\Bigg) \quad \Bigg( \frac{1}{x}\Bigg)$}
+ {\tttf 10pt with reset at end}
+ {\showboxes
+ \nulldelimiterspace10pt
+ \def\nomathspacing{\mathsurround0pt}
+ $\Bigg( 1 + x\Bigg) \quad \Bigg( \frac{1}{x}\Bigg)$}
+ {\tttf 10pt without reset at end}
+ \stopcombination
+\stoplinecorrection
+
+\stopsubject
+
+\startsubject[title=Radicals]
+
+In traditional \TEX\ a radical with degree is defined as macro. That macro does
+some measurements and typesets the result in four sizes for a choice. The macro
+typesets the degree in a box that contains the degree as formula. There is a
+little guesswork going on than with respect to how the radical symbol is shaped
+but as we're talking plain \TEX\ here it works out okay because the default font
+is well known.
+
+Radicals are a nice example of a two dimensional \quote {extender} but only the
+vertical dimension uses the extension mechanism, which itself operates either
+horizontally or vertically, although in principle it could both ways. The
+horizontal extension is a rule and the fact that the shape is below the baseline
+(as are other large symbols) will make the rule connect well: the radical shape
+sticks out a little, so one can think of the height reflecting the rule height.
+\footnote {When you zoom in you will notice that this is of not always optimal
+because of the way the slope touched the rule.} In \OPENTYPE\ fonts there is a
+parameter and in \LUATEX\ we use the default rule thickness for traditional
+fonts, which is correct for Latin Modern. There are more places in the fonts
+where the design relates to this thickness, for instance fraction rules are
+supposed to match the minus, but this is a bit erratic if you compare fonts. This
+is one of the corrections we apply in the goodie files.
+
+In \OPENTYPE\ the specification of the radical also includes spacing properties
+of the degree and that is why we have a primitive in \LUATEX\ that also handles
+the degree. It is what we used in \CONTEXT\ \MKIV. But \unknown\ we actually end
+up with a situation that compares to the already discussed fraction: there is
+space added before a radical when there is a degree. However, because we now have
+a radical atom class, we can avoid using that one and use the new pairwise
+spacing. Some fuzzy spacing logic in the engine could therefore be removed and we
+assume that \type {\Umathradicaldegreebefore} is zero. For the record: the \type
+{\Umathradicaldegreeafter} sort of tells how much space there is above the low
+part of the root, which means that we can compensate for multi|-|digit degrees.
+
+Zeroing a parameter is something that relates to a font which means that it has
+to happen for each math font which in turn can mean a family|-|style combination. In
+order to avoid that complication (or better: to avoid tracing clutter) we have a
+way to disable a parameter:
+
+\startbuffer
+\ruledhbox{$x + \sqrt[123]{b}^1_2$}
+\ruledhbox{$x + \sqrt[12] {b}^1_2$}
+\ruledhbox{$x + \sqrt[1] {b}^1_2$}
+\ruledhbox{$x + \sqrt {b}^1_2$}
+\stopbuffer
+
+\typebuffer
+
+\startlinecorrection
+\startcombination[1*4]
+ {\switchtobodyfont[modern]\scale[height=10mm]{\showglyphs\setmathignore\Umathradicaldegreebefore0\getbuffer}}{}
+ {\type {\setmathignore \Umathradicaldegreebefore 0}}{}
+ {\switchtobodyfont[modern]\scale[height=10mm]{\showglyphs\setmathignore\Umathradicaldegreebefore1\getbuffer}}{}
+ {\type {\setmathignore \Umathradicaldegreebefore 1}}{Latin Modern}
+\stopcombination
+\stoplinecorrection
+
+One problem with these spacing parameters is that they are inconsistent across
+fonts. The Latin Modern has a rather large space before the degree, while Cambria
+and Pagella have little. That means that when you prototype a mechanism the
+chosen solution can look great but not so much when at some point you use another
+font.
+
+\startlinecorrection
+\startcombination[1*4]
+ {\switchtobodyfont[pagella]\scale[height=10mm]{\showglyphs\setmathignore\Umathradicaldegreebefore0\getbuffer}}{}
+ {\type {\setmathignore \Umathradicaldegreebefore 0}}{}
+ {\switchtobodyfont[pagella]\scale[height=10mm]{\showglyphs\setmathignore\Umathradicaldegreebefore1\getbuffer}}{}
+ {\type {\setmathignore \Umathradicaldegreebefore 1}}{Cambria}
+\stopcombination
+\stoplinecorrection
+
+\stopsubject
+
+\startsubject[title=More fences]
+
+One of the reasons why the \MKII\ and \MKIV\ fence related mechanism is somewhat
+complex is that we want a clean solution for filtering fences like parenthesis by
+size, something that in the traditional happens via a fake fence pair that
+encapsulates a strut of a certain size. In \LMTX\ we use the same approach but
+have made the sequence more configurable. In practice that means that the values
+1 upto 4 are just that but for some fonts we use the sequence \type {1 3 5 7}.
+There was no need to adapt the engine as it already worked quite well.
+
+\stopsubject
+
+\startsubject[title=Integrals]
+
+The Latin Modern fonts have only one size of big operators and one reason can be
+that there is no need for more. Another reason can be that there was just no
+space in the font. However, an \OPENTYPE\ font has plenty slots available and the
+reference font Cambria has integral signs in sizes as well as extensibles.
+
+In \LUATEX\ we already have generic vertical extensibles but that only works well
+with specified sizes. And, cheating with delimiters has the side effect that we
+get the wrong spacing. In \LUAMETATEX\ however we have ways to adapt the size to
+what came or what comes. In fact, it is a mechanism that is available for any atom
+that we support. However, it doesn't play well with script and this whole \type {\limits}
+and \type {\nolimits} is a bit clumsy so Mikael and I decided that different route had
+to be followed. For adaptive large operators we provide this interface:
+
+\startbuffer[sample-1]
+$ x + \integral [color=darkred,top={t},bottom={b}] {\frac{1}{x}} = 10 $
+\stopbuffer
+
+\startbuffer[sample-2]
+$ x + \startintegral [color=darkblue,top={t},bottom={b}]
+ \frac{1}{x}
+\stopintegral = 10 $
+\stopbuffer
+
+\startbuffer[sample-3]
+$ x + \startintegral [color=darkgreen,top={t},bottom={b},method=vertical]
+ \frac{1}{x}
+\stopintegral= 10 $
+\stopbuffer
+
+\typebuffer [sample-1,sample-2,sample-3]
+
+This text is not about the user interface so we won't discuss how to define additional
+large operators using one|-|liners.
+
+\startlinecorrection
+\startcombination[nx=3,ny=1,distance=2em]
+ {\scale[s=2]{\getbuffer[sample-1]}} {}
+ {\scale[s=2]{\getbuffer[sample-2]}} {}
+ {\scale[s=2]{\getbuffer[sample-3]}} {}
+\stopcombination
+\stoplinecorrection
+
+The low level \LUAMETATEX\ implementation handles this input:
+
+\starttyping
+\Uoperator \Udelimiter "0 \fam "222B {top} {bottom} {...}
+\Uoperator limits \Udelimiter "0 \fam "222B {top} {bottom} {...}
+\Uoperator nolimits \Udelimiter "0 \fam "222B {top} {bottom} {...}
+\stoptyping
+
+plus the usual keywords that fenced accept, because after all, this is just a
+special case of fencing.
+
+Currently these special left operators are implemented as a special case of
+fences because that mechanism does the scaling. It means that we need a (bogus)
+right fence, or need to brace the content (basically create an atom). When no
+right fence is found one is added automatically. Because there is no real
+fencing, right fences are removed when processing takes place. When you specify a
+\type {class} that one will be used for the left and right spacing, otherwise we
+have open|/|close spacing.
+
+\stopsubject
+
+\startsubject[title=Going details]
+
+When the next feature was explored Mikael tagged it as math micro typography and
+the reason is that you need not only to set up the engine for it but also need to
+be aware of this kind of spacing. Because we wanted to get rid of this script spacing
+that the font imposes we configured \CONTEXT\ with:
+
+\starttyping
+\setmathignore\Umathspacebeforescript\plusone
+\setmathignore\Umathspaceafterscript \plusone
+\stoptyping
+
+This basically nils all these tiny spaces. But the latest configuration has this
+instead:
+
+\starttyping
+% \setmathignore \Umathspacebeforescript\zerocount % default
+% \setmathignore \Umathspaceafterscript \zerocount % default
+
+\mathslackmode \plusone
+
+\setmathoptions\mathopcode \plusthree
+\setmathoptions\mathbinarycode \plusthree
+\setmathoptions\mathrelationcode\plusthree
+\setmathoptions\mathopencode \plusthree
+\setmathoptions\mathclosecode \plusthree
+\setmathoptions\mathpunctcode \plusthree
+\stoptyping
+
+This tells the engine to convert these spaces into what we call slack: disposable
+kerns at the edges. But it also converts these kerns into a glue component when
+possible. As with all these extensions it complicates the machinery but users
+will never see that. Now, the last six lines do the magic that made us return to
+honoring the spaces: we can tell the engine to ignore this slack when there are
+specific classes at the edges. These options are a bitset and \type {1} means
+\quotation {no slack left} and \type {2} means \quotation {no slack right} so
+\type {3} sets both.
+
+\startbuffer
+\def\TestSlack#1%
+ {\vbox\bgroup
+ \mathslackmode\zerocount
+ \hbox\bgroup
+ \setmathignore\Umathspacebeforescript\zerocount
+ \setmathignore\Umathspaceafterscript \zerocount
+ #1
+ \egroup
+ \vskip-.9\lineheight
+ \hbox\bgroup\red
+ \setmathignore\Umathspacebeforescript\plusone
+ \setmathignore\Umathspaceafterscript \plusone
+ #1
+ \egroup
+ \egroup}
+
+\startcombination[nx=3]
+ {\showglyphs\TestSlack{$f^2 > $}} {}
+ {\showglyphs\TestSlack{$ > f^^2$}} {}
+ {\showglyphs\TestSlack{$f^2 > f^^2$}} {}
+\stopcombination
+\stopbuffer
+
+\typebuffer
+
+\startlinecorrection
+\scale[width=\textwidth]{\getbuffer}
+\stoplinecorrection
+
+Because this overall niling is not granular enough a while later we introduced a
+way to set this per class, as is demonstrated in the next example.
+
+\startbuffer
+\def\TestSlack#1%
+ {\vbox\bgroup
+ \mathslackmode\plusone
+ \hbox\bgroup\red
+ \setmathignore\Umathspacebeforescript\zerocount
+ \setmathignore\Umathspaceafterscript \zerocount
+ #1
+ \egroup
+ \vskip-.9\lineheight
+ \hbox\bgroup\green
+ \setmathoptions\mathrelationcode \zerocount
+ #1
+ \egroup
+ \vskip-.9\lineheight
+ \hbox\bgroup\blue
+ \setmathoptions\mathrelationcode \plusthree
+ #1
+ \egroup
+ \egroup}
+
+\startcombination[nx=3]
+ {\showglyphs\TestSlack{$f^2 > $}} {}
+ {\showglyphs\TestSlack{$ > f^^2$}} {}
+ {\showglyphs\TestSlack{$f^2 > f^^2$}} {}
+\stopcombination
+\stopbuffer
+
+\typebuffer
+
+\startlinecorrection
+\scale[width=\textwidth]{\getbuffer}
+\stoplinecorrection
+
+Of course we need to experiment a lot with real documents and it might take a
+while before all this is stable (in the engine and in \CONTEXT). And as we don't
+need to conform to the decades old golden \TEX\ math standards we have some
+degrees of freedom in this: for Mikael and me it is pretty much a visual thing
+where we look closely at large samples. Of course in practice details get lost
+when we print at 10 point but that doesn't mean we can't provide the best
+experience. \footnote {Whenever I look at (my) old (math) school books I realize
+that Don Knuth had very good reasons to come up with \TEX\ and, it being hard to
+beat, \TEX\ still sets the standard!}
+
+\stopsubject
+
+\startsubject[title=Ghosts]
+
+As plain \TEX\ has macros like \type {\vphantom} you also find them in macro
+packages that came later. These create a boxes that have their content removed
+after the dimensions are set. They take space and are invisible but there's also
+nothing there.
+
+A variant in the upgraded math machinery are ghosts: these are visible in the
+sense that they show up but ignored when it comes to spacing. Here is an example.
+The option bit set here tells the engine that we ghost at the right, so we have
+ghosts around the relation (it controls where the spacing ends up).
+
+\startbuffer
+$
+ x
+ \mathatom class \mathghostcode {!!}
+ >
+ \mathatom class \mathghostcode options "00000020 {!!}
+ 1
+ \quad
+ x
+ \mathatom class \mathghostcode {\hbox{\smallinfofont ord}}
+ >
+ \mathatom class \mathghostcode options "00000020 {\hbox{\smallinfofont dig}}
+ 1
+$
+\stopbuffer
+
+\typebuffer
+
+You never know when this comes in handy but it fits in the new, more granular
+approach to spacing. The code above shows that it's just a class, this time with
+number \number\mathghostcode.
+
+\startlinecorrection
+ \scale[width=\textwidth]{\showglyphs\showmakeup[mathglue]\getbuffer}
+\stoplinecorrection
+
+\stopsubject
+
+\startsubject[title=Struts]
+
+In order to get consistent spacing the \CONTEXT\ macro package makes extensive
+use of struts in text mode as well as math mode. The normal way to implement that is
+either an empty box or a zero width rule, both with a specifically set height
+and depth. In \CONTEXT\ \MKII\ and \MKIV\ (and for a long time in \LMTX\ too) they
+were rules so that we could visualize them: they get some width and kerns
+around them to compensate for that.
+
+In order to not let them interfere with spacing we could wrap them into a ghost
+atom but it is kind of ugly. Anyway, before we had these ghost atoms an
+alternative to struts was already implemented: a special kind of rule. The reason is
+that I wanted a cleaner and more predictable way to adapt struts to the math style
+uses and sometimes predicting that is fragile. What we want is a delayed assignment of
+dimensions.
+
+We have two solutions. The first one uses two math parameters that themselves
+adapt to the style, as do other parameters: \type {\Umathruleheight} and \type
+{\Umathruledepth}. The other solution relates a font (or family) and character
+with the strut rule which is then used as measure for the height and depth. Just
+for the record: this also works in text mode, which is why a recent \LMTX\ also
+does use that for struts now. The optional visualization is just part of the
+regular visualization mechanism in \CONTEXT\ which already had provisions for
+struts. A side effect of this is that the rule primitives now accept three more
+keywords: \type {font}, \type {fam} and \type {char}, in addition to the already
+present traditional ones \type {width}, \type {height} and \type {depth}, the
+(backend) margin ones \type {left} (or \type {top}) and \type {right} (or \type
+{bottom}) options, as well as \type {xoffset} and \type {yoffset}). The command
+that creates a rule with subtype \type {strut} is simply \type {\srule}. Because
+struts are rather macro package specific I leave it to this.
+
+One positive side effect is that we could simplify the \CONTEXT\ fraction mechanism
+a bit. Over time control over the (font driven) gaps was introduced but that is
+not really needed because we zero the gaps anyway. There was also a tolerance
+mechanism which again was not used. However, for skewed fractions we do use the new
+tolerance mechanism as well as gap control.
+
+\stopsubject
+
+\startsubject[title=Atoms]
+
+Now that we have generic atoms (\type {\mathatom}) another, sometimes confusing aspect
+of the math parsing can be solved. Take this:
+
+\starttyping
+\def\MyBin{\mathbin{\tt mybin}}
+$ x ^ \MyBin _ \MyBin $
+\stoptyping
+
+The parser just doesn't like that which means that one has to use
+
+\starttyping
+\def\MyBin{\mathbin{\tt mybin}}
+$ x ^ {\MyBin} _ {\MyBin} $
+\stoptyping
+
+or:
+
+\starttyping
+\def\MyBin{{\mathbin{\tt mybin}}}
+$ x ^ \MyBin _ \MyBin $
+\stoptyping
+
+But the later has side effects: it creates a list that can influence spacing. It
+is for that reason that we do accept atoms where they were not accepted before.
+Of course that itself can have side effects but at least we don't get an error
+message. It fits well into the additional (user) classes model. And, given that
+in \CONTEXT\ the \type {\frac} command is actually wrapped as \type {\mathfrac}
+the next will work too:
+
+\starttyping
+$ x^\frac{1}{2} + x^{\frac{1}{2}} $
+\stoptyping
+
+but in practice you should probably use the braced version here for clarity.
+
+\stopsubject
+
+\startsubject[title=The \type {vcenter} primitive]
+
+Traditionally this primitive is bound to math but it had already be adapted to also
+work in text mode. As part of the upgrade of math we can now also pass all the options
+that normal boxed take and we can also cheat with the axis. Here is an example:
+
+\startbuffer
+\def\TEST{\hbox\bgroup
+ \darkred \vrule width 2pt height 4pt
+ \darkgreen \vrule width 10pt depth 2pt
+\egroup}
+$
+ x - \mathatom \mathvcentercode {!!!} -
+ + \ruledvcenter {\TEST}
+ + \ruledvcenter {\TEST}
+ + \ruledvcenter axis 1 {\TEST}
+ + \ruledvcenter xoffset 2pt yoffset 2pt {\TEST}
+ + \ruledvcenter xoffset -2pt yoffset -2pt {\TEST}
+ + x
+$
+\stopbuffer
+
+\typebuffer
+
+There was already a vcenter class available before we did this:
+
+\startlinecorrection
+ \scale[width=\textwidth]{\showglyphs\showmakeup[mathglue]\getbuffer}
+\stoplinecorrection
+
+\stopsubject
+
+\startsubject[title=Text]
+
+Sometimes you want text in math, for instance \type {sin} or \type {cos} but
+text in math is not really text:
+
+\startbuffer
+$ \setmathspacing\mathordinarycode\mathordinarycode\textstyle 10mu fin(x) $
+\stopbuffer
+
+\typebuffer
+
+The result demonstrates that what looks like a word actually becomes three
+math atoms:
+
+\startlinecorrection
+ \scale[width=\textwidth]{\showglyphs\showmakeup[mathglue]\getbuffer}
+\stoplinecorrection
+
+Okay, so how about then wrapping it into a text box:
+
+\startbuffer
+$
+ \setmathspacing\mathordinarycode\mathordinarycode\textstyle 10mu
+ fin(x) \quad \hbox{fin}(x)
+$
+\stopbuffer
+
+\typebuffer
+
+Here we get:
+
+\startlinecorrection
+ \scale[width=\textwidth]{\showglyphs\showmakeup[mathglue]\getbuffer}
+\stoplinecorrection
+
+We even get a ligature which might be an indication that we're not using a math
+font which indeed is the case: the box is typeset in the regular text font.
+
+\startbuffer
+\def\Test#1%
+ {\setmathspacing\mathordinarycode\mathordinarycode\textstyle 5mu
+ $\showglyphs
+ #1% style
+ {\tf fin} \quad
+ \hbox{fin} \quad
+ \mathatom class \mathordinarycode textfont {fin}
+ \mathatom class \mathordinarycode textfont {\tf fin}
+ \mathatom class \mathordinarycode textfont {\hbox{fin}}
+ \mathatom class \mathordinarycode mathfont {\hbox{fin}}
+ $}
+\stopbuffer
+
+\typebuffer \getbuffer
+
+When we feed this macro with the \type {\textstyle}, \type {\scriptstyle} and \type
+{\scriptscriptstyle} we get:
+
+\startlinecorrection
+ \startcombination[1*3]
+ {\scale[scale=3000]{\Test\textstyle }} {text}
+ {\scale[scale=3000]{\Test\scriptstyle }} {script}
+ {\scale[scale=3000]{\Test\scriptscriptstyle}} {scriptscript}
+ \stopcombination
+\stoplinecorrection
+
+Here you see a new atom option action: \type {textfont} which does as much as
+setting the font to the current family font and the size to the one used in the
+style. For the record: you only get ligatures when they are configured and
+provided by the font (and as math is a script itself it is unlikely to work).
+\footnote {The existing mechanisms in \CONTEXT\ already dealt with this but it is
+nevertheless nice to have it as a clean engine feature.}
+
+\stopsubject
+
+\startsubject[title=Tracing]
+
+I won't discuss the tracing features in \CONTEXT\ here but for sure the
+visualizer helps a lot in figuring out all this. In \LUAMETATEX\ we carry a bit
+more information with the resulting nodes so we can provide more details, for
+instance about the applied spacing and penalties. Some is shown in the examples.
+A more recent tracing feature is this:
+
+\starttyping
+\tracingmath 1
+\tracingonline 1
+$
+ \mathord (
+ \mathord {(}
+ \mathord \Udelimiter"4 0 `(
+ \Udelimiter"4 0 `(
+$
+\stoptyping
+
+That gives us on the console:
+
+\starttyping
+7:3: > \inlinemath=
+7:3: \mathord
+7:3: .\nucleus
+7:3: ..\mathchar (fam="0,char="28)
+7:3: \mathord
+7:3: .\nucleus
+7:3: ..\mathlist
+7:3: ...\mathopen
+7:3: ....\nucleus
+7:3: .....\mathchar (fam="0,char="28)
+7:3: \mathord
+7:3: .\nucleus
+7:3: ..\mathchar (fam="0,char="28)
+7:3: \mathopen
+7:3: .\nucleus
+7:3: ..\mathchar (fam="0,char="28)
+\stoptyping
+
+A tracing level of 2 will spit out some information about applied spacing and
+penalties between atoms (when set) and level 3 will show the math list before the
+first and second pass (a mix of nodes and noads) we well as the result (nodes) plus
+return some details about rules, spacing and penalties applied.
+
+\stopsubject
+
+\startsubject[title=Is there more?]
+
+The engine already provides the option to circumvent the side effect of a change
+in a parameter acting sort of global: the last value given is also the one that a
+second pass starts with. The \type {\frozen} prefix will turn settings into local
+ones but that's another (already old) topic. There are many such improvements and
+options not mentioned here but you can find them mentioned and explained in older
+development stories. A lot has been around for a while but not been applied in
+\CONTEXT\ yet.
+
+When \TEX\ was written one important property (likely related to memory
+consumption) is that node lists have only forward pointers. That means that the
+state of preceding material has to be kept track of: there is no going (or
+looking) back. In \LUATEX\ we have double linked lists so in principle we can try
+to be more clever but so far I decided not to touch the math machinery in that
+way. But who knows what comes next.
+
+\stopsubject
+
+\startsubject[title=Those italics]
+
+Right from the start of \LUATEX\ it became clear that the fact that \TEX\ assumes
+the actual width of glyphs to be incremented by the italic correction that then
+selectively is removed has been an issue. It made for successive attempts to
+improve spacing in \CONTEXT\ by providing pseudo features. But, when we moved
+from assembled \UNICODE\ math fonts to \quote {real} ones that became messy: what
+trick to apply when and even worse where? In the end it are only a very few
+shapes that actually are affected in the sense that when we don't deal with them
+it looks bad. It also happens that one of those shapes is the italic \quote {f},
+a letter that is used frequently in math. It might even be safe to say that the
+simple fact that the math italic f has this excessively wrong width and thereby
+pretty large italic correction is the cause of many problems.
+
+In the \LMTX\ approach Mikael and I settled on patching shapes in the so called
+font goodie files, aka \type {lfg} files and only a handful of entries needed a
+treatment. This makes a good care for removing the traditional font code path
+from \LUAMETATEX.
+
+\startbuffer
+ \dontleavehmode {\tt\fontclass}:
+ \start
+ \showglyphs \setupinterlinespace[1.2]
+ \dostepwiserecurse{`a}{`z}{1}{$\Uchar#1^1_2$ }
+ \dostepwiserecurse{`a}{`z}{1}{$\bi\Uchar#1^1_2$ }
+ \par
+ \stop
+\stopbuffer
+
+\start
+ \switchtobodyfont[modern] \getbuffer\blank
+ \switchtobodyfont[cambria] \getbuffer\blank
+ \switchtobodyfont[pagella] \getbuffer\blank
+ \switchtobodyfont[termes] \getbuffer\blank
+ \switchtobodyfont[bonum] \getbuffer\blank
+\stop
+
+One of the other very sloped symbol is the integral, although most fonts have
+them more upright than tex has. Of course there are many variants of these
+integrals in a math font. Here we also have some font parameters that we can
+tune, which is what we do.
+
+\stopsubject
+
+\startsubject[title=Accents]
+
+Accents are common in languages other than English and it's English that \TEX\
+was made for. Although the seven bit variant became eight bit handling accents
+never was sophisticated and one of the main reasons is of course that one could
+use pre|-|built composed characters. The \OPENTYPE\ format brought proper
+anchoring (aka marks) to font formats and when \LUATEX\ deals with text those
+kick in. In \OPENTYPE\ math however, anchoring is kind of limited to the top
+position only. Because the \TEXGYRE\ fonts are based on traditional \TEX\ fonts,
+their accents have not become better suited.
+
+\startbuffer
+$ \hat{x} \enspace \widehat{x} \enspace \widehat{xx} \enspace \widehat{xxx}
+ \enspace \hat{f} \enspace \widehat{f} $
+\stopbuffer
+
+\typebuffer
+
+When looking at examples you need to be aware of the fact hat fonts can have been
+adapted in the goodie files. \footnote {Extreme examples can be found for Lucida
+Bright where we not only have to fix the extensible parts of horizontal braces
+but also have to provide horizontal brackets.} So, for instance bounding boxes
+and such can differ from the original. Anyway, the previous code in Cambria looks
+as follows.
+
+\startlinecorrection
+\scale[height=18mm]{\showglyphs\switchtobodyfont[cambria]\inlinebuffer}
+\stoplinecorrection
+
+With Latin Modern we get:
+
+\startlinecorrection
+\scale[height=18mm]{\showglyphs\switchtobodyfont[modern]\inlinebuffer}
+\stoplinecorrection
+
+And Dejavu comes out as:
+
+\startlinecorrection
+\scale[height=18mm]{\showglyphs\switchtobodyfont[dejavu]\inlinebuffer}
+\stoplinecorrection
+
+As you can see there are some differences. In for instance Latin Modern the shape
+of the hat and smallest wide hat are different and the first wide one has zero
+dimensions combined with a negative anchor. When an accented character is
+followed by a superscript or prime the italic correction of the base kicks in but
+that cannot be enough to not let this small wide hat overflow into the script. We
+could compensate for it but then we need to know the dimensions. Of course we can
+consult the bounding box but it makes no sense to let heuristics enter the
+machinery here while we're in the process generalization. One option is to have
+two extra parameters that can be used when the width of the accent comes close to
+the width of the base (we then assume that zero accent width means that it has
+base width) we add an additional kern. In the end we settled for a (semi automatic)
+correction option in the goodie files.
+
+There are actually three categories of extensible accents to consider: those that
+resemble the ones used in text (like tildes and hats), those wrapping something
+(like braces and bracket but also arrows) and rules (that in traditional \TEX\
+indeed are rules). In \CONTEXT\ we have different interfaces for each of these
+and in order to have a more extensive control. The text related ones are the
+simplest and closest to what the engine supports out of the box but even there we
+use tweaked glyphs to get better spacing because (of course) fonts have different
+and inconsistent spacing in the boundingbox above and below the real shape. This
+is again some tweak that we moved from being {\em automatic} to being {\em under
+goodie file control}. But this is all too \CONTEXT\ specific to discuss here in
+more detail.
+
+\stopsubject
+
+\startsubject[title=Decision time]
+
+After lots of tests Mikael and I came to the conclusion that we're facing the
+following situation. When typesetting math most single characters are italic and
+we already knew from the start of the \LUATEX\ project that the italics shapes
+are problematic when it comes to typesetting math. But it looks like even some
+upright characters can have italic correction: in TexGyreBonum for instance the
+bold upright \type {f} has italic correction, probably because it then can
+(somehow) kern with a following \type {i}. It anyhow assumes no italic correction
+to be applied between these characters.
+
+In the end the mixed math font model model got more and more stressed so one
+decision was to simply assume fonts to be used that are either Cambria like
+\OPENTYPE, or mostly traditional in metrics, or a hybrid of both. It then made
+more sense to change the engine control options that we have into ones that
+simply enable certain code paths, independent of the fact if a font is \OPENTYPE\
+or not. It then become a bit \quotation {crap in, crap out}, but because we
+already tweak fonts in the goodie files it's quite okay. Some fonts have bad
+metrics anyway or miss characters and it makes no sense to support abandoned
+fonts either. Also, when a traditional font is assembled it one can set up the
+engine with different flags and we can deal with it as we wish. In the end it is
+all up to the macro package to configure things right, which is what we tried to
+do for months when rooting out all the artifacts that fonts bring. \footnote {In
+previous versions one could configure this per font but that has been dropped.}
+
+That said, the reason why some (fuzzy) mixed model works out okay (also in
+\LUATEX) is that proper \OPENTYPE\ fonts use staircase kerns instead of italic
+correction. They also have no ligatures and kerns. We also suspect that not that
+much attention is paid to the rendering. It's a bit like these \quotation {How
+many f's do you count in this sentence?} tests where people tend to overlook
+\type {of}, \type {if} and similar short words. Mathematicians loves \type {f}'s
+but probably also overlook the occasionally weird spacing and kerning.
+
+A side effect is that mixing \OPENTYPE\ and traditional fonts is also no longer
+assumed which in turn made a few (newly introduced) state variables obsolete. Once
+everything is stable (including extensions discussed before) some further cleanup
+can happen. Another side effect is that one needs to tell the engine what to apply
+and where, like this:
+
+\starttyping
+\mathfontcontrol\numexpr \zerocount
+ +\overrulemathcontrolcode
+ +\underrulemathcontrolcode
+ +\fractionrulemathcontrolcode
+ +\radicalrulemathcontrolcode
+ +\accentskewhalfmathcontrolcode
+ +\accentskewapplymathcontrolcode
+ % + checkligatureandkernmathcontrolcode
+ +\applyverticalitalickernmathcontrolcode
+ +\applyordinaryitalickernmathcontrolcode
+ +\staircasekernmathcontrolcode
+ % +\applycharitalickernmathcontrolcode
+ % +\reboxcharitalickernmathcontrolcode
+ +\applyboxeditalickernmathcontrolcode
+ +\applytextitalickernmathcontrolcode
+ +\checktextitalickernmathcontrolcode
+ % +\checkspaceitalickernmathcontrolcode
+ +\applyscriptitalickernmathcontrolcode
+ +\italicshapekernmathcontrolcode
+\relax
+\stoptyping
+
+There might be more control options (also for tracing purposes) and some of the
+symbolic (\CONTEXT) names might change for the better. As usual it will take some
+years before all is stable but because most users use the latest greatest version
+it will be tested well.
+
+After this was decided and effective I also decided to drop the mapping from
+traditional font parameters to the \OPENTYPE\ derives engine ones: we now assume
+that the later are set. After all, we already did that in \CONTEXT\ for the virtual
+assemblies that we started out with in the beginning of \LUATEX\ and \MKIV.
+
+\stopsubject
+
+\startsubject[title=Dirty tricks]
+
+Once you start playing with edge cases you also start wondering if some otherwise
+complex things can be done easier. The next macro brings together a couple of
+features discussed in previous sections. It also uses two state variables:
+\type {\lastleftclass} and \type {\lastrightclass} that hold the most recent
+edge classes.
+
+\startbuffer
+\tolerant\permanent\protected\def\NiceHack[#1]#:#2% special argument parsing
+ {\begingroup
+ \setmathatomrule
+ \mathbegincode\mathbincode % context constants
+ \allmathstyles
+ \mathbegincode\mathbincode
+ \normalexpanded
+ {\setbox\scratchbox\hpack
+ ymove \Umathaxis\Ustyle\mathstyle % an additional box property
+ \bgroup
+ \framed % a context macro
+ [location=middle,#1]
+ {$\Ustyle\mathstyle#2$}%
+ \egroup}%
+ \mathatom
+ class 32 % an unused class
+ \ifnum\lastleftclass <\zerocount\else leftclass \lastleftclass\fi
+ \ifnum\lastrightclass<\zerocount\else rightclass \lastrightclass\fi
+ \bgroup
+ \box\scratchbox
+ \egroup
+ \endgroup}
+\stopbuffer
+
+\typebuffer \getbuffer
+
+\startbuffer
+\def\MyTest#1%
+ {$ x #1 x $\quad
+ $ x \NiceHack[offset=0pt]{#1} x $\quad
+ $\displaystyle x #1 x $\quad
+ $\displaystyle x \NiceHack[offset=0pt]{#1} x $}
+
+\scale[scale=2000]{\MyTest{>}} \blank
+\scale[scale=2000]{\MyTest{+}} \blank
+\scale[scale=2000]{\MyTest{!}} \blank
+\scale[scale=2000]{\MyTest{+\frac{1}{2}+}}\blank
+\scale[scale=2000]{\MyTest{\frac{1}{2}}} \blank
+\stopbuffer
+
+\typebuffer
+
+Of course this is not code you immediately come up with after reading this text,
+also because you need to know a bit of \CONTEXT.
+
+\startlinecorrection
+\showmakeup[mathglue]\getbuffer
+\stoplinecorrection
+
+\stopsubject
+
+\startsubject[title=Final words]
+
+One can argue that all these new features can make a document look better. But
+you only have to look at what Don Knuth produces himself to see that one always
+could do a good job with \TEX, although maybe at the cost of some extra spacing
+directives. It is the fact that \OPENTYPE\ showed up as we as many more math
+fonts, all with their own (sometimes surprising) special effects, that made us
+adapt the engine. Of course there are also new possibilities that permit better
+and more robust macro support. The \TEX book has a chapter on \quotation {the
+fine points of mathematics typesetting} for a reason.
+
+There has never been an excuse to produce a bad looking documents. It is all
+about care. For sure there is a category of users who are forced to use \TEX, so
+they are excused. There are also those who have no eye for typography and rely on
+the macro package, so there we can to some extent blame the authors of those
+packages. And there are of course the sloppy users, those who don't enter a
+revision loop at all. They could as well use any system that in some way can
+handle math. One can also wonder in what way massive remote editing as well as
+collaborative working on documents make things better. It probably becomes less
+personal. At meetings and platforms \TEX\ users like to bash the alternatives but
+in the end they are part of the same landscape and when it comes to math they
+dominate. Maybe there is less to brawl about then we like: just do your thing and
+try to do it as good as possible. Rely on your eyes and pay attention to the
+details, which is possible because the engine provided the means. The previous
+text shows a few things to pay attention to.
+
+Once all the basics that have to do with proper dimensions, spacing, penalties
+and logic are dealt with, we will move on to the more high level constructs. So,
+expect more.
+
+\stopsubject
+
+% \setdefaultmathcodes
+% $\blackrule\mathatomskip \mathdigitcode \mathdigitcode\textstyle\blackrule$
+
+\stopchapter
+
+\stopcomponent
+
+% \showframe
+%
+% \showmakeup[penalty]
+%
+% \startbuffer
+% \dorecurse {50} {
+% test $\darkblue a + #1 + b > 2$
+% test $\darkred a + b + #1 + c + d > 2$
+% test $\darkgreen a + b + c + #1 + d + e + f > 2$
+% }
+% \stopbuffer
+%
+% \setuptolerance[verytolerant,stretch]
+%
+% \setuplayout[width=11cm]
+%
+% \starttext
+% \start
+% \mathforwardpenalties 0
+% \mathbackwardpenalties 0
+% \getbuffer
+% \par
+% \stop
+% \page
+% \start
+% \mathforwardpenalties 2 -200 -100
+% \mathbackwardpenalties 2 -100 -50
+% \getbuffer
+% \par
+% \stop
+% \page
+% \start
+% \mathforwardpenalties 2 200 100
+% \mathbackwardpenalties 2 100 50
+% \getbuffer
+% \par
+% \stop
+% \page
+% \stoptext
+
+% example:
+%
+% $ \left( x + 1 \right )^1_2^^3__4 $
+% \blank
+% $ ( x + 1 )^1_2^^3__4 $
+% \blank
+% $ (^^3__4 x + 1 )^1_2 $
+
+% example:
+%
+% \registerengineclass[digits][dgs]
+%
+% \newconstant \mathdigitscode \mathdigitscode \mathclassvalue digits
+%
+% \protected\def\mathdigits{\mathatom\mathdigitscode}
+%
+% \copymathspacing \mathdigitscode \mathdigitcode
+%
+% \setmathspacing \mathdigitscode \mathdigitscode \allmathstyles 3mu
+% \setmathspacing \mathdigitscode \mathpunctuationcode \allmathstyles 1mu
+% \setmathspacing \mathpunctuationcode \mathdigitscode \allmathstyles 1mu
+%
+% \startTEXpage[offset=1dk,width=20dk]
+% \showboxes\showmakeup[math]
+% $
+% x
+% =
+% \mathdigits {123}
+% \mathdigits {456} ,
+% \mathdigits {78}
+% =
+% \mathdigits {123} .
+% \mathdigits {456} ,
+% \mathdigits {78}
+% $
+% \stopTEXpage
+
+% \starttext
+% \showmakeup[math]
+% $ x \neq x $ \quad $ x \not x $ \quad $ x \eq\not x $ \quad $ x \not\eq x $\par
+% \pushoverloadmode
+% \let\normalnot\not
+% \permanent\protected\def\not#1{#1\normalnot}
+% \popoverloadmode
+% $ x \neq x $ \quad $ x \not x $ \quad $ x \eq\not x $ \quad $ x \not\eq x $\par
+% \stoptext
+
+% $ \not \eq $\par
+% $ \eq \not $\par % gets collapsed
+
+% example: a_1=b_1+c_1 (for spacing)
diff --git a/doc/context/sources/general/manuals/ontarget/ontarget.tex b/doc/context/sources/general/manuals/ontarget/ontarget.tex
index 201ed504e..d6b7ad149 100644
--- a/doc/context/sources/general/manuals/ontarget/ontarget.tex
+++ b/doc/context/sources/general/manuals/ontarget/ontarget.tex
@@ -17,6 +17,7 @@
\component ontarget-eventually
\component ontarget-dk
\component ontarget-anchoring
+ \component ontarget-math
\stopbodymatter
\stopdocument
diff --git a/doc/context/sources/general/manuals/svg/svg-lmtx.tex b/doc/context/sources/general/manuals/svg/svg-lmtx.tex
index 44fec26cd..38e589b72 100644
--- a/doc/context/sources/general/manuals/svg/svg-lmtx.tex
+++ b/doc/context/sources/general/manuals/svg/svg-lmtx.tex
@@ -7,31 +7,7 @@
% \nopdfcompression
-\def\showSVGcode#1#2%
- {\ctxlua{metapost.showsvgpage{
- filename = "#1",
- index = tonumber(#2),
- method = "code"
- }}}
-
-\def\showSVGcodeG#1#2%
- {\ctxlua{metapost.showsvgpage{
- filename = "#1",
- index = tonumber(#2),
- method = "code",
- x = 0,
- y = 1000,
- width = 1000,
- height = 1000,
- noclip = true
- }}}
-
-\def\typeSVGcode#1#2%
- {\ctxlua{metapost.typesvgpage{
- filename = "#1",
- index = tonumber(#2)
- }}}
-
+\usemodule[svg]
\usemodule[abbreviations-logos]
\usemodule[scite]
diff --git a/fonts/data/keep/keep-latinmodern-math.otf b/fonts/data/keep/keep-latinmodern-math.otf
deleted file mode 100644
index 7b3a2b1c2..000000000
--- a/fonts/data/keep/keep-latinmodern-math.otf
+++ /dev/null
Binary files differ
diff --git a/fonts/data/keep/keep-texgyrepagella-math.otf b/fonts/data/keep/keep-texgyrepagella-math.otf
deleted file mode 100644
index d3fd8dc31..000000000
--- a/fonts/data/keep/keep-texgyrepagella-math.otf
+++ /dev/null
Binary files differ
diff --git a/metapost/context/base/mpxl/mp-cont.mpxl b/metapost/context/base/mpxl/mp-cont.mpxl
index d153a9ccb..a89265224 100644
--- a/metapost/context/base/mpxl/mp-cont.mpxl
+++ b/metapost/context/base/mpxl/mp-cont.mpxl
@@ -29,47 +29,49 @@ permanent CurrentLayout, SwapPageState ;
extra_beginfig := extra_beginfig & "mfun_swapped := false ;" ;
-newscriptindex mfid_PaperHeight ; mfid_PaperHeight := scriptindex "PaperHeight" ; vardef PaperHeight = runscript mfid_PaperHeight enddef ;
-newscriptindex mfid_PaperWidth ; mfid_PaperWidth := scriptindex "PaperWidth" ; vardef PaperWidth = runscript mfid_PaperWidth enddef ;
-newscriptindex mfid_PrintPaperHeight ; mfid_PrintPaperHeight := scriptindex "PrintPaperHeight" ; vardef PrintPaperHeight = runscript mfid_PrintPaperHeight enddef ;
-newscriptindex mfid_PrintPaperWidth ; mfid_PrintPaperWidth := scriptindex "PrintPaperWidth" ; vardef PrintPaperWidth = runscript mfid_PrintPaperWidth enddef ;
-newscriptindex mfid_TopSpace ; mfid_TopSpace := scriptindex "TopSpace" ; vardef TopSpace = runscript mfid_TopSpace enddef ;
-newscriptindex mfid_BottomSpace ; mfid_BottomSpace := scriptindex "BottomSpace" ; vardef BottomSpace = runscript mfid_BottomSpace enddef ;
-newscriptindex mfid_BackSpace ; mfid_BackSpace := scriptindex "BackSpace" ; vardef BackSpace = runscript mfid_BackSpace enddef ;
-newscriptindex mfid_CutSpace ; mfid_CutSpace := scriptindex "CutSpace" ; vardef CutSpace = runscript mfid_CutSpace enddef ;
-newscriptindex mfid_MakeupHeight ; mfid_MakeupHeight := scriptindex "MakeupHeight" ; vardef MakeupHeight = runscript mfid_MakeupHeight enddef ;
-newscriptindex mfid_MakeupWidth ; mfid_MakeupWidth := scriptindex "MakeupWidth" ; vardef MakeupWidth = runscript mfid_MakeupWidth enddef ;
-newscriptindex mfid_TopHeight ; mfid_TopHeight := scriptindex "TopHeight" ; vardef TopHeight = runscript mfid_TopHeight enddef ;
-newscriptindex mfid_TopDistance ; mfid_TopDistance := scriptindex "TopDistance" ; vardef TopDistance = runscript mfid_TopDistance enddef ;
-newscriptindex mfid_HeaderHeight ; mfid_HeaderHeight := scriptindex "HeaderHeight" ; vardef HeaderHeight = runscript mfid_HeaderHeight enddef ;
-newscriptindex mfid_HeaderDistance ; mfid_HeaderDistance := scriptindex "HeaderDistance" ; vardef HeaderDistance = runscript mfid_HeaderDistance enddef ;
-newscriptindex mfid_TextHeight ; mfid_TextHeight := scriptindex "TextHeight" ; vardef TextHeight = runscript mfid_TextHeight enddef ;
-newscriptindex mfid_FooterDistance ; mfid_FooterDistance := scriptindex "FooterDistance" ; vardef FooterDistance = runscript mfid_FooterDistance enddef ;
-newscriptindex mfid_FooterHeight ; mfid_FooterHeight := scriptindex "FooterHeight" ; vardef FooterHeight = runscript mfid_FooterHeight enddef ;
-newscriptindex mfid_BottomDistance ; mfid_BottomDistance := scriptindex "BottomDistance" ; vardef BottomDistance = runscript mfid_BottomDistance enddef ;
-newscriptindex mfid_BottomHeight ; mfid_BottomHeight := scriptindex "BottomHeight" ; vardef BottomHeight = runscript mfid_BottomHeight enddef ;
-newscriptindex mfid_LeftEdgeWidth ; mfid_LeftEdgeWidth := scriptindex "LeftEdgeWidth" ; vardef LeftEdgeWidth = runscript mfid_LeftEdgeWidth enddef ;
-newscriptindex mfid_LeftEdgeDistance ; mfid_LeftEdgeDistance := scriptindex "LeftEdgeDistance" ; vardef LeftEdgeDistance = runscript mfid_LeftEdgeDistance enddef ;
-newscriptindex mfid_LeftMarginWidth ; mfid_LeftMarginWidth := scriptindex "LeftMarginWidth" ; vardef LeftMarginWidth = runscript mfid_LeftMarginWidth enddef ;
-newscriptindex mfid_LeftMarginDistance ; mfid_LeftMarginDistance := scriptindex "LeftMarginDistance" ; vardef LeftMarginDistance = runscript mfid_LeftMarginDistance enddef ;
-newscriptindex mfid_TextWidth ; mfid_TextWidth := scriptindex "TextWidth" ; vardef TextWidth = runscript mfid_TextWidth enddef ;
-newscriptindex mfid_RightMarginDistance ; mfid_RightMarginDistance := scriptindex "RightMarginDistance" ; vardef RightMarginDistance = runscript mfid_RightMarginDistance enddef ;
-newscriptindex mfid_RightMarginWidth ; mfid_RightMarginWidth := scriptindex "RightMarginWidth" ; vardef RightMarginWidth = runscript mfid_RightMarginWidth enddef ;
-newscriptindex mfid_RightEdgeDistance ; mfid_RightEdgeDistance := scriptindex "RightEdgeDistance" ; vardef RightEdgeDistance = runscript mfid_RightEdgeDistance enddef ;
-newscriptindex mfid_RightEdgeWidth ; mfid_RightEdgeWidth := scriptindex "RightEdgeWidth" ; vardef RightEdgeWidth = runscript mfid_RightEdgeWidth enddef ;
-newscriptindex mfid_InnerMarginDistance ; mfid_InnerMarginDistance := scriptindex "InnerMarginDistance" ; vardef InnerMarginDistance = runscript mfid_InnerMarginDistance enddef ;
-newscriptindex mfid_InnerMarginWidth ; mfid_InnerMarginWidth := scriptindex "InnerMarginWidth" ; vardef InnerMarginWidth = runscript mfid_InnerMarginWidth enddef ;
-newscriptindex mfid_OuterMarginDistance ; mfid_OuterMarginDistance := scriptindex "OuterMarginDistance" ; vardef OuterMarginDistance = runscript mfid_OuterMarginDistance enddef ;
-newscriptindex mfid_OuterMarginWidth ; mfid_OuterMarginWidth := scriptindex "OuterMarginWidth" ; vardef OuterMarginWidth = runscript mfid_OuterMarginWidth enddef ;
-newscriptindex mfid_InnerEdgeDistance ; mfid_InnerEdgeDistance := scriptindex "InnerEdgeDistance" ; vardef InnerEdgeDistance = runscript mfid_InnerEdgeDistance enddef ;
-newscriptindex mfid_InnerEdgeWidth ; mfid_InnerEdgeWidth := scriptindex "InnerEdgeWidth" ; vardef InnerEdgeWidth = runscript mfid_InnerEdgeWidth enddef ;
-newscriptindex mfid_OuterEdgeDistance ; mfid_OuterEdgeDistance := scriptindex "OuterEdgeDistance" ; vardef OuterEdgeDistance = runscript mfid_OuterEdgeDistance enddef ;
-newscriptindex mfid_OuterEdgeWidth ; mfid_OuterEdgeWidth := scriptindex "OuterEdgeWidth" ; vardef OuterEdgeWidth = runscript mfid_OuterEdgeWidth enddef ;
-newscriptindex mfid_PageOffset ; mfid_PageOffset := scriptindex "PageOffset" ; vardef PageOffset = runscript mfid_PageOffset enddef ;
-newscriptindex mfid_PageDepth ; mfid_PageDepth := scriptindex "PageDepth" ; vardef PageDepth = runscript mfid_PageDepth enddef ;
-newscriptindex mfid_LayoutColumns ; mfid_LayoutColumns := scriptindex "LayoutColumns" ; vardef LayoutColumns = runscript mfid_LayoutColumns enddef ;
-newscriptindex mfid_LayoutColumnDistance ; mfid_LayoutColumnDistance := scriptindex "LayoutColumnDistance" ; vardef LayoutColumnDistance = runscript mfid_LayoutColumnDistance enddef ;
-newscriptindex mfid_LayoutColumnWidth ; mfid_LayoutColumnWidth := scriptindex "LayoutColumnWidth" ; vardef LayoutColumnWidth = runscript mfid_LayoutColumnWidth enddef ;
+newscriptindex mfid_PaperHeight ; mfid_PaperHeight := scriptindex "PaperHeight" ; vardef PaperHeight = runscript mfid_PaperHeight enddef ;
+newscriptindex mfid_PaperWidth ; mfid_PaperWidth := scriptindex "PaperWidth" ; vardef PaperWidth = runscript mfid_PaperWidth enddef ;
+newscriptindex mfid_PrintPaperHeight ; mfid_PrintPaperHeight := scriptindex "PrintPaperHeight" ; vardef PrintPaperHeight = runscript mfid_PrintPaperHeight enddef ;
+newscriptindex mfid_PrintPaperWidth ; mfid_PrintPaperWidth := scriptindex "PrintPaperWidth" ; vardef PrintPaperWidth = runscript mfid_PrintPaperWidth enddef ;
+newscriptindex mfid_TopSpace ; mfid_TopSpace := scriptindex "TopSpace" ; vardef TopSpace = runscript mfid_TopSpace enddef ;
+newscriptindex mfid_BottomSpace ; mfid_BottomSpace := scriptindex "BottomSpace" ; vardef BottomSpace = runscript mfid_BottomSpace enddef ;
+newscriptindex mfid_BackSpace ; mfid_BackSpace := scriptindex "BackSpace" ; vardef BackSpace = runscript mfid_BackSpace enddef ;
+newscriptindex mfid_CutSpace ; mfid_CutSpace := scriptindex "CutSpace" ; vardef CutSpace = runscript mfid_CutSpace enddef ;
+newscriptindex mfid_MakeupHeight ; mfid_MakeupHeight := scriptindex "MakeupHeight" ; vardef MakeupHeight = runscript mfid_MakeupHeight enddef ;
+newscriptindex mfid_MakeupWidth ; mfid_MakeupWidth := scriptindex "MakeupWidth" ; vardef MakeupWidth = runscript mfid_MakeupWidth enddef ;
+newscriptindex mfid_TopHeight ; mfid_TopHeight := scriptindex "TopHeight" ; vardef TopHeight = runscript mfid_TopHeight enddef ;
+newscriptindex mfid_TopDistance ; mfid_TopDistance := scriptindex "TopDistance" ; vardef TopDistance = runscript mfid_TopDistance enddef ;
+newscriptindex mfid_HeaderHeight ; mfid_HeaderHeight := scriptindex "HeaderHeight" ; vardef HeaderHeight = runscript mfid_HeaderHeight enddef ;
+newscriptindex mfid_HeaderDistance ; mfid_HeaderDistance := scriptindex "HeaderDistance" ; vardef HeaderDistance = runscript mfid_HeaderDistance enddef ;
+newscriptindex mfid_TextHeight ; mfid_TextHeight := scriptindex "TextHeight" ; vardef TextHeight = runscript mfid_TextHeight enddef ;
+newscriptindex mfid_FooterDistance ; mfid_FooterDistance := scriptindex "FooterDistance" ; vardef FooterDistance = runscript mfid_FooterDistance enddef ;
+newscriptindex mfid_FooterHeight ; mfid_FooterHeight := scriptindex "FooterHeight" ; vardef FooterHeight = runscript mfid_FooterHeight enddef ;
+newscriptindex mfid_BottomDistance ; mfid_BottomDistance := scriptindex "BottomDistance" ; vardef BottomDistance = runscript mfid_BottomDistance enddef ;
+newscriptindex mfid_BottomHeight ; mfid_BottomHeight := scriptindex "BottomHeight" ; vardef BottomHeight = runscript mfid_BottomHeight enddef ;
+newscriptindex mfid_LeftEdgeWidth ; mfid_LeftEdgeWidth := scriptindex "LeftEdgeWidth" ; vardef LeftEdgeWidth = runscript mfid_LeftEdgeWidth enddef ;
+newscriptindex mfid_LeftEdgeDistance ; mfid_LeftEdgeDistance := scriptindex "LeftEdgeDistance" ; vardef LeftEdgeDistance = runscript mfid_LeftEdgeDistance enddef ;
+newscriptindex mfid_LeftMarginWidth ; mfid_LeftMarginWidth := scriptindex "LeftMarginWidth" ; vardef LeftMarginWidth = runscript mfid_LeftMarginWidth enddef ;
+newscriptindex mfid_LeftMarginDistance ; mfid_LeftMarginDistance := scriptindex "LeftMarginDistance" ; vardef LeftMarginDistance = runscript mfid_LeftMarginDistance enddef ;
+newscriptindex mfid_TextWidth ; mfid_TextWidth := scriptindex "TextWidth" ; vardef TextWidth = runscript mfid_TextWidth enddef ;
+newscriptindex mfid_RightMarginDistance ; mfid_RightMarginDistance := scriptindex "RightMarginDistance" ; vardef RightMarginDistance = runscript mfid_RightMarginDistance enddef ;
+newscriptindex mfid_RightMarginWidth ; mfid_RightMarginWidth := scriptindex "RightMarginWidth" ; vardef RightMarginWidth = runscript mfid_RightMarginWidth enddef ;
+newscriptindex mfid_RightEdgeDistance ; mfid_RightEdgeDistance := scriptindex "RightEdgeDistance" ; vardef RightEdgeDistance = runscript mfid_RightEdgeDistance enddef ;
+newscriptindex mfid_RightEdgeWidth ; mfid_RightEdgeWidth := scriptindex "RightEdgeWidth" ; vardef RightEdgeWidth = runscript mfid_RightEdgeWidth enddef ;
+newscriptindex mfid_InnerMarginDistance ; mfid_InnerMarginDistance := scriptindex "InnerMarginDistance" ; vardef InnerMarginDistance = runscript mfid_InnerMarginDistance enddef ;
+newscriptindex mfid_InnerMarginWidth ; mfid_InnerMarginWidth := scriptindex "InnerMarginWidth" ; vardef InnerMarginWidth = runscript mfid_InnerMarginWidth enddef ;
+newscriptindex mfid_OuterMarginDistance ; mfid_OuterMarginDistance := scriptindex "OuterMarginDistance" ; vardef OuterMarginDistance = runscript mfid_OuterMarginDistance enddef ;
+newscriptindex mfid_OuterMarginWidth ; mfid_OuterMarginWidth := scriptindex "OuterMarginWidth" ; vardef OuterMarginWidth = runscript mfid_OuterMarginWidth enddef ;
+newscriptindex mfid_InnerEdgeDistance ; mfid_InnerEdgeDistance := scriptindex "InnerEdgeDistance" ; vardef InnerEdgeDistance = runscript mfid_InnerEdgeDistance enddef ;
+newscriptindex mfid_InnerEdgeWidth ; mfid_InnerEdgeWidth := scriptindex "InnerEdgeWidth" ; vardef InnerEdgeWidth = runscript mfid_InnerEdgeWidth enddef ;
+newscriptindex mfid_OuterEdgeDistance ; mfid_OuterEdgeDistance := scriptindex "OuterEdgeDistance" ; vardef OuterEdgeDistance = runscript mfid_OuterEdgeDistance enddef ;
+newscriptindex mfid_OuterEdgeWidth ; mfid_OuterEdgeWidth := scriptindex "OuterEdgeWidth" ; vardef OuterEdgeWidth = runscript mfid_OuterEdgeWidth enddef ;
+newscriptindex mfid_PageOffset ; mfid_PageOffset := scriptindex "PageOffset" ; vardef PageOffset = runscript mfid_PageOffset enddef ;
+newscriptindex mfid_PageDepth ; mfid_PageDepth := scriptindex "PageDepth" ; vardef PageDepth = runscript mfid_PageDepth enddef ;
+newscriptindex mfid_LayoutColumns ; mfid_LayoutColumns := scriptindex "LayoutColumns" ; vardef LayoutColumns = runscript mfid_LayoutColumns enddef ;
+newscriptindex mfid_LayoutColumnDistance ; mfid_LayoutColumnDistance := scriptindex "LayoutColumnDistance" ; vardef LayoutColumnDistance = runscript mfid_LayoutColumnDistance enddef ;
+newscriptindex mfid_LayoutColumnWidth ; mfid_LayoutColumnWidth := scriptindex "LayoutColumnWidth" ; vardef LayoutColumnWidth = runscript mfid_LayoutColumnWidth enddef ;
+newscriptindex mfid_LastChangedLayoutPage ; mfid_LastChangedLayoutPage := scriptindex "LastChangedLayoutPage" ; vardef LastChangedLayoutPage = runscript mfid_LastChangedLayoutPage enddef ;
+newscriptindex mfid_SwapMarginDimensions ; mfid_SwapMarginDimensions := scriptindex "SwapMarginDimensions" ; vardef SwapMarginDimensions = runscript mfid_SwapMarginDimensions enddef ;
immutable % permanent
PaperHeight, PaperWidth, PrintPaperHeight, PrintPaperWidth, TopSpace,
@@ -80,7 +82,8 @@ immutable % permanent
RightMarginWidth, RightEdgeDistance, RightEdgeWidth, InnerMarginDistance,
InnerMarginWidth, OuterMarginDistance, OuterMarginWidth, InnerEdgeDistance,
InnerEdgeWidth, OuterEdgeDistance, OuterEdgeWidth, PageOffset, PageDepth,
- LayoutColumns, LayoutColumnDistance, LayoutColumnWidth ;
+ LayoutColumns, LayoutColumnDistance, LayoutColumnWidth,
+ LastChangedLayoutPage, SwapMarginDimensions ;
newscriptindex mfid_OnRightPage ; mfid_OnRightPage := scriptindex "OnRightPage" ; vardef OnRightPage = runscript mfid_OnRightPage enddef ;
newscriptindex mfid_OnOddPage ; mfid_OnOddPage := scriptindex "OnOddPage" ; vardef OnOddPage = runscript mfid_OnOddPage enddef ;
@@ -153,18 +156,18 @@ newscriptindex mfid_defaultcolormodel ; mfid_defaultcolormodel := scriptin
immutable % permanent
defaultcolormodel ;
-vardef LeftMarginWidth = if mfun_swapped and not OnRightPage : runscript mfid_RightMarginWidth else : runscript mfid_LeftMarginWidth fi enddef ;
-vardef RightMarginWidth = if mfun_swapped and not OnRightPage : runscript mfid_LeftMarginWidth else : runscript mfid_RightMarginWidth fi enddef ;
-vardef LeftMarginDistance = if mfun_swapped and not OnRightPage : runscript mfid_RightMarginDistance else : runscript mfid_LeftMarginDistance fi enddef ;
-vardef RightMarginDistance = if mfun_swapped and not OnRightPage : runscript mfid_LeftMarginDistance else : runscript mfid_RightMarginDistance fi enddef ;
+vardef LeftMarginWidth = runscript mfid_LeftMarginWidth enddef ;
+vardef RightMarginWidth = runscript mfid_RightMarginWidth enddef ;
+vardef LeftMarginDistance = runscript mfid_LeftMarginDistance enddef ;
+vardef RightMarginDistance = runscript mfid_RightMarginDistance enddef ;
-vardef LeftEdgeWidth = if mfun_swapped and not OnRightPage : runscript mfid_RightEdgeWidth else : runscript mfid_LeftEdgeWidth fi enddef ;
-vardef RightEdgeWidth = if mfun_swapped and not OnRightPage : runscript mfid_LeftEdgeWidth else : runscript mfid_RightEdgeWidth fi enddef ;
-vardef LeftEdgeDistance = if mfun_swapped and not OnRightPage : runscript mfid_RightEdgeDistance else : runscript mfid_LeftEdgeDistance fi enddef ;
-vardef RightEdgeDistance = if mfun_swapped and not OnRightPage : runscript mfid_LeftEdgeDistance else : runscript mfid_RightEdgeDistance fi enddef ;
+vardef LeftEdgeWidth = runscript mfid_LeftEdgeWidth enddef ;
+vardef RightEdgeWidth = runscript mfid_RightEdgeWidth enddef ;
+vardef LeftEdgeDistance = runscript mfid_LeftEdgeDistance enddef ;
+vardef RightEdgeDistance = runscript mfid_RightEdgeDistance enddef ;
-vardef BackSpace = if mfun_swapped and not OnRightPage : PaperWidth - MakeupWidth - fi runscript mfid_BackSpace enddef ;
-vardef CutSpace = if mfun_swapped and not OnRightPage : PaperWidth - MakeupWidth - fi runscript mfid_CutSpace enddef ;
+vardef BackSpace = runscript mfid_BackSpace enddef ;
+vardef CutSpace = runscript mfid_CutSpace enddef ;
% better use:
diff --git a/metapost/context/base/mpxl/mp-page.mpxl b/metapost/context/base/mpxl/mp-page.mpxl
index 525a5b157..c36dd6487 100644
--- a/metapost/context/base/mpxl/mp-page.mpxl
+++ b/metapost/context/base/mpxl/mp-page.mpxl
@@ -52,83 +52,109 @@ immutable % permanent
% We could go for just setting them (:=):
-path mfun_page_area[][] ;
-pair mfun_page_location[][] ;
-path mfun_page_field[][] ;
-numeric mfun_page_vsize[] ;
-numeric mfun_page_hsize[] ;
-numeric mfun_page_vstep[] ;
-numeric mfun_page_hstep[] ;
+path mfun_page_area [][][] ;
+pair mfun_page_location[][][] ;
+path mfun_page_field [][][] ;
+numeric mfun_page_vsize [][] ;
+numeric mfun_page_hsize [][] ;
+numeric mfun_page_vstep [][] ;
+numeric mfun_page_hstep [][] ;
-newinternal mfun_page_done ; mfun_page_done := 0 ;
+numeric mfun_page_odd ; mfun_page_odd := 1 ;
def mfun_page_check_vsize =
- mfun_page_vsize[Top] := TopHeight ;
- mfun_page_vsize[TopSeparator] := TopDistance ;
- mfun_page_vsize[Header] := HeaderHeight ;
- mfun_page_vsize[HeaderSeparator] := HeaderDistance ;
- mfun_page_vsize[Text] := TextHeight ;
- mfun_page_vsize[FooterSeparator] := FooterDistance ;
- mfun_page_vsize[Footer] := FooterHeight ;
- mfun_page_vsize[BottomSeparator] := BottomDistance ;
- mfun_page_vsize[Bottom] := BottomHeight ;
+ mfun_page_vsize[mfun_page_odd][Top] := TopHeight ;
+ mfun_page_vsize[mfun_page_odd][TopSeparator] := TopDistance ;
+ mfun_page_vsize[mfun_page_odd][Header] := HeaderHeight ;
+ mfun_page_vsize[mfun_page_odd][HeaderSeparator] := HeaderDistance ;
+ mfun_page_vsize[mfun_page_odd][Text] := TextHeight ;
+ mfun_page_vsize[mfun_page_odd][FooterSeparator] := FooterDistance ;
+ mfun_page_vsize[mfun_page_odd][Footer] := FooterHeight ;
+ mfun_page_vsize[mfun_page_odd][BottomSeparator] := BottomDistance ;
+ mfun_page_vsize[mfun_page_odd][Bottom] := BottomHeight ;
enddef ;
def mfun_page_check_hsize =
- mfun_page_hsize[LeftEdge] := LeftEdgeWidth ;
- mfun_page_hsize[LeftEdgeSeparator] := LeftEdgeDistance ;
- mfun_page_hsize[LeftMargin] := LeftMarginWidth ;
- mfun_page_hsize[LeftMarginSeparator] := LeftMarginDistance ;
- mfun_page_hsize[Text] := MakeupWidth ;
- mfun_page_hsize[RightMarginSeparator] := RightMarginDistance ;
- mfun_page_hsize[RightMargin] := RightMarginWidth ;
- mfun_page_hsize[RightEdgeSeparator] := RightEdgeDistance ;
- mfun_page_hsize[RightEdge] := RightEdgeWidth ;
+ mfun_page_hsize[mfun_page_odd][LeftEdge] := LeftEdgeWidth ;
+ mfun_page_hsize[mfun_page_odd][LeftEdgeSeparator] := LeftEdgeDistance ;
+ mfun_page_hsize[mfun_page_odd][LeftMargin] := LeftMarginWidth ;
+ mfun_page_hsize[mfun_page_odd][LeftMarginSeparator] := LeftMarginDistance ;
+ mfun_page_hsize[mfun_page_odd][Text] := MakeupWidth ;
+ mfun_page_hsize[mfun_page_odd][RightMarginSeparator] := RightMarginDistance ;
+ mfun_page_hsize[mfun_page_odd][RightMargin] := RightMarginWidth ;
+ mfun_page_hsize[mfun_page_odd][RightEdgeSeparator] := RightEdgeDistance ;
+ mfun_page_hsize[mfun_page_odd][RightEdge] := RightEdgeWidth ;
enddef ;
def mfun_page_check_vstep =
- mfun_page_vstep[TopSeparator] := PaperHeight-TopSpace ;
- mfun_page_vstep[Top] := mfun_page_vstep[TopSeparator] +mfun_page_vsize[TopSeparator] ;
- mfun_page_vstep[Header] := mfun_page_vstep[TopSeparator] -mfun_page_vsize[Header] ;
- mfun_page_vstep[HeaderSeparator] := mfun_page_vstep[Header] -mfun_page_vsize[HeaderSeparator] ;
- mfun_page_vstep[Text] := mfun_page_vstep[HeaderSeparator]-mfun_page_vsize[Text] ;
- mfun_page_vstep[FooterSeparator] := mfun_page_vstep[Text] -mfun_page_vsize[FooterSeparator] ;
- mfun_page_vstep[Footer] := mfun_page_vstep[FooterSeparator]-mfun_page_vsize[Footer] ;
- mfun_page_vstep[BottomSeparator] := mfun_page_vstep[Footer] -mfun_page_vsize[BottomSeparator] ;
- mfun_page_vstep[Bottom] := mfun_page_vstep[BottomSeparator]-mfun_page_vsize[Bottom] ;
+ mfun_page_vstep[mfun_page_odd][TopSeparator] := PaperHeight-TopSpace ;
+ mfun_page_vstep[mfun_page_odd][Top] := mfun_page_vstep[mfun_page_odd][TopSeparator] +mfun_page_vsize[mfun_page_odd][TopSeparator] ;
+ mfun_page_vstep[mfun_page_odd][Header] := mfun_page_vstep[mfun_page_odd][TopSeparator] -mfun_page_vsize[mfun_page_odd][Header] ;
+ mfun_page_vstep[mfun_page_odd][HeaderSeparator] := mfun_page_vstep[mfun_page_odd][Header] -mfun_page_vsize[mfun_page_odd][HeaderSeparator] ;
+ mfun_page_vstep[mfun_page_odd][Text] := mfun_page_vstep[mfun_page_odd][HeaderSeparator]-mfun_page_vsize[mfun_page_odd][Text] ;
+ mfun_page_vstep[mfun_page_odd][FooterSeparator] := mfun_page_vstep[mfun_page_odd][Text] -mfun_page_vsize[mfun_page_odd][FooterSeparator] ;
+ mfun_page_vstep[mfun_page_odd][Footer] := mfun_page_vstep[mfun_page_odd][FooterSeparator]-mfun_page_vsize[mfun_page_odd][Footer] ;
+ mfun_page_vstep[mfun_page_odd][BottomSeparator] := mfun_page_vstep[mfun_page_odd][Footer] -mfun_page_vsize[mfun_page_odd][BottomSeparator] ;
+ mfun_page_vstep[mfun_page_odd][Bottom] := mfun_page_vstep[mfun_page_odd][BottomSeparator]-mfun_page_vsize[mfun_page_odd][Bottom] ;
enddef ;
def mfun_page_check_hstep =
- mfun_page_hstep[Text] := BackSpace ;
- mfun_page_hstep[LeftMarginSeparator] := mfun_page_hstep[Text] -mfun_page_hsize[LeftMarginSeparator] ;
- mfun_page_hstep[RightMarginSeparator] := mfun_page_hstep[Text] +mfun_page_hsize[Text] ;
- mfun_page_hstep[LeftMargin] := mfun_page_hstep[LeftMarginSeparator] -mfun_page_hsize[LeftMargin] ;
- mfun_page_hstep[RightMargin] := mfun_page_hstep[RightMarginSeparator]+mfun_page_hsize[RightMarginSeparator] ;
- mfun_page_hstep[LeftEdgeSeparator] := mfun_page_hstep[LeftMargin] -mfun_page_hsize[LeftEdgeSeparator] ;
- mfun_page_hstep[LeftEdge] := mfun_page_hstep[LeftEdgeSeparator] -mfun_page_hsize[LeftEdge] ;
- mfun_page_hstep[RightEdgeSeparator] := mfun_page_hstep[RightMargin] +mfun_page_hsize[RightMargin] ;
- mfun_page_hstep[RightEdge] := mfun_page_hstep[RightEdgeSeparator] +mfun_page_hsize[RightEdgeSeparator] ;
+ mfun_page_hstep[mfun_page_odd][Text] := BackSpace ;
+ mfun_page_hstep[mfun_page_odd][LeftMarginSeparator] := mfun_page_hstep[mfun_page_odd][Text] -mfun_page_hsize[mfun_page_odd][LeftMarginSeparator] ;
+ mfun_page_hstep[mfun_page_odd][RightMarginSeparator] := mfun_page_hstep[mfun_page_odd][Text] +mfun_page_hsize[mfun_page_odd][Text] ;
+ mfun_page_hstep[mfun_page_odd][LeftMargin] := mfun_page_hstep[mfun_page_odd][LeftMarginSeparator] -mfun_page_hsize[mfun_page_odd][LeftMargin] ;
+ mfun_page_hstep[mfun_page_odd][RightMargin] := mfun_page_hstep[mfun_page_odd][RightMarginSeparator]+mfun_page_hsize[mfun_page_odd][RightMarginSeparator] ;
+ mfun_page_hstep[mfun_page_odd][LeftEdgeSeparator] := mfun_page_hstep[mfun_page_odd][LeftMargin] -mfun_page_hsize[mfun_page_odd][LeftEdgeSeparator] ;
+ mfun_page_hstep[mfun_page_odd][LeftEdge] := mfun_page_hstep[mfun_page_odd][LeftEdgeSeparator] -mfun_page_hsize[mfun_page_odd][LeftEdge] ;
+ mfun_page_hstep[mfun_page_odd][RightEdgeSeparator] := mfun_page_hstep[mfun_page_odd][RightMargin] +mfun_page_hsize[mfun_page_odd][RightMargin] ;
+ mfun_page_hstep[mfun_page_odd][RightEdge] := mfun_page_hstep[mfun_page_odd][RightEdgeSeparator] +mfun_page_hsize[mfun_page_odd][RightEdgeSeparator] ;
+enddef ;
+
+numeric mfun_last_changed_page ; mfun_last_changed_page := -1 ;
+boolean mfun_page_done_odd ; mfun_page_done_odd := false ;
+boolean mfun_page_done_even ; mfun_page_done_even := false ;
+
+def mfun_check_page_dimensions_indeed =
+ mfun_page_check_vsize ;
+ mfun_page_check_hsize ;
+ mfun_page_check_vstep ;
+ mfun_page_check_hstep ;
enddef ;
def mfun_check_page_dimensions =
- if mfun_page_done <> RealPageNumber :
- if LayoutHasChanged :
- mfun_page_check_vsize ;
- mfun_page_check_hsize ;
- mfun_page_check_vstep ;
- mfun_page_check_hstep ;
+ begingroup ;
+ save n ; n := LastChangedLayoutPage ;
+ SwapMarginDimensions ; % always
+ if mfun_last_changed_page <> n :
+ report("page", "layout changed") ;
+ mfun_page_done_odd := false ;
+ mfun_page_done_even := false ;
+ mfun_last_changed_page := n ;
+ fi ;
+ if odd RealPageNumber :
+ mfun_page_odd := 1 ;
+ if not mfun_page_done_odd :
+ report("page", "checking odd") ;
+ mfun_check_page_dimensions_indeed ;
+ mfun_page_done_odd := true ;
+ fi ;
+ else :
+ mfun_page_odd := 2 ;
+ if not mfun_page_done_even :
+ report("page", "checking even") ;
+ mfun_check_page_dimensions_indeed ;
+ mfun_page_done_even := true ;
fi ;
- mfun_page_done := RealPageNumber ;
fi ;
+ endgroup ;
enddef;
-
def mfun_check_page_area =
mfun_check_page_dimensions ;
for VerPos=Top step 10 until Bottom:
for HorPos=LeftEdge step 1 until RightEdge:
- mfun_page_area[HorPos][VerPos] := unitsquare xscaled mfun_page_hsize[HorPos] yscaled mfun_page_vsize[VerPos] ;
- mfun_page_area[VerPos][HorPos] := mfun_page_area[HorPos][VerPos] ;
+ mfun_page_area[mfun_page_odd][HorPos][VerPos] := unitsquare xscaled mfun_page_hsize[mfun_page_odd][HorPos] yscaled mfun_page_vsize[where][VerPos] ;
+ mfun_page_area[mfun_page_odd][VerPos][HorPos] := mfun_page_area[mfun_page_odd][HorPos][VerPos] ;
endfor ;
endfor ;
enddef ;
@@ -137,8 +163,8 @@ def mfun_check_page_location =
mfun_check_page_dimensions ;
for VerPos=Top step 10 until Bottom:
for HorPos=LeftEdge step 1 until RightEdge:
- mfun_page_location[HorPos][VerPos] := (mfun_page_hstep[HorPos],mfun_page_vstep[VerPos]) ;
- mfun_page_location[VerPos][HorPos] := mfun_page_location[HorPos][VerPos] ;
+ mfun_page_location[mfun_page_odd][HorPos][VerPos] := (mfun_page_hstep[mfun_page_odd][HorPos],mfun_page_vstep[mfun_page_odd][VerPos]) ;
+ mfun_page_location[mfun_page_odd][VerPos][HorPos] := mfun_page_location[mfun_page_odd][HorPos][VerPos] ;
endfor ;
endfor ;
enddef ;
@@ -147,19 +173,19 @@ def mfun_check_page_field =
mfun_check_page_dimensions ;
for VerPos=Top step 10 until Bottom:
for HorPos=LeftEdge step 1 until RightEdge:
- mfun_page_field[HorPos][VerPos] := unitsquare xscaled mfun_page_hsize[HorPos] yscaled mfun_page_vsize[VerPos] shifted (mfun_page_hstep[HorPos],mfun_page_vstep[VerPos]) ;
- mfun_page_field[VerPos][HorPos] := mfun_page_field[HorPos][VerPos] ;
+ mfun_page_field[mfun_page_odd][HorPos][VerPos] := unitsquare xscaled mfun_page_hsize[mfun_page_odd][HorPos] yscaled mfun_page_vsize[mfun_page_odd][VerPos] shifted (mfun_page_hstep[mfun_page_odd][HorPos],mfun_page_vstep[mfun_page_odd][VerPos]) ;
+ mfun_page_field[mfun_page_odd][VerPos][HorPos] := mfun_page_field[mfun_page_odd][HorPos][VerPos] ;
endfor ;
endfor ;
enddef ;
-def Area = hide(mfun_check_page_area ;) mfun_page_area enddef ;
-def Location = hide(mfun_check_page_location ;) mfun_page_location enddef ;
-def Field = hide(mfun_check_page_field ;) mfun_page_field enddef ;
-def Vsize = hide(mfun_check_page_dimensions ;) mfun_page_vsize enddef ;
-def Hsize = hide(mfun_check_page_dimensions ;) mfun_page_hsize enddef ;
-def Vstep = hide(mfun_check_page_dimensions ;) mfun_page_vstep enddef ;
-def Hstep = hide(mfun_check_page_dimensions ;) mfun_page_hstep enddef ;
+def Area = hide(mfun_check_page_area ;) mfun_page_area [mfun_page_odd] enddef ;
+def Location = hide(mfun_check_page_location ;) mfun_page_location[mfun_page_odd] enddef ;
+def Field = hide(mfun_check_page_field ;) mfun_page_field [mfun_page_odd] enddef ;
+def Vsize = hide(mfun_check_page_dimensions ;) mfun_page_vsize [mfun_page_odd] enddef ;
+def Hsize = hide(mfun_check_page_dimensions ;) mfun_page_hsize [mfun_page_odd] enddef ;
+def Vstep = hide(mfun_check_page_dimensions ;) mfun_page_vstep [mfun_page_odd] enddef ;
+def Hstep = hide(mfun_check_page_dimensions ;) mfun_page_hstep [mfun_page_odd] enddef ;
immutable % permanent
Area, Location, Field, Vsize, Hsize, Vstep, Hstep ;
diff --git a/metapost/context/base/mpxl/mp-tool.mpxl b/metapost/context/base/mpxl/mp-tool.mpxl
index 474b68353..294dddcb9 100644
--- a/metapost/context/base/mpxl/mp-tool.mpxl
+++ b/metapost/context/base/mpxl/mp-tool.mpxl
@@ -3910,3 +3910,19 @@ vardef hatched(expr o) primary c =
enddef;
permanent hatched ;
+
+% By Mikael Sundqvist:
+
+numeric mfun_dash_len ;
+
+primarydef p withdashes len =
+ hide (
+ save l, n ;
+ l := arclength p ;
+ n := l div len ;
+ if odd(n) : n := n + 1 fi ;
+ mfun_dash_len := l / n ;
+ )
+ p dashed dashpattern (on mfun_dash_len off mfun_dash_len)
+enddef ;
+
diff --git a/scripts/context/lua/mtx-patterns.lua b/scripts/context/lua/mtx-patterns.lua
index 373d5a69f..bcc8c0861 100644
--- a/scripts/context/lua/mtx-patterns.lua
+++ b/scripts/context/lua/mtx-patterns.lua
@@ -151,7 +151,7 @@ scripts.patterns.list = {
{ "sk", "hyph-sk", "slovak" },
{ "sl", "hyph-sl", "slovenian" },
{ "sq", "hyph-sq", "albanian" },
- { "sr", "hyph-sr", "serbian", false, { "hyph-sr-cyrl", "hyph-sr-latn" }, },
+ { "sr", "hyph-sr", "serbian", false, { "hyph-sh-cyrl", "hyph-sh-latn" }, },
-- { "sr", "hyph-sr-cyrl", "serbian", false },
-- { "sr", "hyph-sr-latn", "serbian" },
{ "sv", "hyph-sv", "swedish" },
diff --git a/scripts/context/lua/mtx-pdf.lua b/scripts/context/lua/mtx-pdf.lua
index 201d73623..0ce17ec5b 100644
--- a/scripts/context/lua/mtx-pdf.lua
+++ b/scripts/context/lua/mtx-pdf.lua
@@ -277,6 +277,7 @@ function scripts.pdf.fonts(filename)
chars[i] = c
freqs[i] = format("U+%05X %s %s",k,counts[k] > 1 and "+" or " ", c)
else
+ chars[i] = k == 32 and "SPACE" or format("U+%03X",k)
freqs[i] = format("U+%05X %s --",k,counts[k] > 1 and "+" or " ")
end
end
diff --git a/scripts/context/lua/mtx-unicode.lua b/scripts/context/lua/mtx-unicode.lua
index 0979239db..8dc0a8607 100644
--- a/scripts/context/lua/mtx-unicode.lua
+++ b/scripts/context/lua/mtx-unicode.lua
@@ -237,6 +237,9 @@ function scripts.unicode.update()
end
end
--
+-- if specials and specials[1] == "font" then
+-- specials = nil
+-- end
if not char then
report("%U : adding entry %a",unicode,description)
char = {
@@ -354,6 +357,7 @@ function scripts.unicode.update()
else
local specials = char.specials
if specials then
+-- if specials and specials[1] ~= "font" then
local t = { } for i=2,#specials do t[i] = formatters["%U"](specials[i]) end
if false then
char.comment = nil
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 2224345ea..146158ee0 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -8597,7 +8597,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-sac"] = package.loaded["util-sac"] or true
--- original size: 12905, stripped down to: 9439
+-- original size: 14071, stripped down to: 10417
if not modules then modules={} end modules ['util-sac']={
version=1.001,
@@ -9072,6 +9072,33 @@ do
end
end
end
+if bit32 and not streams.tocardinal1 then
+ local extract=bit32.extract
+ local char=string.char
+ streams.tocardinal1=char
+ function streams.tocardinal2(n) return char(extract(8,8),extract(0,8)) end
+ function streams.tocardinal3(n) return char(extract(16,8),extract(8,8),extract(0,8)) end
+ function streams.tocardinal4(n) return char(extract(24,8),extract(16,8),extract(8,8),extract(0,8)) end
+ streams.tocardinal1le=char
+ function streams.tocardinal2le(n) return char(extract(0,8),extract(8,8)) end
+ function streams.tocardinal3le(n) return char(extract(0,8),extract(8,8),extract(16,8)) end
+ function streams.tocardinal4le(n) return char(extract(0,8),extract(8,8),extract(16,8),extract(24,8)) end
+end
+if not streams.readcstring then
+ local readchar=streams.readchar
+ local concat=table.concat
+ function streams.readcstring(f)
+ local t={}
+ while true do
+ local c=readchar(f)
+ if c and c~="\0" then
+ t[#t+1]=c
+ else
+ return concat(t)
+ end
+ end
+ end
+end
end -- of closure
@@ -15718,7 +15745,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-zip"] = package.loaded["util-zip"] or true
--- original size: 23490, stripped down to: 14039
+-- original size: 23730, stripped down to: 14293
if not modules then modules={} end modules ['util-zip']={
version=1.001,
@@ -15755,6 +15782,10 @@ local lshift=bit32.lshift
local zlibdecompress=zlib.decompress
local zlibdecompresssize=zlib.decompresssize
local zlibchecksum=zlib.crc32
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+end
local decompress=function(source) return zlibdecompress (source,-15) end
local decompresssize=function(source,targetsize) return zlibdecompresssize(source,targetsize,-15) end
local calculatecrc=function(buffer,initial) return zlibchecksum (initial or 0,buffer) end
@@ -16174,7 +16205,11 @@ else
local identifier="\x1F\x8B"
local compress=zlib.compress
local decompress=zlib.decompress
- local crc32=zlib.crc32
+ local zlibchecksum=zlib.crc32
+ if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+ end
local streams=utilities.streams
local openstream=streams.openstring
local closestream=streams.close
@@ -16214,7 +16249,7 @@ else
tocardinal1(0xFF),
(originalname or "unknownname").."\0",
compress(str,level,nil,gzipwindow),
- tocardinal4(crc32(str)),
+ tocardinal4(zlibchecksum(str)),
tocardinal4(#str),
}
end
@@ -16264,7 +16299,6 @@ function gzip.decompress(s)
return s
end
end
-zipfiles.gunzipfile=gzip.load
end -- of closure
@@ -25949,8 +25983,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1029872
--- stripped bytes : 405661
+-- original bytes : 1031278
+-- stripped bytes : 405835
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 2224345ea..146158ee0 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -8597,7 +8597,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-sac"] = package.loaded["util-sac"] or true
--- original size: 12905, stripped down to: 9439
+-- original size: 14071, stripped down to: 10417
if not modules then modules={} end modules ['util-sac']={
version=1.001,
@@ -9072,6 +9072,33 @@ do
end
end
end
+if bit32 and not streams.tocardinal1 then
+ local extract=bit32.extract
+ local char=string.char
+ streams.tocardinal1=char
+ function streams.tocardinal2(n) return char(extract(8,8),extract(0,8)) end
+ function streams.tocardinal3(n) return char(extract(16,8),extract(8,8),extract(0,8)) end
+ function streams.tocardinal4(n) return char(extract(24,8),extract(16,8),extract(8,8),extract(0,8)) end
+ streams.tocardinal1le=char
+ function streams.tocardinal2le(n) return char(extract(0,8),extract(8,8)) end
+ function streams.tocardinal3le(n) return char(extract(0,8),extract(8,8),extract(16,8)) end
+ function streams.tocardinal4le(n) return char(extract(0,8),extract(8,8),extract(16,8),extract(24,8)) end
+end
+if not streams.readcstring then
+ local readchar=streams.readchar
+ local concat=table.concat
+ function streams.readcstring(f)
+ local t={}
+ while true do
+ local c=readchar(f)
+ if c and c~="\0" then
+ t[#t+1]=c
+ else
+ return concat(t)
+ end
+ end
+ end
+end
end -- of closure
@@ -15718,7 +15745,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-zip"] = package.loaded["util-zip"] or true
--- original size: 23490, stripped down to: 14039
+-- original size: 23730, stripped down to: 14293
if not modules then modules={} end modules ['util-zip']={
version=1.001,
@@ -15755,6 +15782,10 @@ local lshift=bit32.lshift
local zlibdecompress=zlib.decompress
local zlibdecompresssize=zlib.decompresssize
local zlibchecksum=zlib.crc32
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+end
local decompress=function(source) return zlibdecompress (source,-15) end
local decompresssize=function(source,targetsize) return zlibdecompresssize(source,targetsize,-15) end
local calculatecrc=function(buffer,initial) return zlibchecksum (initial or 0,buffer) end
@@ -16174,7 +16205,11 @@ else
local identifier="\x1F\x8B"
local compress=zlib.compress
local decompress=zlib.decompress
- local crc32=zlib.crc32
+ local zlibchecksum=zlib.crc32
+ if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+ end
local streams=utilities.streams
local openstream=streams.openstring
local closestream=streams.close
@@ -16214,7 +16249,7 @@ else
tocardinal1(0xFF),
(originalname or "unknownname").."\0",
compress(str,level,nil,gzipwindow),
- tocardinal4(crc32(str)),
+ tocardinal4(zlibchecksum(str)),
tocardinal4(#str),
}
end
@@ -16264,7 +16299,6 @@ function gzip.decompress(s)
return s
end
end
-zipfiles.gunzipfile=gzip.load
end -- of closure
@@ -25949,8 +25983,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1029872
--- stripped bytes : 405661
+-- original bytes : 1031278
+-- stripped bytes : 405835
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 2224345ea..146158ee0 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -8597,7 +8597,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-sac"] = package.loaded["util-sac"] or true
--- original size: 12905, stripped down to: 9439
+-- original size: 14071, stripped down to: 10417
if not modules then modules={} end modules ['util-sac']={
version=1.001,
@@ -9072,6 +9072,33 @@ do
end
end
end
+if bit32 and not streams.tocardinal1 then
+ local extract=bit32.extract
+ local char=string.char
+ streams.tocardinal1=char
+ function streams.tocardinal2(n) return char(extract(8,8),extract(0,8)) end
+ function streams.tocardinal3(n) return char(extract(16,8),extract(8,8),extract(0,8)) end
+ function streams.tocardinal4(n) return char(extract(24,8),extract(16,8),extract(8,8),extract(0,8)) end
+ streams.tocardinal1le=char
+ function streams.tocardinal2le(n) return char(extract(0,8),extract(8,8)) end
+ function streams.tocardinal3le(n) return char(extract(0,8),extract(8,8),extract(16,8)) end
+ function streams.tocardinal4le(n) return char(extract(0,8),extract(8,8),extract(16,8),extract(24,8)) end
+end
+if not streams.readcstring then
+ local readchar=streams.readchar
+ local concat=table.concat
+ function streams.readcstring(f)
+ local t={}
+ while true do
+ local c=readchar(f)
+ if c and c~="\0" then
+ t[#t+1]=c
+ else
+ return concat(t)
+ end
+ end
+ end
+end
end -- of closure
@@ -15718,7 +15745,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-zip"] = package.loaded["util-zip"] or true
--- original size: 23490, stripped down to: 14039
+-- original size: 23730, stripped down to: 14293
if not modules then modules={} end modules ['util-zip']={
version=1.001,
@@ -15755,6 +15782,10 @@ local lshift=bit32.lshift
local zlibdecompress=zlib.decompress
local zlibdecompresssize=zlib.decompresssize
local zlibchecksum=zlib.crc32
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+end
local decompress=function(source) return zlibdecompress (source,-15) end
local decompresssize=function(source,targetsize) return zlibdecompresssize(source,targetsize,-15) end
local calculatecrc=function(buffer,initial) return zlibchecksum (initial or 0,buffer) end
@@ -16174,7 +16205,11 @@ else
local identifier="\x1F\x8B"
local compress=zlib.compress
local decompress=zlib.decompress
- local crc32=zlib.crc32
+ local zlibchecksum=zlib.crc32
+ if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+ end
local streams=utilities.streams
local openstream=streams.openstring
local closestream=streams.close
@@ -16214,7 +16249,7 @@ else
tocardinal1(0xFF),
(originalname or "unknownname").."\0",
compress(str,level,nil,gzipwindow),
- tocardinal4(crc32(str)),
+ tocardinal4(zlibchecksum(str)),
tocardinal4(#str),
}
end
@@ -16264,7 +16299,6 @@ function gzip.decompress(s)
return s
end
end
-zipfiles.gunzipfile=gzip.load
end -- of closure
@@ -25949,8 +25983,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1029872
--- stripped bytes : 405661
+-- original bytes : 1031278
+-- stripped bytes : 405835
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index 2224345ea..146158ee0 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -8597,7 +8597,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-sac"] = package.loaded["util-sac"] or true
--- original size: 12905, stripped down to: 9439
+-- original size: 14071, stripped down to: 10417
if not modules then modules={} end modules ['util-sac']={
version=1.001,
@@ -9072,6 +9072,33 @@ do
end
end
end
+if bit32 and not streams.tocardinal1 then
+ local extract=bit32.extract
+ local char=string.char
+ streams.tocardinal1=char
+ function streams.tocardinal2(n) return char(extract(8,8),extract(0,8)) end
+ function streams.tocardinal3(n) return char(extract(16,8),extract(8,8),extract(0,8)) end
+ function streams.tocardinal4(n) return char(extract(24,8),extract(16,8),extract(8,8),extract(0,8)) end
+ streams.tocardinal1le=char
+ function streams.tocardinal2le(n) return char(extract(0,8),extract(8,8)) end
+ function streams.tocardinal3le(n) return char(extract(0,8),extract(8,8),extract(16,8)) end
+ function streams.tocardinal4le(n) return char(extract(0,8),extract(8,8),extract(16,8),extract(24,8)) end
+end
+if not streams.readcstring then
+ local readchar=streams.readchar
+ local concat=table.concat
+ function streams.readcstring(f)
+ local t={}
+ while true do
+ local c=readchar(f)
+ if c and c~="\0" then
+ t[#t+1]=c
+ else
+ return concat(t)
+ end
+ end
+ end
+end
end -- of closure
@@ -15718,7 +15745,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-zip"] = package.loaded["util-zip"] or true
--- original size: 23490, stripped down to: 14039
+-- original size: 23730, stripped down to: 14293
if not modules then modules={} end modules ['util-zip']={
version=1.001,
@@ -15755,6 +15782,10 @@ local lshift=bit32.lshift
local zlibdecompress=zlib.decompress
local zlibdecompresssize=zlib.decompresssize
local zlibchecksum=zlib.crc32
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+end
local decompress=function(source) return zlibdecompress (source,-15) end
local decompresssize=function(source,targetsize) return zlibdecompresssize(source,targetsize,-15) end
local calculatecrc=function(buffer,initial) return zlibchecksum (initial or 0,buffer) end
@@ -16174,7 +16205,11 @@ else
local identifier="\x1F\x8B"
local compress=zlib.compress
local decompress=zlib.decompress
- local crc32=zlib.crc32
+ local zlibchecksum=zlib.crc32
+ if not CONTEXTLMTXMODE or CONTEXTLMTXMODE==0 then
+ local cs=zlibchecksum
+ zlibchecksum=function(str,n) return cs(n or 0,str) end
+ end
local streams=utilities.streams
local openstream=streams.openstring
local closestream=streams.close
@@ -16214,7 +16249,7 @@ else
tocardinal1(0xFF),
(originalname or "unknownname").."\0",
compress(str,level,nil,gzipwindow),
- tocardinal4(crc32(str)),
+ tocardinal4(zlibchecksum(str)),
tocardinal4(#str),
}
end
@@ -16264,7 +16299,6 @@ function gzip.decompress(s)
return s
end
end
-zipfiles.gunzipfile=gzip.load
end -- of closure
@@ -25949,8 +25983,8 @@ end -- of closure
-- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 1029872
--- stripped bytes : 405661
+-- original bytes : 1031278
+-- stripped bytes : 405835
-- end library merge
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index acb247396..cad7b57e1 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2022.01.21 20:10}
+\newcontextversion{2022.03.12 11:24}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index e1535e159..30265042e 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2022.01.21 20:10}
+\edef\contextversion{2022.03.12 11:24}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-cs.mkii b/tex/context/base/mkii/mult-cs.mkii
index 37e93983e..5af147f70 100644
--- a/tex/context/base/mkii/mult-cs.mkii
+++ b/tex/context/base/mkii/mult-cs.mkii
@@ -281,7 +281,6 @@
\setinterfacevariable{inright}{ivpravo}
\setinterfacevariable{inrightedge}{napravo}
\setinterfacevariable{inrightmargin}{napravyokraj}
-\setinterfacevariable{integral}{integral}
\setinterfacevariable{interaction}{interakce}
\setinterfacevariable{interactionmenu}{interaktivnimenu}
\setinterfacevariable{interactive}{interactive}
@@ -716,6 +715,7 @@
\setinterfaceconstant{bottom}{spodek}
\setinterfaceconstant{bottomafter}{bottomafter}
\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomcolor}{bottomcolor}
\setinterfaceconstant{bottomcommand}{bottomcommand}
\setinterfaceconstant{bottomdistance}{vzdalenostspodku}
\setinterfaceconstant{bottomframe}{ramecekdole}
@@ -887,6 +887,7 @@
\setinterfaceconstant{header}{zahlavi}
\setinterfaceconstant{headerdistance}{vzdalenostzahlavi}
\setinterfaceconstant{headerstate}{statuszahlavi}
+\setinterfaceconstant{headindenting}{headindenting}
\setinterfaceconstant{headlabel}{popisekhlavicky}
\setinterfaceconstant{headnumber}{cislonadpisu}
\setinterfaceconstant{headseparator}{headseparator}
@@ -918,6 +919,7 @@
\setinterfaceconstant{inputfile}{inputfile}
\setinterfaceconstant{insidesection}{insidesection}
\setinterfaceconstant{instance}{instance}
+\setinterfaceconstant{integral}{integral}
\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{interakce}
\setinterfaceconstant{interlinespace}{meziradkovamezera}
@@ -960,6 +962,7 @@
\setinterfaceconstant{leftquote}{citovatvlevo}
\setinterfaceconstant{leftsample}{leftsample}
\setinterfaceconstant{leftsentence}{vetavlevo}
+\setinterfaceconstant{leftsource}{leftsource}
\setinterfaceconstant{leftspeech}{leftspeech}
\setinterfaceconstant{leftstyle}{stylvlevo}
\setinterfaceconstant{leftsubsentence}{podvetavlevo}
@@ -992,7 +995,9 @@
\setinterfaceconstant{marstyle}{stylsnacky}
\setinterfaceconstant{mask}{mask}
\setinterfaceconstant{mathclass}{mathclass}
+\setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle}
\setinterfaceconstant{mathlimits}{mathlimits}
+\setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle}
\setinterfaceconstant{mathstyle}{mathstyle}
\setinterfaceconstant{max}{max}
\setinterfaceconstant{maxdepth}{maxdepth}
@@ -1004,6 +1009,7 @@
\setinterfaceconstant{middle}{stredni}
\setinterfaceconstant{middlecolor}{middlecolor}
\setinterfaceconstant{middlecommand}{middlecommand}
+\setinterfaceconstant{middlesource}{middlesource}
\setinterfaceconstant{middlespeech}{middlespeech}
\setinterfaceconstant{middlestyle}{middlestyle}
\setinterfaceconstant{middletext}{strednitext}
@@ -1176,6 +1182,7 @@
\setinterfaceconstant{rightquote}{citovatvpravo}
\setinterfaceconstant{rightsample}{rightsample}
\setinterfaceconstant{rightsentence}{vetavpravo}
+\setinterfaceconstant{rightsource}{rightsource}
\setinterfaceconstant{rightspeech}{rightspeech}
\setinterfaceconstant{rightstyle}{stylvpravo}
\setinterfaceconstant{rightsubsentence}{podvetavpravo}
@@ -1311,6 +1318,7 @@
\setinterfaceconstant{toffset}{toffset}
\setinterfaceconstant{tolerance}{tolerance}
\setinterfaceconstant{top}{vrsek}
+\setinterfaceconstant{topcolor}{topcolor}
\setinterfaceconstant{topcommand}{topcommand}
\setinterfaceconstant{topdistance}{vzdalenostvrsku}
\setinterfaceconstant{topframe}{rameceknahore}
diff --git a/tex/context/base/mkii/mult-fr.mkii b/tex/context/base/mkii/mult-fr.mkii
index 6abaaec24..d79dc0836 100644
--- a/tex/context/base/mkii/mult-fr.mkii
+++ b/tex/context/base/mkii/mult-fr.mkii
@@ -281,7 +281,6 @@
\setinterfacevariable{inright}{dansdroite}
\setinterfacevariable{inrightedge}{dansborddroit}
\setinterfacevariable{inrightmargin}{dansmargedroite}
-\setinterfacevariable{integral}{integrale}
\setinterfacevariable{interaction}{interaction}
\setinterfacevariable{interactionmenu}{menuinteraction}
\setinterfacevariable{interactive}{interactif}
@@ -300,6 +299,7 @@
\setinterfacevariable{july}{juillet}
\setinterfacevariable{june}{juin}
\setinterfacevariable{keep}{conserver}
+\setinterfacevariable{keeptogether}{conserverensemble}
\setinterfacevariable{kerncharacters}{approchercaracteres}
\setinterfacevariable{knockout}{knockout}
\setinterfacevariable{label}{etiquette}
@@ -315,6 +315,7 @@
\setinterfacevariable{lefthanging}{suspensiongauche}
\setinterfacevariable{leftmargin}{margegauche}
\setinterfacevariable{leftpage}{surpagegauche}
+\setinterfacevariable{lefttext}{textegauche}
\setinterfacevariable{lefttoright}{gaucheadroite}
\setinterfacevariable{legend}{legende}
\setinterfacevariable{less}{moins}
@@ -476,6 +477,7 @@
\setinterfacevariable{righthanging}{suspensiondroite}
\setinterfacevariable{rightmargin}{margedroite}
\setinterfacevariable{rightpage}{surpagedroite}
+\setinterfacevariable{righttext}{textedroite}
\setinterfacevariable{righttoleft}{droiteagauche}
\setinterfacevariable{roman}{romain}
\setinterfacevariable{romannumerals}{chiffresromains}
@@ -713,6 +715,7 @@
\setinterfaceconstant{bottom}{bas}
\setinterfaceconstant{bottomafter}{basaprès}
\setinterfaceconstant{bottombefore}{basavant}
+\setinterfaceconstant{bottomcolor}{bottomcolor}
\setinterfaceconstant{bottomcommand}{commandebas}
\setinterfaceconstant{bottomdistance}{distancebas}
\setinterfaceconstant{bottomframe}{cadrebas}
@@ -884,6 +887,7 @@
\setinterfaceconstant{header}{entête}
\setinterfaceconstant{headerdistance}{distanceentête}
\setinterfaceconstant{headerstate}{etatentête}
+\setinterfaceconstant{headindenting}{headindenting}
\setinterfaceconstant{headlabel}{etiquettetete}
\setinterfaceconstant{headnumber}{numerotete}
\setinterfaceconstant{headseparator}{separateurtete}
@@ -915,6 +919,7 @@
\setinterfaceconstant{inputfile}{fichierentree}
\setinterfaceconstant{insidesection}{auseinsection}
\setinterfaceconstant{instance}{instance}
+\setinterfaceconstant{integral}{integrale}
\setinterfaceconstant{intent}{intention}
\setinterfaceconstant{interaction}{interaction}
\setinterfaceconstant{interlinespace}{espaceinterligne}
@@ -957,6 +962,7 @@
\setinterfaceconstant{leftquote}{citergauche}
\setinterfaceconstant{leftsample}{echantillongauche}
\setinterfaceconstant{leftsentence}{phrasegauche}
+\setinterfaceconstant{leftsource}{leftsource}
\setinterfaceconstant{leftspeech}{discoursgauche}
\setinterfaceconstant{leftstyle}{stylegauche}
\setinterfaceconstant{leftsubsentence}{sousphrasegauche}
@@ -989,7 +995,9 @@
\setinterfaceconstant{marstyle}{stylerem}
\setinterfaceconstant{mask}{masque}
\setinterfaceconstant{mathclass}{classemath}
+\setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle}
\setinterfaceconstant{mathlimits}{limitesmath}
+\setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle}
\setinterfaceconstant{mathstyle}{stylemath}
\setinterfaceconstant{max}{max}
\setinterfaceconstant{maxdepth}{profondeurmax}
@@ -1001,6 +1009,7 @@
\setinterfaceconstant{middle}{milieu}
\setinterfaceconstant{middlecolor}{couleurmilieu}
\setinterfaceconstant{middlecommand}{commandemilieu}
+\setinterfaceconstant{middlesource}{middlesource}
\setinterfaceconstant{middlespeech}{discoursmilieu}
\setinterfaceconstant{middlestyle}{stylemilieu}
\setinterfaceconstant{middletext}{textemilieu}
@@ -1173,6 +1182,7 @@
\setinterfaceconstant{rightquote}{citerdroite}
\setinterfaceconstant{rightsample}{echantillondroite}
\setinterfaceconstant{rightsentence}{phrasedroite}
+\setinterfaceconstant{rightsource}{rightsource}
\setinterfaceconstant{rightspeech}{discoursdroite}
\setinterfaceconstant{rightstyle}{styledroit}
\setinterfaceconstant{rightsubsentence}{sousphrasedroite}
@@ -1278,8 +1288,10 @@
\setinterfaceconstant{synonymcommand}{commandesynonyme}
\setinterfaceconstant{synonymstyle}{stylesynonyme}
\setinterfaceconstant{tab}{tab}
+\setinterfaceconstant{target}{target}
\setinterfaceconstant{text}{texte}
\setinterfaceconstant{textalign}{alignertexte}
+\setinterfaceconstant{textalternative}{textalternative}
\setinterfaceconstant{textcolor}{couleurtexte}
\setinterfaceconstant{textcommand}{commandetexte}
\setinterfaceconstant{textdistance}{distancetexte}
@@ -1306,6 +1318,7 @@
\setinterfaceconstant{toffset}{decalaget}
\setinterfaceconstant{tolerance}{tolerance}
\setinterfaceconstant{top}{haut}
+\setinterfaceconstant{topcolor}{topcolor}
\setinterfaceconstant{topcommand}{commandehaut}
\setinterfaceconstant{topdistance}{distancehaut}
\setinterfaceconstant{topframe}{cadrehaut}
diff --git a/tex/context/base/mkii/mult-pe.mkii b/tex/context/base/mkii/mult-pe.mkii
index 290da95f2..a8f4fc599 100644
--- a/tex/context/base/mkii/mult-pe.mkii
+++ b/tex/context/base/mkii/mult-pe.mkii
@@ -281,7 +281,6 @@
\setinterfacevariable{inright}{درون‌راست}
\setinterfacevariable{inrightedge}{درلبه‌راست}
\setinterfacevariable{inrightmargin}{درحاشیه‌راست}
-\setinterfacevariable{integral}{integral}
\setinterfacevariable{interaction}{پانل}
\setinterfacevariable{interactionmenu}{منوی‌پانل}
\setinterfacevariable{interactive}{interactive}
@@ -300,6 +299,7 @@
\setinterfacevariable{july}{ژولای}
\setinterfacevariable{june}{ژوئن}
\setinterfacevariable{keep}{نگهدار}
+\setinterfacevariable{keeptogether}{keeptogether}
\setinterfacevariable{kerncharacters}{kerncharacters}
\setinterfacevariable{knockout}{knockout}
\setinterfacevariable{label}{برچسب}
@@ -715,6 +715,7 @@
\setinterfaceconstant{bottom}{پایین}
\setinterfaceconstant{bottomafter}{bottomafter}
\setinterfaceconstant{bottombefore}{bottombefore}
+\setinterfaceconstant{bottomcolor}{bottomcolor}
\setinterfaceconstant{bottomcommand}{bottomcommand}
\setinterfaceconstant{bottomdistance}{فاصله‌پایین}
\setinterfaceconstant{bottomframe}{قالب‌پایین}
@@ -886,6 +887,7 @@
\setinterfaceconstant{header}{سربرگ}
\setinterfaceconstant{headerdistance}{فاصله‌سربرگ}
\setinterfaceconstant{headerstate}{وضعیت‌سربرگ}
+\setinterfaceconstant{headindenting}{headindenting}
\setinterfaceconstant{headlabel}{برچسب‌سر}
\setinterfaceconstant{headnumber}{شماره‌سر}
\setinterfaceconstant{headseparator}{headseparator}
@@ -917,6 +919,7 @@
\setinterfaceconstant{inputfile}{پرونده‌ورودی}
\setinterfaceconstant{insidesection}{insidesection}
\setinterfaceconstant{instance}{instance}
+\setinterfaceconstant{integral}{integral}
\setinterfaceconstant{intent}{intent}
\setinterfaceconstant{interaction}{پانل}
\setinterfaceconstant{interlinespace}{فضای‌بین‌خط}
@@ -959,6 +962,7 @@
\setinterfaceconstant{leftquote}{نقل‌چپ}
\setinterfaceconstant{leftsample}{leftsample}
\setinterfaceconstant{leftsentence}{جمله‌چپ}
+\setinterfaceconstant{leftsource}{leftsource}
\setinterfaceconstant{leftspeech}{سخنرانی‌چپ}
\setinterfaceconstant{leftstyle}{سبک‌چپ}
\setinterfaceconstant{leftsubsentence}{زیرجمله‌چپ}
@@ -991,7 +995,9 @@
\setinterfaceconstant{marstyle}{سبک‌حاش}
\setinterfaceconstant{mask}{mask}
\setinterfaceconstant{mathclass}{mathclass}
+\setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle}
\setinterfaceconstant{mathlimits}{mathlimits}
+\setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle}
\setinterfaceconstant{mathstyle}{mathstyle}
\setinterfaceconstant{max}{بیشترین}
\setinterfaceconstant{maxdepth}{maxdepth}
@@ -1003,6 +1009,7 @@
\setinterfaceconstant{middle}{میان}
\setinterfaceconstant{middlecolor}{middlecolor}
\setinterfaceconstant{middlecommand}{middlecommand}
+\setinterfaceconstant{middlesource}{middlesource}
\setinterfaceconstant{middlespeech}{سخنرانی‌میانی}
\setinterfaceconstant{middlestyle}{middlestyle}
\setinterfaceconstant{middletext}{متن‌میانی}
@@ -1175,6 +1182,7 @@
\setinterfaceconstant{rightquote}{نقل‌راست}
\setinterfaceconstant{rightsample}{rightsample}
\setinterfaceconstant{rightsentence}{جمله‌راست}
+\setinterfaceconstant{rightsource}{rightsource}
\setinterfaceconstant{rightspeech}{سخنرانی‌راست}
\setinterfaceconstant{rightstyle}{سبک‌راست}
\setinterfaceconstant{rightsubsentence}{زیرجمله‌راست}
@@ -1229,7 +1237,7 @@
\setinterfaceconstant{solution}{solution}
\setinterfaceconstant{sort}{sort}
\setinterfaceconstant{sorttype}{ترتیب‌تایپ}
-\setinterfaceconstant{source}{منبع}
+\setinterfaceconstant{source}{source}
\setinterfaceconstant{space}{فضا}
\setinterfaceconstant{spaceafter}{فضا‌بعداز}
\setinterfaceconstant{spaceafterside}{spaceafterside}
@@ -1280,6 +1288,7 @@
\setinterfaceconstant{synonymcommand}{synonymcommand}
\setinterfaceconstant{synonymstyle}{سبک‌مترادف}
\setinterfaceconstant{tab}{تب}
+\setinterfaceconstant{target}{target}
\setinterfaceconstant{text}{متن}
\setinterfaceconstant{textalign}{textalign}
\setinterfaceconstant{textalternative}{textalternative}
@@ -1309,6 +1318,7 @@
\setinterfaceconstant{toffset}{toffset}
\setinterfaceconstant{tolerance}{بردباری}
\setinterfaceconstant{top}{بالا}
+\setinterfaceconstant{topcolor}{topcolor}
\setinterfaceconstant{topcommand}{topcommand}
\setinterfaceconstant{topdistance}{فاصله‌بالا}
\setinterfaceconstant{topframe}{قالب‌راست}
diff --git a/tex/context/base/mkiv/anch-pos.lua b/tex/context/base/mkiv/anch-pos.lua
index 77bf09e39..93ba661a7 100644
--- a/tex/context/base/mkiv/anch-pos.lua
+++ b/tex/context/base/mkiv/anch-pos.lua
@@ -49,6 +49,7 @@ local context = context
local ctx_latelua = context.latelua
local tex = tex
+local texgetdimen = tex.getdimen
local texgetcount = tex.getcount
local texgetinteger = tex.getintegervalue or tex.getcount
local texsetcount = tex.setcount
@@ -574,8 +575,8 @@ implement {
actions = function()
nofparagraphs = nofparagraphs + 1
texsetcount("global","c_anch_positions_paragraph",nofparagraphs)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local t = {
p = true,
c = true,
@@ -704,8 +705,8 @@ implement {
name = "dosetpositionstrut",
arguments = "string",
actions = function(name)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local spec = {
p = true,
c = column,
@@ -726,8 +727,8 @@ implement {
name = "dosetpositionstrutkind",
arguments = { "string", "integer" },
actions = function(name,kind)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local spec = {
k = kind,
p = true,
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua
index 024002c07..aa6353297 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -22,6 +22,8 @@ adapting this file.
Updated end 2021 as prelude to ar's remote talk at the meeting. Needs some indic
checking (see comment field).
+
+Todo: get rid of specials = { "font", ... } in math ... we have already vectors.
]]--
local variants_emoji={
@@ -326,7 +328,7 @@ characters.data={
description="EXCLAMATION MARK",
direction="on",
linebreak="ex",
- mathclass="close",
+ mathclass="factorial",
synonyms={ "bang", "factorial" },
unicodeslot=0x21,
},
@@ -338,7 +340,7 @@ characters.data={
description="QUOTATION MARK",
direction="on",
linebreak="qu",
- mathclass="default",
+ mathclass="ordinary",
synonyms={ "neutral quotation mark" },
unicodeslot=0x22,
},
@@ -401,7 +403,7 @@ characters.data={
description="APOSTROPHE",
direction="on",
linebreak="qu",
- mathclass="default",
+ mathclass="ordinary",
synonyms={ "apl quote", "apostrophe-quote", "neutral single quotation mark" },
unicodeslot=0x27,
},
@@ -476,7 +478,7 @@ characters.data={
description="HYPHEN-MINUS",
direction="es",
linebreak="hy",
- mathclass="nothing",
+ mathclass="ordinary",
mathextensible="h",
mathfiller="relfill",
mathname="mathhyphen",
@@ -506,7 +508,7 @@ characters.data={
description="SOLIDUS",
direction="cs",
linebreak="sy",
- mathclass="middle",
+ mathclass="division",
synonyms={ "slash", "virgule" },
unicodeslot=0x2F,
},
@@ -517,7 +519,7 @@ characters.data={
description="DIGIT ZERO",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x30,
variants={
[0xFE00]="short diagonal stroke form",
@@ -532,7 +534,7 @@ characters.data={
description="DIGIT ONE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x31,
variants=variants_emoji,
},
@@ -543,7 +545,7 @@ characters.data={
description="DIGIT TWO",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x32,
variants=variants_emoji,
},
@@ -554,7 +556,7 @@ characters.data={
description="DIGIT THREE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x33,
variants=variants_emoji,
},
@@ -565,7 +567,7 @@ characters.data={
description="DIGIT FOUR",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x34,
variants=variants_emoji,
},
@@ -576,7 +578,7 @@ characters.data={
description="DIGIT FIVE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x35,
variants=variants_emoji,
},
@@ -587,7 +589,7 @@ characters.data={
description="DIGIT SIX",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x36,
variants=variants_emoji,
},
@@ -598,7 +600,7 @@ characters.data={
description="DIGIT SEVEN",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x37,
variants=variants_emoji,
},
@@ -609,7 +611,7 @@ characters.data={
description="DIGIT EIGHT",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x38,
variants=variants_emoji,
},
@@ -620,7 +622,7 @@ characters.data={
description="DIGIT NINE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x39,
variants=variants_emoji,
},
@@ -723,7 +725,6 @@ characters.data={
direction="l",
lccode=0x61,
linebreak="al",
- mathclass="variable",
unicodeslot=0x41,
},
{
@@ -734,7 +735,6 @@ characters.data={
direction="l",
lccode=0x62,
linebreak="al",
- mathclass="variable",
unicodeslot=0x42,
},
{
@@ -745,7 +745,6 @@ characters.data={
direction="l",
lccode=0x63,
linebreak="al",
- mathclass="variable",
unicodeslot=0x43,
},
{
@@ -756,7 +755,6 @@ characters.data={
direction="l",
lccode=0x64,
linebreak="al",
- mathclass="variable",
unicodeslot=0x44,
},
{
@@ -767,7 +765,6 @@ characters.data={
direction="l",
lccode=0x65,
linebreak="al",
- mathclass="variable",
unicodeslot=0x45,
},
{
@@ -778,7 +775,6 @@ characters.data={
direction="l",
lccode=0x66,
linebreak="al",
- mathclass="variable",
unicodeslot=0x46,
},
{
@@ -789,7 +785,6 @@ characters.data={
direction="l",
lccode=0x67,
linebreak="al",
- mathclass="variable",
unicodeslot=0x47,
},
{
@@ -800,7 +795,6 @@ characters.data={
direction="l",
lccode=0x68,
linebreak="al",
- mathclass="variable",
unicodeslot=0x48,
},
{
@@ -812,7 +806,6 @@ characters.data={
direction="l",
lccode=0x69,
linebreak="al",
- mathclass="variable",
unicodeslot=0x49,
},
{
@@ -824,7 +817,6 @@ characters.data={
direction="l",
lccode=0x6A,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4A,
},
{
@@ -835,7 +827,6 @@ characters.data={
direction="l",
lccode=0x6B,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4B,
},
{
@@ -846,7 +837,6 @@ characters.data={
direction="l",
lccode=0x6C,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4C,
},
{
@@ -857,7 +847,6 @@ characters.data={
direction="l",
lccode=0x6D,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4D,
},
{
@@ -868,7 +857,6 @@ characters.data={
direction="l",
lccode=0x6E,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4E,
},
{
@@ -879,7 +867,6 @@ characters.data={
direction="l",
lccode=0x6F,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4F,
},
{
@@ -890,7 +877,6 @@ characters.data={
direction="l",
lccode=0x70,
linebreak="al",
- mathclass="variable",
unicodeslot=0x50,
},
{
@@ -901,7 +887,6 @@ characters.data={
direction="l",
lccode=0x71,
linebreak="al",
- mathclass="variable",
unicodeslot=0x51,
},
{
@@ -912,7 +897,6 @@ characters.data={
direction="l",
lccode=0x72,
linebreak="al",
- mathclass="variable",
unicodeslot=0x52,
},
{
@@ -923,7 +907,6 @@ characters.data={
direction="l",
lccode=0x73,
linebreak="al",
- mathclass="variable",
unicodeslot=0x53,
},
{
@@ -934,7 +917,6 @@ characters.data={
direction="l",
lccode=0x74,
linebreak="al",
- mathclass="variable",
unicodeslot=0x54,
},
{
@@ -945,7 +927,6 @@ characters.data={
direction="l",
lccode=0x75,
linebreak="al",
- mathclass="variable",
unicodeslot=0x55,
},
{
@@ -956,7 +937,6 @@ characters.data={
direction="l",
lccode=0x76,
linebreak="al",
- mathclass="variable",
unicodeslot=0x56,
},
{
@@ -967,7 +947,6 @@ characters.data={
direction="l",
lccode=0x77,
linebreak="al",
- mathclass="variable",
unicodeslot=0x57,
},
{
@@ -978,7 +957,6 @@ characters.data={
direction="l",
lccode=0x78,
linebreak="al",
- mathclass="variable",
unicodeslot=0x58,
},
{
@@ -989,7 +967,6 @@ characters.data={
direction="l",
lccode=0x79,
linebreak="al",
- mathclass="variable",
unicodeslot=0x59,
},
{
@@ -1000,7 +977,6 @@ characters.data={
direction="l",
lccode=0x7A,
linebreak="al",
- mathclass="variable",
unicodeslot=0x5A,
},
{
@@ -1025,7 +1001,7 @@ characters.data={
description="REVERSE SOLIDUS",
direction="on",
linebreak="pr",
- mathclass="nothing",
+ mathclass="division",
mathname="backslash",
synonyms={ "backslash" },
unicodeslot=0x5C,
@@ -1088,7 +1064,6 @@ characters.data={
description="LATIN SMALL LETTER A",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x41,
unicodeslot=0x61,
},
@@ -1099,7 +1074,6 @@ characters.data={
description="LATIN SMALL LETTER B",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x42,
unicodeslot=0x62,
},
@@ -1110,7 +1084,6 @@ characters.data={
description="LATIN SMALL LETTER C",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x43,
unicodeslot=0x63,
},
@@ -1121,7 +1094,6 @@ characters.data={
description="LATIN SMALL LETTER D",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x44,
unicodeslot=0x64,
},
@@ -1132,7 +1104,6 @@ characters.data={
description="LATIN SMALL LETTER E",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x45,
unicodeslot=0x65,
},
@@ -1143,7 +1114,6 @@ characters.data={
description="LATIN SMALL LETTER F",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x46,
unicodeslot=0x66,
},
@@ -1154,7 +1124,6 @@ characters.data={
description="LATIN SMALL LETTER G",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x47,
unicodeslot=0x67,
},
@@ -1165,7 +1134,6 @@ characters.data={
description="LATIN SMALL LETTER H",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x48,
unicodeslot=0x68,
},
@@ -1177,7 +1145,6 @@ characters.data={
description="LATIN SMALL LETTER I",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x49,
unicodeslot=0x69,
},
@@ -1188,7 +1155,6 @@ characters.data={
description="LATIN SMALL LETTER J",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4A,
unicodeslot=0x6A,
},
@@ -1199,7 +1165,6 @@ characters.data={
description="LATIN SMALL LETTER K",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4B,
unicodeslot=0x6B,
},
@@ -1210,7 +1175,6 @@ characters.data={
description="LATIN SMALL LETTER L",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4C,
unicodeslot=0x6C,
},
@@ -1221,7 +1185,6 @@ characters.data={
description="LATIN SMALL LETTER M",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4D,
unicodeslot=0x6D,
},
@@ -1232,7 +1195,6 @@ characters.data={
description="LATIN SMALL LETTER N",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4E,
unicodeslot=0x6E,
},
@@ -1243,7 +1205,6 @@ characters.data={
description="LATIN SMALL LETTER O",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4F,
unicodeslot=0x6F,
},
@@ -1254,7 +1215,6 @@ characters.data={
description="LATIN SMALL LETTER P",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x50,
unicodeslot=0x70,
},
@@ -1265,7 +1225,6 @@ characters.data={
description="LATIN SMALL LETTER Q",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x51,
unicodeslot=0x71,
},
@@ -1276,7 +1235,6 @@ characters.data={
description="LATIN SMALL LETTER R",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x52,
unicodeslot=0x72,
},
@@ -1287,7 +1245,6 @@ characters.data={
description="LATIN SMALL LETTER S",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x53,
unicodeslot=0x73,
},
@@ -1298,7 +1255,6 @@ characters.data={
description="LATIN SMALL LETTER T",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x54,
unicodeslot=0x74,
},
@@ -1309,7 +1265,6 @@ characters.data={
description="LATIN SMALL LETTER U",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x55,
unicodeslot=0x75,
},
@@ -1320,7 +1275,6 @@ characters.data={
description="LATIN SMALL LETTER V",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x56,
unicodeslot=0x76,
},
@@ -1331,7 +1285,6 @@ characters.data={
description="LATIN SMALL LETTER W",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x57,
unicodeslot=0x77,
},
@@ -1342,7 +1295,6 @@ characters.data={
description="LATIN SMALL LETTER X",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x58,
unicodeslot=0x78,
},
@@ -1353,7 +1305,6 @@ characters.data={
description="LATIN SMALL LETTER Y",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x59,
unicodeslot=0x79,
},
@@ -1364,7 +1315,6 @@ characters.data={
description="LATIN SMALL LETTER Z",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x5A,
unicodeslot=0x7A,
},
@@ -1394,7 +1344,7 @@ characters.data={
linebreak="ba",
mathspec={
{
- class="nothing",
+ class="ordinary",
name="arrowvert",
},
{
@@ -1741,7 +1691,7 @@ characters.data={
description="YEN SIGN",
direction="et",
linebreak="pr",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="yen",
synonyms={ "yuan sign" },
unicodeslot=0xA5,
@@ -1765,7 +1715,7 @@ characters.data={
description="SECTION SIGN",
direction="on",
linebreak="ai",
- mathclass="box",
+ mathclass="ordinary",
mathname="S",
synonyms={ "european paragraph sign" },
unicodeslot=0xA7,
@@ -1956,7 +1906,7 @@ characters.data={
description="PILCROW SIGN",
direction="on",
linebreak="ai",
- mathclass="box",
+ mathclass="ordinary",
mathname="P",
synonyms={ "european section sign", "paragraph sign" },
unicodeslot=0xB6,
@@ -4696,7 +4646,6 @@ characters.data={
description="LATIN SMALL LETTER LAMBDA WITH STROKE",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="lambdabar",
synonyms={ "latin letter lambda bar" },
unicodeslot=0x19B,
@@ -8186,6 +8135,9 @@ characters.data={
description="COMBINING GRAVE ACCENT",
direction="nsm",
linebreak="cm",
+ mathclass="topaccent",
+ mathname="widegrave",
+ mathstretch="h",
synonyms={ "greek varia" },
unicodeslot=0x300,
},
@@ -8705,6 +8657,7 @@ characters.data={
description="COMBINING LOW LINE",
direction="nsm",
linebreak="cm",
+ mathextensible="l",
synonyms={ "underline", "underscore" },
unicodeslot=0x332,
},
@@ -9537,7 +9490,6 @@ characters.data={
direction="l",
lccode=0x3B1,
linebreak="al",
- mathclass="variable",
mathname="Alpha",
unicodeslot=0x391,
},
@@ -9550,7 +9502,6 @@ characters.data={
direction="l",
lccode=0x3B2,
linebreak="al",
- mathclass="variable",
mathname="Beta",
unicodeslot=0x392,
},
@@ -9563,7 +9514,6 @@ characters.data={
direction="l",
lccode=0x3B3,
linebreak="al",
- mathclass="variable",
mathname="Gamma",
synonyms={ "gamma function" },
unicodeslot=0x393,
@@ -9577,7 +9527,6 @@ characters.data={
direction="l",
lccode=0x3B4,
linebreak="al",
- mathclass="variable",
mathname="Delta",
unicodeslot=0x394,
},
@@ -9590,7 +9539,6 @@ characters.data={
direction="l",
lccode=0x3B5,
linebreak="al",
- mathclass="variable",
mathname="Epsilon",
unicodeslot=0x395,
},
@@ -9603,7 +9551,6 @@ characters.data={
direction="l",
lccode=0x3B6,
linebreak="al",
- mathclass="variable",
mathname="Zeta",
unicodeslot=0x396,
},
@@ -9616,7 +9563,6 @@ characters.data={
direction="l",
lccode=0x3B7,
linebreak="al",
- mathclass="variable",
mathname="Eta",
unicodeslot=0x397,
},
@@ -9629,7 +9575,6 @@ characters.data={
direction="l",
lccode=0x3B8,
linebreak="al",
- mathclass="variable",
mathname="Theta",
unicodeslot=0x398,
},
@@ -9642,7 +9587,6 @@ characters.data={
direction="l",
lccode=0x3B9,
linebreak="al",
- mathclass="variable",
mathname="Iota",
unicodeslot=0x399,
},
@@ -9655,7 +9599,6 @@ characters.data={
direction="l",
lccode=0x3BA,
linebreak="al",
- mathclass="variable",
mathname="Kappa",
unicodeslot=0x39A,
},
@@ -9668,7 +9611,6 @@ characters.data={
direction="l",
lccode=0x3BB,
linebreak="al",
- mathclass="variable",
mathname="Lambda",
unicodeslot=0x39B,
},
@@ -9681,7 +9623,6 @@ characters.data={
direction="l",
lccode=0x3BC,
linebreak="al",
- mathclass="variable",
mathname="Mu",
unicodeslot=0x39C,
},
@@ -9694,7 +9635,6 @@ characters.data={
direction="l",
lccode=0x3BD,
linebreak="al",
- mathclass="variable",
mathname="Nu",
unicodeslot=0x39D,
},
@@ -9707,7 +9647,6 @@ characters.data={
direction="l",
lccode=0x3BE,
linebreak="al",
- mathclass="variable",
mathname="Xi",
unicodeslot=0x39E,
},
@@ -9720,7 +9659,6 @@ characters.data={
direction="l",
lccode=0x3BF,
linebreak="al",
- mathclass="variable",
mathname="Omicron",
unicodeslot=0x39F,
},
@@ -9733,7 +9671,6 @@ characters.data={
direction="l",
lccode=0x3C0,
linebreak="al",
- mathclass="variable",
mathname="Pi",
unicodeslot=0x3A0,
},
@@ -9746,7 +9683,6 @@ characters.data={
direction="l",
lccode=0x3C1,
linebreak="al",
- mathclass="variable",
mathname="Rho",
unicodeslot=0x3A1,
},
@@ -9759,7 +9695,6 @@ characters.data={
direction="l",
lccode=0x3C3,
linebreak="al",
- mathclass="variable",
mathname="Sigma",
unicodeslot=0x3A3,
},
@@ -9772,7 +9707,6 @@ characters.data={
direction="l",
lccode=0x3C4,
linebreak="al",
- mathclass="variable",
mathname="Tau",
unicodeslot=0x3A4,
},
@@ -9785,7 +9719,6 @@ characters.data={
direction="l",
lccode=0x3C5,
linebreak="al",
- mathclass="variable",
mathname="Upsilon",
unicodeslot=0x3A5,
},
@@ -9798,7 +9731,6 @@ characters.data={
direction="l",
lccode=0x3C6,
linebreak="al",
- mathclass="variable",
mathname="Phi",
unicodeslot=0x3A6,
},
@@ -9811,7 +9743,6 @@ characters.data={
direction="l",
lccode=0x3C7,
linebreak="al",
- mathclass="variable",
mathname="Chi",
unicodeslot=0x3A7,
},
@@ -9824,7 +9755,6 @@ characters.data={
direction="l",
lccode=0x3C8,
linebreak="al",
- mathclass="variable",
mathname="Psi",
unicodeslot=0x3A8,
},
@@ -9837,7 +9767,6 @@ characters.data={
direction="l",
lccode=0x3C9,
linebreak="al",
- mathclass="variable",
mathname="Omega",
unicodeslot=0x3A9,
},
@@ -9933,7 +9862,6 @@ characters.data={
description="GREEK SMALL LETTER ALPHA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="alpha",
uccode=0x391,
unicodeslot=0x3B1,
@@ -9946,7 +9874,6 @@ characters.data={
description="GREEK SMALL LETTER BETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="beta",
uccode=0x392,
unicodeslot=0x3B2,
@@ -9959,7 +9886,6 @@ characters.data={
description="GREEK SMALL LETTER GAMMA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="gamma",
uccode=0x393,
unicodeslot=0x3B3,
@@ -9972,7 +9898,6 @@ characters.data={
description="GREEK SMALL LETTER DELTA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="delta",
uccode=0x394,
unicodeslot=0x3B4,
@@ -9985,7 +9910,6 @@ characters.data={
description="GREEK SMALL LETTER EPSILON",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varepsilon",
uccode=0x395,
unicodeslot=0x3B5,
@@ -9998,7 +9922,6 @@ characters.data={
description="GREEK SMALL LETTER ZETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="zeta",
uccode=0x396,
unicodeslot=0x3B6,
@@ -10011,7 +9934,6 @@ characters.data={
description="GREEK SMALL LETTER ETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="eta",
uccode=0x397,
unicodeslot=0x3B7,
@@ -10024,7 +9946,6 @@ characters.data={
description="GREEK SMALL LETTER THETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="theta",
uccode=0x398,
unicodeslot=0x3B8,
@@ -10037,7 +9958,6 @@ characters.data={
description="GREEK SMALL LETTER IOTA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="iota",
uccode=0x399,
unicodeslot=0x3B9,
@@ -10050,7 +9970,6 @@ characters.data={
description="GREEK SMALL LETTER KAPPA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="kappa",
uccode=0x39A,
unicodeslot=0x3BA,
@@ -10063,7 +9982,6 @@ characters.data={
description="GREEK SMALL LETTER LAMDA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="lambda",
uccode=0x39B,
unicodeslot=0x3BB,
@@ -10076,7 +9994,6 @@ characters.data={
description="GREEK SMALL LETTER MU",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="mu",
uccode=0x39C,
unicodeslot=0x3BC,
@@ -10089,7 +10006,6 @@ characters.data={
description="GREEK SMALL LETTER NU",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="nu",
uccode=0x39D,
unicodeslot=0x3BD,
@@ -10102,7 +10018,6 @@ characters.data={
description="GREEK SMALL LETTER XI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="xi",
uccode=0x39E,
unicodeslot=0x3BE,
@@ -10115,7 +10030,6 @@ characters.data={
description="GREEK SMALL LETTER OMICRON",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="omicron",
uccode=0x39F,
unicodeslot=0x3BF,
@@ -10128,7 +10042,6 @@ characters.data={
description="GREEK SMALL LETTER PI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="pi",
synonyms={ "mathematical constant 3.141592... pi", "mathematical constant pi" },
uccode=0x3A0,
@@ -10142,7 +10055,6 @@ characters.data={
description="GREEK SMALL LETTER RHO",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="rho",
uccode=0x3A1,
unicodeslot=0x3C1,
@@ -10154,7 +10066,6 @@ characters.data={
description="GREEK SMALL LETTER FINAL SIGMA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varsigma",
uccode=0x3C3,
unicodeslot=0x3C2,
@@ -10167,7 +10078,6 @@ characters.data={
description="GREEK SMALL LETTER SIGMA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="sigma",
uccode=0x3A3,
unicodeslot=0x3C3,
@@ -10180,7 +10090,6 @@ characters.data={
description="GREEK SMALL LETTER TAU",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="tau",
uccode=0x3A4,
unicodeslot=0x3C4,
@@ -10193,7 +10102,6 @@ characters.data={
description="GREEK SMALL LETTER UPSILON",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="upsilon",
uccode=0x3A5,
unicodeslot=0x3C5,
@@ -10206,7 +10114,6 @@ characters.data={
description="GREEK SMALL LETTER PHI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varphi",
uccode=0x3A6,
unicodeslot=0x3C6,
@@ -10219,7 +10126,6 @@ characters.data={
description="GREEK SMALL LETTER CHI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="chi",
uccode=0x3A7,
unicodeslot=0x3C7,
@@ -10232,7 +10138,6 @@ characters.data={
description="GREEK SMALL LETTER PSI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="psi",
uccode=0x3A8,
unicodeslot=0x3C8,
@@ -10245,7 +10150,6 @@ characters.data={
description="GREEK SMALL LETTER OMEGA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="omega",
uccode=0x3A9,
unicodeslot=0x3C9,
@@ -10337,7 +10241,6 @@ characters.data={
description="GREEK THETA SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varTheta",
specials={ "compat", 0x3B8 },
synonyms={ "script theta" },
@@ -10378,7 +10281,6 @@ characters.data={
description="GREEK PHI SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="phi",
specials={ "compat", 0x3C6 },
uccode=0x3C6,
@@ -10391,7 +10293,6 @@ characters.data={
description="GREEK PI SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varpi",
specials={ "compat", 0x3C0 },
synonyms={ "omega pi" },
@@ -10447,7 +10348,6 @@ characters.data={
direction="l",
lccode=0x3DD,
linebreak="al",
- mathclass="variable",
mathname="digamma",
unicodeslot=0x3DC,
},
@@ -10679,7 +10579,6 @@ characters.data={
description="GREEK LUNATE EPSILON SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="epsilon",
specials={ "compat", 0x3B5 },
synonyms={ "straight epsilon" },
@@ -10691,7 +10590,6 @@ characters.data={
description="GREEK REVERSED LUNATE EPSILON SYMBOL",
direction="on",
linebreak="al",
- mathclass="variable",
mathname="backepsilon",
synonyms={ "reversed straight epsilon" },
unicodeslot=0x3F6,
@@ -23166,7 +23064,6 @@ characters.data={
direction="l",
indic="d",
indicmark="l",
- indicorder="bh",
linebreak="cm",
unicodeslot=0x9C8,
},
@@ -23218,7 +23115,8 @@ characters.data={
category="mc",
description="BENGALI AU LENGTH MARK",
direction="l",
- indic="o",
+ indic="d",
+ indicmark="r",
indicorder="ap",
linebreak="cm",
unicodeslot=0x9D7,
@@ -62435,7 +62333,7 @@ characters.data={
name="Vert",
},
{
- class="nothing",
+ class="ordinary",
name="Arrowvert",
},
{
@@ -62558,7 +62456,7 @@ characters.data={
name="dagger",
},
{
- class="box",
+ class="ordinary",
name="dag",
},
},
@@ -62579,7 +62477,7 @@ characters.data={
name="ddagger",
},
{
- class="box",
+ class="ordinary",
name="ddag",
},
},
@@ -62750,7 +62648,7 @@ characters.data={
description="PRIME",
direction="et",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="prime",
synonyms={ "feet", "minutes" },
unicodeslot=0x2032,
@@ -62762,7 +62660,7 @@ characters.data={
description="DOUBLE PRIME",
direction="et",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="doubleprime",
specials={ "compat", 0x2032, 0x2032 },
synonyms={ "inches", "seconds" },
@@ -62773,7 +62671,7 @@ characters.data={
description="TRIPLE PRIME",
direction="et",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="tripleprime",
specials={ "compat", 0x2032, 0x2032, 0x2032 },
unicodeslot=0x2034,
@@ -62785,7 +62683,7 @@ characters.data={
description="REVERSED PRIME",
direction="on",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="reversedprime",
unicodeslot=0x2035,
},
@@ -62794,7 +62692,7 @@ characters.data={
description="REVERSED DOUBLE PRIME",
direction="on",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="reverseddoubleprime",
specials={ "compat", 0x2035, 0x2035 },
unicodeslot=0x2036,
@@ -62804,7 +62702,7 @@ characters.data={
description="REVERSED TRIPLE PRIME",
direction="on",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="reversedtripleprime",
specials={ "compat", 0x2035, 0x2035, 0x2035 },
unicodeslot=0x2037,
@@ -63089,7 +62987,7 @@ characters.data={
description="QUADRUPLE PRIME",
direction="on",
linebreak="al",
- mathclass="nothing",
+ mathclass="prime",
mathname="quadrupleprime",
specials={ "compat", 0x2032, 0x2032, 0x2032, 0x2032 },
unicodeslot=0x2057,
@@ -64046,7 +63944,7 @@ characters.data={
description="COMBINING ENCLOSING SQUARE",
direction="nsm",
linebreak="cm",
- mathclass="default",
+ mathclass="ordinary",
mathname="bigsquare",
unicodeslot=0x20DE,
},
@@ -64055,7 +63953,7 @@ characters.data={
description="COMBINING ENCLOSING DIAMOND",
direction="nsm",
linebreak="cm",
- mathclass="default",
+ mathclass="ordinary",
mathname="bigdiamond",
unicodeslot=0x20DF,
},
@@ -64220,7 +64118,6 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL C",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="complexes",
specials={ "font", 0x43 },
synonyms={ "complex numbers", "the set of complex numbers" },
@@ -64269,7 +64166,6 @@ characters.data={
description="EULER CONSTANT",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="Eulerconst",
specials={ "compat", 0x190 },
unicodeslot=0x2107,
@@ -64333,7 +64229,6 @@ characters.data={
description="PLANCK CONSTANT",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="Plankconst",
specials={ "font", 0x68 },
unicodeslot=0x210E,
@@ -64345,7 +64240,7 @@ characters.data={
linebreak="al",
mathspec={
{
- class="variable",
+ class="ordinary",
name="hslash",
},
{
@@ -64372,7 +64267,6 @@ characters.data={
description="BLACK-LETTER CAPITAL I",
direction="l",
linebreak="al",
- mathclass="default",
mathname="Im",
specials={ "font", 0x49 },
synonyms={ "imaginary part" },
@@ -64397,7 +64291,7 @@ characters.data={
description="SCRIPT SMALL L",
direction="l",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="ell",
specials={ "font", 0x6C },
synonyms={ "liter" },
@@ -64416,7 +64310,6 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL N",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="naturalnumbers",
specials={ "font", 0x4E },
synonyms={ "natural number" },
@@ -64448,7 +64341,6 @@ characters.data={
description="SCRIPT CAPITAL P",
direction="on",
linebreak="al",
- mathclass="default",
mathname="wp",
synonyms={ "weierstrass elliptic function" },
unicodeslot=0x2118,
@@ -64458,7 +64350,6 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL P",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="primes",
specials={ "font", 0x50 },
unicodeslot=0x2119,
@@ -64468,7 +64359,6 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL Q",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="rationals",
specials={ "font", 0x51 },
synonyms={ "rational numbers", "the set of rational numbers" },
@@ -64491,7 +64381,6 @@ characters.data={
description="BLACK-LETTER CAPITAL R",
direction="l",
linebreak="al",
- mathclass="default",
mathname="Re",
specials={ "font", 0x52 },
synonyms={ "real part" },
@@ -64502,7 +64391,6 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL R",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="reals",
specials={ "font", 0x52 },
synonyms={ "real numbers", "the set of real numbers" },
@@ -64566,7 +64454,6 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL Z",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="integers",
specials={ "font", 0x5A },
synonyms={ "integers", "the set of integers" },
@@ -64589,7 +64476,6 @@ characters.data={
direction="l",
lccode=0x3C9,
linebreak="al",
- mathclass="variable",
mathname="ohm",
specials={ "char", 0x3A9 },
unicodeslot=0x2126,
@@ -64600,7 +64486,6 @@ characters.data={
description="INVERTED OHM SIGN",
direction="on",
linebreak="al",
- mathclass="variable",
mathname="mho",
synonyms={ "mho" },
unicodeslot=0x2127,
@@ -64618,7 +64503,6 @@ characters.data={
description="TURNED GREEK SMALL LETTER IOTA",
direction="on",
linebreak="al",
- mathclass="variable",
mathname="turnediota",
synonyms={ "unique element" },
unicodeslot=0x2129,
@@ -64642,7 +64526,6 @@ characters.data={
direction="l",
lccode=0xE5,
linebreak="ai",
- mathclass="variable",
mathname="Angstrom",
specials={ "char", 0xC5 },
unicodeslot=0x212B,
@@ -64744,7 +64627,7 @@ characters.data={
description="ALEF SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="aleph",
specials={ "compat", 0x5D0 },
synonyms={ "first transfinite cardinal", "first transfinite cardinal countable" },
@@ -64755,7 +64638,7 @@ characters.data={
description="BET SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="beth",
specials={ "compat", 0x5D1 },
synonyms={ "second transfinite cardinal", "second transfinite cardinal continuum" },
@@ -64766,7 +64649,7 @@ characters.data={
description="GIMEL SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="gimel",
specials={ "compat", 0x5D2 },
synonyms={ "third transfinite cardinal" },
@@ -64777,7 +64660,7 @@ characters.data={
description="DALET SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="daleth",
specials={ "compat", 0x5D3 },
synonyms={ "fourth transfinite cardinal" },
@@ -64889,7 +64772,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC CAPITAL D",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="differential",
mathname="differentialD",
specials={ "font", 0x44 },
unicodeslot=0x2145,
@@ -64899,7 +64782,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL D",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="differential",
mathname="differentiald",
specials={ "font", 0x64 },
unicodeslot=0x2146,
@@ -64909,7 +64792,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL E",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="exponential",
mathname="exponentiale",
specials={ "font", 0x65 },
unicodeslot=0x2147,
@@ -64919,7 +64802,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL I",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="imaginaryi",
specials={ "font", 0x69 },
unicodeslot=0x2148,
@@ -64929,7 +64812,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL J",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="imaginaryj",
specials={ "font", 0x6A },
unicodeslot=0x2149,
@@ -66891,7 +66774,7 @@ characters.data={
description="PARTIAL DIFFERENTIAL",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="differential",
mathname="partial",
unicodeslot=0x2202,
},
@@ -66923,7 +66806,7 @@ characters.data={
description="EMPTY SET",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="emptyset",
synonyms={ "null set" },
unicodeslot=0x2205,
@@ -66947,7 +66830,7 @@ characters.data={
description="NABLA",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="nabla",
synonyms={ "backward difference", "del" },
unicodeslot=0x2207,
@@ -67229,7 +67112,7 @@ characters.data={
description="INFINITY",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="infty",
unicodeslot=0x221E,
},
@@ -67419,7 +67302,7 @@ characters.data={
name="int",
},
{
- class="nothing",
+ class="ordinary",
name="intop",
},
},
@@ -67439,7 +67322,7 @@ characters.data={
name="iint",
},
{
- class="nothing",
+ class="ordinary",
name="iintop",
},
},
@@ -67458,7 +67341,7 @@ characters.data={
name="iiint",
},
{
- class="nothing",
+ class="ordinary",
name="iiintop",
},
},
@@ -68790,7 +68673,7 @@ characters.data={
description="DOWN TACK",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="top",
synonyms={ "top" },
unicodeslot=0x22A4,
@@ -68804,7 +68687,7 @@ characters.data={
linebreak="ai",
mathspec={
{
- class="default",
+ class="ordinary",
name="bot",
},
{
@@ -69717,11 +69600,11 @@ characters.data={
linebreak="al",
mathspec={
{
- class="ord",
+ class="ordinary",
name="varnothing",
},
{
- class="ord",
+ class="ordinary",
name="diameter",
},
},
@@ -76494,7 +76377,7 @@ characters.data={
description="BLACK SPADE SUIT",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="spadesuit",
unicodeslot=0x2660,
variants=variants_emoji,
@@ -76506,7 +76389,7 @@ characters.data={
description="WHITE HEART SUIT",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="heartsuit",
unicodeslot=0x2661,
},
@@ -76516,7 +76399,7 @@ characters.data={
description="WHITE DIAMOND SUIT",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="diamondsuit",
unicodeslot=0x2662,
},
@@ -76527,7 +76410,7 @@ characters.data={
description="BLACK CLUB SUIT",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="clubsuit",
synonyms={ "shamrock" },
unicodeslot=0x2663,
@@ -76629,7 +76512,7 @@ characters.data={
description="MUSIC FLAT SIGN",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="flat",
unicodeslot=0x266D,
},
@@ -76638,7 +76521,7 @@ characters.data={
description="MUSIC NATURAL SIGN",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="natural",
unicodeslot=0x266E,
},
@@ -76649,7 +76532,7 @@ characters.data={
description="MUSIC SHARP SIGN",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="sharp",
synonyms={ "infix bag count" },
unicodeslot=0x266F,
@@ -77950,7 +77833,7 @@ characters.data={
description="CHECK MARK",
direction="on",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="checkmark",
unicodeslot=0x2713,
},
@@ -78046,7 +77929,7 @@ characters.data={
description="MALTESE CROSS",
direction="on",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="maltese",
unicodeslot=0x2720,
},
@@ -83685,7 +83568,7 @@ characters.data={
name="iiiint",
},
{
- class="nothing",
+ class="ordinary",
name="iiiintop",
},
},
@@ -227475,6 +227358,13 @@ characters.data={
description="MATHEMATICAL ITALIC CAPITAL D",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ name="Dd",
+ class="differential",
+ },
+ },
specials={ "font", 0x44 },
unicodeslot=0x1D437,
visual="it",
@@ -227709,6 +227599,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL D",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ name="dd",
+ class="differential",
+ },
+ },
specials={ "font", 0x64 },
unicodeslot=0x1D451,
visual="it",
@@ -227718,6 +227615,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL E",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ name="ee",
+ class="exponential",
+ },
+ },
specials={ "font", 0x65 },
unicodeslot=0x1D452,
visual="it",
@@ -227745,6 +227649,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL I",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ name="ii",
+ class="imaginary",
+ },
+ },
specials={ "font", 0x69 },
unicodeslot=0x1D456,
visual="it",
@@ -227754,6 +227665,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL J",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ name="ji",
+ class="imaginary",
+ },
+ },
specials={ "font", 0x6A },
unicodeslot=0x1D457,
visual="it",
@@ -232673,7 +232591,7 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL DOTLESS I",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="imath",
specials={ "font", 0x131 },
unicodeslot=0x1D6A4,
@@ -232684,7 +232602,7 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL DOTLESS J",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="jmath",
specials={ "font", 0x237 },
unicodeslot=0x1D6A5,
@@ -233154,6 +233072,7 @@ characters.data={
description="MATHEMATICAL BOLD PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D6DB,
visual="bf",
@@ -233442,7 +233361,7 @@ characters.data={
description="MATHEMATICAL ITALIC NABLA",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
specials={ "font", 0x2207 },
unicodeslot=0x1D6FB,
visual="it",
@@ -233677,6 +233596,7 @@ characters.data={
description="MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D715,
visual="it",
@@ -233695,7 +233615,7 @@ characters.data={
description="MATHEMATICAL ITALIC THETA SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="vartheta",
specials={ "font", 0x3D1 },
unicodeslot=0x1D717,
@@ -233706,7 +233626,7 @@ characters.data={
description="MATHEMATICAL ITALIC KAPPA SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="varkappa",
specials={ "font", 0x3F0 },
unicodeslot=0x1D718,
@@ -233726,7 +233646,6 @@ characters.data={
description="MATHEMATICAL ITALIC RHO SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varrho",
specials={ "font", 0x3F1 },
unicodeslot=0x1D71A,
@@ -234205,6 +234124,7 @@ characters.data={
description="MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D74F,
visual="bi",
@@ -234727,6 +234647,7 @@ characters.data={
description="MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D789,
visual="bf",
@@ -235249,6 +235170,7 @@ characters.data={
description="MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D7C3,
visual="bi",
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index fb27e5d04..f33357f04 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2022.01.21 20:10}
+\newcontextversion{2022.03.12 11:24}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 1aaa77a0f..1e81770dc 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -49,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2022.01.21 20:10}
+\edef\contextversion{2022.03.12 11:24}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-osd.lua b/tex/context/base/mkiv/font-osd.lua
index 34c047290..d169faf64 100644
--- a/tex/context/base/mkiv/font-osd.lua
+++ b/tex/context/base/mkiv/font-osd.lua
@@ -6,6 +6,16 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
license = "see context related readme files"
}
+local experiment1 = false
+local experiment2 = false
+local experiment2b1 = false
+local experiment2b2 = false
+
+experiments.register("fonts.indic.experiment1", function(v) experiment1 = v end)
+experiments.register("fonts.indic.experiment2", function(v) experiment2 = v end)
+experiments.register("fonts.indic.experiment2b1", function(v) experiment2b1 = v end)
+experiments.register("fonts.indic.experiment2b2", function(v) experiment2b2 = v end)
+
-- we need to check nbsphash (context only)
-- A few remarks:
@@ -1382,13 +1392,16 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
if reph or vattu then
+-- print(">>> has reph or vattu")
local current = start
local cns = nil
local done = false
while current ~= stop do
+-- print("\t>>> current ~= stop yet")
local c = current
local n = getnext(current)
if ra[getchar(current)] and halant[getchar(n)] then
+-- print("\t\t>>> current ra; next halant")
c = n
n = getnext(n)
local b, bn = base, base
@@ -1402,6 +1415,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
if getstate(current,s_rphf) then
-- position Reph (Ra + H) after post-base 'matra' (if any) since these
-- become marks on the 'matra', not on the base glyph
+-- print("\t\t\t>>> ra + halant form → reph")
if b ~= current then
if current == start then
if head == start then
@@ -1421,6 +1435,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
elseif cns and getnext(cns) ~= current then -- todo: optimize next
-- position below-base Ra (vattu) following the consonants on which it is placed (either the base consonant or one of the pre-base consonants)
+-- print("\t\t\t>>> ra below base (vattu) → rkrf")
local cp = getprev(current)
local cnsn = getnext(cns)
setlink(cp,n)
@@ -1434,14 +1449,17 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
current = getprev(n)
end
else
+-- print("\t\t>>> NOT! current ra; next halant")
local char = getchar(current)
if consonant[char] then
+-- print("\t\t\t>>> is consonant")
cns = current
local next = getnext(cns)
if halant[getchar(next)] then
cns = next
end
if not vatucache[char] then
+-- print("\t\t\t\t>>> is in vatucache")
next = getnext(cns)
while dependent_vowel[getchar(next)] do
cns = next
@@ -1449,6 +1467,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
end
elseif char == c_nbsp then
+-- print("\t\t\t>>> is nbsp")
nbspaces = nbspaces + 1
cns = current
local next = getnext(cns)
@@ -1917,6 +1936,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
reorderreph.coverage = { } -- use local
rephbase[font] = { } -- use local
+-- print("!!!!!! reorder two ")
+
for i=1,#seqsubset do
-- this can be done more efficient, the last test and less getnext
@@ -2104,6 +2125,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
end
end
else -- not Stand Alone cluster
+-- print("!!!! not standalone cluster")
local last = getnext(stop)
while current ~= last do -- find base consonant
local next = getnext(current)
@@ -2173,7 +2195,10 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
end
end
--
- if not moved[current] and dependent_vowel[char] then
+-- print("char: " .. char)
+-- if not moved[current] and dependent_vowel[char] then
+ if dependent_vowel[char] then
+-- print(">>!! dependent vowel")
if pre_mark[char] then -- or: if before_main or before_half
moved[current] = true
-- can be helper to remove one node
@@ -2384,8 +2409,8 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
if not n then
return c
end
+ local v = ischar(n,font)
if variant == 1 then
- local v = ischar(n,font)
if v and nukta[v] then
n = getnext(n)
if n then
@@ -2418,7 +2443,6 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
elseif variant == 2 then
- local v = ischar(n,font)
if v and nukta[v] then
c = n
end
@@ -2443,11 +2467,11 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
-- c = ms_matra(c)
- local n = getnext(c)
+ n = getnext(c)
if not n then
return c
end
- local v = ischar(n,font)
+ v = ischar(n,font)
if not v then
return c
end
@@ -2555,13 +2579,22 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
+-- Consonant syllable:
+--
+-- { C + [ N ] + < H + [ < ZWNJ | ZWJ > ] | < ZWNJ | ZWJ > + H > }
+-- + C
+-- + [ N ]
+-- + [ A ]
+-- + [ < H + [ < ZWNJ|ZWJ > ] | { M } + [ N ] + [ H ] > ]
+-- + [ SM ]
+-- + [ ( VD ) ]
+
local function analyze_next_chars_two(c,font)
- local n, v
- n = getnext(c)
+ local n = getnext(c)
if not n then
return c
end
- v = ischar(n,font)
+ local v = ischar(n,font)
if v and nukta[v] then
c = n
end
@@ -2677,6 +2710,10 @@ local function analyze_next_chars_two(c,font)
for k=1,#vowels do
local v = vowels[k]
if pre_mark[v] and not already_pre_mark then
+-- print(">>> pre_mark")
+-- if dependent_vowel[v] then
+-- print(">>>> dependent vowel")
+-- end
already_pre_mark = true
elseif above_mark[v] and not already_above_mark then
already_above_mark = true
@@ -3031,12 +3068,15 @@ local function method_two(head,font,attr)
end
end
if independent_vowel[char] then
+-- print("!!>>> independent_vowel")
-- vowel-based syllable: [Ra+H]+V+[N]+[<[<ZWJ|ZWNJ>]+H+C|ZWJ+C>]+[{M}+[N]+[H]]+[SM]+[(VD)]
current = analyze_next_chars_one(c,font,1)
syllableend = current
else
+-- print("!!>>> dependent vowel")
local standalone = char == c_nbsp
if standalone then
+-- print("!!>>> standalone")
nbspaces = nbspaces + 1
local p = getprev(current)
if not p then
@@ -3050,10 +3090,12 @@ local function method_two(head,font,attr)
end
end
if standalone then
+-- print("!!>>>>>>> next standalone")
-- Stand Alone cluster (at the start of the word only): #[Ra+H]+NBSP+[N]+[<[<ZWJ|ZWNJ>]+H+C>]+[{M}+[N]+[H]]+[SM]+[(VD)]
current = analyze_next_chars_one(c,font,2)
syllableend = current
elseif consonant[getchar(current)] then
+-- print("!!>>>>>>> a consonant")
-- WHY current INSTEAD OF c ?
-- Consonant syllable: {C+[N]+<H+[<ZWNJ|ZWJ>]|<ZWNJ|ZWJ>+H>} + C+[N]+[A] + [< H+[<ZWNJ|ZWJ>] | {M}+[N]+[H]>]+[SM]+[(VD)]
current = analyze_next_chars_two(current,font) -- not c !
@@ -3062,6 +3104,7 @@ local function method_two(head,font,attr)
end
end
if syllableend then
+-- print("!!!>>> syllable end")
syllabe = syllabe + 1
local c = syllablestart
local n = getnext(syllableend)
diff --git a/tex/context/base/mkiv/font-otc.lua b/tex/context/base/mkiv/font-otc.lua
index 2c955dbce..342541f12 100644
--- a/tex/context/base/mkiv/font-otc.lua
+++ b/tex/context/base/mkiv/font-otc.lua
@@ -130,7 +130,7 @@ local function validspecification(specification,name)
end
end
-local function addfeature(data,feature,specifications)
+local function addfeature(data,feature,specifications,prepareonly)
-- todo: add some validator / check code so that we're more tolerant to
-- user errors
@@ -461,13 +461,13 @@ local function addfeature(data,feature,specifications)
return false
end
+ -- 0 == remove, false = ignore (remove is default)
+
local function prepare_chain(list,featuretype,sublookups,nocheck)
-- todo: coveractions
local rules = list.rules
local coverage = { }
if rules then
- local rulehash = { }
- local rulesize = 0
local lookuptype = types[featuretype]
for nofrules=1,#rules do
local rule = rules[nofrules]
@@ -498,6 +498,15 @@ local function addfeature(data,feature,specifications)
local lookups = rule.lookups or false
local subtype = nil
if lookups and sublookups then
+-- inspect(lookups)
+if #lookups > 0 then
+ local ns = stop - start + 1
+ for i=1,ns do
+ if lookups[i] == nil then
+ lookups[i] = 0
+ end
+ end
+end
local l = { }
for k, v in sortedhash(lookups) do
local t = type(v)
@@ -535,6 +544,7 @@ local function addfeature(data,feature,specifications)
if nofsequences > 0 then -- we merge coverage into one
-- we copy as we can have different fonts
if hassteps(lookups) then
+ -- sequence is the before|current|after match list
local hashed = { }
for i=1,nofsequences do
local t = { }
@@ -547,9 +557,9 @@ local function addfeature(data,feature,specifications)
end
hashed[i] = t
end
+ -- hashed is the before|current|after match hash
sequence = hashed
- rulesize = rulesize + 1
- rulehash[rulesize] = {
+ local ruleset = {
nofrules, -- 1
lookuptype, -- 2
sequence, -- 3
@@ -561,8 +571,15 @@ local function addfeature(data,feature,specifications)
}
for unic in sortedhash(sequence[start]) do
local cu = coverage[unic]
- if not cu then
- coverage[unic] = rulehash -- can now be done cleaner i think
+ if cu then
+ local n = cu.n + 1
+ cu[n] = ruleset
+ cu.n = n
+ else
+ coverage[unic] = {
+ ruleset,
+ n = 1,
+ }
end
end
sequence.n = nofsequences
@@ -571,7 +588,6 @@ local function addfeature(data,feature,specifications)
end
end
end
- rulehash.n = rulesize
end
return coverage
end
@@ -813,6 +829,9 @@ local function addfeature(data,feature,specifications)
nofsteps = nofsteps,
type = types[featuretype],
}
+ if prepareonly then
+ return sequence
+ end
end
end
@@ -900,6 +919,23 @@ local function enhance(data,filename,raw)
end
end
+-- local function enhance(data,filename,raw)
+-- local first = 1
+-- local last = #extrafeatures
+-- while true do
+-- for slot=first,last do
+-- local specification = extrafeatures[slot]
+-- addfeature(data,specification.name,specification)
+-- end
+-- if #extrafeatures > last then
+-- first = last + 1
+-- last = #extrafeatures
+-- else
+-- break
+-- end
+-- end
+-- end
+
otf.enhancers.enhance = enhance
otf.enhancers.register("check extra features",enhance)
diff --git a/tex/context/base/mkiv/lang-imp-indic.lua b/tex/context/base/mkiv/lang-imp-indic.lua
index 5c766c5ef..164b765cc 100644
--- a/tex/context/base/mkiv/lang-imp-indic.lua
+++ b/tex/context/base/mkiv/lang-imp-indic.lua
@@ -1,12 +1,10 @@
-local zwj = utf.char(0x200D)
-
return {
name = "indic transliterations",
version = "1.00",
comment = "Experimental code, the name of this file might change"
.. "or maybe it become a llg file in the end.",
- author = "kauśika and hans",
+ author = "Sreeram and Hans",
copyright = "ConTeXt development team & whoever made this list",
transliterations = {
@@ -540,20 +538,20 @@ return {
["ḻṛ"] = "ळृ",
["ḻṝ"] = "ळॄ",
---
- ["xa"] = "क्ष",
- ["xā"] = "क्षा",
- ["xi"] = "क्षि",
- ["xī"] = "क्षी",
- ["xu"] = "क्षु",
- ["xū"] = "क्षू",
- ["xe"] = "क्षे",
- ["xo"] = "क्षो",
- ["xai"] = "क्षै",
- ["xau"] = "क्षौ",
- ["xḷ"] = "क्षॢ",
- ["xḹ"] = "क्षॣ",
- ["xṛ"] = "क्षृ",
- ["xṝ"] = "क्षॄ",
+ ["kṣa"] = "क्ष",
+ ["kṣā"] = "क्षा",
+ ["kṣi"] = "क्षि",
+ ["kṣī"] = "क्षी",
+ ["kṣu"] = "क्षु",
+ ["kṣū"] = "क्षू",
+ ["kṣe"] = "क्षे",
+ ["kṣo"] = "क्षो",
+ ["kṣai"] = "क्षै",
+ ["kṣau"] = "क्षौ",
+ ["kṣḷ"] = "क्षॢ",
+ ["kṣḹ"] = "क्षॣ",
+ ["kṣṛ"] = "क्षृ",
+ ["kṣṝ"] = "क्षॄ",
---
["jña"] = "ज्ञ",
["jñā"] = "ज्ञा",
@@ -604,7 +602,7 @@ return {
["s"] = "स्",
["h"] = "ह्",
["ḻ"] = "ळ्",
- ["x"] = "क्ष्",
+ ["kṣ"] = "क्ष्",
["jñ"] = "ज्ञ्",
-- yogavaahas (always with phonetic)
["ṁ"] = "ं",
@@ -617,6 +615,611 @@ return {
["||"] = "॥",
},
},
+ ["itrans to deva"] = {
+ mapping = {
+ --- vowels
+ ["a"] = "अ",
+ ["A"] = "आ",
+ ["i"] = "इ",
+ ["I"] = "ई",
+ ["u"] = "उ",
+ ["U"] = "ऊ",
+ ["RRi"] = "ऋ",
+ ["RRI"] = "ॠ",
+ ["LLi"] = "ऌ",
+ ["LLI"] = "ॡ",
+ ["e"] = "ए",
+ ["ai"] = "ऐ",
+ ["o"] = "ओ",
+ ["au"] = "औ",
+ --- consonant forms
+ ["ka"] = "क",
+ ["kA"] = "का",
+ ["ki"] = "कि",
+ ["kI"] = "की",
+ ["ku"] = "कु",
+ ["kU"] = "कू",
+ ["ke"] = "के",
+ ["ko"] = "को",
+ ["kai"] = "कै",
+ ["kau"] = "कौ",
+ ["kLLi"] = "कॢ",
+ ["kLLI"] = "कॣ",
+ ["kRRi"] = "कृ",
+ ["kRRI"] = "कॄ",
+ ---
+ ["kha"] = "ख",
+ ["khA"] = "खा",
+ ["khi"] = "खि",
+ ["khI"] = "खी",
+ ["khu"] = "खु",
+ ["khU"] = "खू",
+ ["khe"] = "खे",
+ ["kho"] = "खो",
+ ["khai"] = "खै",
+ ["khau"] = "खौ",
+ ["khLLi"] = "खॢ",
+ ["khLLI"] = "खॣ",
+ ["khRRi"] = "खृ",
+ ["khRRI"] = "खॄ",
+ ---
+ ["ga"] = "ग",
+ ["gA"] = "गा",
+ ["gi"] = "गि",
+ ["gI"] = "गी",
+ ["gu"] = "गु",
+ ["gU"] = "गू",
+ ["ge"] = "गे",
+ ["go"] = "गो",
+ ["gai"] = "गै",
+ ["gau"] = "गौ",
+ ["gLLi"] = "गॢ",
+ ["gLLI"] = "गॣ",
+ ["gRRi"] = "गृ",
+ ["gRRI"] = "गॄ",
+ ---
+ ["gha"] = "घ",
+ ["ghA"] = "घा",
+ ["ghi"] = "घि",
+ ["ghI"] = "घी",
+ ["ghu"] = "घु",
+ ["ghU"] = "घू",
+ ["ghe"] = "घे",
+ ["gho"] = "घो",
+ ["ghai"] = "घै",
+ ["ghau"] = "घौ",
+ ["ghLLi"] = "घॢ",
+ ["ghLLI"] = "घॣ",
+ ["ghRRi"] = "घृ",
+ ["ghRRI"] = "घॄ",
+ ---
+ ["~Na"] = "ङ",
+ ["~NA"] = "ङा",
+ ["~Ni"] = "ङि",
+ ["~NI"] = "ङी",
+ ["~Nu"] = "ङु",
+ ["~NU"] = "ङू",
+ ["~Ne"] = "ङे",
+ ["~No"] = "ङो",
+ ["~Nai"] = "ङै",
+ ["~Nau"] = "ङौ",
+ ["~NLLi"] = "ङॢ",
+ ["~NLLI"] = "ङॣ",
+ ["~NRRi"] = "ङृ",
+ ["~NRRI"] = "ङॄ",
+ ---
+ ["ca"] = "च",
+ ["cA"] = "चा",
+ ["ci"] = "चि",
+ ["cI"] = "ची",
+ ["cu"] = "चु",
+ ["cU"] = "चू",
+ ["ce"] = "चे",
+ ["co"] = "चो",
+ ["cai"] = "चै",
+ ["cau"] = "चौ",
+ ["cLLi"] = "चॢ",
+ ["cLLI"] = "चॣ",
+ ["cRRi"] = "चृ",
+ ["cRRI"] = "चॄ",
+ ---
+ ["cha"] = "छ",
+ ["chA"] = "छा",
+ ["chi"] = "छि",
+ ["chI"] = "छी",
+ ["chu"] = "छु",
+ ["chU"] = "छू",
+ ["che"] = "छे",
+ ["cho"] = "छो",
+ ["chai"] = "छै",
+ ["chau"] = "छौ",
+ ["chLLi"] = "छॢ",
+ ["chLLI"] = "छॣ",
+ ["chRRi"] = "छृ",
+ ["chRRI"] = "छॄ",
+ ---
+ ["ja"] = "ज",
+ ["jA"] = "जा",
+ ["ji"] = "जि",
+ ["jI"] = "जी",
+ ["ju"] = "जु",
+ ["jU"] = "जू",
+ ["je"] = "जे",
+ ["jo"] = "जो",
+ ["jai"] = "जै",
+ ["jau"] = "जौ",
+ ["jLLi"] = "जॢ",
+ ["jLLI"] = "जॣ",
+ ["jRRi"] = "जृ",
+ ["jRRI"] = "जॄ",
+ ---
+ ["jha"] = "झ",
+ ["jhA"] = "झा",
+ ["jhi"] = "झि",
+ ["jhI"] = "झी",
+ ["jhu"] = "झु",
+ ["jhU"] = "झू",
+ ["jhe"] = "झे",
+ ["jho"] = "झो",
+ ["jhai"] = "झै",
+ ["jhau"] = "झौ",
+ ["jhLLi"] = "झॢ",
+ ["jhLLI"] = "झॣ",
+ ["jhRRi"] = "झृ",
+ ["jhRRI"] = "झॄ",
+ ---
+ ["~na"] = "ञ",
+ ["~nA"] = "ञा",
+ ["~ni"] = "ञि",
+ ["~nI"] = "ञी",
+ ["~nu"] = "ञु",
+ ["~nU"] = "ञू",
+ ["~ne"] = "ञे",
+ ["~no"] = "ञो",
+ ["~nai"] = "ञै",
+ ["~nau"] = "ञौ",
+ ["~nLLi"] = "ञॢ",
+ ["~nLLI"] = "ञॣ",
+ ["~nRRi"] = "ञृ",
+ ["~nRRI"] = "ञॄ",
+ ---
+ ["Ta"] = "ट",
+ ["TA"] = "टा",
+ ["Ti"] = "टि",
+ ["TI"] = "टी",
+ ["Tu"] = "टु",
+ ["TU"] = "टू",
+ ["Te"] = "टे",
+ ["To"] = "टो",
+ ["Tai"] = "टै",
+ ["Tau"] = "टौ",
+ ["TLLi"] = "टॢ",
+ ["TLLI"] = "टॣ",
+ ["TRRi"] = "टृ",
+ ["TRRI"] = "टॄ",
+ ---
+ ["Tha"] = "ठ",
+ ["ThA"] = "ठा",
+ ["Thi"] = "ठि",
+ ["ThI"] = "ठी",
+ ["Thu"] = "ठु",
+ ["ThU"] = "ठू",
+ ["The"] = "ठे",
+ ["Tho"] = "ठो",
+ ["Thai"] = "ठै",
+ ["Thau"] = "ठौ",
+ ["ThLLi"] = "ठॢ",
+ ["ThLLI"] = "ठॣ",
+ ["ThRRi"] = "ठृ",
+ ["ThRRI"] = "ठॄ",
+ ---
+ ["Da"] = "ड",
+ ["DA"] = "डा",
+ ["Di"] = "डि",
+ ["DI"] = "डी",
+ ["Du"] = "डु",
+ ["DU"] = "डू",
+ ["De"] = "डे",
+ ["Do"] = "डो",
+ ["Dai"] = "डै",
+ ["Dau"] = "डौ",
+ ["DLLi"] = "डॢ",
+ ["DLLI"] = "डॣ",
+ ["DRRi"] = "डृ",
+ ["DRRI"] = "डॄ",
+ ---
+ ["Dha"] = "ढ",
+ ["DhA"] = "ढा",
+ ["Dhi"] = "ढि",
+ ["DhI"] = "ढी",
+ ["Dhu"] = "ढु",
+ ["DhU"] = "ढू",
+ ["Dhe"] = "ढे",
+ ["Dho"] = "ढो",
+ ["Dhai"] = "ढै",
+ ["Dhau"] = "ढौ",
+ ["DhLLi"] = "ढॢ",
+ ["DhLLI"] = "ढॣ",
+ ["DhRRi"] = "ढृ",
+ ["DhRRI"] = "ढॄ",
+ ---
+ ["Na"] = "ण",
+ ["NA"] = "णा",
+ ["Ni"] = "णि",
+ ["NI"] = "णी",
+ ["Nu"] = "णु",
+ ["NU"] = "णू",
+ ["Ne"] = "णे",
+ ["No"] = "णो",
+ ["Nai"] = "णै",
+ ["Nau"] = "णौ",
+ ["NLLi"] = "णॢ",
+ ["NLLI"] = "णॣ",
+ ["NRRi"] = "णृ",
+ ["NRRI"] = "णॄ",
+ ---
+ ["ta"] = "त",
+ ["tA"] = "ता",
+ ["ti"] = "ति",
+ ["tI"] = "ती",
+ ["tu"] = "तु",
+ ["tU"] = "तू",
+ ["te"] = "ते",
+ ["to"] = "तो",
+ ["tai"] = "तै",
+ ["tau"] = "तौ",
+ ["tLLi"] = "तॢ",
+ ["tLLI"] = "तॣ",
+ ["tRRi"] = "तृ",
+ ["tRRI"] = "तॄ",
+ ---
+ ["tha"] = "थ",
+ ["thA"] = "था",
+ ["thi"] = "थि",
+ ["thI"] = "थी",
+ ["thu"] = "थु",
+ ["thU"] = "थू",
+ ["the"] = "थे",
+ ["tho"] = "थो",
+ ["thai"] = "थै",
+ ["thau"] = "थौ",
+ ["thLLi"] = "थॢ",
+ ["thLLI"] = "थॣ",
+ ["thRRi"] = "थृ",
+ ["thRRI"] = "थॄ",
+ ---
+ ["da"] = "द",
+ ["dA"] = "दा",
+ ["di"] = "दि",
+ ["dI"] = "दी",
+ ["du"] = "दु",
+ ["dU"] = "दू",
+ ["de"] = "दे",
+ ["do"] = "दो",
+ ["dai"] = "दै",
+ ["dau"] = "दौ",
+ ["dLLi"] = "दॢ",
+ ["dLLI"] = "दॣ",
+ ["dRRi"] = "दृ",
+ ["dRRI"] = "दॄ",
+ ---
+ ["dha"] = "ध",
+ ["dhA"] = "धा",
+ ["dhi"] = "धि",
+ ["dhI"] = "धी",
+ ["dhu"] = "धु",
+ ["dhU"] = "धू",
+ ["dhe"] = "धे",
+ ["dho"] = "धो",
+ ["dhai"] = "धै",
+ ["dhau"] = "धौ",
+ ["dhLLi"] = "धॢ",
+ ["dhLLI"] = "धॣ",
+ ["dhRRi"] = "धृ",
+ ["dhRRI"] = "धॄ",
+ ---
+ ["na"] = "न",
+ ["nA"] = "ना",
+ ["ni"] = "नि",
+ ["nI"] = "नी",
+ ["nu"] = "नु",
+ ["nU"] = "नू",
+ ["ne"] = "ने",
+ ["no"] = "नो",
+ ["nai"] = "नै",
+ ["nau"] = "नौ",
+ ["nLLi"] = "नॢ",
+ ["nLLI"] = "नॣ",
+ ["nRRi"] = "नृ",
+ ["nRRI"] = "नॄ",
+ ---
+ ["pa"] = "प",
+ ["pA"] = "पा",
+ ["pi"] = "पि",
+ ["pI"] = "पी",
+ ["pu"] = "पु",
+ ["pU"] = "पू",
+ ["pe"] = "पे",
+ ["po"] = "पो",
+ ["pai"] = "पै",
+ ["pau"] = "पौ",
+ ["pLLi"] = "पॢ",
+ ["pLLI"] = "पॣ",
+ ["pRRi"] = "पृ",
+ ["pRRI"] = "पॄ",
+ ---
+ ["pha"] = "फ",
+ ["phA"] = "फा",
+ ["phi"] = "फि",
+ ["phI"] = "फी",
+ ["phu"] = "फु",
+ ["phU"] = "फू",
+ ["phe"] = "फे",
+ ["pho"] = "फो",
+ ["phai"] = "फै",
+ ["phau"] = "फौ",
+ ["phLLi"] = "फॢ",
+ ["phLLI"] = "फॣ",
+ ["phRRi"] = "फृ",
+ ["phRRI"] = "फॄ",
+ ---
+ ["ba"] = "ब",
+ ["bA"] = "बा",
+ ["bi"] = "बि",
+ ["bI"] = "बी",
+ ["bu"] = "बु",
+ ["bU"] = "बू",
+ ["be"] = "बे",
+ ["bo"] = "बो",
+ ["bai"] = "बै",
+ ["bau"] = "बौ",
+ ["bLLi"] = "बॢ",
+ ["bLLI"] = "बॣ",
+ ["bRRi"] = "बृ",
+ ["bRRI"] = "बॄ",
+ ---
+ ["bha"] = "भ",
+ ["bhA"] = "भा",
+ ["bhi"] = "भि",
+ ["bhI"] = "भी",
+ ["bhu"] = "भु",
+ ["bhU"] = "भू",
+ ["bhe"] = "भे",
+ ["bho"] = "भो",
+ ["bhai"] = "भै",
+ ["bhau"] = "भौ",
+ ["bhLLi"] = "भॢ",
+ ["bhLLI"] = "भॣ",
+ ["bhRRi"] = "भृ",
+ ["bhRRI"] = "भॄ",
+ ---
+ ["ma"] = "म",
+ ["mA"] = "मा",
+ ["mi"] = "मि",
+ ["mI"] = "मी",
+ ["mu"] = "मु",
+ ["mU"] = "मू",
+ ["me"] = "मे",
+ ["mo"] = "मो",
+ ["mai"] = "मै",
+ ["mau"] = "मौ",
+ ["mLLi"] = "मॢ",
+ ["mLLI"] = "मॣ",
+ ["mRRi"] = "मृ",
+ ["mRRI"] = "मॄ",
+ ---
+ ["ya"] = "य",
+ ["yA"] = "या",
+ ["yi"] = "यि",
+ ["yI"] = "यी",
+ ["yu"] = "यु",
+ ["yU"] = "यू",
+ ["ye"] = "ये",
+ ["yo"] = "यो",
+ ["yai"] = "यै",
+ ["yau"] = "यौ",
+ ["yLLi"] = "यॢ",
+ ["yLLI"] = "यॣ",
+ ["yRRi"] = "यृ",
+ ["yRRI"] = "यॄ",
+ ---
+ ["ra"] = "र",
+ ["rA"] = "रा",
+ ["ri"] = "रि",
+ ["rI"] = "री",
+ ["ru"] = "रु",
+ ["rU"] = "रू",
+ ["re"] = "रे",
+ ["ro"] = "रो",
+ ["rai"] = "रै",
+ ["rau"] = "रौ",
+ ["rLLi"] = "रॢ",
+ ["rLLI"] = "रॣ",
+ ["rRRi"] = "रृ",
+ ["rRRI"] = "रॄ",
+ ---
+ ["la"] = "ल",
+ ["lA"] = "ला",
+ ["li"] = "लि",
+ ["lI"] = "ली",
+ ["lu"] = "लु",
+ ["lU"] = "लू",
+ ["le"] = "ले",
+ ["lo"] = "लो",
+ ["lai"] = "लै",
+ ["lau"] = "लौ",
+ ["lLLi"] = "लॢ",
+ ["lLLI"] = "लॣ",
+ ["lRRi"] = "लृ",
+ ["lRRI"] = "लॄ",
+ ---
+ ["va"] = "व",
+ ["vA"] = "वा",
+ ["vi"] = "वि",
+ ["vI"] = "वी",
+ ["vu"] = "वु",
+ ["vU"] = "वू",
+ ["ve"] = "वे",
+ ["vo"] = "वो",
+ ["vai"] = "वै",
+ ["vau"] = "वौ",
+ ["vLLi"] = "वॢ",
+ ["vLLI"] = "वॣ",
+ ["vRRi"] = "वृ",
+ ["vRRI"] = "वॄ",
+ ---
+ ["sha"] = "श",
+ ["shA"] = "शा",
+ ["shi"] = "शि",
+ ["shI"] = "शी",
+ ["shu"] = "शु",
+ ["shU"] = "शू",
+ ["she"] = "शे",
+ ["sho"] = "शो",
+ ["shai"] = "शै",
+ ["shau"] = "शौ",
+ ["shLLi"] = "शॢ",
+ ["shLLI"] = "शॣ",
+ ["shRRi"] = "शृ",
+ ["shRRI"] = "शॄ",
+ ---
+ ["Sha"] = "ष",
+ ["ShA"] = "षा",
+ ["Shi"] = "षि",
+ ["ShI"] = "षी",
+ ["Shu"] = "षु",
+ ["ShU"] = "षू",
+ ["She"] = "षे",
+ ["Sho"] = "षो",
+ ["Shai"] = "षै",
+ ["Shau"] = "षौ",
+ ["ShLLi"] = "षॢ",
+ ["ShLLI"] = "षॣ",
+ ["ShRRi"] = "षृ",
+ ["ShRRI"] = "षॄ",
+ ---
+ ["sa"] = "स",
+ ["sA"] = "सा",
+ ["si"] = "सि",
+ ["sI"] = "सी",
+ ["su"] = "सु",
+ ["sU"] = "सू",
+ ["se"] = "से",
+ ["so"] = "सो",
+ ["sai"] = "सै",
+ ["sau"] = "सौ",
+ ["sLLi"] = "सॢ",
+ ["sLLI"] = "सॣ",
+ ["sRRi"] = "सृ",
+ ["sRRI"] = "सॄ",
+ ---
+ ["ha"] = "ह",
+ ["hA"] = "हा",
+ ["hi"] = "हि",
+ ["hI"] = "ही",
+ ["hu"] = "हु",
+ ["hU"] = "हू",
+ ["he"] = "हे",
+ ["ho"] = "हो",
+ ["hai"] = "है",
+ ["hau"] = "हौ",
+ ["hLLi"] = "हॢ",
+ ["hLLI"] = "हॣ",
+ ["hRRi"] = "हृ",
+ ["hRRI"] = "हॄ",
+ ---
+ ["ḻa"] = "ळ",
+ ["ḻA"] = "ळा",
+ ["ḻi"] = "ळि",
+ ["ḻI"] = "ळी",
+ ["ḻu"] = "ळु",
+ ["ḻU"] = "ळू",
+ ["ḻe"] = "ळे",
+ ["ḻo"] = "ळो",
+ ["ḻai"] = "ळै",
+ ["ḻau"] = "ळौ",
+ ["ḻLLi"] = "ळॢ",
+ ["ḻLLI"] = "ळॣ",
+ ["ḻRRi"] = "ळृ",
+ ["ḻRRI"] = "ळॄ",
+ ---
+ ["xa"] = "क्ष",
+ ["xA"] = "क्षा",
+ ["xi"] = "क्षि",
+ ["xI"] = "क्षी",
+ ["xu"] = "क्षु",
+ ["xU"] = "क्षू",
+ ["xe"] = "क्षे",
+ ["xo"] = "क्षो",
+ ["xai"] = "क्षै",
+ ["xau"] = "क्षौ",
+ ["xLLi"] = "क्षॢ",
+ ["xLLI"] = "क्षॣ",
+ ["xRRi"] = "क्षृ",
+ ["xRRI"] = "क्षॄ",
+ ---
+ ["j~na"] = "ज्ञ",
+ ["j~nA"] = "ज्ञा",
+ ["j~ni"] = "ज्ञि",
+ ["j~nI"] = "ज्ञी",
+ ["j~nu"] = "ज्ञु",
+ ["j~nU"] = "ज्ञू",
+ ["j~ne"] = "ज्ञे",
+ ["j~no"] = "ज्ञो",
+ ["j~nai"] = "ज्ञै",
+ ["j~nau"] = "ज्ञौ",
+ ["j~nLLi"] = "ज्ञॢ",
+ ["j~nLLI"] = "ज्ञॣ",
+ ["j~nRRi"] = "ज्ञृ",
+ ["j~nRRI"] = "ज्ञॄ",
+ ---
+ ["k"] = "क्",
+ ["kh"] = "ख्",
+ ["g"] = "ग्",
+ ["gh"] = "घ्",
+ ["~N"] = "ङ्",
+ ["c"] = "च्",
+ ["ch"] = "छ्",
+ ["j"] = "ज्",
+ ["jh"] = "झ्",
+ ["~n"] = "ञ्",
+ ["T"] = "ट्",
+ ["Th"] = "ठ्",
+ ["D"] = "ड्",
+ ["Dh"] = "ढ्",
+ ["N"] = "ण्",
+ ["t"] = "त्",
+ ["th"] = "थ्",
+ ["d"] = "द्",
+ ["dh"] = "ध्",
+ ["n"] = "न्",
+ ["p"] = "प्",
+ ["ph"] = "फ्",
+ ["b"] = "ब्",
+ ["bh"] = "भ्",
+ ["m"] = "म्",
+ ["y"] = "य्",
+ ["r"] = "र्",
+ ["l"] = "ल्",
+ ["v"] = "व्",
+ ["sh"] = "श्",
+ ["Sh"] = "ष्",
+ ["s"] = "स्",
+ ["h"] = "ह्",
+ ["ḻ"] = "ळ्",
+ ["x"] = "क्ष्",
+ ["j~n"] = "ज्ञ्",
+ -- yogavaahas (always with phonetic)
+ ["M"] = "ं",
+ ["H"] = "ः",
+ ["ँ"] = "ँ",
+ -- punctuations
+ ["viraama"] = "्",
+ ["."] = "।",
+ ["|"] = "।",
+ ["||"] = "॥",
+ },
+ },
["deva to iast"] = {
mapping = {
-- vowels
@@ -1147,20 +1750,20 @@ return {
["ळृ"] = "l̤ṛ",
["ळॄ"] = "l̤ṝ",
---
- ["क्ष"]= "xa",
- ["क्षा"] = "xā",
- ["क्षि"] = "xi",
- ["क्षी"] = "xī",
- ["क्षु"] = "xu",
- ["क्षू"] = "xū",
- ["क्षे"] = "xe",
- ["क्षो"] = "xo",
- ["क्षै"] = "xai",
- ["क्षौ"] = "xau",
- ["क्षॢ"] = "xḷ",
- ["क्षॣ"] = "xḹ",
- ["क्षृ"] = "xṛ",
- ["क्षॄ"] = "xṝ",
+ ["क्ष"]= "kṣa",
+ ["क्षा"] = "kṣā",
+ ["क्षि"] = "kṣi",
+ ["क्षी"] = "kṣī",
+ ["क्षु"] = "kṣu",
+ ["क्षू"] = "kṣū",
+ ["क्षे"] = "kṣe",
+ ["क्षो"] = "kṣo",
+ ["क्षै"] = "kṣai",
+ ["क्षौ"] = "kṣau",
+ ["क्षॢ"] = "kṣḷ",
+ ["क्षॣ"] = "kṣḹ",
+ ["क्षृ"] = "kṣṛ",
+ ["क्षॄ"] = "kṣṝ",
---
["ज्ञ"]= "jña",
["ज्ञा"] = "jñā",
@@ -1214,19 +1817,19 @@ return {
["क्ष्"] = "kṣ",
["ज्ञ्"] = "jñ",
-- discard virama (?!) TODO: revisit this if need arises
- -- ["्"] = "",
- ["।"] = ".",
- ["॥"] = ".",
+ -- ["्"] = "",
+ ["।"] = "|",
+ ["॥"] = "||",
["ं"] = "ṃ",
["ः"] = "ḥ",
["ऽ"] = "\'",
-- disputed
- ["ँ"] = "ँ",
+ ["ँ"] = "̃",
-- diactrics (combining): provided for completeness
-- warning: many fonts don't have these
["॒"] = "॒",
-- could not test
- -- ["॑"] = "̭",
+ -- ["॑"] = "̭",
["॑"] = "॑",
["᳚"] = "᳚",
["᳛"] = "᳛",
@@ -1335,5 +1938,345 @@ return {
["’"] = "’",
},
},
+ ["deva to tlgu"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "అ",
+ ["आ"] = "ఆ",
+ ["इ"] = "ఇ",
+ ["ई"] = "ఈ",
+ ["उ"] = "ఉ",
+ ["ऊ"] = "ఊ",
+ ["ऋ"] = "ఋ",
+ ["ॠ"] = "ౠ",
+ ["ऌ"] = "ఌ",
+ ["ॡ"] = "ౡ",
+ ["ऎ"] = "ఎ",
+ ["ए"] = "ఏ",
+ ["ऐ"] = "ఐ",
+ ["ऒ"] = "ఒ",
+ ["ओ"] = "ఓ",
+ ["औ"] = "ఔ",
+ -- consonants
+ ["क"] = "క",
+ ["ख"] = "ఖ",
+ ["ग"] = "గ",
+ ["घ"] = "ఘ",
+ ["ङ"] = "ఙ",
+ ["च"] = "చ",
+ ["छ"] = "ఛ",
+ ["ज"] = "జ",
+ ["झ"] = "ఝ",
+ ["ञ"] = "ఞ",
+ ["ट"] = "ట",
+ ["ठ"] = "ఠ",
+ ["ड"] = "డ",
+ ["ढ"] = "ఢ",
+ ["ण"] = "ణ",
+ ["त"] = "త",
+ ["थ"] = "థ",
+ ["द"] = "ద",
+ ["ध"] = "ధ",
+ ["न"] = "న",
+ ["प"] = "ప",
+ ["फ"] = "ఫ",
+ ["ब"] = "బ",
+ ["भ"] = "భ",
+ ["म"] = "మ",
+ ["य"] = "య",
+ ["र"] = "ర",
+ ["ल"] = "ల",
+ ["व"] = "వ",
+ ["श"] = "శ",
+ ["ष"] = "ష",
+ ["स"] = "స",
+ ["ह"] = "హ",
+ ["ळ"] = "ళ",
+ ["क्ष"] = "క్ష",
+ ["ज्ञ"] = "జ్ఞ",
+ -- vowel marks
+ ["ा"] = "ా",
+ ["ि"] = "ి",
+ ["ी"] = "ీ",
+ ["ु"] = "ు",
+ ["ू"] = "ూ",
+ ["ृ"] = "ృ",
+ ["ॄ"] = "ౄ",
+ ["ॢ"] = "ౢ",
+ ["ॣ"] = "ౣ",
+ ["ॆ"] = "ె",
+ ["े"] = "ే",
+ ["ै"] = "ై",
+ ["ॊ"] = "ొ",
+ ["ो"] = "ో",
+ ["ौ"] = "ౌ",
+ -- always with phonetic
+ ["ं"] = "ం",
+ ["ः"] = "ః",
+ ["ँ"] = "ఀ",
+ -- punctuation marks
+ ["्"] = "్",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to knda"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "ಅ",
+ ["आ"] = "ಆ",
+ ["इ"] = "ಇ",
+ ["ई"] = "ಈ",
+ ["उ"] = "ಉ",
+ ["ऊ"] = "ಊ",
+ ["ऋ"] = "ಋ",
+ ["ॠ"] = "ೠ",
+ ["ऌ"] = "ಌ",
+ ["ॡ"] = "ೡ",
+ ["ऎ"] = "ಎ",
+ ["ए"] = "ಏ",
+ ["ऐ"] = "ಐ",
+ ["ऒ"] = "ಒ",
+ ["ओ"] = "ಓ",
+ ["औ"] = "ಔ",
+ -- consonants
+ ["क"] = "ಕ",
+ ["ख"] = "ಖ",
+ ["ग"] = "ಗ",
+ ["घ"] = "ಘ",
+ ["ङ"] = "ಙ",
+ ["च"] = "ಚ",
+ ["छ"] = "ಛ",
+ ["ज"] = "ಜ",
+ ["झ"] = "ಝ",
+ ["ञ"] = "ಞ",
+ ["ट"] = "ಟ",
+ ["ठ"] = "ಠ",
+ ["ड"] = "ಡ",
+ ["ढ"] = "ಢ",
+ ["ण"] = "ಣ",
+ ["त"] = "ತ",
+ ["थ"] = "ಥ",
+ ["द"] = "ದ",
+ ["ध"] = "ಧ",
+ ["न"] = "ನ",
+ ["प"] = "ಪ",
+ ["फ"] = "ಫ",
+ ["ब"] = "ಬ",
+ ["भ"] = "ಭ",
+ ["म"] = "ಮ",
+ ["य"] = "ಯ",
+ ["र"] = "ರ",
+ ["ल"] = "ಲ",
+ ["व"] = "ವ",
+ ["श"] = "ಶ",
+ ["ष"] = "ಷ",
+ ["स"] = "ಸ",
+ ["ह"] = "ಹ",
+ ["ळ"] = "ಳ",
+ ["क्ष"] = "ಕ್ಷ",
+ ["ज्ञ"] = "ಜ್ಞ",
+ -- vowel marks
+ ["ा"] = "ಾ",
+ ["ि"] = "ಿ",
+ ["ी"] = "ೀ",
+ ["ु"] = "ು",
+ ["ू"] = "ೂ",
+ ["ृ"] = "ೃ",
+ ["ॄ"] = "ೄ",
+ ["ॢ"] = "ೢ",
+ ["ॣ"] = "ೣ",
+ ["ॆ"] = "ೆ",
+ ["े"] = "ೇ",
+ ["ै"] = "ೈ",
+ ["ॊ"] = "ೊ",
+ ["ो"] = "ೋ",
+ ["ौ"] = "ೌ",
+ -- always with phonetic
+ ["ं"] = "ಂ",
+ ["ः"] = "ಃ",
+ ["ँ"] = "ಁ",
+ -- punctuation marks
+ ["्"] = "್",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to gujr"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "અ",
+ ["आ"] = "આ",
+ ["इ"] = "ઇ",
+ ["ई"] = "ઈ",
+ ["उ"] = "ઉ",
+ ["ऊ"] = "ઊ",
+ ["ऋ"] = "ઋ",
+ ["ॠ"] = "ૠ",
+ ["ऌ"] = "ઌ",
+ ["ॡ"] = "ૡ",
+ -- ["ऎ"] = "",
+ ["ए"] = "એ",
+ ["ऐ"] = "ઐ",
+ -- ["ऒ"] = "",
+ ["ओ"] = "ઓ",
+ ["औ"] = "ઔ",
+ -- consonants
+ ["क"] = "ક",
+ ["ख"] = "ખ",
+ ["ग"] = "ગ",
+ ["घ"] = "ઘ",
+ ["ङ"] = "ઙ",
+ ["च"] = "ચ",
+ ["छ"] = "છ",
+ ["ज"] = "જ",
+ ["झ"] = "ઝ",
+ ["ञ"] = "ઞ",
+ ["ट"] = "ટ",
+ ["ठ"] = "ઠ",
+ ["ड"] = "ડ",
+ ["ढ"] = "ઢ",
+ ["ण"] = "ણ",
+ ["त"] = "ત",
+ ["थ"] = "થ",
+ ["द"] = "દ",
+ ["ध"] = "ધ",
+ ["न"] = "ન",
+ ["प"] = "પ",
+ ["फ"] = "ફ",
+ ["ब"] = "બ",
+ ["भ"] = "ભ",
+ ["म"] = "મ",
+ ["य"] = "ય",
+ ["र"] = "ર",
+ ["ल"] = "લ",
+ ["व"] = "વ",
+ ["श"] = "શ",
+ ["ष"] = "ષ",
+ ["स"] = "સ",
+ ["ह"] = "હ",
+ ["ळ"] = "ળ",
+ ["क्ष"] = "ક્ષ",
+ ["ज्ञ"] = "જ્ઞ",
+ -- vowel marks
+ ["ा"] = "ા",
+ ["ि"] = "િ",
+ ["ी"] = "ી",
+ ["ु"] = "ુ",
+ ["ू"] = "ૂ",
+ ["ृ"] = "ૃ",
+ ["ॄ"] = "ૄ",
+ ["ॢ"] = "ૢ",
+ ["ॣ"] = "ૣ",
+ -- ["ॆ"] = "",
+ ["े"] = "ે",
+ ["ै"] = "ૈ",
+ -- ["ॊ"] = "",
+ ["ो"] = "ો",
+ ["ौ"] = "ૌ",
+ -- always with phonetic
+ ["ं"] = "ં",
+ ["ः"] = "ઃ",
+ ["ँ"] = "ઁ",
+ -- punctuation marks
+ ["्"] = "્",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to bngl"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "অ",
+ ["आ"] = "আ",
+ ["इ"] = "ই",
+ ["ई"] = "ঈ",
+ ["उ"] = "উ",
+ ["ऊ"] = "ঊ",
+ ["ऋ"] = "ঋ",
+ ["ॠ"] = "ৠ",
+ ["ऌ"] = "ঌ",
+ ["ॡ"] = "ৡ",
+ -- ["ऎ"] = "",
+ ["ए"] = "এ",
+ ["ऐ"] = "ঐ",
+ -- ["ऒ"] = "",
+ ["ओ"] = "ও",
+ ["औ"] = "ঔ",
+ -- consonants
+ ["क"] = "ক",
+ ["ख"] = "খ",
+ ["ग"] = "গ",
+ ["घ"] = "ঘ",
+ ["ङ"] = "ঙ",
+ ["च"] = "চ",
+ ["छ"] = "ছ",
+ ["ज"] = "জ",
+ ["झ"] = "ঝ",
+ ["ञ"] = "ঞ",
+ ["ट"] = "ট",
+ ["ठ"] = "ঠ",
+ ["ड"] = "ড",
+ ["ढ"] = "ঢ",
+ ["ण"] = "ণ",
+ ["त"] = "ত",
+ ["थ"] = "থ",
+ ["द"] = "দ",
+ ["ध"] = "ধ",
+ ["न"] = "ন",
+ ["प"] = "প",
+ ["फ"] = "ফ",
+ ["ब"] = "ব",
+ ["भ"] = "ভ",
+ ["म"] = "ম",
+ ["य"] = "য",
+ ["र"] = "র",
+ ["ल"] = "ল",
+ ["व"] = "ব",
+ ["श"] = "শ",
+ ["ष"] = "ষ",
+ ["स"] = "স",
+ ["ह"] = "হ",
+ -- ["ळ"] = "",
+ ["क्ष"] = "ক্ষ",
+ ["ज्ञ"] = "জ্ঞ",
+ -- vowel marks
+ ["ा"] = "া",
+ ["ि"] = "ি",
+ ["ी"] = "ী",
+ ["ु"] = "ু",
+ ["ू"] = "ূ",
+ ["ृ"] = "ৃ",
+ ["ॄ"] = "ৄ",
+ ["ॢ"] = "ৢ",
+ ["ॣ"] = "ৣ",
+ -- ["ॆ"] = "",
+ ["े"] = "ে",
+ ["ै"] = "ৈ",
+ -- ["ॊ"] = "",
+ ["ो"] = "ো",
+ ["ौ"] = "ৌ",
+ -- always with phonetic
+ ["ं"] = "ং",
+ ["ः"] = "ঃ",
+ ["ँ"] = "ঁ",
+ -- punctuation marks
+ ["्"] = "্",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
}
}
diff --git a/tex/context/base/mkiv/lang-imp-serbian.lua b/tex/context/base/mkiv/lang-imp-serbian.lua
index 9e2cf5ce6..6212500c2 100644
--- a/tex/context/base/mkiv/lang-imp-serbian.lua
+++ b/tex/context/base/mkiv/lang-imp-serbian.lua
@@ -1,46 +1,81 @@
-return {
+local c2l = {
+ mapping = {
+ ["А"] = "A", ["а"] = "a",
+ ["Б"] = "B", ["б"] = "b",
+ ["В"] = "V", ["в"] = "v",
+ ["Г"] = "G", ["г"] = "g",
+ ["Д"] = "D", ["д"] = "d",
+ ["Ђ"] = "Đ", ["ђ"] = "đ",
+ ["Е"] = "E", ["е"] = "e",
+ ["Ж"] = "Ž", ["ж"] = "ž",
+ ["З"] = "Z", ["з"] = "z",
+ ["И"] = "I", ["и"] = "i",
+ ["Ј"] = "J", ["ј"] = "j",
+ ["К"] = "K", ["к"] = "k",
+ ["Л"] = "L", ["л"] = "l",
+ ["Љ"] = "Lj", ["љ"] = "lj",
+ ["М"] = "M", ["м"] = "m",
+ ["Н"] = "N", ["н"] = "n",
+ ["Њ"] = "Nj", ["њ"] = "nj",
+ ["О"] = "O", ["о"] = "o",
+ ["П"] = "P", ["п"] = "p",
+ ["Р"] = "R", ["р"] = "r",
+ ["С"] = "S", ["с"] = "s",
+ ["Т"] = "T", ["т"] = "t",
+ ["Ћ"] = "Ć", ["ћ"] = "ć",
+ ["У"] = "U", ["у"] = "u",
+ ["Ф"] = "F", ["ф"] = "f",
+ ["Х"] = "H", ["х"] = "h",
+ ["Ц"] = "C", ["ц"] = "c",
+ ["Ч"] = "Č", ["ч"] = "č",
+ ["Џ"] = "Dž", ["џ"] = "dž",
+ ["Ш"] = "Š", ["ш"] = "š",
+ }
+}
+
+local C2L = {
+ mapping = {
+ ["А"] = "A", ["а"] = "a",
+ ["Б"] = "B", ["б"] = "b",
+ ["В"] = "V", ["в"] = "v",
+ ["Г"] = "G", ["г"] = "g",
+ ["Д"] = "D", ["д"] = "d",
+ ["Ђ"] = "Đ", ["ђ"] = "đ",
+ ["Е"] = "E", ["е"] = "e",
+ ["Ж"] = "Ž", ["ж"] = "ž",
+ ["З"] = "Z", ["з"] = "z",
+ ["И"] = "I", ["и"] = "i",
+ ["Ј"] = "J", ["ј"] = "j",
+ ["К"] = "K", ["к"] = "k",
+ ["Л"] = "L", ["л"] = "l",
+ ["Љ"] = "LJ", ["љ"] = "lj",
+ ["М"] = "M", ["м"] = "m",
+ ["Н"] = "N", ["н"] = "n",
+ ["Њ"] = "NJ", ["њ"] = "nj",
+ ["О"] = "O", ["о"] = "o",
+ ["П"] = "P", ["п"] = "p",
+ ["Р"] = "R", ["р"] = "r",
+ ["С"] = "S", ["с"] = "s",
+ ["Т"] = "T", ["т"] = "t",
+ ["Ћ"] = "Ć", ["ћ"] = "ć",
+ ["У"] = "U", ["у"] = "u",
+ ["Ф"] = "F", ["ф"] = "f",
+ ["Х"] = "H", ["х"] = "h",
+ ["Ц"] = "C", ["ц"] = "c",
+ ["Ч"] = "Č", ["ч"] = "č",
+ ["Џ"] = "DŽ", ["џ"] = "dž",
+ ["Ш"] = "Š", ["ш"] = "š",
+ }
+}
+return {
name = "sebian transliterations",
version = "1.00",
- author = "Hans Hagen",
- comment = "Experimental code, the name of this file might change"
- .. "or maybe it become a llg file in the end.",
+ author = "Hans Hagen & Ivan Pešić",
copyright = "ConTeXt development team & whoever made this list",
-
transliterations = {
- ["serbian to latin"] = {
- mapping = {
- ["А"] = "A", ["а"] = "a",
- ["Б"] = "B", ["б"] = "b",
- ["В"] = "V", ["в"] = "v",
- ["Г"] = "G", ["г"] = "g",
- ["Д"] = "D", ["д"] = "d",
- ["Е"] = "E", ["е"] = "e",
- ["Ж"] = "Ž", ["ж"] = "ž",
- ["З"] = "Z", ["з"] = "z",
- ["И"] = "I", ["и"] = "i",
- ["Й"] = "J", ["й"] = "j",
- ["К"] = "K", ["к"] = "k",
- ["Л"] = "L", ["л"] = "l",
- ["М"] = "M", ["м"] = "m",
- ["Н"] = "N", ["н"] = "n",
- ["О"] = "O", ["о"] = "o",
- ["П"] = "P", ["п"] = "p",
- ["Р"] = "R", ["р"] = "r",
- ["С"] = "S", ["с"] = "s",
- ["Т"] = "T", ["т"] = "t",
- ["У"] = "U", ["у"] = "u",
- ["Ф"] = "F", ["ф"] = "f",
- ["Х"] = "Ch", ["х"] = "ch",
- ["Ц"] = "C", ["ц"] = "c",
- ["Ч"] = "Č", ["ч"] = "č",
- ["Ш"] = "Š", ["ш"] = "š",
- ["Щ"] = "Št", ["щ"] = "št",
- ["Ъ"] = "Ă", ["ъ"] = "ă",
- ["Ь"] = "′", ["ь"] = "′",
- ["Ю"] = "Ju", ["ю"] = "ju",
- ["Я"] = "Ja", ["я"] = "ja",
- }
- }
+ ["serbian to latin"] = c2l,
+ c2l = c2l,
+ C2L = C2L,
}
}
diff --git a/tex/context/base/mkiv/lpdf-pda.xml b/tex/context/base/mkiv/lpdf-pda.xml
index 2f07fed2d..0de54aa2a 100644
--- a/tex/context/base/mkiv/lpdf-pda.xml
+++ b/tex/context/base/mkiv/lpdf-pda.xml
@@ -7,21 +7,9 @@
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>application/pdf</dc:format>
- <dc:creator>
- <rdf:Seq>
- <rdf:li xml:lang="x-default"/>
- </rdf:Seq>
- </dc:creator>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:description>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
+ <dc:creator/>
+ <dc:description/>
+ <dc:title/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ID/>
diff --git a/tex/context/base/mkiv/lpdf-pdx.xml b/tex/context/base/mkiv/lpdf-pdx.xml
index 35726a5c0..45349b4d8 100644
--- a/tex/context/base/mkiv/lpdf-pdx.xml
+++ b/tex/context/base/mkiv/lpdf-pdx.xml
@@ -2,26 +2,19 @@
<!-- lpdf-pdx.xml -->
+<!--
+ There was a bug in the iso standard so now we just flush them flat because for some
+ reason there is no upward compatibulity. It's a sort of useless mess anyway.
+-->
+
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>application/pdf</dc:format>
- <dc:creator>
- <rdf:Seq>
- <rdf:li xml:lang="x-default"/>
- </rdf:Seq>
- </dc:creator>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:description>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
- </rdf:Description>
+ <dc:creator/>
+ <dc:description/>
+ <dc:title/>
+ </rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ID/>
<pdfx:ConTeXt.Jobname/>
diff --git a/tex/context/base/mkiv/lpdf-pua.xml b/tex/context/base/mkiv/lpdf-pua.xml
index f717762b6..091a3d400 100644
--- a/tex/context/base/mkiv/lpdf-pua.xml
+++ b/tex/context/base/mkiv/lpdf-pua.xml
@@ -2,25 +2,24 @@
<!-- lpdf-pua.xml -->
+<!--
+ There was a bug in the ISO standard so now we just flush them flat because for some
+ reason there is no upward compatibulity. It's a sort of useless mess anyway.
+-->
+
+<!--
+ <dc:creator> <rdf:Seq><rdf:li xml:lang="x-default"/></rdf:Seq></dc:creator>
+ <dc:description><rdf:Alt><rdf:li xml:lang="x-default"/></rdf:Alt></dc:description>
+ <dc:title> <rdf:Alt><rdf:li xml:lang="x-default"/></rdf:Alt></dc:title>
+-->
+
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>application/pdf</dc:format>
- <dc:creator>
- <rdf:Seq>
- <rdf:li xml:lang="x-default"/>
- </rdf:Seq>
- </dc:creator>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:description>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
+ <dc:creator/>
+ <dc:description/>
+ <dc:title/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ID/>
diff --git a/tex/context/base/mkiv/lpdf-xmp.lua b/tex/context/base/mkiv/lpdf-xmp.lua
index 508bb1997..2ca3ab3fe 100644
--- a/tex/context/base/mkiv/lpdf-xmp.lua
+++ b/tex/context/base/mkiv/lpdf-xmp.lua
@@ -59,10 +59,11 @@ local mapping = {
["Producer"] = { "metadata","rdf:Description/pdf:Producer" },
-- ["Trapped"] = { "pdf", "rdf:Description/pdf:Trapped" }, -- '/False' in /Info, but 'False' in XMP
-- Dublin Core schema
- ["Author"] = { "metadata","rdf:Description/dc:creator/rdf:Seq/rdf:li" },
["Format"] = { "metadata","rdf:Description/dc:format" }, -- optional, but nice to have
- ["Subject"] = { "metadata","rdf:Description/dc:description/rdf:Alt/rdf:li" },
- ["Title"] = { "metadata","rdf:Description/dc:title/rdf:Alt/rdf:li" },
+ -- These were dc:.../rdf:Seq/rdf:li but there was a (invalidating) bug in the iso
+ ["Author"] = { "metadata","rdf:Description/dc:creator" },
+ ["Subject"] = { "metadata","rdf:Description/dc:description" },
+ ["Title"] = { "metadata","rdf:Description/dc:title" },
-- XMP Basic schema
["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
diff --git a/tex/context/base/mkiv/math-act.lua b/tex/context/base/mkiv/math-act.lua
index e1ef751d7..4e3365d74 100644
--- a/tex/context/base/mkiv/math-act.lua
+++ b/tex/context/base/mkiv/math-act.lua
@@ -220,10 +220,10 @@ function mathematics.tweakaftercopyingfont(target,original)
end
end
+sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
sequencers.appendaction("mathparameters","system","mathematics.scaleparameters")
sequencers.appendaction("mathparameters","system","mathematics.checkaccentbaseheight") -- should go in lfg instead
sequencers.appendaction("mathparameters","system","mathematics.checkprivateparameters") -- after scaling !
-sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
sequencers.appendaction("beforecopyingcharacters","system","mathematics.tweakbeforecopyingfont")
sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweakaftercopyingfont")
diff --git a/tex/context/base/mkiv/math-ini.lua b/tex/context/base/mkiv/math-ini.lua
index 2a8129ca7..688f682c8 100644
--- a/tex/context/base/mkiv/math-ini.lua
+++ b/tex/context/base/mkiv/math-ini.lua
@@ -31,6 +31,8 @@ local ctx_doifelsesomething = commands.doifelsesomething
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
+-- trace_defining = true
+
local report_math = logs.reporter("mathematics","initializing")
mathematics = mathematics or { }
@@ -55,78 +57,96 @@ local families = allocate {
--- to be checked .. afew defaults in char-def that should be alpha
local classes = allocate {
- ord = 0, -- mathordcomm mathord
- op = 1, -- mathopcomm mathop
- bin = 2, -- mathbincomm mathbin
- rel = 3, -- mathrelcomm mathrel
- open = 4, -- mathopencomm mathopen
- middle = 4,
- close = 5, -- mathclosecomm mathclose
- punct = 6, -- mathpunctcomm mathpunct
- alpha = 7, -- mathalphacomm firstofoneargument
- accent = 8, -- class 0
- radical = 9,
- xaccent = 10, -- class 3
- topaccent = 11, -- class 0
- botaccent = 12, -- class 0
- under = 13,
- over = 14,
- delimiter = 15,
- inner = 0, -- mathinnercomm mathinner
- nothing = 0, -- mathnothingcomm firstofoneargument
- choice = 0, -- mathchoicecomm @@mathchoicecomm
- box = 0, -- mathboxcomm @@mathboxcomm
- limop = 1, -- mathlimopcomm @@mathlimopcomm
- nolop = 1, -- mathnolopcomm @@mathnolopcomm
+ ord = 0, -- mathordcomm mathord
+ op = 1, -- mathopcomm mathop
+ bin = 2, -- mathbincomm mathbin
+ rel = 3, -- mathrelcomm mathrel
+ open = 4, -- mathopencomm mathopen
+ middle = 4,
+ close = 5, -- mathclosecomm mathclose
+ punct = 6, -- mathpunctcomm mathpunct
+ alpha = 7, -- mathalphacomm firstofoneargument
+ accent = 8, -- class 0
+ radical = 9,
+ xaccent = 10, -- class 3
+ topaccent = 11, -- class 0
+ botaccent = 12, -- class 0
+ under = 13,
+ over = 14,
+ delimiter = 15,
+ division = 15,
+ inner = 0, -- mathinnercomm mathinner
+ choice = 0, -- mathchoicecomm @@mathchoicecomm
+ prime = 0,
+ differential = 0,
+ exponential = 0,
+ limop = 1, -- mathlimopcomm @@mathlimopcomm
+ nolop = 1, -- mathnolopcomm @@mathnolopcomm
--
- ordinary = 0, -- ord
- alphabetic = 7, -- alpha
- unknown = 0, -- nothing
- default = 0, -- nothing
- punctuation = 6, -- punct
- normal = 0, -- nothing
- opening = 4, -- open
- closing = 5, -- close
- binary = 2, -- bin
- relation = 3, -- rel
- fence = 0, -- unknown
- diacritic = 8, -- accent
- large = 1, -- op
- variable = 7, -- alphabetic
- number = 7, -- alphabetic
- root = 16, -- a private one
+ ordinary = 0, -- ord
+ alphabetic = 7, -- alpha
+ punctuation = 6, -- punct
+ opening = 4, -- open
+ closing = 5, -- close
+ binary = 2, -- bin
+ relation = 3, -- rel
+ diacritic = 8, -- accent
+ large = 1, -- op
+ variable = 7, -- alphabetic
+ number = 7, -- alphabetic
+ root = 16, -- a private one
}
-local open_class = 4
-local middle_class = 4
-local close_class = 5
-local accent_class = 8
-local radical_class = 9
-local topaccent_class = 11
-local botaccent_class = 12
-local under_class = 13
-local over_class = 14
-local delimiter_class = 15
-local root_class = 16
+local engineclasses = table.setmetatableindex(function(t,k)
+ if k then
+ local c = tonumber(k) or classes[k] or 0
+ local v = c < 8 and c or 0
+ t[k] = v
+ return v
+ else
+ return 0
+ end
+end)
+
+local ordinary_class = classes.ordinary
+local open_class = classes.open
+local middle_class = classes.middle
+local close_class = classes.close
+local accent_class = classes.accent
+local radical_class = classes.radical
+local topaccent_class = classes.topaccent
+local botaccent_class = classes.botaccent
+local under_class = classes.under
+local over_class = classes.over
+local delimiter_class = classes.delimiter
+local division_class = classes.division
+local root_class = classes.root
local accents = allocate {
accent = true, -- some can be both
- topaccent = true, [11] = true,
- botaccent = true, [12] = true,
- under = true, [13] = true,
- over = true, [14] = true,
+ topaccent = true, [topaccent_class] = true,
+ botaccent = true, [botaccent_class] = true,
+ under = true, [under_class] = true,
+ over = true, [over_class] = true,
unknown = false,
}
+-- engine subtypes get from elsewhere
+
local codes = allocate {
- ordinary = 0, [0] = "ordinary",
- largeoperator = 1, "largeoperator",
- binaryoperator = 2, "binaryoperator",
- relation = 3, "relation",
- openingsymbol = 4, "openingsymbol",
- closingsymbol = 5, "closingsymbol",
- punctuation = 6, "punctuation",
- variable = 7, "variable",
+ ordinary = 0, [ 0] = "ordinary",
+ largeoperator = 1, [ 1] = "largeoperator",
+ binaryoperator = 2, [ 2] = "binaryoperator",
+ relation = 3, [ 3] = "relation",
+ openingsymbol = 4, [ 4] = "openingsymbol",
+ closingsymbol = 5, [ 5] = "closingsymbol",
+ punctuation = 6, [ 6] = "punctuation",
+ -- inner = 7, [ 7] = "inner",
+ -- undersymbol = 8, [ 8] = "undersymbol",
+ -- oversymbol = 9, [ 9] = "oversymbol",
+ -- fractionsymbol = 10, [10] = "fractionsymbol",
+ -- radicalsymbol = 11, [11] = "radicalsymbol",
+ middlesymbol = 12, [12] = "middlesymbol",
}
local extensibles = allocate {
@@ -176,257 +196,206 @@ mathematics.codes = codes
mathematics.families = families
mathematics.virtualized = virtualized
--- there will be proper functions soon (and we will move this code in-line)
--- no need for " in class and family (saves space)
-
--- local function mathchar(class,family,slot)
--- return formatters['\\Umathchar "%X "%X "%X '](class,family,slot)
--- end
---
--- local function mathaccent(class,family,slot)
--- return formatters['\\Umathaccent "%X "%X "%X '](0,family,slot) -- no class
--- end
---
--- local function delimiter(class,family,slot)
--- return formatters['\\Udelimiter "%X "%X "%X '](class,family,slot)
--- end
---
--- local function radical(family,slot)
--- return formatters['\\Uradical "%X "%X '](family,slot)
--- end
---
--- local function root(family,slot)
--- return formatters['\\Uroot "%X "%X '](family,slot)
--- end
---
--- local function mathchardef(name,class,family,slot)
--- return formatters['\\Umathchardef\\%s "%X "%X "%X '](name,class,family,slot)
--- end
---
--- local function mathcode(target,class,family,slot)
--- return formatters['\\Umathcode%s="%X "%X "%X '](target,class,family,slot)
--- end
---
--- local function mathtopaccent(class,family,slot)
--- return formatters['\\Umathaccent "%X "%X "%X '](0,family,slot) -- no class
--- end
---
--- local function mathbotaccent(class,family,slot)
--- return formatters['\\Umathaccent bottom "%X "%X "%X '](0,family,slot) -- no class
--- end
---
--- local function mathtopdelimiter(class,family,slot)
--- return formatters['\\Udelimiterover "%X "%X '](family,slot) -- no class
--- end
---
--- local function mathbotdelimiter(class,family,slot)
--- return formatters['\\Udelimiterunder "%X "%X '](family,slot) -- no class
--- end
-
local escapes = characters.filters.utf.private.escapes
--- not that many so no need to reuse tables
+do
-local setmathcharacter = function(class,family,slot,unicode,mset,dset)
- if mset and codes[class] then -- regular codes < 7
- setmathcode("global",slot,class,family,unicode)
- mset = false
- end
- if dset and class == open_class or class == close_class or class == middle_class then
- setdelcode("global",slot,family,unicode,0,0)
- dset = false
+ local setmathcharacter = function(class,family,slot,unicode,mset,dset)
+ if mset and codes[class] then -- regular codes < 7
+ setmathcode("global",slot,class,family,unicode)
+ mset = false
+ end
+ if dset and (class == open_class or class == close_class or class == middle_class or class == division_class) then
+ setdelcode("global",slot,family,unicode,0,0)
+ dset = false
+ end
+ return mset, dset
end
- return mset, dset
-end
-
--- todo: make nice setters for this in lua
-
-local f_accent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
-local f_topaccent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
-local f_botaccent = formatters[ [[\defUmathbotaccent \%s{%X}{%X}{%X}]] ]
-local f_over = formatters[ [[\defUdelimiterover \%s{%X}{%X}{%X}]] ]
-local f_under = formatters[ [[\defUdelimiterunder\%s{%X}{%X}{%X}]] ]
-local f_fence = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
-local f_delimiter = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
-local f_radical = formatters[ [[\defUradical \%s{%X}{%X}]] ]
-local f_root = formatters[ [[\defUroot \%s{%X}{%X}]] ]
-local f_char = formatters[ [[\defUmathchar \%s{%X}{%X}{%X}]] ]
-
-local texmathchardef = tex.mathchardef
-
--- local setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing
--- if class == classes.accent then
--- ctx_sprint(f_topaccent(name,0,family,slot))
--- elseif class == classes.topaccent then
--- ctx_sprint(f_topaccent(name,0,family,slot))
--- elseif class == classes.botaccent then
--- ctx_sprint(f_botaccent(name,0,family,slot))
--- elseif class == classes.over then
--- ctx_sprint(f_over(name,0,family,slot))
--- elseif class == classes.under then
--- ctx_sprint(f_under(name,0,family,slot))
--- elseif class == open_class or class == close_class or class == middle_class then
--- setdelcode("global",slot,{family,slot,0,0})
--- ctx_sprint(f_fence(name,class,family,slot))
--- elseif class == classes.delimiter then
--- setdelcode("global",slot,{family,slot,0,0})
--- ctx_sprint(f_delimiter(name,0,family,slot))
--- elseif class == classes.radical then
--- ctx_sprint(f_radical(name,family,slot))
--- elseif class == classes.root then
--- ctx_sprint(f_root(name,family,slot))
--- elseif texmathchardef then
--- texmathchardef(name,class,family,slot,"permanent")
--- else
--- -- beware, open/close and other specials should not end up here
--- ctx_sprint(f_char(name,class,family,slot))
--- end
--- end
-local setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing
- if class == accent_class then
- ctx_sprint(f_topaccent(name,0,family,slot))
- elseif class == topaccent_class then
- ctx_sprint(f_topaccent(name,0,family,slot))
- elseif class == botaccent_class then
- ctx_sprint(f_botaccent(name,0,family,slot))
- elseif class == over_class then
- ctx_sprint(f_over(name,0,family,slot))
- elseif class == under_class then
- ctx_sprint(f_under(name,0,family,slot))
- elseif class == open_class or class == close_class or class == middle_class then
- setdelcode("global",slot,{family,slot,0,0})
- ctx_sprint(f_fence(name,class,family,slot))
- elseif class == delimiter_class then
- setdelcode("global",slot,{family,slot,0,0})
- ctx_sprint(f_delimiter(name,0,family,slot))
- elseif class == radical_class then
- ctx_sprint(f_radical(name,family,slot))
- elseif class == root_class then
- ctx_sprint(f_root(name,family,slot))
- elseif texmathchardef then
- texmathchardef(name,class,family,slot,"permanent")
- else
- -- beware, open/close and other specials should not end up here
- ctx_sprint(f_char(name,class,family,slot))
+ local function report(class,engine,family,unicode,name)
+ local nametype = type(name)
+ if nametype == "string" then
+ report_math("class %a, engine %a, family %a, char %C, name %a",class,engine,family,unicode,name)
+ elseif nametype == "number" then
+ report_math("class %a, engine %a, family %a, char %C, number %U",class,engine,family,unicode,name)
+ else
+ report_math("class %a, engine %a, family %a, char %C",class,engine,family,unicode)
+ end
end
-end
-local function report(class,family,unicode,name)
- local nametype = type(name)
- if nametype == "string" then
- report_math("class name %a, class %a, family %a, char %C, name %a",classname,class,family,unicode,name)
- elseif nametype == "number" then
- report_math("class name %a, class %a, family %a, char %C, number %U",classname,class,family,unicode,name)
- else
- report_math("class name %a, class %a, family %a, char %C", classname,class,family,unicode)
+ local f_accent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_topaccent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_botaccent = formatters[ [[\defUmathbotaccent \%s{%X}{%X}{%X}]] ]
+ local f_over = formatters[ [[\defUdelimiterover \%s{%X}{%X}{%X}]] ]
+ local f_under = formatters[ [[\defUdelimiterunder\%s{%X}{%X}{%X}]] ]
+ local f_fence = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
+ local f_delimiter = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
+ local f_radical = formatters[ [[\defUradical \%s{%X}{%X}]] ]
+ local f_root = formatters[ [[\defUroot \%s{%X}{%X}]] ]
+ local f_char = formatters[ [[\defUmathchar \%s{%X}{%X}{%X}]] ]
+
+ local texmathchardef = tex.mathchardef
+
+ local setmathsymbol = function(name,class,engine,family,slot) -- hex is nicer for tracing
+ if class == accent_class then
+ ctx_sprint(f_topaccent(name,0,family,slot))
+ elseif class == topaccent_class then
+ ctx_sprint(f_topaccent(name,0,family,slot))
+ elseif class == botaccent_class then
+ ctx_sprint(f_botaccent(name,0,family,slot))
+ elseif class == over_class then
+ ctx_sprint(f_over(name,0,family,slot))
+ elseif class == under_class then
+ ctx_sprint(f_under(name,0,family,slot))
+ elseif class == open_class or class == close_class or class == middle_class then
+ setdelcode("global",slot,{family,slot,0,0})
+ ctx_sprint(f_fence(name,engine,family,slot))
+ elseif class == delimiter_class then
+ setdelcode("global",slot,{family,slot,0,0})
+ ctx_sprint(f_delimiter(name,0,family,slot))
+ elseif class == radical_class then
+ ctx_sprint(f_radical(name,family,slot))
+ elseif class == root_class then
+ ctx_sprint(f_root(name,family,slot))
+ elseif texmathchardef then
+ texmathchardef(name,engine,family,slot,"permanent")
+ else
+ -- beware, open/close and other specials should not end up here
+ ctx_sprint(f_char(name,engine,family,slot))
+ end
end
-end
--- there will be a combined \(math)chardef (tracker)
-
-function mathematics.define(family)
- family = family or 0
- family = families[family] or family
- local data = characters.data
- for unicode, character in sortedhash(data) do
- local symbol = character.mathsymbol
- local mset = true
- local dset = true
- if symbol then
- local other = data[symbol]
- local class = other.mathclass
- if class then
- class = classes[class] or class -- no real checks needed
- if trace_defining then
- report(class,family,unicode,symbol)
- end
- mset, dset = setmathcharacter(class,family,unicode,symbol,mset,dset)
+ function mathematics.define(family)
+ family = family or 0
+ family = families[family] or family
+ local data = characters.data
+ --
+ local function remap(first,last)
+ for unicode=utfbyte(first),utfbyte(last) do
+ setmathcode("global",unicode,ordinary_class,family,unicode)
end
- local spec = other.mathspec
- if spec then
- for i=1,#spec do
- local m = spec[i]
- local class = m.class
- if class then
- class = classes[class] or class -- no real checks needed
- mset, dset = setmathcharacter(class,family,unicode,symbol,mset,dset)
+ end
+ remap("0","9")
+ remap("A","Z")
+ remap("a","z")
+ --
+ for unicode, character in sortedhash(data) do
+ local symbol = character.mathsymbol
+ local mset = true
+ local dset = true
+ if symbol then
+ local other = data[symbol]
+ local class = other.mathclass
+ if class then
+ local engine = engineclasses[class]
+ if trace_defining then
+ report(class,engine,family,unicode,symbol)
end
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset)
end
- end
- end
- local mathclass = character.mathclass
- local mathspec = character.mathspec
- if mathspec then
- if mathclass then
- local name = character.mathname
- if name then
- report_math("fatal error, conflicting mathclass and mathspec for %C",unicode)
- os.exit()
- else
- local class = classes[mathclass] or mathclass -- no real checks needed
- if not class then
- if trace_defining then
- report("unknown",family,unicode)
+ local spec = other.mathspec
+ if spec then
+ for i=1,#spec do
+ local m = spec[i]
+ local class = m.class
+ if class then
+ local engine = engineclasses[class]
+ -- todo: trace
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset)
end
- else
- if trace_defining then
- report(class,family,unicode)
- end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
end
end
end
- for i=1,#mathspec do
- local m = mathspec[i]
- local name = m.name
- local class = m.class
+ local class = character.mathclass
+ local spec = character.mathspec
+ local name = character.mathname
+ if spec then
+ local done = false
if class then
- class = classes[class] or class -- no real checks needed
if name then
+ report_math("fatal error, conflicting mathclass and mathspec for %C",unicode)
+ os.exit()
+ else
+ class = classes[class] or ordinary_class
+ local engine = engineclasses[class]
if trace_defining then
- report(class,family,unicode,name)
+ report(class,engine,family,unicode)
end
- setmathsymbol(name,class,family,unicode)
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ done = true
+ end
+ end
+ for i=1,#spec do
+ local m = spec[i]
+ local name = m.name
+ local class = m.class or class
+ if class then
+ class = classes[class] or ordinary_class
else
- name = (class == classes.variable or class == classes.number) and character.adobename -- bad
- if name and trace_defining then
- report(class,family,unicode,name)
+ class = ordinary_class
+ end
+ if class then
+ local engine = engineclasses[class]
+ if name then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ setmathsymbol(name,class,engine,family,unicode)
+ else
+ name = (class == classes.ordinary or class == classes.digit) and character.adobename -- bad
+ if name and trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ end
+ if not done then
+ mset, dset = setmathcharacter(engine,family,unicode,m.unicode or unicode,mset,dset) -- see solidus
+ done = true
end
end
- mset, dset = setmathcharacter(class,family,unicode,m.unicode or unicode,mset,dset) -- see solidus
- end
- end
- elseif mathclass then
- local name = character.mathname
- local class = classes[mathclass] or mathclass -- no real checks needed
- if not class then
- if trace_defining then
- report("unknown",family,unicode,name)
end
- elseif name == false then
- if trace_defining then
- report(class,family,unicode,name)
- end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
else
- -- if not name then
- -- name = character.contextname -- too dangerous, we loose textslash and a few more
- -- end
- if name then
- if trace_defining then
- report(class,family,unicode,name)
- end
- setmathsymbol(name,class,family,unicode)
+ if class then
+ class = classes[class] or ordinary_class
else
+ class = ordinary_class
+ end
+ if name ~= nil then
+ local engine = engineclasses[class]
+ if name == false then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ else
+ -- if not name then
+ -- name = character.contextname -- too dangerous, we loose textslash and a few more
+ -- end
+ if name then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ setmathsymbol(name,class,engine,family,unicode)
+ else
+ if trace_defining then
+ report(class,engine,family,unicode,character.adobename)
+ end
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ end
+ elseif class ~= ordinary_class then
+ local engine = engineclasses[class]
if trace_defining then
- report(class,family,unicode,character.adobename)
+ report(class,engine,family,unicode,character.adobename)
end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
end
end
+ if trace_defining then
+ logs.stopfilelogging()
+ end
end
+
end
-- needed for mathml analysis
diff --git a/tex/context/base/mkiv/math-int.mkiv b/tex/context/base/mkiv/math-int.mkiv
index 5876eb7bb..0920415f9 100644
--- a/tex/context/base/mkiv/math-int.mkiv
+++ b/tex/context/base/mkiv/math-int.mkiv
@@ -68,8 +68,8 @@
\to \everyswitchmathematics
\setupmathematics
-% [\v!integral=nolimits]
- [\v!integral=autolimits]
+% [\c!integral=nolimits]
+ [\c!integral=autolimits]
%D The following code is used for fallbacks and might become obsolete once
%D we have enough \OPENTYPE\ math fonts.
diff --git a/tex/context/base/mkiv/math-tag.lua b/tex/context/base/mkiv/math-tag.lua
index 3c53c2cc8..5bbe5cb3a 100644
--- a/tex/context/base/mkiv/math-tag.lua
+++ b/tex/context/base/mkiv/math-tag.lua
@@ -99,7 +99,6 @@ local chardata = characters.data
local getmathcodes = tex.getmathcodes
local mathcodes = mathematics.codes
local ordinary_mathcode = mathcodes.ordinary
-local variable_mathcode = mathcodes.variable
local fromunicode16 = fonts.mappings.fromunicode16
local fontcharacters = fonts.hashes.characters
@@ -226,7 +225,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
local char = getchar(start)
local code = getmathcodes(char)
local tag
- if code == ordinary_mathcode or code == variable_mathcode then
+ if code == ordinary_mathcode then
local ch = chardata[char]
local mc = ch and ch.mathclass
if mc == "number" then
diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua
index e294e65d1..c0a9d70e0 100644
--- a/tex/context/base/mkiv/mult-def.lua
+++ b/tex/context/base/mkiv/mult-def.lua
@@ -7881,6 +7881,10 @@ return {
["fr"]="commandebas",
["nl"]="ondercommando",
},
+ ["bottomcolor"]={
+ ["en"]="bottomcolor",
+ ["nl"]="onderkleur",
+ },
["bottomdistance"]={
["cs"]="vzdalenostspodku",
["de"]="abstandunten",
@@ -9453,6 +9457,10 @@ return {
["en"]="instance",
["fr"]="instance",
},
+ ["integral"]={
+ ["en"]="integral",
+ ["fr"]="integrale",
+ },
["intent"]={
["en"]="intent",
["fr"]="intention",
@@ -12427,6 +12435,10 @@ return {
["fr"]="commandehaut",
["nl"]="bovencommando",
},
+ ["topcolor"]={
+ ["en"]="topcolor",
+ ["nl"]="bovenkleur",
+ },
["topdistance"]={
["cs"]="vzdalenostvrsku",
["de"]="obenabstand",
@@ -12806,6 +12818,15 @@ return {
["pe"]="گام‌وای",
["ro"]="ystep",
},
+ ["leftsource"]={
+ ["en"]="leftsource",
+ },
+ ["rightsource"]={
+ ["en"]="rightsource",
+ },
+ ["middlesource"]={
+ ["en"]="middlesource",
+ },
["source"]={
["en"]="source",
},
@@ -16305,10 +16326,6 @@ return {
["pe"]="درحاشیه‌راست",
["ro"]="inmargineadreapta",
},
- ["integral"]={
- ["en"]="integral",
- ["fr"]="integrale",
- },
["interaction"]={
["cs"]="interakce",
["de"]="interaktion",
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index 2be5115e0..e5feab5d6 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -22,6 +22,7 @@ return {
"pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi",
"normalpagebox",
"binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty",
+ "thickermuskip",
--
"directionlefttoright", "directionrighttoleft",
--
@@ -77,7 +78,8 @@ return {
"loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode",
"widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode",
"demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode",
- "shapingpenaltiesfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode",
+ "shapingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode",
+ "mathpenaltyfrozenparcode",
--
"activemathcharcode",
--
@@ -103,10 +105,11 @@ return {
"trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode",
--
"overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode",
- "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "accentitalickernmathcontrolcode",
- "delimiteritalickernmathcontrolcode", "noorditalickernmathcontrolcode", "charitalicwidthmathcontrolcode",
- "charitalicnoreboxmathcontrolcode", "boxednoitalickernmathcontrolcode", "nostaircasekernmathcontrolcode",
- "textitalickernmathcontrolcode", "noscriptitalickernmathcontrolcode", "italicshapekernmathcontrolcode",
+ "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "checkligatureandkernmathcontrolcode",
+ "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode",
+ "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode",
+ "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "italicshapekernmathcontrolcode",
+ "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode",
--
"noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode",
"noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode",
@@ -157,9 +160,16 @@ return {
--
"typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix",
--
- "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode",
- "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode",
- "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode",
+ "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode",
+ "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode",
+ "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode",
+ "mathfractioncode", "mathmiddlecode", "mathaccentcode", "mathfencedcode", "mathghostcode",
+ "mathvariablecode", "mathactivecode", "mathvcentercode",
+ "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode",
+ --
+ "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathfunctioncode", "mathdigitcode",
+ -- "mathtopaccentcode", "mathbottomaccentcode", "mathdelimitercode", "mathrootcode", "mathprintcode", --
+ "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode",
--
"constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument",
--
@@ -193,7 +203,7 @@ return {
--
"normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode",
"breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode",
- "discardzerotabskipsnormalizecode",
+ "discardzerotabskipsnormalizecode", "flattenleadersnormalizecode",
--
"noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode",
"noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode",
@@ -260,7 +270,8 @@ return {
--
"donetrue", "donefalse", "foundtrue", "foundfalse",
--
- "inlineordisplaymath","indisplaymath","forcedisplaymath","startforceddisplaymath","stopforceddisplaymath","startpickupmath","stoppickupmath","reqno",
+ "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath",
+ "startpickupmath", "stoppickupmath", "reqno", "forceinlinemath",
--
"mathortext",
--
@@ -307,6 +318,7 @@ return {
"triggergroupedcommand", "triggergroupedcommandcs",
"simplegroupedcommand", "simplegroupedcommandcs",
"pickupgroupedcommand", "pickupgroupedcommandcs",
+ "mathgroupedcommandcs",
--
"usedbaselineskip", "usedlineskip", "usedlineskiplimit",
--
@@ -467,43 +479,51 @@ return {
--
"ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing",
"ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing",
- "ordfracspacing", "ordradspacing",
+ "ordfracspacing", "ordradspacing", "ordmiddlespacing", "ordaccentspacing",
--
"opordspacing", "opopspacing", "opbinspacing", "oprelspacing",
"opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing",
- "opfracspacing", "opradspacing",
+ "opfracspacing", "opradspacing", "opmiddlespacing", "opaccentspacing",
--
"binordspacing", "binopspacing", "binbinspacing", "binrelspacing",
"binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing",
- "binfracspacing", "binradspacing",
+ "binfracspacing", "binradspacing", "binmiddlespacing", "binaccentspacing",
--
"relordspacing", "relopspacing", "relbinspacing", "relrelspacing",
"relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing",
- "relfracspacing", "relradspacing",
+ "relfracspacing", "relradspacing", "relmiddlespacing", "relaccentspacing",
--
"openordspacing", "openopspacing", "openbinspacing", "openrelspacing",
"openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing",
- "openfracspacing", "openradspacing",
+ "openfracspacing", "openradspacing", "openmiddlespacing", "openaccentspacing",
--
"closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing",
"closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing",
- "closefracspacing", "closeradspacing",
+ "closefracspacing", "closeradspacing", "closemiddlespacing", "closeaccentspacing",
--
"punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing",
"punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing",
- "punctfracspacing", "punctradspacing",
+ "punctfracspacing", "punctradspacing", "punctmiddlespacing", "punctaccentspacing",
--
"innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing",
"inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing",
- "innerfracspacing", "innerradspacing",
+ "innerfracspacing", "innerradspacing", "innermiddlespacing", "inneraccentspacing",
--
"fracordspacing", "fracopspacing", "fracbinspacing", "fracrelspacing",
"fracopenspacing", "fracclosespacing", "fracpunctspacing", "fracinnerspacing",
- "fracfracspacing", "fracradspacing",
+ "fracfracspacing", "fracradspacing", "fracmiddlespacing", "fracaccentspacing",
--
"radordspacing", "radopspacing", "radbinspacing", "radrelspacing",
"radopenspacing", "radclosespacing", "radpunctspacing", "radinnerspacing",
- "radfracspacing", "radradspacing",
+ "radfracspacing", "radradspacing", "radmiddlespacing", "radaccentspacing",
+ --
+ "middleordspacing", "middleopspacing", "middlebinspacing", "middlerelspacing",
+ "middleopenspacing", "middleclosespacing", "middlepunctspacing", "middleinnerspacing",
+ "middlefracspacing", "middleradspacing", "middlemiddlespacing", "middleaccentspacing",
+ --
+ "accentordspacing", "accentopspacing", "accentbinspacing", "accentrelspacing",
+ "accentopenspacing", "accentclosespacing", "accentpunctspacing", "accentinnerspacing",
+ "accentfracspacing", "accentradspacing", "accentmiddlespacing", "accentaccentspacing",
--
"normalreqno",
--
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 6959944d9..bbc41176b 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -64,8 +64,6 @@ return {
"widowpenalties",
},
["luatex"]={
- "UUskewed",
- "UUskewedwithdelims",
"Uabove",
"Uabovewithdelims",
"Uatop",
@@ -84,16 +82,6 @@ return {
"Umathadapttoleft",
"Umathadapttoright",
"Umathaxis",
- "Umathbinbinspacing",
- "Umathbinclosespacing",
- "Umathbinfracspacing",
- "Umathbininnerspacing",
- "Umathbinopenspacing",
- "Umathbinopspacing",
- "Umathbinordspacing",
- "Umathbinpunctspacing",
- "Umathbinradspacing",
- "Umathbinrelspacing",
"Umathbotaccentvariant",
"Umathchar",
"Umathcharclass",
@@ -103,16 +91,6 @@ return {
"Umathcharnumdef",
"Umathcharslot",
"Umathclass",
- "Umathclosebinspacing",
- "Umathcloseclosespacing",
- "Umathclosefracspacing",
- "Umathcloseinnerspacing",
- "Umathcloseopenspacing",
- "Umathcloseopspacing",
- "Umathcloseordspacing",
- "Umathclosepunctspacing",
- "Umathcloseradspacing",
- "Umathcloserelspacing",
"Umathcode",
"Umathcodenum",
"Umathconnectoroverlapmin",
@@ -128,16 +106,6 @@ return {
"Umathextrasupprespace",
"Umathextrasupshift",
"Umathextrasupspace",
- "Umathfracbinspacing",
- "Umathfracclosespacing",
- "Umathfracfracspacing",
- "Umathfracinnerspacing",
- "Umathfracopenspacing",
- "Umathfracopspacing",
- "Umathfracordspacing",
- "Umathfracpunctspacing",
- "Umathfracradspacing",
- "Umathfracrelspacing",
"Umathfractiondelsize",
"Umathfractiondenomdown",
"Umathfractiondenomvgap",
@@ -146,16 +114,6 @@ return {
"Umathfractionrule",
"Umathfractionvariant",
"Umathhextensiblevariant",
- "Umathinnerbinspacing",
- "Umathinnerclosespacing",
- "Umathinnerfracspacing",
- "Umathinnerinnerspacing",
- "Umathinneropenspacing",
- "Umathinneropspacing",
- "Umathinnerordspacing",
- "Umathinnerpunctspacing",
- "Umathinnerradspacing",
- "Umathinnerrelspacing",
"Umathlimitabovebgap",
"Umathlimitabovekern",
"Umathlimitabovevgap",
@@ -168,39 +126,9 @@ return {
"Umathnolimitsubfactor",
"Umathnolimitsupfactor",
"Umathnumeratorvariant",
- "Umathopbinspacing",
- "Umathopclosespacing",
- "Umathopenbinspacing",
- "Umathopenclosespacing",
- "Umathopenfracspacing",
- "Umathopeninnerspacing",
- "Umathopenopenspacing",
- "Umathopenopspacing",
- "Umathopenordspacing",
- "Umathopenpunctspacing",
- "Umathopenradspacing",
- "Umathopenrelspacing",
"Umathopenupdepth",
"Umathopenupheight",
"Umathoperatorsize",
- "Umathopfracspacing",
- "Umathopinnerspacing",
- "Umathopopenspacing",
- "Umathopopspacing",
- "Umathopordspacing",
- "Umathoppunctspacing",
- "Umathopradspacing",
- "Umathoprelspacing",
- "Umathordbinspacing",
- "Umathordclosespacing",
- "Umathordfracspacing",
- "Umathordinnerspacing",
- "Umathordopenspacing",
- "Umathordopspacing",
- "Umathordordspacing",
- "Umathordpunctspacing",
- "Umathordradspacing",
- "Umathordrelspacing",
"Umathoverbarkern",
"Umathoverbarrule",
"Umathoverbarvgap",
@@ -210,20 +138,14 @@ return {
"Umathoverlayaccentvariant",
"Umathoverlinevariant",
"Umathphantom",
- "Umathpunctbinspacing",
- "Umathpunctclosespacing",
- "Umathpunctfracspacing",
- "Umathpunctinnerspacing",
- "Umathpunctopenspacing",
- "Umathpunctopspacing",
- "Umathpunctordspacing",
- "Umathpunctpunctspacing",
- "Umathpunctradspacing",
- "Umathpunctrelspacing",
+ "Umathpresubshiftdistance",
+ "Umathpresupshiftdistance",
+ "Umathprimeraise",
+ "Umathprimeshiftdrop",
+ "Umathprimeshiftup",
+ "Umathprimesupspace",
+ "Umathprimevariant",
"Umathquad",
- "Umathradbinspacing",
- "Umathradclosespacing",
- "Umathradfracspacing",
"Umathradicaldegreeafter",
"Umathradicaldegreebefore",
"Umathradicaldegreeraise",
@@ -231,33 +153,19 @@ return {
"Umathradicalrule",
"Umathradicalvariant",
"Umathradicalvgap",
- "Umathradinnerspacing",
- "Umathradopenspacing",
- "Umathradopspacing",
- "Umathradordspacing",
- "Umathradpunctspacing",
- "Umathradradspacing",
- "Umathradrelspacing",
- "Umathrelbinspacing",
- "Umathrelclosespacing",
- "Umathrelfracspacing",
- "Umathrelinnerspacing",
- "Umathrelopenspacing",
- "Umathrelopspacing",
- "Umathrelordspacing",
- "Umathrelpunctspacing",
- "Umathrelradspacing",
- "Umathrelrelspacing",
+ "Umathruledepth",
+ "Umathruleheight",
+ "Umathskeweddelimitertolerance",
"Umathskewedfractionhgap",
"Umathskewedfractionvgap",
"Umathspaceafterscript",
"Umathspacebeforescript",
- "Umathspacingmode",
"Umathstackdenomdown",
"Umathstacknumup",
"Umathstackvariant",
"Umathstackvgap",
"Umathsubscriptvariant",
+ "Umathsubshiftdistance",
"Umathsubshiftdown",
"Umathsubshiftdrop",
"Umathsubsupshiftdown",
@@ -265,6 +173,7 @@ return {
"Umathsubtopmax",
"Umathsupbottommin",
"Umathsuperscriptvariant",
+ "Umathsupshiftdistance",
"Umathsupshiftdrop",
"Umathsupshiftup",
"Umathsupsubbottommax",
@@ -276,6 +185,7 @@ return {
"Umathunderdelimitervariant",
"Umathunderdelimitervgap",
"Umathunderlinevariant",
+ "Umathuseaxis",
"Umathvextensiblevariant",
"Umathvoid",
"Umathxscale",
@@ -285,12 +195,18 @@ return {
"Unosubscript",
"Unosuperprescript",
"Unosuperscript",
+ "Uoperator",
"Uover",
"Uoverdelimiter",
"Uoverwithdelims",
+ "Uprimescript",
"Uradical",
"Uright",
"Uroot",
+ "Ushiftedsubprescript",
+ "Ushiftedsubscript",
+ "Ushiftedsuperprescript",
+ "Ushiftedsuperscript",
"Uskewed",
"Uskewedwithdelims",
"Ustack",
@@ -314,10 +230,14 @@ return {
"aliased",
"alignmark",
"aligntab",
+ "allcrampedstyles",
+ "alldisplaystyles",
"allmathstyles",
+ "allscriptscriptstyles",
"allscriptstyles",
"allsplitstyles",
"alltextstyles",
+ "alluncrampedstyles",
"atendofgroup",
"atendofgrouped",
"attribute",
@@ -347,6 +267,9 @@ return {
"boxyoffset",
"catcodetable",
"clearmarks",
+ "copymathatomrule",
+ "copymathparent",
+ "copymathspacing",
"crampeddisplaystyle",
"crampedscriptscriptstyle",
"crampedscriptstyle",
@@ -480,13 +403,19 @@ return {
"lastarguments",
"lastchkdim",
"lastchknum",
+ "lastleftclass",
+ "lastloopiterator",
"lastnamedcs",
"lastnodesubtype",
"lastparcontext",
+ "lastrightclass",
"leftmarginkern",
"letcharcode",
"letcsname",
"letfrozen",
+ "letmathatomrule",
+ "letmathparent",
+ "letmathspacing",
"letprotected",
"lettonothing",
"linedirection",
@@ -512,15 +441,23 @@ return {
"luatexbanner",
"luatexrevision",
"luatexversion",
+ "mathaccent",
+ "mathatom",
+ "mathatomskip",
+ "mathbackwardpenalties",
"mathcontrolmode",
"mathdelimitersmode",
"mathdirection",
"mathdisplayskipmode",
"matheqnogapstep",
- "mathflattenmode",
+ "mathfenced",
+ "mathfencesmode",
"mathfontcontrol",
+ "mathforwardpenalties",
"mathfrac",
+ "mathghost",
"mathlimitsmode",
+ "mathmiddle",
"mathnolimitsmode",
"mathpenaltiesmode",
"mathrad",
@@ -531,9 +468,14 @@ return {
"mathscriptboxmode",
"mathscriptcharmode",
"mathscriptsmode",
+ "mathslackmode",
+ "mathspacingmode",
+ "mathstackstyle",
"mathstyle",
+ "mathstylefontid",
"mathsurroundmode",
"mathsurroundskip",
+ "maththreshold",
"mugluespecdef",
"mutable",
"noaligned",
@@ -562,26 +504,45 @@ return {
"permanent",
"postexhyphenchar",
"posthyphenchar",
+ "postinlinepenalty",
"prebinoppenalty",
"predisplaygapfactor",
"preexhyphenchar",
"prehyphenchar",
+ "preinlinepenalty",
"prerelpenalty",
"protrudechars",
"protrusionboundary",
"pxdimen",
"quitloop",
"quitvmode",
+ "resetmathspacing",
"retokenized",
"rightmarginkern",
"rpcode",
"savecatcodetable",
+ "scaledemwidth",
+ "scaledexheight",
+ "scaledextraspace",
+ "scaledinterwordshrink",
+ "scaledinterwordspace",
+ "scaledinterwordstretch",
+ "scaledslantperpoint",
"scantextokens",
"semiexpanded",
"semiprotected",
+ "setdefaultmathcodes",
"setfontid",
+ "setmathatomrule",
+ "setmathignore",
+ "setmathoptions",
+ "setmathpostpenalty",
+ "setmathprepenalty",
+ "setmathspacing",
"shapingpenaltiesmode",
"shapingpenalty",
+ "skewed",
+ "skewedwithdelims",
"snapshotpar",
"supmarkmode",
"swapcsvalues",
@@ -607,6 +568,7 @@ return {
"tracingmarks",
"tracingmath",
"tracingnodes",
+ "uleaders",
"undent",
"unexpandedloop",
"unletfrozen",
@@ -900,7 +862,6 @@ return {
"lower",
"lowercase",
"mark",
- "mathaccent",
"mathbin",
"mathchar",
"mathchardef",
@@ -1010,6 +971,7 @@ return {
"splitfirstmark",
"splitmaxdepth",
"splittopskip",
+ "srule",
"string",
"tabskip",
"textfont",
@@ -1018,6 +980,7 @@ return {
"thickmuskip",
"thinmuskip",
"time",
+ "tinymuskip",
"toks",
"toksdef",
"tolerance",
diff --git a/tex/context/base/mkiv/node-ser.lua b/tex/context/base/mkiv/node-ser.lua
index 0f4d13bb6..ee2abe0d2 100644
--- a/tex/context/base/mkiv/node-ser.lua
+++ b/tex/context/base/mkiv/node-ser.lua
@@ -133,7 +133,7 @@ setinspector("node",function(v) if isnode(v) then printtable(astable(v),tostring
local function totable(n,flat,verbose,noattributes) -- nicest: n,true,true,true
local function to_table(n,flat,verbose,noattributes) -- no need to pass
- local f = getfields(n)
+ local f = getfields(n.id)
local tt = { }
for k=1,#f do
local v = f[k]
diff --git a/tex/context/base/mkiv/page-str.lua b/tex/context/base/mkiv/page-str.lua
index e136a38b4..64e593e27 100644
--- a/tex/context/base/mkiv/page-str.lua
+++ b/tex/context/base/mkiv/page-str.lua
@@ -27,8 +27,9 @@ local write_node = nuts.write
local flushnode = nuts.flush
local copy_node_list = nuts.copylist
local vpack_node_list = nuts.vpack
+local new_rule = nuts.pool.rule
-local getbox = nuts.getbox
+----- getbox = nuts.getbox
local setlink = nuts.setlink
local getlist = nuts.getlist
local setlist = nuts.setlist
@@ -40,7 +41,6 @@ local settings_to_array = utilities.parsers.settings_to_array
local enableaction = nodes.tasks.enableaction
local texgetdimen = tex.getdimen
------ texgetbox = tex.getbox
local trace_collecting = false trackers.register("streams.collecting", function(v) trace_collecting = v end)
local trace_flushing = false trackers.register("streams.flushing", function(v) trace_flushing = v end)
@@ -226,9 +226,11 @@ function streams.synchronize(list) -- this is an experiment !
local delta = delta_height -- for tracing
while delta > 0 do
-- we need to add some interline penalties
- local line = copy_node_list(getbox("strutbox"))
- setwhd(line,false,strutht,strutdp)
+ -- local line = copy_node_list(getbox("strutbox"))
+ -- setwhd(line,false,strutht,strutdp)
+ local line = new_rule(0,strutht,strutdp) -- no tracing
if tail then
+ -- todo: inject at a better place
setlink(tail,line)
end
tail = line
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 2675edd1b..75450daa5 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 7dea83d86..63b45c4c1 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-pag.lua b/tex/context/base/mkiv/strc-pag.lua
index 9c040104d..5cdba5b76 100644
--- a/tex/context/base/mkiv/strc-pag.lua
+++ b/tex/context/base/mkiv/strc-pag.lua
@@ -322,10 +322,6 @@ function pages.on_right(n)
end
end
-function pages.has_changed()
- return texconditionals.layouthaschanged
-end
-
function pages.in_body(n)
return texgetcount("pagebodymode") > 0
end
diff --git a/tex/context/base/mkiv/syst-ini.mkiv b/tex/context/base/mkiv/syst-ini.mkiv
index 568912a33..dd3e7c822 100644
--- a/tex/context/base/mkiv/syst-ini.mkiv
+++ b/tex/context/base/mkiv/syst-ini.mkiv
@@ -589,7 +589,7 @@
\protected\def\defUmathbotaccent #1#2#3#4{\global\instance\protected\def#1{\Umathbotaccent "#2 "#3 "#4 }}
\protected\def\defUdelimiterover #1#2#3#4{\global\instance\protected\def#1{\Udelimiterover "#2 "#3 }}
\protected\def\defUdelimiterunder #1#2#3#4{\global\instance\protected\def#1{\Udelimiterunder "#2 "#3 }}
-\protected\def\defUdelimiter #1#2#3#4{\global\instance\protected\def#1{\Udelimiter "#2 "#2 "#4 }}
+\protected\def\defUdelimiter #1#2#3#4{\global\instance\protected\def#1{\Udelimiter "#2 "#3 "#4 }}
\protected\def\defUradical #1#2#3{\global\instance\protected\def#1{\Uradical "#2 "#3 }}
\protected\def\defUroot #1#2#3{\global\instance\protected\def#1{\Uroot "#2 "#3 }}
\protected\def\defUmathchar #1#2#3#4{\global\instance\Umathchardef #1 "#2 "#3 "#4 }
diff --git a/tex/context/base/mkiv/typo-mar.lua b/tex/context/base/mkiv/typo-mar.lua
index f8c135fa7..56324c790 100644
--- a/tex/context/base/mkiv/typo-mar.lua
+++ b/tex/context/base/mkiv/typo-mar.lua
@@ -270,8 +270,8 @@ function margins.save(t)
if t.number then
local leftmargindistance = texgetdimen("naturalleftmargindistance")
local rightmargindistance = texgetdimen("naturalrightmargindistance")
- local strutbox = getbox("strutbox")
- local _, strutht, strutdp = getwhd(strutbox)
+ local strutht = texgetdimen("strutht")
+ local strutdp = texgetdimen("strutdp")
-- better make a new table and make t entry in t
t.box = content
t.n = nofsaved
diff --git a/tex/context/base/mkiv/util-sac.lua b/tex/context/base/mkiv/util-sac.lua
index 796a620ba..36daef816 100644
--- a/tex/context/base/mkiv/util-sac.lua
+++ b/tex/context/base/mkiv/util-sac.lua
@@ -544,3 +544,39 @@ do
end
end
+
+if bit32 and not streams.tocardinal1 then
+
+ local extract = bit32.extract
+ local char = string.char
+
+ streams.tocardinal1 = char
+ function streams.tocardinal2(n) return char(extract( 8,8),extract( 0,8)) end
+ function streams.tocardinal3(n) return char(extract(16,8),extract( 8,8),extract(0,8)) end
+ function streams.tocardinal4(n) return char(extract(24,8),extract(16,8),extract(8,8),extract(0,8)) end
+
+ streams.tocardinal1le = char
+ function streams.tocardinal2le(n) return char(extract(0,8),extract(8,8)) end
+ function streams.tocardinal3le(n) return char(extract(0,8),extract(8,8),extract(16,8)) end
+ function streams.tocardinal4le(n) return char(extract(0,8),extract(8,8),extract(16,8),extract(24,8)) end
+
+end
+
+if not streams.readcstring then
+
+ local readchar = streams.readchar
+ local concat = table.concat
+
+ function streams.readcstring(f)
+ local t = { }
+ while true do
+ local c = readchar(f)
+ if c and c ~= "\0" then
+ t[#t+1] = c
+ else
+ return concat(t)
+ end
+ end
+ end
+
+end
diff --git a/tex/context/base/mkiv/util-sql-tickets.lua b/tex/context/base/mkiv/util-sql-tickets.lua
index 3258fb186..d852212bc 100644
--- a/tex/context/base/mkiv/util-sql-tickets.lua
+++ b/tex/context/base/mkiv/util-sql-tickets.lua
@@ -18,7 +18,7 @@ local ostime, uuid, osfulltime = os.time, os.uuid, os.fulltime
local random = math.random
local concat = table.concat
-if not utilities.sql then require("util-sql") end
+-- if not utilities.sql then require("util-sql") end
local sql = utilities.sql
local tickets = { }
diff --git a/tex/context/base/mkiv/util-sql.lua b/tex/context/base/mkiv/util-sql.lua
index ce4a37f07..579bd7c09 100644
--- a/tex/context/base/mkiv/util-sql.lua
+++ b/tex/context/base/mkiv/util-sql.lua
@@ -121,7 +121,7 @@ if optional then
local m = methods[k]
if m then
report_state("start loading method %a as %a",k,m)
- require("libs-imp-" .. m)
+ require("libs-imp-" .. m .. "lmt") -- brrr
report_state("loading method %a done",k)
return rawget(t,m)
else
diff --git a/tex/context/base/mkiv/util-zip.lua b/tex/context/base/mkiv/util-zip.lua
index 4aa87d5e8..4ceec7afd 100644
--- a/tex/context/base/mkiv/util-zip.lua
+++ b/tex/context/base/mkiv/util-zip.lua
@@ -48,6 +48,11 @@ local zlibdecompress = zlib.decompress
local zlibdecompresssize = zlib.decompresssize
local zlibchecksum = zlib.crc32
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
+ local cs = zlibchecksum
+ zlibchecksum = function(str,n) return cs(n or 0, str) end
+end
+
local decompress = function(source) return zlibdecompress (source,-15) end -- auto
local decompresssize = function(source,targetsize) return zlibdecompresssize(source,targetsize,-15) end -- auto
local calculatecrc = function(buffer,initial) return zlibchecksum (initial or 0,buffer) end
@@ -565,7 +570,12 @@ else
local compress = zlib.compress
local decompress = zlib.decompress
- local crc32 = zlib.crc32
+ local zlibchecksum = zlib.crc32
+
+ if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
+ local cs = zlibchecksum
+ zlibchecksum = function(str,n) return cs(n or 0, str) end
+ end
local streams = utilities.streams
local openstream = streams.openstring
@@ -606,16 +616,16 @@ else
putcompressed = function(str,level,originalname)
return concat {
- identifier, -- 2 identifier
- tocardinal1(0x08), -- 1 method
- tocardinal1(0x08), -- 1 flags
- tocardinal4(os.time()), -- 4 mtime
- tocardinal1(0x02), -- 1 compression (2 or 4)
- tocardinal1(0xFF), -- 1 operating
+ identifier, -- 2 identifier
+ tocardinal1(0x08), -- 1 method
+ tocardinal1(0x08), -- 1 flags
+ tocardinal4(os.time()), -- 4 mtime
+ tocardinal1(0x02), -- 1 compression (2 or 4)
+ tocardinal1(0xFF), -- 1 operating
(originalname or "unknownname") .. "\0",
compress(str,level,nil,gzipwindow),
- tocardinal4(crc32(str)), -- 4
- tocardinal4(#str), -- 4
+ tocardinal4(zlibchecksum(str)), -- 4
+ tocardinal4(#str), -- 4
}
end
@@ -671,6 +681,4 @@ function gzip.decompress(s)
end
end
-zipfiles.gunzipfile = gzip.load
-
return zipfiles
diff --git a/tex/context/base/mkxl/anch-pos.lmt b/tex/context/base/mkxl/anch-pos.lmt
index 5a9ffaa3d..07e338cb6 100644
--- a/tex/context/base/mkxl/anch-pos.lmt
+++ b/tex/context/base/mkxl/anch-pos.lmt
@@ -62,6 +62,7 @@ local context = context
local ctx_latelua = context.latelua
local tex = tex
+local texgetdimen = tex.getdimen
local texgetcount = tex.getcount
local texgetinteger = tex.getintegervalue or tex.getcount
local texsetcount = tex.setcount
@@ -1269,8 +1270,8 @@ do
nofparagraphs = nofparagraphs + 1
texsetcount("global","c_anch_positions_paragraph",nofparagraphs)
local name = f_p_tag(nofparagraphs)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
--
local top = texgetnest("top","head")
local nxt = top.next
@@ -1428,8 +1429,8 @@ do
public = true,
protected = true,
actions = function(name)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local spec = {
p = true,
c = column,
@@ -1452,8 +1453,8 @@ do
public = true,
protected = true,
actions = function(name,kind)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local spec = {
k = kind,
p = true,
diff --git a/tex/context/base/mkxl/attr-ini.lmt b/tex/context/base/mkxl/attr-ini.lmt
index 2a4805a01..059de8fd7 100644
--- a/tex/context/base/mkxl/attr-ini.lmt
+++ b/tex/context/base/mkxl/attr-ini.lmt
@@ -54,10 +54,12 @@ storage.register("attributes/list", list, "attributes.list")
storage.register("attributes/values", values, "attributes.values")
storage.register("attributes/counts", counts, "attributes.counts")
-local report_attribute = logs.reporter("attributes")
-local report_value = logs.reporter("attributes","values")
+local report_attribute = logs.reporter("attributes")
+local report_value = logs.reporter("attributes","values")
-local trace_values = false
+local trace_values = false
+
+local max_register_index = tex.magicconstants.max_attribute_register_index
trackers.register("attributes.values", function(v) trace_values = v end)
@@ -105,7 +107,7 @@ function attributes.public(name) -- at the lua end (hidden from user)
local number = numbers[name]
if not number then
local last = sharedstorage.attributes_last_public
- if last < 65535 then
+ if last < max_register_index then
last = last + 1
sharedstorage.attributes_last_public = last
else
diff --git a/tex/context/base/mkxl/back-exp-imp-mth.lmt b/tex/context/base/mkxl/back-exp-imp-mth.lmt
index 8751ca89d..a70ea8511 100644
--- a/tex/context/base/mkxl/back-exp-imp-mth.lmt
+++ b/tex/context/base/mkxl/back-exp-imp-mth.lmt
@@ -279,7 +279,13 @@ do
-- todo: p.topfixed
if t then
-- mover
- d[1].data[1].content = utfchar(t)
+ if true then -- we don't go here any more
+ local dd = d[1].data
+ if dd then
+ dd[1].content = utfchar(t)
+ end
+ end
+ --
di.data = { d[2], d[1] }
end
else
@@ -299,7 +305,12 @@ do
-- todo: p.bottomfixed
if b then
-- munder
- d[2].data[1].content = utfchar(b)
+ if true then -- we don't go here any more
+ local dd = d[2].data
+ if dd then
+ dd[1].content = utfchar(b)
+ end
+ end
end
else
-- can't happen
@@ -322,8 +333,16 @@ do
-- todo: p.bottomfixed
if t and b then
-- munderover
- d[1].data[1].content = utfchar(t)
- d[3].data[1].content = utfchar(b)
+ if true then -- we don't go here any more
+ local dd = d[1].data
+ if dd then
+ dd[1].content = utfchar(t)
+ end
+ local dd = d[3].data
+ if dd then
+ dd[1].content = utfchar(b)
+ end
+ end
di.data = { d[2], d[3], d[1] }
else
-- can't happen
diff --git a/tex/context/base/mkxl/colo-ini.mkxl b/tex/context/base/mkxl/colo-ini.mkxl
index 21f1e1174..e9504e0eb 100644
--- a/tex/context/base/mkxl/colo-ini.mkxl
+++ b/tex/context/base/mkxl/colo-ini.mkxl
@@ -386,6 +386,16 @@
{\c_attr_color \c_colo_saved_attribute_color
\c_attr_transparency\c_colo_saved_attribute_transparency}
+%D Nasty:
+
+\permanent\def\usedcolorparameterattributes#1%
+ {\beginlocalcontrol\begingroup
+ \dousecolorparameter{#1}%
+ \normalexpanded{\endgroup\noexpand\endlocalcontrol
+ \noexpand\s!attr \colorattribute \the\c_attr_color
+ \noexpand\s!attr \colormodelattribute \the\c_attr_colormodel
+ \noexpand\s!attr \transparencyattribute \the\c_attr_transparency}}
+
%D In this documentation we will not go into too much details on palets. Curious
%D users can find more information on this topic in \from[use of color].
%D
diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index 77ef89d5d..91c21c84d 100644
--- a/tex/context/base/mkxl/cont-new.mkxl
+++ b/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2022.01.21 20:10}
+\newcontextversion{2022.03.12 11:24}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl
index ca6e796c1..57fc8e155 100644
--- a/tex/context/base/mkxl/context.mkxl
+++ b/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2022.01.21 20:10}
+\immutable\edef\contextversion{2022.03.12 11:24}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
@@ -486,6 +486,7 @@
\loadmkxlfile{math-int}
\loadmkxlfile{math-del}
\loadmkxlfile{math-fen}
+\loadmkxlfile{math-lop}
\loadmklxfile{math-acc}
\loadmklxfile{math-rad}
\loadmkxlfile{math-inl}
@@ -522,6 +523,7 @@
\loadmkxlfile{grph-pat}
\loadmkxlfile{pack-box}
+\loadmkxlfile{pack-mat}
\loadmkxlfile{pack-bar}
\loadmkxlfile{page-app}
\loadmkxlfile{meta-fig}
diff --git a/tex/context/base/mkxl/driv-shp.lmt b/tex/context/base/mkxl/driv-shp.lmt
index 2cb351880..6c4ca79cc 100644
--- a/tex/context/base/mkxl/driv-shp.lmt
+++ b/tex/context/base/mkxl/driv-shp.lmt
@@ -13,6 +13,7 @@ local setmetatableindex = table.setmetatableindex
local formatters = string.formatters
local concat = table.concat
local keys = table.keys
+local insert = table.insert
local sortedhash = table.sortedhash
local find = string.find
local stripstring = string.strip
@@ -620,8 +621,9 @@ end
local dirstack = { }
local anchors = { }
------ befores = setmetatableindex("table")
------ afters = setmetatableindex("table")
+local befores = setmetatableindex("table")
+local afters = setmetatableindex("table")
+local stired = false
local function reset_directions()
dirstack = { }
@@ -631,53 +633,55 @@ local function reset_anchors()
anchors = { }
end
--- interfaces.implement {
--- name = "registeranchorbox",
--- arguments = { "integer", "integer", "box" },
--- actions = function(anchor,where,box)
--- box = tonut(box)
--- if where < 0 then
--- table.insert(befores[anchor],box)
--- else
--- table.insert(afters[anchor],box)
--- end
--- end
--- }
+interfaces.implement {
+ name = "registeranchorbox",
+ public = true,
+ protected = true,
+ arguments = { "integer", "integer", "box" },
+ actions = function(anchor,where,box)
+ box = tonut(box)
+ if where < 0 then
+ insert(befores[anchor],box)
+ else
+ insert(afters[anchor],box)
+ end
+ stored = true
+ end
+}
local hlist_out, vlist_out do
local finalize = nodes.handlers.finalizelist
- -- local takebox = nuts.takebox
local flushnode = nuts.flushnode
- -- local function flushstored(current,source,before)
- -- local s = nil
- -- if before then
- -- s = rawget(befores,source)
- -- else
- -- s = rawget(afters,source)
- -- end
- -- if s then
- -- for i=1,#s do
- -- local si = s[i]
- -- if si then
- -- finalize(si) -- tricky: we might need to group
- -- if getid(si) == vlist_code then
- -- vlist_out(current,si)
- -- else
- -- hlist_out(current,si)
- -- end
- -- flushnode(si)
- -- s[i] = false
- -- end
- -- end
- -- if before then
- -- rawset(befores,source,nil)
- -- else
- -- rawset(afters,source,nil)
- -- end
- -- end
- -- end
+ local function flushstored(current,source,before)
+ local s = nil
+ if before then
+ s = rawget(befores,source)
+ else
+ s = rawget(afters,source)
+ end
+ if s then
+ for i=1,#s do
+ local si = s[i]
+ if si then
+ finalize(si) -- tricky: we might need to group
+ if getid(si) == vlist_code then
+ vlist_out(current,si)
+ else
+ hlist_out(current,si)
+ end
+ flushnode(si)
+ s[i] = false
+ end
+ end
+ if before then
+ rawset(befores,source,nil)
+ else
+ rawset(afters,source,nil)
+ end
+ end
+ end
local function applyorientation(orientation,x,y,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
local ot = (orientation >> 0) & 0x0F
@@ -1098,11 +1102,17 @@ local hlist_out, vlist_out do
if usedorientation then
pushorientation(usedorientation,pos_h,pos_v,pos_r)
end
+ if source and stored then
+ flushstored(current,source,true)
+ end
if id == vlist_code then
vlist_out(current,list)
else
hlist_out(current,list)
end
+ if source and stored then
+ flushstored(current,source,false)
+ end
if usedorientation then
poporientation(usedorientation,pos_h,pos_v,pos_r)
end
@@ -1136,19 +1146,19 @@ local hlist_out, vlist_out do
end
local total = height + depth
if total > 0 then
- local xoffset, yoffset, left, right = getoffsets(current) -- top bottom
- if left ~= 0 then
- pos_v = pos_v + left
- total = total - left
- end
- if right ~= 0 then
- depth = depth - right
- total = total - right
- end
+ local xoffset, yoffset, top, bottom = getoffsets(current)
if pos_r == righttoleft_code then
pos_h = pos_h - width
xoffset = - xoffset
end
+ if top ~= 0 then
+ -- height = height - top
+ total = total - top
+ end
+ if bottom ~= 0 then
+ depth = depth - bottom
+ total = total - bottom
+ end
pos_v = pos_v - depth
flushrule(current,pos_h + xoffset,pos_v + yoffset,pos_r,width,total,subtype)
end
@@ -1486,17 +1496,17 @@ local hlist_out, vlist_out do
if usedorientation then
pushorientation(usedorientation,pos_h,pos_v,pos_r)
end
- -- if source then
- -- flushstored(current,source,true)
- -- end
+ if source and stored then
+ flushstored(current,source,true)
+ end
if id == vlist_code then
vlist_out(current,list)
else
hlist_out(current,list)
end
- -- if source then
- -- flushstored(current,source,false)
- -- end
+ if source and stored then
+ flushstored(current,source,false)
+ end
if usedorientation then
poporientation(usedorientation,pos_h,pos_v,pos_r)
end
diff --git a/tex/context/base/mkxl/font-chk.lmt b/tex/context/base/mkxl/font-chk.lmt
index 008b9bb41..089e68f9f 100644
--- a/tex/context/base/mkxl/font-chk.lmt
+++ b/tex/context/base/mkxl/font-chk.lmt
@@ -379,13 +379,13 @@ local function expandglyph(characters,index,done)
if n then
d.next = expandglyph(characters,n,done)
end
- local h = d.hvariants
+ local h = d.hparts
if h then
for i=1,#h do
h[i].glyph = expandglyph(characters,h[i].glyph,done)
end
end
- local v = d.vvariants
+ local v = d.vparts
if v then
for i=1,#v do
v[i].glyph = expandglyph(characters,v[i].glyph,done)
diff --git a/tex/context/base/mkxl/font-con.lmt b/tex/context/base/mkxl/font-con.lmt
index 3310242a8..b36f18dfa 100644
--- a/tex/context/base/mkxl/font-con.lmt
+++ b/tex/context/base/mkxl/font-con.lmt
@@ -254,6 +254,24 @@ local function fixedpsname(psname,fallback)
return usedname, psname ~= usedname
end
+local function scaleparts(parts,delta)
+ local t = { }
+ for i=1,#parts do
+ local p = parts[i]
+ local s = p["start"] or 0
+ local e = p["end"] or 0
+ local a = p["advance"] or 0
+ t[i] = {
+ ["start"] = s == 0 and 0 or s * delta,
+ ["end"] = e == 0 and 0 or e * delta,
+ ["advance"] = a == 0 and 0 or a * delta,
+ ["extender"] = p["extender"],
+ ["glyph"] = p["glyph"],
+ }
+ end
+ return t
+end
+
function constructors.scale(tfmdata,specification)
local target = { } -- the new table
--
@@ -567,9 +585,7 @@ function constructors.scale(tfmdata,specification)
--
for unicode, character in next, characters do
local chr, description, index
-
-- todo: add description entry to char entry instead of index ... saves elsewhere too
-
if changed then
local c = changed[unicode]
if c and c ~= unicode then
@@ -670,48 +686,17 @@ function constructors.scale(tfmdata,specification)
if hasmath then
--
-- todo, just operate on descriptions.math
- local vn = character.next
- if vn then
- chr.next = vn
- else
- local vv = character.vvariants
- if vv then
- local t = { }
- for i=1,#vv do
- local vvi = vv[i]
- local s = vvi["start"] or 0
- local e = vvi["end"] or 0
- local a = vvi["advance"] or 0
- t[i] = { -- zero check nicer for 5.3
- ["start"] = s == 0 and 0 or s * vdelta,
- ["end"] = e == 0 and 0 or e * vdelta,
- ["advance"] = a == 0 and 0 or a * vdelta,
- ["extender"] = vvi["extender"],
- ["glyph"] = vvi["glyph"],
- }
- end
- chr.vvariants = t
- else
- local hv = character.hvariants
- if hv then
- local t = { }
- for i=1,#hv do
- local hvi = hv[i]
- local s = hvi["start"] or 0
- local e = hvi["end"] or 0
- local a = hvi["advance"] or 0
- t[i] = { -- zero check nicer for 5.3
- ["start"] = s == 0 and 0 or s * hdelta,
- ["end"] = e == 0 and 0 or e * hdelta,
- ["advance"] = a == 0 and 0 or a * hdelta,
- ["extender"] = hvi["extender"],
- ["glyph"] = hvi["glyph"],
- }
- end
- chr.hvariants = t
- end
- end
- -- todo also check mathitalics (or that one can go away)
+ local nxt = character.next
+ if nxt then
+ chr.next = nxt
+ end
+ local vparts = character.vparts
+ if vparts then
+ chr.vparts = scaleparts(vparts,vdelta)
+ end
+ local hparts = character.hparts
+ if hparts then
+ chr.hparts = scaleparts(hparts,hdelta)
end
local vi = character.vitalic
if vi and vi ~= 0 then
@@ -742,14 +727,18 @@ function constructors.scale(tfmdata,specification)
chr.italic = vi*hdelta
end
end
- local ft = character.options
- if ft then
- chr.options = ft
- end
+ -- local ft = character.options
+ -- if ft then
+ -- chr.options = ft
+ -- end
local sm = character.smaller
if sm then
chr.smaller = sm
end
+ local fa = character.flataccent
+ if fa then
+ chr.flataccent = fa
+ end
elseif autoitalicamount then -- itlc feature
local vi = description.italic
if not vi then
diff --git a/tex/context/base/mkxl/font-imp-math.lmt b/tex/context/base/mkxl/font-imp-math.lmt
index 68dddf33d..2f9c94d16 100644
--- a/tex/context/base/mkxl/font-imp-math.lmt
+++ b/tex/context/base/mkxl/font-imp-math.lmt
@@ -26,7 +26,7 @@ local function initialize(tfmdata,value)
if mathparameters then
local sup, sub
if type(value) == "string" then
- sup, sub = lpegmatch(splitter,value)
+ sup, sub = lpegmatch(splitter,value) -- settings_to_array
if not sup then
sub, sup = 0, 0
elseif not sub then
@@ -267,3 +267,43 @@ registerotffeature {
node = initialize,
}
}
+
+local function initialize(tfmdata,value)
+ if value then
+ local validlookups, lookuplist = fonts.handlers.otf.collectlookups(tfmdata.shared.rawdata,"flac","math","dflt")
+ if validlookups then
+ -- it's quite likely just one step
+ local characters = tfmdata.characters
+ local changed = tfmdata.changed
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ local nofsteps = lookup.nofsteps
+ for i=1,nofsteps do
+ local coverage = steps[i].coverage
+ if coverage then
+ for k, v in next, coverage do
+ local c = characters[k]
+ local f = characters[v]
+ if c and f then
+ c.flataccent = v
+ if not f.unicode then
+ f.unicode = c.unicode
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+registerotffeature {
+ name = "flattenaccents",
+ description = "mapping accents to flat ones",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+}
diff --git a/tex/context/base/mkxl/font-imp-sanitize.lmt b/tex/context/base/mkxl/font-imp-sanitize.lmt
new file mode 100644
index 000000000..84c42e78f
--- /dev/null
+++ b/tex/context/base/mkxl/font-imp-sanitize.lmt
@@ -0,0 +1,197 @@
+if not modules then modules = { } end modules ['font-san'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA ADE & śrīrāma",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- \definefontfeature[demo][sanitizer=demo]
+-- \definedfont[Serif*default,demo] test context test
+-- \definedfont[Serif*default] test context test
+
+local keys, insert, copytable = table.keys, table.insert, table.copy
+local utfvalues, utfbyte = utf.values, utf.byte
+
+local sanitizers = { }
+
+local trace = false
+local report = logs.reporter("fonts", "sanitizers")
+
+trackers.register("fonts.sanitizers", function(v) trace = v end)
+
+function fonts.registersanitizer(name,vector)
+ sanitizers[name] = vector
+end
+
+local function split(s)
+ local t = { }
+ for value in utfvalues(s) do
+ t[#t+1] = value
+ end
+ return t
+end
+
+local function wrap(t)
+ for i=1,#t do
+ t[i] = { t[i] }
+ end
+ return t
+end
+
+local function initializesanitizer(tfmdata,value)
+ local resources = tfmdata.resources
+ local sanitized = resources.sanitized
+ if not sanitized then
+ local sanitizer = false
+ local goodies = tfmdata.goodies
+ if goodies then
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ local sanitizers = goodie.sanitizers
+ sanitizer = sanitizers and sanitizers[value]
+ if sanitizer then
+ report("using sanitizer %a from goodie file",value)
+ break
+ end
+ end
+ end
+ if not sanitizer then
+ sanitizer = sanitizers[value]
+ if sanitizer then
+ report("using sanitizer %a",value)
+ end
+ end
+ resources.sanitized = true
+ if sanitizer then
+ local mapping = sanitizer.mapping
+ if mapping then
+ local keys = keys(mapping)
+ local maps = { }
+ table.sort(keys, function(a,b) return a > b end)
+ for i = 1,#keys do
+ local k = keys[i]
+ keys[i] = split(k)
+ maps[i] = split(mapping[k])
+ end
+ for i=1,#maps do
+ local k = keys[i]
+ local m = maps[i]
+ if trace then
+ -- m = copytable(m)
+ -- insert(m,1,utfbyte("["))
+ -- insert(m, utfbyte("]"))
+ local t = { utfbyte("[") }
+ t[#t+1] = 0x200D -- zwnj
+ for i=1,#m do
+ t[#t+1] = m[i]
+ t[#t+1] = 0x200D -- zwnj
+ end
+ t[#t+1] = utfbyte("]")
+ end
+ maps[i] = { type = "multiple", data = { [k[1]] = m } }
+ keys[i] = { current = wrap(k) , lookups = { i } }
+ end
+ local specification = {
+ name = "sanitizer",
+ type = "chainsubstitution",
+ prepend = 1,
+ nocheck = true,
+ default = true,
+ lookups = maps,
+ data = { rules = keys },
+ }
+ local s = fonts.handlers.otf.enhancers.addfeature(
+ tfmdata,"sanitizer",specification, true
+ )
+ insert(resources.sequences,1,s)
+ end
+ end
+ end
+end
+
+-- has to come *after* devanagari because we need to push it in front
+-- ... it could be a built-in
+
+fonts.constructors.features.otf.register {
+ name = "sanitizer",
+ description = "inject sanitizer features",
+ initializers = {
+ node = initializesanitizer,
+ },
+}
+
+local dev2rkrf = {
+ ["के्र"] = "क्रे",
+ ["कै्र"] = "क्रै",
+ ["खे्र"] = "ख्रे",
+ ["खै्र"] = "ख्रै",
+ ["गे्र"] = "ग्रे",
+ ["गै्र"] = "ग्रै",
+ ["घे्र"] = "घ्रे",
+ ["घै्र"] = "घ्रै",
+ -- not required: placed here just to show how bad some fonts are :(
+ -- ["ङे्र"] = "ङ्रे",
+ -- ["ङै्र"] = "ङ्रै",
+ ["चे्र"] = "च्रे",
+ ["चै्र"] = "च्रै",
+ ["छे्र"] = "छ्रे",
+ ["छै्र"] = "छ्रै",
+ ["जे्र"] = "ज्रे",
+ ["जै्र"] = "ज्रै",
+ ["झे्र"] = "झ्रे",
+ ["झै्र"] = "झ्रै",
+ ["ञे्र"] = "ञ्रे",
+ ["ञै्र"] = "ञ्रै",
+ ["णे्र"] = "ण्रे",
+ ["णै्र"] = "ण्रै",
+ ["ते्र"] = "त्रे",
+ ["तै्र"] = "त्रै",
+ ["थे्र"] = "थ्रे",
+ ["थै्र"] = "थ्रै",
+ ["दे्र"] = "द्रे",
+ ["दै्र"] = "द्रै",
+ ["धे्र"] = "ध्रे",
+ ["धै्र"] = "ध्रै",
+ ["ने्र"] = "न्रे",
+ ["नै्र"] = "न्रै",
+ ["पे्र"] = "प्रे",
+ ["पै्र"] = "प्रै",
+ ["फे्र"] = "फ्रे",
+ ["फै्र"] = "फ्रै",
+ ["बे्र"] = "ब्रे",
+ ["बै्र"] = "ब्रै",
+ ["भे्र"] = "भ्रे",
+ ["भै्र"] = "भ्रै",
+ ["मे्र"] = "म्रे",
+ ["मै्र"] = "म्रै",
+ ["ये्र"] = "य्रे",
+ ["यै्र"] = "य्रै",
+ -- some fonts might need this, some might not: weird
+ -- for example: Shobhika does not need it but Noto Serif does :(
+ -- ["ले्र"] = "ल्रे",
+ -- ["लै्र"] = "ल्रै",
+ ["वे्र"] = "व्रे",
+ ["वै्र"] = "व्रै",
+ ["से्र"] = "स्रे",
+ ["सै्र"] = "स्रै",
+ ["शे्र"] = "श्रे",
+ ["शै्र"] = "श्रै",
+ ["षे्र"] = "ष्रे",
+ ["षै्र"] = "ष्रै",
+ ["हे्र"] = "ह्रे",
+ ["है्र"] = "ह्रै",
+ -- some fonts might need this, some might not: weird
+ -- ["ळे्र"] = "ळ्रे",
+ -- ["ळै्र"] = "ळ्रै",
+}
+
+local demomapping = {
+ luatex = "LuaTeX",
+ metapost = "MetaPost",
+ context = "ConTeXt",
+ metafun = "MetaFun",
+}
+
+fonts.registersanitizer("dev2rkrf", { mapping = dev2rkrf })
+fonts.registersanitizer("demo", { mapping = demomapping })
diff --git a/tex/context/base/mkxl/font-imp-tracing.lmt b/tex/context/base/mkxl/font-imp-tracing.lmt
index 2187b9497..749a3c964 100644
--- a/tex/context/base/mkxl/font-imp-tracing.lmt
+++ b/tex/context/base/mkxl/font-imp-tracing.lmt
@@ -130,7 +130,12 @@ local function initialize(tfmdata,key,value)
elseif v == v_none then
rule[9] = false
else
- rule[9] = v
+ local thickness = string.todimen(v)
+ if thickness and thickness > 0 then
+ rule[5] = thickness
+ else
+ rule[9] = v
+ end
end
end
end
diff --git a/tex/context/base/mkxl/font-lib.mklx b/tex/context/base/mkxl/font-lib.mklx
index c5543a107..485ed1041 100644
--- a/tex/context/base/mkxl/font-lib.mklx
+++ b/tex/context/base/mkxl/font-lib.mklx
@@ -117,9 +117,11 @@
\registerctxluafile{font-imp-tweaks}{}
\registerctxluafile{font-imp-combining}{}
\registerctxluafile{font-imp-scripts}{autosuffix}
+\registerctxluafile{font-imp-sanitize}{autosuffix} % fixes for indic fonts
\registerctxluafile{font-imp-tracing}{autosuffix} % comes last!
+
\registerctxluafile{font-fbk}{autosuffix}
\registerctxluafile{font-aux}{}
diff --git a/tex/context/base/mkxl/font-mat.mklx b/tex/context/base/mkxl/font-mat.mklx
index cca22c497..7d72c5618 100644
--- a/tex/context/base/mkxl/font-mat.mklx
+++ b/tex/context/base/mkxl/font-mat.mklx
@@ -126,7 +126,7 @@
\def\font_helpers_set_math_family_set_scales_compact
{% these are used when no font setting is there, the settings come before setting the parameters
- % and are stored with the family
+ % and are stored with the family ... this is not really needed because the size is used otherwise
\glyphtextscale \plusthousand
\glyphscriptscale \numexpr\plusthousand*\dimexpr\scriptface \relax/\dimexpr\textface\relax\relax
\glyphscriptscriptscale \numexpr\plusthousand*\dimexpr\scriptscriptface\relax/\dimexpr\textface\relax\relax}
diff --git a/tex/context/base/mkxl/font-ogr.lmt b/tex/context/base/mkxl/font-ogr.lmt
index 87166b36d..662c75b15 100644
--- a/tex/context/base/mkxl/font-ogr.lmt
+++ b/tex/context/base/mkxl/font-ogr.lmt
@@ -555,6 +555,7 @@ local initializeoverlay do
manipulators = {
base = initializeoverlay,
node = initializeoverlay,
+ plug = initializeoverlay,
}
}
@@ -632,6 +633,7 @@ local initializesvg do
manipulators = {
base = initializesvg,
node = initializesvg,
+ plug = initializesvg,
}
}
@@ -673,6 +675,7 @@ local initializepng do
manipulators = {
base = initializepng,
node = initializepng,
+ plug = initializepng,
}
}
@@ -682,6 +685,7 @@ local initializepng do
manipulators = {
base = initializepng,
node = initializepng,
+ plug = initializepng,
}
}
@@ -715,6 +719,7 @@ do
manipulators = {
base = initializecolor,
node = initializecolor,
+ plug = initializecolor,
}
}
diff --git a/tex/context/base/mkxl/font-otl.lmt b/tex/context/base/mkxl/font-otl.lmt
index f493bc327..a68988e87 100644
--- a/tex/context/base/mkxl/font-otl.lmt
+++ b/tex/context/base/mkxl/font-otl.lmt
@@ -311,6 +311,41 @@ end
-- instance protruding info and loop over characters; one is not supposed
-- to change descriptions and if one does so one should make a copy!
+-- local function best_done_here(tfmdata,characters,descriptions)
+-- local validlookups, lookuplist = fonts.handlers.otf.collectlookups(
+-- { resources = tfmdata.resources },"flac","math","dflt"
+-- )
+-- if validlookups then
+-- -- it's quite likely just one step
+-- for i=1,#lookuplist do
+-- local lookup = lookuplist[i]
+-- local steps = lookup.steps
+-- local nofsteps = lookup.nofsteps
+-- for i=1,nofsteps do
+-- local coverage = steps[i].coverage
+-- if coverage then
+-- for k, v in next, coverage do
+-- local f = characters[v]
+-- if f then
+-- local d = descriptions[k]
+-- local c = characters[k]
+-- if c then
+-- c.flataccent = v
+-- end
+-- if d then
+-- d.flataccent = v
+-- end
+-- if not f.unicode then
+-- f.unicode = c.unicode
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+
local function copytotfm(data,cache_id)
if data then
local metadata = data.metadata
@@ -348,7 +383,6 @@ local function copytotfm(data,cache_id)
local d = descriptions[unicode] -- we could use parent table here
local m = d.math
if m then
- -- watch out: luatex uses hvariants for the parts
--
local italic = m.italic
local vitalic = m.vitalic
@@ -363,9 +397,9 @@ local function copytotfm(data,cache_id)
c.next = un
c = characters[un]
end -- c is now last in chain
- c.hvariants = parts
+ c.hparts = parts
elseif parts then
- character.hvariants = parts
+ character.hparts = parts
italic = m.hitalic
end
--
@@ -379,9 +413,9 @@ local function copytotfm(data,cache_id)
c.next = un
c = characters[un]
end -- c is now last in chain
- c.vvariants = parts
+ c.vparts = parts
elseif parts then
- character.vvariants = parts
+ character.vparts = parts
end
--
if italic and italic ~= 0 then
@@ -403,6 +437,7 @@ local function copytotfm(data,cache_id)
end
end
end
+-- best_done_here(data,characters,descriptions)
end
-- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't
-- we use the basename then?)
diff --git a/tex/context/base/mkxl/font-ots.lmt b/tex/context/base/mkxl/font-ots.lmt
index c668c86d1..f9c6b2fae 100644
--- a/tex/context/base/mkxl/font-ots.lmt
+++ b/tex/context/base/mkxl/font-ots.lmt
@@ -8,6 +8,11 @@ if not modules then modules = { } end modules ['font-ots'] = { -- sequences
}
--[[ldx--
+<p>I need to check the description at the microsoft site ... it has been improved
+so maybe there are some interesting details there. Most below is based on old and
+incomplete documentation and involved quite a bit of guesswork (checking with the
+abstract uniscribe of those days. But changing things is tricky!</p>
+
<p>This module is a bit more split up that I'd like but since we also want to test
with plain <l n='tex'/> it has to be so. This module is part of <l n='context'/>
and discussion about improvements and functionality mostly happens on the
diff --git a/tex/context/base/mkxl/font-pre.mkxl b/tex/context/base/mkxl/font-pre.mkxl
index aba14d8b2..60351ff53 100644
--- a/tex/context/base/mkxl/font-pre.mkxl
+++ b/tex/context/base/mkxl/font-pre.mkxl
@@ -404,14 +404,17 @@
[mode=base,
% mode=none, % better, maybe do this last
kern=yes,
- % liga=yes, % makes no sense
- mathnolimitsmode={0,800}, % this looks okay on the average font
+% flac=yes,
+% liga=yes, % makes no sense
+% mode=node,
+% mathnolimitsmode={0,800}, % now in lfg files
mathalternates=yes,
mathitalics=yes, % we pass them
mathdimensions=all,
% mathkerns=yes,
% staircase=yes,
compactmath=yes,
+ flattenaccents=yes,
% mathgaps=yes,
language=dflt,
script=math]
@@ -889,6 +892,12 @@
\permanent\protected\def\setsuperiors{\doaddfeature{f:superiors}}
\permanent\protected\def\setfractions{\doaddfeature{f:fractions}}
+\permanent\protected\def\resetsmallcaps{\dosubtractfeature{f:smallcaps}}
+\permanent\protected\def\resetoldstyle {\dosubtractfeature{f:oldstyle}}
+\permanent\protected\def\resettabular {\dosubtractfeature{f:tabular}}
+\permanent\protected\def\resetsuperiors{\dosubtractfeature{f:superiors}}
+\permanent\protected\def\resetfractions{\dosubtractfeature{f:fractions}}
+
% \permanent\protected\def\frc#1#2%
% {\dontleavehmode
% \begingroup
diff --git a/tex/context/base/mkxl/font-tfm.lmt b/tex/context/base/mkxl/font-tfm.lmt
index dcb76ba80..5f1c7bf2a 100644
--- a/tex/context/base/mkxl/font-tfm.lmt
+++ b/tex/context/base/mkxl/font-tfm.lmt
@@ -258,6 +258,8 @@ end
--
shared.processes = next(features) and tfm.setfeatures(tfmdata,features) or nil
--
+ fonts.loggers.register(tfmdata,'tfm',specification)
+ --
if size < 0 then
size = idiv(65536 * -size,100)
end
diff --git a/tex/context/base/mkxl/font-vfc.lmt b/tex/context/base/mkxl/font-vfc.lmt
index 57344d18e..aff647dd1 100644
--- a/tex/context/base/mkxl/font-vfc.lmt
+++ b/tex/context/base/mkxl/font-vfc.lmt
@@ -91,7 +91,7 @@ helpers.vfinjectors = {
-- stopcolor = function(h,v,packet) codeinjections.vfstartcolor(h,v,packet) end,
-- literal = function(h,v,packet) codeinjections.vfliteral (h,v,packer) end,
startcolor = function(h,v,packet) vfstartcolor(h,v,packet) end,
- stopcolor = function(h,v,packet) vfstartcolor(h,v,packet) end,
+ stopcolor = function(h,v,packet) vfstopcolor (h,v,packet) end,
-- literal = function(h,v,packet) vfliteral (h,v,packer) end,
}
diff --git a/tex/context/base/mkxl/lang-def.mkxl b/tex/context/base/mkxl/lang-def.mkxl
index e50be9afc..b7919a29b 100644
--- a/tex/context/base/mkxl/lang-def.mkxl
+++ b/tex/context/base/mkxl/lang-def.mkxl
@@ -826,12 +826,12 @@
\installlanguage [\s!thai] [\s!th]
-%D Indic languages (Kauśika)
+%D Indic languages (śrīrāman)
%
%
%D Sanskit (someone needs to define the parameters):
-%D
-%D The file \type {lang-sa.lua} contains sanskrit hyphenation patterns for devanagari,
+%D
+%D The file \type {lang-sa.lua} contains sanskrit hyphenation patterns for devanagari,
%D bengali, telugu, kannada, malayalam and roman(iast.
\installlanguage
diff --git a/tex/context/base/mkxl/lang-tra.lmt b/tex/context/base/mkxl/lang-tra.lmt
index b3fedc7c1..259165928 100644
--- a/tex/context/base/mkxl/lang-tra.lmt
+++ b/tex/context/base/mkxl/lang-tra.lmt
@@ -9,7 +9,11 @@ if not modules then modules = { } end modules ['lang-tra'] = {
-- The indic transliterations was researched by kauśika and after some experiments
-- we settled on the current approach (mappings and a more specific lpeg).
-local concat = table.concat
+-- Todo: initial and final in addition to mapping so that we can do hebrew and
+-- such.
+
+local concat, setmetatableindex = table.concat, table.setmetatableindex
+local nospaces = string.nospaces
local utfbyte, utfchar, utfsplit, utfvalues = utf.byte, utf.char, utf.split, utf.values
local C, Cc, Cs, lpegmatch = lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.match
local utfchartabletopattern = lpeg.utfchartabletopattern
@@ -30,6 +34,9 @@ local removenode = nuts.remove
local texsetattribute = tex.setattribute
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+
local transliteration = { }
languages.transliteration = transliteration
@@ -41,9 +48,10 @@ local context = context
local zwj = utf.char(0x200D)
-local lastmapping = 0
+-- local lastmapping = 0
local loadedmappings = { }
local loadedlibraries = { }
+local exceptions = { }
local report = logs.reporter("transliteration")
local trace = false trackers.register("languages.transliteration", function(v) trace = v end)
@@ -80,21 +88,23 @@ local converters = {
["mapping"] = function(m)
local t_mapping = m.mapping
if t_mapping then
+ local t_exceptions = m.exceptions
local p = Cs ( (
utfchartabletopattern(t_mapping) / t_mapping
+ C(utfcharacterpattern)
)^0 )
-- lpeg.print(p)
- return function(s)
- return lpegmatch(p,s) or s
+ return function(s,e)
+ return (e and e[s]) or t_exceptions[s] or lpegmatch(p,s) or s
end
else
return false
end
end,
["default"] = function(m)
- return function(s)
- return s
+ local t_exceptions = m.exceptions
+ return function(s,e)
+ return (e and e[s]) or t_exceptions[s] or s
end
end,
}
@@ -109,19 +119,21 @@ function transliteration.use(library)
if transliterations then
for name, d in table.sortedhash(transliterations) do
local vector = d.vector
+ if not d.exceptions then
+ d.exceptions = { }
+ end
if vector then
- report("vector %a in %a is %sloaded with index %i",name,library," already",d.attribute)
+ report("vector %a in %a is %sloaded",name,library," already")
else
- lastmapping = lastmapping + 1
d.vector = (converters[name] or converters.mapping or converters.default)(d)
or (converters.default)(d)
- report("vector %a in set %a is %sloaded with index %i",name,library,"",lastmapping)
+ report("vector %a in set %a is %sloaded",name,library,"")
end
- d.attribute = lastmapping
d.library = library
d.name = name
+ d.mapping = nil -- for now, saves memory
loadedmappings[name] = d
- loadedmappings[lastmapping] = d
+ loadedmappings[nospaces(name)] = d
end
else
report("library %a has no transliterations",library)
@@ -140,28 +152,47 @@ enable = function()
enable = false
end
-function transliteration.set(vector)
+function transliteration.register(parent,name)
+ local p = exceptions[parent]
+ if p then
+ if trace then
+ report("%a has exceptions that default to %a",name,parent)
+ end
+ exceptions[name] = setmetatableindex({ },p)
+ else
+ if trace then
+ report("%a has independent exceptions",name)
+ end
+ exceptions[name] = { }
+ end
+end
+
+function transliteration.set(name,vector)
if enable then
enable()
end
- local m = loadedmappings[vector]
- local a = m and m.attribute or unsetvalue
+ local a = registervalue(a_transliteration, {
+ m = loadedmappings[vector],
+ e = exceptions[name],
+ })
if trace then
- report("setting transliteration %s",vector)
+ report("setting transliteration %i, name %a, vector %a",a,name,vector)
end
texsetattribute(a_transliteration,a)
end
-function transliteration.register(vector)
- if enable then
- enable()
- end
- local m = loadedmappings[vector]
- local a = m and m.attribute or unsetvalue
- if trace then
- report("registering transliteration %s",vector)
+function transliteration.exception(name,old,new)
+ local m = loadedmappings[name]
+ if m then
+ m.exceptions[old] = new
+ else
+ local e = exceptions[name]
+ if not e then
+ e = { }
+ exceptions[name] = e
+ end
+ e[old] = new
end
- return a
end
-- When there is need I will improve the performance of the next handler.
@@ -169,6 +200,7 @@ end
function transliteration.handler(head)
local aprev = nil
local vector = nil
+ local except = nil
local current = head
local first = nil
local last = nil
@@ -180,34 +212,36 @@ function transliteration.handler(head)
-- actually we can generalize the replacer elsewhere
local function flush(nxt)
- -- we can do some optimization here by having the split as replacement
- local old = concat(list,"",1,size)
- local new = vector(old)
- if old ~= new then
- if trace then
- report("old: %s",old)
- report("new: %s",new)
- end
- local c = first
- local x = false
- for s in utfvalues(new) do
- if x then
- head, c = insertafter(head,c,copynode(first))
- setchar(c,s)
- else
- setchar(c,s)
- if c == last then
- x = true
+ if vector then
+ -- we can do some optimization here by having the split as replacement
+ local old = concat(list,"",1,size)
+ local new = vector(old,except)
+ if old ~= new then
+ if trace then
+ report("old: %s",old)
+ report("new: %s",new)
+ end
+ local c = first
+ local x = false
+ for s in utfvalues(new) do
+ if x then
+ head, c = insertafter(head,c,copynode(first))
+ setchar(c,s)
else
- c = getnext(c)
+ setchar(c,s)
+ if c == last then
+ x = true
+ else
+ c = getnext(c)
+ end
end
end
- end
- if not x then
- while c do
- head, c = removenode(head,c,true)
- if c == nxt then
- break
+ if not x then
+ while c do
+ head, c = removenode(head,c,true)
+ if c == nxt then
+ break
+ end
end
end
end
@@ -226,9 +260,19 @@ function transliteration.handler(head)
size = 0
end
aprev = a
- vector = loadedmappings[a]
- if vector then
- vector = vector.vector
+ local data = getvalue(a_transliteration,a)
+ if data then
+ local m = data.m
+ if m then
+ vector = m.vector
+ except = data.e
+ else
+ vector = nil
+ except = nil
+ end
+ else
+ vector = nil
+ except = nil
end
end
if not first then
@@ -269,14 +313,20 @@ interfaces.implement {
implement {
name = "settransliteration",
- arguments = "string",
+ arguments = "2 strings",
actions = transliteration.set,
}
implement {
name = "registertransliteration",
- arguments = "string",
- actions = { transliteration.register, context },
+ arguments = "3 strings",
+ actions = transliteration.register,
+}
+
+implement {
+ name = "transliterationexception",
+ arguments = "3 strings",
+ actions = transliteration.exception,
}
nodes.tasks.prependaction("processors", "normalizers", "languages.transliteration.handler", nil, "nut", "disabled" )
diff --git a/tex/context/base/mkxl/lang-tra.mkxl b/tex/context/base/mkxl/lang-tra.mkxl
index 96dcc7d94..a44ee4ba9 100644
--- a/tex/context/base/mkxl/lang-tra.mkxl
+++ b/tex/context/base/mkxl/lang-tra.mkxl
@@ -23,46 +23,62 @@
\definesystemattribute[transliteration][public,global]
-% define in lua: \usetransliteration[#1]
+\newtoks\everytransliterations
-% todo: define fast attribute at the tex end do we can have a proper define
+\appendtoks
+ \disablediscretionaries
+ \let~=\lettertilde
+ % \let|=\letterbar
+\to \everytransliterations
-\def\lang_transliteration_set#1%
- {\ifcsname\??transliteration#1\endcsname
- \c_attr_transliteration\lastnamedcs
- \edef\currenttransliteration{#1}%
- \usetransliterationstyleandcolor\c!style\c!color
- \uselanguageparameter\transliterationparameter
- \else
- \clf_settransliteration{#1}%
- \fi}
+\def\lang_transliteration_common
+ {\usetransliterationstyleandcolor\c!style\c!color
+ \uselanguageparameter\transliterationparameter
+ \clf_settransliteration{\currenttransliteration}{\transliterationparameter\c!vector}%
+ \the\everytransliterations}
\permanent\tolerant\protected\def\settransliteration[#1]#;#2%
- {\lang_transliteration_set{#1}}
+ {\edef\currenttransliteration{#1#2}%
+ \lang_transliteration_common}
+
+\permanent\protected\def\transliterationexception[#1]#2#3%
+ {\clf_transliterationexception{#1}{#2}{#3}}
\permanent\tolerant\protected\def\starttransliteration[#1]#*[#2]%
{\begingroup
+ \edef\currenttransliteration{#1}%
\ifparameter#2\or
- \edef\currenttransliteration{#1}%
\setupcurrenttransliteration[#2]%
\fi
- \lang_transliteration_set{#1}}
+ \transliterationparameter\c!before\relax
+ \lang_transliteration_common}
+
+\permanent\protected\def\stoptransliteration
+ {\transliterationparameter\c!after\relax
+ \endgroup}
\permanent\tolerant\protected\def\transliteration[#1]#;#2%
- {\groupedcommand{\lang_transliteration_set{#1#2}}\donothing}
+ {\groupedcommand
+ {\edef\currenttransliteration{#1#2}%
+ \lang_transliteration_common
+ \transliterationparameter\c!left\relax}
+ {\transliterationparameter\c!right\relax}}
\appendtoks
- \expandafter\integerdef\csname\??transliteration\currenttransliteration\endcsname
- \clf_registertransliteration{\transliterationparameter\c!vector}%
- \relax
+ \clf_registertransliteration{\currenttransliterationparent}{\currenttransliteration}%
+ \ifcstok{\transliterationparameter\c!define}\v!yes
+ \frozen\protected\instance\edefcsname\e!start\currenttransliteration\endcsname{\starttransliteration[\currenttransliteration]}%
+ \frozen\protected\instance\edefcsname\e!stop \currenttransliteration\endcsname{\stoptransliteration}%
+ \frozen\protected\instance\edefcsname \currenttransliteration\endcsname{\transliteration[\currenttransliteration]}%
+ \fi
\to \everydefinetransliteration
-\permanent\protected\def\stoptransliteration
- {\endgroup}
-
\permanent\protected\def\resettransliteration
{\c_attr_transliteration\attributeunsetvalue}
+\setuptransliteration
+ [\c!define=\v!yes]
+
\appendtoks
\resettransliteration
\to \everyinitializeverbatim
diff --git a/tex/context/base/mkxl/libs-imp-zint.lmt b/tex/context/base/mkxl/libs-imp-zint.lmt
index 4558ca58e..1b1d294c9 100644
--- a/tex/context/base/mkxl/libs-imp-zint.lmt
+++ b/tex/context/base/mkxl/libs-imp-zint.lmt
@@ -79,31 +79,56 @@ table.setmetatableindex(mapping,function(t,k)
return v
end)
+-- local options = {
+-- -- DATA_MODE = 0 -- Binary
+-- -- UNICODE_MODE = 1 -- UTF-8
+-- -- GS1_MODE = 2 -- GS1
+-- -- GS1PARENS_MODE = 16 -- process parentheses as GS1 AI delimiters (instead of square brackets)
+-- square = 100 -- DM_SQUARE : only consider square versions on automatic symbol size selection
+-- -- DMRE = 101 -- DM_DMRE : consider DMRE versions on automatic symbol size selection
+-- }
+
local report = logs.reporter("zint")
local context = context
local shown = false
-- Same performance as just context(fmt,...): 113pps (On 2013 i7 laptop.)
------ f_rectangle = formatters["%sofill unitsquare xysized (%N,%N) shifted (%N,%N);"]
-local f_hexagon = formatters["%sofill (%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle;"]
-local f_circle = formatters["%sofill unitcircle scaled %N shifted (%N,%N);"]
+-- ----- f_rectangle = formatters["%sofill unitsquare xysized (%N,%N) shifted (%N,%N);"]
+-- local f_hexagon = formatters["%sofill (%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle;"]
+-- local f_circle = formatters["%sofill unitcircle scaled %N shifted (%N,%N);"]
+
+----- f_rectangle = formatters["%nofill unitsquare xysized (%N,%N) shifted (%N,%N);"]
+local f_hexagon = formatters["%nofill (%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle;"]
+local f_circle = formatters["%nofill unitcircle scaled %N shifted (%N,%N);"]
+
+local s_done = "dofill origin --cycle;"
local f_string = formatters['draw textext("%s") scaled (%N/10) shifted (%N,%N);']
-- A bit faster: 130pps (When I see hexagons I'll do that too but MP takes way more time.)
+-- local s_preamble = [[
+-- save ns; def ns (expr a, b) = nofill unitsquare xyscaled a shifted b ; enddef;
+-- save ds; def ds (expr a, b) = dofill unitsquare xyscaled a shifted b ; enddef;
+-- ]]
+
local s_preamble = [[
save ns; def ns (expr a, b) = nofill unitsquare xyscaled a shifted b ; enddef;
- save ds; def ds (expr a, b) = dofill unitsquare xyscaled a shifted b ; enddef;
]]
----- f_rectangle = formatters["%ss((%N,%N),(%N,%N));"]
-local f_rectangle = formatters["%ss((%i,%i),(%i,%i));"]
+local f_rectangle = formatters["ns((%i,%i),(%i,%i));"]
local function execute(specification)
if okay() then
- local code = specification.code
- local text = specification.text
+ local code = specification.code
+ local text = specification.text
+ local option = specification.option
+ --
+ if option then
+ option = gsub(option,"^%-+","")
+ end
+ specification.option = option
--
if lower(code) == "isbn" then
specification.text = text and gsub(text,"[^%d]","") or ""
@@ -127,20 +152,24 @@ local function execute(specification)
for i=1,n do
local r = rectangles[i]
-- context("%sofill unitsquare xysized (%N,%N) shifted (%N,%N);",
- rectangles[i] = f_rectangle(
- i == n and "d" or "n",r[3],r[4],r[1],r[2]
- )
+-- rectangles[i] = f_rectangle(
+-- i == n and "d" or "n",r[3],r[4],r[1],r[2]
+-- )
+rectangles[i] = f_rectangle(r[3],r[4],r[1],r[2])
end
+rectangles[n+1] = s_done
context("% t",rectangles)
end
if hexagons then
local n = #hexagons
for i=1,n do
-- context("%sofill (%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle;",
- hexagons[i] = f_hexagon(
- i == n and "d" or "n",unpack(hexagons[i])
- )
+-- hexagons[i] = f_hexagon(
+-- i == n and "d" or "n",unpack(hexagons[i])
+-- )
+hexagons[i] = f_hexagon(unpack(hexagons[i]))
end
+hexagons[n+1] = s_done
context("% t",hexagons)
end
if circles then
@@ -148,9 +177,11 @@ local function execute(specification)
for i=1,n do
local c = circles[i]
-- context("%sofill unitcircle scaled %N shifted (%N,%N);",
- circles[i] = f_circle(
- i == n and "d" or "n",c[3],c[1],c[2]
- )
+-- circles[i] = f_circle(
+-- i == n and "d" or "n",c[3],c[1],c[2]
+-- )
+circles[i] = f_circle(c[3],c[1],c[2])
+circles[n+1] = s_done
end
context("% t",circles)
end
@@ -197,6 +228,7 @@ interfaces.implement {
{
{ "code" },
{ "text" },
+ { "option" },
}
}
}
diff --git a/tex/context/base/mkxl/libs-imp-zint.mkxl b/tex/context/base/mkxl/libs-imp-zint.mkxl
index b2c364379..9905e0470 100644
--- a/tex/context/base/mkxl/libs-imp-zint.mkxl
+++ b/tex/context/base/mkxl/libs-imp-zint.mkxl
@@ -22,7 +22,7 @@
%D
%D % e:\tex-context\tex\texmf-win64\bin\lib\luametatex\zint\libzint.dll
-\enabletrackers[*res*]
+% \enabletrackers[*res*]
\registerctxluafile{libs-imp-zint}{autosuffix}
@@ -34,12 +34,13 @@
{\bgroup
\usedzintfont
\getdummyparameters
- [\c!alternative=,\c!text=,#1]%
+ [\c!alternative=,\c!text=,\c!option=,#1]%
\scale
[#1]%
{\clf_zint
- code {\dummyparameter\c!alternative}
- text {\dummyparameter\c!text}
+ code {\dummyparameter\c!alternative}
+ text {\dummyparameter\c!text}
+ option {\dummyparameter\c!option}
\relax}%
\egroup}
@@ -51,23 +52,76 @@
\dontcomplain
-\dorecurse{1}{
+% \dorecurse{1}{
+% \startTEXpage
+% \barcode[alternative=PDF417,text={Hans Hagen}]%
+% \blank
+% \barcode[alternative=PDF417,text={Ton Otten}]%
+% \blank
+% \barcode[alternative=ISBN,text=9789490688011]%
+% \blank
+% \barcode[alternative=isbn,text=9789490688011,width=3cm]%
+% \blank
+% \dontleavehmode
+% \barcode[alternative=qr code,text={This is ConTeXt MKIV : #1}]
+% \barcode[alternative=qr code,text={This is ConTeXt LMTX}]
+% \barcode[alternative=qr code,text={\cldloadfile{tufte}},width=3cm]
+% \blank
+% \barcode[alternative=datamatrix,text=whatever,width=3cm,option=square]
+% \scale[width=3cm,height=3cm]{\barcode[alternative=datamatrix,text=whatever,width=3cm,option=square]}
+% \barcode[alternative=datamatrix,text={helloworld}]
+% \barcode[alternative=datamatrix,text={hello world}]
+% \stopTEXpage
+% }
+
+ \startTEXpage
+ \startluacode
+ for i=1,100 do
+ context.dontleavehmode()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ }
+ context.space()
+ context.allowbreak()
+ end
+ \stopluacode
+ \stopTEXpage
+
\startTEXpage
- \barcode[alternative=PDF417,text={Hans Hagen}]%
- \blank
- \barcode[alternative=PDF417,text={Ton Otten}]%
- \blank
- \barcode[alternative=ISBN,text=9789490688011]%
- \blank
- \barcode[alternative=isbn,text=9789490688011,width=3cm]%
- \blank
- \dontleavehmode
- \barcode[alternative=qr code,text={This is ConTeXt MKIV : #1}]
- \barcode[alternative=qr code,text={This is ConTeXt LMTX}]
- \barcode[alternative=qr code,text={\cldloadfile{tufte}},width=3cm]
+ \startluacode
+ for i=1,100 do
+ context.dontleavehmode()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ option = "square",
+ }
+ context.space()
+ context.allowbreak()
+ end
+ \stopluacode
\stopTEXpage
-}
+ \startluacode
+ for i=1,25 do
+ context.startTEXpage()
+ context.dontleavehmode()
+ context(i)
+ context.space()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ }
+ context.space()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ option = "square",
+ }
+ context.stopTEXpage()
+ end
+ \stopluacode
\stoptext
diff --git a/tex/context/base/mkxl/lpdf-emb.lmt b/tex/context/base/mkxl/lpdf-emb.lmt
index 9811c0843..d6252ae02 100644
--- a/tex/context/base/mkxl/lpdf-emb.lmt
+++ b/tex/context/base/mkxl/lpdf-emb.lmt
@@ -1826,7 +1826,7 @@ do
if kind == "font" then
return setmetatableindex(function(t,k)
local h = data[k]
- local v = direct(h[1]/255,h[2]/255,h[3]/255)
+ local v = h and direct(h[1]/255,h[2]/255,h[3]/255) or false
t[k] = v
return v
end)
diff --git a/tex/context/base/mkxl/lpdf-lmt.lmt b/tex/context/base/mkxl/lpdf-lmt.lmt
index 9bb3319d4..6b623b372 100644
--- a/tex/context/base/mkxl/lpdf-lmt.lmt
+++ b/tex/context/base/mkxl/lpdf-lmt.lmt
@@ -1529,7 +1529,7 @@ local flushimage do
local d = -depth + half
local w = width - line
local t = total - line
- if baseline then
+ if baseline and w > 0 then
rule = f_y(line,half,d,w,t,half,w)
else
rule = f_x(line,half,d,w,t)
@@ -3406,8 +3406,13 @@ do
converter(driver,texgetbox(boxnumber),"page")
end
- localconverter = function(...)
- converter(useddriver,...)
+-- localconverter = function(...)
+-- print(...) -- ok when we add this
+-- converter(useddriver,...) -- otherwise nil .. lua bug
+-- end
+
+ localconverter = function(a,b,c,d)
+ converter(useddriver,a,b,c,d)
end
drivers.install {
diff --git a/tex/context/base/mkxl/lpdf-rul.lmt b/tex/context/base/mkxl/lpdf-rul.lmt
index 96b4597bb..1dfcc11a3 100644
--- a/tex/context/base/mkxl/lpdf-rul.lmt
+++ b/tex/context/base/mkxl/lpdf-rul.lmt
@@ -376,7 +376,29 @@ h %s]]
pdfprint("direct",f_baselined(l,o,o,w-l,h+d-l,0,d,w,d))
end
else
- pdfprint("direct",f_rectangle(l,o,o,w-l,h+d-l))
+ pdfprint("direct",f_rectangle(l,o,o,w-l,h+d-l,"s"))
+ end
+ end
+
+ local function rule_box(p,h,v,i,n)
+ local w, h, d = getwhd(n)
+ local line = p.line or 65536
+ local l = line *bpfactor
+ local w = w * bpfactor
+ local h = h * bpfactor
+ local d = d * bpfactor
+ local o = l / 2
+ if p.baseline ~= false and ((d >= 0 and h >= 0) or (d <= 0 and h <= 0)) then
+ local dashed = tonumber(p.dashed)
+ if dashed and dashed > 5*line then
+ dashed = dashed * bpfactor
+ local delta = (w - 2*dashed*floor(w/(2*dashed)))/2
+ pdfprint("direct",f_dashlined(l,o,o,w-l,h+d-l,dashed,dashed,delta,d,w-delta,d))
+ else
+ pdfprint("direct",f_baselined(l,o,o,w-l,h+d-l,0,d,w,d))
+ end
+ else
+ pdfprint("direct",f_rectangle(l,o,o,w-l,h+d-l,"s"))
end
end
diff --git a/tex/context/base/mkxl/lpdf-xmp.lmt b/tex/context/base/mkxl/lpdf-xmp.lmt
index c4f475914..e147c796f 100644
--- a/tex/context/base/mkxl/lpdf-xmp.lmt
+++ b/tex/context/base/mkxl/lpdf-xmp.lmt
@@ -64,10 +64,11 @@ local mapping = table.setmetatableindex ( {
["Producer"] = { "metadata","rdf:Description/pdf:Producer" },
-- ["Trapped"] = { "pdf", "rdf:Description/pdf:Trapped" }, -- '/False' in /Info, but 'False' in XMP
-- Dublin Core schema
- ["Author"] = { "metadata","rdf:Description/dc:creator/rdf:Seq/rdf:li" },
["Format"] = { "metadata","rdf:Description/dc:format" }, -- optional, but nice to have
- ["Subject"] = { "metadata","rdf:Description/dc:description/rdf:Alt/rdf:li" },
- ["Title"] = { "metadata","rdf:Description/dc:title/rdf:Alt/rdf:li" },
+ -- These were dc:.../rdf:Seq/rdf:li but there was a (invalidating) bug in the iso
+ ["Author"] = { "metadata","rdf:Description/dc:creator" },
+ ["Subject"] = { "metadata","rdf:Description/dc:description" },
+ ["Title"] = { "metadata","rdf:Description/dc:title" },
-- XMP Basic schema
["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
@@ -254,11 +255,11 @@ local pdfaddxmpinfo = lpdf.addxmpinfo
function lpdf.addtoinfo(tag,pdfvalue,strvalue)
local pattern = mapping[tag][2]
- if pattern then
+ if pattern or strvalue == true then
pdfaddtoinfo(tag,pdfvalue)
end
if type(pattern) == "string" then
- local value = strvalue or gsub(tostring(pdfvalue),"^%((.*)%)$","%1") -- hack
+ local value = (type(strvalue) == "string" and strvalue) or gsub(tostring(pdfvalue),"^%((.*)%)$","%1") -- hack
if trace_info then
report_info("set %a to %a",tag,value)
end
diff --git a/tex/context/base/mkxl/math-acc.mklx b/tex/context/base/mkxl/math-acc.mklx
index aab7e4874..929a37ae6 100644
--- a/tex/context/base/mkxl/math-acc.mklx
+++ b/tex/context/base/mkxl/math-acc.mklx
@@ -46,108 +46,129 @@
\installcorenamespace{mathaccents}
-\installcommandhandler \??mathaccents {mathaccents} \??mathaccents
+\installcommandhandler \??mathaccents {mathaccent} \??mathaccents
+
+\aliased\let\setupmathaccents\setupmathaccent
\setupmathaccents
[\c!top=,
\c!bottom=,
\c!mathstyle=,
\c!color=,
+ \c!stretch=\v!no,
\c!define=\v!yes] % not used
-\definemathaccents
+\definemathaccent
[\v!both]
-\definemathaccents
+\definemathaccent
[\v!top]
[\v!both]
-\definemathaccents
+\definemathaccent
[\v!bottom]
[\v!both]
\permanent\tolerant\protected\def\definemathtopaccent[#1]#*[#2]#*[#3]% class name top
{\ifparameter#3\or
- \frozen\protected\instance\edefcsname#2\endcsname{\math_accents_make_double {#1}\plusone{\number#3}\zerocount}%
+ \frozen\protected\instance\edefcsname#2\endcsname{\math_accent_make_double {#1}\plusone{\number#3}\zerocount}%
\else
- \frozen\protected\instance\edefcsname#1\endcsname{\math_accents_make_double\noexpand\currentmathaccents\plusone{\number#2}\zerocount}%
+ \frozen\protected\instance\edefcsname#1\endcsname{\math_accent_make_double\noexpand\currentmathaccent\plusone{\number#2}\zerocount}%
\fi}
\permanent\tolerant\protected\def\definemathbottomaccent[#1]#*[#2]#*[#3]% class name bottom
{\ifparameter#3\or
- \frozen\protected\instance\edefcsname#2\endcsname{\math_accents_make_double {#1}\plustwo\zerocount{\number#3}}%
+ \frozen\protected\instance\edefcsname#2\endcsname{\math_accent_make_double {#1}\plustwo\zerocount{\number#3}}%
\else
- \frozen\protected\instance\edefcsname#1\endcsname{\math_accents_make_double\noexpand\currentmathaccents\plustwo\zerocount{\number#2}}%
+ \frozen\protected\instance\edefcsname#1\endcsname{\math_accent_make_double\noexpand\currentmathaccent\plustwo\zerocount{\number#2}}%
\fi}
\permanent\tolerant\protected\def\definemathdoubleaccent[#1]#*[#2]#*[#3]#*[#4]% class name top bottom
{\ifparameter#4\or
- \frozen\protected\instance\edefcsname#2\endcsname{\math_accents_make_double {#1}\plusthree{\number#3}{\number#4}}%
+ \frozen\protected\instance\edefcsname#2\endcsname{\math_accent_make_double {#1}\plusthree{\number#3}{\number#4}}%
\else
- \frozen\protected\instance\edefcsname#1\endcsname{\math_accents_make_double\noexpand\currentmathaccents\plusthree{\number#2}{\number#3}}%
+ \frozen\protected\instance\edefcsname#1\endcsname{\math_accent_make_double\noexpand\currentmathaccent\plusthree{\number#2}{\number#3}}%
\fi}
-\let\math_accents_color_pop\donothing
-
-\def\math_accents_color_push_yes
- {\pushcolor[\p_math_accent_color]%
- \let\math_accents_color_pop\popcolor}
+\installlocalcurrenthandler \??mathaccents {mathaccent}
-\def\math_accents_color_push_nop
- {\let\math_accents_color_pop\donothing}
-
-\protected\def\math_accents_make_double#class#kind#top#bottom#content%
- {\begingroup
- \edef\currentmathaccents {#class}%
- \edef\p_math_accent_color{\mathaccentsparameter\c!color}%
- \startusemathstyleparameter\mathaccentsparameter\c!mathstyle
- \ifempty\p_math_accent_color
- \math_accents_color_push_nop
- \else
- \math_accents_color_push_yes
- \fi
+\tolerant\protected\def\math_accent_make_double#class#kind#top#bottom#*[#settings]#:#content%
+ {\beginmathgroup
+ \setlocalmathaccentcurrent{#class}% \edef\currentmathaccent{#class}%
+ \startusemathstyleparameter\mathaccentparameter\c!mathstyle
+ \setupcurrentmathaccent[#settings]%
+ \edef\m_fixed{\ifcstok{\mathaccentparameter\c!stretch}\v!yes\else\s!fixed\fi}%
+ \Umathaccent
+ \usedcolorparameterattributes{\mathaccentparameter\c!color}%
\ifcase#kind\or
- \Umathaccent \fam\zerocount#top
+ top \m_fixed
+ \fam\zerocount#top
\or
- \Umathaccent bottom \fam\zerocount#bottom
+ bottom \m_fixed
+ \fam\zerocount#bottom
\or
- \Umathaccent both \fam\zerocount#top
- \fam\zerocount#bottom
+ both \m_fixed
+ \fam\zerocount#top
+ \fam\zerocount#bottom
\fi
- {\math_accents_color_pop#content}%
+ {\ifconditional\c_math_accent_auto_dotless\mathdotless\fi#content}%
\stopusemathstyleparameter
- \endgroup}
+ \endmathgroup}
%D Relative new:
-\newconditional\c_math_accents_auto_dotless \settrue\c_math_accents_auto_dotless % cf opentype math
-
-\aliased\let\normalgrave\grave \permanent\protected\def\dotlessgrave#1{\normalgrave{\mathdotless#1}}
-\aliased\let\normalddot \ddot \permanent\protected\def\dotlessddot #1{\normalddot {\mathdotless#1}}
-\aliased\let\normalbar \bar \permanent\protected\def\dotlessbar #1{\normalbar {\mathdotless#1}}
-\aliased\let\normalacute\acute \permanent\protected\def\dotlessacute#1{\normalacute{\mathdotless#1}}
-\aliased\let\normalhat \hat \permanent\protected\def\dotlesshat #1{\normalhat {\mathdotless#1}}
-\aliased\let\normalcheck\check \permanent\protected\def\dotlesscheck#1{\normalcheck{\mathdotless#1}}
-\aliased\let\normalbreve\breve \permanent\protected\def\dotlessbreve#1{\normalbreve{\mathdotless#1}}
-\aliased\let\normaldot \dot \permanent\protected\def\dotlessdot #1{\normaldot {\mathdotless#1}}
-\aliased\let\normalring \ring \permanent\protected\def\dotlessring #1{\normalring {\mathdotless#1}}
-\aliased\let\normaltilde\tilde \permanent\protected\def\dotlesstilde#1{\normaltilde{\mathdotless#1}}
-\aliased\let\normaldddot\dddot \permanent\protected\def\dotlessdddot#1{\normaldddot{\mathdotless#1}}
-
-\def\math_accents_auto_dotless#1#2{\ifconditional\c_math_accents_auto_dotless\expandafter#2\else\expandafter#1\fi}
-
-\permanent\protected\def\grave {\math_accents_auto_dotless\normalgrave \dotlessgrave }
-\permanent\protected\def\ddot {\math_accents_auto_dotless\normalddot \dotlessddot }
-\permanent\protected\def\bar {\math_accents_auto_dotless\normalbar \dotlessbar }
-\permanent\protected\def\acute {\math_accents_auto_dotless\normalacute \dotlessacute }
-\permanent\protected\def\hat {\math_accents_auto_dotless\normalhat \dotlesshat }
-\permanent\protected\def\check {\math_accents_auto_dotless\normalcheck \dotlesscheck }
-\permanent\protected\def\breve {\math_accents_auto_dotless\normalbreve \dotlessbreve }
-\permanent\protected\def\dot {\math_accents_auto_dotless\normaldot \dotlessdot }
-\permanent\protected\def\ring {\math_accents_auto_dotless\normalring \dotlessring }
-\permanent\protected\def\tilde {\math_accents_auto_dotless\normaltilde \dotlesstilde }
-\permanent\protected\def\dddot {\math_accents_auto_dotless\normaldddot \dotlessdddot }
+\newconditional\c_math_accent_auto_dotless \settrue\c_math_accent_auto_dotless % cf opentype math
+
+\aliased\let\normalgrave\grave
+\aliased\let\normalddot \ddot
+\aliased\let\normalbar \bar
+\aliased\let\normalacute\acute
+\aliased\let\normalhat \hat
+\aliased\let\normalcheck\check
+\aliased\let\normalbreve\breve
+\aliased\let\normaldot \dot
+\aliased\let\normalring \ring
+\aliased\let\normaltilde\tilde
+\aliased\let\normaldddot\dddot
+
+\pushoverloadmode
+
+% these are not stretched ... we should adapt char-def.lua to use these:
+
+\definemathtopaccent[\v!top][grave]["60]
+\definemathtopaccent[\v!top][ddot] ["A8]
+\definemathtopaccent[\v!top][bar] ["AF]
+\definemathtopaccent[\v!top][acute]["B4]
+\definemathtopaccent[\v!top][hat] ["2C6] % "302
+\definemathtopaccent[\v!top][check]["2C7]
+\definemathtopaccent[\v!top][breve]["2D8]
+\definemathtopaccent[\v!top][dot] ["2D9]
+\definemathtopaccent[\v!top][ring] ["2DA]
+\definemathtopaccent[\v!top][tilde]["2DC]
+\definemathtopaccent[\v!top][dddot]["20DB]
+
+\definemathaccent
+ [\v!top:\v!stretch]
+ [\v!top]
+ [\c!stretch=\v!yes]
+
+%D We have a problem. We can use stackers but then we need to adapt the dimensions
+%D which is font dependent. So, for now we keep them as accents.
+
+\definemathtopaccent[\v!top:\v!stretch][widegrave]["0300] % ["060]
+\definemathtopaccent[\v!top:\v!stretch][wideddot] ["0308] % ["0A8]
+\definemathtopaccent[\v!top:\v!stretch][widebar] ["0304] % ["0AF]
+\definemathtopaccent[\v!top:\v!stretch][wideacute]["0301] % ["0B4]
+\definemathtopaccent[\v!top:\v!stretch][widehat] ["0302] % ["2C6]
+\definemathtopaccent[\v!top:\v!stretch][widecheck]["030C] % ["2C7]
+\definemathtopaccent[\v!top:\v!stretch][widebreve]["0306] % ["2D8]
+\definemathtopaccent[\v!top:\v!stretch][widedot] ["0307] % ["2D9]
+\definemathtopaccent[\v!top:\v!stretch][widering] ["030A] % ["2DA]
+\definemathtopaccent[\v!top:\v!stretch][widetilde]["0303] % ["2DC]
+\definemathtopaccent[\v!top:\v!stretch][widedddot]["20DB]
\aliased\let\mathring\ring % for a while
+\popoverloadmode
+
\protect \endinput
diff --git a/tex/context/base/mkxl/math-act.lmt b/tex/context/base/mkxl/math-act.lmt
index 48d389bf9..7aeec184f 100644
--- a/tex/context/base/mkxl/math-act.lmt
+++ b/tex/context/base/mkxl/math-act.lmt
@@ -13,6 +13,7 @@ local type, next = type, next
local fastcopy, insert, remove = table.fastcopy, table.insert, table.remove
local formatters = string.formatters
local byte = string.byte
+local setmetatableindex, sortedhash = table.setmetatableindex, table.sortedhash
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
local trace_collecting = false trackers.register("math.collecting", function(v) trace_collecting = v end)
@@ -60,9 +61,26 @@ function mathematics.initializeparameters(target,original)
local mathparameters = original.mathparameters
if mathparameters and next(mathparameters) then
mathparameters = mathematics.dimensions(mathparameters)
- if not mathparameters.SpaceBeforeScript then
- mathparameters.SpaceBeforeScript = mathparameters.SpaceAfterScript
- end
+ if not mathparameters.PrimeRaisePercent then mathparameters.PrimeRaisePercent = 25 end
+ if not mathparameters.PrimeShiftUp then mathparameters.PrimeShiftUp = mathparameters.SuperscriptShiftUp end
+ if not mathparameters.PrimeBaselineDropMax then mathparameters.PrimeBaselineDropMax = mathparameters.SuperscriptBaselineDropMax end
+ if not mathparameters.PrimeShiftUpCramped then mathparameters.PrimeShiftUpCramped = mathparameters.SuperscriptShiftUpCramped end
+ if not mathparameters.PrimeSpaceAfter then mathparameters.PrimeSpaceAfter = 0 end
+ if not mathparameters.PrimeWidthPercent then mathparameters.PrimeWidthPercent = 50 end
+ if not mathparameters.SpaceBeforeScript then mathparameters.SpaceBeforeScript = mathparameters.SpaceAfterScript end
+ if not mathparameters.NoLimitSupFactor then mathparameters.NoLimitSupFactor = 0 end
+ if not mathparameters.NoLimitSubFactor then mathparameters.NoLimitSubFactor = 0 end
+ if not mathparameters.AccentTopShiftUp then mathparameters.AccentTopShiftUp = 0 end
+ if not mathparameters.AccentBottomShiftDown then mathparameters.AccentBottomShiftDown = 0 end
+ if not mathparameters.FlattenedAccentTopShiftUp then mathparameters.AccentTopShiftUp = 0 end
+ if not mathparameters.FlattenedAccentBottomShiftDown then mathparameters.AccentBottomShiftDown = 0 end
+ if not mathparameters.AccentBaseDepth then mathparameters.AccentBaseDepth = 0 end
+ if not mathparameters.AccentFlattenedBaseDepth then mathparameters.AccentFlattenedBaseDepth = 0 end
+ --
+ -- we don't want to reset that each time .. but then we also can't show what the value was
+ --
+ -- mathparameters.RadicalDegreeBefore = 0
+ --
target.mathparameters = mathparameters
end
end
@@ -77,6 +95,8 @@ local how = {
RadicalDegreeBottomRaisePercent = "unscaled",
NoLimitSupFactor = "unscaled",
NoLimitSubFactor = "unscaled",
+ PrimeRaisePercent = "unscaled",
+ PrimeWidthPercent = "unscaled",
}
function mathematics.scaleparameters(target,original)
@@ -122,12 +142,15 @@ function mathematics.checkprivateparameters(target,original)
if parameters then
local size = parameters.size
if size then
- if not mathparameters.FractionDelimiterSize then
- mathparameters.FractionDelimiterSize = 1.01 * size
- end
- if not mathparameters.FractionDelimiterDisplayStyleSize then
- mathparameters.FractionDelimiterDisplayStyleSize = 2.40 * size
- end
+-- if not mathparameters.FractionDelimiterSize then
+-- mathparameters.FractionDelimiterSize = 1.01 * size
+-- end
+-- if not mathparameters.FractionDelimiterDisplayStyleSize then
+-- mathparameters.FractionDelimiterDisplayStyleSize = 2.40 * size
+-- end
+-- if not mathparameters.PrimeSuperscriptSpace then
+-- mathparameters.PrimeSuperscriptSpace = size / 20
+-- end
elseif properties then
report_math("invalid parameters in font %a",properties.fullname or "?")
else
@@ -149,34 +172,55 @@ function mathematics.overloadparameters(target,original)
for i=1,#goodies do
local goodie = goodies[i]
local mathematics = goodie.mathematics
- local parameters = mathematics and mathematics.parameters
- if parameters then
- if trace_defining then
- report_math("overloading math parameters in %a @ %p",target.properties.fullname,target.parameters.size)
- end
- for name, value in next, parameters do
- local tvalue = type(value)
- if tvalue == "string" then
- report_math("comment for math parameter %a: %s",name,value)
- else
+ if mathematics then
+ local parameters = mathematics.parameters
+ local bigslots = mathematics.bigslots or mathematics.bigs
+ if parameters then
+ if trace_defining then
+ report_math("overloading math parameters in %a @ %p",target.properties.fullname,target.parameters.size)
+ end
+ for name, value in next, parameters do
+ local tvalue = type(value)
local oldvalue = mathparameters[name]
local newvalue = oldvalue
- if oldvalue then
- if tvalue == "number" then
- newvalue = value
- elseif tvalue == "function" then
- newvalue = value(oldvalue,target,original)
- elseif not tvalue then
- newvalue = nil
- end
- if trace_defining and oldvalue ~= newvalue then
- report_math("overloading math parameter %a: %S => %S",name,oldvalue,newvalue)
- end
- else
- report_math("invalid math parameter %a",name)
+ if tvalue == "number" then
+ newvalue = value
+ elseif tvalue == "string" then
+ -- delay till all set
+ elseif tvalue == "function" then
+ newvalue = value(oldvalue,target,original)
+ elseif not tvalue then
+ newvalue = nil
+ end
+ if trace_defining and oldvalue ~= newvalue then
+ report_math("overloading math parameter %a: %S => %S",name,oldvalue or 0,newvalue)
end
mathparameters[name] = newvalue
end
+ for name, value in next, parameters do
+ local tvalue = type(value)
+ if tvalue == "string" then
+ local newvalue = mathparameters[value]
+ -- if not newvalue then
+ -- local code = loadstring("return " .. value,"","t",mathparameters)
+ -- if type(code) == "function" then
+ -- local okay, v = pcall(code)
+ -- if okay then
+ -- newvalue = v
+ -- end
+ -- end
+ -- end
+ if newvalue then
+ -- split in number and string
+ mathparameters[name] = newvalue
+ elseif trace_defining then
+ report_math("ignoring math parameter %a: %S",name,value)
+ end
+ end
+ end
+ end
+ if bigslots then
+ target.bigslots = bigslots
end
end
end
@@ -208,34 +252,151 @@ end
do
local stepper = utilities.parsers.stepper
+ local count = 0
+
+ local splitter = lpeg.tsplitat(".")
- local function adapt(target,original,targetcharacters,originalcharacters,k,v,compact,n)
+ local function adapt(list,target,original,targetcharacters,originalcharacters,k,v,compact,n)
local character = targetcharacters[k]
if character then
- local width = character.width
- local italic = character.italic
- local offsetfactor = v[1] or 1
- local widthfactor = v[2] or 1
- local italicfactor = v[3] or 1
- if width then
- character.advance = width -- so advance is oldwidth
- character.xoffset = offsetfactor * width
- character.width = widthfactor * width
- end
- if italic then
- character.italic = italicfactor * italic
- elseif width and italicfactor ~= 1 then
- character.italic = italicfactor * width
- end
- if trace_tweaking then
- report_tweak("adapting dimensions of %U ",target,original,k)
- end
- local smaller = originalcharacters[k].smaller
- if compact and smaller and smaller ~= k then
- adapt(target,original,targetcharacters,originalcharacters,smaller,v,compact,n+1)
+ if not character.tweaked then
+ local t = type(v)
+ if t == "number" then
+ v = list[v]
+ t = type(v)
+ end
+ if t == "table" then
+ local width = character.width
+ local height = character.height
+ local depth = character.depth
+ local italic = character.italic
+ local topaccent = character.topaccent
+ if #v > 0 then
+ local offsetfactor = v[1]
+ local widthfactor = v[2]
+ local italicfactor = v[3]
+ local anchorfactor = v[4]
+ if width then
+ character.advance = width -- so advance is oldwidth
+ character.xoffset = offsetfactor * width
+ character.width = widthfactor * width
+ end
+ if italic then
+ character.italic = italicfactor * italic
+ elseif width and italicfactor ~= 1 then
+ character.italic = italicfactor * width
+ end
+ if topaccent and topaccent > 0 then
+ if anchorfactor then
+ character.topaccent = anchorfactor * topaccent
+ elseif width then
+ character.topaccent = topaccent + (character.width - character.advance) / 2
+ end
+ end
+ else
+ local widthfactor = v.width
+ local heightfactor = v.height
+ local depthfactor = v.depth
+ local italicfactor = v.italic
+ local anchorfactor = v.anchor
+ local advancefactor = v.advance
+ local xoffsetfactor = v.xoffset
+ local yoffsetfactor = v.yoffset
+ local scalefactor = v.scale
+ local total = (height or 0) + (depth or 0)
+ if scalefactor ~= 1 then
+ character.scale = scalefactor
+ end
+ if width and width ~= 0 then
+ if advancefactor then
+ character.advance = advancefactor * width
+ end
+ if widthfactor then
+ character.width = widthfactor * width
+ end
+ if xoffsetfactor then
+ character.xoffset = xoffsetfactor * width
+ end
+ end
+ if height and height ~= 0 then
+ if heightfactor then
+ character.height = heightfactor * height
+ end
+ end
+ if depth and depthfactor then
+ character.depth = depthfactor * depth
+ end
+ if yoffsetfactor then
+ character.yoffset = yoffsetfactor * total
+ end
+ if italic and italic ~= 0 and italicfactor then
+ character.italic = italicfactor * italic
+ end
+ if anchorfactor then
+ character.topaccent = anchorfactor * (topaccent or width)
+ end
+ end
+ if trace_tweaking then
+ report_tweak("adapting dimensions of %U ",target,original,k)
+ end
+ local smaller = originalcharacters[k].smaller
+ if compact and smaller and smaller ~= k then
+ adapt(list,target,original,targetcharacters,originalcharacters,smaller,v,compact,n+1)
+ end
+ count = count + 1
+ else
+ report_mathtweak("invalid dimension entry %U",k)
+ end
+ character.tweaked = true
+ if v.all then
+ local nxt = character.next
+ if nxt then
+ adapt(list,target,original,targetcharacters,originalcharacters,nxt,v,compact,n)
+ else
+ local parts = character.hparts
+ if parts then
+ for i=1,#parts do
+ adapt(list,target,original,targetcharacters,originalcharacters,parts[i],v,compact,n)
+ end
+ end
+ end
+ end
end
else
- report_math("no character %U",k)
+ report_tweak("no character %U",target,original,k)
+ end
+ end
+
+ local function detail(characters,k)
+ if type(k) == "string" then
+ local t = lpeg.match(splitter,k)
+ local n = #t
+ if n > 0 then
+ local m = tonumber(t[1]) or tonumber(t[1],16)
+ if m then
+ local c = characters[m]
+ if c and n > 1 then
+ m = t[2]
+ if m == "parts" then
+ local nxt = c.next
+ while nxt do
+ c = characters[nxt]
+ nxt = c.next
+ end
+ c = c.hparts or c.vparts
+ if c and n > 2 then
+ m = tonumber(t[3])
+ if m then
+ c = c[m]
+ if c then
+ return c.glyph
+ end
+ end
+ end
+ end
+ end
+ end
+ end
end
end
@@ -245,14 +406,29 @@ do
local targetcharacters = target.characters
local originalcharacters = original.characters
local compact = target.parameters.textscale and true or false
- for k, v in next, list do
+ count = 0
+ for k, v in sortedhash(list) do
local t = type(k)
if t == "number" then
- adapt(target,original,targetcharacters,originalcharacters,k,v,compact,1)
+ adapt(list,target,original,targetcharacters,originalcharacters,k,v,compact,1)
elseif t == "string" then
- stepper(k,function(n) adapt(target,original,targetcharacters,originalcharacters,n,v,compact,1) end)
+ local d = detail(targetcharacters,k)
+ if d then
+ adapt(list,target,original,targetcharacters,originalcharacters,d,v,compact,1)
+ else
+ stepper(k,function(n)
+ adapt(list,target,original,targetcharacters,originalcharacters,n,v,compact,1)
+ end)
+ end
+ -- elseif t == "table" then
+ -- for i=1,#t do
+ -- adapt(list,target,original,targetcharacters,originalcharacters,t[i],v,compact,1)
+ -- end
end
end
+ if trace_tweaking and count > 0 then
+ report_mathtweak("%i dimensions adapted",count)
+ end
end
end
@@ -411,6 +587,274 @@ do
end
+do
+
+ function mathtweaks.fixanchors(target,original,parameters)
+ local factor = tonumber(parameters.factor)
+ if factor ~= 0 then
+ for k, v in next, target.characters do
+ local a = v.topaccent
+ if a and a > 0 then
+ v.topaccent = a * factor
+ end
+ end
+ end
+ end
+
+end
+
+do
+
+ -- local list = {
+ -- [0x203E] = { factor = .4 }, -- overbar
+ -- [0x203E] = { factor = .7 }, -- underbar
+ -- [0x23DE] = { factor = .4 }, -- overbrace
+ -- [0x23DF] = { factor = .7 }, -- underbrace
+ -- [0x23DC] = { factor = .4 }, -- overparent
+ -- [0x23DD] = { factor = .7 }, -- underparent
+ -- [0x23B4] = { factor = .4 }, -- overbracket
+ -- [0x23B5] = { factor = .7 }, -- underbracket
+ -- }
+
+ -- We can patch the dimensions in-place or we can use additional characters in
+ -- the private namespace.
+
+ -- local addprivate = fonts.helpers.addprivate
+ -- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
+
+ local over = { factor = "over" }
+ local under = { factor = "under" }
+
+ local candidates = {
+ over = {
+ [0x203E] = over, -- overbar
+ [0x23DE] = over, -- overbrace
+ [0x23DC] = over, -- overparent
+ [0x23B4] = over, -- overbracket
+ },
+ under = {
+ [0x23DF] = under, -- underbrace
+ [0x23DD] = under, -- underparent
+ [0x23B5] = under, -- underbracket
+ },
+ accent = {
+ [0x0300] = over, -- widegrave
+ [0x0308] = over, -- wideddot
+ [0x0304] = over, -- widebar
+ [0x0301] = over, -- wideacute
+ [0x0302] = over, -- widehat
+ [0x030C] = over, -- widecheck
+ [0x0306] = over, -- widebreve
+ [0x0307] = over, -- widedot
+ [0x030A] = over, -- widering
+ [0x0303] = over, -- widetilde
+ [0x20DB] = over, -- widedddot
+ },
+ }
+
+ local function adapt(c,factor,baseheight,basedepth)
+ if not c.tweaked then
+ local height = c.height or 0
+ local depth = c.depth or 0
+ local yoffset = 0
+ if factor == "over" then
+ local h = height - baseheight
+ yoffset = h - height
+ height = h
+ depth = depth - baseheight
+ elseif factor == "under" then
+ local d = depth - basedepth
+ yoffset = depth - d
+ depth = d
+ height = height - baseheight
+ else
+ if height > 0 then
+ local h = tonumber(factor) * height
+ yoffset = h - height
+ height = h
+ elseif depth > 0 then
+ local d = tonumber(factor) * depth
+ yoffset = depth - d
+ depth = d
+ end
+ end
+ c.yoffset = yoffset ~= 0 and yoffset or nil
+ c.height = height > 0 and height or nil
+ c.depth = depth > 0 and depth or nil
+ c.tweaked = true
+ end
+ end
+
+ local function process(characters,list,baseheight,basedepth)
+ if list then
+ for k, v in sortedhash(list) do -- sort for tracing
+ local c = characters[k]
+ if c and not c.yoffset then
+ local factor = v.factor
+ if factor then
+ adapt(c,factor,baseheight,basedepth)
+ local nc = c.next
+ local nv = 0
+ local ns = 0
+ while nc do
+ local c = characters[nc]
+ if c then
+ adapt(c,factor,baseheight,basedepth)
+ nv = nv + 1
+ nc = c.next
+ if not nc then
+ local hv = c.hparts
+ if hv then
+ for i=1,#hv do
+ local c = characters[hv[i].glyph]
+ if c then
+ adapt(c,factor,baseheight,basedepth)
+ ns = ns + 1
+ end
+ end
+ end
+ break
+ end
+ else
+ break
+ end
+ end
+ if trace_tweaking then
+ report_tweak("adapting extensible (%i sizes, %i parts) %U",k,nv,ns)
+ end
+ end
+ end
+ end
+ end
+ end
+
+ function mathtweaks.accentdimensions(target,original,parameters)
+ local list = parameters.list or { "over", "under" }
+ if list then
+ local characters = target.characters
+ local baseheight = target.mathparameters.AccentBaseHeight or 0
+ local basedepth = target.mathparameters.AccentBaseDepth or 0
+ for k, v in sortedhash(list) do -- sort for tracing
+ local t = type(v)
+ if t == "string" then
+ v = candidates[v]
+ t = type(v)
+ end
+ if t == "table" then
+ process(characters,v,baseheight,basedepth)
+ end
+ end
+ end
+ end
+
+end
+
+do
+
+ -- function mathtweaks.addrules(target,original,parameters)
+ -- local characters = target.characters
+ -- local height = target.mathparameters.OverbarRuleThickness
+ -- local depth = target.mathparameters.UnderbarRuleThickness
+ -- local width = target.parameters.emwidth/2
+ -- local step = 0.8 * width
+ -- characters[0x203E] = { -- over
+ -- width = width,
+ -- height = height,
+ -- depth = 0,
+ -- unicode = 0x203E,
+ -- commands = { { "rule", height, width } },
+ -- hparts = {
+ -- { advance = width, ["end"] = step, glyph = 0x203E, start = 0 },
+ -- { advance = width, ["end"] = 0, glyph = 0x203E, start = step, extender = 1 },
+ -- }
+ -- }
+ -- characters[0x0332] = { -- under
+ -- width = width,
+ -- height = 0,
+ -- depth = depth,
+ -- yoffset = -depth,
+ -- unicode = 0x0332,
+ -- commands = { { "rule", height, width } },
+ -- hparts = {
+ -- { advance = width, ["end"] = step, glyph = 0x0332, start = 0 },
+ -- { advance = width, ["end"] = 0, glyph = 0x0332, start = step, extender = 1 },
+ -- }
+ -- }
+ -- end
+
+ function mathtweaks.addrules(target,original,parameters)
+ local characters = target.characters
+ local thickness = target.mathparameters.OverbarRuleThickness
+ local width = target.parameters.emwidth / 2
+ local step = 0.8 * width
+ characters[0x203E] = { -- over
+ width = width,
+ height = thickness / 2,
+ depth = thickness / 2,
+ yoffset = - thickness / 2,
+ unicode = 0x203E,
+ commands = { { "rule", thickness, width } },
+ hparts = {
+ { advance = width, ["end"] = step, glyph = 0x203E, start = 0 },
+ { advance = width, ["end"] = 0, glyph = 0x203E, start = step, extender = 1 },
+ }
+ }
+ --
+ characters[0x0332] = characters[0x203E]
+ --
+ -- lucida lacks them ...
+ --
+ local addprivate = fonts.helpers.addprivate
+ --
+ local half = thickness / 2
+ local double = thickness * 2
+ --
+ if not characters[0x23B4] then
+ local tpiece = addprivate(target,"bracket-piece-top",{
+ width = thickness,
+ height = half,
+ depth = double,
+ yoffset = - double,
+ commands = { { "rule", thickness * 2.5, thickness } },
+ })
+ characters[0x23B4] = { -- over
+ width = width,
+ height = half,
+ depth = double,
+ unicode = 0x23B4,
+ commands = { { "rule", thickness, width } },
+ hparts = {
+ { advance = thickness, glyph = tpiece, ["end"] = 0, start = half },
+ { advance = width, glyph = 0x203E, ["end"] = step, start = step, extender = 1 },
+ { advance = thickness, glyph = tpiece, ["end"] = half, start = 0 },
+ }
+ }
+ end
+ if not characters[0x23B5] then
+ local bpiece = addprivate(target,"bracket-piece-bottom",{
+ width = thickness,
+ height = double,
+ depth = half,
+ yoffset = - half,
+ commands = { { "rule", thickness * 2.5, thickness } },
+ })
+ characters[0x23B5] = { -- over
+ width = width,
+ height = double,
+ depth = half,
+ unicode = 0x23B5,
+ commands = { { "rule", thickness, width } },
+ hparts = {
+ { advance = thickness, glyph = bpiece, ["end"] = 0, start = half },
+ { advance = width, glyph = 0x203E, ["end"] = step, start = step, extender = 1 },
+ { advance = thickness, glyph = bpiece, ["end"] = half, start = 0 },
+ }
+ }
+ end
+ end
+
+end
+
function mathtweaks.action(target,original,parameters)
local action = parameters.action
if type(action) == "function" then
@@ -626,32 +1070,42 @@ do
end
+local apply_tweaks = true
+
+directives.register("math.applytweaks", function(v)
+ apply_tweaks = v;
+end)
+
local function applytweaks(when,target,original)
- local goodies = original.goodies
- if goodies then
- for i=1,#goodies do
- local goodie = goodies[i]
- local mathematics = goodie.mathematics
- local tweaks = mathematics and mathematics.tweaks
- if type(tweaks) == "table" then
- tweaks = tweaks[when]
+ if apply_tweaks then
+ local goodies = original.goodies
+ if goodies then
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ local mathematics = goodie.mathematics
+ local tweaks = mathematics and mathematics.tweaks
if type(tweaks) == "table" then
- if trace_defining then
- report_math("tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
- end
- for i=1,#tweaks do
- local tweak = tweaks[i]
- local tvalue = type(tweak)
- if type(tweak) == "table" then
- local action = mathtweaks[tweak.tweak or ""]
- if action then
- action(target,original,tweak)
+ tweaks = tweaks[when]
+ if type(tweaks) == "table" then
+ if trace_defining then
+ report_math("tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
+ end
+ for i=1,#tweaks do
+ local tweak = tweaks[i]
+ local tvalue = type(tweak)
+ if type(tweak) == "table" then
+ local action = mathtweaks[tweak.tweak or ""]
+ if action then
+ action(target,original,tweak)
+ end
end
end
end
end
end
end
+ else
+ report_math("not tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
end
end
@@ -669,10 +1123,10 @@ function mathematics.tweakaftercopyingfont(target,original)
end
end
+sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
sequencers.appendaction("mathparameters","system","mathematics.scaleparameters")
sequencers.appendaction("mathparameters","system","mathematics.checkaccentbaseheight") -- should go in lfg instead
sequencers.appendaction("mathparameters","system","mathematics.checkprivateparameters") -- after scaling !
-sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
sequencers.appendaction("beforecopyingcharacters","system","mathematics.tweakbeforecopyingfont")
sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweakaftercopyingfont")
@@ -683,16 +1137,11 @@ sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweakaft
-- helpers
-local setmetatableindex = table.setmetatableindex
-
-local getfontoffamily = tex.getfontoffamily
+local getfontoffamily = tex.getfontoffamily
-local fontcharacters = fonts.hashes.characters
-local extensibles = utilities.storage.allocate()
-fonts.hashes.extensibles = extensibles
-
-local chardata = characters.data
-local extensibles = mathematics.extensibles
+local fontcharacters = fonts.hashes.characters
+local chardata = characters.data
+local extensibles = mathematics.extensibles
-- we use numbers at the tex end (otherwise we could stick to chars)
@@ -722,15 +1171,15 @@ local function extensiblecode(font,unicode)
if not char then
return unknown
end
- if character.hvariants then
- if character.vvariants then
+ if character.hparts then
+ if character.vparts then
return { e_mixed, code, character }
else
local m = char.mathextensible
local e = m and extensibles[m]
return e and { e, code, character } or unknown
end
- elseif character.vvariants then
+ elseif character.vparts then
local m = char.mathextensible
local e = m and extensibles[m]
return e and { e, code, character } or unknown
@@ -772,19 +1221,19 @@ local function horizontalcode(family,unicode)
local loffset = 0
local roffset = 0
if kind == e_left then
- local charlist = data[3].hvariants
+ local charlist = data[3].hparts
if charlist then
local left = charlist[1]
loffset = abs((left["start"] or 0) - (left["end"] or 0))
end
elseif kind == e_right then
- local charlist = data[3].hvariants
+ local charlist = data[3].hparts
if charlist then
local right = charlist[#charlist]
roffset = abs((right["start"] or 0) - (right["end"] or 0))
end
elseif kind == e_horizontal then
- local charlist = data[3].hvariants
+ local charlist = data[3].hparts
if charlist then
local left = charlist[1]
local right = charlist[#charlist]
@@ -815,7 +1264,6 @@ interfaces.implement { -- can be public with two times "integerargument"
end
}
-
local stack = { }
function mathematics.registerfallbackid(n,id,name)
diff --git a/tex/context/base/mkxl/math-ali.mkxl b/tex/context/base/mkxl/math-ali.mkxl
index 30f5c0524..6149d9be2 100644
--- a/tex/context/base/mkxl/math-ali.mkxl
+++ b/tex/context/base/mkxl/math-ali.mkxl
@@ -2196,6 +2196,25 @@
{\afterdisplayspace
\endgroup}
+%D Kind of new (February 2022):
+
+\installcorenamespace {maththreshold}
+
+\setupmathematics[\c!threshold=\zeropoint]
+
+\permanent\protected\def\installmaththreshold#1#2%
+ {\expandafter\gluespecdef\csname\??maththreshold#1\endcsname#2\relax}
+
+\installmaththreshold\v!none {\zeropoint}
+\installmaththreshold\v!small {3\emwidth plus 0.50\emwidth minus 0.25\emwidth}
+\installmaththreshold\v!medium{4\emwidth plus 0.75\emwidth minus 0.50\emwidth}
+\installmaththreshold\v!big {5\emwidth plus 1.00\emwidth minus 0.75\emwidth}
+
+\appendtoks
+ \edef\p_threshold{\mathematicsparameter\c!threshold}%
+ \maththreshold\ifcsname\??maththreshold\p_threshold\endcsname\lastnamedcs\else\p_threshold\fi\relax
+\to \everymath % \everyemathematics
+
\protect \endinput
% \placeformula \startformula[-] \startmatrix
diff --git a/tex/context/base/mkxl/math-def.mkxl b/tex/context/base/mkxl/math-def.mkxl
index c7cf65270..53165a30c 100644
--- a/tex/context/base/mkxl/math-def.mkxl
+++ b/tex/context/base/mkxl/math-def.mkxl
@@ -26,8 +26,7 @@
\activatemathcharacters
-%D The \mfunction macro is an alternative for \hbox with a controlable font
-%D switch.
+%D The \mfunction macro is an alternative for \hbox with a controlable font switch.
\definemathcommand [arccos] [nolop] {\mfunctionlabeltext{arccos}}
\definemathcommand [arcsin] [nolop] {\mfunctionlabeltext{arcsin}}
@@ -104,15 +103,14 @@
%D equalscoloncolon, coloncolonapprox, approxcoloncolon,
%D colonsim, simcoloncolon}
%D
-%D The following colon related definitions are provided by Aditya
-%D Mahajan who derived them from \type {mathtools.sty} and \type
-%D {colonequals.sty}. This will be redone as part of the overhaul
-%D and font updates.
+%D The following colon related definitions are provided by Aditya Mahajan who
+%D derived them from \type {mathtools.sty} and \type {colonequals.sty}. This will be
+%D redone as part of the overhaul and font updates.
%D
-%D In $a := b$ the colon is not vertically centered with the equal
-%D to. Also the distance between colon and equal to is a bit large.
-%D So, we define a vertically centered colon \tex {centercolon} and
-%D a few macros for colon and double colon relation symbols.
+%D In $a := b$ the colon is not vertically centered with the equal to. Also the
+%D distance between colon and equal to is a bit large. So, we define a vertically
+%D centered colon \tex {centercolon} and a few macros for colon and double colon
+%D relation symbols.
%D
%D \startlines
%D \formula {A \centercolon B}
@@ -140,8 +138,8 @@
\pushoverloadmode
-\definemathcommand [colonsep] {\mkern-1.2mu}
-\definemathcommand [doublecolonsep] {\mkern-0.9mu}
+\definemathcommand [colonsep] {\mkern-1.2mu}
+\definemathcommand [doublecolonsep] {\mkern-0.9mu}
\definemathcommand [centercolon] [rel] {\mathstylevcenteredhbox\colon}
\definemathcommand [colonminus] [rel] {\centercolon\colonsep\mathrel{-}}
diff --git a/tex/context/base/mkxl/math-del.mkxl b/tex/context/base/mkxl/math-del.mkxl
index 8f2596359..47febc180 100644
--- a/tex/context/base/mkxl/math-del.mkxl
+++ b/tex/context/base/mkxl/math-del.mkxl
@@ -66,7 +66,7 @@
% A new experiment:
% Hm, we already have \definemathextensible so we need to preserve that one. We now
-% use \definemathdelimiter.
+% use \definemathdelimiter. This mechanism will probably disappear so don't use it!
\installcorenamespace {mathdelimiter}
@@ -139,7 +139,7 @@
% \ruledhbox{$\int f\frac{1}{2}$}
% \stoplines
-\permanent\protected\def\autointegral#1#2#3%
+\permanent\protected\def\autointegral#1#2#3% this one is obsolete now
{\ifmmode
\setbox\nextbox\mathstylehbox{#3}%
\scratchdimen\ifdim\nextboxht>\nextboxdp\nextboxht\else\nextboxdp\fi
diff --git a/tex/context/base/mkxl/math-dim.lmt b/tex/context/base/mkxl/math-dim.lmt
index 3b88b0b0b..0dd348184 100644
--- a/tex/context/base/mkxl/math-dim.lmt
+++ b/tex/context/base/mkxl/math-dim.lmt
@@ -104,14 +104,14 @@ local defaults = {
}
local styles = {
+ 'display_style',
'cramped_display_style',
- 'cramped_script_script_style',
- 'cramped_script_style',
+ 'text_style',
'cramped_text_style',
- 'display_style',
- 'script_script_style',
'script_style',
- 'text_style',
+ 'cramped_script_style',
+ 'script_script_style',
+ 'cramped_script_script_style',
}
for k, v in next, defaults do
diff --git a/tex/context/base/mkxl/math-fbk.lmt b/tex/context/base/mkxl/math-fbk.lmt
index 80b99d83b..c219bb34f 100644
--- a/tex/context/base/mkxl/math-fbk.lmt
+++ b/tex/context/base/mkxl/math-fbk.lmt
@@ -246,160 +246,164 @@ virtualcharacters[0xFE352] = function(data)
end
end
-local function accent_to_extensible(target,newchr,original,oldchr,height,depth,swap,offset,unicode)
- local characters = target.characters
- local olddata = characters[oldchr]
- -- brrr ... pagella has only next
- if olddata and not olddata.commands then -- not: and olddata.width > 0
- local addprivate = fonts.helpers.addprivate
- if swap then
- swap = characters[swap]
- height = swap.depth or 0
- depth = 0
- else
- height = height or 0
- depth = depth or 0
- end
- local oldheight = olddata.height or 0
- local correction = swap and
- downcommand[oldheight - height]
- or downcommand[oldheight + (offset or 0)]
- local newdata = {
- commands = { correction, charcommand[oldchr] },
- width = olddata.width,
- height = height,
- depth = depth,
- unicode = unicode,
- }
- local glyphdata = newdata
- local nextglyph = olddata.next
- while nextglyph do
- local oldnextdata = characters[nextglyph]
- if oldnextdata then
- local newnextdata = {
- commands = { correction, charcommand[nextglyph] },
- width = oldnextdata.width,
- height = height,
- depth = depth,
- }
- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
- newdata.next = newnextglyph
- local nextnextglyph = oldnextdata.next
- if nextnextglyph == nextglyph then
- break
- else
- olddata = oldnextdata
- newdata = newnextdata
- nextglyph = nextnextglyph
- end
- else
- report_fallbacks("error in fallback: no valid next, slot %X",nextglyph)
- break
- end
- end
- local hv = olddata.hvariants
- if hv then
- hv = fastcopy(hv)
- newdata.hvariants = hv
- for i=1,#hv do
- local hvi = hv[i]
- local oldglyph = hvi.glyph
- local olddata = characters[oldglyph]
- if olddata then
- local newdata = {
- commands = { correction, charcommand[oldglyph] },
- width = olddata.width,
- height = height,
- depth = depth,
- }
- hvi.glyph = addprivate(target,formatters["M-H-%H"](oldglyph),newdata)
- else
- report_fallbacks("error in fallback: no valid hvariants, slot %X, index %i",oldglyph,i)
- end
- end
- end
- return glyphdata, true
- else
- return olddata, false
- end
-end
-
-virtualcharacters[0x203E] = function(data)
- local target = data.target
- local height = 0
- local depth = 0
- -- local mathparameters = target.mathparameters
- -- if mathparameters then
- -- height = mathparameters.OverbarVerticalGap
- -- depth = mathparameters.UnderbarVerticalGap
- -- else
- height = target.parameters.xheight/4
- depth = height
- -- end
- return accent_to_extensible(target,0x203E,data.original,0x0305,height,depth,nil,nil,0x203E)
-end
-
--- virtualcharacters[0xFE33E] = virtualcharacters[0x203E] -- convenient
--- virtualcharacters[0xFE33F] = virtualcharacters[0x203E] -- convenient
-
-virtualcharacters[0xFE33E] = function(data)
- local target = data.target
- local height = 0
- local depth = target.parameters.xheight/4
- return accent_to_extensible(target,0xFE33E,data.original,0x0305,height,depth,nil,nil,0x203E)
-end
-
-virtualcharacters[0xFE33F] = function(data)
- local target = data.target
- local height = target.parameters.xheight/8
- local depth = height
- return accent_to_extensible(target,0xFE33F,data.original,0x0305,height,depth,nil,nil,0x203E)
-end
-
-local function smashed(data,unicode,swap,private)
- local target = data.target
- local original = data.original
- local chardata = target.characters[unicode]
- if chardata and chardata.height > target.parameters.xheight then
- return accent_to_extensible(target,private,original,unicode,0,0,swap,nil,unicode)
- else
- return original.characters[unicode]
- end
-end
-
-addextra(0xFE3DE) -- EXTENSIBLE OF 0x03DE
-addextra(0xFE3DC) -- EXTENSIBLE OF 0x03DC
-addextra(0xFE3B4) -- EXTENSIBLE OF 0x03B4
-
-virtualcharacters[0xFE3DE] = function(data) return smashed(data,0x23DE,0x23DF,0xFE3DE) end
-virtualcharacters[0xFE3DC] = function(data) return smashed(data,0x23DC,0x23DD,0xFE3DC) end
-virtualcharacters[0xFE3B4] = function(data) return smashed(data,0x23B4,0x23B5,0xFE3B4) end
-
-addextra(0xFE3DF) -- EXTENSIBLE OF 0x03DF
-addextra(0xFE3DD) -- EXTENSIBLE OF 0x03DD
-addextra(0xFE3B5) -- EXTENSIBLE OF 0x03B5
-
-virtualcharacters[0xFE3DF] = function(data) local c = data.target.characters[0x23DF] if c then c.unicode = 0x23DF return c end end
-virtualcharacters[0xFE3DD] = function(data) local c = data.target.characters[0x23DD] if c then c.unicode = 0x23DD return c end end
-virtualcharacters[0xFE3B5] = function(data) local c = data.target.characters[0x23B5] if c then c.unicode = 0x23B5 return c end end
-
--- todo: add some more .. numbers might change
-
-addextra(0xFE302) -- EXTENSIBLE OF 0x0302
-addextra(0xFE303) -- EXTENSIBLE OF 0x0303
-
-local function smashed(data,unicode,private)
- local target = data.target
- local height = target.parameters.xheight / 2
- local c, done = accent_to_extensible(target,private,data.original,unicode,height,0,nil,-height,unicode)
- if done then
- c.topaccent = nil -- or maybe also all the others
- end
- return c
-end
+---------------------------------------------------------------------------------
+-- these are moved to math-act.lmt (keep this code)
+---------------------------------------------------------------------------------
-virtualcharacters[0xFE302] = function(data) return smashed(data,0x0302,0xFE302) end
-virtualcharacters[0xFE303] = function(data) return smashed(data,0x0303,0xFE303) end
+-- local function accent_to_extensible(target,newchr,original,oldchr,height,depth,swap,offset,unicode)
+-- local characters = target.characters
+-- local olddata = characters[oldchr]
+-- -- brrr ... pagella has only next
+-- if olddata and not olddata.commands then -- not: and olddata.width > 0
+-- local addprivate = fonts.helpers.addprivate
+-- if swap then
+-- swap = characters[swap]
+-- height = swap.depth or 0
+-- depth = 0
+-- else
+-- height = height or 0
+-- depth = depth or 0
+-- end
+-- local oldheight = olddata.height or 0
+-- local correction = swap and
+-- downcommand[oldheight - height]
+-- or downcommand[oldheight + (offset or 0)]
+-- local newdata = {
+-- commands = { correction, charcommand[oldchr] },
+-- width = olddata.width,
+-- height = height,
+-- depth = depth,
+-- unicode = unicode,
+-- }
+-- local glyphdata = newdata
+-- local nextglyph = olddata.next
+-- while nextglyph do
+-- local oldnextdata = characters[nextglyph]
+-- if oldnextdata then
+-- local newnextdata = {
+-- commands = { correction, charcommand[nextglyph] },
+-- width = oldnextdata.width,
+-- height = height,
+-- depth = depth,
+-- }
+-- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
+-- newdata.next = newnextglyph
+-- local nextnextglyph = oldnextdata.next
+-- if nextnextglyph == nextglyph then
+-- break
+-- else
+-- olddata = oldnextdata
+-- newdata = newnextdata
+-- nextglyph = nextnextglyph
+-- end
+-- else
+-- report_fallbacks("error in fallback: no valid next, slot %X",nextglyph)
+-- break
+-- end
+-- end
+-- local hv = olddata.hparts
+-- if hv then
+-- hv = fastcopy(hv)
+-- newdata.hparts = hv
+-- for i=1,#hv do
+-- local hvi = hv[i]
+-- local oldglyph = hvi.glyph
+-- local olddata = characters[oldglyph]
+-- if olddata then
+-- local newdata = {
+-- commands = { correction, charcommand[oldglyph] },
+-- width = olddata.width,
+-- height = height,
+-- depth = depth,
+-- }
+-- hvi.glyph = addprivate(target,formatters["M-H-%H"](oldglyph),newdata)
+-- else
+-- report_fallbacks("error in fallback: no valid hparts, slot %X, index %i",oldglyph,i)
+-- end
+-- end
+-- end
+-- return glyphdata, true
+-- else
+-- return olddata, false
+-- end
+-- end
+--
+-- virtualcharacters[0x203E] = function(data) -- overbar
+-- local target = data.target
+-- local height = 0
+-- local depth = 0
+-- -- local mathparameters = target.mathparameters
+-- -- if mathparameters then
+-- -- height = mathparameters.OverbarVerticalGap
+-- -- depth = mathparameters.UnderbarVerticalGap
+-- -- else
+-- height = target.parameters.xheight/4
+-- depth = height
+-- -- end
+-- return accent_to_extensible(target,0x203E,data.original,0x0305,height,depth,nil,nil,0x203E)
+-- end
+--
+-- -- virtualcharacters[0xFE33E] = virtualcharacters[0x203E] -- convenient
+-- -- virtualcharacters[0xFE33F] = virtualcharacters[0x203E] -- convenient
+--
+-- virtualcharacters[0xFE33E] = function(data)
+-- local target = data.target
+-- local height = 0
+-- local depth = target.parameters.xheight/4
+-- return accent_to_extensible(target,0xFE33E,data.original,0x0305,height,depth,nil,nil,0x203E)
+-- end
+--
+-- virtualcharacters[0xFE33F] = function(data)
+-- local target = data.target
+-- local height = target.parameters.xheight/8
+-- local depth = height
+-- return accent_to_extensible(target,0xFE33F,data.original,0x0305,height,depth,nil,nil,0x203E)
+-- end
+--
+-- local function smashed(data,unicode,swap,private)
+-- local target = data.target
+-- local original = data.original
+-- local chardata = target.characters[unicode]
+-- if chardata and chardata.height > target.parameters.xheight then
+-- return accent_to_extensible(target,private,original,unicode,0,0,swap,nil,unicode)
+-- else
+-- return original.characters[unicode]
+-- end
+-- end
+--
+-- addextra(0xFE3DE) -- EXTENSIBLE OF 0x03DE : overbrace
+-- addextra(0xFE3DC) -- EXTENSIBLE OF 0x03DC : overparent
+-- addextra(0xFE3B4) -- EXTENSIBLE OF 0x03B4 : overbracket
+--
+-- virtualcharacters[0xFE3DE] = function(data) return smashed(data,0x23DE,0x23DF,0xFE3DE) end
+-- virtualcharacters[0xFE3DC] = function(data) return smashed(data,0x23DC,0x23DD,0xFE3DC) end
+-- virtualcharacters[0xFE3B4] = function(data) return smashed(data,0x23B4,0x23B5,0xFE3B4) end
+--
+-- addextra(0xFE3DF) -- EXTENSIBLE OF 0x03DF
+-- addextra(0xFE3DD) -- EXTENSIBLE OF 0x03DD
+-- addextra(0xFE3B5) -- EXTENSIBLE OF 0x03B5
+--
+-- virtualcharacters[0xFE3DF] = function(data) local c = data.target.characters[0x23DF] if c then c.unicode = 0x23DF return c end end
+-- virtualcharacters[0xFE3DD] = function(data) local c = data.target.characters[0x23DD] if c then c.unicode = 0x23DD return c end end
+-- virtualcharacters[0xFE3B5] = function(data) local c = data.target.characters[0x23B5] if c then c.unicode = 0x23B5 return c end end
+--
+-- -- todo: add some more .. numbers might change
+--
+-- addextra(0xFE302) -- EXTENSIBLE OF 0x0302
+-- addextra(0xFE303) -- EXTENSIBLE OF 0x0303
+--
+-- local function smashed(data,unicode,private)
+-- local target = data.target
+-- local height = target.parameters.xheight / 2
+-- local c, done = accent_to_extensible(target,private,data.original,unicode,height,0,nil,-height,unicode)
+-- if done then
+-- c.topaccent = nil -- or maybe also all the others
+-- end
+-- return c
+-- end
+--
+-- virtualcharacters[0xFE302] = function(data) return smashed(data,0x0302,0xFE302) end
+-- virtualcharacters[0xFE303] = function(data) return smashed(data,0x0303,0xFE303) end
---------------------------------------------------------------------------------
-- these are moved to math-act.lmt
@@ -717,7 +721,7 @@ virtualcharacters[0x305] = function(data)
height = height,
depth = depth,
commands = { { "rule", height, width } },
- hvariants = {
+ hparts = {
{
advance = width,
["end"] = used,
diff --git a/tex/context/base/mkxl/math-fen.mkxl b/tex/context/base/mkxl/math-fen.mkxl
index b8347eb66..08891286e 100644
--- a/tex/context/base/mkxl/math-fen.mkxl
+++ b/tex/context/base/mkxl/math-fen.mkxl
@@ -58,13 +58,19 @@
\c!color=,
\c!command=,
\c!mathclass=,
+ \c!leftsource=\zerocount,
+ \c!middlesource=\zerocount,
+ \c!rightsource=\mathfenceparameter\c!source,
+ \c!source=\zerocount,
+ \c!height=\zeropoint,
+ \c!depth=\zeropoint,
\c!factor=\v!auto]
\appendtoks
\edef\p_command{\mathfenceparameter\c!command}%
\ifx\p_command\v!yes
% \instance
- \protected\edefcsname\currentmathfence\endcsname{\math_fenced_fenced[\currentmathfence]}%
+ \protected\edefcsname\currentmathfence\endcsname{\math_fenced_fenced{\currentmathfence}}%
\fi
\to \everydefinemathfence
@@ -87,9 +93,13 @@
%D $ a + \fenced[bar] {\frac {b} {c}} + d $
%D \stoptyping
+% todo : class -> number
+
\newconditional\c_math_fenced_mirror \settrue \c_math_fenced_mirror
\newconditional\c_math_fenced_sized \setfalse\c_math_fenced_sized
+\newcount\c_math_fence_nesting
+
\installcorenamespace {mathfencesize}
\defcsname\??mathfencesize big\endcsname{1}
@@ -97,125 +107,143 @@
\defcsname\??mathfencesize bigg\endcsname{3}
\defcsname\??mathfencesize Bigg\endcsname{4}
+\let\math_fenced_trace\donothing
+
\def\math_fenced_force_size#1#2%
{\c_attr_mathsize\numexpr
#1*\plushundred
+\ifcsname\??mathfencesize#2\endcsname\lastnamedcs\else#2\fi
\relax}
-\protected\def\math_fenced_inject#1#2#3#4%
- {\ifx#1\empty
- #2.%
+\def\math_fenced_common_factor_none
+ {\math_fenced_force_size\bigmathdelimitervariant\c_math_fence_nesting\relax
+ \Uvextensible
+ \s!axis
+ \s!exact}
+
+\def\math_fenced_common_factor_fixed
+ {\Uvextensible
+ \s!axis
+ \s!exact}
+
+\def\math_fenced_common_factor_unknown
+ {\scratchdimen\dimexpr\p_factor\bodyfontsize/2\relax
+ \Uvextensible
+ \s!height\scratchdimen
+ \s!depth\scratchdimen
+ \s!axis
+ \s!exact}
+
+\def\math_fenced_common_factor_force
+ {\Uvextensible
+ \s!height\mathfenceparameter\c!height
+ \s!depth\mathfenceparameter\c!depth
+ \s!axis
+ \s!exact}
+
+\permanent\def\math_fenced_common#1#2#3#4% \Uwhatever class symbol source
+ {\ifconditional\c_math_fenced_sized
+ \orelse\ifconditional\c_math_fenced_level_mode
+ \ifnum#2=\mathopencode
+ % \hpack{\infofont<L:\number\c_math_fenced_level:\number\c_attr_mathsize>}%
+ \integerdef\c_math_fenced_stack\c_attr_mathsize
+ \push_macro_c_math_fenced_stack
+ \orelse\ifnum#2=\mathclosecode
+ \pop_macro_c_math_fenced_stack
+ \c_attr_mathsize\c_math_fenced_stack
+ % \hpack{\infofont<R:\number\c_math_fenced_level:\number\c_attr_mathsize>}%
+ \fi
+ \fi
+ \edef\p_fence{#3}%
+ \ifempty\p_fence
+ #1.\relax
\else
+ \edef\p_factor {\mathfenceparameter\c!factor}%
+ \edef\p_size {\mathfenceparameter\c!size}%
\edef\p_mathclass{\mathfenceparameter\c!mathclass}%
- \ifconditional\c_math_fenced_sized
- \let\p_factor\v!fixed
- \else
- \edef\p_factor{\mathfenceparameter\c!factor}%
- \fi
- \ifempty\p_factor
- \ifempty\p_mathclass
- #2%
+ \ifnum\c_math_fenced_level>\zerocount
+ \math_fenced_common_factor_fixed
+ \orelse\ifconditional\c_math_fenced_sized
+ \math_fenced_common_factor_fixed
+ \orelse\ifempty\p_factor
+ \ifconditional\c_math_fenced_level_mode
+ \Uvextensible
\else
- #3%
- \s!class\p_mathclass
+ #1% \Uleft \Umiddle \Uleft
\fi
\orelse\ifx\p_factor\v!auto
- \ifempty\p_mathclass
- #2%
+ \ifconditional\c_math_fenced_level_mode
+ \Uvextensible
\else
- #3%
- \s!class\p_mathclass
+ #1% \Uleft \Umiddle \Uleft
\fi
\orelse\ifx\p_factor\v!none
- #3%
- \s!height\zeropoint % redundant with "exact"
- \s!depth\zeropoint % redundant with "exact"
- \ifempty\p_mathclass\else
- \s!class\p_mathclass
- \fi
- \s!axis
- \s!exact % new
- % #2%
+ \math_fenced_common_factor_none
+ \orelse\ifx\p_factor\v!fixed
+ \math_fenced_common_factor_fixed
+ \orelse\ifx\p_factor\v!force
+ \math_fenced_common_factor_force
\else
- %\scratchdimen\ifx\p_factor\v!fixed\scaledpoint\else\dimexpr\p_factor\bodyfontsize/2\relax\fi
- \scratchdimen\ifx\p_factor\v!fixed\zeropoint\else\dimexpr\p_factor\bodyfontsize/2\relax\fi
- #3%
- \s!height\scratchdimen
- \s!depth\scratchdimen
- \ifempty\p_mathclass\else
- \s!class\p_mathclass
- \fi
- \s!axis
- \s!exact
+ \math_fenced_common_factor_unknown
+ \fi
+ \usedcolorparameterattributes{\mathfenceparameter\c!color}%
+ \s!class\ifempty\p_mathclass#2\else\p_mathclass\fi
+ \s!source\numexpr\namedboxanchor{\mathfenceparameter#4}\relax
+ \math_fenced_trace
+ \Udelimiter#2\fam\p_fence\relax
+ \fi
+ % we could use \s!attr \c_math_fenced_stack here
+ \ifconditional\c_math_fenced_sized
+ \orelse\ifcase\c_math_fenced_level
+ \c_attr_mathsize\attributeunsetvalue
+ \fi}
+
+\def\math_fenced_left
+ {\advance\c_math_fence_nesting\plusone
+ \math_fenced_common\Uleft\mathopencode\math_fenced_p_left\c!leftsource}
+
+\def\math_fenced_middle
+ {\math_fenced_common\Umiddle\mathmiddlecode\math_fenced_p_middle\c!middlesource}
+
+\def\math_fenced_right
+ {\math_fenced_common\Uright\mathclosecode\math_fenced_p_right\c!rightsource
+ \advance\c_math_fence_nesting\minusone}
+
+\def\math_fenced_p_left
+ {\ifconditional\c_math_fenced_mirror
+ \ifconditional\c_math_right_to_left
+ \mathfenceparameter\c!right
+ \else
+ \mathfenceparameter\c!left
\fi
- \Udelimiter#4\fam#1\relax
+ \else
+ \mathfenceparameter\c!left
\fi}
-\permanent\def\math_fenced_left
- {\edef\p_left
- {\ifconditional\c_math_fenced_mirror
- \ifconditional\c_math_right_to_left
- \mathfenceparameter\c!right
- \else
- \mathfenceparameter\c!left
- \fi
- \else
- \mathfenceparameter\c!left
- \fi}%
- \math_fenced_color_push
- \math_fenced_inject\p_left\normalleft\Uleft\plusfour
- \math_fenced_color_pop}
-
-\permanent\def\math_fenced_middle
- {\edef\p_middle{\mathfenceparameter\c!middle}%
- \mskip\thinmuskip
- \math_fenced_color_push
- \math_fenced_inject\p_middle\normalmiddle\Umiddle\plusfour
- \math_fenced_color_pop
- \mskip\thinmuskip}
-
-\permanent\def\math_fenced_right
- {\edef\p_right
- {\ifconditional\c_math_fenced_mirror
- \ifconditional\c_math_right_to_left
- \mathfenceparameter\c!left
- \else
- \mathfenceparameter\c!right
- \fi
- \else
- \mathfenceparameter\c!right
- \fi}%
- \math_fenced_color_push
- \math_fenced_inject\p_right\normalright\Uright\plusfive
- \math_fenced_color_pop}
-
-\def\math_fenced_color_do_push{\pushcolor[\p_math_fenced_color]}
-\let\math_fenced_color_do_pop \popcolor
-
-\let\math_fenced_color_push\donothing
-\let\math_fenced_color_pop \donothing
+\def\math_fenced_p_middle
+ {\mathfenceparameter\c!middle}%
+
+\def\math_fenced_p_right
+ {\ifconditional\c_math_fenced_mirror
+ \ifconditional\c_math_right_to_left
+ \mathfenceparameter\c!left
+ \else
+ \mathfenceparameter\c!right
+ \fi
+ \else
+ \mathfenceparameter\c!right
+ \fi}
\aliased\let\fence \relax
\aliased\let\fenced\relax
-\newcount\c_math_fenced_nesting
-
\protected\def\math_fenced_fenced_common
{\startusemathstyleparameter\mathfenceparameter\c!mathstyle
- \enforced\let\fence\math_fenced_middle
- \edef\p_math_fenced_color{\mathfenceparameter\c!color}%
- \ifempty\p_math_fenced_color
- \let\math_fenced_color_push\donothing
- \let\math_fenced_color_pop \donothing
- \else
- \let\math_fenced_color_push\math_fenced_color_do_push
- \let\math_fenced_color_pop \math_fenced_color_do_pop
- \fi}
+ \enforced\let\fence\math_fenced_middle}
\protected\def\math_fenced_fenced_start#1%
- {\advance\c_math_fenced_nesting\plusone
- \begingroup
+ {\begingroup
+ %{\beginmathgroup
\edef\currentmathfence{#1}%
\math_fenced_fenced_common
\math_fenced_left}
@@ -224,15 +252,19 @@
{\edef\currentmathfence{#1}%
\math_fenced_right
\stopusemathstyleparameter
- \endgroup
- \advance\c_math_fenced_nesting\minusone}
+ \endgroup}
+ %\endmathgroup}
-\tolerant\protected\def\math_fenced_fenced[#1]#*[#2]%
- {\advance\c_math_fenced_nesting\plusone
- \begingroup
- \edef\currentmathfence{#1}%
+\installlocalcurrenthandler \??mathfences {mathfence}
+
+\tolerant\protected\def\math_fenced_fenced#1#*[#2]%
+ {\begingroup
+ %{\beginmathgroup
+ \setlocalmathfencecurrent{#1}% \edef\currentmathfence{#1}%
% under test:
+ \setfalse\c_math_fenced_level_mode
\c_attr_mathsize\attributeunsetvalue
+ %
\letmathfenceparameter\c!size\empty
\letmathfenceparameter\c!factor\v!auto
% so far
@@ -250,8 +282,8 @@
\protected\def\math_fenced_fenced_indeed_finish
{\stopusemathstyleparameter
- \endgroup
- \advance\c_math_fenced_nesting\minusone}
+ \endgroup}
+ %\endmathgroup}
\protected\def\math_fenced_fenced_indeed_fixed#1%
{\math_fenced_force_size\bigmathdelimitervariant\p_size
@@ -272,10 +304,81 @@
\math_fenced_right
\math_fenced_fenced_indeed_finish}
+\protected\def\math_fenced_direct[#1]%
+ {\math_fenced_fenced{#1}}
+
\appendtoks
- \enforced\let\fenced\math_fenced_fenced
+ \enforced\let\fenced\math_fenced_direct
\to \everymathematics
+%D This is new:
+%D
+%D \starttyping
+%D $ \F0 \left( x + \F1 \left( x \right) + x \right) $
+%D $
+%D \F0 \left( x + \F1 \left( x + \F2 \left( x + \F3 \left( x + \F4 \left( x +
+%D 2
+%D + x \right) + x \right) + x \right) + x \right) + x \right)
+%D $
+%D $ \F1 \left( x + \F1 \left( x \right) + x \right) $
+%D $ \F3 \left( x + \F1 \left( x \right) + x \right) $
+%D $ \F1 \left( x + \F4 \left( x \right) + x \right) $
+%D $ \F4 \left( x + \F- \left( x \right) + x \right) $
+%D $ \F4
+%D \left( 1 +
+%D \F- \left( 2 +
+%D \F* \left( 3 +
+%D 4
+%D \right)
+%D + 5 +
+%D \F- \left( 6 +
+%D 7
+%D \right)
+%D \right)
+%D + 8
+%D \right)
+%D $
+%D \stoptyping
+%D
+%D \starttyping
+%D \startTEXpage[offset=1dk,width=20dk]
+%D \ruledhbox{$ \F3 \left( 1 + \F2 \left( a + b \right) + \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \F3 \left( 1 + \F0 \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \F3 \left( 1 + \F= \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \F4 \left( 1 + \fenced[parenthesis]{a + b} \right) $}\par
+%D \ruledhbox{$ \F3 \left( 1 + \F- \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \left( \frac{1}{1+x} \right) $}\par
+%D \ruledhbox{$ \left( \frac{1}{1+x} \right) $}\par
+%D \stopTEXpage
+%D \stoptyping
+
+\newcount \c_math_fenced_level
+\newconditional\c_math_fenced_level_mode
+
+\integerdef\c_math_fenced_stack \zerocount
+
+\installmacrostack \c_math_fenced_stack
+
+\installcorenamespace{fencelevels}
+\installcorenamespace{fencestack}
+
+\defcsname\??fencelevels+\endcsname{\advance\c_math_fenced_level\plusone }
+\defcsname\??fencelevels-\endcsname{\advance\c_math_fenced_level\minusone }
+\defcsname\??fencelevels=\endcsname {\c_math_fenced_level\zerocount}
+
+\letcsname\??fencelevels*\endcsname\donothing
+
+\permanent\protected\def\F#1%
+ {\settrue\c_math_fenced_level_mode
+ \ifchknum#1\or
+ \c_math_fenced_level#1\relax
+ \orelse\ifcsname\??fencelevels#1\endcsname
+ \lastnamedcs
+ \else
+ \c_math_fenced_level\zerocount
+ \fi
+ \math_fenced_force_size\bigmathdelimitervariant\c_math_fenced_level\relax}
+
% integral experiment (but no scripts)
%
% \protected\def\math_fenced_fenced_simple#1%
@@ -420,7 +523,7 @@
\popoverloadmode
-\let\leftorright\relax
+% \let\leftorright\relax
\newconditional\c_math_fenced_done
\newconditional\c_math_fenced_unknown \settrue\c_math_fenced_unknown
@@ -620,12 +723,6 @@
%D As we have overloaded \type {\left} and \type {\right} we also need a more
%D clever version of the following:
-% methods:
-%
-% 1: none
-% 2: lua
-% 3: tex
-
% variants:
%
% 1: step 1
@@ -633,85 +730,35 @@
% 3: htdp * 1.33^n
% 4: size * 1.33^n
-\setnewconstant\bigmathdelimitermethod \plustwo % \plusone
\setnewconstant\bigmathdelimitervariant\plusthree
\appendtoks
- \bigmathdelimitermethod \mathfenceparameter\c!method\relax
- \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax
+ \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax % controls lua
\to \everysetupmathfence
-\setupmathfence[\c!method=1,\c!alternative=1]
+\setupmathfence[\c!alternative=1] % or 5
-% \protected\def\plainbigdelimiters % traditional method
-% {\bigmathdelimitermethod\plustwo}
-%
-% \plainbigdelimiters % is default for the moment but not so nice
-
-\installcorenamespace{mathbig}
+\permanent\protected\def\choosemathbig
+ {\mathortext\math_choosemathbig_math\math_choosemathbig_text}
-\defcsname\??mathbig1\endcsname{0.85}
-\defcsname\??mathbig2\endcsname{1.15}
-\defcsname\??mathbig3\endcsname{1.45}
-\defcsname\??mathbig4\endcsname{1.75}
+\protected\def\math_choosemathbig_math#1#2% so we accept \big{||} as well
+ {\math_fenced_force_size\bigmathdelimitervariant{#1}\relax
+ \Uvextensible#2\relax
+ \c_attr_mathsize\attributeunsetvalue}
-\permanent\protected\def\choosemathbig#1#2% so we accept \big{||} as well
- {{\naturalhbox\bgroup
+\protected\def\math_choosemathbig_text#1#2% so we accept \big{||} as well
+ {\naturalhbox\bgroup
\startimath
- \ifcase\bigmathdelimitermethod
- \math_fenced_step#2\relax
- \or
- \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
- \math_fenced_step#2\relax
- \else
- \math_fenced_step#2{\vpack to\csname\??mathbig#1\endcsname\bodyfontsize{}}%
- \fi
- \nulldelimiterspace\zeropoint\relax
+ \math_choosemathbig_math{#1}{#2}%
+ \nulldelimiterspace\zeropoint
\mathsurround\zeropoint
\stopimath
- \egroup}}
-
-% needs testing:
-%
-% \protected\def\choosemathbig#1#2% so we accept \big{||} as well
-% {{\naturalhbox\bgroup
-% \startimath
-% \ifcase\bigmathdelimitermethod
-% \Uvextensible#2\relax
-% \or
-% \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
-% \Uvextensible#2\relax
-% \else
-% \scratchdimen.5\dimexpr\csname\??mathbig\number#1\endcsname\bodyfontsize+1.1\exheight\relax
-% \Uvextensible\s!axis \s!depth \scratchdimen \s!height \scratchdimen #2\relax
-% \fi
-% \nulldelimiterspace\zeropoint\relax
-% \mathsurround\zeropoint
-% \stopimath
-% \egroup}}
-
-\def\math_fenced_step#1#2%
- {\setfalse\c_math_fenced_unknown
- \setfalse\c_math_fenced_done
- \left#1\relax
- \ifconditional\c_math_fenced_done
- #2%
- \right.\relax
- \else
- \left.\relax
- #2%
- \setfalse\c_math_fenced_done
- \right#1\relax
- \ifconditional\c_math_fenced_done
- \else
- \right.\relax
- \fi
- \fi}
+ \egroup}
-\permanent\protected\def\mathdelimiterstep#1#2% not used
+\permanent\protected\def\mathdelimiterstep#1#2% not used, only in example
{\begingroup
\math_fenced_force_size\plusone{#1}%
- \math_fenced_step#2\relax
+ \Uvextensible#2\relax
\endgroup}
\definemathcommand [big] {\choosemathbig1}
@@ -779,6 +826,7 @@
\permanent\protected\def\enableautofences
{\clf_enableautofences
+ \setfalse\c_math_fences_auto
\glet\clf_enableautofences\relax % onlyonce anyway
\enforced\permanent\protected\gdef\enableautofences{\settrue\c_math_fences_auto}%
\enableautofences}
@@ -865,4 +913,79 @@
\immutable\Umathchardef\bracelu\zerocount \zerocount "FF07C
\immutable\Umathchardef\braceru\zerocount \zerocount "FF07D
+%D Some tracing:
+
+\definefont[mathindexfont][Mono sa .2]
+
+\def\math_fenced_trace_indeed
+ {%
+ \beginlocalcontrol
+ \registerboxanchor
+ \registeranchorbox
+ \registeredboxanchor
+ \plusone
+ \hbox
+ \s!anchors \boxanchorpresetcode{depth} \boxanchorpresetcode{height}
+ \s!yoffset -.1\exheight
+ \s!target \registeredboxanchor
+ \s!to \zeropoint
+ {\darkblue\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting}\hss}%
+ \endlocalcontrol
+ \s!source \registeredboxanchor
+ }
+
+% \def\math_fenced_trace_indeed
+% {%
+% \beginlocalcontrol
+% \registerboxanchor
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{depth} \boxanchorpresetcode{height}
+% \s!yoffset -.1\exheight
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkblue\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting B}\hss}%
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{height} \boxanchorpresetcode{depth}
+% \s!yoffset .1\exheight
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkgreen\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting T}\hss}%
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{left} \boxanchorpresetcode{right}
+% \s!xoffset -.1\emwidth
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkred\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting L}}%
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{right} \boxanchorpresetcode{left}
+% \s!xoffset .1\emwidth
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkyellow\mathindexfont\ruledhbox{\number\c_math_fence_nesting R}\hss}%
+% \endlocalcontrol
+% \s!source \registeredboxanchor
+% }
+
+\installtextracker
+ {math.fencenesting}
+ {\let\math_fenced_trace\math_fenced_trace_indeed}
+ {\let\math_fenced_trace\donothing}
+
+\appendtoks
+ \integerdef\c_math_fence_level\minusone
+ \c_math_fence_nesting\zerocount
+\to \everymathematics
+
\protect
diff --git a/tex/context/base/mkxl/math-frc.lmt b/tex/context/base/mkxl/math-frc.lmt
index c82b8387d..c2ae2fbd5 100644
--- a/tex/context/base/mkxl/math-frc.lmt
+++ b/tex/context/base/mkxl/math-frc.lmt
@@ -6,73 +6,62 @@ if not modules then modules = { } end modules ['math-frc'] = {
license = "see context related readme files"
}
-local utfchar = utf.char
-
-local context = context
-local variables = interfaces.variables
-
-local v_no = variables.no
-local v_yes = variables.yes
-local v_hidden = variables.hidden
-
-local resolved = {
- [0x007B] = "\\{",
- [0x007D] = "\\}",
-}
-
-table.setmetatableindex(resolved, function(t,k)
- local v = utfchar(k)
- t[k] = v
- return v
-end)
-
-local ctx_Uatop = context.Uatop
-local ctx_Uover = context.Uover
-
--- local function umathfraction(how,style,left,right,width)
--- style = tonumber(style) -- or nil
+-- obsolete
+--
+-- \def\math_frac_command_u
+-- {\clf_umathfraction % we can get this bakc to the tex end
+-- {\mathfractionparameter\c!rule}%
+-- \ifempty\p_math_fraction_fences
+-- \mathfractionparameter\c!left \space
+-- \mathfractionparameter\c!right\space
+-- \else
+-- \math_frac_no_delim\space
+-- \math_frac_no_delim\space
+-- \fi
+-- \dimexpr\mathfractionparameter\c!rulethickness\relax
+-- {\number\namedboxanchor{\mathfractionparameter\c!source}}%
+-- \relax}
+--
+-- local utfchar = utf.char
+--
+-- local context = context
+-- local variables = interfaces.variables
+--
+-- local v_no = variables.no
+-- local v_yes = variables.yes
+-- local v_hidden = variables.hidden
+--
+-- local resolved = {
+-- [0x007B] = "\\{",
+-- [0x007D] = "\\}",
+-- }
+--
+-- table.setmetatableindex(resolved, function(t,k)
+-- local v = utfchar(k)
+-- t[k] = v
+-- return v
+-- end)
+--
+-- local function umathfraction(how,left,right,width,source)
+-- source = tonumber(source) or 0
-- if how == v_no then
-- if left == 0x002E and right == 0x002E then
--- if style then
--- context("\\Uatop style %i",style)
--- else
--- ctx_Uatop()
--- end
+-- context("\\Uatop source %i ",source)
-- else
--- if style then
--- context("\\Uatopwithdelims style %i %s%s",style,resolved[left],resolved[right])
--- else
--- context("\\Uatopwithdelims%s%s",resolved[left],resolved[right])
--- end
+-- context("\\Uatopwithdelims %s%s source %i ",resolved[left],resolved[right],source)
-- end
-- elseif how == v_yes or how == v_hidden then
--- local norule = how == v_hidden and " norule " or ""
--- if style then
--- if left == 0x002E and right == 0x002E then
--- context("\\Uabove style %i %s%ssp",style,norule,width)
--- else
--- context("\\Uabovewithdelims style %i %s%s%s%ssp",style,norule,resolved[left],resolved[right],width)
--- end
+-- local norule = how == v_hidden and "norule" or ""
+-- if left == 0x002E and right == 0x002E then
+-- context("\\Uabove source %i %s %ssp",source,norule,width)
-- else
--- if left == 0x002E and right == 0x002E then
--- context("\\Uabove%s%ssp",norule,width)
--- else
--- context("\\Uabovewithdelims%s%s%s%ssp",norule,resolved[left],resolved[right],width)
--- end
+-- context("\\Uabovewithdelims %s%s source %i %s %ssp",resolved[left],resolved[right],source,norule,width)
-- end
-- else -- v_auto
-- if left == 0x002E and right == 0x002E then
--- if style then
--- context("\\Uover style %i",style)
--- else
--- ctx_Uover()
--- end
+-- context("\\Uover source %i ",source)
-- else
--- if style then
--- context("\\Uoverwithdelims style %i %s%s",style,resolved[left],resolved[right])
--- else
--- context("\\Uoverwithdelims%s%s",resolved[left],resolved[right])
--- end
+-- context("\\Uoverwithdelims %s%s source %i ",resolved[left],resolved[right],source)
-- end
-- end
-- end
@@ -80,35 +69,6 @@ local ctx_Uover = context.Uover
-- interfaces.implement {
-- name = "umathfraction",
-- actions = umathfraction,
--- arguments = { "string", "string", "number", "number", "dimen" }
+-- protected = true,
+-- arguments = { "string", "number", "number", "dimen", "string" }
-- }
-
-local function umathfraction(how,left,right,width)
- if how == v_no then
- if left == 0x002E and right == 0x002E then
- ctx_Uatop()
- else
- context("\\Uatopwithdelims%s%s",resolved[left],resolved[right])
- end
- elseif how == v_yes or how == v_hidden then
- local norule = how == v_hidden and " norule " or ""
- if left == 0x002E and right == 0x002E then
- context("\\Uabove %s%ssp",norule,width)
- else
- context("\\Uabovewithdelims %s%s%s%ssp",norule,resolved[left],resolved[right],width)
- end
- else -- v_auto
- if left == 0x002E and right == 0x002E then
- ctx_Uover()
- else
- context("\\Uoverwithdelims%s%s",resolved[left],resolved[right])
- end
- end
-end
-
-interfaces.implement {
- name = "umathfraction",
- actions = umathfraction,
- protected = true,
- arguments = { "string", "number", "number", "dimen" }
-}
diff --git a/tex/context/base/mkxl/math-frc.mkxl b/tex/context/base/mkxl/math-frc.mkxl
index 8835ea997..6e41ee71e 100644
--- a/tex/context/base/mkxl/math-frc.mkxl
+++ b/tex/context/base/mkxl/math-frc.mkxl
@@ -31,11 +31,10 @@
%D \macros
%D {frac, xfrac, xxfrac}
%D
-%D This is another one Tobias asked for. It replaces the primitive \type
-%D {\over}. We also take the opportunity to handle math style restoring,
-%D which makes sure units and chemicals come out ok. The \type {\frac}
-%D macro kind of replaces the awkward \type {\over} primitive. Say that
-%D we have the following formulas:
+%D This is another one Tobias asked for. It replaces the primitive \type {\over}. We
+%D also take the opportunity to handle math style restoring, which makes sure units
+%D and chemicals come out ok. The \type {\frac} macro kind of replaces the awkward
+%D \type {\over} primitive. Say that we have the following formulas:
%D
%D \startbuffer[sample]
%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
@@ -78,23 +77,8 @@
%D So we stick to the next definitions (watch the local overloading of
%D \type {\xfrac}).
%D
-%D In the meantime, in \LUATEX, we have better control over styles so the
-%D following macros are different from the \MKII\ ones.
-
-% obsolete, is now c!mathstyle
-%
-% 0=auto, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle, 5=mathstyle
-%
-% $\mathfracmode0 \frac{1}{2}$
-% $\mathfracmode1 \frac{1}{2}$
-% $\mathfracmode2 \frac{1}{2}$
-% $\mathfracmode3 \frac{1}{2}$
-% $\mathfracmode4 \frac{1}{2}$
-% $\mathfracmode5 \frac{1}{2}$
-%
-% we keep the constant for a while
-
-\setnewconstant\mathfracmode\zerocount
+%D In the meantime, in \LUATEX, we have better control over styles so the following
+%D macros are different from the \MKII\ ones.
\installcorenamespace{mathfractions}
\installcorenamespace{mathfractionstyle}
@@ -108,16 +92,22 @@
\setupmathfractions
[\c!mathstyle=,
+ \c!method=\v!vertical,
\c!mathnumeratorstyle=\mathfractionparameter\c!mathstyle,
\c!mathdenominatorstyle=\mathfractionparameter\c!mathstyle,
\c!alternative=\v!inner,
\c!margin=\zeropoint,
- \c!rulethickness=.25\exheight,
- \c!left=0x2E,
- \c!right=0x2E,
+ % \c!rulethickness=.1\exheight, % was .25 for above / atop
+ \c!rulethickness=\v!font,
+ \c!left="2E,
+ \c!right="2E,
+ \c!middle="2F,
\c!strut=\v!yes,
\c!topdistance=,
\c!bottomdistance=,
+ \c!source=\zerocount,
+ \c!hfactor=\plusthousand,
+ \c!vfactor=\plusthousand,
\c!rule=\v!auto]
\appendtoks
@@ -207,10 +197,14 @@
%D $\frac {2}{3} ^4$ % we wrap in \mathfrac so we can also use prescripts
%D \stoptyping
-\protected\def\math_frac#1%
- %{\begingroup
+\installlocalcurrenthandler\??mathfractions {mathfraction}
+
+\tolerant\protected\def\math_frac#1#*[#2]%%
{\mathfrac\bgroup
- \edef\currentmathfraction{#1}%
+ %
+ \setlocalmathfractioncurrent{#1}% \edef\currentmathfraction{#1}%
+ %
+ \ifparameter#2\or\setupcurrentmathfraction[#2]\fi
%
\edef\p_math_fraction_fences{\mathfractionparameter\c!fences}%
\ifempty\p_math_fraction_fences \else
@@ -224,8 +218,6 @@
\let\math_fraction_margin_kern\math_fraction_margin_kern_indeed
\fi
%
- \edef\p_math_fractions_color{\mathfractionparameter\c!color}%
- %
\edef\p_math_fractions_strut{\mathfractionparameter\c!strut}%
\ifcsname\??mathfractionstrut\p_math_fractions_strut\endcsname
\lastnamedcs
@@ -233,30 +225,15 @@
\math_frac_no_strut
\fi
%
- \ifempty\p_math_fractions_color
- \expandafter\math_frac_normal
- \else
- \expandafter\math_frac_colored
- \fi}
+ \expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
\protected\def\math_frac_wrapup
{\ifempty\p_math_fraction_fences \else
\math_fenced_fenced_stop\p_math_fraction_fences
\fi
- % \endgroup}
\egroup}
-\protected\def\math_frac_colored#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- \math_frac_normal{\restorecolor#1}{\restorecolor#2}}
-
-\protected\def\math_frac_normal
- {\expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
-
-% we use utfchar anyway so we can as well do all at the lua end
-
-\def\math_frac_no_delim{0x2E}
+\integerdef\math_frac_no_delim "2E % or just \zerocount
% Having a \withmarginornot{#1}{#2} makes not much sense nor do 4 tests or 4 redundant
% kerns (longer node lists plus possible interference). A split in normal and margin
@@ -268,33 +245,90 @@
% See \MKIV\ for the old (more messy) implementation where we have to fight the over
% related syntax (we now use a lmtx primitive).
-% {\ifcstok{#1}\emptytoks\else\tomathstyle#1\fi}%
-%
-% {\expandedmathstyleparameter\mathfractionparameter\c!mathstyle}%
-
% timestamp: 01/2022 : (re)watching eNerd⁴ - Time Capsule 2020 a.k.a. Farewell Party
% for Normalcy (UHD) with the soekris/neumanns combination
+\installcorenamespace{fractionmethods}
+
+\defcsname\??fractionmethods\v!vertical \v!no \v!none\endcsname{\Uatop}
+\defcsname\??fractionmethods\v!vertical \v!no \endcsname{\Uatopwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!vertical \v!yes \v!none\endcsname{\Uabove}
+\defcsname\??fractionmethods\v!vertical \v!yes \endcsname{\Uabovewithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!vertical \v!hidden\v!none\endcsname{\Uabove
+ norule}
+\defcsname\??fractionmethods\v!vertical \v!hidden \endcsname{\Uabovewithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo
+ norule}
+\defcsname\??fractionmethods\v!vertical \v!auto \v!none\endcsname{\Uover}
+\defcsname\??fractionmethods\v!vertical \v!auto \endcsname{\Uoverwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!horizontal \v!none\endcsname{\Uskewed
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+\defcsname\??fractionmethods\v!horizontal \endcsname{\Uskewedwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+\defcsname\??fractionmethods\v!line \v!none\endcsname{\Uskewed
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!noaxis \space
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+\defcsname\??fractionmethods\v!line \endcsname{\Uskewedwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!noaxis \space
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+
\def\math_frac_command_u
- {\clf_umathfraction
- {\mathfractionparameter\c!rule}%
- \ifempty\p_math_fraction_fences
- \mathfractionparameter\c!left \space
- \mathfractionparameter\c!right\space
- \else
- \math_frac_no_delim\space
- \math_frac_no_delim\space
- \fi
- \dimexpr\mathfractionparameter\c!rulethickness\relax
- \relax}
+ {\edef\p_method {\mathfractionparameter\c!method}%
+ \edef\p_rule {\mathfractionparameter\c!rule}%
+ \edef\p_thickness{\mathfractionparameter\c!rulethickness}%
+ \scratchcounterone \mathfractionparameter\c!left \relax
+ \scratchcountertwo \mathfractionparameter\c!right \relax
+ \scratchcounterthree \mathfractionparameter\c!middle \relax
+ \csname
+ \??fractionmethods
+ \p_method
+ \ifx\p_method\v!horizontal
+ \orelse\ifx\p_method\v!line
+ \orelse\ifcsname\??fractionmethods\p_method\p_rule\endcsname
+ \p_rule
+ \else
+ \v!auto
+ \fi
+ \ifnum\scratchcounterone=\math_frac_no_delim
+ \ifnum\scratchcountertwo=\math_frac_no_delim
+ \v!none
+ \fi
+ \fi
+ \endcsname
+ \usedcolorparameterattributes{\mathfractionparameter\c!color}%
+ thickness \ifx\p_thickness\v!font
+ \zeropoint
+ \s!font \space
+ \else
+ \dimexpr\p_thickness\relax
+ \fi
+ \s!vfactor \numexpr\mathfractionparameter\c!vfactor\relax
+ \s!source \number\namedboxanchor{\mathfractionparameter\c!source}}
\protected\defcsname\??mathfractionalternative\v!inner\endcsname#1#2%
{\math_frac_command_u
- {\math_fraction_margin_kern
+ {\dousecolorparameter{\mathfractionparameter\c!topcolor}%
+ \math_fraction_margin_kern
\usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle
\m_fractions_strut_top#1%
\math_fraction_margin_kern}%
- {\math_fraction_margin_kern
+ {\dousecolorparameter{\mathfractionparameter\c!bottomcolor}%
+ \math_fraction_margin_kern
\usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle
\m_fractions_strut_bot#2%
\math_fraction_margin_kern}%
@@ -304,10 +338,12 @@
{\beginmathgroup
\usemathstyleparameter\mathfractionparameter\c!mathstyle
\math_frac_command_u
- {\math_fraction_margin_kern
+ {\dousecolorparameter{\mathfractionparameter\c!topcolor}%
+ \math_fraction_margin_kern
\m_fractions_strut_top#1%
\math_fraction_margin_kern}%
- {\math_fraction_margin_kern
+ {\dousecolorparameter{\mathfractionparameter\c!bottomcolor}%
+ \math_fraction_margin_kern
\m_fractions_strut_bot#2%
\math_fraction_margin_kern}%
\endmathgroup
@@ -317,11 +353,13 @@
{\beginmathgroup
\usemathstyleparameter\mathfractionparameter\c!mathstyle
\math_frac_command_u
- {\math_fraction_margin_kern
+ {\dousecolorparameter{\mathfractionparameter\c!topcolor}%
+ \math_fraction_margin_kern
\usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle
\m_fractions_strut_top#1%
\math_fraction_margin_kern}%
- {\math_fraction_margin_kern
+ {\dousecolorparameter{\mathfractionparameter\c!bottomcolor}%
+ \math_fraction_margin_kern
\usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle
\m_fractions_strut_bot#2%
\math_fraction_margin_kern}%
@@ -339,10 +377,8 @@
%D Spacing (sensitive for definition of \triggermathstyle:
-% \ifcase\contextlmtxmode
-
-\permanent\protected\def\nomathfractiongaps {\normalexpanded{\math_no_fraction_gaps \mathstyletrigger\mathstyle}} % maybe collect settings
-\permanent\protected\def\overlaymathfractiongaps{\normalexpanded{\math_overlay_fraction_gaps\mathstyletrigger\mathstyle}} % maybe collect settings
+\permanent\protected\def\nomathfractiongaps {\normalexpanded{\math_no_fraction_gaps \allmathstyles}}
+\permanent\protected\def\overlaymathfractiongaps{\normalexpanded{\math_overlay_fraction_gaps\allmathstyles}}
\protected\def\math_no_fraction_gaps#1%
{\Umathfractionnumup #1\zeropoint
@@ -351,25 +387,9 @@
\protected\def\math_overlay_fraction_gaps#1%
{\Umathfractionnumup #1\zeropoint
\Umathfractionnumvgap #1\zeropoint
- %Umathfractionrule #1\zeropoint
\Umathfractiondenomvgap#1\zeropoint
\Umathfractiondenomdown#1\zeropoint}
-% \else
-
-% \protected\def\math_no_fraction_gaps
-% {\Umathfractionnumup \mathstyle\zeropoint
-% \Umathfractiondenomdown\mathstyle\zeropoint}
-%
-% \protected\def\math_overlay_fraction_gaps
-% {\Umathfractionnumup \mathstyle\zeropoint
-% \Umathfractionnumvgap \mathstyle\zeropoint
-% %Umathfractionrule \mathstyle\zeropoint
-% \Umathfractiondenomvgap\mathstyle\zeropoint
-% \Umathfractiondenomdown\mathstyle\zeropoint}
-
-% \fi
-
\installcorenamespace{mathfractiondistance}
\letcsname\??mathfractiondistance\v!none \endcsname\nomathfractiongaps
@@ -379,6 +399,8 @@
\setupmathfractions
[\c!distance=\v!none]
+% we need to keep it local, so not everybodyfont
+
\appendtoks
\edef\p_distance{\rootmathfractionparameter\c!distance}%
\ifempty\p_distance\else
@@ -427,6 +449,17 @@
{\edef\p_threshold{\mathfractionparameter\c!displaythreshold}%
\Umathfractiondelsize\displaystyle \p_threshold\dimexpr\textface\relax}
+%D This is a variant
+
+\setupmathfractions
+ [%\c!inlinethreshold=.25, % no unit but fraction
+ %\c!displaythreshold=.25, % no unit but fraction
+ \c!threshold=.5\exheight] % wrong name, better is margin or offset or so
+
+\appendtoks
+ \Umathskeweddelimitertolerance\allmathstyles\mathfractionparameter\c!threshold
+\to \everymathematics % else original lost: \to \everybodyfont
+
%D \macros
%D {dfrac, tfrac, frac, dbinom, tbinom, binom}
%D
@@ -456,7 +489,7 @@
\definemathfraction[i:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display]
\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped]
-\definemathfraction[d:tfrac][\c!alternative=\v!both,\c!mathstyle={\s!cramped,\s!script}]
+\definemathfraction[d:tfrac][\c!alternative=\v!inner,\c!mathstyle={\s!cramped,\s!script}]
\definemathfraction[d:sfrac][\c!alternative=\v!both,\c!mathstyle={\s!cramped,\s!scriptscript}]
\definemathfraction[d:dfrac][\c!alternative=\v!both,\c!mathstyle=\s!display]
@@ -488,12 +521,6 @@
\permanent\protected\def\ctxfrac{\csname\inlineordisplaymath id:frac\endcsname}
\permanent\protected\def\amsfrac{\csname\inlineordisplaymath id:ams:frac\endcsname}
-% \appendtoks
-% \doifelse{\mathfractionparameter\c!option}{ams}%
-% {\let\frac\amsfrac}%
-% {\let\frac\ctxfrac}%
-% \to \everysetupmathfraction
-
\appendtoks
\doifelse{\mathematicsparameter\c!fractions}{ams}%
{\enforced\let\frac\amsfrac}%
@@ -508,22 +535,50 @@
% \protected\def\dbinom#1#2{{\displaystyle{{#1}\normalabovewithdelims()\zeropoint{#2}}}}
% \protected\def\tbinom#1#2{{\textstyle {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+% \definemathfraction
+% [binom]
+% [\c!alternative=\v!outer,
+% \c!rule=\v!no,
+% \c!left="28,
+% \c!right="29,
+% \c!mathstyle=\s!auto]
+%
+% \definemathfraction
+% [dbinom]
+% [binom]
+% [\c!mathstyle=\s!display]
+%
+% \definemathfraction
+% [tbinom]
+% [binom]
+% [\c!mathstyle=\s!text]
+
\definemathfraction
- [binom]
- [\c!alternative=\v!outer,
- \c!rule=\v!no,
- \c!left=0x28,
- \c!right=0x29,
- \c!mathstyle=\s!auto]
+ [d:binom]
+ [d:frac]
+ [\c!rule=\v!no,
+ % \c!mathstyle=\s!display,
+ \c!left="28,
+ \c!right="29]
+
+\definemathfraction
+ [i:binom]
+ [i:frac]
+ [\c!rule=\v!no,
+ %\c!mathstyle=\s!text,
+ \c!left="28,
+ \c!right="29]
+
+\permanent\protected\def\binom {\csname\inlineordisplaymath id:binom\endcsname}
\definemathfraction
[dbinom]
- [binom]
+ [d:binom]
[\c!mathstyle=\s!display]
\definemathfraction
[tbinom]
- [binom]
+ [i:binom]
[\c!mathstyle=\s!text]
%D \macros
@@ -570,8 +625,8 @@
%D \macros
%D {splitfrac, splitdfrac}
%D
-%D Occasionally one needs to typeset multi||line fractions.
-%D These commands use \tex{genfrac} to create such fractions.
+%D Occasionally one needs to typeset multi||line fractions. These commands use \type
+%D {\genfrac} to create such fractions.
%D
%D \startbuffer
%D \startformula
@@ -590,54 +645,59 @@
%D
%D \typebuffer \getbuffer
%D
-%D These macros are based on Michael J.~Downes posting on
-%D comp.text.tex on 2001/12/06 but adapted a bit.
+%D These macros are based on Michael J.~Downes posting on comp.text.tex on 2001/12/06
+%D but adapted a bit.
+%D
+%D Does anyone actually use this kinf of stuff?
\permanent\protected\def\splitfrac #1#2{{\textstyle {{\textstyle#1\quad\hfill}\normalabove\zeropoint{\textstyle\hfill\quad\mathstrut#2}}}}
\permanent\protected\def\splitdfrac#1#2{{\displaystyle{{ #1\quad\hfill}\normalabove\zeropoint{ \hfill\quad\mathstrut#2}}}}
-%D For testing:
+%D More fracking (for Alan):
-% \protected\def\ShowMathFractions#1#2%
-% {\mathematics{x+\tfrac{#1}{#2}+1+\frac{#1}{#2}+2+\sfrac{#1}{#2}+g}}
+% \appendtoks
+% \Umathskewedfractionhgap\allmathstyles\namedmathfractionparameter\s!vfrac\c!hfactor\fontemwidth \mathstylefont\textstyle
+% \Umathskewedfractionvgap\allmathstyles\namedmathfractionparameter\s!vfrac\c!vfactor\fontexheight\mathstylefont\textstyle
+% \to \everymathematics
-%D More fracking (for Alan):
+\definemathfraction
+ [\v!horizontal]
+ [\c!method=\v!horizontal]
-\protected\def\math_frac_colored_vulgar#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- {\restorecolor#1}\Uskewed/{\restorecolor#2}}
+\definemathfraction
+ [\s!vfrac]
+ [\v!horizontal]
+ [\c!hfactor=20,
+ \c!vfactor=10]
-\protected\def\math_frac_normal_vulgar#1#2%
- {{#1}\Uskewed/{#2}}
+%D For Mikael Sundqvist who found out that most inline fractions look real bad:
-\permanent\protected\def\vfrac#1#2%
- {\bgroup
- \edef\p_math_fractions_color{\namedmathfractionparameter\s!vfrac\c!color}%
- \ifempty\p_math_fractions_color
- \expandafter\math_frac_normal_vulgar
- \else
- \expandafter\math_frac_colored_vulgar
- \fi
- {#1}%
- {#2}%
- \egroup}
+\pushoverloadmode
-\appendtoks
- \edef\p_hfactor{\namedmathfractionparameter\s!vfrac\c!hfactor}%
- \edef\p_vfactor{\namedmathfractionparameter\s!vfrac\c!vfactor}%
- \Umathskewedfractionhgap\textstyle \p_hfactor\fontemwidth \mathstylefont\textstyle
- \Umathskewedfractionhgap\scriptstyle \p_hfactor\fontemwidth \mathstylefont\scriptstyle
- \Umathskewedfractionhgap\scriptscriptstyle\p_hfactor\fontemwidth \mathstylefont\scriptscriptstyle
- \Umathskewedfractionvgap\textstyle \p_vfactor\fontexheight\mathstylefont\textstyle
- \Umathskewedfractionvgap\scriptstyle \p_vfactor\fontexheight\mathstylefont\scriptstyle
- \Umathskewedfractionvgap\scriptscriptstyle\p_vfactor\fontexheight\mathstylefont\scriptscriptstyle
-\to \everysetupmathfraction
+%ifdefined\d \let\text_d\d \else \let\text_d\firstofoneargument \fi
+\ifdefined\f \let\text_f\f \else \let\text_f\firstofoneargument \fi
-\setupmathfraction
- [\s!vfrac]
- [\c!hfactor=.2,
- \c!vfactor=.1]
+\definemathfraction
+ [f]
+ [\c!strut=\v!math]
+
+% \definemathfraction
+% [d]
+% [\c!method=\v!line,
+% \c!strut=\v!math]
+
+\aliased\let\math_f\f
+%aliased\let\math_d\d
+
+\permanent\protected\def\d{\mathortext\math_d\text_d}
+%permanent\protected\def\f{\mathortext\math_f\text_f}
+
+% \setupmathfraction
+% [%strut=math,
+% \c!hfactor=100,
+% \c!vfactor=100]
+
+\popoverloadmode
\protect \endinput
@@ -716,7 +776,7 @@
% \hss$\textstyle/$\hss
% \egroup
% \lower
-% \Umathskewedfractionvgap\textstyle
+% \Umathskewedfractionvgapskewedfractionvgap\textstyle
% \hbox\bgroup
% $\hskip\dimexpr\Umathskewedfractionhgap\textstyle/2\relax\scriptstyle#2$%
% \egroup
diff --git a/tex/context/base/mkxl/math-ini.lmt b/tex/context/base/mkxl/math-ini.lmt
index 4ac76fa62..f41170a97 100644
--- a/tex/context/base/mkxl/math-ini.lmt
+++ b/tex/context/base/mkxl/math-ini.lmt
@@ -31,6 +31,8 @@ local ctx_doifelsesomething = commands.doifelsesomething
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
+trace_defining = true
+
local report_math = logs.reporter("mathematics","initializing")
mathematics = mathematics or { }
@@ -47,86 +49,159 @@ local texsetattribute = tex.setattribute
local setmathcode = tex.setmathcode
local setdelcode = tex.setdelcode
-local families = allocate {
- mr = 0,
- mb = 1,
-}
+-- These are different from mkiv with luatex.
---- to be checked .. a few defaults in char-def that should be alpha
-
-local classes = allocate {
- ord = 0, -- mathordcomm mathord
- op = 1, -- mathopcomm mathop
- bin = 2, -- mathbincomm mathbin
- rel = 3, -- mathrelcomm mathrel
- open = 4, -- mathopencomm mathopen
- middle = 4,
- close = 5, -- mathclosecomm mathclose
- punct = 6, -- mathpunctcomm mathpunct
- alpha = 7, -- mathalphacomm firstofoneargument
- accent = 8, -- class 0
- radical = 9,
- xaccent = 10, -- class 3
- topaccent = 11, -- class 0
- botaccent = 12, -- class 0
- under = 13,
- over = 14,
- delimiter = 15,
- inner = 0, -- mathinnercomm mathinner
- nothing = 0, -- mathnothingcomm firstofoneargument
- choice = 0, -- mathchoicecomm @@mathchoicecomm
- box = 0, -- mathboxcomm @@mathboxcomm
- limop = 1, -- mathlimopcomm @@mathlimopcomm
- nolop = 1, -- mathnolopcomm @@mathnolopcomm
- --
- ordinary = 0, -- ord
- alphabetic = 7, -- alpha
- unknown = 0, -- nothing
- default = 0, -- nothing
- punctuation = 6, -- punct
- normal = 0, -- nothing
- opening = 4, -- open
- closing = 5, -- close
- binary = 2, -- bin
- relation = 3, -- rel
- fence = 0, -- unknown
- diacritic = 8, -- accent
- large = 1, -- op
- variable = 7, -- alphabetic
- number = 7, -- alphabetic
- root = 16, -- a private one
+local classes = allocate { }
+local classnames = allocate { }
+local maxengineclass = 63
+local lastengineclass = 0
+local lastprivateclass = maxengineclass
+
+for k, v in next, nodes.noadcodes do
+ if type(k) == "string"then
+ classes[k] = v
+ local n = classnames[v]
+ if not n or #k < #n then
+ classnames[v] = k
+ end
+ elseif k > lastengineclass then
+ lastengineclass = k
+ end
+end
+
+local ordinary_class = classes.ordinary
+local operator_class = classes.operator
+local binary_class = classes.binary
+local relation_class = classes.relation
+local open_class = classes.open
+local close_class = classes.close
+local punctuation_class = classes.punctuation
+local middle_class = classes.middle
+local accent_class = classes.accent
+local radical_class = classes.radical
+local fraction_class = classes.fraction
+local under_class = classes.under
+local over_class = classes.over
+local fenced_class = classes.fenced
+local ghost_class = classes.ghost
+
+classes.ord = ordinary_class
+classes.op = operator_class
+classes.bin = binary_class
+classes.rel = relation_class
+classes.opening = open_class -- will go
+classes.closing = close_class -- will go
+classes.punct = punctuation_class
+classes.frac = fraction_class
+classes.rad = radical_class
+classes.fen = fenced_class
+classes.gst = ghost_class
+
+classes.limop = operator_class
+classes.limoperator = operator_class
+classes.nolop = operator_class
+classes.nolimoperator = operator_class
+classes.large = operator_class
+classes.largeoperator = operator_class
+
+-- special in the engine : variable active inner vcenter
+
+local function registerengineclass(name,short)
+ local class = classes[name]
+ if not class then
+ if lastengineclass < maxengineclass then
+ lastengineclass = lastengineclass + 1
+ class = lastengineclass
+ classnames[class] = short or name
+ else
+ class = ordinary_class
+ end
+ classes[name] = class
+ end
+ return class
+end
+
+local explicit_class = registerengineclass("explicit","expl")
+local imaginary_class = registerengineclass("imaginary","im")
+local diferential_class = registerengineclass("differential","dif")
+local exponential_class = registerengineclass("exponential","exp")
+local function_class = registerengineclass("function","fnc")
+local digit_class = registerengineclass("digit","dig")
+local division_class = registerengineclass("division","div")
+local factorial_class = registerengineclass("factorial","fac")
+
+classes["begin"] = 62 classnames[62] = "begin"
+classes["end"] = 63 classnames[63] = "end"
+
+local function registerprivateclass(name)
+ local class = classes[name]
+ if not class then
+ lastprivateclass = lastprivateclass + 1
+ class = lastprivateclass
+ classes[name] = class
+ -- also setup
+ end
+ return class
+end
+
+local function toengineclass(class)
+ if type(class) == "string" then
+ return classes[class] or ordinary_class
+ elseif class > lastengineclass then
+ return ordinary_class
+ else
+ return class
+ end
+end
+
+implement {
+ name = "registerengineclass",
+ public = true,
+ protected = true,
+ arguments = { "optional", "optional" },
+ actions = registerengineclass,
}
-local open_class = 4
-local middle_class = 4
-local close_class = 5
-local accent_class = 8
-local radical_class = 9
-local topaccent_class = 11
-local botaccent_class = 12
-local under_class = 13
-local over_class = 14
-local delimiter_class = 15
-local root_class = 16
+local topaccent_class = registerprivateclass("topaccent")
+local botaccent_class = registerprivateclass("botaccent")
+local delimiter_class = registerprivateclass("delimiter")
+local root_class = registerprivateclass("root")
+local prime_class = registerprivateclass("prime")
local accents = allocate {
accent = true, -- some can be both
- topaccent = true, [11] = true,
- botaccent = true, [12] = true,
- under = true, [13] = true,
- over = true, [14] = true,
+ topaccent = true, [topaccent_class] = true,
+ botaccent = true, [botaccent_class] = true,
+ under = true, [under_class] = true,
+ over = true, [over_class] = true,
unknown = false,
}
+local integer_value = tokens.values.integer
+
+implement {
+ name = "mathclassvalue",
+ -- usage = "value",
+ public = true,
+ arguments = "string",
+ actions = function(name)
+ -- return integer_value, classes[name] or ordinary_class
+ context(tostring(classes[name] or ordinary_class))
+ end
+}
+
+-- used in math-tag: so there we need to make things ord etc to fit within
+-- mathml
+
local codes = allocate {
- ordinary = 0, [0] = "ordinary",
- largeoperator = 1, "largeoperator",
- binaryoperator = 2, "binaryoperator",
- relation = 3, "relation",
- openingsymbol = 4, "openingsymbol",
- closingsymbol = 5, "closingsymbol",
- punctuation = 6, "punctuation",
- variable = 7, "variable",
+ ordinary = ordinary_class, [ordinary_class] = "ordinary",
+ largeoperator = operator_class, [operator_class] = "largeoperator",
+ binaryoperator = binary_class, [binary_class] = "binaryoperator",
+ relation = relation_class, [relation_class] = "relation",
+ openingsymbol = open_class, [open_class] = "openingsymbol",
+ closingsymbol = close_class, [close_class] = "closingsymbol",
+ punctuation = punctuation_class, [punctuation_class] = "punctuation",
+ middlesymbol = middle_class, [middle_class] = "middlesymbol",
}
local extensibles = allocate {
@@ -169,61 +244,69 @@ function mathematics.virtualize(unicode,virtual)
end
end
-mathematics.extensibles = extensibles
-mathematics.classes = classes
-mathematics.codes = codes
------------.accents = codes
-mathematics.families = families
-mathematics.virtualized = virtualized
+mathematics.extensibles = extensibles
+mathematics.classes = classes
+mathematics.toengineclass = toengineclass
+mathematics.classnames = classnames
+mathematics.codes = codes
+-----------.accents = codes
+mathematics.virtualized = virtualized
do
- -- not that many so no need to reuse tables
-
local setmathcharacter = function(class,family,slot,unicode,mset,dset)
- if mset and codes[class] then -- regular codes < 7
+ if mset and class ~= ordinary_class then
setmathcode("global",slot,class,family,unicode)
mset = false
end
- if dset and class == open_class or class == close_class or class == middle_class then
+ if dset and (class == open_class or class == close_class or class == middle_class or class == division_class) then
setdelcode("global",slot,family,unicode,0,0)
dset = false
end
return mset, dset
end
- -- todo: make nice setters for this in lua
+ local function report(class,engine,family,unicode,name)
+ local nametype = type(name)
+ if nametype == "string" then
+ report_math("class %a, engine %a, family %a, char %C, name %a",class,engine,family,unicode,name)
+ elseif nametype == "number" then
+ report_math("class %a, engine %a, family %a, char %C, number %U",class,engine,family,unicode,name)
+ else
+ report_math("class %a, engine %a, family %a, char %C",class,engine,family,unicode)
+ end
+ end
- local f_accent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
- local f_topaccent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
- local f_botaccent = formatters[ [[\defUmathbotaccent \%s{%X}{%X}{%X}]] ]
- local f_over = formatters[ [[\defUdelimiterover \%s{%X}{%X}{%X}]] ]
- local f_under = formatters[ [[\defUdelimiterunder\%s{%X}{%X}{%X}]] ]
- local f_fence = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
- local f_delimiter = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
- local f_radical = formatters[ [[\defUradical \%s{%X}{%X}]] ]
- local f_root = formatters[ [[\defUroot \%s{%X}{%X}]] ]
- local f_char = formatters[ [[\defUmathchar \%s{%X}{%X}{%X}]] ]
+ local f_accent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_fixedtopaccent = formatters[ [[\defUmathfixedtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_fixedbotaccent = formatters[ [[\defUmathfixedbotaccent \%s{%X}{%X}{%X}]] ]
+ local f_topaccent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_botaccent = formatters[ [[\defUmathbotaccent \%s{%X}{%X}{%X}]] ]
+ local f_over = formatters[ [[\defUdelimiterover \%s{%X}{%X}{%X}]] ]
+ local f_under = formatters[ [[\defUdelimiterunder\%s{%X}{%X}{%X}]] ]
+ local f_fence = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
+ local f_delimiter = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
+ local f_radical = formatters[ [[\defUradical \%s{%X}{%X}]] ]
+ local f_root = formatters[ [[\defUroot \%s{%X}{%X}]] ]
+ local f_char = formatters[ [[\defUmathchar \%s{%X}{%X}{%X}]] ]
local texmathchardef = tex.mathchardef
- local setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing
+ local setmathsymbol = function(name,class,engine,family,slot,stretch) -- hex is nicer for tracing
if class == accent_class then
ctx_sprint(f_topaccent(name,0,family,slot))
elseif class == topaccent_class then
- ctx_sprint(f_topaccent(name,0,family,slot))
+ ctx_sprint((stretch and f_topaccent or f_fixedtopaccent)(name,0,family,slot))
elseif class == botaccent_class then
- ctx_sprint(f_botaccent(name,0,family,slot))
+ ctx_sprint((stretch and f_botaccent or f_fixedbotaccent)(name,0,family,slot))
elseif class == over_class then
ctx_sprint(f_over(name,0,family,slot))
elseif class == under_class then
ctx_sprint(f_under(name,0,family,slot))
elseif class == open_class or class == close_class or class == middle_class then
--- setdelcode("global",slot,{family,slot,0,0})
setdelcode("global",slot,family,slot,0,0)
- ctx_sprint(f_fence(name,class,family,slot))
+ ctx_sprint(f_fence(name,engine,family,slot))
elseif class == delimiter_class then
--- setdelcode("global",slot,{family,slot,0,0})
setdelcode("global",slot,family,slot,0,0)
ctx_sprint(f_delimiter(name,0,family,slot))
elseif class == radical_class then
@@ -231,29 +314,31 @@ do
elseif class == root_class then
ctx_sprint(f_root(name,family,slot))
elseif texmathchardef then
- texmathchardef(name,class,family,slot,"permanent")
+ texmathchardef(name,engine,family,slot,"permanent")
else
-- beware, open/close and other specials should not end up here
- ctx_sprint(f_char(name,class,family,slot))
+ ctx_sprint(f_char(name,engine,family,slot))
end
end
- local function report(class,family,unicode,name)
- local nametype = type(name)
- if nametype == "string" then
- report_math("class name %a, class %a, family %a, char %C, name %a",classname,class,family,unicode,name)
- elseif nametype == "number" then
- report_math("class name %a, class %a, family %a, char %C, number %U",classname,class,family,unicode,name)
- else
- report_math("class name %a, class %a, family %a, char %C", classname,class,family,unicode)
+ function mathematics.define()
+ if trace_defining then
+ logs.startfilelogging(report_math,"math defined from character definitions")
end
- end
-
- -- there will be a combined \(math)chardef (tracker)
-
- function mathematics.define() -- we now always use family zero
local family = 0
local data = characters.data
+ --
+ local function remap(first,last)
+ for unicode=utfbyte(first),utfbyte(last) do
+ setmathcode("global",unicode,ordinary_class,family,unicode)
+ end
+ end
+ remap("0","9")
+ remap("A","Z")
+ remap("a","z")
+ --
+ setdelcode("global",0x2E,0,0,0,0) -- period is special
+ --
for unicode, character in sortedhash(data) do
local symbol = character.mathsymbol
local mset = true
@@ -262,11 +347,11 @@ do
local other = data[symbol]
local class = other.mathclass
if class then
- class = classes[class] or class -- no real checks needed
+ local engine = toengineclass(class)
if trace_defining then
- report(class,family,unicode,symbol)
+ report(class,engine,family,unicode,symbol)
end
- mset, dset = setmathcharacter(class,family,unicode,symbol,mset,dset)
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset)
end
local spec = other.mathspec
if spec then
@@ -274,84 +359,103 @@ do
local m = spec[i]
local class = m.class
if class then
- class = classes[class] or class -- no real checks needed
- mset, dset = setmathcharacter(class,family,unicode,symbol,mset,dset)
+ local engine = toengineclass(class)
+ -- todo: trace
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset)
end
end
end
end
- local mathclass = character.mathclass
- local mathspec = character.mathspec
- if mathspec then
- if mathclass then
- local name = character.mathname
+ local class = character.mathclass
+ local spec = character.mathspec
+ local name = character.mathname
+ local stretch = character.mathstretch
+ if spec then
+ local done = false
+ if class then
if name then
report_math("fatal error, conflicting mathclass and mathspec for %C",unicode)
os.exit()
else
- local class = classes[mathclass] or mathclass -- no real checks needed
- if not class then
- if trace_defining then
- report("unknown",family,unicode)
- end
- else
- if trace_defining then
- report(class,family,unicode)
- end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
+ class = classes[class] or ordinary_class
+ local engine = toengineclass(class)
+ if trace_defining then
+ report(class,engine,family,unicode)
end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ done = true
end
end
- for i=1,#mathspec do
- local m = mathspec[i]
- local name = m.name
- local class = m.class
+ for i=1,#spec do
+ local m = spec[i]
+ local name = m.name
+ local class = m.class or class
if class then
- class = classes[class] or class -- no real checks needed
+ class = classes[class] or ordinary_class
+ else
+ class = ordinary_class
+ end
+ if class then
+ local engine = toengineclass(class)
if name then
if trace_defining then
- report(class,family,unicode,name)
+ report(class,engine,family,unicode,name)
end
- setmathsymbol(name,class,family,unicode)
+ setmathsymbol(name,class,engine,family,unicode,stretch)
else
- name = (class == classes.variable or class == classes.number) and character.adobename -- bad
+ name = (class == classes.ordinary or class == classes.digit) and character.adobename -- bad
if name and trace_defining then
- report(class,family,unicode,name)
+ report(class,engine,family,unicode,name)
end
end
- mset, dset = setmathcharacter(class,family,unicode,m.unicode or unicode,mset,dset) -- see solidus
+ if not done then
+ mset, dset = setmathcharacter(engine,family,unicode,m.unicode or unicode,mset,dset) -- see solidus
+ done = true
+ end
end
end
- elseif mathclass then
- local name = character.mathname
- local class = classes[mathclass] or mathclass -- no real checks needed
- if not class then
- if trace_defining then
- report("unknown",family,unicode,name)
- end
- elseif name == false then
- if trace_defining then
- report(class,family,unicode,name)
- end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
+ else
+ if class then
+ class = classes[class] or ordinary_class
else
- -- if not name then
- -- name = character.contextname -- too dangerous, we loose textslash and a few more
- -- end
- if name then
+ class = ordinary_class
+ end
+ if name ~= nil then
+ local engine = toengineclass(class)
+ if name == false then
if trace_defining then
- report(class,family,unicode,name)
+ report(class,engine,family,unicode,name)
end
- setmathsymbol(name,class,family,unicode)
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
else
- if trace_defining then
- report(class,family,unicode,character.adobename)
+ -- if not name then
+ -- name = character.contextname -- too dangerous, we loose textslash and a few more
+ -- end
+ if name then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ setmathsymbol(name,class,engine,family,unicode,stretch)
+ else
+ if trace_defining then
+ report(class,engine,family,unicode,character.adobename)
+ end
end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
+ elseif class ~= ordinary_class then
+ local engine = toengineclass(class)
+ if trace_defining then
+ report(class,engine,family,unicode,character.adobename)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
end
end
end
+ --
+ if trace_defining then
+ logs.stopfilelogging()
+ end
end
end
@@ -596,17 +700,19 @@ end
-- 2: step 2
-- 3: htdp * 1.33^n
-- 4: size * 1.33^n
+-- 5: use lfg
function mathematics.big(tfmdata,unicode,n,method)
local t = tfmdata.characters
local c = t[unicode]
if c and n > 0 then
- local vv = c.vvariants or c.next and t[c.next].vvariants
- if vv then
- local vvn = vv[n]
- return vvn and vvn.glyph or vv[#vv].glyph or unicode
- elseif method == 1 or method == 2 then
- if method == 2 then -- large steps
+ if method == 1 or method == 2 or method == 5 then
+ if method == 5 then
+ local b = tfmdata.bigslots
+ if b then
+ n = (n > #b and b[#b]) or b[n] or n
+ end
+ elseif method == 2 then -- large steps
n = n * 2
end
local next = c.next
@@ -754,7 +860,7 @@ implement {
-- weird to do this here but it's a side affect of math anyway
-interfaces.implement {
+implement {
name = "enableasciimode",
onlyonce = true,
actions = resolvers.macros.enablecomment,
diff --git a/tex/context/base/mkxl/math-ini.mkxl b/tex/context/base/mkxl/math-ini.mkxl
index 990341c99..fbfc7a972 100644
--- a/tex/context/base/mkxl/math-ini.mkxl
+++ b/tex/context/base/mkxl/math-ini.mkxl
@@ -76,10 +76,343 @@
\registerctxluafile{math-tag}{autosuffix}
\registerctxluafile{math-fbk}{autosuffix}
\registerctxluafile{math-dir}{}
-\registerctxluafile{math-spa}{}
+\registerctxluafile{math-spa}{autosuffix}
\registerctxluafile{math-fnt}{autosuffix}
\registerctxluafile{math-pre}{autosuffix}
+%D Basic spacing:
+
+\mathfencesmode \plusone % unpack
+
+% These need to be set because otherwise the engine will not honor some font
+% properties. It also permits tracing. These might become engine defaults. As a
+% consequence we no longer check for traditional fonts but one can use font control
+% options.
+
+% \mathcontrolmode\plusone
+
+\mathfontcontrol\numexpr
+ \zerocount
+ +\overrulemathcontrolcode % let the node family/font win over current family/font
+ +\underrulemathcontrolcode % idem
+ +\radicalrulemathcontrolcode % idem
+ +\fractionrulemathcontrolcode % idem
+ +\accentskewhalfmathcontrolcode % fall back to half width skewing when no topaccent is given
+ +\accentskewapplymathcontrolcode % use topaccent, otherwise use skew char
+ % + checkligatureandkernmathcontrolcode % old fonts
+ +\applyverticalitalickernmathcontrolcode % best do this indeed
+ +\applyordinaryitalickernmathcontrolcode % best do this indeed
+ % +\applycharitalickernmathcontrolcode % not done
+ % +\reboxcharitalickernmathcontrolcode % old code path
+ +\applyboxeditalickernmathcontrolcode % best do this indeed
+ +\staircasekernmathcontrolcode % use these when set
+ +\applytextitalickernmathcontrolcode
+ +\checktextitalickernmathcontrolcode
+ % +\checkspaceitalickernmathcontrolcode % old code path
+ +\applyscriptitalickernmathcontrolcode
+ +\italicshapekernmathcontrolcode % instead of adding pre italic to the shift, inject a kern
+\relax
+
+% \mathpenaltiesmode\plusone
+
+% These are frozen values because otherwise we need to sunc them when the predefined
+% muskip (internal) registers are changed.
+
+\immutable\mugluespecdef\defaultthickermuskip 7mu plus 5.0mu
+\immutable\mugluespecdef\defaultthickmuskip 5mu plus 5mu
+\immutable\mugluespecdef\defaultmedmuskip 4mu plus 2mu minus 4mu
+\immutable\mugluespecdef\defaultthinmuskip 3mu
+\immutable\mugluespecdef\defaulttinymuskip 1mu
+
+\immutable\mugluespecdef\halfthickmuskip 2.5mu plus 2.5mu
+\immutable\mugluespecdef\halfmedmuskip 2.0mu plus 1.0mu minus 2.0mu
+\immutable\mugluespecdef\halfthinmuskip 1.5mu
+\immutable\mugluespecdef\halftinymuskip 0.5mu
+
+\immutable\mugluespecdef\hairmuskip .15mu
+
+\immutable\integerdef \defaultrelpenalty 500
+\immutable\integerdef \defaultbinoppenalty 700
+\immutable\integerdef \defaultprerelpenalty -100
+\immutable\integerdef \defaultprebinoppenalty -100
+
+\newmuskip\thickermuskip \thickermuskip \defaultthickermuskip
+
+% more friendly in setups:
+
+\setnewconstant\mathordinarycode \mathclassvalue ordinary \aliased\let\mathordcode \mathordinarycode
+\setnewconstant\mathoperatorcode \mathclassvalue operator \aliased\let\mathopcode \mathoperatorcode
+\setnewconstant\mathbinarycode \mathclassvalue binary \aliased\let\mathbincode \mathbinarycode
+\setnewconstant\mathrelationcode \mathclassvalue relation \aliased\let\mathrelcode \mathrelationcode
+\setnewconstant\mathopencode \mathclassvalue open
+\setnewconstant\mathclosecode \mathclassvalue close
+\setnewconstant\mathpunctuationcode \mathclassvalue punctuation \aliased\let\mathpunctcode\mathpunctuationcode
+\setnewconstant\mathinnercode \mathclassvalue inner
+\setnewconstant\mathovercode \mathclassvalue over
+\setnewconstant\mathundercode \mathclassvalue under
+\setnewconstant\mathfractioncode \mathclassvalue fraction
+\setnewconstant\mathradicalcode \mathclassvalue radical
+\setnewconstant\mathmiddlecode \mathclassvalue middle
+\setnewconstant\mathaccentcode \mathclassvalue accent
+\setnewconstant\mathfencedcode \mathclassvalue fenced
+\setnewconstant\mathghostcode \mathclassvalue ghost
+\setnewconstant\mathvariablecode \mathclassvalue variable
+\setnewconstant\mathactivecode \mathclassvalue active
+\setnewconstant\mathvcentercode \mathclassvalue vcenter
+\setnewconstant\mathimaginarycode \mathclassvalue imaginary
+\setnewconstant\mathdifferentialcode \mathclassvalue differential
+\setnewconstant\mathexponentialcode \mathclassvalue exponential
+\setnewconstant\mathfunctioncode \mathclassvalue function
+\setnewconstant\mathdigitcode \mathclassvalue digit
+\setnewconstant\mathexplicitcode \mathclassvalue explicit
+\setnewconstant\mathdivisioncode \mathclassvalue division
+\setnewconstant\mathfactorialcode \mathclassvalue factorial
+
+\setnewconstant\mathbegincode \mathclassvalue begin
+\setnewconstant\mathendcode \mathclassvalue end
+
+%setnewconstant\mathtopaccentcode \mathclassvalue topaccent % these are private and above 31
+%setnewconstant\mathbotaccentcode \mathclassvalue botaccent % these are private and above 31
+%setnewconstant\mathdelimitercode \mathclassvalue delimiter % these are private and above 31
+%setnewconstant\mathrootcode \mathclassvalue root % these are private and above 31
+%setnewconstant\mathprimecode \mathclassvalue prime % these are private and above 31
+
+%letmathspacing \mathimaginarycode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathdifferentialcode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathexponentialcode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathfunctioncode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathdigitcode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+
+\copymathspacing \mathimaginarycode \mathordinarycode
+\copymathspacing \mathdifferentialcode \mathordinarycode
+\copymathspacing \mathfactorialcode \mathordinarycode
+\copymathspacing \mathexponentialcode \mathordinarycode
+\copymathspacing \mathfunctioncode \mathordinarycode
+\copymathspacing \mathdigitcode \mathordinarycode
+
+\setnewconstant\mathlimopcode \plusone
+\setnewconstant\mathnolopcode \plusone
+
+% obsolete
+
+\setnewconstant\mathboxcode \zerocount
+\setnewconstant\mathchoicecode \zerocount
+\setnewconstant\mathalphacode \zerocount
+\setnewconstant\mathnothingcode \zerocount
+
+\pushoverloadmode
+ \untraced\permanent\protected\def\binoppenalty {\setmathpostpenalty\mathbinarycode}
+ \untraced\permanent\protected\def\prebinoppenalty{\setmathprepenalty \mathbinarycode}
+ \untraced\permanent\protected\def\relpenalty {\setmathpostpenalty\mathrelationcode}
+ \untraced\permanent\protected\def\prerelpenalty {\setmathprepenalty \mathrelationcode}
+\popoverloadmode
+
+% \newcount\binoppenalty
+% \newcount\prebinoppenalty
+% \newcount\relpenalty
+% \newcount\prerelpenalty
+
+% topaccent botaccent .. but do we ever need these
+
+\permanent\protected\def\ordordspacing {\setmathspacing \mathordinarycode \mathordinarycode }
+\permanent\protected\def\ordopspacing {\setmathspacing \mathordinarycode \mathoperatorcode }
+\permanent\protected\def\ordbinspacing {\setmathspacing \mathordinarycode \mathbinarycode }
+\permanent\protected\def\ordrelspacing {\setmathspacing \mathordinarycode \mathrelationcode }
+\permanent\protected\def\ordopenspacing {\setmathspacing \mathordinarycode \mathopencode }
+\permanent\protected\def\ordclosespacing {\setmathspacing \mathordinarycode \mathclosecode }
+\permanent\protected\def\ordpunctspacing {\setmathspacing \mathordinarycode \mathpunctuationcode}
+\permanent\protected\def\ordinnerspacing {\setmathspacing \mathordinarycode \mathinnercode }
+\permanent\protected\def\ordfracspacing {\setmathspacing \mathordinarycode \mathfractioncode }
+\permanent\protected\def\ordradspacing {\setmathspacing \mathordinarycode \mathradicalcode }
+\permanent\protected\def\ordmiddlespacing {\setmathspacing \mathordinarycode \mathmiddlecode }
+\permanent\protected\def\ordaccentspacing {\setmathspacing \mathordinarycode \mathaccentcode }
+
+\permanent\protected\def\opordspacing {\setmathspacing \mathoperatorcode \mathordinarycode }
+\permanent\protected\def\opopspacing {\setmathspacing \mathoperatorcode \mathoperatorcode }
+\permanent\protected\def\opbinspacing {\setmathspacing \mathoperatorcode \mathbinarycode }
+\permanent\protected\def\oprelspacing {\setmathspacing \mathoperatorcode \mathrelationcode }
+\permanent\protected\def\opopenspacing {\setmathspacing \mathoperatorcode \mathopencode }
+\permanent\protected\def\opclosespacing {\setmathspacing \mathoperatorcode \mathclosecode }
+\permanent\protected\def\oppunctspacing {\setmathspacing \mathoperatorcode \mathpunctuationcode}
+\permanent\protected\def\opinnerspacing {\setmathspacing \mathoperatorcode \mathinnercode }
+\permanent\protected\def\opfracspacing {\setmathspacing \mathoperatorcode \mathfractioncode }
+\permanent\protected\def\opradspacing {\setmathspacing \mathoperatorcode \mathradicalcode }
+\permanent\protected\def\opmiddlespacing {\setmathspacing \mathoperatorcode \mathmiddlecode }
+\permanent\protected\def\opaccentspacing {\setmathspacing \mathoperatorcode \mathaccentcode }
+
+\permanent\protected\def\binordspacing {\setmathspacing \mathbinarycode \mathordinarycode }
+\permanent\protected\def\binopspacing {\setmathspacing \mathbinarycode \mathoperatorcode }
+\permanent\protected\def\binbinspacing {\setmathspacing \mathbinarycode \mathbinarycode }
+\permanent\protected\def\binrelspacing {\setmathspacing \mathbinarycode \mathrelationcode }
+\permanent\protected\def\binopenspacing {\setmathspacing \mathbinarycode \mathopencode }
+\permanent\protected\def\binclosespacing {\setmathspacing \mathbinarycode \mathclosecode }
+\permanent\protected\def\binpunctspacing {\setmathspacing \mathbinarycode \mathpunctuationcode}
+\permanent\protected\def\bininnerspacing {\setmathspacing \mathbinarycode \mathinnercode }
+\permanent\protected\def\binfracspacing {\setmathspacing \mathbinarycode \mathfractioncode }
+\permanent\protected\def\binradspacing {\setmathspacing \mathbinarycode \mathradicalcode }
+\permanent\protected\def\binmiddlespacing {\setmathspacing \mathbinarycode \mathmiddlecode }
+\permanent\protected\def\binaccentspacing {\setmathspacing \mathbinarycode \mathaccentcode }
+
+\permanent\protected\def\relordspacing {\setmathspacing \mathrelationcode \mathordinarycode }
+\permanent\protected\def\relopspacing {\setmathspacing \mathrelationcode \mathoperatorcode }
+\permanent\protected\def\relbinspacing {\setmathspacing \mathrelationcode \mathbinarycode }
+\permanent\protected\def\relrelspacing {\setmathspacing \mathrelationcode \mathrelationcode }
+\permanent\protected\def\relopenspacing {\setmathspacing \mathrelationcode \mathopencode }
+\permanent\protected\def\relclosespacing {\setmathspacing \mathrelationcode \mathclosecode }
+\permanent\protected\def\relpunctspacing {\setmathspacing \mathrelationcode \mathpunctuationcode}
+\permanent\protected\def\relinnerspacing {\setmathspacing \mathrelationcode \mathinnercode }
+\permanent\protected\def\relfracspacing {\setmathspacing \mathrelationcode \mathfractioncode }
+\permanent\protected\def\relradspacing {\setmathspacing \mathrelationcode \mathradicalcode }
+\permanent\protected\def\relmiddlespacing {\setmathspacing \mathrelationcode \mathmiddlecode }
+\permanent\protected\def\relaccentspacing {\setmathspacing \mathrelationcode \mathaccentcode }
+
+\permanent\protected\def\openordspacing {\setmathspacing \mathopencode \mathordinarycode }
+\permanent\protected\def\openopspacing {\setmathspacing \mathopencode \mathoperatorcode }
+\permanent\protected\def\openbinspacing {\setmathspacing \mathopencode \mathbinarycode }
+\permanent\protected\def\openrelspacing {\setmathspacing \mathopencode \mathrelationcode }
+\permanent\protected\def\openopenspacing {\setmathspacing \mathopencode \mathopencode }
+\permanent\protected\def\openclosespacing {\setmathspacing \mathopencode \mathclosecode }
+\permanent\protected\def\openpunctspacing {\setmathspacing \mathopencode \mathpunctuationcode}
+\permanent\protected\def\openinnerspacing {\setmathspacing \mathopencode \mathinnercode }
+\permanent\protected\def\openfracspacing {\setmathspacing \mathopencode \mathfractioncode }
+\permanent\protected\def\openradspacing {\setmathspacing \mathopencode \mathradicalcode }
+\permanent\protected\def\openmiddlespacing {\setmathspacing \mathopencode \mathmiddlecode }
+\permanent\protected\def\openaccentspacing {\setmathspacing \mathopencode \mathaccentcode }
+
+\permanent\protected\def\closeordspacing {\setmathspacing \mathclosecode \mathordinarycode }
+\permanent\protected\def\closeopspacing {\setmathspacing \mathclosecode \mathoperatorcode }
+\permanent\protected\def\closebinspacing {\setmathspacing \mathclosecode \mathbinarycode }
+\permanent\protected\def\closerelspacing {\setmathspacing \mathclosecode \mathrelationcode }
+\permanent\protected\def\closeopenspacing {\setmathspacing \mathclosecode \mathopencode }
+\permanent\protected\def\closeclosespacing {\setmathspacing \mathclosecode \mathclosecode }
+\permanent\protected\def\closepunctspacing {\setmathspacing \mathclosecode \mathpunctuationcode}
+\permanent\protected\def\closeinnerspacing {\setmathspacing \mathclosecode \mathinnercode }
+\permanent\protected\def\closefracspacing {\setmathspacing \mathclosecode \mathfractioncode }
+\permanent\protected\def\closeradspacing {\setmathspacing \mathclosecode \mathradicalcode }
+\permanent\protected\def\closemiddlespacing {\setmathspacing \mathclosecode \mathmiddlecode }
+\permanent\protected\def\closeaccentspacing {\setmathspacing \mathclosecode \mathaccentcode }
+
+\permanent\protected\def\punctordspacing {\setmathspacing \mathpunctuationcode \mathordinarycode }
+\permanent\protected\def\punctopspacing {\setmathspacing \mathpunctuationcode \mathoperatorcode }
+\permanent\protected\def\punctbinspacing {\setmathspacing \mathpunctuationcode \mathbinarycode }
+\permanent\protected\def\punctrelspacing {\setmathspacing \mathpunctuationcode \mathrelationcode }
+\permanent\protected\def\punctopenspacing {\setmathspacing \mathpunctuationcode \mathopencode }
+\permanent\protected\def\punctclosespacing {\setmathspacing \mathpunctuationcode \mathclosecode }
+\permanent\protected\def\punctpunctspacing {\setmathspacing \mathpunctuationcode \mathpunctuationcode}
+\permanent\protected\def\punctinnerspacing {\setmathspacing \mathpunctuationcode \mathinnercode }
+\permanent\protected\def\punctfracspacing {\setmathspacing \mathpunctuationcode \mathfractioncode }
+\permanent\protected\def\punctradspacing {\setmathspacing \mathpunctuationcode \mathradicalcode }
+\permanent\protected\def\punctmiddlespacing {\setmathspacing \mathpunctuationcode \mathmiddlecode }
+\permanent\protected\def\punctaccentspacing {\setmathspacing \mathpunctuationcode \mathaccentcode }
+
+\permanent\protected\def\innerordspacing {\setmathspacing \mathinnercode \mathordinarycode }
+\permanent\protected\def\inneropspacing {\setmathspacing \mathinnercode \mathoperatorcode }
+\permanent\protected\def\innerbinspacing {\setmathspacing \mathinnercode \mathbinarycode }
+\permanent\protected\def\innerrelspacing {\setmathspacing \mathinnercode \mathrelationcode }
+\permanent\protected\def\inneropenspacing {\setmathspacing \mathinnercode \mathopencode }
+\permanent\protected\def\innerclosespacing {\setmathspacing \mathinnercode \mathclosecode }
+\permanent\protected\def\innerpunctspacing {\setmathspacing \mathinnercode \mathpunctuationcode}
+\permanent\protected\def\innerinnerspacing {\setmathspacing \mathinnercode \mathinnercode }
+\permanent\protected\def\innerfracspacing {\setmathspacing \mathinnercode \mathfractioncode }
+\permanent\protected\def\innerradspacing {\setmathspacing \mathinnercode \mathradicalcode }
+\permanent\protected\def\innermiddlespacing {\setmathspacing \mathinnercode \mathmiddlecode }
+\permanent\protected\def\inneraccentspacing {\setmathspacing \mathinnercode \mathaccentcode }
+
+\permanent\protected\def\fracordspacing {\setmathspacing \mathfractioncode \mathordinarycode }
+\permanent\protected\def\fracopspacing {\setmathspacing \mathfractioncode \mathoperatorcode }
+\permanent\protected\def\fracbinspacing {\setmathspacing \mathfractioncode \mathbinarycode }
+\permanent\protected\def\fracrelspacing {\setmathspacing \mathfractioncode \mathrelationcode }
+\permanent\protected\def\fracopenspacing {\setmathspacing \mathfractioncode \mathopencode }
+\permanent\protected\def\fracclosespacing {\setmathspacing \mathfractioncode \mathclosecode }
+\permanent\protected\def\fracpunctspacing {\setmathspacing \mathfractioncode \mathpunctuationcode}
+\permanent\protected\def\fracinnerspacing {\setmathspacing \mathfractioncode \mathinnercode }
+\permanent\protected\def\fracfracspacing {\setmathspacing \mathfractioncode \mathfractioncode }
+\permanent\protected\def\fracradspacing {\setmathspacing \mathfractioncode \mathradicalcode }
+\permanent\protected\def\fracmiddlespacing {\setmathspacing \mathfractioncode \mathmiddlecode }
+\permanent\protected\def\fracaccentspacing {\setmathspacing \mathfractioncode \mathaccentcode }
+
+\permanent\protected\def\radordspacing {\setmathspacing \mathradicalcode \mathordinarycode }
+\permanent\protected\def\radopspacing {\setmathspacing \mathradicalcode \mathoperatorcode }
+\permanent\protected\def\radbinspacing {\setmathspacing \mathradicalcode \mathbinarycode }
+\permanent\protected\def\radrelspacing {\setmathspacing \mathradicalcode \mathrelationcode }
+\permanent\protected\def\radopenspacing {\setmathspacing \mathradicalcode \mathopencode }
+\permanent\protected\def\radclosespacing {\setmathspacing \mathradicalcode \mathclosecode }
+\permanent\protected\def\radpunctspacing {\setmathspacing \mathradicalcode \mathpunctuationcode}
+\permanent\protected\def\radinnerspacing {\setmathspacing \mathradicalcode \mathinnercode }
+\permanent\protected\def\radfracspacing {\setmathspacing \mathradicalcode \mathfractioncode }
+\permanent\protected\def\radradspacing {\setmathspacing \mathradicalcode \mathradicalcode }
+\permanent\protected\def\radmiddlespacing {\setmathspacing \mathradicalcode \mathmiddlecode }
+\permanent\protected\def\radaccentspacing {\setmathspacing \mathradicalcode \mathaccentcode }
+
+\permanent\protected\def\middleordspacing {\setmathspacing \mathmiddlecode \mathordinarycode }
+\permanent\protected\def\middleopspacing {\setmathspacing \mathmiddlecode \mathoperatorcode }
+\permanent\protected\def\middlebinspacing {\setmathspacing \mathmiddlecode \mathbinarycode }
+\permanent\protected\def\middlerelspacing {\setmathspacing \mathmiddlecode \mathrelationcode }
+\permanent\protected\def\middleopenspacing {\setmathspacing \mathmiddlecode \mathopencode }
+\permanent\protected\def\middleclosespacing {\setmathspacing \mathmiddlecode \mathclosecode }
+\permanent\protected\def\middlepunctspacing {\setmathspacing \mathmiddlecode \mathpunctuationcode}
+\permanent\protected\def\middleinnerspacing {\setmathspacing \mathmiddlecode \mathinnercode }
+\permanent\protected\def\middlefracspacing {\setmathspacing \mathmiddlecode \mathfractioncode }
+\permanent\protected\def\middleradspacing {\setmathspacing \mathmiddlecode \mathradicalcode }
+\permanent\protected\def\middlemiddlespacing{\setmathspacing \mathmiddlecode \mathmiddlecode }
+\permanent\protected\def\middleaccentspacing{\setmathspacing \mathmiddlecode \mathaccentcode }
+
+\permanent\protected\def\accentordspacing {\setmathspacing \mathaccentcode \mathordinarycode }
+\permanent\protected\def\accentopspacing {\setmathspacing \mathaccentcode \mathoperatorcode }
+\permanent\protected\def\accentbinspacing {\setmathspacing \mathaccentcode \mathbinarycode }
+\permanent\protected\def\accentrelspacing {\setmathspacing \mathaccentcode \mathrelationcode }
+\permanent\protected\def\accentopenspacing {\setmathspacing \mathaccentcode \mathopencode }
+\permanent\protected\def\accentclosespacing {\setmathspacing \mathaccentcode \mathclosecode }
+\permanent\protected\def\accentpunctspacing {\setmathspacing \mathaccentcode \mathpunctuationcode}
+\permanent\protected\def\accentinnerspacing {\setmathspacing \mathaccentcode \mathinnercode }
+\permanent\protected\def\accentfracspacing {\setmathspacing \mathaccentcode \mathfractioncode }
+\permanent\protected\def\accentradspacing {\setmathspacing \mathaccentcode \mathradicalcode }
+\permanent\protected\def\accentmiddlespacing{\setmathspacing \mathaccentcode \mathmiddlecode }
+\permanent\protected\def\accentaccentspacing{\setmathspacing \mathaccentcode \mathaccentcode }
+
+%D In the end Mikael and I prefer for this:
+
+% \setmathignore\Umathspacebeforescript\plusone
+% \setmathignore\Umathspaceafterscript \plusone
+
+\setmathignore \Umathspacebeforescript\zerocount
+\setmathignore \Umathspaceafterscript \zerocount
+
+\mathslackmode \plusone
+
+\setmathoptions\mathoperatorcode \plusthree
+\setmathoptions\mathbinarycode \plusthree
+\setmathoptions\mathrelationcode \plusthree
+\setmathoptions\mathopencode \plusthree
+\setmathoptions\mathclosecode \plusthree
+\setmathoptions\mathpunctuationcode\plusthree
+\setmathoptions\mathfractioncode \plusthree
+
+%D For now \unknown
+
+\permanent\protected\def\math_discretionary_plus {\discretionary class \mathbinarycode {$+$}{$+$}{$+$}}
+\permanent\protected\def\math_discretionary_minus{\discretionary class \mathbinarycode {$-$}{$-$}{$-$}}
+
+\newtoks\everymathdiscretionaries
+
+\appendtoks
+ \enforced\let\+\math_discretionary_plus
+ \enforced\let\-\math_discretionary_minus
+\to \everymathdiscretionaries
+
+\appendtoks
+ \ifconditional\c_math_discretionaries
+ \the\everymathdiscretionaries
+ \fi
+\to \everymathematics
+
+\setfalse\c_math_discretionaries
+
+\installtexexperiment
+ {mathematics.discretionaries}
+ {\settrue \c_math_discretionaries}
+ {\setfalse\c_math_discretionaries}
+
%D A starter:
%D
%D \startbuffer
@@ -123,13 +456,13 @@
\definesystemattribute[displaymath] [public]
-\mathflattenmode\numexpr
- \ordmathflattencode
- +\binmathflattencode
- +\relmathflattencode
- +\punctmathflattencode
- +\innermathflattencode
-\relax
+% \mathflattenmode\numexpr
+% \ordmathflattencode
+% +\binmathflattencode
+% +\relmathflattencode
+% +\punctmathflattencode
+% +\innermathflattencode
+% \relax
\ifdefined\ordlimits\else
\let\ordlimits\Umathlimits % downward compatible
@@ -166,6 +499,12 @@
\settrue\indisplaymath
\fi}
+\permanent\protected\def\forceinlinemath
+ {\ifmmode
+ \textstyle
+ \setfalse\indisplaymath
+ \fi}
+
\permanent\protected\def\startforceddisplaymath
{\startimath
\displaystyle
@@ -223,19 +562,6 @@
\installmacrostack\currentmathematics
-% \permanent\protected\def\startmathematics % no grouping, if ever then also an optional second
-% {\doifelsenextoptionalcs\math_mathematics_start_yes\math_mathematics_start_nop}
-%
-% \protected\def\math_mathematics_start_yes[#1]%
-% {\push_macro_currentmathematics
-% \edef\currentmathematics{#1}% check for valid
-% \the\everyswitchmathematics}
-%
-% \protected\def\math_mathematics_start_nop
-% {\push_macro_currentmathematics
-% \let\currentmathematics\empty
-% \the\everyswitchmathematics}
-
\permanent\protected\tolerant\def\startmathematics[#1]% no grouping, if ever then also an optional second
{\push_macro_currentmathematics
\edef\currentmathematics{#1}% check for valid
@@ -267,7 +593,7 @@
\fi}
\def\math_m_yes_math[#1]#2%
- {#2}
+ {#2} % grouping permits \mathbf etc
\def\math_m_yes_text[#1]%
{\begingroup
@@ -304,7 +630,7 @@
\def\math_m_yes_text_normal#1%
{\the\everyswitchmathematics\relax
\normalstartimath
- #1%
+ \begingroup#1\endgroup % grouping permits aftergroups trickery
\normalstopimath
\endgroup}
@@ -314,26 +640,31 @@
#1%
\else
\normalstartimath
- #1%
+ \begingroup#1\endgroup % grouping permits aftergroups trickery
\normalstopimath
\fi}
-% e.g.: \definemathematics[i:mp][setups=i:tight,openup=yes]
+%D maybe more setters
-\immutable\mugluespecdef\defaultthickmuskip 5mu plus 5mu
-\immutable\mugluespecdef\defaultmedmuskip 4mu plus 2mu minus 4mu
-\immutable\mugluespecdef\defaultthinmuskip 3mu
+\permanent\protected\def\dm#1%
+ {\relax
+ \ifmmode
+ \beginmathgroup\forcedisplaymath#1\endmathgroup
+ \else
+ \startimath\begingroup\forcedisplaymath#1\endgroup\stopimath
+ \fi}
-\immutable\mugluespecdef\halfthickmuskip 2.5mu plus 2.5mu
-\immutable\mugluespecdef\halfmedmuskip 2.0mu plus 1.0mu minus 2.0mu
-\immutable\mugluespecdef\halfthinmuskip 1.5mu
+\permanent\protected\def\im#1%
+ {\relax
+ \ifmmode
+ \beginmathgroup\forceinlinemath#1\endmathgroup
+ \else
+ \startimath#1\stopimath
+ \fi}
-\immutable\mugluespecdef\hairmuskip .15mu
+% \aliased\let\m \mathematics % we keep the simple versions
-\immutable\integerdef \defaultrelpenalty 500
-\immutable\integerdef \defaultbinoppenalty 700
-\immutable\integerdef \defaultprerelpenalty -100
-\immutable\integerdef \defaultprebinoppenalty -100
+% e.g.: \definemathematics[i:mp][setups=i:tight,openup=yes]
% we need to control these otherwise:
%
@@ -344,6 +675,7 @@
\thickmuskip \defaultthickmuskip
\medmuskip \defaultmedmuskip
\thinmuskip \defaultthinmuskip
+ \tinymuskip \defaulttinymuskip
\relpenalty \defaultrelpenalty
\binoppenalty \defaultbinoppenalty
\prebinoppenalty\maxdimen
@@ -354,6 +686,7 @@
\thickmuskip \defaultthickmuskip
\medmuskip \defaultmedmuskip
\thinmuskip \defaultthinmuskip
+ \tinymuskip \defaulttinymuskip
\relpenalty \defaultrelpenalty
\binoppenalty \defaultbinoppenalty
\prebinoppenalty\defaultprebinoppenalty
@@ -364,6 +697,7 @@
\thickmuskip \halfthickmuskip
\medmuskip \halfmedmuskip
\thinmuskip \halfthinmuskip
+ \tinymuskip \halftinymuskip
\relpenalty \defaultrelpenalty
\binoppenalty \defaultbinoppenalty
\prebinoppenalty\maxdimen
@@ -375,10 +709,12 @@
\thickmuskip \halfthickmuskip
\medmuskip \halfmedmuskip
\thinmuskip \halfthinmuskip
+ \tinymuskip \halftinymuskip
\else
\thickmuskip 1\halfthickmuskip
\medmuskip 1\halfmedmuskip
\thinmuskip 1\halfthinmuskip
+ \tinymuskip 1\halftinymuskip
\fi
\relpenalty \defaultrelpenalty
\binoppenalty \maxdimen
@@ -391,10 +727,12 @@
\thickmuskip \halfthickmuskip
\medmuskip \halfmedmuskip
\thinmuskip \halfthinmuskip
+ \tinymuskip \halftinymuskip
\else
\thickmuskip 1\halfthickmuskip
\medmuskip 1\halfmedmuskip
\thinmuskip 1\halfthinmuskip
+ \tinymuskip 1\halftinymuskip
\fi
\relpenalty \maxdimen
\binoppenalty \maxdimen
@@ -402,8 +740,209 @@
\prerelpenalty \maxdimen
\stopsetups
+% this will reset the spacing to default values
+
+% \Umathspacingmode\allmathstyles\plusone % always pair driven
+
+% todo: use fullnames instead shirt ones
+
+\startsetups math:spacing:presets
+ \resetmathspacing
+ % \ordordspacing \allmathstyles \zeromuskip
+ \inherited\ordopspacing \allmathstyles \thinmuskip
+ \inherited\ordbinspacing \allsplitstyles \medmuskip
+ \inherited\ordbinspacing \allscriptstyles\tinymuskip
+ \inherited\ordrelspacing \allsplitstyles \thickmuskip
+ \inherited\ordrelspacing \allscriptstyles\tinymuskip
+ % \inherited\ordopenspacing \allmathstyles \zeromuskip
+ \inherited\ordmiddlespacing \allsplitstyles \medmuskip
+ \inherited\ordmiddlespacing \allscriptstyles\tinymuskip
+ % \inherited\ordclosespacing \allmathstyles \zeromuskip
+ % \inherited\ordpunctspacing \allmathstyles \zeromuskip
+ \inherited\ordinnerspacing \allsplitstyles \thinmuskip
+ \inherited\ordinnerspacing \allscriptstyles\tinymuskip
+ \inherited\ordfracspacing \allmathstyles \tinymuskip
+ \inherited\ordradspacing \allmathstyles \tinymuskip
+ \inherited\opordspacing \allmathstyles \thinmuskip
+ \inherited\opopspacing \allmathstyles \thinmuskip
+ %%\inherited \opbinspacing \allmathstyles \zeromuskip
+ \inherited\oprelspacing \allsplitstyles \thickmuskip
+ \inherited\oprelspacing \allscriptstyles\tinymuskip
+ % \inherited\opopenspacing \allmathstyles \zeromuskip
+ \inherited\opmiddlespacing \allsplitstyles \medmuskip
+ \inherited\opmiddlespacing \allscriptstyles\tinymuskip
+ % \inherited\opclosespacing \allmathstyles \zeromuskip
+ % \inherited\oppunctspacing \allmathstyles \zeromuskip
+ \inherited\opinnerspacing \allsplitstyles \thinmuskip
+ \inherited\opinnerspacing \allscriptstyles\tinymuskip
+ \inherited\opfracspacing \allmathstyles \thinmuskip
+ \inherited\opradspacing \allmathstyles \thinmuskip
+ \inherited\binordspacing \allsplitstyles \medmuskip
+ \inherited\binordspacing \allscriptstyles\tinymuskip
+ \inherited\binopspacing \allsplitstyles \medmuskip
+ \inherited\binopspacing \allscriptstyles\tinymuskip
+ %% \inherited\binbinspacing \allmathstyles \zeromuskip
+ %% \inherited\binrelspacing \allmathstyles \zeromuskip
+ \inherited\binopenspacing \allsplitstyles \medmuskip
+ \inherited\binopenspacing \allscriptstyles\tinymuskip
+ \inherited\binmiddlespacing \allsplitstyles \medmuskip
+ \inherited\binmiddlespacing \allscriptstyles\tinymuskip
+ %% \inherited\binclosespacing \allmathstyles \zeromuskip
+ %% \inherited\binpunctspacing \allmathstyles \zeromuskip
+ \inherited\bininnerspacing \allsplitstyles \medmuskip
+ \inherited\bininnerspacing \allscriptstyles\tinymuskip
+ \inherited\binfracspacing \allsplitstyles \medmuskip
+ \inherited\binfracspacing \allscriptstyles\tinymuskip
+ \inherited\binradspacing \allsplitstyles \medmuskip
+ \inherited\binradspacing \allscriptstyles\tinymuskip
+ \inherited\relordspacing \allsplitstyles \thickmuskip
+ \inherited\relordspacing \allscriptstyles\tinymuskip
+ \inherited\relopspacing \allsplitstyles \thickmuskip
+ \inherited\relopspacing \allscriptstyles\tinymuskip
+ %% \inherited\relbinspacing \allmathstyles \zeromuskip
+ % \inherited\relrelspacing \allmathstyles \zeromuskip
+ \inherited\relopenspacing \allsplitstyles \thickmuskip
+ \inherited\relopenspacing \allscriptstyles\tinymuskip
+ \inherited\relmiddlespacing \allsplitstyles \thickmuskip
+ \inherited\relmiddlespacing \allscriptstyles\thinmuskip
+ % \inherited\relclosespacing \allmathstyles \zeromuskip
+ % \inherited\relpunctspacing \allmathstyles \zeromuskip
+ \inherited\relinnerspacing \allsplitstyles \thickmuskip
+ \inherited\relinnerspacing \allscriptstyles\tinymuskip
+ \inherited\relfracspacing \allsplitstyles \thickmuskip
+ \inherited\relfracspacing \allscriptstyles\tinymuskip
+ \inherited\relradspacing \allsplitstyles \thickmuskip
+ \inherited\relradspacing \allscriptstyles\tinymuskip
+ % \inherited\openordspacing \allmathstyles \zeromuskip
+ % \inherited\openopspacing \allmathstyles \zeromuskip
+ %% \inherited\openbinspacing \allmathstyles \zeromuskip
+ % \inherited\openrelspacing \allmathstyles \zeromuskip
+ % \inherited\openopenspacing \allmathstyles \zeromuskip
+ % \inherited\openmiddlespacing \allmathstyles \zeromuskip
+ % \inherited\openclosespacing \allmathstyles \zeromuskip
+ % \inherited\openpunctspacing \allmathstyles \zeromuskip
+ % \inherited\openinnerspacing \allmathstyles \zeromuskip
+ \inherited\openfracspacing \allmathstyles \tinymuskip
+ % \inherited\openradspacing \allmathstyles \zeromuskip
+ % \inherited\closeordspacing \allmathstyles \zeromuskip
+ \inherited\closeopspacing \allmathstyles \thinmuskip
+ \inherited\closebinspacing \allsplitstyles \medmuskip
+ \inherited\closebinspacing \allscriptstyles\tinymuskip
+ \inherited\closerelspacing \allsplitstyles \thickmuskip
+ \inherited\closerelspacing \allscriptstyles\tinymuskip
+ % \inherited\closeopenspacing \allmathstyles \zeromuskip
+ % \inherited\closemiddlespacing \allmathstyles \zeromuskip
+ % \inherited\closeclosespacing \allmathstyles \zeromuskip
+ % \inherited\closepunctspacing \allmathstyles \zeromuskip
+ \inherited\closeinnerspacing \allsplitstyles \thinmuskip
+ \inherited\closeinnerspacing \allscriptstyles\tinymuskip
+ \inherited\closefracspacing \allsplitstyles \thinmuskip
+ \inherited\closefracspacing \allscriptstyles\tinymuskip
+ % \inherited\closeradspacing \allmathstyles \zeromuskip
+ \inherited\punctordspacing \allsplitstyles \thinmuskip
+ \inherited\punctordspacing \allscriptstyles\tinymuskip
+ \inherited\punctopspacing \allsplitstyles \thinmuskip
+ \inherited\punctopspacing \allscriptstyles\tinymuskip
+ %% \inherited\punctbinspacing \allmathstyles \zeromuskip
+ \inherited\punctrelspacing \allsplitstyles \thinmuskip
+ \inherited\punctrelspacing \allscriptstyles\tinymuskip
+ \inherited\punctopenspacing \allsplitstyles \thinmuskip
+ \inherited\punctopenspacing \allscriptstyles\tinymuskip
+ \inherited\punctmiddlespacing \allsplitstyles \thinmuskip
+ \inherited\punctmiddlespacing \allscriptstyles\tinymuskip
+ \inherited\punctclosespacing \allsplitstyles \thinmuskip
+ \inherited\punctclosespacing \allscriptstyles\tinymuskip
+ \inherited\punctpunctspacing \allsplitstyles \thinmuskip
+ \inherited\punctpunctspacing \allscriptstyles\tinymuskip
+ \inherited\punctinnerspacing \allsplitstyles \thinmuskip
+ \inherited\punctinnerspacing \allscriptstyles\tinymuskip
+ \inherited\punctfracspacing \allsplitstyles \thinmuskip
+ \inherited\punctfracspacing \allscriptstyles\tinymuskip
+ \inherited\punctradspacing \allsplitstyles \thinmuskip
+ \inherited\punctradspacing \allscriptstyles\tinymuskip
+ \inherited\innerordspacing \allsplitstyles \thinmuskip
+ \inherited\innerordspacing \allscriptstyles\tinymuskip
+ \inherited\inneropspacing \allmathstyles \thinmuskip
+ \inherited\innerbinspacing \allsplitstyles \medmuskip
+ \inherited\innerbinspacing \allscriptstyles\tinymuskip
+ \inherited\innerrelspacing \allsplitstyles \thickmuskip
+ \inherited\innerrelspacing \allscriptstyles\tinymuskip
+ \inherited\inneropenspacing \allsplitstyles \thinmuskip
+ \inherited\inneropenspacing \allscriptstyles\tinymuskip
+ \inherited\innermiddlespacing \allsplitstyles \thinmuskip
+ \inherited\innermiddlespacing \allscriptstyles\tinymuskip
+ % \inherited\innerclosespacing \allmathstyles \zeromuskip
+ \inherited\innerpunctspacing \allsplitstyles \thinmuskip
+ \inherited\innerpunctspacing \allscriptstyles\tinymuskip
+ \inherited\innerinnerspacing \allsplitstyles \thinmuskip
+ \inherited\innerinnerspacing \allscriptstyles\tinymuskip
+ \inherited\innerfracspacing \allsplitstyles \thinmuskip
+ \inherited\innerfracspacing \allscriptstyles\tinymuskip
+ \inherited\innerradspacing \allsplitstyles \thinmuskip
+ \inherited\innerradspacing \allscriptstyles\tinymuskip
+ \inherited\fracordspacing \allmathstyles \tinymuskip
+ \inherited\fracopspacing \allmathstyles \thinmuskip
+ \inherited\fracbinspacing \allsplitstyles \medmuskip
+ \inherited\fracbinspacing \allscriptstyles\tinymuskip
+ \inherited\fracrelspacing \allsplitstyles \thickmuskip
+ \inherited\fracrelspacing \allscriptstyles\tinymuskip
+ \inherited\fracopenspacing \allsplitstyles \thinmuskip
+ \inherited\fracopenspacing \allscriptstyles\tinymuskip
+ \inherited\fracmiddlespacing \allsplitstyles \medmuskip
+ \inherited\fracmiddlespacing \allscriptstyles\tinymuskip
+ \inherited\fracclosespacing \allmathstyles \tinymuskip
+ % \inherited\fracpunctspacing \allmathstyles \zeromuskip
+ \inherited\fracinnerspacing \allsplitstyles \thinmuskip
+ \inherited\fracinnerspacing \allscriptstyles\tinymuskip
+ \inherited\fracfracspacing \allsplitstyles \thinmuskip
+ \inherited\fracfracspacing \allscriptstyles\tinymuskip
+ \inherited\fracradspacing \allmathstyles \tinymuskip
+ \inherited\radordspacing \allsplitstyles \tinymuskip
+ \inherited\radopspacing \allmathstyles \thinmuskip
+ \inherited\radbinspacing \allsplitstyles \medmuskip
+ \inherited\radbinspacing \allscriptstyles\tinymuskip
+ \inherited\radrelspacing \allsplitstyles \thickmuskip
+ \inherited\radrelspacing \allscriptstyles\tinymuskip
+ % \inherited\radopenspacing \allmathstyles \zeromuskip
+ % \inherited\radmiddlespacing \allmathstyles \zeromuskip
+ % \inherited\radclosespacing \allmathstyles \zeromuskip
+ % \inherited\radpunctspacing \allmathstyles \zeromuskip
+ \inherited\radinnerspacing \allsplitstyles \thinmuskip
+ \inherited\radinnerspacing \allscriptstyles\tinymuskip
+ \inherited\radfracspacing \allmathstyles \tinymuskip
+ \inherited\radradspacing \allmathstyles \tinymuskip
+ \inherited\middleordspacing \allsplitstyles \medmuskip
+ \inherited\middleordspacing \allscriptstyles\tinymuskip
+ \inherited\middleopspacing \allmathstyles \thinmuskip
+ \inherited\middlebinspacing \allsplitstyles \medmuskip
+ \inherited\middlebinspacing \allscriptstyles\tinymuskip
+ \inherited\middlerelspacing \allsplitstyles \thickmuskip
+ \inherited\middlerelspacing \allscriptstyles\tinymuskip
+ % \inherited\middleopenspacing \allmathstyles \zeromuskip
+ % \inherited\middlemiddlespacing \allmathstyles \zeromuskip
+ % \inherited\middleclosespacing \allmathstyles \zeromuskip
+ % \inherited\middlepunctspacing \allmathstyles \zeromuskip
+ \inherited\middleinnerspacing \allsplitstyles \thinmuskip
+ \inherited\middleinnerspacing \allscriptstyles\tinymuskip
+ \inherited\middlefracspacing \allsplitstyles \medmuskip
+ \inherited\middlefracspacing \allscriptstyles\tinymuskip
+ % \inherited\middleradspacing \allmathstyles \zeromuskip
+ %
+ \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allscriptstyles \tinymuskip
+ \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allscriptstyles \tinymuskip
+ \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allscriptstyles \tinymuskip
+\stopsetups
+
+\directsetup{math:spacing:default}
+\directsetup{math:spacing:presets}
+
% \dorecurse{80}{test \m[i:tight]{\red \fakeformula} test }
+%setupmathematics [\c!setups=math:spacing:default]
+
\definemathematics[i:default][\c!setups=math:spacing:equal]
\definemathematics[i:half] [\c!setups=math:spacing:half]
\definemathematics[i:tight] [\c!setups=math:spacing:tight]
@@ -488,33 +1027,71 @@
\aliased\let\setmathfontstylealternative\setmathfontstylealternate
\aliased\let\mathalternate \setmathfontalternate
-\permanent\protected\def\mathupright {\setmathattribute\s!regular\s!tf\setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathitalic {\setmathattribute\s!regular\s!it\setmathfontstylealternate\s!it}
+% \permanent\protected\def\mathupright {\setmathattribute\s!regular\s!tf\setmathfontstylealternate\s!tf}
+% \permanent\protected\def\mathitalic {\setmathattribute\s!regular\s!it\setmathfontstylealternate\s!it}
+% \permanent\protected\def\mathscript {\setmathalphabet \s!script \setmathfontstylealternate\s!script}
+% \permanent\protected\def\mathfraktur {\setmathalphabet \s!fraktur \setmathfontstylealternate\s!fraktur}
+% \permanent\protected\def\mathblackboard{\setmathalphabet \s!blackboard\setmathfontstylealternate\s!blackboard}
+
+\permanent\protected\def\math_upright {\setmathattribute\s!regular\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_italic {\setmathattribute\s!regular\s!it\setmathfontstylealternate\s!it}
+\permanent\protected\def\math_script {\setmathalphabet \s!script \setmathfontstylealternate\s!script}
+\permanent\protected\def\math_fraktur {\setmathalphabet \s!fraktur \setmathfontstylealternate\s!fraktur}
+\permanent\protected\def\math_blackboard{\setmathalphabet \s!blackboard\setmathfontstylealternate\s!blackboard}
+
+\permanent\protected\def\mathupright {\mathgroupedcommandcs\math_upright}
+\permanent\protected\def\mathitalic {\mathgroupedcommandcs\math_italic}
+\permanent\protected\def\mathscript {\mathgroupedcommandcs\math_script}
+\permanent\protected\def\mathfraktur {\mathgroupedcommandcs\math_fraktur}
+\permanent\protected\def\mathblackboard{\mathgroupedcommandcs\math_blackboard}
-\permanent\protected\def\mathscript {\setmathalphabet \s!script \setmathfontstylealternate\s!script}
-\permanent\protected\def\mathfraktur {\setmathalphabet \s!fraktur \setmathfontstylealternate\s!fraktur}
-\permanent\protected\def\mathblackboard{\setmathalphabet \s!blackboard\setmathfontstylealternate\s!blackboard}
+% \permanent\protected\def\mathrm{\setmathattribute\s!rm\s!tf\setmathfontstylealternate\s!tf}
+% \permanent\protected\def\mathss{\setmathattribute\s!ss\s!tf\setmathfontstylealternate\s!tf}
+% \permanent\protected\def\mathtt{\setmathattribute\s!tt\s!tf\setmathfontstylealternate\s!tf}
+%
+% \permanent\protected\def\mathtf{\setmathfontstyle\s!tf\setmathfontstylealternate\s!tf}
+% \permanent\protected\def\mathsl{\setmathfontstyle\s!it\setmathfontstylealternate\s!it} % no sl
+% \permanent\protected\def\mathit{\setmathfontstyle\s!it\setmathfontstylealternate\s!it}
+%
+% \permanent\protected\def\mathbf{\setmathfontstyle\s!bf\setmathfontstylealternate\s!bf}
+% \permanent\protected\def\mathbs{\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi} % no sl
+% \permanent\protected\def\mathbi{\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi}
-\permanent\protected\def\mathrm {\setmathattribute\s!rm\s!tf\setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathss {\setmathattribute\s!ss\s!tf\setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathtt {\setmathattribute\s!tt\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_rm{\setmathattribute\s!rm\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_ss{\setmathattribute\s!ss\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_tt{\setmathattribute\s!tt\s!tf\setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathtf {\setmathfontstyle\s!tf\setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathsl {\setmathfontstyle\s!it\setmathfontstylealternate\s!it} % no sl
-\permanent\protected\def\mathit {\setmathfontstyle\s!it\setmathfontstylealternate\s!it}
+\permanent\protected\def\math_tf{\setmathfontstyle\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_sl{\setmathfontstyle\s!it\setmathfontstylealternate\s!it} % no sl
+\permanent\protected\def\math_it{\setmathfontstyle\s!it\setmathfontstylealternate\s!it}
-\permanent\protected\def\mathbf {\setmathfontstyle\s!bf\setmathfontstylealternate\s!bf}
-\permanent\protected\def\mathbs {\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi} % no sl
-\permanent\protected\def\mathbi {\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi}
+\permanent\protected\def\math_bf{\setmathfontstyle\s!bf\setmathfontstylealternate\s!bf}
+\permanent\protected\def\math_bs{\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi} % no sl
+\permanent\protected\def\math_bi{\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi}
-\aliased\let\mathdefault\mathitalic
+\permanent\protected\def\mathrm{\mathgroupedcommandcs\math_rm\relax}
+\permanent\protected\def\mathss{\mathgroupedcommandcs\math_ss\relax}
+\permanent\protected\def\mathtt{\mathgroupedcommandcs\math_tt\relax}
+
+\permanent\protected\def\mathtf{\mathgroupedcommandcs\math_tf\relax}
+\permanent\protected\def\mathsl{\mathgroupedcommandcs\math_sl\relax}
+\permanent\protected\def\mathit{\mathgroupedcommandcs\math_it\relax}
+
+\permanent\protected\def\mathbf{\mathgroupedcommandcs\math_bf\relax}
+\permanent\protected\def\mathbs{\mathgroupedcommandcs\math_bs\relax}
+\permanent\protected\def\mathbi{\mathgroupedcommandcs\math_bi\relax}
+
+\aliased\let\math_default\math_italic
+\aliased\let\mathdefault \math_italic
\appendtoks
\edef\p_default{\mathematicsparameter\c!default}%
\ifx\p_default\v!normal
- \enforced\let\mathdefault\mathupright
+ \enforced\let\mathdefault \math_upright
+ \enforced\let\math_default\math_upright
\else
- \enforced\let\mathdefault\mathitalic
+ \enforced\let\mathdefault \math_italic
+ \enforced\let\math_default\math_italic
\fi
\to \everysetupmathematics
@@ -538,9 +1115,9 @@
\permanent\protected\def\fraktur {\ifmmode\expandafter\mathfraktur \fi}
\permanent\protected\def\gothic {\ifmmode\expandafter\mathfraktur \fi}
-\permanent\protected\def\mathcal #1{{\mathscript #1}} % for AMS compatibility
-\permanent\protected\def\mathfrak#1{{\mathfraktur #1}} % for AMS compatibility
-\permanent\protected\def\mathbb #1{{\mathblackboard#1}} % for AMS compatibility
+\permanent\protected\def\mathcal {\mathgroupedcommandcs\math_script \relax} % for AMS compatibility
+\permanent\protected\def\mathfrak{\mathgroupedcommandcs\math_fraktur \relax} % for AMS compatibility
+\permanent\protected\def\mathbb {\mathgroupedcommandcs\math_blackboard\relax} % for AMS compatibility
\ifdefined\normaltf \else \permanent\let\normaltf\tf \fi \permanent\protected\def\tf{\ifmmode\expandafter\mathtf\else\expandafter\normaltf\fi}
\ifdefined\normalbf \else \permanent\let\normalbf\bf \fi \permanent\protected\def\bf{\ifmmode\expandafter\mathbf\else\expandafter\normalbf\fi}
@@ -563,7 +1140,7 @@
% 5: $e=mc^2 \quad \mb e=mc^2$
\prependtoks
- \mathdefault
+ \math_default
\to \everymathematics
%D We could set the rendering attribute at the \LUA\ end but as there can be many
@@ -635,32 +1212,40 @@
\installcorenamespace{mathcodecommand}
-\permanent\protected\def\mathlimop#1{\mathop{#1}} %no \limits
+\permanent\protected\def\mathlimop#1{\normalmathop{#1}} %no \limits
\permanent\protected\def\mathbox #1{\dontleavehmode\hbox\Ustartmath\mathsurround\zeropoint#1\Ustopmath}
-\permanent\protected\def\mathnolop#1{\mathop{#1}\nolimits}
+\permanent\protected\def\mathnolop#1{\normalmathop{#1}\nolimits}
+
+% \permanent\protected\def\mathlimop#1{\mathatom \mathoperatorcode options "C0000 {#1}} % auto "40000 + "80000
+% \permanent\protected\def\mathnolop#1{\mathatom \mathoperatorcode options "80000 {#1}}
\aliased\let\mathnothing\firstofoneunexpanded
\aliased\let\mathalpha \firstofoneunexpanded
% todo 'frac' and 'rad'
-\setnewconstant\mathordcode \zerocount \letcsname\??mathcodecommand ord\endcsname\mathord
-\setnewconstant\mathopcode \plusone \letcsname\??mathcodecommand op\endcsname\mathop
-\setnewconstant\mathbincode \plustwo \letcsname\??mathcodecommand bin\endcsname\mathbin
-\setnewconstant\mathrelcode \plusthree \letcsname\??mathcodecommand rel\endcsname\mathrel
-\setnewconstant\mathopencode \plusfour \letcsname\??mathcodecommand open\endcsname\mathopen
-\setnewconstant\mathclosecode \plusfive \letcsname\??mathcodecommand close\endcsname\mathclose
-\setnewconstant\mathpunctcode \plussix \letcsname\??mathcodecommand punct\endcsname\mathpunct
-\setnewconstant\mathalphacode \plusseven \letcsname\??mathcodecommand alpha\endcsname\mathalpha
-\setnewconstant\mathinnercode \zerocount \letcsname\??mathcodecommand inner\endcsname\mathinner
-\setnewconstant\mathnothingcode \zerocount \letcsname\??mathcodecommand nothing\endcsname\mathnothing
-\setnewconstant\mathlimopcode \plusone \letcsname\??mathcodecommand limop\endcsname\mathlimop
-\setnewconstant\mathnolopcode \plusone \letcsname\??mathcodecommand nolop\endcsname\mathnolop
-\setnewconstant\mathboxcode \zerocount \letcsname\??mathcodecommand box\endcsname\mathbox
-\setnewconstant\mathchoicecode \zerocount %letcsname\??mathcodecommand choice\endcsname\mathnothing
-
-\setnewconstant\mathaccentcode \pluseight
-\setnewconstant\mathradicalcode \plusnine
+% why not \aliased ?
+
+\letcsname\??mathcodecommand ord\endcsname\mathord
+\letcsname\??mathcodecommand op\endcsname\mathop
+\letcsname\??mathcodecommand bin\endcsname\mathbin
+\letcsname\??mathcodecommand rel\endcsname\mathrel
+\letcsname\??mathcodecommand open\endcsname\mathopen
+\letcsname\??mathcodecommand close\endcsname\mathclose
+\letcsname\??mathcodecommand punct\endcsname\mathpunct
+\letcsname\??mathcodecommand inner\endcsname\mathinner % hm
+%letcsname\??mathcodecommand fraction\endcsname\mathnothing
+%letcsname\??mathcodecommand radical\endcsname\mathnothing
+%letcsname\??mathcodecommand middle\endcsname\mathnothing
+\letcsname\??mathcodecommand limop\endcsname\mathlimop
+\letcsname\??mathcodecommand nolop\endcsname\mathnolop
+
+% obsolete
+
+\letcsname\??mathcodecommand box\endcsname\mathbox
+%letcsname\??mathcodecommand choice\endcsname\mathnothing
+\letcsname\??mathcodecommand alpha\endcsname\mathalpha % hm
+\letcsname\??mathcodecommand nothing\endcsname\mathnothing
\permanent \def\mathcodenumber #1{\the\csname math#1code\endcsname}
\permanent\protected\def\mathcodecommand#1{\csname\??mathcodecommand#1\endcsname}
@@ -742,79 +1327,51 @@
% \relax
% \hskip-.01\emwidth}
-\protected\def\math_strut_ht#1% nasty!
- {\s!height\dimexpr(\fontcharht#1\c_math_strut/\glyphscale)*\mathscale#1\relax}
+\let\math_strut_math_style\normalmathstyle
-\protected\def\math_strut_dp#1% nasty!
- {\s!depth \dimexpr(\fontchardp#1\c_math_strut/\glyphscale)*\mathscale#1\relax}
+% using \s!font \mathstylefontid\mathstyle\fam would needs expansion and guesswork
-\protected\def\math_strut_htdp#1% nasty!
- {\math_strut_ht{#1}%
- \math_strut_dp{#1}}
-
-\protected\def\math_strut_normal
- {\vrule
+\appendtoks
+ \Umathruleheight\alltextstyles \strutheightfactor\fontspecifiedsize\textfont \zerocount
+ \Umathruledepth \alltextstyles \strutdepthfactor \fontspecifiedsize\textfont \zerocount
+ \Umathruleheight\allscriptstyles \strutheightfactor\fontspecifiedsize\scriptfont \zerocount
+ \Umathruledepth \allscriptstyles \strutdepthfactor \fontspecifiedsize\scriptfont \zerocount
+ \Umathruleheight\allscriptscriptstyles\strutheightfactor\fontspecifiedsize\scriptscriptfont\zerocount
+ \Umathruledepth \allscriptscriptstyles\strutdepthfactor \fontspecifiedsize\scriptscriptfont\zerocount
+ \Umathruleheight\alldisplaystyles \Umathruleheight\textstyle
+ \Umathruledepth \alldisplaystyles \Umathruledepth \textstyle
+\to \everybodyfont
+
+\protected\def\math_strut
+ {\normalsrule
\s!width \zeropoint
- \normalexpanded{\math_strut_htdp{\mathstylefont\normalmathstyle}}%
+ \s!fam \fam
+ \s!char \c_math_strut
\relax}
-\protected\def\math_strut_visual
- {\hskip-.01\emwidth
- \vrule
- \s!width .02\emwidth
- \normalexpanded{\math_strut_htdp{\mathstylefont\normalmathstyle}}%
- \relax
- \hskip-.01\emwidth}
-
-\permanent\protected\def\math_strut_height_normal
- {\vrule
+\permanent\protected\def\math_strut_height
+ {\normalsrule
\s!width \zeropoint
- \normalexpanded{\math_strut_ht{\mathstylefont\normalmathstyle}}%
\s!depth \zeropoint
+ \s!fam \fam
+ \s!char \c_math_strut
\relax}
-\permanent\protected\def\math_strut_height_visual
- {\hskip-.01\emwidth
- \vrule
- \s!width .02\emwidth
- \normalexpanded{\math_strut_ht{\mathstylefont\normalmathstyle}}%
- \s!depth \zeropoint
- \relax
- \hskip-.01\emwidth}
-
-\permanent\protected\def\math_strut_depth_normal
- {\vrule
+\permanent\protected\def\math_strut_depth
+ {\normalsrule
\s!width \zeropoint
\s!height\zeropoint
- \normalexpanded{\math_strut_dp{\mathstylefont\normalmathstyle}}%
+ \s!fam \fam
+ \s!char \c_math_strut
\relax}
-\permanent\protected\def\math_strut_depth_visual
- {\hskip-.01\emwidth
- \vrule
- \s!width .02\emwidth
- \s!height\zeropoint
- \normalexpanded{\math_strut_dp{\mathstylefont\normalmathstyle}}%
- \relax
- \hskip-.01\emwidth}
-
\permanent\protected\def\showmathstruts % let's not overload \math_strut_normal
- {\enforced\let\math_strut \math_strut_visual
- \enforced\let\math_strut_height\math_strut_height_visual
- \enforced\let\math_strut_depth \math_strut_depth_visual}
-
-\let\math_strut \math_strut_normal
-\let\math_strut_height\math_strut_height_normal
-\let\math_strut_depth \math_strut_depth_normal
-
-% \protected\def\mathstrut{\mathcodecommand{nothing}{\math_strut}}
+ {\showmakeup[strut]}
\pushoverloadmode
-
- \definemathcommand [mathstrut] {\math_strut}
- \definemathcommand [mathheightstrut] {\math_strut_height}
- \definemathcommand [mathdepthstrut] {\math_strut_depth}
-
+ \permanent\protected\def\mathstrut {\math_strut}
+ \permanent\protected\def\mathheightstrut{\math_strut_height}
+ \permanent\protected\def\mathdepthstrut {\math_strut_depth}
\popoverloadmode
%D We could have a arg variant \unknown\ but not now.
@@ -887,8 +1444,8 @@
\let\math_tags_mo\firstofoneunexpanded
\let\math_tags_mi\firstofoneunexpanded
-\protected\def\math_tags_mn#1{\begingroup\mathupright\math_set_o_both#1\endgroup}
-\protected\def\math_tags_ms#1{\begingroup\mathupright\math_set_p_both#1\endgroup} % why not just \text
+\protected\def\math_tags_mn#1{\begingroup\math_upright\math_set_o_both#1\endgroup}
+\protected\def\math_tags_ms#1{\begingroup\math_upright\math_set_p_both#1\endgroup} % why not just \text
% Once this is stable we can store the number at the tex end which is
% faster. Functions getnumbers >= 1000.
@@ -901,52 +1458,72 @@
\c!functionstyle=, % rm ss etc i.e. known alternatives, otherwise math
\c!functioncolor=]
-\protected\def\math_mfunction_styled
+% \protected\def\math_mfunction_styled
+% {%\begingroup
+% \usemathematicscolorparameter\c!functioncolor
+% \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}%
+% \ifempty\p_functionstyle
+% \expandafter\math_mfunction_styled_none
+% \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname
+% \expandafter\math_mfunction_styled_text
+% \else
+% \expandafter\math_mfunction_styled_math
+% \fi}
+%
+% \protected\def\math_mfunction_styled_text#1%
+% {\expandafter$\expandafter\mathoptext\expandafter{\lastnamedcs#1}$%
+% %{\normalexpanded{$\mathoptext{\csname\??alternativestyle\p_functionstyle\endcsname#1}$}%
+% }%\endgroup}
+%
+% \protected\def\math_mfunction_styled_math#1%
+% {\p_functionstyle
+% #1%
+% }%\endgroup}
+%
+% \protected\def\math_mfunction_styled_none#1%
+% {\math_upright
+% #1%
+% }%\endgroup}
+%
+% \permanent\protected\def\mfunction#1%
+% {\mathatom mathfont class \mathfunctioncode \bgroup
+% \math_tags_mfunctiontxt{#1}\c_apply_function
+% \hbox{\math_mfunction_styled{#1}}%
+% \egroup}
+%
+% \permanent\protected\def\mfunctionlabeltext#1%
+% {\mathatom mathfont class \mathfunctioncode \bgroup
+% \math_tags_mfunctionlab{#1}\c_apply_function
+% \hbox{\math_mfunction_styled{\mathlabeltext{#1}}}%
+% \egroup}
+
+\def\math_function_handle#1#2%
{\begingroup
\usemathematicscolorparameter\c!functioncolor
\edef\p_functionstyle{\mathematicsparameter\c!functionstyle}%
\ifempty\p_functionstyle
- \expandafter\math_mfunction_styled_none
+ \expandafter\math_upright
\orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname
- \expandafter\math_mfunction_styled_text
+ \expandafter\lastnamedcs
\else
- \expandafter\math_mfunction_styled_math
- \fi}
-
-\protected\def\math_mfunction_styled_text#1%
- %{\mathoptext{\csname\??alternativestyle\p_functionstyle\endcsname#1}%
- {\expandafter\mathoptext\expandafter{\lastnamedcs#1}%
- \endgroup}
-
-\protected\def\math_mfunction_styled_math#1%
- {\p_functionstyle
- #1%
- \endgroup}
-
-\protected\def\math_mfunction_styled_none#1%
- {\mathupright
- #1%
- \endgroup}
-
-\permanent\protected\def\mfunction#1%
- {\begingroup
- \math_tags_mfunctiontxt{#1}\c_apply_function
- \math_mfunction_styled{#1}%
+ \expandafter\p_functionstyle
+ \fi
+ \mathatom mathfont class \mathfunctioncode \bgroup
+ \math_tags_mfunctionlab{#2}\c_apply_function % maybe move this before mathatom
+ #1{#2}%
+ \egroup
\endgroup}
-\permanent\protected\def\mfunctionlabeltext#1%
- {\begingroup
- \math_tags_mfunctionlab{#1}\c_apply_function
- \math_mfunction_styled{\mathlabeltext{#1}}%
- \endgroup}
+\permanent\protected\def\mfunction {\math_function_handle\firstofoneargument}
+\permanent\protected\def\mfunctionlabeltext{\math_function_handle\mathlabeltext}
\let\math_tags_mfunctiontxt\gobbletwoarguments
\let\math_tags_mfunctionlab\gobbletwoarguments
-\permanent\protected\def\math_tags_mo_indeed#1{\begingroup \c_attr_mathcategory\plusone #1\endgroup}
-\permanent\protected\def\math_tags_mi_indeed#1{\begingroup \c_attr_mathcategory\plustwo #1\endgroup}
-\permanent\protected\def\math_tags_mn_indeed#1{\begingroup\mathupright\c_attr_mathcategory\plusthree\math_set_o_both#1\endgroup}
-\permanent\protected\def\math_tags_ms_indeed#1{\begingroup\mathupright\c_attr_mathcategory\plusfour \math_set_p_both#1\endgroup} % todo: mathoptext
+\permanent\protected\def\math_tags_mo_indeed#1{\begingroup \c_attr_mathcategory\plusone #1\endgroup}
+\permanent\protected\def\math_tags_mi_indeed#1{\begingroup \c_attr_mathcategory\plustwo #1\endgroup}
+\permanent\protected\def\math_tags_mn_indeed#1{\begingroup\math_upright\c_attr_mathcategory\plusthree\math_set_o_both#1\endgroup}
+\permanent\protected\def\math_tags_ms_indeed#1{\begingroup\math_upright\c_attr_mathcategory\plusfour \math_set_p_both#1\endgroup} % todo: mathoptext
\newconditional\c_apply_function
@@ -1063,7 +1640,7 @@
\activatemathcharacter\underscoreasciicode
\activatemathcharacter\ampersandasciicode
-\permanent\def\normalmathaligntab{&} % \let\normalmathaligntab\aligntab does to work well in a let to & (a def works ok)
+\permanent\def\normalmathaligntab{&} % \let\normalmathaligntab\aligntab doesn;t work well in a let to & (a def works ok)
\appendtoks
\edef\p_ampersand{\mathematicsparameter\s!ampersand}%
@@ -1773,6 +2350,8 @@
\bgroup
+ % This can adn will be replaced by classes:
+
\catcode\c_math_comma \activecatcode
\catcode\c_math_period \activecatcode
\catcode\c_math_semicolon\activecatcode
@@ -1902,20 +2481,24 @@
% 7 = crampedscriptscript
\permanent\def\uncramped#1%
- {{\ifmathstyle
+ {\beginmathgroup
+ \ifmathstyle
\or \displaystyle \or
\or \textstyle \or
\or \scriptstyle \or
\or \scriptscriptstyle \fi
- #1}}
+ #1%
+ \endmathgroup}
\permanent\def\cramped#1%
- {{\ifmathstyle
+ {\beginmathgroup
+ \ifmathstyle
\crampeddisplaystyle \or \or % 0 -> 1
\crampedtextstyle \or \or % 2 -> 3
\crampedscriptstyle \or \or % 4 -> 5
\crampedscriptscriptstyle \fi % 6 -> 7
- #1}}
+ #1%
+ \endmathgroup}
\permanent\def\triggermathstyle#1{\Ustyle\numexpr#1\relax}
%permanent\def\mathstyletrigger#1{\numexpr#1\relax}
@@ -1986,6 +2569,9 @@
\textface
\fi}
+% \permanent\def\mathstyleface#1% #1 is number (\normalmathstyle)
+% {\mathstylefont#1\relax}
+
\permanent\def\mathsmallstyleface#1% #1 is number (\normalmathstyle)
{\ifcase\numexpr#1\relax
\scriptface \or
@@ -1999,6 +2585,19 @@
\scriptface
\fi}
+% \permanent\def\mathsmallstyleface#1% #1 is number (\normalmathstyle)
+% {\mathstylefont\ifcase\numexpr#1\relax
+% \scriptstyle \or
+% \scriptstyle \or
+% \scriptstyle \or
+% \scriptstyle \or
+% \scriptscriptstyle \or
+% \scriptscriptstyle \or
+% \scriptscriptstyle \or
+% \scriptscriptstyle \else
+% \scriptstyle
+% \fi}
+
\permanent\def\mathstylecommand#1#2#3%
{\ifcase\numexpr\normalmathstyle\relax
\expandafter#1\or
@@ -2570,7 +3169,7 @@
\mathscriptboxmode \plustwo % lists and boxes
\mathscriptcharmode \plusone % lists and boxes
%mathscriptboxmode \plusthree % lists and boxes with \boundary=1 (also for testing and demo)
-\mathrulethicknessmode\plusone % adaptive
+%mathrulethicknessmode\plusone % adaptive
\permanent\protected\def\mathtext {\mathortext{\math_text_choice_font\relax}\hbox}
\permanent\protected\def\mathword {\mathortext{\math_text_choice_word\relax}\hbox}
@@ -3132,28 +3731,41 @@
\installcorenamespace{mathspacing}
-\protected\def\math_spacing_set#1#2% maybe some day \allmathstyles
- {\relax
- #1\displaystyle #2%
- #1\crampeddisplaystyle#2%
- #1\textstyle #2%
- #1\scriptstyle #2%
- #1\crampedscriptstyle #2%
- #1\scriptstyle #2%
- #1\crampedscriptstyle #2%
- \relax}
+% \protected\def\math_spacing_set#1#2% maybe some day \allmathstyles
+% {\relax
+% #1\displaystyle #2%
+% #1\crampeddisplaystyle#2%
+% #1\textstyle #2%
+% #1\scriptstyle #2%
+% #1\crampedscriptstyle #2%
+% #1\scriptstyle #2%
+% #1\crampedscriptstyle #2%
+% \relax}
+%
+% \permanent\tolerant\protected\def\definemathspacing[#1]#*[#2]#*[#3]%
+% {\ifcstok{#2}\v!horizontal
+% \edefcsname\??mathspacing#1\endcsname
+% {\math_spacing_set\Umathxscale{\ifchknum#3\or#3\else\plusthousand\fi\relax}}%
+% \orelse\ifcstok{#2}\v!vertical
+% \edefcsname\??mathspacing#1\endcsname
+% {\math_spacing_set\Umathyscale{\ifchknum#3\or#3\else\plusthousand\fi\relax}}%
+% \else
+% \edefcsname\??mathspacing#1\endcsname
+% {\math_spacing_set\Umathxscale{\ifchknum#2\or\number#2\else\plusthousand\fi\relax}%
+% \math_spacing_set\Umathyscale{\ifchknum#3\or\number#3\orelse\ifchknum#2\or\number#2\else\plusthousand\fi\relax}}%
+% \fi}
\permanent\tolerant\protected\def\definemathspacing[#1]#*[#2]#*[#3]%
{\ifcstok{#2}\v!horizontal
\edefcsname\??mathspacing#1\endcsname
- {\math_spacing_set\Umathxscale{\ifchknum#3\or#3\else\plusthousand\fi\relax}}%
+ {\Umathxscale\allmathstyles\ifchknum#3\or#3\else\plusthousand\fi\relax}%
\orelse\ifcstok{#2}\v!vertical
\edefcsname\??mathspacing#1\endcsname
- {\math_spacing_set\Umathyscale{\ifchknum#3\or#3\else\plusthousand\fi\relax}}%
+ {\Umathyscale\allmathstyles\ifchknum#3\or#3\else\plusthousand\fi\relax}%
\else
\edefcsname\??mathspacing#1\endcsname
- {\math_spacing_set\Umathxscale{\ifchknum#2\or\number#2\else\plusthousand\fi\relax}%
- \math_spacing_set\Umathyscale{\ifchknum#3\or\number#3\orelse\ifchknum#2\or\number#2\else\plusthousand\fi\relax}}%
+ {\Umathxscale\allmathstyles\ifchknum#2\or\number#2\else\plusthousand\fi\relax
+ \Umathyscale\allmathstyles\ifchknum#3\or\number#3\orelse\ifchknum#2\or\number#2\else\plusthousand\fi\relax}%
\fi}
\definemathspacing[\v!normal] [1000] [1000]
@@ -3167,6 +3779,66 @@
\permanent\protected\def\setupmathspacing[#1]%
{\begincsname\??mathspacing#1\endcsname}
+\installcorenamespace {mathclasses}
+
+% \defcsname\??mathspacing +\endcsname
+% {\expandedloop\zerocount\plusseven\plusone
+% {\Umathxscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator+\plushundred\relax
+% \Umathyscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator+\plushundred\relax}}
+%
+% \defcsname\??mathspacing -\endcsname
+% {\expandedloop\zerocount\plusseven\plusone
+% {\Umathxscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator-\plushundred\relax
+% \Umathyscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator-\plushundred\relax}}
+
+% can become a lua call that globally defined it, then we can have
+% partials
+
+% todo: fences and stackers should be done the same: number or
+% name
+
+\letcsname\??mathclasses \endcsname\normalmathord
+\letcsname\??mathclasses ord\endcsname\normalmathord
+\letcsname\??mathclasses ordinary\endcsname\normalmathord
+\letcsname\??mathclasses op\endcsname\normalmathop
+\letcsname\??mathclasses operator\endcsname\normalmathop
+\letcsname\??mathclasses rel\endcsname\normalmathrel
+\letcsname\??mathclasses relation\endcsname\normalmathrel
+\letcsname\??mathclasses bin\endcsname\normalmathbin
+\letcsname\??mathclasses binary\endcsname\normalmathbin
+\letcsname\??mathclasses punct\endcsname\normalmathbin
+\letcsname\??mathclasses punctuation\endcsname\normalmathbin
+\letcsname\??mathclasses frac\endcsname\normalmathfrac
+\letcsname\??mathclasses fraction\endcsname\normalmathfrac
+\letcsname\??mathclasses rad\endcsname\normalmathrad
+\letcsname\??mathclasses radical\endcsname\normalmathrad
+
+\def\math_class_by_parameter#1%
+ {\normalexpanded{\noexpand\math_class_by_parameter_indeed{#1\c!mathclass}}}
+
+\def\math_class_by_parameter_indeed#1%
+ {\csname\??mathclasses\ifcsname\??mathclasses#1\endcsname#1\fi\endcsname}
+
+%D For now we define this here:
+
+\ifdefined\d \let\text_d\d \else \let\text_d\firstofoneargument \fi
+
+\pushoverloadmode
+
+ \permanent\protected\def\math_d{\mathatom unpack \mathdifferentialcode{d}}
+
+ \permanent\protected\def\d{\mathortext\math_d\text_d}
+
+\popoverloadmode
+
\protect \endinput
% % not used (yet)
diff --git a/tex/context/base/mkxl/math-int.mkxl b/tex/context/base/mkxl/math-int.mkxl
index 462c6587b..30d9643cf 100644
--- a/tex/context/base/mkxl/math-int.mkxl
+++ b/tex/context/base/mkxl/math-int.mkxl
@@ -13,29 +13,10 @@
\writestatus{loading}{ConTeXt Math Macros / Integrals}
-% todo: int and sum etc can be stackers
+%D This is replaced by the operator module.
\unprotect
-%D \startbuffer
-%D $\int _a^b f(x) dx $ and also
-%D $\iint _a^b f(x,y) dxdy$,
-%D $\iiint _a^b f(x,y) dxdy$,
-%D \startformula
-%D \int _a^b f(x) dx \quad
-%D \iint _a^b f(x) dx \quad
-%D \iiint _a^b f(x) dx \quad
-%D \stopformula
-%D \stopbuffer
-%D
-%D Default: \getbuffer
-%D
-%D Displaylimits: \setupmathematics[integral=displaylimits] \getbuffer
-%D
-%D Limits: \setupmathematics[integral=limits] \getbuffer
-
-%D Adapted to mkiv by HH from code by AM.
-
\installcorenamespace{mathintegral}
\newconstant\mathintlimitmode
@@ -64,78 +45,16 @@
\letcsname\??mathintegral none\endcsname\plusfour
\appendtoks
- \mathintlimitmode\executeifdefined{\??mathintegral\mathematicsparameter\s!integral}\zerocount
+ \mathintlimitmode
+ \ifcsname\??mathintegral\mathematicsparameter\s!integral\endcsname
+ \lastnamedcs
+ \else
+ \zerocount
+ \fi
\to \everyswitchmathematics
\setupmathematics
-% [\v!integral=nolimits]
- [\v!integral=autolimits]
-
-%D The following code is used for fallbacks and might become obsolete once
-%D we have enough \OPENTYPE\ math fonts.
-
-% \def\math_repeated_integal_i
-% {\int}
-
-% \def\math_repeated_integal_ii
-% {\math_repeated_integal_i
-% \math_repeated_integral_kern
-% \math_repeated_integal_i
-% \math_repeat_integral_finish
-% \intlimits}
-
-% \def\math_repeated_integal_iii
-% {\math_repeated_integal_i
-% \math_repeated_integral_kern
-% \math_repeated_integal_ii}
-%
-% \def\math_repeated_integal_iiii
-% {\math_repeated_integal_i
-% \math_repeated_integral_kern
-% \math_repeated_integal_iii}
-%
-% \protected\def\math_repeat_integral#1%
-% {\let\math_repeat_integral_finish\donothing
-% \iffontchar\textfont\zerocount#1\relax
-% \expandafter\math_repeat_integral_real
-% \else
-% \expandafter\math_repeat_integral_fake
-% \fi}
-%
-% \def\math_repeat_integral_fake#1#2%
-% {\let\math_repeat_integral_fake_symbol#2%
-% \futurelet\next\math_repeat_integral_fake_indeed}
-%
-% \def\math_repeat_integral_real#1#2%
-% {#1}
-%
-% \definemathcommand [iint] {\math_repeat_integral{"0222C}\normalint \math_repeated_integal_ii } % double
-% \definemathcommand [iiint] {\math_repeat_integral{"0222D}\normaliint \math_repeated_integal_iii } % tripple
-% \definemathcommand [iiiint] {\math_repeat_integral{"FFFFF}\normaliiint\math_repeated_integal_iiii} % quadruple
-%
-% \def\math_repeated_integral_kern
-% {\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
-%
-% \def\math_repeat_integral_fake_indeed
-% {\ifx\next\limits
-% \math_repeated_integral_correction
-% \orelse\ifx\next\displaylimits
-% \math_repeated_integral_correction
-% \orelse\ifx\next\nolimits
-% % nothing
-% \orelse\ifcase\mathintlimitmode
-% % nothing
-% \else
-% \math_repeated_integral_correction
-% \fi
-% \math_repeat_integral_fake_symbol}
-%
-% \def\math_repeated_integral_correction
-% {\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
-% \mathop\bgroup\mkern7mu\mathchoice{\mkern2mu}{}{}{}\let\math_repeat_integral_finish\egroup}
-%
-% %D If the \type{\limits} option is used after \type {\iint}, use \type
-% %D {\mathop} and fudge the left hand space a bit to make the subscript
-% %D visually centered.
+% [\c!integral=nolimits]
+ [\c!integral=autolimits]
\protect \endinput
diff --git a/tex/context/base/mkxl/math-lop.mkxl b/tex/context/base/mkxl/math-lop.mkxl
new file mode 100644
index 000000000..c860b1318
--- /dev/null
+++ b/tex/context/base/mkxl/math-lop.mkxl
@@ -0,0 +1,143 @@
+%D \module
+%D [ file=math-lop,
+%D version=2022.02.10,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Large operators,
+%D author={Hans Hagen & Mikael Sundqvist},
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Large Operators}
+
+% $\textstyle \Uoperator \Udelimiter "0 \fam "222B {t} {b} {x}$\blank
+% $\textstyle \Uoperator \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+% $\displaystyle x + \Uoperator \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+% $ x + \Uoperator nolimits \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+% $ x + \Uoperator limits \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+
+\unprotect
+
+\installcorenamespace{mathoperators}
+\installcorenamespace{mathoperatormethod}
+
+\installcommandhandler \??mathoperators {mathoperator} \??mathoperators
+
+\setupmathoperator
+ [\c!left=\zerocount]% so we always have something
+
+\aliased\let\setupmathoperators\setupmathoperator
+
+\appendtoks
+ % todo: only define when there's left or right
+ \protected\instance\edefcsname\currentmathoperator\endcsname{\math_operator{\currentmathoperator}}%
+ % todo: under definition control
+ \protected\instance\edefcsname\e!start\currentmathoperator\endcsname{\math_operator_start{\currentmathoperator}}%
+ \protected\instance\edefcsname\e!stop \currentmathoperator\endcsname{\math_operator_stop}%
+\to \everydefinemathoperator
+
+% more generic:
+
+\defcsname\??mathoperatormethod\v!horizontal\endcsname{nolimits }
+\defcsname\??mathoperatormethod\v!vertical \endcsname{limits }
+
+% The ones we wlready had:
+
+\letcsname\??mathoperatormethod \v!auto\endcsname\empty
+\letcsname\??mathoperatormethod autolimits\endcsname\empty
+\letcsname\??mathoperatormethod nolimits\expandafter\endcsname\csname\??mathoperatormethod\v!horizontal\endcsname
+\letcsname\??mathoperatormethod limits\expandafter\endcsname\csname\??mathoperatormethod\v!vertical \endcsname
+
+\installlocalcurrenthandler\??mathoperators {mathoperator}
+
+\protected\def\math_operator_operator#1#2%
+ {\setlocalmathoperatorcurrent{#1}% \edef\currentmathoperator{#1}%
+ \setupcurrentmathoperator[#2]%
+ \Uoperator
+ \usedcolorparameterattributes{\mathoperatorparameter\c!color}%
+ \begincsname\??mathoperatormethod\mathoperatorparameter\c!method\endcsname
+ \ifchkdim\mathoperatorparameter\c!size\or
+ \s!depth \mathoperatorparameter\c!size
+ \s!height\mathoperatorparameter\c!size
+ \s!axis
+ \orelse\ifcstok{\mathoperatorparameter\c!size}\v!auto
+ \s!auto
+ \fi
+ \s!class \mathoperatorcode
+ % todo: find a way to pick up or pass sup/sub to here
+ \Udelimiter \zerocount \fam \mathoperatorparameter\c!left
+ {\edef\m_operator_text{\mathoperatorparameter\c!top}%
+ \ifempty\m_operator_text\else
+ \mathstrut % todo: make option
+ \dousecolorparameter{\mathoperatorparameter\c!topcolor}
+ \m_operator_text
+ \fi}%
+ {\edef\m_operator_text{\mathoperatorparameter\c!bottom}%
+ \ifempty\m_operator_text\else
+ \mathstrut % todo: make option
+ \dousecolorparameter{\mathoperatorparameter\c!bottomcolor}
+ \m_operator_text
+ \fi}}
+
+\tolerant\protected\def\math_operator#1#*[#2]#*#:#=% mandate braces
+ {\math_operator_operator{#1}{#2}#3\Uright.}
+
+\tolerant\protected\def\math_operator_start#1#*[#2]%
+ {\math_operator_operator{#1}{#2}}
+
+\protected\def\math_operator_stop
+ {\Uright.}
+% {\Uright\Udelimiter\zerocount \fam \zerocount }
+
+% \def\math_operator_default_size % is now the auto option
+% {\ifconditional\indisplaymath\ifcase\Umathoperatorsize=\maxdimen\else
+% \Umathoperatorsize\displaystyle
+% \fi\fi}
+
+% TODO: Add 4 (inherited) classes and then define them automatically from char-def
+% instead.
+
+\setupmathoperators [integrals] [\c!size=\v!auto,\c!method=\mathematicsparameter\c!integral] % cf Mikael's wish
+\setupmathoperators [summations] [\c!size=\v!auto]
+\setupmathoperators [products] [\c!size=\v!auto]
+\setupmathoperators [operators] [\c!size=\v!auto]
+
+\definemathoperator [integral] [integrals] [\c!left="222B] % these might go unless we decide
+\definemathoperator [iintegral] [integrals] [\c!left="222C] % to have verbose parents but who
+\definemathoperator [iiintegral] [integrals] [\c!left="222D] % will use them
+
+\definemathoperator [int] [integrals] [\c!left="222B] % INTEGRAL
+\definemathoperator [iint] [integrals] [\c!left="222C] % DOUBLE INTEGRAL
+\definemathoperator [iiint] [integrals] [\c!left="222D] % TRIPLE INTEGRAL
+\definemathoperator [iiiint] [integrals] [\c!left="2A0C] % QUADRUPLE INTEGRAL OPERATOR
+\definemathoperator [oint] [integrals] [\c!left="222E] % CONTOUR INTEGRAL
+\definemathoperator [oiint] [integrals] [\c!left="222F] % SURFACE INTEGRAL
+\definemathoperator [oiiint] [integrals] [\c!left="2230] % VOLUME INTEGRAL
+\definemathoperator [intc] [integrals] [\c!left="2231] % CLOCKWISE INTEGRAL
+\definemathoperator [ointc] [integrals] [\c!left="2232] % CLOCKWISE CONTOUR INTEGRAL
+\definemathoperator [aointc] [integrals] [\c!left="2233] % ANTI CLOCKWISE CONTOUR INTEGRAL
+
+\definemathoperator [sum] [summations] [\c!left="2211] % N-ARY SUMMATION
+
+\definemathoperator [prod] [products] [\c!left="220F] % N-ARY PRODUCT
+\definemathoperator [coprod] [products] [\c!left="2210] % N-ARY COPRODUCT
+
+% todo: middles too
+
+\definemathoperator [bigwedge] [operators] [\c!left="22C0] % N-ARY LOGICAL AND
+\definemathoperator [bigvee] [operators] [\c!left="22C1] % N-ARY LOGICAL OR
+\definemathoperator [bigcap] [operators] [\c!left="22C2] % N-ARY LOGICAL INTERSECTION
+\definemathoperator [bigcup] [operators] [\c!left="22C3] % N-ARY UNION
+\definemathoperator [bigodot] [operators] [\c!left="2A00] % N-ARY CIRCLED DOT OPERATOR
+\definemathoperator [bigoplus] [operators] [\c!left="2A01] % N-ARY CIRCLED PLUS OPERATOR
+\definemathoperator [bigotimes] [operators] [\c!left="2A02] % N-ARY CIRCLED TIMES OPERATOR
+\definemathoperator [bigudot] [operators] [\c!left="2A03] % N-ARY UNION OPERATOR WITH DOT
+\definemathoperator [biguplus] [operators] [\c!left="2A04] % N-ARY UNION OPERATOR WITH PLUS
+\definemathoperator [bigsqcap] [operators] [\c!left="2A05] % N-ARY SQUARE INTERSECTION OPERATOR
+\definemathoperator [bigsqcup] [operators] [\c!left="2A06] % N-ARY SQUARE UNION OPERATOR
+\definemathoperator [bigtimes] [operators] [\c!left="2A09] % N-ARY TIMES OPERATOR
+
+\protect \endinput
diff --git a/tex/context/base/mkxl/math-noa.lmt b/tex/context/base/mkxl/math-noa.lmt
index 3699ae03c..e035a9f68 100644
--- a/tex/context/base/mkxl/math-noa.lmt
+++ b/tex/context/base/mkxl/math-noa.lmt
@@ -7,6 +7,9 @@ if not modules then modules = { } end modules ['math-noa'] = {
license = "see context related readme files"
}
+-- if specials and (specials[1] == "char" or specials[1] == "font") then -- can we avoid this
+-- ... better create a reverse mapping from the already present vectors
+
-- beware: this is experimental code and there will be a more generic (attribute value
-- driven) interface too but for the moment this is ok (sometime in 2015-2016 i will
-- start cleaning up as by then the bigger picture is clear and code has been used for
@@ -108,6 +111,7 @@ local setattrlist = nuts.setattrlist
local setwidth = nuts.setwidth
local setheight = nuts.setheight
local setdepth = nuts.setdepth
+local setoptions = nuts.setoptions
local getfield = nuts.getfield
local getnext = nuts.getnext
@@ -185,19 +189,22 @@ local nodecodes = nodes.nodecodes
local noadcodes = nodes.noadcodes
local fencecodes = nodes.fencecodes
-local ordinarynoad_code = noadcodes.ordinary
-local operatornoad_code = noadcodes.operator
-local binarynoad_code = noadcodes.binary
-local relationnoad_code = noadcodes.relation
-local opennoad_code = noadcodes.open
-local closenoad_code = noadcodes.close
+local ordinarynoad_code = noadcodes.ordinary
+local operatornoad_code = noadcodes.operator
+local binarynoad_code = noadcodes.binary
+local relationnoad_code = noadcodes.relation
+local opennoad_code = noadcodes.open
+local closenoad_code = noadcodes.close
+local middlenoad_code = noadcodes.middle
local punctuationnoad_code = noadcodes.punctuation
-local innernoad_code = noadcodes.inner
-local undernoad_code = noadcodes.under
-local overnoad_code = noadcodes.over
-local vcenternoad_code = noadcodes.vcenter
-local fractionnoad_code = noadcodes.fraction
-local radicalnoad_code = noadcodes.radical
+local innernoad_code = noadcodes.inner
+local fencednoad_code = noadcodes.fenced
+local undernoad_code = noadcodes.under
+local overnoad_code = noadcodes.over
+local vcenternoad_code = noadcodes.vcenter
+local fractionnoad_code = noadcodes.fraction
+local radicalnoad_code = noadcodes.radical
+local accentnoad_code = noadcodes.accent
local noad_code = nodecodes.noad
local accent_code = nodecodes.accent
@@ -230,6 +237,8 @@ local rightfence_code = fencecodes.right
-- local gf = getfield local gt = setmetatableindex("number") getfield = function(n,f) gt[f] = gt[f] + 1 return gf(n,f) end mathematics.GETFIELD = gt
-- local sf = setfield local st = setmetatableindex("number") setfield = function(n,f,v) st[f] = st[f] + 1 sf(n,f,v) end mathematics.SETFIELD = st
+-- TODO : get rid of done
+
local function process(start,what,n,parent)
if n then
@@ -280,10 +289,9 @@ local function process(start,what,n,parent)
local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
noad = getsup (start) if noad then process(noad,what,n,start) end -- list
noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- if getsubpre then
noad = getsuppre (start) if noad then process(noad,what,n,start) end -- list
noad = getsubpre (start) if noad then process(noad,what,n,start) end -- list
- end
+ noad = getfield(start,"prime") if noad then process(noad,what,n,start) end -- list
elseif id == mathchar_code or id == mathtextchar_code or id == delimiter_code then
break
elseif id == subbox_code or id == submlist_code then
@@ -300,24 +308,24 @@ local function process(start,what,n,parent)
noad = getfield(start,"scriptscript") if noad then process(noad,what,n,start) end -- list
elseif id == fence_code then
local noad = getfield(start,"delimiter") if noad then process(noad,what,n,start) end -- delimiter
+ noad = getfield(start,"top") if noad then process(noad,what,n,start) end -- list
+ noad = getfield(start,"bottom") if noad then process(noad,what,n,start) end -- list
elseif id == radical_code then
local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
noad = getsup (start) if noad then process(noad,what,n,start) end -- list
noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- if getsubpre then
noad = getsuppre (start) if noad then process(noad,what,n,start) end -- list
noad = getsubpre (start) if noad then process(noad,what,n,start) end -- list
- end
+ noad = getfield(start,"prime") if noad then process(noad,what,n,start) end -- delimiter
noad = getfield(start,"left") if noad then process(noad,what,n,start) end -- delimiter
noad = getfield(start,"degree") if noad then process(noad,what,n,start) end -- list
elseif id == accent_code then
local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
noad = getsup (start) if noad then process(noad,what,n,start) end -- list
noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- if getsubpre then
noad = getsuppre (start) if noad then process(noad,what,n,start) end -- list
noad = getsubpre (start) if noad then process(noad,what,n,start) end -- list
- end
+ noad = getfield(start,"prime") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"topaccent") if noad then process(noad,what,n,start) end -- list
noad = getfield(start,"botaccent") if noad then process(noad,what,n,start) end -- list
-- elseif id == style_code then
@@ -341,10 +349,9 @@ local function processnested(current,what,n)
noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
noad = getsup (current) if noad then process(noad,what,n,current) end -- list
noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- if getsubpre then
noad = getsuppre (current) if noad then process(noad,what,n,current) end -- list
noad = getsubpre (current) if noad then process(noad,what,n,current) end -- list
- end
+ noad = getfield (current,"prime") if noad then process(noad,what,n,current) end -- list
elseif id == subbox_code or id == submlist_code then
noad = getlist(current) if noad then process(noad,what,n,current) end -- list (not getlist !)
elseif id == fraction_code then
@@ -359,24 +366,24 @@ local function processnested(current,what,n)
noad = getfield(current,"scriptscript") if noad then process(noad,what,n,current) end -- list
elseif id == fence_code then
noad = getfield(current,"delimiter") if noad then process(noad,what,n,current) end -- delimiter
+ noad = getfield(current,"top") if noad then process(noad,what,n,current) end -- list
+ noad = getfield(current,"bottom") if noad then process(noad,what,n,current) end -- list
elseif id == radical_code then
noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
noad = getsup (current) if noad then process(noad,what,n,current) end -- list
noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- if getsubpre then
noad = getsuppre (current) if noad then process(noad,what,n,current) end -- list
noad = getsubpre (current) if noad then process(noad,what,n,current) end -- list
- end
+ noad = getfield(current,"prime") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"left") if noad then process(noad,what,n,current) end -- delimiter
noad = getfield(current,"degree") if noad then process(noad,what,n,current) end -- list
elseif id == accent_code then
noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
noad = getsup (current) if noad then process(noad,what,n,current) end -- list
noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- if getsubpre then
noad = getsuppre (current) if noad then process(noad,what,n,current) end -- list
noad = getsubpre (current) if noad then process(noad,what,n,current) end -- list
- end
+ noad = getfield(current,"prime") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"topaccent") if noad then process(noad,what,n,current) end -- list
noad = getfield(current,"botaccent") if noad then process(noad,what,n,current) end -- list
end
@@ -389,10 +396,9 @@ local function processstep(current,process,n,id)
noad = getnucleus(current) if noad then process(noad,n,current) end -- list
noad = getsup (current) if noad then process(noad,n,current) end -- list
noad = getsub (current) if noad then process(noad,n,current) end -- list
- if getsubpre then
noad = getsuppre (current) if noad then process(noad,n,current) end -- list
noad = getsubpre (current) if noad then process(noad,n,current) end -- list
- end
+ noad = getfield (current,"prime") if noad then process(noad,n,current) end -- list
elseif id == subbox_code or id == submlist_code then
noad = getlist(current) if noad then process(noad,n,current) end -- list (not getlist !)
elseif id == fraction_code then
@@ -407,24 +413,24 @@ local function processstep(current,process,n,id)
noad = getfield(current,"scriptscript") if noad then process(noad,n,current) end -- list
elseif id == fence_code then
noad = getfield(current,"delimiter") if noad then process(noad,n,current) end -- delimiter
+ noad = getfield(current,"top") if noad then process(noad,n,current) end -- list
+ noad = getfield(current,"bottom") if noad then process(noad,n,current) end -- list
elseif id == radical_code then
noad = getnucleus(current) if noad then process(noad,n,current) end -- list
noad = getsup (current) if noad then process(noad,n,current) end -- list
noad = getsub (current) if noad then process(noad,n,current) end -- list
- if getsubpre then
noad = getsuppre (current) if noad then process(noad,n,current) end -- list
noad = getsubpre (current) if noad then process(noad,n,current) end -- list
- end
+ noad = getfield(current,"prime") if noad then process(noad,n,current) end -- delimiter
noad = getfield(current,"left") if noad then process(noad,n,current) end -- delimiter
noad = getfield(current,"degree") if noad then process(noad,n,current) end -- list
elseif id == accent_code then
noad = getnucleus(current) if noad then process(noad,n,current) end -- list
noad = getsup (current) if noad then process(noad,n,current) end -- list
noad = getsub (current) if noad then process(noad,n,current) end -- list
- if getsubpre then
noad = getsuppre (current) if noad then process(noad,n,current) end -- list
noad = getsubpre (current) if noad then process(noad,n,current) end -- list
- end
+ noad = getfield(current,"prime") if noad then process(noad,n,current) end -- list
noad = getfield(current,"topaccent") if noad then process(noad,n,current) end -- list
noad = getfield(current,"botaccent") if noad then process(noad,n,current) end -- list
end
@@ -837,40 +843,44 @@ end
do
+ -- todo: use registerattribute
+
local a_mathsize = privateattribute("mathsize") -- this might move into other fence code
local resize = { }
resize[fence_code] = function(pointer)
local subtype = getsubtype(pointer)
- if subtype == leftfence_code or subtype == rightfence_code then
+ -- if subtype == leftfence_code or subtype == rightfence_code then
local a = getattr(pointer,a_mathsize)
if a and a > 0 then
local method = div(a,100)
local size = a % 100
setattr(pointer,a_mathsize,0)
local delimiter = getfield(pointer,"delimiter")
- local chr, fnt, fam = getcharspec(delimiter)
- if chr > 0 and fnt > 0 then
- local data = fontdata[fnt]
- local char = mathematics.big(data,chr,size,method)
- local ht = getheight(pointer)
- local dp = getdepth(pointer)
- if ht == 1 or dp == 1 then -- 1 scaled point is a signal
- local chardata = data.characters[char]
- if ht == 1 then
- setheight(pointer,chardata.height)
+ if delimiter then
+ local chr, fnt, fam = getcharspec(delimiter)
+ if chr > 0 and fnt > 0 then
+ local data = fontdata[fnt]
+ local char = mathematics.big(data,chr,size,method)
+ local ht = getheight(pointer)
+ local dp = getdepth(pointer)
+ if ht == 1 or dp == 1 then -- 1 scaled point is a signal
+ local chardata = data.characters[char]
+ if ht == 1 then
+ setheight(pointer,chardata.height)
+ end
+ if dp == 1 then
+ setdepth(pointer,chardata.depth)
+ end
end
- if dp == 1 then
- setdepth(pointer,chardata.depth)
+ if trace_fences then
+ report_fences("replacing %C by %C using method %a and size %a",chr,char,method,size)
end
+ setchar(delimiter,char)
end
- if trace_fences then
- report_fences("replacing %C by %C using method %a and size %a",chr,char,method,size)
- end
- setchar(delimiter,char)
end
end
- end
+ -- end
end
function handlers.resize(head,style,penalties)
@@ -930,7 +940,7 @@ do
-- f_c or "?"
-- )
local list = new_submlist()
- setsubtype(noad,innernoad_code)
+ setsubtype(noad,fencednoad_code)
setnucleus(noad,list)
setlist(list,f_o)
setlink(f_o,o_next) -- prev of list is nil
@@ -993,8 +1003,8 @@ do
local f_c = makefence(rightfence_code,close)
local c_prev = getprev(close)
local f_next = getnext(first)
- makelist(middle, close, f_o,f_next,c_prev,f_c)
- -- close is now a list
+ makelist(middle,close,f_o,f_next,c_prev,f_c)
+ -- close is now a list : inner but should be fenced
if c_prev ~= first then
setlink(first,close)
end
@@ -1003,7 +1013,7 @@ do
local stacks = setmetatableindex("table")
- -- 1=open 2=close 3=middle 4=both
+ -- 1=open 2=close 3=middle 4=both : todo check both
local function processfences(pointer,n,parent)
local current = pointer
@@ -1811,14 +1821,17 @@ do
[binarynoad_code] = true, -- new
[relationnoad_code] = true,
[opennoad_code] = true, -- new
+ [middlenoad_code] = true, -- new
[closenoad_code] = true, -- new
[punctuationnoad_code] = true, -- new
[innernoad_code] = false,
+ [fencednoad_code] = false,
[undernoad_code] = false,
[overnoad_code] = false,
[vcenternoad_code] = false,
- [fractionnoad_code] = false,
+ [fractionnoad_code] = true,
[radicalnoad_code] = false,
+ [accentnoad_code] = true,
}
local reported = setmetatableindex("table")
@@ -1928,111 +1941,64 @@ do
end
do
- -- inner under over vcenter
+ -- todo: make a primes class
local fixscripts = { }
--- local movesub = {
--- -- primes
--- [0x2032] = 0xFE932,
--- [0x2033] = 0xFE933,
--- [0x2034] = 0xFE934,
--- [0x2057] = 0xFE957,
--- -- reverse primes
--- [0x2035] = 0xFE935,
--- [0x2036] = 0xFE936,
--- [0x2037] = 0xFE937,
--- }
---
--- mathematics.virtualize(movesub)
- local movesub = {
+ local primes = {
-- primes
- [0x2032] = 0x2032,
- [0x2033] = 0x2033,
- [0x2034] = 0x2034,
- [0x2057] = 0x2057,
+ [0x2032] = true,
+ [0x2033] = true,
+ [0x2034] = true,
+ [0x2057] = true,
-- reverse primes
- [0x2035] = 0x2035,
- [0x2036] = 0x2036,
- [0x2037] = 0x2037,
+ [0x2035] = true,
+ [0x2036] = true,
+ [0x2037] = true,
}
- local nosuperscript_code = tex.mathoptioncodes.nosuperscript
-
- local function fixsupscript(parent,current,current_char,new_char)
- if new_char ~= current_char and new_char ~= true then
- setchar(current,new_char)
- if trace_fixing then
- report_fixing("fixing subscript, replacing superscript %U by %U",current_char,new_char)
- end
- else
- if trace_fixing then
- report_fixing("fixing subscript, superscript %U",current_char)
- end
- end
- setfield(parent,"options",nosuperscript_code)
- end
-
- local function move_none_none(parent,prev,nuc,oldchar,newchar)
- fixsupscript(prev,nuc,oldchar,newchar)
- local sub = getsub(parent)
- setsup(prev,nuc)
- setsub(prev,sub)
- local dummy = copy_node(nuc)
- setchar(dummy,0)
- setnucleus(parent,dummy)
- setsub(parent)
- end
-
- local function move_none_psub(parent,prev,nuc,oldchar,newchar)
- fixsupscript(prev,nuc,oldchar,newchar)
- setsup(prev,nuc)
- local dummy = copy_node(nuc)
- setchar(dummy,0)
- setnucleus(parent,dummy)
- end
+ local fixable = {
+ [noad_code] = true,
+ [accent_code] = true,
+ [radical_code] = true,
+ [fraction_code] = true,
+ }
fixscripts[mathchar_code] = function(pointer,what,n,parent,nested) -- todo: switch to turn in on and off
if parent then
- local oldchar = getchar(pointer)
- local newchar = movesub[oldchar]
- if newchar then
+ local char = getchar(pointer)
+ if char and primes[char] then
local nuc = getnucleus(parent)
if pointer == nuc then
- local sub = getsub(pointer)
- local sup = getsup(pointer)
- if sub then
- if sup then
- -- print("[char] sub sup")
- else
- -- print("[char] sub ---")
+ local prev = getprev(parent)
+ if prev and fixable[getid(prev)] then
+ local prevsup = getsup(prev)
+ local prevsub = getsub(prev)
+ local primesup = getsup(parent)
+ local primesub = getsub(parent)
+ setfield(prev,"scriptorder",prevsub and 2 or 1) -- sub first
+ if primesup and not prevsup then
+ setsup(prev,primesup)
+ primesup = nil
end
- elseif sup then
- -- print("[char] --- sup")
- else
- local prev = getprev(parent)
- if prev and getid(prev) == noad_code then
- local psub = getsub(prev)
- local psup = getsup(prev)
- if psub then
- if psup then
- -- print("sub sup [char] --- ---")
- else
- -- print("sub --- [char] --- ---")
- move_none_psub(parent,prev,nuc,oldchar,newchar)
- end
- elseif psup then
- -- print("--- sup [char] --- ---")
- else
- -- print("[char] --- ---")
- move_none_none(parent,prev,nuc,oldchar,newchar)
- end
- else
- -- print("no prev [char]")
+ if primesub and not prevsub then
+ setsub(prev,primesub)
+ primesub = nil
+ end
+ setfield(prev,"prime",nuc)
+ setnucleus(parent)
+ if not primesup then
+ setsup(parent)
+ end
+ if not primesub then
+ setsub(parent)
+ end
+ if not (primesup or primesub) then
+ setlink(prev,getnext(parent))
+ flushnode(parent)
+ return true, prev, prev
end
end
- else
- -- print("[char]")
end
end
end
@@ -2119,10 +2085,12 @@ do
[ordinarynoad_code] = "trace:db",
[binarynoad_code] = "trace:dg",
[opennoad_code] = "trace:dm",
+ [middlenoad_code] = "trace:dm",
[closenoad_code] = "trace:dm",
[punctuationnoad_code] = "trace:dc",
-- [operatornoad_code] = "",
-- [innernoad_code = "",
+ -- [fencednoad_code = "",
-- [undernoad_code] = "",
-- [overnoad_code] = "",
-- [vcenternoad_code] = "",
@@ -2176,6 +2144,7 @@ do
relation = relationnoad_code,
punctuation = punctuationnoad_code,
inner = innernoad_code,
+ fenced = fencednoad_code,
-- fraction = fractionnoad_code,
-- radical = radicalnoad_code,
}
diff --git a/tex/context/base/mkxl/math-pln.mkxl b/tex/context/base/mkxl/math-pln.mkxl
index 81008f37b..354f33a5f 100644
--- a/tex/context/base/mkxl/math-pln.mkxl
+++ b/tex/context/base/mkxl/math-pln.mkxl
@@ -26,7 +26,7 @@
\permanent\protected\def\hrulefill{\leaders\hrule\hfill}
%protected\def\dotfill {\cleaders\hbox{\normalstartimath\mathsurround\zeropoint\mkern1.5mu.\mkern1.5mu\normalstopimath}\hfill}
-% will move
+% will move .. not used anyway
\permanent\def\oalign#1%
{\leavevmode % plain tex uses this
@@ -41,9 +41,9 @@
% needs checking
-\permanent\protected\def\choose{\atopwithdelims()}
-\permanent\protected\def\brack {\atopwithdelims[]}
-\permanent\protected\def\brace {\atopwithdelims\{\}}
+\permanent\protected\def\choose{\atopwithdelims()} % used in korean test file, has to go
+%permanent\protected\def\brack {\atopwithdelims[]}
+%permanent\protected\def\brace {\atopwithdelims\{\}}
% needs checking
diff --git a/tex/context/base/mkxl/math-rad.mklx b/tex/context/base/mkxl/math-rad.mklx
index 041681f0b..de8c2e9a6 100644
--- a/tex/context/base/mkxl/math-rad.mklx
+++ b/tex/context/base/mkxl/math-rad.mklx
@@ -30,19 +30,19 @@
\protected\def\sqrt{\doifelsenextoptionalcs\rootwithdegree\rootwithoutdegree} % will be redefined
-\permanent\protected\def\styledrootradical#1#2% so that \text works ok ... \rootradical behaves somewhat weird
- {\normalexpanded{\rootradical
- {\normalunexpanded{#1}}%
- {\noexpand\triggermathstyle{\number\normalmathstyle}%
- \normalunexpanded{#2}}}}
+% \permanent\protected\def\styledrootradical#1#2% so that \text works ok ... \rootradical behaves somewhat weird
+% {\normalexpanded{\math_radical_common
+% {\normalunexpanded{#1}}%
+% {\noexpand\triggermathstyle{\number\normalmathstyle}%
+% \normalunexpanded{#2}}}}
% experimental new keyword: (maybe keywords should come after the symbol)
%
% \permanent\protected\def\styledrootradical#1#2% so that \text works ok ... \rootradical behaves somewhat weird
% {\Uroot style \normalmathstyle "0 "221A {#1}{#2}}
-\permanent\protected\def\rootwithdegree[#1]{\rootradical{#1}}
-\permanent\protected\def\rootwithoutdegree {\rootradical {}}
+\permanent\protected\def\rootwithdegree[#1]{\math_radical_common{#1}}
+\permanent\protected\def\rootwithoutdegree {\math_radical_common {}}
%D Even older stuff:
@@ -89,7 +89,8 @@
\setupmathradical
[\c!alternative=\v!normal,
- \c!mpoffset=.25\exheight]
+ \c!mpoffset=.25\exheight,
+ \c!source=\zerocount]
\appendtoks
\frozen\protected\instance\edefcsname\currentmathradical\endcsname{\math_radical_handle{\currentmathradical}}
@@ -98,10 +99,17 @@
\mutable\let\currentmathradical \empty
\mutable\let\currentmathradicaldegree\empty
-\tolerant\protected\def\math_radical_handle#tag#*[#degree]#:#body%
+\setmathignore\Umathradicaldegreebefore\plusone
+
+\tolerant\protected\def\math_radical_handle#tag#*[#settings]#*[#degree]#:#body%
{\begingroup
\edef\currentmathradical{#tag}%
- \edef\currentmathradicaldegree{#degree}%
+ \ifparameter#degree\or
+ \edef\currentmathradicaldegree{#degree}%
+ \setupcurrentmathradical[#settings]%
+ \else
+ \edef\currentmathradicaldegree{#settings}%
+ \fi
\ifempty\currentmathradicaldegree
\let\currentmathradicaldegree\m_math_no_degree
\fi
@@ -110,24 +118,38 @@
\def\m_math_no_degree{{}}
+% for every font
+%
+% \appendtoks
+% \Umathradicaldegreebefore\allmathstyles\zeropoint
+% \to \everymathematics
+
% style width [options: left middle right]
\def\math_radical_alternative{\csname\??mathradicalalternative\mathradicalparameter\c!alternative\endcsname}
+\integerdef\c_radical_unicode "221A
+
+\protected\def\math_radical_common
+ {\Uroot
+ \s!source\numexpr\namedboxanchor{\mathradicalparameter\c!source}\relax
+ \s!style \normalmathstyle
+ \zerocount \c_radical_unicode}
+
\defcsname\??mathradicalalternative\v!default\endcsname % #body%
- {\rootradical{\currentmathradicaldegree}} % {#body}}
+ {\math_radical_common{\currentmathradicaldegree}} % {#body}}
\defcsname\??mathradicalalternative\v!normal\endcsname#body%
{\edef\p_color{\mathradicalparameter\c!color}%
\ifempty\p_color
- \styledrootradical{\currentmathradicaldegree}{#body}% {} really needed as \rootradical expands first
+ \math_radical_common{\currentmathradicaldegree}{#body}% {} really needed as \rootradical expands first
\orelse\ifempty\currentmathradicaldegree
\pushcolor[\p_color]%
- \styledrootradical{\currentmathradicaldegree}%
+ \math_radical_common{\currentmathradicaldegree}%
{\popcolor#body}%
\else
\pushcolor[\p_color]%
- \styledrootradical{\popcolor\currentmathradicaldegree\pushcolor[\p_color]}%
+ \math_radical_common{\popcolor\currentmathradicaldegree\pushcolor[\p_color]}%
{\popcolor#body}%
\fi}
@@ -206,7 +228,8 @@
\c!mpoffset=.25\exheight]
\appendtoks
- \frozen\instance\setuevalue{\currentmathornament}{\math_ornament_handle{\currentmathornament}}%
+ \frozen\protected\instance\edefcsname\currentmathornament\endcsname
+ {\math_ornament_handle{\currentmathornament}}%
\to \everydefinemathornament
\protected\def\math_ornament_handle#tag#body%
diff --git a/tex/context/base/mkxl/math-scr.mkxl b/tex/context/base/mkxl/math-scr.mkxl
index 555f549f1..207f7fbf6 100644
--- a/tex/context/base/mkxl/math-scr.mkxl
+++ b/tex/context/base/mkxl/math-scr.mkxl
@@ -28,7 +28,7 @@
{\math_scripts_raised_symbol_indeed3\txx{#1}}}
\def\math_scripts_raised_symbol_indeed#1#2#3%
- {\mathord{{#2\raise.#1ex\hbox{#2\symbol[#3]}}}}
+ {\mathord{#2\raise.#1\exheight\hbox{#2\symbol[#3]}}} % redundant {} removed
\def\math_scripts_raised_number#1%
{\mathchoice
diff --git a/tex/context/base/mkxl/math-spa.lmt b/tex/context/base/mkxl/math-spa.lmt
new file mode 100644
index 000000000..35684847f
--- /dev/null
+++ b/tex/context/base/mkxl/math-spa.lmt
@@ -0,0 +1,83 @@
+if not modules then modules = { } end modules ['math-spa'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- for the moment (when testing) we use a penalty 1
+
+local boundary_code = nodes.nodecodes.boundary
+local glue_code = nodes.nodecodes.glue
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+
+local getid = nuts.getid
+local getnext = nuts.getnext
+local getwidth = nuts.getwidth
+local setglue = nuts.setglue
+local getdimensions = nuts.dimensions
+local nextglue = nuts.traversers.glue
+
+local texsetdimen = tex.setdimen
+
+local v_none = interfaces.variables.none
+local v_auto = interfaces.variables.auto
+
+local method = v_none
+local distance = 0
+
+function noads.handlers.align(h)
+ if method ~= v_none then
+ if method == v_auto then
+ local s = h
+ while s do
+ local id = getid(s)
+ local n = getnext(s)
+ if id == boundary_code then -- check some type
+ if n and getid(n) == glue_code then
+ s = n
+ n = getnext(s)
+ end
+ local w = getdimensions(h,n) + distance
+ texsetdimen("global","d_strc_math_indent",w)
+ break
+ end
+ s = n
+ end
+ else
+ texsetdimen("global","d_strc_math_indent",distance)
+ end
+ for n in nextglue, h do
+ setglue(n,getwidth(n),0,0)
+ end
+ else
+ -- texsetdimen("global","d_strc_math_indent",0)
+ end
+end
+
+interfaces.implement {
+ name = "setmathhang",
+ arguments = {
+ {
+ { "method", "string" },
+ { "distance", "dimension" },
+ }
+ },
+ actions = function(t)
+ method = t.method or v_none
+ distance = t.distance or 0
+ end
+}
+
+interfaces.implement {
+ name = "resetmathhang",
+ actions = function(t)
+ method = v_none
+ distance = 0
+ end
+}
+
diff --git a/tex/context/base/mkxl/math-stc.mklx b/tex/context/base/mkxl/math-stc.mklx
index 5ae8857dd..970e1352d 100644
--- a/tex/context/base/mkxl/math-stc.mklx
+++ b/tex/context/base/mkxl/math-stc.mklx
@@ -153,7 +153,7 @@
\let\math_stackers_skip \hskip}
\def\math_stackers_skip_indeed#amount%
- {\filledhboxk{\unsetteststrut\strut\hskip#amount}} % \dontshowstruts
+ {\filledhboxk{\strut\hskip#amount}}
\let\math_stackers_start_tagged_mid\relax
\let\math_stackers_start_tagged_top\relax
@@ -179,7 +179,7 @@
\c!right=,
\c!mathclass=\s!rel,
\c!alternative=\v!normal,
- \c!voffset=.25\mathexheight,
+ \c!voffset=.25\mathexheight, % maybe less
\c!hoffset=\zeropoint,
\c!topoffset=\zeropoint, % for manual italic correction
\c!distance=\mathstackersparameter\c!voffset, % distance between symbol and base (can be different from voffset)
@@ -492,9 +492,9 @@
\permanent\tolerant\protected\def\definemathextensible[#1]#*[#2]#*[#3]% category name unicode
{\ifarguments\or\or
- \frozen\setuevalue{#1}{\math_stackers_auto_normal\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_auto_normal\noexpand\currentmathstackers{\number#2}}%
\or
- \frozen\setuevalue{#2}{\math_stackers_auto_normal{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_auto_normal{#1}{\number#3}}%
\fi}
\tolerant\protected\def\math_stackers_auto_normal#1#2#*[#3]#:#=#*#=%
@@ -522,20 +522,6 @@
{\math_stackers_triplet\zerocount{#category}{#codepoint}{#toptext}{#bottomtext}%
\endgroup}
-%D The next one deals with under and over extensibles (arrows mostly):
-
-\installcorenamespace {mathclasses}
-
-\letcsname\??mathclasses \endcsname\mathord
-\letcsname\??mathclasses rel\endcsname\mathrel
-\letcsname\??mathclasses ord\endcsname\mathord
-
-\def\math_class_by_parameter#1%
- {\normalexpanded{\noexpand\math_class_by_parameter_indeed{#1\c!mathclass}}}
-
-\def\math_class_by_parameter_indeed#1%
- {\csname\??mathclasses\ifcsname\??mathclasses#1\endcsname#1\fi\endcsname}
-
% 1 0 name n 0 | 0 1 name n 0 | 1 1 name n n
\let\math_stackers_stop_group\endgroup
@@ -680,33 +666,33 @@
\permanent\tolerant\protected\def\definemathoverextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double\plusone \zerocount{#1}{\number#3}{0}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double\plusone \zerocount{#1}{\number#3}{0}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double\plusone \zerocount\noexpand\currentmathstackers{\number#2}{0}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double\plusone \zerocount\noexpand\currentmathstackers{\number#2}{0}}%
\fi}
\permanent\tolerant\protected\def\definemathunderextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double\zerocount\plusone{#1}{\number#3}{0}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double\zerocount\plusone{#1}{\number#3}{0}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double\zerocount\plusone\noexpand\currentmathstackers{\number#2}{0}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double\zerocount\plusone\noexpand\currentmathstackers{\number#2}{0}}%
\fi}
\permanent\tolerant\protected\def\definemathdoubleextensible[#1]#*[#2]#*[#3]#*[#4]%
{\ifparameter#4\or
- \frozen\setuevalue{#2}{\math_stackers_make_double\plusone \plusone{#1}{\number#3}{\number#4}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double\plusone \plusone{#1}{\number#3}{\number#4}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double\plusone \plusone\noexpand\currentmathstackers{\number#2}{\number#3}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double\plusone \plusone\noexpand\currentmathstackers{\number#2}{\number#3}}%
\fi}
\permanent\tolerant\protected\def\definemathover[#category]#spacer[#command]#spacer[#topcode]%
- {\frozen\setuvalue{#command}{\math_stackers_handle_direct\plusone\zerocount{#category}{#topcode}{0}}}
+ {\frozen\protected\defcsname#command\endcsname{\math_stackers_handle_direct\plusone\zerocount{#category}{#topcode}{0}}}
\permanent\tolerant\protected\def\definemathunder[#category]#spacer[#command]#spacer[#bottomcode]%
- {\frozen\setuvalue{#command}{\math_stackers_handle_direct\zerocount\plusone{#category}{#bottomcode}{0}}}
+ {\frozen\protected\defcsname#command\endcsname{\math_stackers_handle_direct\zerocount\plusone{#category}{#bottomcode}{0}}}
\permanent\tolerant\protected\def\definemathdouble[#category]#spacer[#command]#spacer[#topcode]#spacer[#bottomcode]%
- {\frozen\setuvalue{#command}{\math_stackers_handle_direct\plusone\plusone{#category}{#topcode}{#bottomcode}}}
+ {\frozen\protected\defcsname#command\endcsname{\math_stackers_handle_direct\plusone\plusone{#category}{#topcode}{#bottomcode}}}
\permanent\tolerant\protected\def\mathover[#category]#spacer[#settings]#:#topcode#text%
{\begingroup
@@ -883,16 +869,16 @@
\permanent\tolerant\protected\def\definemathovertextextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double_text\plusone{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double_text\plusone{#1}{\number#3}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double_text\plusone\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double_text\plusone\noexpand\currentmathstackers{\number#2}}%
\fi}
\permanent\tolerant\protected\def\definemathundertextextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double_text\zerocount{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double_text\zerocount{#1}{\number#3}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double_text\zerocount\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double_text\zerocount\noexpand\currentmathstackers{\number#2}}%
\fi}
\permanent\tolerant\protected\def\mathovertext[#category]%
@@ -917,11 +903,11 @@
\permanent\tolerant\protected\def\definemathtriplet[#1]#*[#2]#*[#3]% category name default
{\ifarguments\or
- \frozen\setuevalue{#1}{\math_stackers_auto_triplet_nop[\noexpand\currentmathstackers]}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_auto_triplet_nop[\noexpand\currentmathstackers]}%
\or
- \frozen\setuevalue{#2}{\math_stackers_auto_triplet_nop[#1]}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_auto_triplet_nop[#1]}%
\or
- \frozen\setuevalue{#2}{\math_stackers_auto_triplet_yes[#1][#3]}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_auto_triplet_yes[#1][#3]}%
\fi}
\tolerant\protected\def\math_stackers_auto_triplet_yes[#1][#2]#*[#3]#:#=#*#=% [#2]% #2 gobble spaces
@@ -1171,39 +1157,78 @@
% alternatively we can move the original to FE*
-\definemathoverextensible [\v!vfenced] [overbar] ["FE33E] % ["203E]
-\definemathunderextensible [\v!vfenced] [underbar] ["FE33F] % ["203E]
-\definemathdoubleextensible [\v!vfenced] [doublebar] ["FE33E] ["FE33F]
+% \definemathoverextensible [\v!vfenced] [overbar] ["FE33E] % ["203E]
+% \definemathunderextensible [\v!vfenced] [underbar] ["FE33F] % ["203E]
+% \definemathdoubleextensible [\v!vfenced] [doublebar] ["FE33E] ["FE33F]
+%
+% \definemathoverextensible [\v!vfenced] [overbrace] ["FE3DE] % ["023DE]
+% \definemathunderextensible [\v!vfenced] [underbrace] ["FE3DF] % ["023DF]
+% \definemathdoubleextensible [\v!vfenced] [doublebrace] ["FE3DE] ["FE3DF]
+%
+% \definemathoverextensible [\v!vfenced] [overparent] ["FE3DC] % ["023DC]
+% \definemathunderextensible [\v!vfenced] [underparent] ["FE3DD] % ["023DD]
+% \definemathdoubleextensible [\v!vfenced] [doubleparent] ["FE3DC] ["FE3DD]
+%
+% \definemathoverextensible [\v!vfenced] [overbracket] ["FE3B4] % ["023B4]
+% \definemathunderextensible [\v!vfenced] [underbracket] ["FE3B5] % ["023B5]
+% \definemathdoubleextensible [\v!vfenced] [doublebracket] ["FE3B4] ["FE3B5]
+
+% \definemathoverextensible [\v!vfenced] [overbar] ["203E]
+% \definemathunderextensible [\v!vfenced] [underbar] ["203E]
+% \definemathdoubleextensible [\v!vfenced] [doublebar] ["203E] ["203E]
-\definemathoverextensible [\v!vfenced] [overbrace] ["FE3DE] % ["023DE]
-\definemathunderextensible [\v!vfenced] [underbrace] ["FE3DF] % ["023DF]
-\definemathdoubleextensible [\v!vfenced] [doublebrace] ["FE3DE] ["FE3DF]
+\definemathoverextensible [\v!vfenced] [overbar] ["203E]
+\definemathunderextensible [\v!vfenced] [underbar] ["203E] % ["0332]
+\definemathdoubleextensible [\v!vfenced] [doublebar] ["203E] ["203E] % ["0332]
-\definemathoverextensible [\v!vfenced] [overparent] ["FE3DC] % ["023DC]
-\definemathunderextensible [\v!vfenced] [underparent] ["FE3DD] % ["023DD]
-\definemathdoubleextensible [\v!vfenced] [doubleparent] ["FE3DC] ["FE3DD]
+\definemathoverextensible [\v!vfenced] [overbrace] ["23DE]
+\definemathunderextensible [\v!vfenced] [underbrace] ["23DF]
+\definemathdoubleextensible [\v!vfenced] [doublebrace] ["23DE] ["23DF]
-\definemathoverextensible [\v!vfenced] [overbracket] ["FE3B4] % ["023B4]
-\definemathunderextensible [\v!vfenced] [underbracket] ["FE3B5] % ["023B5]
-\definemathdoubleextensible [\v!vfenced] [doublebracket] ["FE3B4] ["FE3B5]
+\definemathoverextensible [\v!vfenced] [overparent] ["23DC]
+\definemathunderextensible [\v!vfenced] [underparent] ["23DD]
+\definemathdoubleextensible [\v!vfenced] [doubleparent] ["23DC] ["23DD]
+
+\definemathoverextensible [\v!vfenced] [overbracket] ["23B4]
+\definemathunderextensible [\v!vfenced] [underbracket] ["23B5]
+\definemathdoubleextensible [\v!vfenced] [doublebracket] ["23B4] ["23B5]
+
+% If we do this, we need to adapt the dimensions, so wel leave them accents:
+%
+% \definemathoverextensible[\v!vfenced][widebar] ["0305]
+% \definemathoverextensible[\v!vfenced][widetilde]["0303]
% \protected\def\mathopwithlimits#1#2{\mathop{#1{#2}}\limits}
%D For mathml:
-\definemathdoubleextensible [\v!both] [overbarunderbar] ["FE33E] ["FE33F]
-\definemathdoubleextensible [\v!both] [overbraceunderbrace] ["FE3DE] ["FE3DF]
-\definemathdoubleextensible [\v!both] [overparentunderparent] ["FE3DC] ["FE3DD]
-\definemathdoubleextensible [\v!both] [overbracketunderbracket] ["FE3B4] ["FE3B5]
-
-\definemathovertextextensible [\v!bothtext] [overbartext] ["FE33E]
-\definemathundertextextensible [\v!bothtext] [underbartext] ["FE33F]
-\definemathovertextextensible [\v!bothtext] [overbracetext] ["FE3DE]
-\definemathundertextextensible [\v!bothtext] [underbracetext] ["FE3DF]
-\definemathovertextextensible [\v!bothtext] [overparenttext] ["FE3DC]
-\definemathundertextextensible [\v!bothtext] [underparenttext] ["FE3DD]
-\definemathovertextextensible [\v!bothtext] [overbrackettext] ["FE3B4]
-\definemathundertextextensible [\v!bothtext] [underbrackettext] ["FE3B5]
+% \definemathdoubleextensible [\v!both] [overbarunderbar] ["FE33E] ["FE33F]
+% \definemathdoubleextensible [\v!both] [overbraceunderbrace] ["FE3DE] ["FE3DF]
+% \definemathdoubleextensible [\v!both] [overparentunderparent] ["FE3DC] ["FE3DD]
+% \definemathdoubleextensible [\v!both] [overbracketunderbracket] ["FE3B4] ["FE3B5]
+%
+% \definemathovertextextensible [\v!bothtext] [overbartext] ["FE33E]
+% \definemathundertextextensible [\v!bothtext] [underbartext] ["FE33F]
+% \definemathovertextextensible [\v!bothtext] [overbracetext] ["FE3DE]
+% \definemathundertextextensible [\v!bothtext] [underbracetext] ["FE3DF]
+% \definemathovertextextensible [\v!bothtext] [overparenttext] ["FE3DC]
+% \definemathundertextextensible [\v!bothtext] [underparenttext] ["FE3DD]
+% \definemathovertextextensible [\v!bothtext] [overbrackettext] ["FE3B4]
+% \definemathundertextextensible [\v!bothtext] [underbrackettext] ["FE3B5]
+
+\definemathdoubleextensible [\v!both] [overbarunderbar] ["203E] ["203E]
+\definemathdoubleextensible [\v!both] [overbraceunderbrace] ["23DE] ["23DF]
+\definemathdoubleextensible [\v!both] [overparentunderparent] ["23DC] ["23DD]
+\definemathdoubleextensible [\v!both] [overbracketunderbracket] ["23B4] ["23B5]
+
+\definemathovertextextensible [\v!bothtext] [overbartext] ["203E]
+\definemathundertextextensible [\v!bothtext] [underbartext] ["203E]
+\definemathovertextextensible [\v!bothtext] [overbracetext] ["23DE]
+\definemathundertextextensible [\v!bothtext] [underbracetext] ["23DF]
+\definemathovertextextensible [\v!bothtext] [overparenttext] ["23DC]
+\definemathundertextextensible [\v!bothtext] [underparenttext] ["23DD]
+\definemathovertextextensible [\v!bothtext] [overbrackettext] ["23B4]
+\definemathundertextextensible [\v!bothtext] [underbrackettext] ["23B5]
%D Some bonus ones (for the moment here):
@@ -1326,9 +1351,9 @@
\permanent\tolerant\protected\def\definemathunstacked[#1]#*[#2]#*[#3]% category name unicode
{\ifarguments\or\or
- \frozen\setuevalue{#1}{\math_stackers_unstacked_normal\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_unstacked_normal\noexpand\currentmathstackers{\number#2}}%
\else
- \frozen\setuevalue{#2}{\math_stackers_unstacked_normal{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_unstacked_normal{#1}{\number#3}}%
\fi}
\protected\def\math_stackers_unstacked_normal#category#codepoint%
diff --git a/tex/context/base/mkxl/math-tag.lmt b/tex/context/base/mkxl/math-tag.lmt
index 9ecc7047a..429191546 100644
--- a/tex/context/base/mkxl/math-tag.lmt
+++ b/tex/context/base/mkxl/math-tag.lmt
@@ -98,7 +98,6 @@ local chardata = characters.data
local getmathcodes = tex.getmathcodes
local mathcodes = mathematics.codes
local ordinary_mathcode = mathcodes.ordinary
-local variable_mathcode = mathcodes.variable
local fromunicode16 = fonts.mappings.fromunicode16
local fontcharacters = fonts.hashes.characters
@@ -223,7 +222,8 @@ process = function(start) -- we cannot use the processor as we have no finalizer
local char = getchar(start)
local code = getmathcodes(char)
local tag
- if code == ordinary_mathcode or code == variable_mathcode then
+ -- todo: we have way more now
+ if code == ordinary_mathcode then
local ch = chardata[char]
local mc = ch and ch.mathclass
if mc == "number" then
diff --git a/tex/context/base/mkxl/math-vfu.lmt b/tex/context/base/mkxl/math-vfu.lmt
index abe336f53..0540331ab 100644
--- a/tex/context/base/mkxl/math-vfu.lmt
+++ b/tex/context/base/mkxl/math-vfu.lmt
@@ -85,7 +85,7 @@ local shared = { }
local function brace(main,characters,id,size,unicode,first,rule,left,right,rule,last)
if not characters[unicode] then
characters[unicode] = {
- hvariants = {
+ hparts = {
{ extender = 0, glyph = first },
{ extender = 1, glyph = rule },
{ extender = 0, glyph = left },
@@ -123,7 +123,7 @@ local function extension(main,characters,id,size,unicode,first,middle,last)
if lw == 0 then
lw = 1
end
- chr.hvariants = {
+ chr.hparts = {
{ extender = 0, glyph = first, ["end"] = fw/2, start = 0, advance = fw },
{ extender = 1, glyph = middle, ["end"] = mw/2, start = mw/2, advance = mw },
{ extender = 0, glyph = last, ["end"] = 0, start = lw/2, advance = lw },
@@ -133,7 +133,7 @@ end
local function parent(main,characters,id,size,unicode,first,rule,last)
if not characters[unicode] then
characters[unicode] = {
- hvariants = {
+ hparts = {
{ extender = 0, glyph = first },
{ extender = 1, glyph = rule },
{ extender = 0, glyph = last },
@@ -661,10 +661,10 @@ local function copy_glyph(main,target,original,unicode,slot)
break -- safeguard (when testing stuff)
end
end
- local hv = olddata.hvariants
+ local hv = olddata.hparts
if hv then
hv = fastcopy(hv)
- newdata.hvariants = hv
+ newdata.hparts = hv
for i=1,#hv do
local hvi = hv[i]
local oldglyph = hvi.glyph
@@ -679,10 +679,10 @@ local function copy_glyph(main,target,original,unicode,slot)
hvi.glyph = addprivate(main,formatters["M-H-%H"](oldglyph),newdata)
end
end
- local vv = olddata.vvariants
+ local vv = olddata.vparts
if vv then
vv = fastcopy(vv)
- newdata.vvariants = vv
+ newdata.vparts = vv
for i=1,#vv do
local vvi = vv[i]
local oldglyph = vvi.glyph
@@ -1017,30 +1017,30 @@ function vfmath.define(specification,set,goodies)
if n then
t.next = offset + n
elseif variants_done then
- local vv = fci.vvariants
+ local vv = fci.vparts
if vv then
- t.vvariants = vv
+ t.vparts = vv
end
- local hv = fci.hvariants
+ local hv = fci.hparts
if hv then
- t.hvariants = hv
+ t.hparts = hv
end
else
- local vv = fci.vvariants
+ local vv = fci.vparts
if vv then
for i=1,#vv do
local vvi = vv[i]
vvi.glyph = vvi.glyph + offset
end
- t.vvariants = vv
+ t.vparts = vv
end
- local hv = fci.hvariants
+ local hv = fci.hparts
if hv then
for i=1,#hv do
local hvi = hv[i]
hvi.glyph = hvi.glyph + offset
end
- t.hvariants = hv
+ t.hparts = hv
end
end
characters[offset + index] = t
@@ -1122,13 +1122,18 @@ function vfmath.define(specification,set,goodies)
main.properties.math_is_scaled = true -- signal
fonts.constructors.assignmathparameters(main,main)
--
- main.MathConstants = main.mathparameters -- we directly pass it to TeX (bypasses the scaler) so this is needed
+ main.mathconstants = main.mathparameters -- we directly pass it to TeX (bypasses the scaler) so this is needed
--
if trace_virtual or trace_timings then
report_virtual("loading and virtualizing font %a at size %p took %0.3f seconds",name,size,os.clock()-start)
end
--
- main.oldmath = true
+ -- main.oldmath = true
+ --
+ -- We bypass the scaler so ...
+ --
+ main.MathConstants = main.mathconstants
+ main.nomath = false
return main
end
diff --git a/tex/context/base/mkxl/mlib-int.lmt b/tex/context/base/mkxl/mlib-int.lmt
index 208370a3c..e294a4fe5 100644
--- a/tex/context/base/mkxl/mlib-int.lmt
+++ b/tex/context/base/mkxl/mlib-int.lmt
@@ -153,18 +153,18 @@ registerdirect("OverlayRegion", function() return getmacro("m_overlay_reg
-- registerscript("OnRightPage", function() return mpboolean(on_right_page ()) end)
-- registerscript("OnOddPage", function() return mpboolean(is_odd_page ()) end)
-- registerscript("InPageBody", function() return mpboolean(in_body_page ()) end)
--- registerscript("LayoutHasChanged", function() return mpboolean(layout_has_changed()) end)
registerdirect("PageFraction", function() return page_fraction () end)
registerdirect("OnRightPage", function() return on_right_page () end)
registerdirect("OnOddPage", function() return is_odd_page () end)
registerdirect("InPageBody", function() return in_body_page () end)
-registerdirect("LayoutHasChanged", function() return layout_has_changed() end)
+registerdirect("LastChangedLayoutPage",function() return getcount("c_page_layouts_changed") end)
+registerdirect("SwapMarginDimensions", function() token.expandmacro("swapmargindimensions") end)
registerdirect("PageFraction", page_fraction )
registerdirect("OnRightPage", on_right_page )
registerdirect("OnOddPage", is_odd_page )
registerdirect("InPageBody", in_body_page )
-registerdirect("LayoutHasChanged", layout_has_changed)
+-- registerdirect("LayoutHasChanged", layout_has_changed)
registerdirect("defaultcolormodel", defaultcolormodel)
diff --git a/tex/context/base/mkxl/mult-aux.mkxl b/tex/context/base/mkxl/mult-aux.mkxl
index 864516ad5..e5850668b 100644
--- a/tex/context/base/mkxl/mult-aux.mkxl
+++ b/tex/context/base/mkxl/mult-aux.mkxl
@@ -1073,6 +1073,22 @@
\expandafter\noexpand\csname current#2parent\endcsname
\expandafter\noexpand\csname inject#2parent\endcsname}}
+%D Cheaper (assumes grouping at some point):
+
+\permanent\protected\def\mult_interfaces_install_local_current_injector#1#2#3#4%
+ {\protected\def#4##1%
+ {\advance#2\plusone
+ \edef#3{##1:\the#2}% \currentXXX
+ \edefcsname#1#3:\s!parent\endcsname{#1##1}}}
+
+\permanent\protected\def\installlocalcurrenthandler#1#2% \??XXX {XXX}
+ {\expandafter\newcount\csname#1:\s!counter\endcsname
+ \normalexpanded{\mult_interfaces_install_local_current_injector
+ {\noexpand#1}%
+ \expandafter\noexpand\csname #1:\s!counter\endcsname
+ \expandafter\noexpand\csname current#2\endcsname
+ \expandafter\noexpand\csname setlocal#2current\endcsname}}
+
% The \LUA\ based variant is twice as fast as the above but as said, we don't use
% this one that often. It's more about less tracing than speed here.
diff --git a/tex/context/base/mkxl/mult-sys.mkxl b/tex/context/base/mkxl/mult-sys.mkxl
index 1eae000e4..9ac124808 100644
--- a/tex/context/base/mkxl/mult-sys.mkxl
+++ b/tex/context/base/mkxl/mult-sys.mkxl
@@ -114,12 +114,14 @@
\definesystemconstant {all}
\definesystemconstant {ampersand}
\definesystemconstant {anchor}
+\definesystemconstant {anchors}
\definesystemconstant {ascii}
\definesystemconstant {attribute}
\definesystemconstant {attr}
\definesystemconstant {author}
\definesystemconstant {auto}
\definesystemconstant {axis}
+\definesystemconstant {noaxis}
\definesystemconstant {exact}
\definesystemconstant {a}
\definesystemconstant {bf}
@@ -151,9 +153,12 @@
\definesystemconstant {cg}
\definesystemconstant {chain}
\definesystemconstant {check}
+\definesystemconstant {char}
\definesystemconstant {child}
\definesystemconstant {cite}
\definesystemconstant {class}
+\definesystemconstant {leftclass}
+\definesystemconstant {rightclass}
\definesystemconstant {clone}
\definesystemconstant {cmyk}
\definesystemconstant {cm}
@@ -198,6 +203,7 @@
\definesystemconstant {fallbacks}
\definesystemconstant {fallback}
\definesystemconstant {false}
+\definesystemconstant {fam}
\definesystemconstant {fax}
\definesystemconstant {features}
\definesystemconstant {file}
@@ -205,6 +211,7 @@
\definesystemconstant {fill}
\definesystemconstant {fil}
\definesystemconstant {first}
+\definesystemconstant {fixed}
\definesystemconstant {float}
\definesystemconstant {font}
\definesystemconstant {forget}
@@ -226,6 +233,7 @@
\definesystemconstant {hastitle}
\definesystemconstant {head}
\definesystemconstant {height}
+\definesystemconstant {hfactor}
\definesystemconstant {hw}
\definesystemconstant {hyphenmin}
\definesystemconstant {indeed}
@@ -380,7 +388,8 @@
\definesystemconstant {Support}
\definesystemconstant {sygreek}
\definesystemconstant {symbol}
-\definesystemconstant {system} % not yet interfaces messages
+\definesystemconstant {system}
+\definesystemconstant {style}
\definesystemconstant {text}
\definesystemconstant {tex}
\definesystemconstant {tf}
@@ -397,12 +406,14 @@
\definesystemconstant {ucgreek}
\definesystemconstant {uncramped}
\definesystemconstant {unexpanded}
-\definesystemconstant {Unicode}
+\definesystemconstant {unpack}
\definesystemconstant {unknown}
+\definesystemconstant {Unicode}
\definesystemconstant {userdata}
\definesystemconstant {userpage}
\definesystemconstant {user}
\definesystemconstant {vfrac}
+\definesystemconstant {vfactor}
\definesystemconstant {white}
\definesystemconstant {width}
\definesystemconstant {xml}
diff --git a/tex/context/base/mkxl/node-bck.mkxl b/tex/context/base/mkxl/node-bck.mkxl
index 3c2fa015c..357180710 100644
--- a/tex/context/base/mkxl/node-bck.mkxl
+++ b/tex/context/base/mkxl/node-bck.mkxl
@@ -76,7 +76,7 @@
\permanent\protected\def\backgroundline{\dontleavehmode\node_backgrounds_boxes_add\hbox}
\def\node_backgrounds_boxes_add#1[#2]%
- {\clf_enablebackgroundboxes
+ {\localcontrolled{\clf_enablebackgroundboxes}% permits assignment
#1\backgroundcolorattr{#2}}
\protect \endinput
diff --git a/tex/context/base/mkxl/node-ini.lmt b/tex/context/base/mkxl/node-ini.lmt
index 2b09485db..75a97408b 100644
--- a/tex/context/base/mkxl/node-ini.lmt
+++ b/tex/context/base/mkxl/node-ini.lmt
@@ -20,32 +20,16 @@ local sortedhash, sortedkeys, swapped = table.sortedhash, table.sortedkeys, tabl
few helper functions. These functions are rather optimized.</p>
--ldx]]--
-nodes = nodes or { }
-local nodes = nodes
-nodes.handlers = nodes.handlers or { }
+nodes = nodes or { }
+local nodes = nodes
+nodes.handlers = nodes.handlers or { }
-local mark = utilities.storage.mark
-local allocate = utilities.storage.allocate
-local formatcolumns = utilities.formatters.formatcolumns
+local mark = utilities.storage.mark
+local allocate = utilities.storage.allocate
+local formatcolumns = utilities.formatters.formatcolumns
-local getsubtypes = node.subtypes
-local getvalues = node.values
-
-tex.magicconstants = { -- we use tex.constants for something else
- running = -1073741824, -- null_flag
- maxdimen = 1073741823, -- max_dimen
- -- trueinch = 4736286, -- obsolete
-}
-
-do
- local c = status.getconstants()
- local t = { }
- for k, v in next, c do
- t[gsub(k,"_","")] = v
- end
-
- tex.magicconstants = table.setmetatableindex(t,c)
-end
+local getsubtypes = node.subtypes
+local getvalues = node.values
local listcodes = mark(getsubtypes("list"))
local rulecodes = mark(getsubtypes("rule"))
@@ -151,6 +135,7 @@ noadcodes.rel = noadcodes.rel or noadcodes.relation
noadcodes.punct = noadcodes.punct or noadcodes.punctuation
noadcodes.rad = noadcodes.rad or noadcodes.radical
noadcodes.frac = noadcodes.frac or noadcodes.fraction
+noadcodes.acc = noadcodes.acc or noadcodes.accent
-- so for now:
@@ -161,6 +146,7 @@ noadcodes.relation = noadcodes.relation or noadcodes.rel
noadcodes.punctuation = noadcodes.punctuation or noadcodes.punct
noadcodes.radical = noadcodes.radical or noadcodes.rad
noadcodes.fraction = noadcodes.fraction or noadcodes.frac
+noadcodes.accent = noadcodes.accent or noadcodes.acc
local subtypes = allocate {
glue = gluecodes,
diff --git a/tex/context/base/mkxl/node-res.lmt b/tex/context/base/mkxl/node-res.lmt
index 93dc65b7b..da4283e7f 100644
--- a/tex/context/base/mkxl/node-res.lmt
+++ b/tex/context/base/mkxl/node-res.lmt
@@ -181,12 +181,13 @@ local lefttoright_code = nodes.dirvalues.lefttoright
local rule = register_nut(new_nut(rule_code)) -- setdirection(rule, lefttoright_code)
local emptyrule = register_nut(new_nut(rule_code,rulecodes.empty)) -- setdirection(rule, lefttoright_code)
+local strutrule = register_nut(new_nut(rule_code,rulecodes.strut)) -- setdirection(rule, lefttoright_code)
local userrule = register_nut(new_nut(rule_code,rulecodes.user)) -- setdirection(rule, lefttoright_code)
local outlinerule = register_nut(new_nut(rule_code,rulecodes.outline)) -- setdirection(rule, lefttoright_code)
local imagerule = register_nut(new_nut(rule_code,rulecodes.image)) -- setdirection(rule, lefttoright_code)
local boxrule = register_nut(new_nut(rule_code,rulecodes.box)) -- setdirection(rule, lefttoright_code)
-local hlist = register_nut(new_nut(nodecodes.hlist)) setdirection(hlist,lefttoright_code)
-local vlist = register_nut(new_nut(nodecodes.vlist)) setdirection(vlist,lefttoright_code)
+local hlist = register_nut(new_nut(nodecodes.hlist)) setdirection(hlist,lefttoright_code)
+local vlist = register_nut(new_nut(nodecodes.vlist)) setdirection(vlist,lefttoright_code)
function nutpool.glyph(fnt,chr)
local n = copy_nut(glyph)
@@ -357,6 +358,14 @@ function nutpool.emptyrule(width,height,depth) -- w/h/d == nil will let them ada
return n
end
+function nutpool.strutrule(width,height,depth) -- w/h/d == nil will let them adapt
+ local n = copy_nut(strutrule)
+ if width or height or depth then
+ setwhd(n,width,height,depth)
+ end
+ return n
+end
+
function nutpool.userrule(width,height,depth) -- w/h/d == nil will let them adapt
local n = copy_nut(userrule)
if width or height or depth then
diff --git a/tex/context/base/mkxl/norm-ctx.mkxl b/tex/context/base/mkxl/norm-ctx.mkxl
index fb67c5f24..0ec925896 100644
--- a/tex/context/base/mkxl/norm-ctx.mkxl
+++ b/tex/context/base/mkxl/norm-ctx.mkxl
@@ -15,118 +15,8 @@
%D A few more might end up here (like the weird ones in syst-ini).
-\let\normalreqno\normaleqno
-
-% more friendly in setups:
-
-\aliased\let\ordordspacing \Umathordordspacing
-\aliased\let\ordopspacing \Umathordopspacing
-\aliased\let\ordbinspacing \Umathordbinspacing
-\aliased\let\ordrelspacing \Umathordrelspacing
-\aliased\let\ordopenspacing \Umathordopenspacing
-\aliased\let\ordclosespacing \Umathordclosespacing
-\aliased\let\ordpunctspacing \Umathordpunctspacing
-\aliased\let\ordinnerspacing \Umathordinnerspacing
-\aliased\let\ordfracspacing \Umathordfracspacing
-\aliased\let\ordradspacing \Umathordradspacing
-
-\aliased\let\opordspacing \Umathopordspacing
-\aliased\let\opopspacing \Umathopopspacing
-\aliased\let\opbinspacing \Umathopbinspacing
-\aliased\let\oprelspacing \Umathoprelspacing
-\aliased\let\opopenspacing \Umathopopenspacing
-\aliased\let\opclosespacing \Umathopclosespacing
-\aliased\let\oppunctspacing \Umathoppunctspacing
-\aliased\let\opinnerspacing \Umathopinnerspacing
-\aliased\let\opfracspacing \Umathopfracspacing
-\aliased\let\opradspacing \Umathopradspacing
-
-\aliased\let\binordspacing \Umathbinordspacing
-\aliased\let\binopspacing \Umathbinopspacing
-\aliased\let\binbinspacing \Umathbinbinspacing
-\aliased\let\binrelspacing \Umathbinrelspacing
-\aliased\let\binopenspacing \Umathbinopenspacing
-\aliased\let\binclosespacing \Umathbinclosespacing
-\aliased\let\binpunctspacing \Umathbinpunctspacing
-\aliased\let\bininnerspacing \Umathbininnerspacing
-\aliased\let\binfracspacing \Umathbinfracspacing
-\aliased\let\binradspacing \Umathbinradspacing
-
-\aliased\let\relordspacing \Umathrelordspacing
-\aliased\let\relopspacing \Umathrelopspacing
-\aliased\let\relbinspacing \Umathrelbinspacing
-\aliased\let\relrelspacing \Umathrelrelspacing
-\aliased\let\relopenspacing \Umathrelopenspacing
-\aliased\let\relclosespacing \Umathrelclosespacing
-\aliased\let\relpunctspacing \Umathrelpunctspacing
-\aliased\let\relinnerspacing \Umathrelinnerspacing
-\aliased\let\relfracspacing \Umathrelfracspacing
-\aliased\let\relradspacing \Umathrelradspacing
-
-\aliased\let\openordspacing \Umathopenordspacing
-\aliased\let\openopspacing \Umathopenopspacing
-\aliased\let\openbinspacing \Umathopenbinspacing
-\aliased\let\openrelspacing \Umathopenrelspacing
-\aliased\let\openopenspacing \Umathopenopenspacing
-\aliased\let\openclosespacing \Umathopenclosespacing
-\aliased\let\openpunctspacing \Umathopenpunctspacing
-\aliased\let\openinnerspacing \Umathopeninnerspacing
-\aliased\let\openfracspacing \Umathopenfracspacing
-\aliased\let\openradspacing \Umathopenradspacing
-
-\aliased\let\closeordspacing \Umathcloseordspacing
-\aliased\let\closeopspacing \Umathcloseopspacing
-\aliased\let\closebinspacing \Umathclosebinspacing
-\aliased\let\closerelspacing \Umathcloserelspacing
-\aliased\let\closeopenspacing \Umathcloseopenspacing
-\aliased\let\closeclosespacing \Umathcloseclosespacing
-\aliased\let\closepunctspacing \Umathclosepunctspacing
-\aliased\let\closeinnerspacing \Umathcloseinnerspacing
-\aliased\let\closefracspacing \Umathclosefracspacing
-\aliased\let\closeradspacing \Umathcloseradspacing
-
-\aliased\let\punctordspacing \Umathpunctordspacing
-\aliased\let\punctopspacing \Umathpunctopspacing
-\aliased\let\punctbinspacing \Umathpunctbinspacing
-\aliased\let\punctrelspacing \Umathpunctrelspacing
-\aliased\let\punctopenspacing \Umathpunctopenspacing
-\aliased\let\punctclosespacing \Umathpunctclosespacing
-\aliased\let\punctpunctspacing \Umathpunctpunctspacing
-\aliased\let\punctinnerspacing \Umathpunctinnerspacing
-\aliased\let\punctfracspacing \Umathpunctfracspacing
-\aliased\let\punctradspacing \Umathpunctradspacing
-
-\aliased\let\innerordspacing \Umathinnerordspacing
-\aliased\let\inneropspacing \Umathinneropspacing
-\aliased\let\innerbinspacing \Umathinnerbinspacing
-\aliased\let\innerrelspacing \Umathinnerrelspacing
-\aliased\let\inneropenspacing \Umathinneropenspacing
-\aliased\let\innerclosespacing \Umathinnerclosespacing
-\aliased\let\innerpunctspacing \Umathinnerpunctspacing
-\aliased\let\innerinnerspacing \Umathinnerinnerspacing
-\aliased\let\innerfracspacing \Umathinnerfracspacing
-\aliased\let\innerradspacing \Umathinnerradspacing
-
-\aliased\let\fracordspacing \Umathfracordspacing
-\aliased\let\fracopspacing \Umathfracopspacing
-\aliased\let\fracbinspacing \Umathfracbinspacing
-\aliased\let\fracrelspacing \Umathfracrelspacing
-\aliased\let\fracopenspacing \Umathfracopenspacing
-\aliased\let\fracclosespacing \Umathfracclosespacing
-\aliased\let\fracpunctspacing \Umathfracpunctspacing
-\aliased\let\fracinnerspacing \Umathfracinnerspacing
-\aliased\let\fracfracspacing \Umathfracfracspacing
-\aliased\let\fracradspacing \Umathfracradspacing
-
-\aliased\let\radordspacing \Umathradordspacing
-\aliased\let\radopspacing \Umathradopspacing
-\aliased\let\radbinspacing \Umathradbinspacing
-\aliased\let\radrelspacing \Umathradrelspacing
-\aliased\let\radopenspacing \Umathradopenspacing
-\aliased\let\radclosespacing \Umathradclosespacing
-\aliased\let\radpunctspacing \Umathradpunctspacing
-\aliased\let\radinnerspacing \Umathradinnerspacing
-\aliased\let\radfracspacing \Umathradfracspacing
-\aliased\let\radradspacing \Umathradradspacing
+\let\normalreqno \normaleqno
+%let\mathtopaccent \normaloverline
+%let\mathbottomaccent\normalunderline
\protect \endinput
diff --git a/tex/context/base/mkxl/pack-box.mkxl b/tex/context/base/mkxl/pack-box.mkxl
index 9ed90a885..831ec1707 100644
--- a/tex/context/base/mkxl/pack-box.mkxl
+++ b/tex/context/base/mkxl/pack-box.mkxl
@@ -1118,13 +1118,13 @@
[\c!width=\overlaywidth,\c!height=\overlayheight]
{\overlayimage{#1}}}
-%D Here is an end December 2021 experimental feature: anchored boxes. This will move to
-%D pack-box.mkxl
+%D Here is an end December 2021 experimental feature: anchored boxes.
\installcorenamespace{boxanchor}
\installcorenamespace{boxanchorid}
\installcorenamespace{boxanchorbox}
\installcorenamespace{boxpreset}
+\installcorenamespace{boxanchors}
\installparameterhandler \??boxanchor {boxanchor}
\installsetuphandler \??boxanchor {boxanchor}
@@ -1221,16 +1221,16 @@
\expandafter\integerdef\csname\??boxpreset\v!left,\v!top \endcsname\leftheightlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!left,\v!depth \endcsname\leftdepthlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!left,\v!bottom \endcsname\leftdepthlistanchorcode
-%
+
\expandafter\integerdef\csname\??boxpreset\v!right \endcsname\rightoriginlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!right,\v!height \endcsname\rightheightlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!right,\v!top \endcsname\rightheightlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!right,\v!depth \endcsname\rightdepthlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!right,\v!bottom \endcsname\rightdepthlistanchorcode
-% \centeroriginlistanchorcode
-% \centerheightlistanchorcode
-% \centerdepthlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!line \endcsname\centeroriginlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!height \endcsname\centerheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!depth \endcsname\centerdepthlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!middle \endcsname\halfwaytotallistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!middle,\v!height\endcsname\halfwayheightlistanchorcode
@@ -1240,6 +1240,67 @@
\expandafter\integerdef\csname\??boxpreset\v!middle,\v!left \endcsname\halfwayleftlistanchorcode
\expandafter\integerdef\csname\??boxpreset\v!middle,\v!right \endcsname\halfwayrightlistanchorcode
+% Musical timestamp: 2022-02-07 while listening Hypneurotic from The Blurred Horizon (n times);
+% Jim Matheos with Gavin Harrison; very hypnotic indeed.
+
+\permanent\def\boxanchorpresetcode#1%
+ {\ifcsname\??boxpreset#1\endcsname\lastnamedcs\else\halfwaytotallistanchorcode\fi}
+
+\newcount\registeredboxanchor
+
+\permanent\protected\def\registerboxanchor
+ {\global\advance\registeredboxanchor\minusone}
+
+\permanent\protected\def\defineboxanchor[#1]%
+ {\registerboxanchor
+ \expandafter\integerdef\csname\??boxanchors#1\endcsname\registeredboxanchor}
+
+\permanent\def\namedboxanchor#1%
+ {\normalexpanded{\ifcsname\??boxanchors#1\endcsname\lastnamedcs\orelse\ifchknum#1\or#1\else\zerocount\fi}}
+
+\installcorenamespace{boxanchorcontent}
+
+\installparameterhandler \??boxanchorcontent {boxanchorcontent}
+\installsetuphandler \??boxanchorcontent {boxanchorcontent}
+
+\setupboxanchorcontent
+ [\c!yoffset=\zeropoint,
+ \c!xoffset=\zeropoint,
+ \c!width=\zeropoint,
+ \c!location=\v!height,
+ \c!corner=\v!depth]
+
+\permanent\tolerant\protected\def\setboxanchor[#1]#*[#2]#*% assumes \defineboxanchor[#1]
+ {\begingroup
+ \dowithnextbox
+ {\setupcurrentboxanchorcontent[#2]%
+ \scratchxoffset\boxanchorcontentparameter\c!xoffset
+ \scratchyoffset\boxanchorcontentparameter\c!yoffset
+ \scratchcounter\namedboxanchor{#1}%
+ \registeranchorbox
+ \scratchcounter
+ \plusone % order
+ \hbox
+ \s!anchors % check order of these:
+ \boxanchorpresetcode{\boxanchorcontentparameter\c!corner}
+ \boxanchorpresetcode{\boxanchorcontentparameter\c!location}
+ \ifzeropt\scratchxoffset\else \s!xoffset \scratchxoffset\fi
+ \ifzeropt\scratchyoffset\else \s!yoffset \scratchyoffset\fi
+ \s!target \scratchcounter
+ {\box\nextbox}%
+ \endgroup}}
+
+% to be used as:
+%
+% \scratchcounter\registeredboxanchor
+%
+% \registeranchorbox
+% \scratchcounter
+% \plusone
+% \ruledhbox{...}
+%
+% \hbox source \scratchcounter
+
% \negatexlistsigncode
% \negateylistsigncode
% \negatelistsigncode
diff --git a/tex/context/base/mkxl/pack-lyr.mkxl b/tex/context/base/mkxl/pack-lyr.mkxl
index 3c0352bf3..3b7e2324d 100644
--- a/tex/context/base/mkxl/pack-lyr.mkxl
+++ b/tex/context/base/mkxl/pack-lyr.mkxl
@@ -661,7 +661,7 @@
\ifx\p_pack_layers_position\v!yes
\edef\p_pack_layers_region{\layerparameter\c!region}%
\ifempty\p_pack_layers_region\else
- \anch_mark_tagged_box\nextbox\p_pack_layers_region % was \layeranchor
+ \anch_mark_tagged_box\nextbox\p_pack_layers_region\zerocount % was \layeranchor
\fi
\fi
\box\nextbox
diff --git a/tex/context/base/mkxl/pack-mat.mkxl b/tex/context/base/mkxl/pack-mat.mkxl
new file mode 100644
index 000000000..c0aa1cc94
--- /dev/null
+++ b/tex/context/base/mkxl/pack-mat.mkxl
@@ -0,0 +1,84 @@
+%D \module
+%D [ file=pack-rul, % was core-rul,
+%D version=2022.02.23,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Ruled Math,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Ruled Math}
+
+%D This is a by product of the math improvement activity by Mikael Sundqvist and
+%D myself. More might end up here and more control might be added.
+
+\unprotect
+
+\newconditional \c_framed_math_framed
+
+\installtextracker
+ {framed.math}
+ {\settrue \c_framed_math_framed}
+ {\setfalse\c_framed_math_framed}
+
+\tolerant\protected\def\mathframed[#1]#:#2%
+ {\begingroup
+ \ifconditional\c_framed_math_framed
+ \defineboxanchor[temp]%
+ \fi
+ \setmathatomrule\mathbegincode\mathbincode\allmathstyles\mathbegincode\mathbincode
+ \normalexpanded
+ {\setbox\scratchbox\hpack
+ \ifconditional\c_framed_math_framed
+ \s!source \namedboxanchor{temp}
+ \fi
+ \s!ymove \Umathaxis\Ustyle\mathstyle
+ \bgroup
+ \framed
+ [\c!location=\v!middle,#1]
+ {\startimath
+ \Ustyle\mathstyle
+ #2%
+ \stopimath}%
+ \egroup}%
+ \scratchcounterone\lastleftclass
+ \scratchcountertwo\lastrightclass
+ % \writestatus{!!}{[\number\lastleftclass,\number\lastrightclass]}%
+ \mathatom
+ \s!class \mathexplicitcode
+ \ifnum\scratchcounterone<\zerocount\else\s!leftclass \scratchcounterone\fi
+ \ifnum\scratchcountertwo<\zerocount\else\s!rightclass\scratchcountertwo\fi
+ \bgroup
+ \ifconditional\c_framed_math_framed
+ \setboxanchor[temp][\c!corner={\v!left,\v!bottom},\c!location={\v!right,\v!height}]
+ \hpack{\smallinfofont \the\scratchcounterone}%
+ \setboxanchor[temp][\c!corner={\v!right,\v!bottom},\c!location={\v!left,\v!height}]
+ \hpack{\smallinfofont \the\scratchcountertwo}%
+ \fi
+ \box\scratchbox
+ \egroup
+ \endgroup}
+
+%D \starttyping
+%D \enabletrackers[framed.math]
+%D
+%D \startTEXpage[offset=10pt,width=40dk]
+%D \showmakeup[mathglue]
+%D \def\MyTest#1%
+%D {$ x #1 x $\quad
+%D $ x \mathframed[offset=0pt]{#1} x $\quad
+%D $\displaystyle x #1 x $\quad
+%D $\displaystyle x \mathframed[offset=0pt]{#1} x $}
+%D \MyTest{>}\blank
+%D \MyTest{+}\blank
+%D \MyTest{!}\blank
+%D \MyTest{+\frac{1}{2}+}\blank
+%D \MyTest{\frac{1}{2}}\blank
+%D \stopTEXpage
+%D \stoptyping
+
+\protect
diff --git a/tex/context/base/mkxl/page-bck.mkxl b/tex/context/base/mkxl/page-bck.mkxl
index e955325e5..5c9b96fd7 100644
--- a/tex/context/base/mkxl/page-bck.mkxl
+++ b/tex/context/base/mkxl/page-bck.mkxl
@@ -354,7 +354,7 @@
\def\page_backgrounds_set_box#1% #2%
{\global\setbox#1\vpack
{\dontcomplain
- \page_layouts_swap_margins
+ \page_layouts_swap_margins\v!background
\ifconditional\swapbackgroundmargins
\doifelsemarginswap \donothing
{\enforced\swapcsvalues\v!rightmargin\v!leftmargin
@@ -362,9 +362,6 @@
\fi
\calculatereducedvsizes
\offinterlineskip
- % \ifconditional#2\relax
- % \page_layouts_swap_margins_indeed % hm, this one gets nilled in \page_layouts_swap_margin anyway
- % \fi
\ifdim\topheight>\zeropoint
\kern\dimexpr-\topheight-\topdistance\relax
\page_backgrounds_set_box_row\v!top\topheight
diff --git a/tex/context/base/mkxl/page-box.mklx b/tex/context/base/mkxl/page-box.mklx
index c962b831a..56cb73f7a 100644
--- a/tex/context/base/mkxl/page-box.mklx
+++ b/tex/context/base/mkxl/page-box.mklx
@@ -250,11 +250,22 @@
% nearly always some displacement so no speedup test needed
+% \def\page_boxes_apply_offsets#1%
+% {\setbox#1\vpack to \paperheight
+% {\hsize\paperwidth
+% \vkern\topspace
+% \hkern\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
+% \box#1}%
+% \dp#1\zeropoint}
+
\def\page_boxes_apply_offsets#1%
{\setbox#1\vpack to \paperheight
{\hsize\paperwidth
\vkern\topspace
\hkern\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
+% \hkern\doifbothsides\backspace\backspace\cutspace
+% \page_layouts_swap_margins\v!page
+% \hkern\backspace
\box#1}%
\dp#1\zeropoint}
diff --git a/tex/context/base/mkxl/page-flt.mkxl b/tex/context/base/mkxl/page-flt.mkxl
index a97cc7f0d..a360dc42f 100644
--- a/tex/context/base/mkxl/page-flt.mkxl
+++ b/tex/context/base/mkxl/page-flt.mkxl
@@ -55,7 +55,7 @@
\newconditional\c_page_floats_center_box \settrue\c_page_floats_center_box
\newconditional\c_page_floats_center_box_local
\newconditional\c_page_floats_center_box_global
-\newconditional\c_page_floats_compress_flushed \settrue\c_page_floats_compress_flushed
+\newconditional\c_page_floats_compress_flushed \settrue\c_page_floats_compress_flushed
\newdimen \d_page_floats_compress_distance
diff --git a/tex/context/base/mkxl/page-lay.mkxl b/tex/context/base/mkxl/page-lay.mkxl
index 835a3ca4b..4527759b3 100644
--- a/tex/context/base/mkxl/page-lay.mkxl
+++ b/tex/context/base/mkxl/page-lay.mkxl
@@ -123,7 +123,7 @@
\doifnothing{\directlayoutparameter\c!state}{\letlayoutparameter\c!state\v!start}%
\to \everydefinelayout
-\newconditional \layouthaschanged \settrue\layouthaschanged % used in mp
+\newcount\c_page_layouts_changed
\appendtoks
\ifcase\layoutsetupmode
@@ -155,13 +155,9 @@
\page_layouts_synchronize
\page_layouts_check_next
\fi
- \global\settrue\layouthaschanged
+ \global\c_page_layouts_changed\realpageno
\to \everysetuplayout
-\appendtoks
- \global\setfalse\layouthaschanged
-\to \everyaftershipout
-
\permanent\def\doifelselayoutdefined#1%
{\ifcsname\namedlayouthash{#1}\c!state\endcsname % maybe a helper
\expandafter\firstoftwoarguments
@@ -218,12 +214,22 @@
\newtoks\everyswapmargins % watch the order !
+\newconditional\marginsareswapped
+
\appendtoks
+ \ifconditional\marginsareswapped
+ \setfalse\marginsareswapped
+ \else
+ \settrue\marginsareswapped
+ \fi
+ %
\enforced\swapcsvalues\leftmargindistance\rightmargindistance
\enforced\swapcsvalues\leftedgedistance \rightedgedistance
\enforced\swapcsvalues\leftmarginwidth \rightmarginwidth
\enforced\swapcsvalues\leftedgewidth \rightedgewidth
%
+ \enforced\swapcsvalues\backspace \cutspace
+ %
\enforced\swapcsvalues\leftmargintotal \rightmargintotal
\enforced\swapcsvalues\leftedgetotal \rightedgetotal
\enforced\swapcsvalues\leftsidetotal \rightsidetotal
@@ -754,9 +760,9 @@
\ifx\p_direction\v!reverse
\enforced\global\swapcsvalues\naturalleftedgedistance \naturalrightedgedistance
\enforced\global\swapcsvalues\naturalleftmargindistance\naturalrightmargindistance
- \enforced\global\swapcsvalues\leftedgedistance \rightedgedistance
\enforced\global\swapcsvalues\leftmargindistance \rightmargindistance
\enforced\global\swapcsvalues\leftmarginwidth \rightmarginwidth
+ \enforced\global\swapcsvalues\leftedgedistance \rightedgedistance
\enforced\global\swapcsvalues\leftedgewidth \rightedgewidth
\enforced\global\swapcsvalues\backspace \cutspace
\expandafter\setsystemmode
@@ -1256,13 +1262,16 @@
\aliased\let\doifmarginswapelse\doifelsemarginswap
\protected\def\page_layouts_swap_margins % name will change, frozen?
- {\doifelsemarginswap\relax\page_layouts_swap_margins_indeed}
+ {\doifelsemarginswap\gobbleoneargument\page_layouts_swap_margins_indeed}
-\protected\def\page_layouts_swap_margins_indeed
- {\let\page_layouts_swap_margins \relax % to prevent local swapping
- \let\page_layouts_swap_margins_indeed\relax % to prevent local swapping
+\protected\def\page_layouts_swap_margins_indeed#1%
+ {\let\page_layouts_swap_margins\gobbleoneargument % to prevent local swapping
+ %\writestatus\m!layouts{swapping margins for #1}%
\the\everyswapmargins}
+\permanent\protected\def\swapmargindimensions
+ {\page_layouts_swap_margins\v!page}
+
\permanent\def\rightorleftpageaction
{\ifdoublesided
\expandafter\page_layouts_right_or_left_page_action
@@ -1353,6 +1362,15 @@
\glet\page_grids_add_to_one\gobbleoneargument
\glet\page_grids_add_to_mix\gobbleoneargument
+%D Play safe:
+
+\appendtoks
+ \ifnum\realpageno>\plusone
+ \page[\v!odd]%
+ \setuplayout
+ \fi
+\to \everysetuppagenumbering
+
%D The default dimensions are quite old and will not change. The funny fractions
%D were introduced when we went from fixed dimensions to relative ones. Since
%D \CONTEXT\ is a dutch package, the dimensions are based on the metric system. The
diff --git a/tex/context/base/mkxl/page-mbk.mklx b/tex/context/base/mkxl/page-mbk.mklx
index 05b09c79e..9999fb8c7 100644
--- a/tex/context/base/mkxl/page-mbk.mklx
+++ b/tex/context/base/mkxl/page-mbk.mklx
@@ -69,6 +69,12 @@
\c!inbetween=\blank,
\c!bottom=\vfill]
+\definesystemconstant{marginblock}
+
+\resetboxesincache \s!marginblock \s!marginblock
+
+\setfalse\c_page_margin_blocks_enabled
+
\permanent\tolerant\protected\def\startmarginblock[#tag]%
{\begingroup
\edef\currentmarginblock{#tag}%
@@ -77,60 +83,45 @@
\page_margin_blocks_start_block_nop}
\permanent\protected\def\stopmarginblock
- {\doifelse{\marginblockparameter\c!state}\v!start
- \page_margin_blocks_stop_block_yes
- \page_margin_blocks_stop_block_nop
+ {\page_margin_blocks_stop_block
\endgroup}
-\def\page_margin_blocks_start_block_yes % 2 maal \vbox ivm \unvbox elders
- {\showmessage\m!layouts4\empty
- \global\settrue\c_page_margin_blocks_present
- \global\setbox\b_page_margin_blocks\vtop\bgroup\vbox\bgroup
- \hsize\marginblockparameter\c!width
- \ifvoid\b_page_margin_blocks\else
- \unvbox\b_page_margin_blocks
- \marginblockparameter\c!inbetween
- \fi
- \usealignparameter\marginblockparameter
- \usemarginblockstyleandcolor\c!style\c!color
- \begstrut
- \ignorespaces}
+\def\page_margin_blocks_start_block_yes
+ {%\showmessage\m!layouts4\empty
+ \global\settrue\c_page_margin_blocks_enabled
+ \dowithnextboxcs
+ \page_margin_blocks_start_block_save
+ \vbox\bgroup
+ \let\page_margin_blocks_stop_block\page_margin_blocks_stop_block_yes
+ \hsize\marginblockparameter\c!width
+ \usealignparameter\marginblockparameter
+ \usemarginblockstyleandcolor\c!style\c!color
+ \begstrut
+ \ignorespaces}
\def\page_margin_blocks_stop_block_yes
{\removeunwantedspaces
\endstrut
- \egroup
\egroup}
+\def\page_margin_blocks_start_block_save
+ {\putboxincache\s!marginblock{+}\nextbox}
+
\def\page_margin_blocks_start_block_nop
- {\showmessage\m!layouts5\empty
+ {%\showmessage\m!layouts5\empty
\marginblockparameter\c!before
\bgroup
+ \let\page_margin_blocks_stop_block\page_margin_blocks_stop_block_nop
\usemarginblockstyleandcolor\c!style\c!color}
\def\page_margin_blocks_stop_block_nop
{\egroup
\marginblockparameter\c!after}
-\def\page_margin_blocks_reshape
- {\ifdim\ht\b_page_margin_blocks_prepared>\zeropoint
- \beginofshapebox
- \unvbox\b_page_margin_blocks_prepared
- \endofshapebox
- \reshapebox
- {\box\shapebox}%
- \setbox\b_page_margin_blocks_prepared\vbox to \textheight
- {\marginblockparameter\c!top
- \flushshapebox
- \marginblockparameter\c!bottom}%
- \fi}
-
\permanent\protected\def\checkmarginblocks
- {\ifvoid\b_page_margin_blocks
- \global\setfalse\c_page_margin_blocks_present
- \else
- \page_margin_blocks_check_indeed
- \fi}
+ {\ifconditional\c_page_margin_blocks_enabled\ifcase\getboxcountfromcache\s!marginblock\else
+ \expandafter\page_margin_blocks_check_indeed
+ \fi\fi}
\def\page_margin_blocks_check_indeed
{\ifcsname\??marginblocklocation\marginblockparameter\c!location\endcsname
@@ -138,39 +129,58 @@
\csname\??marginblocklocation\marginblockparameter\c!location\endcsname
\else
\global\setbox\b_page_margin_blocks\emptybox
- \global\setfalse\c_page_margin_blocks_present
\fi}
\def\page_margin_blocks_prepare_box
- {\setbox\b_page_margin_blocks_prepared\vbox
- {\forgetall
- \splittopskip\topskip
- \ifvoid\b_page_margin_blocks\else
- \ifdim\ht\b_page_margin_blocks>\textheight
- \vsplit\b_page_margin_blocks to \textheight
- \else
- \unvbox\b_page_margin_blocks
- \fi
+ {\begingroup
+ \scratchcounter\zerocount
+ \localcontrolledloop \plusone \getboxcountfromcache\s!marginblock \plusone
+ {\scratchcounter\currentloopiterator
+ \setbox\scratchbox\vbox\bgroup
+ \marginblockparameter\c!top
+ \localcontrolledloop \plusone \scratchcounter \plusone
+ {\ifcase\currentloopiterator\or
+ \marginblockparameter\c!before
+ \else
+ \marginblockparameter\c!inbetween
+ \fi
+ \setbox\scratchbox\emptyvbox
+ \ht\scratchbox\getboxhtfromcache\s!marginblock{\number\currentloopiterator}%
+ \dp\scratchbox\getboxdpfromcache\s!marginblock{\number\currentloopiterator}%
+ \box\scratchbox
+ \marginblockparameter\c!after}%
+ \marginblockparameter\c!bottom
+ \egroup
+ \ifdim\htdp\scratchbox>\textheight
+ \advance\scratchcounter\minusone
+ %\writestatus{quit}{\the\scratchcounter=>\the\htdp\scratchbox}
+ \quitloop
+ \else
+ %\writestatus{progress}{\the\htdp\scratchbox}
\fi}%
- \page_margin_blocks_reshape
- \setbox\b_page_margin_blocks_prepared\vbox
- {\marginblockparameter\c!before
- \box\b_page_margin_blocks_prepared
- \marginblockparameter\c!after}}
+ \ifcase\scratchcounter\else
+ \global\setbox\b_page_margin_blocks_prepared\vbox to \textheight\bgroup
+ \marginblockparameter\c!top
+ \localcontrolledloop \plusone \scratchcounter \plusone
+ {\ifcase\currentloopiterator\or
+ \marginblockparameter\c!before
+ \else
+ \marginblockparameter\c!inbetween
+ \fi
+ \getboxfromcache\s!marginblock{\number\currentloopiterator}\scratchbox
+ \box\scratchbox
+ \marginblockparameter\c!after}%
+ \marginblockparameter\c!bottom
+ \egroup
+ \pruneboxesincache\s!marginblock
+ \ifcase\getboxcountfromcache\s!marginblock\relax
+ \global\settrue\c_page_margin_blocks_enabled
+ \fi
+ \fi
+ \endgroup}
% inner outer
-\setvalue{\??marginblocklocation\v!left }{\page_margin_blocks_set_l_box}
-\setvalue{\??marginblocklocation\v!right }{\page_margin_blocks_set_r_box}
-\setvalue{\??marginblocklocation\v!inmargin}{\doifbothsidesoverruled
- \page_margin_blocks_set_r_box
- \page_margin_blocks_set_r_box
- \page_margin_blocks_set_l_box}
-\setvalue{\??marginblocklocation\v!middle }{\doifbothsidesoverruled
- \page_margin_blocks_set_r_box
- \page_margin_blocks_set_l_box
- \page_margin_blocks_set_r_box}
-
\permanent\protected\def\page_margin_blocks_place_r_yes
{\setbox\b_page_margin_blocks_prepared\hbox to \rightmarginwidth
{\marginblockparameter\c!left
@@ -196,6 +206,21 @@
\def\page_margin_blocks_set_r_box{\enforced\aliased\let\placerightmarginblock\page_margin_blocks_place_r_yes}
\def\page_margin_blocks_set_l_box{\enforced\aliased\let\placeleftmarginblock \page_margin_blocks_place_l_yes}
+\letcsname\??marginblocklocation\v!left \endcsname\page_margin_blocks_set_l_box
+\letcsname\??marginblocklocation\v!right\endcsname\page_margin_blocks_set_r_box
+
+\defcsname\??marginblocklocation\v!inmargin\endcsname
+ {\doifbothsidesoverruled
+ \page_margin_blocks_set_r_box
+ \page_margin_blocks_set_r_box
+ \page_margin_blocks_set_l_box}
+
+\defcsname\??marginblocklocation\v!middle\endcsname
+ {\doifbothsidesoverruled
+ \page_margin_blocks_set_r_box
+ \page_margin_blocks_set_l_box
+ \page_margin_blocks_set_r_box}
+
% margin floats (keyword 'margin' in option list)
\protected\def\page_margin_blocks_process_float
@@ -204,40 +229,41 @@
\page_margin_blocks_process_float_nop}
\def\page_margin_blocks_process_float_yes
- {\global\setbox\b_page_margin_blocks\vbox
- {\hsize\marginblockparameter\c!width
- \unvcopy\b_page_margin_blocks
- \ifvoid\b_page_margin_blocks\else
- \expandafter\marginblockparameter\expandafter\c!inbetween
- \fi
- \box\floatbox
- \filbreak}%
- \ifdim\ht\b_page_margin_blocks>\textheight
- % page_floats_report_saved % no saving done anyway
- \else
- \page_floats_report_total
- \fi}
+ {\global\settrue\c_page_margin_blocks_enabled
+ \putboxincache\s!marginblock{+}\floatbox}
\def\page_margin_blocks_process_float_nop
{\handlefloatmethod\v!here}
-\def\page_margin_blocks_float_before
- {\ifconditional\c_page_margin_blocks_enabled
- \doifinset\v!margin\floatlocation\endgraf
- \fi}
-
-\def\page_margin_blocks_float_set_hsize
- {\ifconditional\c_page_margin_blocks_enabled
- \doifinset\v!margin\floatlocation{\hsize\rootmarginblockparameter\c!width}%
- \fi}
-
\appendtoks
- \ifvoid\b_page_margin_blocks \else
+ \ifcase\getboxcountfromcache\s!marginblock\else
\writestatus\m!layouts{beware: there are left-over margin floats!}%
\fi
\to \everystoptext
\permanent\protected\def\flushmarginblocks
- {\page_otr_command_flush_margin_blocks}
+ {\ifconditional\c_page_margin_blocks_enabled
+ \page_otr_command_flush_margin_blocks
+ \fi}
+
+\permanent\tolerant\protected\def\flushallmarginblocks[#1]%
+ {\ifconditional\c_page_margin_blocks_enabled
+ \begingroup
+ \scratchcounterone\getboxcountfromcache\s!marginblock\relax
+ \ifcase\scratchcounterone\else
+ \scratchcountertwo\ifparameter#1\or\numexpr\scratchcounterone-#1+\plusone\relax\else\plusone\fi
+ \localcontrolledloop \scratchcountertwo \scratchcounterone \plusone
+ {\ifcase\currentloopiterator\or
+ \marginblockparameter\c!before
+ \else
+ \marginblockparameter\c!inbetween
+ \fi
+ \getboxfromcache\s!marginblock{\number\currentloopiterator}\scratchbox
+ \box\scratchbox
+ \marginblockparameter\c!after}%
+ \pruneboxesincache\s!marginblock
+ \fi
+ \endgroup
+ \fi}
\protect \endinput
diff --git a/tex/context/base/mkxl/page-one.mkxl b/tex/context/base/mkxl/page-one.mkxl
index 61f9172ea..f900d561d 100644
--- a/tex/context/base/mkxl/page-one.mkxl
+++ b/tex/context/base/mkxl/page-one.mkxl
@@ -284,6 +284,7 @@
% baseline
\unskip % new per 2019-06-18, otherwise weird bottom floats
\vkern\dimexpr\maxdepth-\d_page_one_natural_depth\relax
+ % \srule depth \dimexpr\maxdepth-\d_page_one_natural_depth\relax
\page_otr_command_flush_bottom_insertions
\fi
\fakepagenotes}%
diff --git a/tex/context/base/mkxl/page-sid.mkxl b/tex/context/base/mkxl/page-sid.mkxl
index 1ff587120..8959a0e3d 100644
--- a/tex/context/base/mkxl/page-sid.mkxl
+++ b/tex/context/base/mkxl/page-sid.mkxl
@@ -534,7 +534,7 @@
\egroup}}
\def\page_sides_flush_floats_normal
- {\ifdim\scratchdimen>\htdp\strutbox
+ {\ifdim\scratchdimen>\struthtdp
\strut
\else
\m_pages_strut
diff --git a/tex/context/base/mkxl/page-str.lmt b/tex/context/base/mkxl/page-str.lmt
new file mode 100644
index 000000000..9c2562cc4
--- /dev/null
+++ b/tex/context/base/mkxl/page-str.lmt
@@ -0,0 +1,320 @@
+if not modules then modules = { } end modules ['page-str'] = {
+ version = 1.001,
+ comment = "companion to page-str.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- streams -> managers.streams
+
+-- work in progresss .. unfinished .. non-optimized
+
+local concat, insert, remove = table.concat, table.insert, table.remove
+
+local nodes, node = nodes, node
+
+local tasks = nodes.tasks
+
+local implement = interfaces.implement
+
+local nodecodes = nodes.nodecodes
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local slide_node_list = nuts.slide
+local write_node = nuts.write
+local flushnode = nuts.flush
+local copy_node_list = nuts.copylist
+local vpack_node_list = nuts.vpack
+local new_strut = nuts.pool.strutrule
+
+----- getbox = nuts.getbox
+local setlink = nuts.setlink
+local getlist = nuts.getlist
+local setlist = nuts.setlist
+local getwhd = nuts.getwhd
+local setwhd = nuts.setwhd
+local setattrlist = nuts.setattrlist
+
+local settings_to_array = utilities.parsers.settings_to_array
+
+local enableaction = nodes.tasks.enableaction
+
+local texgetdimen = tex.getdimen
+
+local trace_collecting = false trackers.register("streams.collecting", function(v) trace_collecting = v end)
+local trace_flushing = false trackers.register("streams.flushing", function(v) trace_flushing = v end)
+
+local report_streams = logs.reporter("streams")
+
+streams = streams or { } -- might move to the builders namespace
+local streams = streams
+
+-- maybe store head and tail ... first we need usage
+
+local data = { }
+local name = nil
+local stack = { }
+
+function streams.enable(newname)
+ if newname == "default" then
+ name = nil
+ else
+ name = newname
+ end
+end
+
+function streams.disable()
+ name = stack[#stack]
+end
+
+function streams.start(newname)
+ insert(stack,name)
+ name = newname
+end
+
+function streams.stop(newname)
+ name = remove(stack)
+end
+
+function streams.collect(head,where)
+ if name and head and name ~= "default" then
+ local head = tonut(head)
+ local dana = data[name]
+ if not dana then
+ dana = { }
+ data[name] = dana
+ end
+ local last = dana[#dana]
+ if last then
+ local tail = slide_node_list(last)
+ setlink(tail,head)
+ elseif last == false then
+ dana[#dana] = head
+ else
+ dana[1] = head
+ end
+ if trace_collecting then
+ report_streams("appending snippet %a to slot %s",name,#dana)
+ end
+ return nil
+ else
+ return head
+ end
+end
+
+function streams.push(thename)
+ if not thename or thename == "" then
+ thename = name
+ end
+ if thename and thename ~= "" then
+ local dana = data[thename]
+ if dana then
+ dana[#dana+1] = false
+ if trace_collecting then
+ report_streams("pushing snippet %a",thename)
+ end
+ end
+ end
+end
+
+function streams.flush(name,copy) -- problem: we need to migrate afterwards
+ local dana = data[name]
+ if dana then
+ local dn = #dana
+ if dn == 0 then
+ -- nothing to flush
+ elseif copy then
+ if trace_flushing then
+ report_streams("flushing copies of %s slots of %a",dn,name)
+ end
+ for i=1,dn do
+ local di = dana[i]
+ if di then
+ write_node(copy_node_list(getlist(di))) -- list, will be option
+ end
+ end
+ if copy then
+ data[name] = nil
+ end
+ else
+ if trace_flushing then
+ report_streams("flushing %s slots of %a",dn,name)
+ end
+ for i=1,dn do
+ local di = dana[i]
+ if di then
+ write_node(getlist(di)) -- list, will be option
+ setlist(di)
+ flushnode(di)
+ end
+ end
+ end
+ end
+end
+
+function streams.synchronize(list) -- this is an experiment !
+ -- we don't optimize this as we want to trace in detail
+ list = settings_to_array(list)
+ local max = 0
+ if trace_flushing then
+ report_streams("synchronizing list: % t",list)
+ end
+ for i=1,#list do
+ local dana = data[list[i]]
+ if dana then
+ local n = #dana
+ if n > max then
+ max = n
+ end
+ end
+ end
+ if trace_flushing then
+ report_streams("maximum number of slots: %s",max)
+ end
+ for m=1,max do
+ local height, depth = 0, 0
+ for i=1,#list do
+ local name = list[i]
+ local dana = data[name]
+ if dana then
+ local slot = dana[m]
+ if slot then
+ local vbox = vpack_node_list(slot)
+ local wd, ht, dp = getwhd(vbox)
+ if ht > height then
+ height = ht
+ end
+ if dp > depth then
+ depth = dp
+ end
+ dana[m] = vbox
+ if trace_flushing then
+ report_streams("slot %s of %a is packed to height %p and depth %p",m,name,ht,dp)
+ end
+ end
+ end
+ end
+ if trace_flushing then
+ report_streams("slot %s has max height %p and max depth %p",m,height,depth)
+ end
+ local strutht = texgetdimen("globalbodyfontstrutheight")
+ local strutdp = texgetdimen("globalbodyfontstrutdepth")
+ local struthtdp = strutht + strutdp
+ for i=1,#list do
+ local name = list[i]
+ local dana = data[name]
+ if dana then
+ local vbox = dana[m]
+ if vbox then
+ local wd, ht, dp = getwhd(vbox)
+ local delta_height = height - ht
+ local delta_depth = depth - dp
+ if delta_height > 0 or delta_depth > 0 then
+ if false then
+ -- actually we need to add glue and repack
+ setwhd(vbox,false,height,depth)
+ if trace_flushing then
+ report_streams("slot %s of %a with delta (%p,%p) is compensated",m,i,delta_height,delta_depth)
+ end
+ else
+ -- this is not yet ok as we also need to keep an eye on vertical spacing
+ -- so we might need to do some splitting or whatever
+ local list = getlist(vbox)
+ local tail = list and slide_node_list(list)
+ local n = 0
+ local delta = delta_height -- for tracing
+ while delta > 0 do
+ -- we need to add some interline penalties
+ local strut = new_strut(0,strutht,strutdp)
+ setattrlist(strut,vbox)
+ if tail then
+ -- todo: inject at a better place
+ setlink(tail,strut)
+ end
+ tail = strut
+ n = n + 1
+ delta = delta - struthtdp
+ end
+ dana[m] = vpack_node_list(getlist(vbox))
+ setlist(vbox)
+ flushnode(vbox)
+ if trace_flushing then
+ report_streams("slot %s:%s with delta (%p,%p) is compensated by %s lines",m,i,delta_height,delta_depth,n)
+ end
+ end
+ end
+ end
+ else
+ -- make dummy
+ end
+ end
+ end
+end
+
+-- hm, nut or node
+
+tasks.appendaction("mvlbuilders", "normalizers", "streams.collect")
+
+tasks.disableaction("mvlbuilders", "streams.collect")
+
+function streams.initialize()
+ enableaction("mvlbuilders","streams.collect")
+ function streams.initialize() end
+end
+
+-- todo: remove empty last { }'s
+-- todo: better names, enable etc
+
+implement {
+ name = "initializestream",
+ actions = streams.initialize,
+ onlyonce = true,
+}
+
+implement {
+ name = "enablestream",
+ actions = streams.enable,
+ arguments = "string"
+}
+
+implement {
+ name = "disablestream",
+ actions = streams.disable
+}
+
+implement {
+ name = "startstream",
+ actions = streams.start,
+ arguments = "string"
+}
+
+implement {
+ name = "stopstream",
+ actions = streams.stop
+}
+
+implement {
+ name = "flushstream",
+ actions = streams.flush,
+ arguments = "string"
+}
+
+implement {
+ name = "flushstreamcopy",
+ actions = streams.flush,
+ arguments = { "string", true }
+}
+
+implement {
+ name = "synchronizestream",
+ actions = streams.synchronize,
+ arguments = "string"
+}
+
+implement {
+ name = "pushstream",
+ actions = streams.push,
+ arguments = "string"
+}
diff --git a/tex/context/base/mkxl/page-str.mkxl b/tex/context/base/mkxl/page-str.mkxl
index d6e01ea59..067283ee0 100644
--- a/tex/context/base/mkxl/page-str.mkxl
+++ b/tex/context/base/mkxl/page-str.mkxl
@@ -27,7 +27,7 @@
%D
%D Remark: marknotes are gone, at least for a while.
-\registerctxluafile{page-str}{}
+\registerctxluafile{page-str}{autosuffix}
\unprotect
diff --git a/tex/context/base/mkxl/page-txt.mklx b/tex/context/base/mkxl/page-txt.mklx
index 4d80cfa76..a66dc0829 100644
--- a/tex/context/base/mkxl/page-txt.mklx
+++ b/tex/context/base/mkxl/page-txt.mklx
@@ -866,7 +866,7 @@
{\setbox\b_page_layouts_element\vpack
{\dontcomplain
\calculatereducedvsizes
- \page_layouts_swap_margins
+ \page_layouts_swap_margins\v!text
\offinterlineskip
\vkern\dimexpr-\topheight-\topdistance\relax
\the\toptextcontent
@@ -896,12 +896,12 @@
{\offinterlineskip
\calculatereducedvsizes
\calculatehsizes
- \page_layouts_swap_margins
+ \page_layouts_swap_margins\v!page
\vkern\dimexpr\headerheight+\headerdistance+\textdistance\relax
\dontleavehmode
\hpack to \makeupwidth
{\begingroup
- \page_layouts_swap_margins
+ % \page_layouts_swap_margins\v!page
\goleftonpage
\ifdim\leftedgewidth>\zeropoint
\the\leftedgetextcontent
diff --git a/tex/context/base/mkxl/spac-hor.mkxl b/tex/context/base/mkxl/spac-hor.mkxl
index c8ac4c74c..ee9001e62 100644
--- a/tex/context/base/mkxl/spac-hor.mkxl
+++ b/tex/context/base/mkxl/spac-hor.mkxl
@@ -23,6 +23,7 @@
\bitwiseflip \normalizelinemode \normalizelinenormalizecode
\bitwiseflip \normalizelinemode \clipwidthnormalizecode
\bitwiseflip \normalizelinemode \flattendiscretionariesnormalizecode
+\bitwiseflip \normalizelinemode \flattenleadersnormalizecode % neglectable overhead
%bitwiseflip \normalizelinemode \discardzerotabskipsnormalizecode
\let\v_spac_indentation_current\empty % amount/keyword
@@ -900,6 +901,8 @@
% \box\b_spac_indentations_a
% \endgroup}
+%D Struts are done differently now.
+%D
%D The only complication lays in \type{\strut}. In \PLAIN\ \TEX\ a \type{\strut} is
%D defined as:
%D
diff --git a/tex/context/base/mkxl/spac-par.mkxl b/tex/context/base/mkxl/spac-par.mkxl
index d382a6c8c..098595dfe 100644
--- a/tex/context/base/mkxl/spac-par.mkxl
+++ b/tex/context/base/mkxl/spac-par.mkxl
@@ -39,7 +39,7 @@
+ \widowpenaltyfrozenparcode
+ \clubpenaltyfrozenparcode
+ \brokenpenaltyfrozenparcode
- + \shapingpenaltiesfrozenparcode
+ + \shapingpenaltyfrozenparcode
+ \orphanpenaltyfrozenparcode
\relax
@@ -83,7 +83,7 @@
+ \shapefrozenparcode % \parshape
% \linefrozenparcode % \baselineskip \lineskip \lineskiplimit
+ \hyphenationfrozenparcode % \hyphenationmode
- + \shapingpenaltiesfrozenparcode % \shapingpenaltiesmode
+ + \shapingpenaltyfrozenparcode % \shapingpenaltymode
+ \orphanpenaltyfrozenparcode
\relax
diff --git a/tex/context/base/mkxl/spac-ver.mkxl b/tex/context/base/mkxl/spac-ver.mkxl
index 3f40d98cf..68f74c9ee 100644
--- a/tex/context/base/mkxl/spac-ver.mkxl
+++ b/tex/context/base/mkxl/spac-ver.mkxl
@@ -825,22 +825,20 @@
%D
%D But we do things differently.
-\newbox\strutbox
+\newbox\b_strut_box
+\newbox\b_strut_tmp
-\setbox\strutbox\hpack{\vrule\s!height8.5pt\s!depth3.5pt\s!width\zeropoint} % just a start
-
-% \permanent\protected\def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
-%
-% \protected\def\strut
-% {\relax
-% \ifmmode\copy\else\dontleavehmode\unhcopy\fi\strutbox}
-%
-% \aliased\let\normalstrut\strut
+\permanent\protected\def\strutbox % not to be used but this is sort of an alias
+ {\beginlocalcontrol
+ \setbox\b_strut_tmp\hpack{\normalsrule\s!height\strutht\s!depth\strutdp}% just a start
+ \endlocalcontrol
+ \b_strut_tmp}
%D The double \type {\hbox} construction enables us to backtrack boxes.
-\overloaded\let\strutht\undefined \newdimen\strutht
-\overloaded\let\strutdp\undefined \newdimen\strutdp
+\overloaded\let\strutht \undefined \newdimen\strutht
+\overloaded\let\strutdp \undefined \newdimen\strutdp
+\overloaded\let\struthtdp\undefined \newdimen\struthtdp
\permanent\protected\def\setstrut
{\ifgridsnapping
@@ -884,9 +882,9 @@
\dosetstrut}
\permanent\protected\def\setcharstrut#1%
- {\setbox\strutbox\hbox{#1}% no \hpack, in case we have smallcaps
- \strutht\ht\strutbox
- \strutdp\dp\strutbox
+ {\setbox\b_strut_box\hbox{#1}% no \hpack, in case we have smallcaps
+ \strutht\ht\b_strut_box
+ \strutdp\dp\b_strut_box
\dosetstrut}
\permanent\protected\def\settightstrut
@@ -903,13 +901,17 @@
\permanent\protected\def\charhtstrut
{\begingroup
\setcharstrut{GJY}%
- \vrule\s!width\zeropoint\s!depth\zeropoint\s!height\strutht
+ \normalsrule
+ \s!depth \zeropoint
+ \s!height\strutht
\endgroup}
\permanent\protected\def\chardpstrut
{\begingroup
\setcharstrut{gjy}%
- \vrule\s!width\zeropoint\s!depth\strutdp\s!height\zeropoint
+ \normalsrule
+ \s!depth \strutdp
+ \s!height\zeropoint
\endgroup}
%D Because of all the callbacks in mkiv, we avoid unnecessary boxes ... maybe use an
@@ -919,143 +921,82 @@
\permanent\protected\def\dosetstrut
{\enforced\let\strut\normalstrut
- \ifabsnum\dimexpr\strutht+\strutdp-\lineheight\relax<\plustwo
+ \ifabsnum\dimexpr\struthtdp-\lineheight\relax<\plustwo
% compensate rounding error /- 1sp to avoid too many
% 1sp baselineskips in for instance verbatim
% \strutht\dimexpr\lineheight-\strutdp\relax
% better:
\strutdp\dimexpr\lineheight-\strutht\relax
\struttotal\lineheight
- \else
- \struttotal\dimexpr\strutht+\strutdp\relax
\fi
+ \struthtdp\dimexpr\strutht+\strutdp\relax
\strutheight\strutht
\strutdepth \strutdp
- \ifdim\strutwidth=\zeropoint
- \spac_struts_set_hide
- \else
- \spac_struts_set_vide
- \fi}
-
-\def\spac_struts_set_hide
- {\setbox\strutbox\hpack
- {\vrule
- \s!width \zeropoint
- \s!height\strutht
- \s!depth \strutdp}}
+ \struttotal \struthtdp}
\newconstant\c_strut_visual_mode
-\def\spac_struts_set_vide
- {\setbox\strutbox\hpack % at some time this extra wrapping was needed
- {\spac_struts_vide_hbox to \zeropoint
- {\ifcase\c_strut_visual_mode
- \spac_struts_black
- \or
- \spac_struts_color
- \else
- \spac_struts_black
- \fi}}}
-
-\def\spac_struts_black
- {\vrule
- \s!width \strutwidth
- \s!height\strutht
- \s!depth \strutdp
- \hss}
-
-\def\spac_struts_color
- {\hss % new, will be option
- \scratchwidth.1\struthtdp
- \begingroup
- \directcolor[f:b:t]%
- \vrule
- \s!width \scratchwidth
- \s!height\strutht
- \s!depth \strutdp
- \kern-\scratchwidth
- \vrule
- \s!width \scratchwidth
- \s!height\zeropoint
- \s!depth \strutdp
- \endgroup
- \kern-.625\scratchwidth
- \vrule
- \s!width .25\scratchwidth
- \s!height\strutht
- \s!depth \strutdp
- \hss}
-
-\let\spac_struts_vide_hbox\hbox % overloaded in trac-vis.mkiv
-
%D The dimen \type {\struttotal} holds the exact size of the strut; occasionally a
%D one scaled point difference can show up with the lineheight. This is more
%D efficient (less callbacks):
-\newbox\b_spac_struts_empty \setbox\b_spac_struts_empty\emptyhbox
-
-\def\spac_struts_set_hide
- {\setbox\strutbox\copy\b_spac_struts_empty
- \ht\strutbox\strutht
- \dp\strutbox\strutdp}
-
\permanent\protected\def\strut % still callbacks for \hbox{\strut}
{\relax
\dontleavehmode
- \copy\strutbox}
-
-% \protected\def\strut % slightly faster
-% {\relax
-% \ifmmode\copy\else\dontleavehmode\unhcopy\fi\strutbox}
+ \normalsrule
+ \s!height\strutht
+ \s!depth \strutdp
+ \relax}
\aliased\let\normalstrut\strut
\permanent\protected\def\halfstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht/\plustwo\relax
- \dp\scratchbox\dimexpr\strutdp/\plustwo\relax
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height.5\strutht
+ \s!depth .5\strutdp
+ \relax}
\permanent\protected\def\quarterstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht/\plusfour\relax
- \dp\scratchbox\dimexpr\strutdp/\plusfour\relax
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height.25\strutht
+ \s!depth .25\strutdp
+ \relax}
\permanent\protected\def\depthstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht-\struthtdp/\plustwo\relax % assumes that ht > lineheight/2
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height\dimexpr\strutht-\struthtdp/\plustwo\relax
+ \s!depth \strutdp
+ \relax}
\permanent\protected\def\halflinestrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht-.5\strutht-.5\strutdp\relax
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height\dimexpr\strutht-.5\struthtdp\relax
+ \s!depth \strutdp
+ \relax}
\permanent\protected\def\noheightstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\zeropoint
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height\zeropoint
+ \s!depth \strutdp
+ \relax}
+
+\permanent\protected\def\nodepthstrut
+ {\relax
+ \dontleavehmode
+ \normalsrule
+ \s!height\strutht
+ \s!depth \zeropoint
+ \relax}
%D Sometimes a capstrut comes in handy
%D
@@ -1095,32 +1036,16 @@
\fi}
\permanent\protected\def\showstruts % adapts .. is wrong
- {\c_strut_visual_mode\zerocount
- \setteststrut
- \settestcrlf}
-
-\permanent\protected\def\showcolorstruts % adapts .. is wrong
- {\c_strut_visual_mode\plusone
- \setteststrut
+ {\showmakeup[strut]%
\settestcrlf}
-\permanent\protected\def\setteststrut
- {\strutwidth.8\onepoint
- \setstrut}
-
-\permanent\protected\def\dontshowstruts
- {\unsetteststrut
- \settestcrlf}
-
-\permanent\protected\def\unsetteststrut
- {\strutwidth\zeropoint
- \setstrut}
+\aliased\let\showcolorstruts\showstruts
\mutable\def\autostrutfactor{1.1}
\permanent\protected\def\setautostrut
{\begingroup
- \setbox\scratchbox\copy\strutbox
+ \setbox\scratchbox\copy\b_strut_box
\setstrut
\ifdim\strutht>\autostrutfactor\ht\scratchbox
\endgroup \setstrut
@@ -1138,7 +1063,6 @@
{\the\everysetnostrut}
\appendtoks
- \setbox\strutbox\copy\nostrutbox
\enforced\let\strut \empty
\enforced\let\endstrut\empty
\enforced\let\begstrut\empty
@@ -1468,10 +1392,10 @@
%D To be checked:
-\newbox\b_spac_struts_saved
-
-\permanent\protected\def\savestrut {\setbox\b_spac_struts_saved\copy\strutbox}
-\permanent\protected\def\savedstrut{\copy \b_spac_struts_saved}
+% \newbox\b_spac_struts_saved
+%
+% \permanent\protected\def\savestrut {\setbox\b_spac_struts_saved\copy\b_strut_box}
+% \permanent\protected\def\savedstrut{\copy \b_spac_struts_saved}
%D Good old blank redone:
diff --git a/tex/context/base/mkxl/strc-flt.mklx b/tex/context/base/mkxl/strc-flt.mklx
index 862aa7ff9..5eb18baac 100644
--- a/tex/context/base/mkxl/strc-flt.mklx
+++ b/tex/context/base/mkxl/strc-flt.mklx
@@ -1533,7 +1533,7 @@
\whitespace
\blank[\rootfloatparameter\c!spacebefore]%
\doifnotinset\v!tall\floatlocation
- {\dp\floatbox\openstrutdepth}% dp\strutbox}% % toegevoegd
+ {\dp\floatbox\openstrutdepth}% \strutdp % toegevoegd
\box\floatbox
\dostoptagged
\blank[\rootfloatparameter\c!spaceafter]%
diff --git a/tex/context/base/mkxl/strc-mat.mkxl b/tex/context/base/mkxl/strc-mat.mkxl
index 39c70fe87..edfe9d97f 100644
--- a/tex/context/base/mkxl/strc-mat.mkxl
+++ b/tex/context/base/mkxl/strc-mat.mkxl
@@ -874,8 +874,8 @@
% for the moment (when testing) we use a penalty 1
-\protected\def\strc_math_align_here{\ifmmode\penalty\plusone\fi}%
-\protected\def\strc_math_break_here{\ifmmode\hfill\break \fi}%
+\protected\def\strc_math_align_here{\ifmmode\boundary\plusone\fi}%
+\protected\def\strc_math_break_here{\ifmmode\hfill\break\fi}%
\ifdefined\alignhere \else \aliased\let\alignhere\relax \fi
\ifdefined\breakhere \else \aliased\let\breakhere\relax \fi
diff --git a/tex/context/base/mkxl/strc-ref.mklx b/tex/context/base/mkxl/strc-ref.mklx
index d5e054962..61c1085f1 100644
--- a/tex/context/base/mkxl/strc-ref.mklx
+++ b/tex/context/base/mkxl/strc-ref.mklx
@@ -444,8 +444,8 @@
{\referenceprefix}%
{#label}%
{%
- height \ht\strutbox
- depth \dp\strutbox
+ height \strutht
+ depth \strutdp
\extrareferencearguments
}%
\relax
@@ -1483,8 +1483,8 @@
{\referenceprefix}%
{#label}%
{%
- height \ht\strutbox
- depth \dp\strutbox
+ height \strutht
+ depth \strutdp
\extrareferencearguments
}%
\relax
@@ -1535,8 +1535,8 @@
\iflocation
\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}%
{\clf_injectcurrentreferencehtdp
- \ht\strutbox
- \dp\strutbox
+ \strutht
+ \strutdp
\relax
\setlocationattributes
\setstrut % can be option
@@ -1592,8 +1592,8 @@
\protected\def\strc_references_start_goto_yes
{\clf_injectcurrentreferencehtdp
- \ht\strutbox
- \dp\strutbox
+ \strutht
+ \strutdp
\relax
\setlocationattributes
\setstrut % can be option
diff --git a/tex/context/base/mkxl/supp-box.lmt b/tex/context/base/mkxl/supp-box.lmt
index 93b97b48e..ae4e32353 100644
--- a/tex/context/base/mkxl/supp-box.lmt
+++ b/tex/context/base/mkxl/supp-box.lmt
@@ -602,6 +602,20 @@ do
setbox(box,b or nil)
end
+ function boxes.prune(category)
+ -- this one assumes an indexed list
+ local c = cache[category]
+ local t = { }
+ local n = 0
+ for i=1,#c do
+ local ci = c[i]
+ if ci then
+ n = n + 1 ; t[n] = ci
+ end
+ end
+ cache[category] = t
+ end
+
local function dimensions(category,name)
name = tonumber(name) or name
local b = cache[category][name]
@@ -703,6 +717,14 @@ do
}
implement {
+ name = "pruneboxesincache",
+ public = true,
+ protected = true,
+ arguments = "string",
+ actions = boxes.prune,
+ }
+
+ implement {
name = "disposeboxesincache",
public = true,
protected = true,
@@ -760,6 +782,18 @@ do
}
implement {
+ name = "getboxhtdpfromcache",
+ arguments = "2 strings",
+ public = true,
+ protected = true,
+ usage = "value",
+ actions = function(category,name)
+ local w, h, d = dimensions(category,name)
+ return dimension_value, h + d
+ end,
+ }
+
+ implement {
name = "putnextboxincache",
public = true,
protected = true,
diff --git a/tex/context/base/mkxl/supp-box.mkxl b/tex/context/base/mkxl/supp-box.mkxl
index b980107e4..fe96505a0 100644
--- a/tex/context/base/mkxl/supp-box.mkxl
+++ b/tex/context/base/mkxl/supp-box.mkxl
@@ -40,10 +40,10 @@
%D not, you're in trouble). These shortcuts can be used like a dimension, opposite
%D to the core macros \type {\strutdepth} and alike, which are values.
- \def\strutdp {\dp\strutbox} % overloaded in spac-ver
- \def\strutht {\ht\strutbox} % overloaded in spac-ver
+ \def\strutdp {\dp\strutbox} % overloaded in spac-ver
+ \def\strutht {\ht\strutbox} % overloaded in spac-ver
\permanent\protected\def\strutwd {\wd\strutbox}
-\permanent\protected\def\struthtdp{\dimexpr\strutht+\strutdp\relax}
+ \def\struthtdp{\htdp\strutbox} % overloaded in spac-ver
\permanent\protected\def\strutgap {\dimexpr\strutht-\strutdp\relax}
%D \macros
@@ -330,7 +330,7 @@
%D We also define plain's \type {\mathstrut}.
-\permanent\protected\def\mathstrut{\vphantom(} % can be made faster by inlining
+\permanent\protected\def\mathstrut{\Ustack{\vphantom(}} % can be made faster by inlining
%D \macros
%D {getboxheight}
@@ -2027,7 +2027,7 @@
\permanent\protected\def\bbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_bbox_finish\hbox}
\def\syst_boxes_tbox_finish
- {\scratchheight\ht\strutbox
+ {\scratchheight\strutht
\scratchdepth\dimexpr\htdp\nextbox-\scratchheight\relax
\ht\nextbox\scratchheight
\dp\nextbox\scratchdepth
@@ -2036,7 +2036,7 @@
\egroup}
\def\syst_boxes_bbox_finish
- {\scratchdepth\dp\strutbox
+ {\scratchdepth\strutdp
\scratchheight\dimexpr\htdp\nextbox-\scratchdepth\relax
\dp\nextbox\scratchdepth
\ht\nextbox\scratchheight
@@ -2457,6 +2457,7 @@
% \getboxwdfromcache % {category} {name}
% \getboxhtfromcache % {category} {name}
% \getboxdpfromcache % {category} {name}
+% \getboxhtdpfromcache % {category} {name}
%D \macros
%D {removedepth, obeydepth}
@@ -2812,10 +2813,10 @@
\permanent\protected\def\linebox
{\hpack\bgroup\dowithnextbox
- {\scratchdimen\dimexpr\dimexpr\htdp\nextbox-\lineheight\relax/2+\dp\strutbox\relax
+ {\scratchdimen\dimexpr\dimexpr\htdp\nextbox-\lineheight\relax/2+\strutdp\relax
\setbox\nextbox\hpack{\lower\scratchdimen\box\nextbox}%
- \ht\nextbox\ht\strutbox
- \dp\nextbox\dp\strutbox
+ \ht\nextbox\strutht
+ \dp\nextbox\strutdp
\box\nextbox
\egroup}
\hbox}
diff --git a/tex/context/base/mkxl/symb-ini.mkxl b/tex/context/base/mkxl/symb-ini.mkxl
index ce489ee5a..e26892e4d 100644
--- a/tex/context/base/mkxl/symb-ini.mkxl
+++ b/tex/context/base/mkxl/symb-ini.mkxl
@@ -143,7 +143,7 @@
\csname\??symbol#1\endcsname\relax
\endgroup}
-\letvalue{\??symbol}\firstofoneargument
+\letcsname\??symbol\endcsname\firstofoneargument
\permanent\def\directsymbol#1#2% no \relax, there can be an argument, see lists
{\begincsname\??symbol#1:#2\endcsname}
diff --git a/tex/context/base/mkxl/syst-aux.mkxl b/tex/context/base/mkxl/syst-aux.mkxl
index aceb52aac..ced19dcd2 100644
--- a/tex/context/base/mkxl/syst-aux.mkxl
+++ b/tex/context/base/mkxl/syst-aux.mkxl
@@ -4186,6 +4186,21 @@
%D {\groupedcommand{\raggedcenter\bf}{\par}}
%D \stoptyping
+%D For math we use this:
+
+\permanent\protected\def\mathgroupedcommandcs#1%
+ {\let\m_syst_helpers_handle_group_b#1%
+ \futureexpandis\bgroup\syst_helpers_handle_math_group_normal\syst_helpers_handle_math_group_nop}
+
+\protected\def\syst_helpers_handle_math_group_normal#1%
+ {\beginmathgroup
+ \m_syst_helpers_handle_group_b
+ #1%
+ \endmathgroup}
+
+\protected\def\syst_helpers_handle_math_group_nop
+ {\m_syst_helpers_handle_group_b}
+
% %D \macros
% %D {checkdefined}
% %D
@@ -5903,7 +5918,7 @@
%D \setdimensionwithunit\scratchdimen{10cm}{cm}
%D \setdimensionwithunit\scratchdimen{10cm}{}
%D \freezedimensionwithunit\SomeWidth{\textwidth}
-%D \freezedimensionwithunit\SomeDepth{\dp\strutbox}
+%D \freezedimensionwithunit\SomeDepth{\strutdp}
%D \stoptyping
%D
%D As an alternative for the next macro we can use a global assignment inside a box.
diff --git a/tex/context/base/mkxl/syst-fnt.mkxl b/tex/context/base/mkxl/syst-fnt.mkxl
index e6029d805..62239917f 100644
--- a/tex/context/base/mkxl/syst-fnt.mkxl
+++ b/tex/context/base/mkxl/syst-fnt.mkxl
@@ -23,13 +23,25 @@
\immutable\protected\def\fontemwidth {\scaledfontdimen\plussix }
\immutable\protected\def\fontextraspace {\scaledfontdimen\plusseven}
-\immutable\protected\def\slantperpoint {\scaledfontdimen\plusone \font}
-\immutable\protected\def\interwordspace {\scaledfontdimen\plustwo \font}
-\immutable\protected\def\interwordstretch {\scaledfontdimen\plusthree\font}
-\immutable\protected\def\interwordshrink {\scaledfontdimen\plusfour \font}
-\immutable\protected\def\exheight {\scaledfontdimen\plusfive \font}
-\immutable\protected\def\emwidth {\scaledfontdimen\plussix \font}
-\immutable\protected\def\extraspace {\scaledfontdimen\plusseven\font}
+%immutable\protected\def\slantperpoint {\scaledfontdimen\plusone \font}
+%immutable\protected\def\interwordspace {\scaledfontdimen\plustwo \font}
+%immutable\protected\def\interwordstretch {\scaledfontdimen\plusthree\font}
+%immutable\protected\def\interwordshrink {\scaledfontdimen\plusfour \font}
+%immutable\protected\def\exheight {\scaledfontdimen\plusfive \font}
+%immutable\protected\def\emwidth {\scaledfontdimen\plussix \font}
+%immutable\protected\def\extraspace {\scaledfontdimen\plusseven\font}
+
+%D This saves a little bit of overhead but more important, it gives less tracing,
+%D and for practical reasone we keep this indirectness because we syntax highlight
+%D these pseudo constants different than primitives.
+
+\immutable\aliased\let\slantperpoint \scaledslantperpoint
+\immutable\aliased\let\interwordspace \scaledinterwordspace
+\immutable\aliased\let\interwordstretch \scaledinterwordstretch
+\immutable\aliased\let\interwordshrink \scaledinterwordshrink
+\immutable\aliased\let\exheight \scaledexheight
+\immutable\aliased\let\emwidth \scaledemwidth
+\immutable\aliased\let\extraspace \scaledextraspace
\aliased\let\mathaxisheight\Umathaxis % takes style
diff --git a/tex/context/base/mkxl/syst-ini.mkxl b/tex/context/base/mkxl/syst-ini.mkxl
index 605a4c334..6f3ccd89f 100644
--- a/tex/context/base/mkxl/syst-ini.mkxl
+++ b/tex/context/base/mkxl/syst-ini.mkxl
@@ -296,30 +296,44 @@
% 255 : page
% 256 - : user defined
-%D Later on, the \type {\c_syst_max_allocated_register} variable will be halfed so
-%D that while local allocators will use the 22* range. So we have plenty of room
-%D reserved for more private ones.
+%D Later on, the \type {\c_syst_max_allocated_*} variables will be halfed so that
+%D while local allocators will use the 23* range. So we have plenty of room reserved
+%D for more private ones.
+
+\directlua {tex.magicconstants = status.getconstants()} % this will be reset later on
\permanent\countdef\c_syst_min_allocated_register = 201 \c_syst_min_allocated_register = 256 % can change
-\permanent\countdef\c_syst_max_allocated_register = 202 \c_syst_max_allocated_register = 65535 % is adapted later on
+
\permanent\countdef\c_syst_min_allocated_iohandle = 203 \c_syst_min_allocated_iohandle = 0
\permanent\countdef\c_syst_max_allocated_iohandle = 204 \c_syst_max_allocated_iohandle = 1023
-\permanent\countdef\c_syst_min_allocated_attribute = 205 \c_syst_min_allocated_attribute = 1024 % 0-1023 : private
-\permanent\countdef\c_syst_min_allocated_mark = 206 \c_syst_min_allocated_mark = 16 % a few scratch ones
-\permanent\countdef\c_syst_max_allocated_mark = 207 \c_syst_max_allocated_mark = 1024 % max 10K in luametatex anyway
-
-\permanent\countdef\c_syst_last_allocated_count = 211 \c_syst_last_allocated_count = \c_syst_min_allocated_register
-\permanent\countdef\c_syst_last_allocated_dimen = 212 \c_syst_last_allocated_dimen = \c_syst_min_allocated_register
-\permanent\countdef\c_syst_last_allocated_skip = 213 \c_syst_last_allocated_skip = \c_syst_min_allocated_register
-\permanent\countdef\c_syst_last_allocated_muskip = 214 \c_syst_last_allocated_muskip = \c_syst_min_allocated_register
-\permanent\countdef\c_syst_last_allocated_box = 215 \c_syst_last_allocated_box = \c_syst_min_allocated_register
-\permanent\countdef\c_syst_last_allocated_toks = 216 \c_syst_last_allocated_toks = \c_syst_min_allocated_register
-\permanent\countdef\c_syst_last_allocated_read = 217 \c_syst_last_allocated_read = \c_syst_min_allocated_iohandle
-\permanent\countdef\c_syst_last_allocated_write = 218 \c_syst_last_allocated_write = \c_syst_min_allocated_iohandle
-\permanent\countdef\c_syst_last_allocated_marks = 219 \c_syst_last_allocated_marks = \c_syst_min_allocated_mark
-
-\permanent\countdef\c_syst_min_counter_value = 253 \c_syst_min_counter_value = -"7FFFFFFF
-\permanent\countdef\c_syst_max_counter_value = 254 \c_syst_max_counter_value = "7FFFFFFF
+
+\permanent\countdef\c_syst_min_allocated_mark = 205 \c_syst_min_allocated_mark = 16 % a few scratch ones
+\permanent\countdef\c_syst_max_allocated_mark = 206 \c_syst_max_allocated_mark = 1024 % max 10K in luametatex anyway
+
+\permanent\countdef\c_syst_min_allocated_attribute = 207 \c_syst_min_allocated_attribute = 1024 % 0-1023 : private
+\permanent\countdef\c_syst_max_allocated_attribute = 208 \c_syst_min_allocated_attribute = \directlua{tex.write(tex.magicconstants.max_attribute_register_index)} % 65535 % no allocator, managed differently
+
+\permanent\countdef\c_syst_max_allocated_count = 211 \c_syst_max_allocated_count = \directlua{tex.write(tex.magicconstants.max_int_register_index)} % 65535 % is adapted later on
+\permanent\countdef\c_syst_max_allocated_dimen = 212 \c_syst_max_allocated_dimen = \directlua{tex.write(tex.magicconstants.max_dimen_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_skip = 213 \c_syst_max_allocated_skip = \directlua{tex.write(tex.magicconstants.max_glue_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_muskip = 214 \c_syst_max_allocated_muskip = \directlua{tex.write(tex.magicconstants.max_mu_glue_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_box = 215 \c_syst_max_allocated_box = \directlua{tex.write(tex.magicconstants.max_box_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_toks = 216 \c_syst_max_allocated_toks = \directlua{tex.write(tex.magicconstants.max_toks_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_read = 217 \c_syst_max_allocated_read = \c_syst_max_allocated_iohandle
+\permanent\countdef\c_syst_max_allocated_write = 218 \c_syst_max_allocated_write = \c_syst_max_allocated_iohandle
+
+\permanent\countdef\c_syst_last_allocated_count = 221 \c_syst_last_allocated_count = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_dimen = 222 \c_syst_last_allocated_dimen = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_skip = 223 \c_syst_last_allocated_skip = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_muskip = 224 \c_syst_last_allocated_muskip = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_box = 225 \c_syst_last_allocated_box = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_toks = 226 \c_syst_last_allocated_toks = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_read = 227 \c_syst_last_allocated_read = \c_syst_min_allocated_iohandle
+\permanent\countdef\c_syst_last_allocated_write = 228 \c_syst_last_allocated_write = \c_syst_min_allocated_iohandle
+\permanent\countdef\c_syst_last_allocated_marks = 229 \c_syst_last_allocated_marks = \c_syst_min_allocated_mark
+
+\permanent\countdef\c_syst_min_counter_value = 253 \c_syst_min_counter_value = -"7FFFFFFF
+\permanent\countdef\c_syst_max_counter_value = 254 \c_syst_max_counter_value = "7FFFFFFF
\immutable\integerdef\zerocount 0
\immutable\integerdef\plusone 1
@@ -339,15 +353,15 @@
%D The allocators share a common helper macro. Marks might be changed to work in lower
%D regions and we always assumes allocation.
-\permanent\protected\def\newcount {\syst_basics_allocate\c_syst_last_allocated_count \count \countdef \c_syst_max_allocated_register}
-\permanent\protected\def\newdimen {\syst_basics_allocate\c_syst_last_allocated_dimen \dimen \dimendef \c_syst_max_allocated_register}
-\permanent\protected\def\newskip {\syst_basics_allocate\c_syst_last_allocated_skip \skip \skipdef \c_syst_max_allocated_register}
-\permanent\protected\def\newmuskip{\syst_basics_allocate\c_syst_last_allocated_muskip\muskip\muskipdef \c_syst_max_allocated_register}
-\permanent\protected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \integerdef\c_syst_max_allocated_register}
-\permanent\protected\def\newtoks {\syst_basics_allocate\c_syst_last_allocated_toks \toks \toksdef \c_syst_max_allocated_register}
-\permanent\protected\def\newread {\syst_basics_allocate\c_syst_last_allocated_read \read \integerdef\c_syst_max_allocated_iohandle}
-\permanent\protected\def\newwrite {\syst_basics_allocate\c_syst_last_allocated_write \write \integerdef\c_syst_max_allocated_iohandle}
-\permanent\protected\def\newmarks {\syst_basics_allocate\c_syst_last_allocated_marks \marks \integerdef\c_syst_max_allocated_mark }
+\permanent\protected\def\newcount {\syst_basics_allocate\c_syst_last_allocated_count \count \countdef \c_syst_max_allocated_count}
+\permanent\protected\def\newdimen {\syst_basics_allocate\c_syst_last_allocated_dimen \dimen \dimendef \c_syst_max_allocated_dimen}
+\permanent\protected\def\newskip {\syst_basics_allocate\c_syst_last_allocated_skip \skip \skipdef \c_syst_max_allocated_skip}
+\permanent\protected\def\newmuskip{\syst_basics_allocate\c_syst_last_allocated_muskip\muskip\muskipdef \c_syst_max_allocated_muskip}
+\permanent\protected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \integerdef\c_syst_max_allocated_box}
+\permanent\protected\def\newtoks {\syst_basics_allocate\c_syst_last_allocated_toks \toks \toksdef \c_syst_max_allocated_toks}
+\permanent\protected\def\newread {\syst_basics_allocate\c_syst_last_allocated_read \read \integerdef\c_syst_max_allocated_read}
+\permanent\protected\def\newwrite {\syst_basics_allocate\c_syst_last_allocated_write \write \integerdef\c_syst_max_allocated_write}
+\permanent\protected\def\newmarks {\syst_basics_allocate\c_syst_last_allocated_marks \marks \integerdef\c_syst_max_allocated_mark}
\firstvalidlanguage \plusone % so zero is ignored in hyphenation, this might become the default
@@ -424,9 +438,6 @@
%D Since the number of chars exceed 256 now, we can use \type {\chardef} instead of
%D the more limited \type {\mathchardef}.
-% \protected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \chardef\c_syst_max_allocated_register}
-% \protected\def\newmarks{\syst_basics_allocate\c_syst_last_allocated_marks\marks\chardef\c_syst_max_allocated_register}
-
%D Attributes are something very \LUATEX. In \CONTEXT\ you are not supposed to use
%D the attributes directly but always allocate then first. For instance attribute~0
%D is reserved for special purposes (this might change). Attributes in the range
@@ -434,7 +445,7 @@
\immutable\integerdef\attributeunsetvalue\c_syst_min_counter_value % used to be \minusone
-% \permanent\protected\def\newattribute{\syst_basics_allocate\c_syst_last_allocated_attribute\attribute\attributedef\c_syst_max_allocated_register}
+% \permanent\protected\def\newattribute{\syst_basics_allocate\c_syst_last_allocated_attribute\attribute\attributedef\c_syst_max_allocated_attribute}
% %D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a trick to force
% %D strings instead of tokens that take more memory.
@@ -739,14 +750,16 @@
% For now:
-\permanent\protected\def\defUmathtopaccent #1#2#3#4{\global\immutable\protected\def#1{\Umathaccent "#2 "#3 "#4 }}
-\permanent\protected\def\defUmathbotaccent #1#2#3#4{\global\immutable\protected\def#1{\Umathbotaccent "#2 "#3 "#4 }}
-\permanent\protected\def\defUdelimiterover #1#2#3#4{\global\immutable\protected\def#1{\Udelimiterover "#2 "#3 }}
-\permanent\protected\def\defUdelimiterunder #1#2#3#4{\global\immutable\protected\def#1{\Udelimiterunder "#2 "#3 }}
-\permanent\protected\def\defUdelimiter #1#2#3#4{\global\immutable\protected\def#1{\Udelimiter "#2 "#3 "#4 }}
-\permanent\protected\def\defUradical #1#2#3{\global\immutable\protected\def#1{\Uradical "#2 "#3 }}
-\permanent\protected\def\defUroot #1#2#3{\global\immutable\protected\def#1{\Uroot "#2 "#3 }}
-\permanent\protected\def\defUmathchar #1#2#3#4{\global\immutable\Umathchardef #1 "#2 "#3 "#4 }
+\permanent\protected\def\defUmathfixedtopaccent#1#2#3#4{\global\immutable\protected\def#1{\Umathtopaccent \s!fixed "#2 "#3 "#4 }}
+\permanent\protected\def\defUmathfixedbotaccent#1#2#3#4{\global\immutable\protected\def#1{\Umathbotaccent \s!fixed "#2 "#3 "#4 }}
+\permanent\protected\def\defUmathtopaccent #1#2#3#4{\global\immutable\protected\def#1{\Umathtopaccent "#2 "#3 "#4 }}
+\permanent\protected\def\defUmathbotaccent #1#2#3#4{\global\immutable\protected\def#1{\Umathbotaccent "#2 "#3 "#4 }}
+\permanent\protected\def\defUdelimiterover #1#2#3#4{\global\immutable\protected\def#1{\Udelimiterover "#2 "#3 }}
+\permanent\protected\def\defUdelimiterunder #1#2#3#4{\global\immutable\protected\def#1{\Udelimiterunder "#2 "#3 }}
+\permanent\protected\def\defUdelimiter #1#2#3#4{\global\immutable\protected\def#1{\Udelimiter "#2 "#3 "#4 }}
+\permanent\protected\def\defUradical #1#2#3{\global\immutable\protected\def#1{\Uradical "#2 "#3 }}
+\permanent\protected\def\defUroot #1#2#3{\global\immutable\protected\def#1{\Uroot "#2 "#3 }}
+\permanent\protected\def\defUmathchar #1#2#3#4{\global\immutable\Umathchardef #1 "#2 "#3 "#4 }
%D For a while we keep the following, as systems like tikz need it. Best not use
%D that one \CONTEXT. It will probably move to the tikz loader.
@@ -1130,7 +1143,7 @@
\permanent\def\hidewidth % for alignment entries that can stick out
{\hskip\hideskip}
-\permanent\def\ialign % initialized \halign
+\permanent\def\ialign % initialized \halign, to be used grouped!
{\everycr\emptytoks
\tabskip\zeroskip
\halign}
@@ -1308,29 +1321,28 @@
%D
%D There is a little extra overhead in the overload protection but not that much.
-\permanent\countdef\c_syst_local_count = 221 \c_syst_local_count = \c_syst_max_allocated_register
-\permanent\countdef\c_syst_local_dimen = 222 \c_syst_local_dimen = \c_syst_local_count
-\permanent\countdef\c_syst_local_skip = 223 \c_syst_local_skip = \c_syst_local_count
-\permanent\countdef\c_syst_local_muskip = 224 \c_syst_local_muskip = \c_syst_local_count
-\permanent\countdef\c_syst_local_box = 225 \c_syst_local_box = \c_syst_local_count
-\permanent\countdef\c_syst_local_toks = 226 \c_syst_local_toks = \c_syst_local_count
-\permanent\countdef\c_syst_local_read = 227 \c_syst_local_read = \c_syst_local_count
-\permanent\countdef\c_syst_local_write = 228 \c_syst_local_write = \c_syst_local_count
-
-\c_syst_max_allocated_register \numexpr\c_syst_max_allocated_register:2\relax % floor
+\permanent\countdef\c_syst_local_count = 231 \c_syst_local_count = \c_syst_max_allocated_count
+\permanent\countdef\c_syst_local_dimen = 232 \c_syst_local_dimen = \c_syst_max_allocated_dimen
+\permanent\countdef\c_syst_local_skip = 233 \c_syst_local_skip = \c_syst_max_allocated_skip
+\permanent\countdef\c_syst_local_muskip = 234 \c_syst_local_muskip = \c_syst_max_allocated_muskip
+\permanent\countdef\c_syst_local_box = 235 \c_syst_local_box = \c_syst_max_allocated_box
+\permanent\countdef\c_syst_local_toks = 236 \c_syst_local_toks = \c_syst_max_allocated_toks
+\permanent\countdef\c_syst_local_read = 237 \c_syst_local_read = \c_syst_max_allocated_read
+\permanent\countdef\c_syst_local_write = 238 \c_syst_local_write = \c_syst_max_allocated_write
+
+\c_syst_max_allocated_count \numexpr\c_syst_max_allocated_count :2\relax % floor
+\c_syst_max_allocated_dimen \numexpr\c_syst_max_allocated_dimen :2\relax % floor
+\c_syst_max_allocated_skip \numexpr\c_syst_max_allocated_skip :2\relax % floor
+\c_syst_max_allocated_muskip \numexpr\c_syst_max_allocated_muskip :2\relax % floor
+\c_syst_max_allocated_toks \numexpr\c_syst_max_allocated_toks :2\relax % floor
+\c_syst_max_allocated_box \numexpr\c_syst_max_allocated_box :2\relax % floor
+\c_syst_max_allocated_read \numexpr\c_syst_max_allocated_read :2\relax % floor
+\c_syst_max_allocated_write \numexpr\c_syst_max_allocated_write :2\relax % floor
\permanent\protected\def\syst_local_overflow#1#2{\writestatus\m!system{no room for local #1 \string#2}\wait}
-\permanent\protected\def\setnewlocaldimen#1%
- {\ifnum\c_syst_local_dimen>\c_syst_max_allocated_register
- \advance\c_syst_local_dimen\minusone\dimendef#1\c_syst_local_dimen
- \else
- \syst_local_overflow_dimen#1%
- \fi
- #1}
-
\permanent\protected\def\setnewlocalcount#1%
- {\ifnum\c_syst_local_count>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_count>\c_syst_max_allocated_count
\advance\c_syst_local_count\minusone
\overloaded\frozen\countdef#1\c_syst_local_count
\else
@@ -1338,8 +1350,16 @@
\fi
#1}
+\permanent\protected\def\setnewlocaldimen#1%
+ {\ifnum\c_syst_local_dimen>\c_syst_max_allocated_dimen
+ \advance\c_syst_local_dimen\minusone\dimendef#1\c_syst_local_dimen
+ \else
+ \syst_local_overflow_dimen#1%
+ \fi
+ #1}
+
\permanent\protected\def\setnewlocalskip#1%
- {\ifnum\c_syst_local_skip>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_skip>\c_syst_max_allocated_skip
\advance\c_syst_local_skip\minusone
\overloaded\frozen\skipdef#1\c_syst_local_skip
\else
@@ -1348,7 +1368,7 @@
#1}
\permanent\protected\def\setnewlocalmuskip#1%
- {\ifnum\c_syst_local_muskip>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_muskip>\c_syst_max_allocated_muskip
\advance\c_syst_local_muskip\minusone
\overloaded\frozen\muskipdef#1\c_syst_local_muskip
\else
@@ -1357,7 +1377,7 @@
#1}
\permanent\protected\def\setnewlocaltoks#1%
- {\ifnum\c_syst_local_toks>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_toks>\c_syst_max_allocated_toks
\advance\c_syst_local_toks\minusone
\overloaded\frozen\toksdef#1\c_syst_local_toks
\else
@@ -1366,7 +1386,7 @@
#1}
\permanent\protected\def\setnewlocalbox#1%
- {\ifnum\c_syst_local_box>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_box>\c_syst_max_allocated_box
\advance\c_syst_local_box\minusone
\overloaded\frozen\integerdef#1\c_syst_local_box
\else
@@ -1375,7 +1395,7 @@
\setbox#1}
\permanent\protected\def\newlocalread#1% so no set
- {\ifnum\c_syst_local_read>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_read>\c_syst_max_allocated_read
\advance\c_syst_local_read\minusone
\overloaded\frozen\integerdef#1\c_syst_local_read
\else
@@ -1383,7 +1403,7 @@
\fi}
\permanent\protected\def\newlocalwrite#1% so no set
- {\ifnum\c_syst_local_write>\c_syst_max_allocated_register
+ {\ifnum\c_syst_local_write>\c_syst_max_allocated_write
\advance\c_syst_local_write\minusone
\overloaded\frozen\integerdef#1\c_syst_local_write
\else
@@ -1435,4 +1455,8 @@
\tracingfullboxes\zerocount
+%D We don't do this:
+
+% \setdefaultmathcodes % initializes traditional codes
+
\protect \endinput
diff --git a/tex/context/base/mkxl/toks-aux.lmt b/tex/context/base/mkxl/toks-aux.lmt
index c7d2fb2fc..f1bac2093 100644
--- a/tex/context/base/mkxl/toks-aux.lmt
+++ b/tex/context/base/mkxl/toks-aux.lmt
@@ -10,6 +10,24 @@ local max = math.max
local formatters, gsub, char, gmatch = string.formatters, string.gsub, string.char, string.gmatch
local concat = table.concat
+do
+
+ -- tex.magicconstants = { -- we use tex.constants for something else
+ -- running = -1073741824, -- null_flag
+ -- maxdimen = 1073741823, -- max_dimen
+ -- -- trueinch = 4736286, -- obsolete
+ -- }
+
+ local c = status.getconstants()
+ local t = { }
+ for k, v in next, c do
+ t[gsub(k,"_","")] = v
+ end
+
+ tex.magicconstants = table.setmetatableindex(t,c)
+
+end
+
-- todo : locals from scanners
local function flags(t)
@@ -165,8 +183,8 @@ tex.glyphoptioncodes = getthem(tex.getglyphoptionvalues, "glyphoptioncode")
tex.groupcodes = getthem(tex.getgroupvalues, "groupcode")
tex.hyphenationcodes = getthem(tex.gethyphenationvalues, "hyphenationcode")
tex.mathcontrolcodes = getthem(tex.getmathcontrolvalues, "mathcontrolcode")
-tex.mathflattencodes = getthem(tex.getmathflattenvalues, "mathflattencode")
-tex.mathoptioncodes = getthem(tex.getmathoptionvalues, "") -- only at lua end
+---.mathflattencodes = getthem(tex.getmathflattenvalues, "mathflattencode")
+tex.noadoptioncodes = getthem(tex.getnoadoptionvalues, "") -- only at lua end
tex.normalizecodes = getthem(tex.getnormalizevalues, "normalizecode")
tex.automigrationcodes = getthem(tex.getautomigrationvalues, "automigrationcode") -- only at lua end
tex.parcontextcodes = getthem(tex.getparcontextvalues, "parcontextcode")
diff --git a/tex/context/base/mkxl/trac-vis.lmt b/tex/context/base/mkxl/trac-vis.lmt
index e2c4133b4..255e26230 100644
--- a/tex/context/base/mkxl/trac-vis.lmt
+++ b/tex/context/base/mkxl/trac-vis.lmt
@@ -40,6 +40,7 @@ local setsubtype = nuts.setsubtype
local setattr = nuts.setattr
local setwidth = nuts.setwidth
local setshift = nuts.setshift
+local setoffsets = nuts.setoffsets
local getid = nuts.getid
local getfont = nuts.getfont
@@ -410,7 +411,7 @@ local function sometext(str,layer,color,textcolor,lap,variant)
info = hpack_nodes(info)
local width = getwidth(info)
if variant then
- nuts.setoffsets(info,0,variant*exheight)
+ setoffsets(info,0,variant*exheight)
end
if lap then
info = new_hlist(setlink(new_kern(-width),info))
@@ -835,7 +836,14 @@ local ruledbox do
local info = setlink(
this and copylist(this) or nil,
(force_origin and emptyrule(wd,ht,dp)) -- we accept some overhead
- or (dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth))
+ or dp == 0 and userrule {
+ width = wd,
+ height = ht,
+ line = linewidth,
+ type = "box",
+ baseline = false,
+
+ }
or userrule {
width = wd,
height = ht,
@@ -843,6 +851,7 @@ local ruledbox do
line = linewidth,
type = "box",
dashed = 3*size,
+
}
)
--
@@ -972,6 +981,7 @@ end
local ruledglue, ruledmathglue do
local effectiveglue = nuts.effectiveglue
+ local iszeroglue = nuts.iszeroglue
local gluecodes = nodes.gluecodes
@@ -1002,6 +1012,7 @@ local ruledglue, ruledmathglue do
local g_cache_is = caches["indentskip"]
local g_cache_cs = caches["correctionskip"]
local g_cache_gn = caches["gluename"]
+ local g_cache_gz = caches["gluezero"]
local tags = {
-- [userskip_code] = "US",
@@ -1051,18 +1062,43 @@ local ruledglue, ruledmathglue do
-- we sometimes pass previous as we can have issues in math (not watertight for all)
- local f_amount = formatters["%s:%0.3f"]
- local mathvalues = nodes.mathvalues
+ local f_amount = formatters["%s:%0.3f"]
+ local mathvalues = nodes.mathvalues
+
+ mathvalues[-1] = "left"
+ mathvalues[-2] = "right"
+
+ local morehack = setmetatableindex(function(t,k)
+ local v = mathematics.classnames[k] -- yet unknown
+-- v = v and string.sub(v,1,4) or string.formatters["x%02x"](k)
+ v = v and string.sub(v,1,3) or string.formatters["x%02x"](k)
+ t[k] = v
+ return v
+ end)
- local function gluename(name,layer,color)
- local info = g_cache_gn[name]
+ local temphack = setmetatableindex(function(t,k)
+ local v = mathvalues[k]
+ if v then
+ v = gsub(v,"spacing","") -- old
+ else
+ v = k - 256
+ v = morehack[v//64] ..morehack[v%64]
+ end
+ t[k] = v
+ return v
+ end)
+
+ local function gluename(current,layer,color)
+ local name = getfont(current)
+ local zero = iszeroglue(current)
+ local info = zero and g_cache_gz[name] or g_cache_gn[name]
if not info then
- local text = hpack_string((gsub(mathvalues[name],"spacing","")),usedfont)
- local rule = new_rule(emwidth/fraction,2*exheight,2.75*exheight)
+ local text = hpack_string(temphack[name],usedfont)
+ local rule = new_rule(emwidth/fraction,2*exheight,(zero and 4.25 or 2.75)*exheight)
local list = getlist(text)
setlisttransparency(list,color)
settransparency(rule,color)
- setshift(text,2*exheight)
+ setshift(text,(zero and 3.5 or 2)*exheight)
info = new_hlist(setlink(rule,text))
setattr(info,a_layer,layer)
g_cache_gn[name] = info
@@ -1071,7 +1107,7 @@ local ruledglue, ruledmathglue do
end
ruledmathglue = function(head,current)
- return insertnodebefore(head,current,gluename(getfont(current),l_glue,"trace:m"))
+ return insertnodebefore(head,current,gluename(current,l_glue,"trace:m"))
end
ruledglue = function(head,current,vertical,parent)
@@ -1182,6 +1218,23 @@ local ruledkern do
end
+local ruledstrut do
+
+ local strut_size = 65536 / 2
+ local strut_code = nodes.rulecodes.strut
+
+ ruledstrut = function(head,current)
+ if getsubtype(current) == strut_code and getwidth(current) == 0 then
+ -- maybe force gray
+ setwidth(current,strut_size)
+ setattr(current,a_layer,l_strut)
+ head, current = insertnodeafter(head,current,new_kern(-strut_size))
+ end
+ return head, getnext(current)
+ end
+
+end
+
local ruleditalic do
local i_cache = caches["italic"]
@@ -1340,6 +1393,7 @@ do
local par_code = nodecodes.par
local mark_code = nodecodes.mark
local insert_code = nodecodes.insert
+ local rule_code = nodecodes.rule
local kerncodes = nodes.kerncodes
local fontkern_code = kerncodes.fontkern
@@ -1481,9 +1535,10 @@ do
elseif a == unsetvalue then
goto list
end
- if trace_strut then
- setattr(current,a_layer,l_strut)
- elseif id == glyph_code then
+ -- if trace_strut then
+ -- setattr(current,a_layer,l_strut)
+ -- else
+ if id == glyph_code then
if trace_glyph then
head, current = ruledglyph(head,current,previous)
end
@@ -1515,6 +1570,10 @@ do
end
elseif id == hlist_code or id == vlist_code then
goto list
+ elseif id == rule_code then
+ if trace_strut then
+ head, current = ruledstrut(head,current)
+ end
elseif id == whatsit_code then
if trace_whatsit then
head, current = ruledwhatsit(head,current)
@@ -1766,7 +1825,7 @@ do
actions = { setvisual, context }
}
- implement {
+ implement {
name = "setvisuallayer",
arguments = "string",
actions = visualizers.setlayer
diff --git a/tex/context/base/mkxl/type-imp-bengali.mkxl b/tex/context/base/mkxl/type-imp-bengali.mkxl
new file mode 100644
index 000000000..84a0b6402
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-bengali.mkxl
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=type-imp-bengali,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Bengali,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[bengali]
+
+ \doifunknownfontfeature {bengali-bold-30} {\definefontfeature[bengali-bold-30][boldened-30]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [murty-bangla]
+ \definefontsynonym [MurtyBengali-Regular] [\s!name:murtybanglaregular] [\s!features=bengali-two]
+ \definefontsynonym [MurtyBengali-Bold] [\s!name:murtybanglaregular] [\s!features={bengali-two,bengali-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-da, baloo-da-extrabold]
+ \definefontsynonym [BalooDa2-Regular] [\s!name:balooda2regular] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Medium] [\s!name:balooda2medium] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Semibold] [\s!name:balooda2semibold] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Bold] [\s!name:balooda2bold] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Extrabold] [\s!name:balooda2extrabold] [\s!features=bengali-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-da] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooDa2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooDa2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooDa2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooDa2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-da-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooDa2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooDa2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooDa2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooDa2-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [murty-bangla] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [MurtyBengali-Regular]
+ \definefontsynonym [\s!SerifBold] [MurtyBengali-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-da, baloo-da-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [murty-bangla]
+ \definetypeface [murty-bangla] [\s!rm] [\s!serif] [murty-bangla] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/type-imp-devanagari.mkxl b/tex/context/base/mkxl/type-imp-devanagari.mkxl
new file mode 100644
index 000000000..4fb082094
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-devanagari.mkxl
@@ -0,0 +1,244 @@
+%D \module
+%D [ file=type-imp-devanagari,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Devanagari,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This collection uses rscaling so that the fonts can be used alongside.
+
+\starttypescriptcollection[devanagari]
+
+ \definefontfeature
+ [shobhikafeatures]
+ [devanagari-two]
+ [goodies=shobhika.lfg,
+ indic={movematra=auto,conjuncts=quit},
+ sanitizer=dev2rkrf]
+
+ \definefontfeature
+ [baloofeatures]
+ [shobhikafeatures]
+
+ \definefontfeature
+ [amitafeatures]
+ [devanagari-two]
+ [goodies=shobhika.lfg,
+ sanitizer=dev2rkrf]
+
+ \definefontfeature
+ [jainifeatures]
+ [shobhikafeatures]
+ [\s!ss01=yes,ss05=yes]
+
+ \definefontfeature
+ [adishilafeatures]
+ [devanagari-one]
+ [indic={movematra=auto,conjuncts=quit}]
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [adishila]
+ \definefontsynonym [Adishila-Regular] [\s!name:adishilaregular] [\s!features=adishilafeatures]
+ \definefontsynonym [Adishila-Bold] [\s!name:adishilabold] [\s!features=adishilafeatures]
+ \definefontsynonym [Adishila-Italic] [\s!name:adishilaitalic] [\s!features=adishilafeatures]
+ \definefontsynonym [Adishila-BoldItalic] [\s!name:adishilabolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-semibold]
+ \definefontsynonym [AdishilaSemibold-Regular] [\s!name:adishilasemiboldregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSemibold-Italic] [\s!name:adishilasemibolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-heavy]
+ \definefontsynonym [AdishilaHeavy-Regular] [\s!name:adishilaheavyregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaHeavy-Italic] [\s!name:adishilaheavyitalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev]
+ \definefontsynonym [AdishilaDev-Regular] [\s!name:adishiladevregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaDev-Bold] [\s!name:adishiladevbold] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev-guru]
+ \definefontsynonym [AdishilaDev-Guru] [\s!name:adishiladevguru] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san]
+ \definefontsynonym [AdishilaSan-Regular] [\s!name:adishilasanregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSan-Bold] [\s!name:adishilasanbold] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSan-Italic] [\s!name:adishilasanitalic] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSan-BoldItalic] [\s!name:adishilasanbolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san-letterpress]
+ \definefontsynonym [AdishilaSanLetterpress-Regular] [\s!name:adishilasanletterpressregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSanLetterpress-Bold] [\s!name:adishilasanletterpressbold] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSanLetterpress-Italic] [\s!name:adishilasanletterpressitalic] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSanLetterpress-BoldItalic] [\s!name:adishilasanletterpressbolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [shobhika]
+ \definefontsynonym [Shobhika-Regular] [\s!name:shobhikaregular] [\s!features=shobhikafeatures]
+ \definefontsynonym [Shobhika-Bold] [\s!name:shobhikabold] [\s!features=shobhikafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo,baloo-extrabold]
+ \definefontsynonym [Baloo2-Regular] [\s!name:baloo2regular] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Medium] [\s!name:baloo2medium] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Semibold] [\s!name:baloo2semibold] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Bold] [\s!name:baloo2bold] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Extrabold] [\s!name:baloo2extrabold] [\s!features=baloofeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini]
+ \definefontsynonym [Jaini-Regular] [\s!name:jainiregular] [\s!features=jainifeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini-purva]
+ \definefontsynonym [JainiPurva-Regular] [\s!name:jainipurvaregular] [\s!features=jainifeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [amita]
+ \definefontsynonym [Amita-Regular] [\s!name:amitaregular] [\s!features=amitafeatures]
+ \definefontsynonym [Amita-Bold] [\s!name:amitabold] [\s!features=amitafeatures]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!serif] [adishila] [\s!name]
+ \definefontsynonym [\s!Serif] [Adishila-Regular]
+ \definefontsynonym [\s!SerifBold] [Adishila-Bold]
+ \definefontsynonym [\s!SerifItalic] [Adishila-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [Adishila-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-semibold] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaSemibold-Regular]
+ \definefontsynonym [\s!SerifItalic] [AdishilaSemibold-Italic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-heavy] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaHeavy-Regular]
+ \definefontsynonym [\s!SerifItalic] [AdishilaHeavy-Italic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaDev-Regular]
+ \definefontsynonym [\s!SerifBold] [AdishilaDev-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev-guru] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaDev-Guru]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaSan-Regular]
+ \definefontsynonym [\s!SerifBold] [AdishilaSan-Bold]
+ \definefontsynonym [\s!SerifItalic] [AdishilaSan-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [AdishilaSan-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san-letterpress] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaSanLetterpress-Regular]
+ \definefontsynonym [\s!SerifBold] [AdishilaSanLetterpress-Bold]
+ \definefontsynonym [\s!SerifItalic] [AdishilaSanLetterpress-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [AdishilaSanLetterpress-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [shobhika] [\s!name]
+ \definefontsynonym [\s!Serif] [Shobhika-Regular]
+ \definefontsynonym [\s!SerifBold] [Shobhika-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo] [\s!name]
+ \definefontsynonym [\s!Sans] [Baloo2-Regular]
+ \definefontsynonym [\s!SansBold] [Baloo2-Bold]
+ \definefontsynonym [\s!SansItalic] [Baloo2-Medium]
+ \definefontsynonym [\s!SansBoldItalic] [Baloo2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-extrabold] [\s!name]
+ \definefontsynonym [\s!Sans] [Baloo2-Medium]
+ \definefontsynonym [\s!SansItalic] [Baloo2-Semibold]
+ \definefontsynonym [\s!SansBoldItalic] [Baloo2-Bold]
+ \definefontsynonym [\s!SansBold] [Baloo2-Extrabold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini] [\s!name]
+ \definefontsynonym [\s!Serif] [Jaini-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini-purva] [\s!name]
+ \definefontsynonym [\s!Serif] [JainiPurva-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [amita] [\s!name]
+ \definefontsynonym [\s!Serif] [Amita-Regular]
+ \definefontsynonym [\s!SerifBold] [Amita-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [adishila]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.42]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+ \starttypescript [adishila-semibold,adishila-heavy]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.46]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [adishila-dev]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.65]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [adishila-dev-guru,adishila-san,adishila-san-letterpress]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.62]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [shobhika]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [baloo,baloo-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [jaini,jaini-purva]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.5]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [amita]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.2]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/type-imp-gujarati.mkxl b/tex/context/base/mkxl/type-imp-gujarati.mkxl
new file mode 100644
index 000000000..d7f3f7072
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-gujarati.mkxl
@@ -0,0 +1,77 @@
+%D \module
+%D [ file=type-imp-gujarati,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Gujarati,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[gujarati]
+
+ \definefontfeature
+ [baloobhaifeatures]
+ [gujarati-two]
+ [goodies=bhai.lfg,
+ indic={movematra=auto,conjuncts=quit},
+ sanitizer=gjr2rkrf]
+
+ % Symbolic names for fonts:
+ \starttypescript [\s!serif] [noto-serif-gujarati]
+ \definefontsynonym [NotoSerifGujarati-Regular] [\s!name:notoserifgujaratiregular] [\s!features=baloobhaifeatures]
+ \definefontsynonym [NotoSerifGujarati-Bold] [\s!name:notoserifgujaratibold] [\s!features=baloobhaifeatures]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-bhai, baloo-bhai-extrabold]
+ \definefontsynonym [BalooBhai2-Regular] [\s!name:baloobhai2regular] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Medium] [\s!name:baloobhai2medium] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Semibold] [\s!name:baloobhai2semibold] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Bold] [\s!name:baloobhai2bold] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Extrabold] [\s!name:baloobhai2extrabold] [\s!features=baloobhaifeatures]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!serif] [noto-serif-gujarati] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [NotoSerifGujarati-Regular]
+ \definefontsynonym [\s!SerifBold] [NotoSerifGujarati-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-bhai] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooBhai2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooBhai2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooBhai2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooBhai2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-bhai-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooBhai2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooBhai2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooBhai2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooBhai2-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-bhai, baloo-bhai-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [noto-serif-gujarati]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/type-imp-indic.mkxl b/tex/context/base/mkxl/type-imp-indic.mkxl
new file mode 100644
index 000000000..aeda08337
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-indic.mkxl
@@ -0,0 +1,800 @@
+%D \module
+%D [ file=type-imp-indic,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=A Collection of Indic Fonts,
+%D author=Sreeram & Hans,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This file is a compation to the other indic typescript that evolved out
+%D of a series of experiments with fonts and extensive research by Sreeram
+%D with respect to them either or not supporting level one and level two
+%D features. When there are issues, just ask on the mailing list.
+
+\definefilesynonym [type-imp-adishila.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-semibold.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-heavy.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-dev.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-dev-guru.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-san.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-san-letterpress.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-shobhika.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-baloo-extrabold.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-baloo.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-jaini.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-jaini-purva.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-amita.mkxl] [type-imp-devanagari.mkxl]
+
+\definefilesynonym [type-imp-rit-rachana.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-panmana.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-ezhuthu.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-karumbi.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-chilanka.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-anjali-oldlipi.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-dyuthi.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-tn-joy.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-tn-joy-extrabold.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-gayathri.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-gayathri-thin.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-manjari.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-manjari-thin.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-baloo-chettan.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-baloo-chettan-extrabold.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-rit-sundar.mkxl] [type-imp-malayalam.mkxl]
+
+\definefilesynonym [type-imp-baloo-tammudu.mkxl] [type-imp-telugu.mkxl]
+\definefilesynonym [type-imp-baloo-tammudu-extrabold.mkxl] [type-imp-telugu.mkxl]
+\definefilesynonym [type-imp-murty-telugu.mkxl] [type-imp-telugu.mkxl]
+
+\definefilesynonym [type-imp-murty-kannada.mkxl] [type-imp-kannada.mkxl]
+
+\definefilesynonym [type-imp-baloo-thambi.mkxl] [type-imp-tamil.mkxl]
+\definefilesynonym [type-imp-baloo-thambi-extrabold.mkxl] [type-imp-tamil.mkxl]
+
+\definefilesynonym [type-imp-baloo-bhai.mkxl] [type-imp-gujarati.mkxl]
+\definefilesynonym [type-imp-baloo-bhai-extrabold.mkxl] [type-imp-gujarati.mkxl]
+\definefilesynonym [type-imp-noto-serif-gujarati.mkxl] [type-imp-gujarati.mkxl]
+
+\definefilesynonym [type-imp-baloo-da.mkxl] [type-imp-bengali.mkxl]
+\definefilesynonym [type-imp-baloo-da-extrabold.mkxl] [type-imp-bengali.mkxl]
+\definefilesynonym [type-imp-murty-bangla.mkxl] [type-imp-bengali.mkxl]
+
+\continueifinputfile{type-imp-indic.mkxl}
+
+% \usetypescriptfile[type-imp-indic]
+
+\usemodule[article-basics]
+
+\setupbodyfont
+ [pagella]
+
+\setuphead
+ [title]
+ [alternative=middle,
+ hidenumber=yes,
+ after={\blank[halfline]},
+ before={\blank[line]},
+ page=no,
+ style=\bfb]
+
+\definedescription
+ [fs]
+ [alternative=left,
+ title=yes,
+ width=3cm,
+ distance=0cm,
+ before=,
+ after=,
+ headstyle={\switchtobodyfont[pagella]}]
+
+\usetransliteration
+ [indic]
+
+\definetransliteration
+ [devatoiast]
+ [color=blue,
+ vector={deva to iast},
+ before=]
+
+\definetransliteration
+ [devatomlym]
+ [vector={deva to mlym}]
+
+\definetransliteration
+ [devatotlgu]
+ [vector={deva to tlgu}]
+
+\definetransliteration
+ [devatoknda]
+ [vector={deva to knda}]
+
+\definetransliteration
+ [devatogujr]
+ [vector={deva to gujr}]
+
+\definetransliteration
+ [devatobngl]
+ [vector={deva to bngl}]
+
+\definebuffer[words]
+\definebuffer[iastbuffer]
+
+\language[sa]
+
+\starttext
+
+\startbuffer[words]
+दंष्ट्रा श्रेयस्करी त्रेता विक्रेता तच्छ्री अङ्कित शृङ्गार क्व्य शार्ङ्ग निरृति
+क्रतुवित्त बर्हिस् प्रेप्सित अङ्घ्रि पङ्क्ति कर्त्तव्य कर्तव्य श्लाघ्यम्
+अवप्लुतम् युङ्क्ष्वा क्षेत्रज्ञ अग्निमीळे चँद्र हर्त्रे श्री आर्द्रं
+\stopbuffer
+
+\startbuffer
+\getbuffer[words]
+\stopbuffer
+
+
+% \startbuffer[iastbuffer]
+% \startdevatoiast[before=\blank,after=\blank]
+% \getbuffer
+% \stopdevatoiast
+% \stopbuffer
+%
+% \getbuffer[iastbuffer]
+
+%
+%
+% Devanagari
+%
+%
+\starttitle[title={Adishila}]
+ \start
+ \switchtobodyfont[adishila]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Semibold}]
+ \start
+ \switchtobodyfont[adishila-semibold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Heavy}]
+ \start
+ \switchtobodyfont[adishila-heavy]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Dev}]
+ \start
+ \switchtobodyfont[adishila-dev]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Dev}]
+ \start
+ \switchtobodyfont[adishila-dev-guru]
+ \startfs{Guru}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila San}]
+ \start
+ \switchtobodyfont[adishila-san]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila San Letterpress}]
+ \start
+ \switchtobodyfont[adishila-san-letterpress]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Shobhika}]
+ \start
+ \switchtobodyfont[shobhika]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo 2 Extra Bold}]
+ \start
+ \switchtobodyfont[baloo-extrabold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo 2}]
+ \start
+ \switchtobodyfont[baloo]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Jaini}]
+ \start
+ \switchtobodyfont[jaini]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Jaini Purva}]
+ \start
+ \switchtobodyfont[jaini-purva]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Amita}]
+ \start
+ \switchtobodyfont[amita]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Malayalam
+%
+%
+\startbuffer
+\startdevatomlym
+\getbuffer[words]
+\stopdevatomlym
+\stopbuffer
+
+\starttitle[title={RIT Rachana}]
+ \start
+ \switchtobodyfont[rit-rachana]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Panmana}]
+ \start
+ \switchtobodyfont[panmana]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Ezhuthu}]
+ \start
+ \switchtobodyfont[ezhuthu]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Slanted}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold Slanted}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Karumbi}]
+ \start
+ \switchtobodyfont[karumbi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Chilanka}]
+ \start
+ \switchtobodyfont[chilanka]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Anjali Old Lipi}]
+ \start
+ \switchtobodyfont[anjali-oldlipi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Dyuthi}]
+ \start
+ \switchtobodyfont[dyuthi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={TN Joy}]
+ \start
+ \switchtobodyfont[tn-joy]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={TN Joy Extrabold}]
+ \start
+ \switchtobodyfont[tn-joy-extrabold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Gayathri}]
+ \start
+ \switchtobodyfont[gayathri]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Gayathri Thin}]
+ \start
+ \switchtobodyfont[gayathri-thin]
+ \startfs{Thin (R)}
+ \getbuffer
+ \stopfs
+ \startfs{Bold*}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Manjari}]
+ \start
+ \switchtobodyfont[manjari]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Manjari Thin}]
+ \start
+ \switchtobodyfont[manjari-thin]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Chettan 2}]
+ \start
+ \switchtobodyfont[baloo-chettan]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Medium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Chettan 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-chettan-extrabold]
+ \startfs{Medium \type{\tf}}
+ \getbuffer
+ \stopfs
+ \startfs{Extrabold \type{\bf}}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={RIT Sundar}]
+ \start
+ \switchtobodyfont[rit-sundar]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Telugu
+%
+%
+\startbuffer
+\startdevatotlgu
+\getbuffer[words]
+\stopdevatotlgu
+\stopbuffer
+
+\starttitle[title={Baloo Tammudu 2}]
+ \start
+ \switchtobodyfont[baloo-tammudu]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Slanted}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold Slanted}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Tammudu 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-tammudu-extrabold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Murty Telugu}]
+ \start
+ \switchtobodyfont[murty-telugu]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Regular}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Regular}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Regular}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Kannada
+%
+%
+\startbuffer
+\startdevatoknda
+\getbuffer[words]
+\stopdevatoknda
+\stopbuffer
+
+\starttitle[title={Murty Kannada}]
+ \start
+ \switchtobodyfont[murty-kannada]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Regular}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Tamil
+%
+%
+\start
+\language[ta]
+\startbuffer
+சிற்றமபலம் புயல் காற்று முன்னர் அதே எதெ அதை ஔவையார்
+தொடர்கதை கிழால்லி அழைப்பு வாயிலாக இயற்கை நுழைவாயில்
+இளமை காஞ்சி கச்சி இல்க்கியம் ஸ்ரீ
+\stopbuffer
+
+\starttitle[title={Baloo Thambi 2}]
+ \start
+ \switchtobodyfont[baloo-thambi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{ஂMedium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Thambi 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-thambi-extrabold]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+\stop
+%
+%
+% Gujarati
+%
+%
+\startbuffer
+\startdevatogujr
+\getbuffer[words]
+\stopdevatogujr
+\stopbuffer
+
+\starttitle[title={Baloo Bhai 2}]
+ \start
+ \switchtobodyfont[baloo-bhai]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{ஂMedium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Bhai 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-bhai-extrabold]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Noto Serif Gujarati}]
+ \start
+ \switchtobodyfont[noto-serif-gujarati]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Bengali
+%
+%
+\startbuffer
+\startdevatobngl
+\getbuffer[words]
+\stopdevatobngl
+\stopbuffer
+
+\starttitle[title={Baloo Da 2}]
+ \start
+ \switchtobodyfont[baloo-da]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Medium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Da 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-da-extrabold]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Murty Bengali}]
+ \start
+ \switchtobodyfont[murty-bangla]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Regular}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\stoptext
diff --git a/tex/context/base/mkxl/type-imp-kannada.mkxl b/tex/context/base/mkxl/type-imp-kannada.mkxl
new file mode 100644
index 000000000..4838075b2
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-kannada.mkxl
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=type-imp-kannada,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Dekannada,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[kannada]
+
+ \doifunknownfontfeature {kannada-bold-30} {\definefontfeature[kannada-bold-30][boldened-30]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [murty-kannada]
+ \definefontsynonym [MurtyKannada-Regular] [\s!name:murtykannadaregular] [\s!features=kannada-two]
+ \definefontsynonym [MurtyKannada-Bold] [\s!name:murtykannadaregular] [\s!features={kannada-two,kannada-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tamma, baloo-tamma-extrabold]
+ \definefontsynonym [BalooTamma2-Regular] [\s!name:balootamma2regular] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Medium] [\s!name:balootamma2medium] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Semibold] [\s!name:balootamma2semibold] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Bold] [\s!name:balootamma2bold] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Extrabold] [\s!name:balootamma2extrabold] [\s!features=kannada-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-tamma] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTamma2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooTamma2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooTamma2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTamma2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tamma-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTamma2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooTamma2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooTamma2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTamma2-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [murty-kannada] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [MurtyKannada-Regular]
+ \definefontsynonym [\s!SerifBold] [MurtyKannada-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-tamma, baloo-tamma-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [murty-kannada]
+ \definetypeface [murty-kannada] [\s!rm] [\s!serif] [murty-kannada] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/type-imp-malayalam.mkxl b/tex/context/base/mkxl/type-imp-malayalam.mkxl
new file mode 100644
index 000000000..67a35d472
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-malayalam.mkxl
@@ -0,0 +1,224 @@
+%D \module
+%D [ file=type-imp-malayam,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Demalayalam,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This collection uses rscaling so that the fonts can be used alongside.
+
+\starttypescriptcollection[malayalam]
+
+ \doifunknownfontfeature {malayalam-bold-30} {\definefontfeature[malayalam-bold-30][boldened-30]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [rit-rachana]
+ \definefontsynonym [RITRachana-Regular] [\s!name:ritrachanaregular] [\s!features=malayalam-two]
+ \definefontsynonym [RITRachana-Bold] [\s!name:ritrachanabold] [\s!features=malayalam-two]
+ \definefontsynonym [RITRachana-Italic] [\s!name:ritrachanaitalic] [\s!features=malayalam-two]
+ \definefontsynonym [RITRachana-BoldItalic] [\s!name:ritrachanabolditalic] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [panmana]
+ \definefontsynonym [Panmana-Regular] [\s!name:panmanaregular] [\s!features=malayalam-two]
+ \definefontsynonym [Panmana-Bold] [\s!name:panmanaregular] [\s!features={malayalam-two,malayalam-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [rit-sundar]
+ \definefontsynonym [RITSundar-Regular] [\s!name:ritsundarbold] [\s!features=malayalam-two]
+ \definefontsynonym [RITSundar-Bold] [\s!name:ritsundarbold] [\s!features={malayalam-two,malayalam-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [tn-joy, tn-joy-extrabold]
+ \definefontsynonym [TNJoy-Regular] [\s!name:tnjoyregular] [\s!features=malayalam-two]
+ \definefontsynonym [TNJoy-Bold] [\s!name:tnjoybold] [\s!features=malayalam-two]
+ \definefontsynonym [TNJoy-Extrabold] [\s!name:tnjoyextrabold] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [ezhuthu]
+ \definefontsynonym [Ezhuthu-Regular] [\s!name:ezhuthuregular] [\s!features=malayalam-two]
+ \definefontsynonym [Ezhuthu-Bold] [\s!name:ezhuthuregular] [\s!features={malayalam-two,malayalam-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-chettan,baloo-chettan-extrabold]
+ \definefontsynonym [BalooChettan2-Regular] [\s!name:baloochettan2regular] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Medium] [\s!name:baloochettan2medium] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Semibold] [\s!name:baloochettan2semibold] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Bold] [\s!name:baloochettan2bold] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Extrabold] [\s!name:baloochettan2extrabold] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [gayathri, gayathri-thin]
+ \definefontsynonym [Gayathri-Regular] [\s!name:gayathriregular] [\s!features=malayalam-two]
+ \definefontsynonym [Gayathri-Bold] [\s!name:gayathribold] [\s!features=malayalam-two]
+ \definefontsynonym [Gayathri-Thin] [\s!name:gayathrithin] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [manjari,manjari-thin]
+ \definefontsynonym [Manjari-Regular] [\s!name:manjariregular] [\s!features=malayalam-two]
+ \definefontsynonym [Manjari-Bold] [\s!name:manjaribold] [\s!features=malayalam-two]
+ \definefontsynonym [Manjari-Thin] [\s!name:manjarithin] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [karumbi]
+ \definefontsynonym [Karumbi-Regular] [\s!name:karumbiregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [chilanka]
+ \definefontsynonym [Chilanka-Regular] [\s!name:chilankaregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [anjali-oldlipi]
+ \definefontsynonym [Anjali-Oldlipi-Regular] [\s!name:anjalioldlipiregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [dyuthi]
+ \definefontsynonym [Dyuthi-Regular] [\s!name:dyuthiregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!serif] [rit-rachana] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [RITRachana-Regular]
+ \definefontsynonym [\s!SerifBold] [RITRachana-Bold]
+ \definefontsynonym [\s!SerifItalic] [RITRachana-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [RITRachana-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [panmana] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [Panmana-Regular]
+ \definefontsynonym [\s!SerifBold] [Panmana-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [rit-sundar] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [RITSundar-Regular]
+ \definefontsynonym [\s!SerifBold] [RITSundar-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [tn-joy] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [TNJoy-Regular]
+ \definefontsynonym [\s!SansBold] [TNJoy-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [tn-joy-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [TNJoy-Bold]
+ \definefontsynonym [\s!SansBold] [TNJoy-Extrabold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [ezhuthu] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Ezhuthu-Regular]
+ \definefontsynonym [\s!SansBold] [Ezhuthu-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [karumbi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Karumbi-Regular]
+ \definefontsynonym [\s!SansBold] [Karumbi-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [chilanka] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Chilanka-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [anjali-oldlipi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Anjali-Oldlipi-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [dyuthi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Dyuthi-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [gayathri] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Gayathri-Regular]
+ \definefontsynonym [\s!SansBold] [Gayathri-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [gayathri-thin] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Gayathri-Thin]
+ \definefontsynonym [\s!SansBold] [Gayathri-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [manjari] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans ] [Manjari-Regular]
+ \definefontsynonym [\s!SansBold] [Manjari-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [manjari-thin] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Manjari-Thin]
+ \definefontsynonym [\s!SansBold] [Manjari-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-chettan] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [BalooChettan2-Regular]
+ \definefontsynonym [\s!SansBold] [BalooChettan2-Bold]
+ \definefontsynonym [\s!SansSlanted] [BalooChettan2-Medium]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooChettan2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-chettan-extrabold] [name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [BalooChettan2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooChettan2-Semibold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooChettan2-Bold]
+ \definefontsynonym [\s!SansBold] [BalooChettan2-Extrabold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [rit-rachana,rit-sundar,panmana]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.25]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [ezhuthu,karumbi,tn-joy,tn-joy-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.25]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [chilanka,anjali-oldlipi]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [dyuthi,gayathri,gayathri-thin,manjari,manjari-thin]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [baloo-chettan,baloo-chettan-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [baloo-chettan] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/type-imp-tamil.mkxl b/tex/context/base/mkxl/type-imp-tamil.mkxl
new file mode 100644
index 000000000..90516365e
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-tamil.mkxl
@@ -0,0 +1,53 @@
+%D \module
+%D [ file=type-imp-tamil,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Tamil,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[tamil]
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!sans] [baloo-thambi, baloo-thambi-extrabold]
+ \definefontsynonym [BalooThambi2-Regular] [\s!name:baloothambi2regular] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Medium] [\s!name:baloothambi2medium] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Semibold] [\s!name:baloothambi2semibold] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Bold] [\s!name:baloothambi2bold] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Extrabold] [\s!name:baloothambi2extrabold] [\s!features=tamil-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-thambi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooThambi2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooThambi2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooThambi2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooThambi2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-thambi-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooThambi2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooThambi2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooThambi2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooThambi2-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-thambi, baloo-thambi-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/type-imp-telugu.mkxl b/tex/context/base/mkxl/type-imp-telugu.mkxl
new file mode 100644
index 000000000..33d07664c
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-telugu.mkxl
@@ -0,0 +1,74 @@
+%D \module
+%D [ file=type-imp-telugu,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Telugu,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[telugu]
+
+ \doifunknownfontfeature {telugu-bold-30} {\definefontfeature[telugu-bold-30][boldened-30]}
+ \doifunknownfontfeature {telugu-slant} {\definefontfeature[telugu-slant][slant=0.25]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [murty-telugu]
+ \definefontsynonym [MurtyTelugu-Regular] [\s!name:murtyteluguregular] [\s!features=telugu-two]
+ \definefontsynonym [MurtyTelugu-Bold] [\s!name:murtyteluguregular] [\s!features={telugu-two,telugu-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tammudu, baloo-tammudu-extrabold]
+ \definefontsynonym [BalooTammudu2-Regular] [\s!name:balootammudu2regular] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Medium] [\s!name:balootammudu2medium] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Semibold] [\s!name:balootammudu2semibold] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Bold] [\s!name:balootammudu2bold] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Extrabold] [\s!name:balootammudu2extrabold] [\s!features=telugu-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-tammudu] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTammudu2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooTammudu2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooTammudu2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTammudu2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tammudu-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTammudu2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooTammudu2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooTammudu2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTammudu2-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [murty-telugu] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [MurtyTelugu-Regular]
+ \definefontsynonym [\s!SerifBold] [MurtyTelugu-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-tammudu, baloo-tammudu-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [murty-telugu]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [murty-telugu] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/base/mkxl/typo-mar.lmt b/tex/context/base/mkxl/typo-mar.lmt
index b590c9ecf..87eafb062 100644
--- a/tex/context/base/mkxl/typo-mar.lmt
+++ b/tex/context/base/mkxl/typo-mar.lmt
@@ -82,8 +82,6 @@ local setwidth = nuts.setwidth
local getheight = nuts.getheight
local setattrlist = nuts.setattrlist
-
-local getbox = nuts.getbox
local takebox = nuts.takebox
local setprop = nuts.setprop
@@ -105,6 +103,7 @@ local new_usernode = nodepool.usernode
local latelua = nodepool.latelua
local texgetdimen = tex.getdimen
+
local texgetcount = tex.getcount
local texget = tex.get
@@ -270,8 +269,8 @@ function margins.save(t)
if t.number then
local leftmargindistance = texgetdimen("naturalleftmargindistance")
local rightmargindistance = texgetdimen("naturalrightmargindistance")
- local strutbox = getbox("strutbox")
- local _, strutht, strutdp = getwhd(strutbox)
+ local strutht = texgetdimen("strutht")
+ local strutdp = texgetdimen("strutdp")
-- better make a new table and make t entry in t
t.box = content
t.n = nofsaved
diff --git a/tex/context/base/mkxl/typo-mar.mkxl b/tex/context/base/mkxl/typo-mar.mkxl
index 4862ee671..242797a5d 100644
--- a/tex/context/base/mkxl/typo-mar.mkxl
+++ b/tex/context/base/mkxl/typo-mar.mkxl
@@ -174,7 +174,7 @@
\docheckpagestate\s!margintext\nofmargintexts
%\doifelserightpagestate\s!margintext\nofmargintexts\relax\relax
\realpageno\realpagestateno
- \page_layouts_swap_margins}
+ \page_layouts_swap_margins\v!margin}
\permanent\protected\def\margindata
{\iftrialtypesetting
diff --git a/tex/context/fonts/mkiv/asana-math.lfg b/tex/context/fonts/mkiv/asana-math.lfg
index 63e2aab69..0e8beb9e3 100644
--- a/tex/context/fonts/mkiv/asana-math.lfg
+++ b/tex/context/fonts/mkiv/asana-math.lfg
@@ -37,33 +37,6 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
- tweaks = {
- aftercopying = {
- {
- tweak = "version",
- expected = "Version 000.958",
- message = "this font is not supported",
- },
- {
- tweak = "dimensions",
- list = {
- -- nothing yet
- }
- },
- {
- tweak = "fixprimes",
- factor = 0.85,
- scale = 0.65,
- smaller = true,
- },
- {
- tweak = "checkspacing",
- },
- {
- tweak = "addscripts",
- },
- },
- },
parameters = {
-- DisplayOperatorMinHeight = 0, -- more
-- StackBottomDisplayStyleShiftDown = 0,
@@ -86,7 +59,46 @@ return {
StretchStackGapAboveMin = less,
StretchStackGapBelowMin = less,
StretchStackTopShiftUp = less,
- }
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1200,
+ AccentBaseDepth = 300,
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 000.958",
+ message = "this font is not supported",
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ -- nothing yet
+ }
+ },
+ -- {
+ -- tweak = "fixprimes",
+ -- factor = 0.85,
+ -- scale = 0.65,
+ -- smaller = true,
+ -- },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
}
}
diff --git a/tex/context/fonts/mkiv/bonum-math.lfg b/tex/context/fonts/mkiv/bonum-math.lfg
index 65f51446a..af1df417d 100644
--- a/tex/context/fonts/mkiv/bonum-math.lfg
+++ b/tex/context/fonts/mkiv/bonum-math.lfg
@@ -24,6 +24,11 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ AccentBaseDepth = 50,
+ },
tweaks = {
aftercopying = {
{
@@ -33,103 +38,146 @@ return {
{
tweak = "dimensions",
list = { -- offset width italic
- [0x00393] = { -0.05, 0.875, 0 }, -- \Gamma
- [0x00394] = { -0.05, 0.875, 0 }, -- \Delta
- [0x00398] = { -0.05, 0.9, 0 }, -- \Theta
- [0x0039B] = { -0.075, 0.85, 0 }, -- \Lambda
- [0x0039E] = { -0.075, 0.85, 0 }, -- \Xi
- [0x003A0] = { -0.075, 0.85, 0 }, -- \Pi
- [0x003A3] = { -0.075, 0.85, 0 }, -- \Sigma
- [0x003A5] = { -0.075, 0.85, 0 }, -- \Upsilon
- [0x003A6] = { -0.05, 0.9, 0 }, -- \Phi
- [0x003A8] = { -0.05, 0.9, 0 }, -- \Psi
- [0x003A9] = { -0.05, 0.9, 0 }, -- \Omega
- [0x02202] = { -0.075, 0.825, 0 }, -- \partial
- [0x1D436] = { -0.1, 1, 0 }, -- C
- [0x1D43A] = { -0.1, 1, 0 }, -- G
- [0x1D442] = { -0.1, 1, 0 }, -- O
- [0x1D444] = { -0.05, 1.025, 0 }, -- Q
- [0x1D445] = { -0.025, 1.05, 0 }, -- R
- [0x1D446] = { -0.05, 1, 0 }, -- S
- [0x1D447] = { -0.05, 1.05, 0.7 }, -- T
- [0x1D448] = { -0.125, 1, 0.3 }, -- U
- [0x1D449] = { -0.125, 1, 0.3 }, -- V
- [0x1D44A] = { -0.075, 1, 0.3 }, -- W
- [0x1D44B] = { 0.05, 1.1, 0.35 }, -- X
- [0x1D44C] = { -0.075, 1.1, 0.35 }, -- Y
- [0x1D44E] = { -0.05, 1.1, 0 }, -- a
- [0x1D44F] = { -0.05, 1.1, 0 }, -- b
- [0x1D450] = { -0.05, 1.1, 0 }, -- c
- [0x1D451] = { -0.05, 1.1, 0 }, -- d
- [0x1D452] = { -0.05, 1.1, 0 }, -- e
- [0x1D453] = { 0.45, 1.85, 0.45 }, -- f
- [0x1D454] = { 0.05, 1.1, 0 }, -- g
- [0x0210E] = { -0.1, 1.05, 0 }, -- h
- [0x1D456] = { -0.2, 1.1, 0 }, -- i
- [0x1D457] = { 0.6, 1.7, 0.45 }, -- j
- [0x1D458] = { -0.05, 1.1, 0 }, -- k
- [0x1D459] = { -0.15, 1.1, 0 }, -- l
- [0x1D45A] = { -0.05, 1, 0 }, -- m
- [0x1D45B] = { -0.1, 1, 0 }, -- n
- [0x1D45C] = { -0.05, 1.1, 0 }, -- o
- [0x1D45D] = { 0, 1.05, 0 }, -- p
- [0x1D45E] = { -0.05, 1.05, 0 }, -- q
- [0x1D45F] = { -0.1, 1.15, 0 }, -- r
- [0x1D460] = { -0.05, 1.05, 0 }, -- s
- [0x1D461] = { -0.15, 1.1, 0 }, -- t
- [0x1D462] = { -0.1, 1.05, 0 }, -- u
- [0x1D463] = { -0.1, 1.05, 0 }, -- v
- [0x1D464] = { -0.05, 1.05, 0 }, -- w
- [0x1D465] = { 0, 1.175, 0 }, -- x
- [0x1D466] = { -0.05, 1.05, 0 }, -- y
- [0x1D467] = { -0.05, 1.1, 0 }, -- z
- [0x1D6FC] = { -0.075, 0.825, 0 }, -- \alpha
- [0x1D6FD] = { 0, 0.85, 0 }, -- \beta
- [0x1D6FE] = { -0.075, 0.825, 0.05 }, -- \gamma
- [0x1D6FF] = { -0.1, 0.8, 0 }, -- \delta
- [0x1D716] = { -0.1, 0.8, 0 }, -- \epsilon
- [0x1D700] = { -0.1, 0.8, 0 }, -- \varepsilon
- [0x1D701] = { -0.1, 0.8, 0 }, -- \zeta
- [0x1D702] = { -0.1, 0.8, 0 }, -- \eta
- [0x1D703] = { -0.1, 0.8, 0 }, -- \theta
- [0x1D717] = { -0.075, 0.85, 0 }, -- \vartheta
- [0x1D704] = { -0.1, 0.8, 0 }, -- \iota
- [0x1D705] = { -0.075, 0.825, 0 }, -- \kappa
- [0x1D718] = { -0.075, 0.825, 0 }, -- \varkappa
- [0x1D706] = { -0.075, 0.825, 0 }, -- \lambda
- [0x1D707] = { -0.075, 0.825, 0 }, -- \mu
- [0x1D708] = { -0.075, 0.825, 0 }, -- \nu
- [0x1D709] = { -0.075, 0.825, 0 }, -- \xi
- [0x1D70A] = { -0.075, 0.825, 0 }, -- \omicron
- [0x1D70B] = { -0.075, 0.825, 0 }, -- \pi
- [0x1D71B] = { -0.07, 0.85, 0 }, -- \varpi
- [0x1D70C] = { -0.075, 0.85, 0 }, -- \rho
- [0x1D71A] = { -0.075, 0.85, 0 }, -- \varrho
- [0x1D70E] = { -0.075, 0.85, 0 }, -- \sigma
- [0x1D70D] = { -0.075, 0.85, 0 }, -- \varsigma
- [0x1D70F] = { -0.08, 0.825, 0 }, -- \tau
- [0x1D710] = { -0.08, 0.825, 0 }, -- \upsilon
- [0x1D719] = { -0.075, 0.85, 0 }, -- \phi
- [0x1D711] = { -0.075, 0.85, 0 }, -- \varphi
- [0x1D712] = { -0.075, 0.85, 0 }, -- \chi
- [0x1D713] = { -0.075, 0.85, 0 }, -- \psi
- [0x1D714] = { -0.05, 0.875, 0 }, -- \omega
+ [0x00393] = { -0.05, 0.875, 0 }, -- \Gamma
+ [0x00394] = { -0.05, 0.875, 0 }, -- \Delta
+ [0x00398] = { -0.05, 0.9, 0 }, -- \Theta
+ [0x0039B] = { -0.075, 0.85, 0 }, -- \Lambda
+ [0x0039E] = { -0.075, 0.85, 0 }, -- \Xi
+ [0x003A0] = { -0.075, 0.85, 0 }, -- \Pi
+ [0x003A3] = { -0.075, 0.85, 0 }, -- \Sigma
+ [0x003A5] = { -0.075, 0.85, 0 }, -- \Upsilon
+ [0x003A6] = { -0.05, 0.9, 0 }, -- \Phi
+ [0x003A8] = { -0.05, 0.9, 0 }, -- \Psi
+ [0x003A9] = { -0.05, 0.9, 0 }, -- \Omega
+ [0x02202] = { -0.075, 0.825, 0 }, -- \partial
+ [0x1D436] = { -0.1, 1, 0 }, -- C
+ [0x1D43A] = { -0.1, 1, 0 }, -- G
+ [0x1D442] = { -0.1, 1, 0 }, -- O
+ [0x1D444] = { -0.05, 1.025, 0 }, -- Q
+ [0x1D445] = { -0.025, 1.05, 0 }, -- R
+ [0x1D446] = { -0.05, 1, 0 }, -- S
+ [0x1D447] = { -0.05, 1.05, 0.7 }, -- T
+ [0x1D448] = { -0.125, 1, 0.3 }, -- U
+ [0x1D449] = { -0.125, 1, 0.3 }, -- V
+ [0x1D44A] = { -0.075, 1, 0.3 }, -- W
+ [0x1D44B] = { 0.05, 1.1, 0.35 }, -- X
+ [0x1D44C] = { -0.075, 1.1, 0.35 }, -- Y
+ [0x1D44E] = { -0.05, 1.1, 0, 0.8 }, -- a
+ [0x1D44F] = { -0.05, 1.1, 0 }, -- b
+ [0x1D450] = { -0.05, 1.1, 0, 0.9 }, -- c
+ [0x1D451] = { -0.05, 1.1, 0, 0.75 }, -- d
+ [0x1D452] = { -0.05, 1.1, 0, 0.9 }, -- e
+ [0x1D453] = { 0.45, 1.85, 0.45 }, -- f
+ [0x1D454] = { 0.05, 1.1, 0, 0.9 }, -- g
+ [0x0210E] = { -0.1, 1.05, 0, 1.15 }, -- h
+ [0x1D456] = { -0.2, 1.1, 0 }, -- i
+ [0x1D457] = { 0.6, 1.7, 0.45 }, -- j
+ [0x1D458] = { -0.05, 1.1, 0, 1.15 }, -- k
+ [0x1D459] = { -0.15, 1.1, 0, 0.8 }, -- l
+ [0x1D45A] = { -0.05, 1, 0 }, -- m
+ [0x1D45B] = { -0.1, 1, 0, 0.9 }, -- n
+ [0x1D45C] = { -0.05, 1.1, 0, 0.9 }, -- o
+ [0x1D45D] = { 0, 1.05, 0 }, -- p
+ [0x1D45E] = { -0.05, 1.05, 0, 0.9 }, -- q
+ [0x1D45F] = { -0.1, 1.15, 0, 0.9 }, -- r
+ [0x1D460] = { -0.05, 1.05, 0 }, -- s
+ [0x1D461] = { -0.15, 1.1, 0, 0.9 }, -- t
+ [0x1D462] = { -0.1, 1.05, 0, 0.85 }, -- u
+ [0x1D463] = { -0.1, 1.05, 0, 0.85 }, -- v
+ [0x1D464] = { -0.05, 1.05, 0, 0.95 }, -- w
+ [0x1D465] = { 0, 1.175, 0, 0.9 }, -- x
+ [0x1D466] = { -0.05, 1.05, 0 }, -- y
+ [0x1D467] = { -0.05, 1.1, 0, 0.9 }, -- z
+ [0x1D6FC] = { -0.075, 0.825, 0 }, -- \alpha
+ [0x1D6FD] = { 0, 0.85, 0, 1.1 }, -- \beta
+ [0x1D6FE] = { -0.075, 0.825, 0.05, 1.05 }, -- \gamma
+ [0x1D6FF] = { -0.1, 0.8, 0 }, -- \delta
+ [0x1D716] = { -0.1, 0.8, 0 }, -- \epsilon
+ [0x1D700] = { -0.1, 0.8, 0 }, -- \varepsilon
+ [0x1D701] = { -0.1, 0.8, 0 }, -- \zeta
+ [0x1D702] = { -0.1, 0.8, 0, 1.05 }, -- \eta
+ [0x1D703] = { -0.1, 0.8, 0 }, -- \theta
+ [0x1D717] = { -0.075, 0.85, 0, 1.03 }, -- \vartheta
+ [0x1D704] = { -0.1, 0.8, 0, 1.05 }, -- \iota
+ [0x1D705] = { -0.075, 0.825, 0 }, -- \kappa
+ [0x1D706] = { -0.075, 0.825, 0, 1.05 }, -- \lambda
+ [0x1D707] = { -0.075, 0.825, 0, 1.03 }, -- \mu
+ [0x1D708] = { -0.075, 0.825, 0, 1.03 }, -- \nu
+ [0x1D709] = { -0.075, 0.825, 0 }, -- \xi
+ [0x1D70A] = { -0.075, 0.825, 0, 1.03 }, -- \omicron
+ [0x1D70B] = { -0.075, 0.825, 0 }, -- \pi
+ [0x1D71B] = { -0.07, 0.85, 0 }, -- \varpi
+ [0x1D70C] = { -0.075, 0.85, 0 }, -- \rho
+ [0x1D71A] = { -0.075, 0.85, 0 }, -- \varrho
+ [0x1D70D] = { -0.075, 0.85, 0, 1.02 }, -- \varsigma
+ [0x1D70E] = { -0.075, 0.85, 0 }, -- \sigma
+ [0x1D70F] = { -0.08, 0.825, 0, 1.05 }, -- \tau
+ [0x1D710] = { -0.08, 0.825, 0, 1.03 }, -- \upsilon
+ [0x1D719] = { -0.075, 0.85, 0 }, -- \phi
+ [0x1D711] = { -0.075, 0.85, 0, 1.02 }, -- \varphi
+ [0x1D712] = { -0.075, 0.85, 0 }, -- \chi
+ [0x1D713] = { -0.075, 0.85, 0 }, -- \psi
+ [0x1D714] = { -0.05, 0.875, 0 }, -- \omega
+ -- [0x1D718] = { -0.075, 0.825, 0, 1.03 }, -- \varkappa
+ [0x1D719] = { -0.075, 0.85, 0 }, -- \phi
+ [0x1D41B] = { 0, 1, 0, 1.5 }, -- bold lowercase upright b
+ [0x1D41D] = { 0, 1, 0, 0.6 }, -- bold lowercase upright d
+ [0x1D41F] = { 0, 1.25, 0, 0.8 }, -- bold lowercase upright f
+ [0x1D420] = { 0, 1, 0, 0.6 }, -- bold lowercase upright g
+ [0x1D421] = { 0, 1, 0, 1.5 }, -- bold lowercase upright h
+ [0x1D424] = { 0, 1, 0, 1.5 }, -- bold lowercase upright k
+ [0x1D425] = { 0, 1, 0, 0.75 }, -- bold lowercase upright l
+ [0x1D42A] = { 0, 1, 0, 0.9 }, -- bold lowercase upright q
+ [0x1D42B] = { 0, 1, 0, 0.9 }, -- bold lowercase upright r
+ [0x1D42C] = { 0, 1, 0, 0.9 }, -- bold lowercase upright s
+ [0x1D482] = { 0, 1, 0, 0.9 }, -- bold lowercase italic a
+ [0x1D483] = { 0, 1, 0, 1.1 }, -- bold lowercase italic b
+ [0x1D484] = { 0, 1, 0, 0.95 }, -- bold lowercase italic c
+ [0x1D485] = { 0, 1, 0, 0.75 }, -- bold lowercase italic d
+ [0x1D486] = { 0, 1, 0, 0.95 }, -- bold lowercase italic e
+ [0x1D487] = { 0, 1, 0, 0.95 }, -- bold lowercase italic f
+ [0x1D488] = { 0, 1, 0, 0.9 }, -- bold lowercase italic g
+ [0x1D489] = { 0, 1, 0, 1.2 }, -- bold lowercase italic h
+ -- [0x1D48A] = { 0, 1, 0, 0.6 }, -- bold lowercase italic i
+ -- [0x1D48B] = { 0, 1, 0, 0.8 }, -- bold lowercase italic j
+ [0x1D48C] = { 0, 1, 0, 1.2 }, -- bold lowercase italic k
+ [0x1D48D] = { 0, 1, 0, 0.9 }, -- bold lowercase italic l
+ [0x1D492] = { 0, 1, 0, 0.85 }, -- bold lowercase italic q
+ [0x1D493] = { 0, 1, 0, 0.9 }, -- bold lowercase italic r
+ [0x1D497] = { 0, 1, 0, 0.9 }, -- bold lowercase italic v
+ [0x1D499] = { 0, 1, 0, 0.9 }, -- bold lowercase italic x
+ [0x1D49A] = { 0, 1, 0, 0.95 }, -- bold lowercase italic y
+ [0x1D49B] = { 0, 1, 0, 1.1 }, -- bold lowercase italic z
+ [0x1D743] = { 0, 1, 0, 1.7 }, -- bold lowercase italic greek xi
},
},
{
tweak = "fixprimes",
- scale = 0.8,
- smaller = true,
- factor = 0.9,
+ -- scale = 0.8,
+ -- smaller = true,
+ factor = 1.1,
},
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ -- {
+ -- tweak = "fixanchors",
+ -- factor = .5,
+ -- },
},
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
--
-- experimental fixes for mkiv:
--
diff --git a/tex/context/fonts/mkiv/cambria-math.lfg b/tex/context/fonts/mkiv/cambria-math.lfg
index d641784d7..4fe564cea 100644
--- a/tex/context/fonts/mkiv/cambria-math.lfg
+++ b/tex/context/fonts/mkiv/cambria-math.lfg
@@ -32,34 +32,21 @@ local dimensions, kerns, kernpairs if CONTEXTLMTXMODE == 0 then
end
-local patches = fonts.handlers.otf.enhancers.patches
-
-local function patch(data,filename,threshold)
- local m = data.metadata.math
- if m then
- local d = m.DisplayOperatorMinHeight or 0
- if d < threshold then
- patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold)
- m.DisplayOperatorMinHeight = threshold
- end
- end
-end
-
-patches.register("after","analyze math","cambria", function(data,filename) patch(data,filename,2800) end)
-patches.register("after","analyze math","cambmath",function(data,filename) patch(data,filename,2800) end)
-
--- This is a runtime fix, but then we need to explicitly set
--- the goodies parameter for the font. As a demonstration we
--- we do both.
-
-local function FixDisplayOperatorMinHeight(value,target,original)
- local o = original.mathparameters.DisplayOperatorMinHeight
- if o < 2800 then
- return 2800 * target.parameters.factor
- else
- return value -- already scaled
- end
-end
+-- local patches = fonts.handlers.otf.enhancers.patches
+--
+-- local function patch(data,filename,threshold)
+-- local m = data.metadata.math
+-- if m then
+-- local d = m.DisplayOperatorMinHeight or 0
+-- if d < threshold then
+-- patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold)
+-- m.DisplayOperatorMinHeight = threshold
+-- end
+-- end
+-- end
+--
+-- patches.register("after","analyze math","cambria", function(data,filename) patch(data,filename,2800) end)
+-- patches.register("after","analyze math","cambmath",function(data,filename) patch(data,filename,2800) end)
return {
name = "cambria-math",
@@ -68,19 +55,49 @@ return {
author = "Hans Hagen",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1000,
+ DisplayOperatorMinHeight = 2800,
+ AccentBaseDepth = 300,
+ },
tweaks = {
aftercopying = {
{
tweak = "dimensions",
list = {
- [0x1D43D] = { 0.25, 1.15, 0.2}, -- J
+ -- [0x00060] = { yoffset = -0.1 }, -- grave
+ -- [0x000B4] = { yoffset = -0.1 }, -- acute
+ -- [0x002C6] = { yoffset = -0.1 }, -- hat
+ -- [0x002DC] = { yoffset = -0.1 }, -- tilde
+ -- [0x000AF] = { yoffset = -0.1 }, -- bar
+ -- [0x002D8] = { yoffset = -0.15 }, -- breve
+ -- [0x002D9] = { yoffset = -0.15 }, -- dot
+ -- [0x000A8] = { yoffset = -0.1 }, -- ddot
+ [0x020DB] = { yoffset = -0.05 }, -- dddot
+ -- [0x002C7] = { yoffset = -0.1 }, -- check
+ [0x020D7] = { yoffset = -0.05 }, -- vec
+ -- [0x00300] = { yoffset = -0.12 , all=true }, -- widegrave
+ -- [0x00301] = { yoffset = -0.12 , all=true }, -- wideacute
+ -- [0x00302] = { yoffset = -0.12 , all=true }, -- widehat
+ -- [0x00303] = { yoffset = -0.12 , all=true }, -- widetilde
+ -- [0x00304] = { yoffset = -0.12 , all=true }, -- widebar
+ -- [0x00306] = { yoffset = -0.12 , all=true }, -- widebreve
+ [0x00307] = { yoffset = -0.025 , all=true }, -- widedot
+ [0x00308] = { yoffset = -0.025 , all=true }, -- wideddot
+ -- [0x020DB] = { yoffset = -0.1 , all=true }, -- widedddot
+ -- [0x0030A] = { yoffset = -0.12 , all=true }, -- widering
+ -- [0x0030C] = { yoffset = -0.12 , all=true }, -- widecheck
+ [0x1D43D] = { 0.25, 1.15, 0.2 }, -- J
+ [0x1D487] = { anchor = 0.8 }, -- bold lower case italic f
+ -- [0x1D487] = { 0, 1, 0, 1.3}, -- bold lower case italic f
},
},
{
tweak = "fixprimes",
- scale = 0.7,
- smaller = true,
- factor = 0.8,
+ scale = 0.9,
+ -- smaller = true,
+ factor = 0.9,
},
{
tweak = "checkspacing",
@@ -88,10 +105,27 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ list = { "over", "under" },
+ -- list = {
+ -- [0x203E] = { factor = "over" }, -- overbar
+ -- [0x203E] = { factor = "under" }, -- underbar
+ -- [0x23DE] = { factor = "over" }, -- overbrace
+ -- [0x23DF] = { factor = "under" }, -- underbrace
+ -- [0x23DC] = { factor = "over" }, -- overparent
+ -- [0x23DD] = { factor = "under" }, -- underparent
+ -- [0x23B4] = { factor = "over" }, -- overbracket
+ -- [0x23B5] = { factor = "under" }, -- underbracket
+ -- }
+ },
+ {
+ tweak = "addrules",
+ },
},
},
- parameters = {
- DisplayOperatorMinHeight = FixDisplayOperatorMinHeight,
+ bigslots = {
+ 1, 2, 3, 4
},
--
-- experimental fixes for mkiv:
diff --git a/tex/context/fonts/mkiv/concrete-math.lfg b/tex/context/fonts/mkiv/concrete-math.lfg
new file mode 100644
index 000000000..ecd910eb0
--- /dev/null
+++ b/tex/context/fonts/mkiv/concrete-math.lfg
@@ -0,0 +1,29 @@
+-- this file might go away and is for experiments only
+
+return {
+ name = "concrete-math",
+ version = "1.00",
+ comment = "Goodies that complement concrete math.",
+ author = "Hans Hagen",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ },
+ tweaks = {
+ aftercopying = {
+ -- {
+ -- tweak = "fixprimes",
+ -- factor = 0.9,
+ -- },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ },
+
+}
+
+
diff --git a/tex/context/fonts/mkiv/dejavu-math.lfg b/tex/context/fonts/mkiv/dejavu-math.lfg
index f214f0bb5..3c262fab5 100644
--- a/tex/context/fonts/mkiv/dejavu-math.lfg
+++ b/tex/context/fonts/mkiv/dejavu-math.lfg
@@ -17,6 +17,12 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ FractionRuleThickness = 60,
+ AccentBaseDepth = 30,
+ },
tweaks = {
aftercopying = {
{
@@ -26,15 +32,15 @@ return {
{
tweak = "dimensions",
list = {
- -- [0x1D449] = { 0, .8, .2 },
- -- [0x1D44A] = { 0, .8, .2 },
+ -- [0x1D449] = { 0, .8, .2 },
+ -- [0x1D44A] = { 0, .8, .2 },
["0x1D449:0x1D44A"] = { 0, .8, .2 },
}
},
{
tweak = "fixprimes",
- scale = 0.9,
- smaller = true,
+ -- scale = 0.9,
+ -- smaller = true,
factor = 0.8,
},
{
@@ -43,11 +49,20 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
--
-- experimental fixes for mkiv:
--
diff --git a/tex/context/fonts/mkiv/ebgaramond.lfg b/tex/context/fonts/mkiv/ebgaramond.lfg
deleted file mode 100644
index 0e91141d4..000000000
--- a/tex/context/fonts/mkiv/ebgaramond.lfg
+++ /dev/null
@@ -1,87 +0,0 @@
-return {
- name = "ebgaramond",
- version = "1.00",
- comment = "Goodies that complement ebgaramond.",
- author = "Hans Hagen & Mikael Sundqvist",
- copyright = "ConTeXt development team",
- mathematics = {
- tweaks = {
- aftercopying = {
- {
- tweak = "version",
- expected = "Version 2019-08-16",
- },
- {
- tweak = "dimensions",
- list = {
- -- offset width italic
- [0x00393] = { 0.05, 1.05, 0.075 }, -- \Gamma
- -- [0x003A6] = { 0.05, 1.05, 0 }, -- \Phi difficult!
- [0x003A8] = { 0.05, 1.05, 0.075 }, -- \Psi
- [0x02113] = { 0, 1, 0.075 }, -- \ell
- [0x1D436] = { 0, 1, 0.05 }, -- C
- [0x1D43D] = { 0.3, 1.4, 0.1 }, -- J
- [0x1D44B] = { 0, 1, 0.05 }, -- X
- [0x1D450] = { 0, 1.1, 0 }, -- c
- [0x1D451] = { 0, 1, 0.05 }, -- d
- [0x1D452] = { 0, 1.1, 0.05 }, -- e
- [0x1D453] = { 0.15, 1.15, 0.1 }, -- f
- [0x1D454] = { 0.1, 1.2, 0.1 }, -- g
- [0xF0276] = { 0, 1.1, 0 }, -- h
- [0x1D457] = { 0.2, 1.25, 0.05 }, -- j
- [0x1D459] = { 0, 1, 0.05 }, -- l
- [0x1D45D] = { 0.15, 1.15, 0 }, -- p
- [0x1D45E] = { 0, 1.05, 0 }, -- q
- [0x1D45F] = { 0, 1.05, 0 }, -- r
- [0x1D461] = { 0, 1, 0.1 }, -- t
- [0x1D465] = { 0.05, 1.1, 0.05 }, -- x
- [0x1D466] = { 0.2, 1.2, 0 }, -- y
- [0x1D6FD] = { 0.05, 1.1, 0.05 }, -- \beta
- [0x1D6FE] = { 0, 1.05, 0 }, -- \gamma
- [0x1D6FF] = { 0, 1, 0.1 }, -- \delta
- [0x1D716] = { 0, 1.1, 0 }, -- \epsilon
- [0x1D700] = { 0, 1.1, 0 }, -- \varepsilon
- [0x1D701] = { 0, 1, 0.15 }, -- \zeta
- [0x1D703] = { 0, 1, 0.1 }, -- \theta
- [0x1D705] = { 0, 1, 0.1 }, -- \kappa
- [0x1D706] = { 0.05, 1.1, 0 }, -- \lambda
- [0x1D707] = { 0.05, 1.05, 0 }, -- \mu
- [0x1D708] = { 0, 1.1, 0 }, -- \nu
- [0x1D709] = { 0, 1.1, 0 }, -- \xi
- [0x1D70B] = { 0, 1.05, 0 }, -- \pi
- [0x1D70C] = { 0.2, 1.2, 0 }, -- \rho
- [0x1D70E] = { 0, 1, 0.1 }, -- \sigma
- [0x1D70F] = { 0.05, 1.05, 0.1 }, -- \tau
- [0x1D712] = { 0.15, 1.2, 0.05 }, -- \chi
- [0x1D713] = { 0.05, 1.05, 0.05 }, -- \psi
- },
- },
- {
- tweak = "fixprimes",
- scale = 0.75,
- smaller = true,
- factor = 0.8,
- fake = 0.75,
- },
- {
- tweak = "checkspacing",
- },
- {
- tweak = "addscripts",
- },
- },
- },
- alternates = {
- partial = { feature = 'ss02', value = 1, comment = "Curved partial" },
- semibold = { feature = 'ss04', value = 1, comment = "Semibold" },
- extrabold = { feature = 'ss05', value = 1, comment = "Extrabold" },
- hbar = { feature = 'ss06', value = 1, comment = "Horizontal bar for h-bar" },
- integral = { feature = 'ss07', value = 1, comment = "A more slanted integral sign" },
- tilde = { feature = 'ss09', value = 1, comment = "A tilde variant" },
- outbendingh = { feature = 'ss10', value = 1, comment = "Out-bending h" },
- largeoperators = { feature = 'ss11', value = 1, comment = "Larger operators" },
- },
- },
-}
-
-
diff --git a/tex/context/fonts/mkiv/erewhon-math.lfg b/tex/context/fonts/mkiv/erewhon-math.lfg
new file mode 100644
index 000000000..d5b576f76
--- /dev/null
+++ b/tex/context/fonts/mkiv/erewhon-math.lfg
@@ -0,0 +1,44 @@
+-- this file might go away and is for experiments only
+
+return {
+ name = "erewhon-math",
+ version = "1.00",
+ comment = "Goodies that complement erewhon math.",
+ author = "Hans Hagen",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ AccentBaseHeight = 0,
+ AccentBaseDepth = 60,
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "fixprimes",
+ factor = 0.9,
+ scale = 0.9,
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ },
+
+}
+
+
diff --git a/tex/context/fonts/mkiv/euler-math.lfg b/tex/context/fonts/mkiv/euler-math.lfg
index 77b144754..cb3ec36a0 100644
--- a/tex/context/fonts/mkiv/euler-math.lfg
+++ b/tex/context/fonts/mkiv/euler-math.lfg
@@ -6,8 +6,7 @@ return {
comment = "Goodies that complement euler math.",
author = "Hans Hagen",
copyright = "ConTeXt development team",
-
- mathematics = {
+ mathematics = {
tweaks = {
aftercopying = {
{
@@ -19,6 +18,9 @@ return {
},
},
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
},
diff --git a/tex/context/fonts/mkiv/garamond-math.lfg b/tex/context/fonts/mkiv/garamond-math.lfg
new file mode 100644
index 000000000..b002cc942
--- /dev/null
+++ b/tex/context/fonts/mkiv/garamond-math.lfg
@@ -0,0 +1,133 @@
+return {
+ name = "ebgaramond",
+ version = "1.00",
+ comment = "Goodies that complement ebgaramond.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1200,
+ FractionRuleThickness = 60,
+ OverbarRuleThickness = 60,
+ -- RadicalRuleThickness = 60,
+ UnderbarRuleThickness = 60,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 75,
+ -- AccentTopShiftUp = -75,
+ -- FlattenedAccentTopShiftUp = -100,
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 2019-08-16",
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ -- offset width italic
+ -- [0x00060] = { yoffset = -0.1 }, -- grave
+ -- [0x000B4] = { yoffset = -0.1 }, -- acute
+ [0x002C6] = { yoffset = -0.1 }, -- hat
+ [0x002DC] = { yoffset = -0.1 }, -- tilde
+ -- [0x000AF] = { yoffset = -0.1 }, -- bar
+ [0x002D8] = { yoffset = -0.15 }, -- breve
+ [0x002D9] = { yoffset = -0.15 }, -- dot
+ -- [0x000A8] = { yoffset = -0.1 }, -- ddot
+ [0x020DB] = { yoffset = -0.115 }, -- dddot
+ [0x002C7] = { yoffset = -0.1 }, -- check
+ [0x020D7] = { yoffset = -0.1 }, -- vec
+ [0x00300] = { yoffset = -0.12 , all=true }, -- widegrave
+ [0x00301] = { yoffset = -0.12 , all=true }, -- wideacute
+ [0x00302] = { yoffset = -0.12 , all=true }, -- widehat
+ [0x00303] = { yoffset = -0.12 , all=true }, -- widetilde
+ [0x00304] = { yoffset = -0.12 , all=true }, -- widebar
+ [0x00306] = { yoffset = -0.12 , all=true }, -- widebreve
+ [0x00307] = { yoffset = -0.12 , all=true }, -- widedot
+ [0x00308] = { yoffset = -0.12 , all=true }, -- wideddot
+ -- [0x020DB] = { yoffset = -0.1 , all=true }, -- widedddot
+ [0x0030A] = { yoffset = -0.12 , all=true }, -- widering
+ [0x0030C] = { yoffset = -0.12 , all=true }, -- widecheck
+ -- [0x002C6] = { scale=.85, yoffset = .1, width = .85, height = .935 }, -- hat
+ [0x00393] = { 0.05, 1.05, 0.075 }, -- \Gamma
+ -- [0x003A6] = { 0.05, 1.05, 0 }, -- \Phi difficult!
+ [0x003A8] = { 0.05, 1.05, 0.075 }, -- \Psi
+ [0x02113] = { 0, 1, 0.075 }, -- \ell
+ [0x1D436] = { 0, 1, 0.05 }, -- C
+ [0x1D43D] = { 0.3, 1.4, 0.1 }, -- J
+ [0x1D44B] = { 0, 1, 0.05 }, -- X
+ [0x1D44F] = { 0, 1, 0, 1.25 }, -- b
+ [0x1D450] = { 0, 1.1, 0 }, -- c
+ [0x1D451] = { 0, 1, 0.05, 0.8 }, -- d
+ [0x1D452] = { 0, 1.1, 0.05 }, -- e
+ [0x1D453] = { 0.15, 1.15, 0.1, 1.2 }, -- f
+ [0x1D454] = { 0.1, 1.2, 0.1 }, -- g
+ [0x0210E] = { 0, 1.1, 0, 1.4 }, -- h
+ [0x1D457] = { 0.2, 1.25, 0.05 }, -- j
+ [0x1D458] = { 0, 1, 0, 1.25 }, -- k
+ [0x1D459] = { 0, 1, 0.05 }, -- l
+ [0x1D45D] = { 0.15, 1.15, 0, 1.4 }, -- p
+ [0x1D45E] = { 0, 1.05, 0 }, -- q
+ [0x1D45F] = { 0, 1.05, 0 }, -- r
+ [0x1D461] = { 0, 1, 0.1 }, -- t
+ [0x1D465] = { 0.05, 1.1, 0.05 }, -- x
+ [0x1D466] = { 0.2, 1.2, 0, 1.35 }, -- y
+ [0x1D6FD] = { 0.05, 1.1, 0.05 }, -- \beta
+ [0x1D6FE] = { 0, 1.05, 0 }, -- \gamma
+ [0x1D6FF] = { 0, 1, 0.1 }, -- \delta
+ [0x1D716] = { 0, 1.1, 0 }, -- \epsilon
+ [0x1D700] = { 0, 1.1, 0 }, -- \varepsilon
+ [0x1D701] = { 0, 1, 0.15 }, -- \zeta
+ [0x1D703] = { 0, 1, 0.1 }, -- \theta
+ [0x1D705] = { 0, 1, 0.1 }, -- \kappa
+ [0x1D706] = { 0.05, 1.1, 0 }, -- \lambda
+ [0x1D707] = { 0.05, 1.05, 0 }, -- \mu
+ [0x1D708] = { 0, 1.1, 0 }, -- \nu
+ [0x1D709] = { 0, 1.1, 0 }, -- \xi
+ [0x1D70B] = { 0, 1.05, 0 }, -- \pi
+ [0x1D70C] = { 0.2, 1.2, 0 }, -- \rho
+ [0x1D70E] = { 0, 1, 0.1 }, -- \sigma
+ [0x1D70F] = { 0.05, 1.05, 0.1 }, -- \tau
+ [0x1D712] = { 0.15, 1.2, 0.05 }, -- \chi
+ [0x1D713] = { 0.05, 1.05, 0.05 }, -- \psi
+ },
+ },
+ {
+ tweak = "fixprimes",
+ scale = 0.9,
+ -- smaller = true,
+ factor = 0.9,
+ -- fake = 0.75,
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ },
+ },
+ alternates = {
+ partial = { feature = 'ss02', value = 1, comment = "Curved partial" },
+ semibold = { feature = 'ss04', value = 1, comment = "Semibold" },
+ extrabold = { feature = 'ss05', value = 1, comment = "Extrabold" },
+ hbar = { feature = 'ss06', value = 1, comment = "Horizontal bar for h-bar" },
+ integral = { feature = 'ss07', value = 1, comment = "A more slanted integral sign" },
+ tilde = { feature = 'ss09', value = 1, comment = "A tilde variant" },
+ outbendingh = { feature = 'ss10', value = 1, comment = "Out-bending h" },
+ largeoperators = { feature = 'ss11', value = 1, comment = "Larger operators" },
+ },
+ bigs = {
+ 1, 3, 5, 7
+ },
+ },
+}
+
+
diff --git a/tex/context/fonts/mkiv/generic-math.lfg b/tex/context/fonts/mkiv/generic-math.lfg
new file mode 100644
index 000000000..c14067cc5
--- /dev/null
+++ b/tex/context/fonts/mkiv/generic-math.lfg
@@ -0,0 +1,74 @@
+return {
+ name = "generic-math",
+ version = "1.00",
+ comment = "A starting point.",
+ author = "Hans Hagen",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ AccentBaseDepth = 150,
+ PrimeRaisePercent = 25,
+ PrimeShiftUp = "SuperscriptShiftUp",
+ PrimeBaselineDropMax = "SuperscriptBaselineDropMax",
+ PrimeShiftUpCramped = "SuperscriptShiftUpCramped",
+ PrimeSpaceAfter = 0,
+ PrimeWidthPercent = 50,
+ SpaceBeforeScript = "SpaceAfterScript",
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 0,
+ AccentTopShiftUp = 0,
+ AccentBottomShiftDown = 0,
+ AccentBaseDepth = 0,
+ AccentFlattenedBaseDepth = 0,
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "dimensions",
+ list = {
+ -- whatever
+ },
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.85, -- accent base height
+ smaller = true, -- replace multiples
+ scale = 0.75, -- glyph scale
+ fake = 0.75, -- replace multiples with this width proportion
+ -- keep = true, -- keep the text size prime (aka minute)
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ list = { "over", "under" },
+ -- list = {
+ -- [0x203E] = { factor = "over" }, -- overbar
+ -- [0x203E] = { factor = "under" }, -- underbar
+ -- [0x23DE] = { factor = "over" }, -- overbrace
+ -- [0x23DF] = { factor = "under" }, -- underbrace
+ -- [0x23DC] = { factor = "over" }, -- overparent
+ -- [0x23DD] = { factor = "under" }, -- underparent
+ -- [0x23B4] = { factor = "over" }, -- overbracket
+ -- [0x23B5] = { factor = "under" }, -- underbracket
+ -- }
+ },
+ {
+ tweak = "addrules",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ alternates = {
+ -- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
+ },
+ },
+}
diff --git a/tex/context/fonts/mkiv/kpfonts-math.lfg b/tex/context/fonts/mkiv/kpfonts-math.lfg
index bdeadd25a..695a6af32 100644
--- a/tex/context/fonts/mkiv/kpfonts-math.lfg
+++ b/tex/context/fonts/mkiv/kpfonts-math.lfg
@@ -5,6 +5,12 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 30,
+ },
tweaks = {
aftercopying = {
{
@@ -17,26 +23,33 @@ return {
-- whatever
},
},
- {
- tweak = "fixprimes",
- factor = 0.85, -- accent base height
- smaller = true, -- replace multiples
- scale = 0.75, -- glyph scale
- fake = 0.75, -- replace multiples with this width proportion
- -- keep = true, -- keep the text size prime (aka minute)
- },
+ -- {
+ -- tweak = "fixprimes",
+ -- factor = 0.85, -- accent base height
+ -- smaller = true, -- replace multiples
+ -- scale = 0.75, -- glyph scale
+ -- fake = 0.75, -- replace multiples with this width proportion
+ -- -- keep = true, -- keep the text size prime (aka minute)
+ -- },
{
tweak = "checkspacing",
},
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
- parameters = {
- },
alternates = {
-- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
},
+ bigslots = {
+ 1, 2, 3, 4
+ },
},
}
diff --git a/tex/context/fonts/mkiv/libertinus-math.lfg b/tex/context/fonts/mkiv/libertinus-math.lfg
index 908d78eea..1cf22f4d0 100644
--- a/tex/context/fonts/mkiv/libertinus-math.lfg
+++ b/tex/context/fonts/mkiv/libertinus-math.lfg
@@ -11,6 +11,17 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1000,
+ FractionRuleThickness = 50,
+ OverbarRuleThickness = 50,
+ -- RadicalRuleThickness = 50,
+ UnderbarRuleThickness = 50,
+ -- AccentBaseHeight = 0,
+ -- AccentTopShiftUp = 0,
+ AccentBaseDepth = 10,
+ },
tweaks = {
aftercopying = {
{
@@ -20,14 +31,40 @@ return {
{
tweak = "dimensions",
list = {
- -- nothing yet
+ [0x00060] = { yoffset = -0.075 }, -- grave
+ [0x000B4] = { yoffset = -0.075 }, -- acute
+ [0x002C6] = { yoffset = -0.075 }, -- hat
+ [0x002DC] = { yoffset = -0.075 }, -- tilde
+ -- [0x000AF] = { yoffset = -0.1 }, -- bar
+ [0x002D8] = { yoffset = -0.075 }, -- breve
+ [0x002D9] = { yoffset = -0.05 }, -- dot
+ [0x000A8] = { yoffset = -0.02 }, -- ddot
+ [0x020DB] = { yoffset = -0.02 }, -- dddot
+ [0x002DA] = { yoffset = -0.1 }, -- ring
+ -- [0x002C7] = { yoffset = -0.1 }, -- check
+ [0x020D7] = { yoffset = -0.1 }, -- vec
+ [0x00300] = { yoffset = -0.1 , all=true }, -- widegrave
+ [0x00301] = { yoffset = -0.1 , all=true }, -- wideacute
+ [0x00302] = { yoffset = -0.1 , all=true }, -- widehat
+ [0x00303] = { yoffset = -0.09 , all=true }, -- widetilde
+ -- [0x00304] = { yoffset = -0.12 , all=true }, -- widebar
+ [0x00306] = { yoffset = -0.05 , all=true }, -- widebreve
+ [0x00307] = { yoffset = -0.02 , all=true }, -- widedot
+ [0x00308] = { yoffset = -0.02 , all=true }, -- wideddot
+ -- [0x020DB] = { yoffset = -0.1 , all=true }, -- widedddot
+ [0x0030A] = { yoffset = -0.12 , all=true }, -- widering
+ [0x0030C] = { yoffset = -0.04 , all=true }, -- widecheck
+ [0x1D44F] = { 0, 1, 0, 1.5 }, -- b
+ [0x1D451] = { 0, 1, 0, 1.2 }, -- d
+ [0x0210E] = { 0, 1, 0, 1.5 }, -- h
+ [0x1D458] = { 0, 1, 0, 1.5 }, -- k
},
},
{
tweak = "fixprimes",
- scale = 0.8,
- smaller = true,
- factor = 0.85,
+ scale = 0.9,
+ -- smaller = true,
+ factor = 0.9,
},
{
tweak = "checkspacing",
@@ -35,7 +72,16 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
},
}
diff --git a/tex/context/fonts/mkiv/lm-math.lfg b/tex/context/fonts/mkiv/lm-math.lfg
index a0fd2c21c..2f5a69e36 100644
--- a/tex/context/fonts/mkiv/lm-math.lfg
+++ b/tex/context/fonts/mkiv/lm-math.lfg
@@ -235,6 +235,10 @@ return {
author = "Hans Hagen",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ },
mapfiles = {
"lm-math.map",
"lm-rm.map",
@@ -253,11 +257,5 @@ return {
variables = {
joinrelfactor = 3, -- default anyway
},
- parameters = { -- test values
- -- FactorA = 123.456,
- -- FactorB = false,
- -- FactorC = function(value,target,original) return 7.89 * target.factor end,
- -- FactorD = "Hi There!",
- },
}
}
diff --git a/tex/context/fonts/mkiv/lm.lfg b/tex/context/fonts/mkiv/lm.lfg
index 243087850..58db0e3a4 100644
--- a/tex/context/fonts/mkiv/lm.lfg
+++ b/tex/context/fonts/mkiv/lm.lfg
@@ -64,15 +64,37 @@ return {
{
tweak = "dimensions",
list = {
- -- nothing yet
+ [0x00060] = { yoffset = -0.05 }, -- grave
+ [0x000B4] = { yoffset = -0.05 }, -- acute
+ [0x002C6] = { yoffset = -0.05 }, -- hat
+ [0x002DC] = { yoffset = -0.05 }, -- tilde
+ [0x000AF] = { yoffset = -0.1 }, -- bar
+ [0x002D8] = { yoffset = -0.05 }, -- breve
+ [0x002D9] = { yoffset = -0.05 }, -- dot
+ [0x000A8] = { yoffset = -0.05 }, -- ddot
+ [0x020DB] = { yoffset = -0.15 }, -- dddot (seem to hit some max)
+ [0x002DA] = { yoffset = -0.05 }, -- ring
+ [0x002C7] = { yoffset = -0.05 }, -- check
+ [0x020D7] = { yoffset = -0.05 }, -- vec
+ [0x00300] = { yoffset = -0.07 , all=true }, -- widegrave
+ [0x00301] = { yoffset = -0.07 , all=true }, -- wideacute
+ [0x00302] = { yoffset = -0.1 , all=true }, -- widehat
+ [0x00303] = { yoffset = -0.09 , all=true }, -- widetilde
+ [0x00304] = { yoffset = -0.1 , all=true }, -- widebar
+ [0x00306] = { yoffset = -0.07 , all=true }, -- widebreve
+ [0x00307] = { yoffset = -0.05 , all=true }, -- widedot
+ [0x00308] = { yoffset = -0.05 , all=true }, -- wideddot
+ [0x020DB] = { yoffset = -0.075 , all=true }, -- widedddot
+ [0x0030A] = { yoffset = -0.05 , all=true }, -- widering
+ [0x0030C] = { yoffset = -0.075 , all=true }, -- widecheck
},
},
{
tweak = "fixprimes",
- factor = 0.85,
- smaller = true,
- scale = 0.70,
- fake = 0.6,
+ factor = 1.05,
+ -- smaller = true,
+ scale = 0.9,
+ -- fake = 0.6,
},
{
tweak = "checkspacing",
@@ -83,6 +105,12 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
parameters = {
@@ -95,7 +123,12 @@ return {
end
return o * target.parameters.factor
end,
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 50,
},
+ bigs = {1, 3, 5, 7},
--
-- experimental fixes for mkiv:
--
diff --git a/tex/context/fonts/mkiv/lucida-opentype-math.lfg b/tex/context/fonts/mkiv/lucida-opentype-math.lfg
index eff1603fb..769965386 100644
--- a/tex/context/fonts/mkiv/lucida-opentype-math.lfg
+++ b/tex/context/fonts/mkiv/lucida-opentype-math.lfg
@@ -25,17 +25,6 @@ local dimensions, kerns if CONTEXTLMTXMODE == 0 then
end
--- RadicalVerticalGap = 50
--- RadicalDisplayStyleVerticalGap = 175
-
--- RadicalVerticalGap = 166
--- RadicalDisplayStyleVerticalGap = 345
-
-local function FixRadicalDisplayStyleVerticalGap(value,target,original)
- local o = original.mathparameters.RadicalVerticalGap -- 50
- return 2 * o * target.parameters.factor
-end
-
return {
name = "lucida-opentype-math",
version = "1.00",
@@ -43,6 +32,14 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ RadicalDisplayStyleVerticalGap = 100,
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ FractionRuleThickness = 55,
+ AccentBaseHeight = 650,
+ AccentBaseDepth = 150,
+ },
tweaks = {
aftercopying = {
{
@@ -52,28 +49,40 @@ return {
{
tweak = "dimensions",
list = {
- -- nothing yet
+ -- these we fix here
+ ["0x23DC.parts.1"] = { xoffset = -0.075, height = .4, yoffset = -0.6 },
+ ["0x23DC.parts.2"] = { height = .4, yoffset = -0.6 },
+ ["0x23DC.parts.3"] = { xoffset = 0.075, height = .4, yoffset = -0.6 },
+ ["0x23DD.parts.1"] = { xoffset = -0.075, depth = .8, yoffset = 0.2 },
+ ["0x23DD.parts.2"] = { depth = .8, yoffset = 0.2 },
+ ["0x23DD.parts.3"] = { xoffset = 0.075, depth = .8, yoffset = 0.2 },
+ -- these are done later using the AccentBase* parameters
+ -- [0x23DC] = { height = .2, yoffset = -0.8 },
+ -- [0x23DD] = { depth = .6, yoffset = 0.4 },
},
},
- {
- tweak = "fixprimes",
- factor = 0.8, -- accent base height
- smaller = true, -- replace multiples
- scale = 0.75, -- glyph scale
- fake = 0.65, -- replace multiples with this width proportion
- -- keep = true, -- keep the text size prime (aka minute)
- },
+ {
+ tweak = "fixprimes",
+ factor = 0.9, -- accent base height
+ -- smaller = true, -- replace multiples
+ scale = 1, -- glyph scale
+ -- fake = 0.65, -- replace multiples with this width proportion
+ -- keep = true, -- keep the text size prime (aka minute)
+ },
{
tweak = "checkspacing",
},
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
- parameters = {
- RadicalDisplayStyleVerticalGap = FixRadicalDisplayStyleVerticalGap,
- },
alternates = {
italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
arrow = { feature = 'ss02', value = 1, comment = "Mathematical Alternative Smaller Arrows" },
@@ -82,6 +91,9 @@ return {
zero = { feature = 'ss05', value = 1, comment = "Mathematical Alternative Zero" },
partial = { feature = 'ss20', value = 1, comment = "Mathematical Alternative Upright Partial Differential" },
},
+ bigslots = {
+ 1, 2, 3, 4
+ },
--
-- experimental fixes for mkiv:
--
diff --git a/tex/context/fonts/mkiv/minion-math.lfg b/tex/context/fonts/mkiv/minion-math.lfg
index e4f42e18b..c80ade9be 100644
--- a/tex/context/fonts/mkiv/minion-math.lfg
+++ b/tex/context/fonts/mkiv/minion-math.lfg
@@ -51,6 +51,12 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
--
diff --git a/tex/context/fonts/mkiv/newcomputermodern-math.lfg b/tex/context/fonts/mkiv/newcomputermodern-math.lfg
new file mode 100644
index 000000000..db05cb947
--- /dev/null
+++ b/tex/context/fonts/mkiv/newcomputermodern-math.lfg
@@ -0,0 +1,311 @@
+-- In order to be able to use beta math fonts, we use our own file name and
+-- always remap.
+
+local dimensions, kerns if CONTEXTLMTXMODE == 0 then
+
+ local kern_150 = { bottomright = { { kern = -150 } } }
+ local kern_200 = { bottomright = { { kern = -200 } } }
+
+ kerns = {
+ [0x1D449] = kern_150, --
+ [0x1D44A] = kern_200, -- 𝑊
+ }
+
+ dimensions = {
+ -- always applied
+ -- default = {
+ -- },
+ -- driven by 'mathdimensions' feature
+ default = {
+ -- the root is quite displaced
+ [0x221A] = {
+ -- 73, -960, 853, 40
+ yoffset = 960 - 40,
+ height = 960,
+ depth = 40,
+ },
+ -- [0xFE932] = { xoffset = 50, width = 290 }, -- used prime
+ -- [0x2032] = { xoffset = 50, width = 290 }, -- prime
+ },
+ -- -- seems ok now --
+ -- signs = {
+ -- -- [0x00B1] = { -- ±
+ -- -- height = 500, depth = 0,
+ -- -- },
+ -- -- [0x2213] = { -- ∓
+ -- -- height = 500, depth = 0,
+ -- -- },
+ -- -- move in boundingbox
+ -- [0x00B1] = { -- ±
+ -- yoffset = 100,
+ -- },
+ -- [0x2213] = { -- ∓
+ -- yoffset = -100,
+ -- },
+ -- },
+ }
+
+end
+
+
+return {
+ name = "newcomputermodern",
+ version = "1.00",
+ comment = "Goodies that complement newcomputermodern.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ FractionNumeratorDisplayStyleShiftUp = function(value,target,original)
+ local o = original.mathparameters.FractionNumeratorDisplayStyleShiftUp
+ if o > 675 then
+ o = 600
+ else
+ -- probably tuned
+ end
+ return o * target.parameters.factor
+ end,
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1200,
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.958",
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ -- nothing yet
+ },
+ },
+ -- {
+ -- tweak = "fixprimes",
+ -- factor = 0.85,
+ -- smaller = true,
+ -- scale = 0.70,
+ -- fake = 0.6,
+ -- },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "fixradicals",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ },
+ },
+ bigs = {
+ 1, 3, 5, 7
+ },
+ --
+ -- experimental fixes for mkiv:
+ --
+ dimensions = dimensions,
+ kerns = kerns,
+ },
+ filenames = {
+ ["latinmodern-math-regular.otf"] = {
+ "latinmodern-math.otf", -- the beta
+ "lmmath-regular.otf",
+ "latinmodernmath-regular.otf",
+ "lmmath-regular.otf",
+ "lmodernmath-regular.otf",
+ "lmodern-math.otf",
+ },
+ },
+ designsizes = {
+ ["LMMathRoman-Regular"] = {
+ ["4pt"] = "LMMath5-Regular@lmroman5-math",
+ ["5pt"] = "LMMath5-Regular@lmroman5-math",
+ ["6pt"] = "LMMath6-Regular@lmroman6-math",
+ ["7pt"] = "LMMath7-Regular@lmroman7-math",
+ ["8pt"] = "LMMath8-Regular@lmroman8-math",
+ ["9pt"] = "LMMath9-Regular@lmroman9-math",
+ ["10pt"] = "LMMath10-Regular@lmroman10-math",
+ ["11pt"] = "LMMath10-Regular@lmroman10-math",
+ ["12pt"] = "LMMath12-Regular@lmroman12-math",
+ default = "LMMath10-Regular@lmroman10-math"
+ },
+ ["LMMathRoman-Bold"] = { -- not yet ready
+ ["4pt"] = "LMMath5-Regular@lmroman5-math",
+ ["5pt"] = "LMMath5-Regular@lmroman5-math",
+ ["6pt"] = "LMMath6-Regular@lmroman6-math",
+ ["7pt"] = "LMMath7-Regular@lmroman7-math",
+ ["8pt"] = "LMMath8-Regular@lmroman8-math",
+ ["9pt"] = "LMMath9-Regular@lmroman9-math",
+ ["10pt"] = "LMMath10-Regular@lmroman10-math",
+ ["11pt"] = "LMMath10-Regular@lmroman10-math",
+ ["12pt"] = "LMMath12-Regular@lmroman12-math",
+ default = "LMMath10-Regular@lmroman10-math"
+ },
+ ["LMRoman-Regular"] = {
+ ["4pt"] = "file:lmroman5-regular",
+ ["5pt"] = "file:lmroman5-regular",
+ ["6pt"] = "file:lmroman6-regular",
+ ["7pt"] = "file:lmroman7-regular",
+ ["8pt"] = "file:lmroman8-regular",
+ ["9pt"] = "file:lmroman9-regular",
+ ["10pt"] = "file:lmroman10-regular",
+ ["11pt"] = "file:lmroman10-regular",
+ ["12pt"] = "file:lmroman12-regular",
+ default = "file:lmroman10-regular",
+ },
+ ["LMRoman-Bold"] = {
+ ["4pt"] = "file:lmroman5-bold",
+ ["5pt"] = "file:lmroman5-bold",
+ ["6pt"] = "file:lmroman6-bold",
+ ["7pt"] = "file:lmroman7-bold",
+ ["8pt"] = "file:lmroman8-bold",
+ ["9pt"] = "file:lmroman9-bold",
+ ["10pt"] = "file:lmroman10-bold",
+ ["11pt"] = "file:lmroman10-bold",
+ ["12pt"] = "file:lmroman12-bold",
+ default = "file:lmroman10-bold",
+ },
+ ["LMRoman-Demi"] = {
+ default = "file:lmromandemi10-regular",
+ },
+ ["LMRoman-Italic"] = {
+ ["4pt"] = "file:lmroman7-italic",
+ ["5pt"] = "file:lmroman7-italic",
+ ["6pt"] = "file:lmroman7-italic",
+ ["7pt"] = "file:lmroman7-italic",
+ ["8pt"] = "file:lmroman8-italic",
+ ["9pt"] = "file:lmroman9-italic",
+ ["10pt"] = "file:lmroman10-italic",
+ ["11pt"] = "file:lmroman10-italic",
+ ["12pt"] = "file:lmroman12-italic",
+ default = "file:lmroman10-italic",
+ },
+ ["LMRoman-Oblique"] = {
+ ["4pt"] = "file:lmromanslant8-regular",
+ ["5pt"] = "file:lmromanslant8-regular",
+ ["6pt"] = "file:lmromanslant8-regular",
+ ["7pt"] = "file:lmromanslant8-regular",
+ ["8pt"] = "file:lmromanslant8-regular",
+ ["9pt"] = "file:lmromanslant9-regular",
+ ["10pt"] = "file:lmromanslant10-regular",
+ ["11pt"] = "file:lmromanslant10-regular",
+ ["12pt"] = "file:lmromanslant12-regular",
+ default = "file:lmromanslant10-regular",
+ },
+ ["LMRoman-BoldItalic"] = {
+ default = "file:lmroman10-bolditalic",
+ },
+ ["LMRoman-BoldOblique"] = {
+ default = "file:lmromanslant10-bold",
+ },
+ ["LMRoman-DemiOblique"] = {
+ default = "file:lmromandemi10-oblique",
+ },
+ ["LMRoman-CapsRegular"] = {
+ default = "file:lmromancaps10-regular",
+ },
+ ["LMRoman-CapsOblique"] = {
+ default = "file:lmromancaps10-oblique",
+ },
+ ["LMRoman-Dunhill"] = {
+ default = "file:lmromandunh10-regular",
+ },
+ ["LMRoman-DunhillOblique"] = {
+ default = "file:lmromandunh10-oblique",
+ },
+ ["LMRoman-Unslanted"] = {
+ default = "file:lmromanunsl10-regular",
+ },
+ ["LMSans-Regular"] = {
+ ["8pt"] = "file:lmsans8-regular",
+ ["9pt"] = "file:lmsans9-regular",
+ ["10pt"] = "file:lmsans10-regular",
+ ["11pt"] = "file:lmsans10-regular",
+ ["12pt"] = "file:lmsans12-regular",
+ default = "file:lmsans10-regular",
+ },
+ ["LMSans-Oblique"] = {
+ ["8pt"] = "file:lmsans8-oblique",
+ ["9pt"] = "file:lmsans9-oblique",
+ ["10pt"] = "file:lmsans10-oblique",
+ ["11pt"] = "file:lmsans10-oblique",
+ ["12pt"] = "file:lmsans12-oblique",
+ default = "file:lmsans10-oblique",
+ },
+ ["LMSans-Bold"] = {
+ default = "file:lmsans10-bold",
+ },
+ ["LMSans-BoldOblique"] = {
+ default = "file:lmsans10-boldoblique",
+ },
+ ["LMSans-DemiCondensed"] = {
+ default = "file:lmsansdemicond10-regular",
+ },
+ ["LMSans-DemiCondensedOblique"] = {
+ default = "file:lmsansdemicond10-oblique",
+ },
+ ["LMTypewriter-Regular"] = {
+ ["8pt"] = "file:lmmono8-regular",
+ ["9pt"] = "file:lmmono9-regular",
+ ["10pt"] = "file:lmmono10-regular",
+ ["11pt"] = "file:lmmono10-regular",
+ ["12pt"] = "file:lmmono12-regular",
+ default = "file:lmmono10-regular",
+ },
+ ["LMTypewriter-Light"] = {
+ default = "file:lmmonolt10-regular",
+ },
+ ["LMTypewriter-Dark"] = {
+ default = "file:lmmonolt10-bold",
+ },
+ ["LMTypewriter-Italic"] = {
+ default = "file:lmmono10-italic",
+ },
+ ["LMTypewriter-LightOblique"] = {
+ default = "file:lmmonolt10-oblique",
+ },
+ ["LMTypewriter-Oblique"] = {
+ default = "file:lmmonoslant10-regular",
+ },
+ ["LMTypewriter-DarkOblique"] = {
+ default = "file:lmmonolt10-boldoblique",
+ },
+ ["LMTypewriter-LightCondensed"] = {
+ default = "file:lmmonoltcond10-regular",
+ },
+ ["LMTypewriter-LightCondensedOblique"] = {
+ default = "file:lmmonoltcond10-oblique",
+ },
+ ["LMTypewriterVarWd-Regular"] = {
+ default = "file:lmmonoproplt10-regular",
+ },
+ ["LMTypewriterVarWd-Oblique"] = {
+ default = "file:lmmonoproplt10-oblique",
+ },
+ ["LMTypewriterVarWd-Light"] = {
+ default = "file:lmmonoprop10-regular",
+ },
+ ["LMTypewriterVarWd-LightOblique"] = {
+ default = "file:lmmonoprop10-oblique",
+ },
+ ["LMTypewriterVarWd-Dark"] = {
+ default = "file:lmmonoproplt10-bold",
+ },
+ ["LMTypewriterVarWd-DarkOblique"] = {
+ default = "file:lmmonoproplt10-boldoblique",
+ },
+ ["LMTypewriter-CapsRegular"] = {
+ default = "file:lmmonocaps10-regular",
+ },
+ ["LMTypewriter-CapsOblique"] = {
+ default = "file:lmmonocaps10-oblique",
+ },
+ }
+}
diff --git a/tex/context/fonts/mkiv/pagella-math.lfg b/tex/context/fonts/mkiv/pagella-math.lfg
index 3ea465cf9..db2f30a0a 100644
--- a/tex/context/fonts/mkiv/pagella-math.lfg
+++ b/tex/context/fonts/mkiv/pagella-math.lfg
@@ -34,6 +34,13 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ AccentTopShiftUp = 30,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 80,
+ },
tweaks = {
aftercopying = {
{
@@ -55,19 +62,63 @@ return {
{
tweak = "dimensions",
list = { -- offset width italic
- [0x1D453] = { 0.50, 1.70, 0.6 }, -- f
- [0x1D454] = { 0.10, 1.15, 0.2 }, -- g
- [0x1D70F] = { -.10, 1, 0 }, -- \tau
- [0x1D712] = { 0.1, 1.2, 0.1 }, -- \chi
- [0x1D713] = { -0.05, 0.95, 0.1 }, -- \psi
+ -- [0x002C6] = { scale=.85, yoffset = .1, width = .85, height = .935 }, -- hat
+ -- [0x00302] = { scale=.85, yoffset = .1, width = .85, height = .935 }, -- hat
+ -- [0x002C6] = { scale=.75, yoffset = .2, advance = .75, width = .75, height = .90 }, -- hat
+ -- [0x00302] = { scale=.75, yoffset = .2, advance = .75, width = .75, height = .90 }, -- hat
+ [0x00060] = { yoffset = -0.035 }, -- grave
+ [0x000B4] = { yoffset = -0.035 }, -- acute
+ [0x002C6] = { yoffset = -0.035 }, -- hat
+ [0x002DC] = { yoffset = -0.035 }, -- tilde
+ [0x000AF] = { yoffset = -0.05 }, -- bar
+ [0x002D8] = { yoffset = -0.035 }, -- breve
+ [0x002D9] = { yoffset = -0.035 }, -- dot
+ [0x000A8] = { yoffset = -0.05 }, -- ddot
+ [0x020DB] = { yoffset = -0.06 }, -- dddot
+ -- [0x002DA] = { yoffset = -0.05 }, -- ring
+ -- [0x002C7] = { yoffset = -0.05 }, -- check
+ [0x020D7] = { yoffset = -0.05 }, -- vec
+ -- [0x00300] = { yoffset = -0.07 , all=true }, -- widegrave
+ -- [0x00301] = { yoffset = -0.07 , all=true }, -- wideacute
+ [0x00302] = { yoffset = -0.02 , all=true }, -- widehat
+ [0x00303] = { yoffset = -0.02 , all=true }, -- widetilde
+ [0x00304] = { yoffset = -0.05 , all=true }, -- widebar
+ [0x00306] = { yoffset = -0.03 , all=true }, -- widebreve
+ [0x00307] = { yoffset = -0.03 , all=true }, -- widedot
+ [0x00308] = { yoffset = -0.03 , all=true }, -- wideddot
+ -- [0x020DB] = { yoffset = 0.0 , all=true }, -- widedddot
+ -- [0x0030A] = { yoffset = -0.05 , all=true }, -- widering
+ [0x0030C] = { yoffset = -0.03 , all=true }, -- widecheck
+ [0x1D44E] = { 0, 1, 0, 0.9 }, -- a
+ [0x1D44F] = { 0, 1, 0, 1.3 }, -- b
+ [0x1D450] = { 0, 1, 0, 0.9 }, -- c
+ [0x1D451] = { 0, 1, 0, 0.7 }, -- d
+ [0x1D452] = { 0, 1, 0, 0.9 }, -- e
+ [0x1D453] = { 0.50, 1.70, 0.6 }, -- f
+ [0x1D454] = { 0.10, 1.15, 0.2 }, -- g
+ [0x0210E] = { 0, 1, 0, 1.3 }, -- h
+ [0x1D458] = { 0, 1, 0, 1.3 }, -- k
+ [0x1D459] = { 0, 1, 0, 0.9 }, -- l
+ [0x1D45E] = { 0, 1, 0, 0.9 }, -- q
+ [0x1D463] = { 0, 1, 0, 1.25 }, -- v
+ [0x1D464] = { 0, 1, 0, 1.2 }, -- w
+ [0x1D6FE] = { 0, 1, 0, 1.2 }, -- \gamma
+ [0x1D706] = { 0, 1, 0, 1.05 }, -- \lambda
+ [0x1D70A] = { 0, 1, 0, 1.2 }, -- \omicron
+ [0x1D70D] = { 0, 1, 0, 1.2 }, -- \varsigma
+ [0x1D70E] = { 0, 1, 0, 1.1 }, -- \sigma
+ [0x1D70F] = { -.10, 1, 0, 0.95 }, -- \tau
+ [0x1D712] = { 0.1, 1.2, 0.1 }, -- \chi
+ [0x1D713] = { -0.05, 0.95, 0.1 }, -- \psi
+ [0x1D71D] = { 0, 1, 0, 0.7 }, -- \varpi
},
},
{
tweak = "fixprimes",
- factor = 0.85,
- smaller = true,
- scale = 0.70,
- fake = 0.65,
+ factor = 0.9,
+ -- smaller = true,
+ scale = 0.9,
+ -- fake = 0.65,
},
{
tweak = "checkspacing",
@@ -75,8 +126,17 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
diff --git a/tex/context/fonts/mkiv/schola-math.lfg b/tex/context/fonts/mkiv/schola-math.lfg
index f2e6d2e9b..33efb6892 100644
--- a/tex/context/fonts/mkiv/schola-math.lfg
+++ b/tex/context/fonts/mkiv/schola-math.lfg
@@ -17,6 +17,12 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 30,
+ },
tweaks = {
aftercopying = {
{
@@ -31,9 +37,9 @@ return {
},
{
tweak = "fixprimes",
- scale = 0.8,
- smaller = true,
- factor = 0.9,
+ scale = 0.85,
+ -- smaller = true,
+ factor = 1,
},
{
tweak = "checkspacing",
@@ -41,8 +47,17 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
diff --git a/tex/context/fonts/mkiv/stix-two-math.lfg b/tex/context/fonts/mkiv/stix-two-math.lfg
index 4c382babb..d698167aa 100644
--- a/tex/context/fonts/mkiv/stix-two-math.lfg
+++ b/tex/context/fonts/mkiv/stix-two-math.lfg
@@ -20,6 +20,12 @@ return {
-- todo = { feature = 'ss14', value = 1, comment = "" },
circled = { feature = 'ss16', value = 1, comment = "Mathematical Alternative Circled Operators" },
},
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1000,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 30,
+ },
tweaks = {
aftercopying = {
{
@@ -29,14 +35,35 @@ return {
{
tweak = "dimensions",
list = {
- -- nothing yet
+ -- [0x00060] = { yoffset = -0.035 }, -- grave
+ -- [0x000B4] = { yoffset = -0.035 }, -- acute
+ -- [0x002C6] = { yoffset = -0.035 }, -- hat
+ -- [0x002DC] = { yoffset = -0.035 }, -- tilde
+ -- [0x000AF] = { yoffset = -0.05 }, -- bar
+ -- [0x002D8] = { yoffset = -0.035 }, -- breve
+ [0x002D9] = { yoffset = -0.02 }, -- dot
+ [0x000A8] = { yoffset = -0.02 }, -- ddot
+ [0x020DB] = { yoffset = 0.04 }, -- dddot
+ -- [0x002DA] = { yoffset = -0.05 }, -- ring
+ -- [0x002C7] = { yoffset = -0.05 }, -- check
+ [0x020D7] = { yoffset = -0.07 }, -- vec
+ -- [0x00300] = { yoffset = -0.07 , all=true }, -- widegrave
+ -- [0x00301] = { yoffset = -0.07 , all=true }, -- wideacute
+ -- [0x00302] = { yoffset = -0.02 , all=true }, -- widehat
+ -- [0x00303] = { yoffset = -0.02 , all=true }, -- widetilde
+ -- [0x00304] = { yoffset = -0.05 , all=true }, -- widebar
+ -- [0x00306] = { yoffset = -0.03 , all=true }, -- widebreve
+ -- [0x00307] = { yoffset = -0.03 , all=true }, -- widedot
+ -- [0x00308] = { yoffset = -0.03 , all=true }, -- wideddot
+ -- [0x020DB] = { yoffset = 0.0 , all=true }, -- widedddot
+ -- [0x0030A] = { yoffset = -0.05 , all=true }, -- widering
},
},
{
tweak = "fixprimes",
- scale = 0.7,
- smaller = true,
- factor = 0.85,
+ scale = 1,
+ -- smaller = true,
+ factor = 1,
},
{
tweak = "checkspacing",
@@ -44,8 +71,17 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
},
}
diff --git a/tex/context/fonts/mkiv/termes-math.lfg b/tex/context/fonts/mkiv/termes-math.lfg
index fe6cc7956..2ad93c30b 100644
--- a/tex/context/fonts/mkiv/termes-math.lfg
+++ b/tex/context/fonts/mkiv/termes-math.lfg
@@ -25,6 +25,12 @@ return {
author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 50,
+ },
tweaks = {
aftercopying = {
{
@@ -34,16 +40,27 @@ return {
{
tweak = "dimensions",
list = {
- [0x1D453] = { 0.6, 1.4, 1.2 }, -- f
- [0x1D457] = { 0.5, 1.3, 1.7 }, -- j
- [0x1D45D] = { 0.15, 1.15, 0 }, -- p
+ [0x1D44F] = { 0, 1, 0, 1.3 }, -- b
+ [0x1D451] = { 0, 1, 0, 0.8 }, -- d
+ [0x1D452] = { 0, 1, 0, 0.9 }, -- e
+ [0x0210E] = { 0, 1, 0, 1.3 }, -- h
+ [0x1D458] = { 0, 1, 0, 1.3 }, -- k
+ [0x1D453] = { 0.6, 1.4, 1.2, 1.5 }, -- f
+ [0x1D457] = { 0.5, 1.3, 1.7 }, -- j
+ [0x1D45D] = { 0.15, 1.15, 0, 1.4 }, -- p
+ [0x1D45E] = { 0, 1, 0, 0.9 }, -- q
+ [0x1D464] = { 0, 1, 0, 1.1 }, -- w
+ [0x1D6FE] = { 0, 1, 0, 1.1 }, -- \gamma
+ [0x1D706] = { 0, 1, 0, 1.05 }, -- \lambda
+ [0x1D70A] = { 0, 1, 0, 1.2 }, -- \omicron
+ [0x1D70F] = { 0, 1, 0, 1.05 }, -- \tau
},
},
{
tweak = "fixprimes",
- scale = 0.7,
- smaller = true,
- factor = 0.9,
+ scale = 0.85,
+ -- smaller = true,
+ factor = 0.95,
},
{
tweak = "checkspacing",
@@ -51,8 +68,17 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
diff --git a/tex/context/fonts/mkiv/tx-math.lfg b/tex/context/fonts/mkiv/tx-math.lfg
index 58467129e..1acebfd5b 100644
--- a/tex/context/fonts/mkiv/tx-math.lfg
+++ b/tex/context/fonts/mkiv/tx-math.lfg
@@ -13,13 +13,13 @@ return {
{ name = "texgyretermes-regular.otf", features = "virtualmath", main = true },
{ name = "texgyretermes-regular.otf", features = "virtualmath", vector = "tex-mr-missing" },
{ name = "rtxr.tfm", vector = "tex-mr" },
- { name = "rtxptmri.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "rtxmi.tfm", vector = "tex-mi", skewchar=0x7F },
- { name = "txsy.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "rtxptmri.tfm", vector = "tex-it", skewchar = 0x7F },
+ { name = "rtxmi.tfm", vector = "tex-mi", skewchar = 0x7F },
+ { name = "txsy.tfm", vector = "tex-sy", skewchar = 0x30, parameters = true },
{ name = "txex.tfm", vector = "tex-ex", extension = true },
{ name = "txsya.tfm", vector = "tex-ma" },
{ name = "txsyb.tfm", vector = "tex-mb" },
- { name = "texgyretermes-bold.otf", vector = "tex-bf", skewchar=0x7F },
+ { name = "texgyretermes-bold.otf", vector = "tex-bf", skewchar = 0x7F },
{ name = "texgyretermes-bolditalic.otf", vector = "tex-bi" },
{ name = "lmsans10-regular.otf", vector = "tex-ss", optional=true },
{ name = "lmmono10-regular.otf", vector = "tex-tt", optional=true },
diff --git a/tex/context/fonts/mkiv/type-imp-concrete.mkiv b/tex/context/fonts/mkiv/type-imp-concrete.mkiv
new file mode 100644
index 000000000..72b0141a5
--- /dev/null
+++ b/tex/context/fonts/mkiv/type-imp-concrete.mkiv
@@ -0,0 +1,51 @@
+%\loadtypescriptfile[texgyre]
+%\resetfontfallback [concrete-euler-fix]
+%\definefontfallback[concrete-euler-fix][texgyrepagella-math] [0x022EE,0x022F0,0x022F1,0x02661,0x02220][force=yes]
+
+
+\starttypescriptcollection[concrete]
+
+ %\definefontfeature[default-slanted-concrete][default][slant=.2]
+ %\definefontfeature[none-slanted-concrete] [none] [slant=.2]
+
+ \starttypescript [\s!serif] [concrete-serif]
+ \definefontsynonym [\s!Serif] [\s!file:cmunorm] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifItalic] [\s!file:cmunoti] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifSlanted] [\s!file:cmunorm] [\s!features=default-slanted-concrete]
+ \definefontsynonym [\s!SerifBold] [\s!file:cmunobx] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:cmunobi] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldSlanted][\s!file:cmunobx] [\s!features=default-slanted-concrete]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [concrete-sans]
+ \definefontsynonym [\s!Sans] [\s!file:cmunss] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:cmunsi] [\s!features=\s!default]
+ \definefontsynonym [\s!SansSlanted] [\s!file:cmunss] [\s!features=default-slanted-concrete]
+ \definefontsynonym [\s!SansBold] [\s!file:cmunsx] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:cmunso] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldSlanted] [\s!file:cmunsx] [\s!features=default-slanted-concrete]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [concrete-mono]
+ \definefontsynonym [\s!Mono] [\s!file:cmuntt] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoItalic] [\s!file:cmunit] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoSlanted] [\s!file:cmunst] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold] [\s!file:cmuntb] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:cmuntx] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBoldSlanted] [\s!file:cmuntb] [\s!features=none-slanted-concrete]
+ \stoptypescript
+
+ \starttypescript [\s!math] [concrete-math] [\s!name]
+ \loadfontgoodies[concrete-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=concrete-math]
+ \stoptypescript
+
+ \starttypescript [concrete]
+ \definetypeface [concrete] [\s!rm] [\s!serif] [concrete-serif] [\s!default]
+ \definetypeface [concrete] [\s!ss] [\s!sans] [concrete-sans] [\s!default]
+ \definetypeface [concrete] [\s!tt] [\s!mono] [concrete-mono] [\s!default]
+ \definetypeface [concrete] [\s!mm] [\s!math] [concrete-math] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/fonts/mkiv/type-imp-erewhon.mkiv b/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
new file mode 100644
index 000000000..b8efcd7f9
--- /dev/null
+++ b/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
@@ -0,0 +1,45 @@
+%\loadtypescriptfile[texgyre]
+%\resetfontfallback [erewhon-euler-fix]
+%\definefontfallback[erewhon-euler-fix][texgyrepagella-math] [0x022EE,0x022F0,0x022F1,0x02661,0x02220][force=yes]
+
+
+\starttypescriptcollection[erewhon]
+
+ %\definefontfeature[default-slanted-erewhon][default][slant=.2]
+ %\definefontfeature[none-slanted-erewhon] [none] [slant=.2]
+
+ \starttypescript [\s!serif] [erewhon-serif]
+ \definefontsynonym [\s!Serif] [\s!file:Erewhon-Regular] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifItalic] [\s!file:Erewhon-Italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifSlanted] [\s!file:Erewhon-RegularSlanted] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBold] [\s!file:Erewhon-Bold] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:Erewhon-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldSlanted][\s!file:Erewhon-BoldSlanted] [\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [cabin-sans]
+ \definefontsynonym [\s!Sans] [\s!file:Cabin-Regular] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:Cabin-Italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBold] [\s!file:Cabin-SemiBold] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:Cabin-SemiBoldItalic] [\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [inconsolata-mono]
+ \definefontsynonym [\s!Mono] [\s!file:Inconsolatazi4-Regular] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold] [\s!file:Inconsolatazi4-Bold] [\s!features=\s!none]
+ \stoptypescript
+
+ \starttypescript [\s!math] [erewhon-math] [\s!name]
+ \loadfontgoodies[erewhon-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:Erewhon-Math.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=erewhon-math]
+ \stoptypescript
+
+ \starttypescript [erewhon]
+ \definetypeface [erewhon] [\s!rm] [\s!serif] [erewhon-serif] [\s!default]
+ \definetypeface [erewhon] [\s!ss] [\s!sans] [cabin-sans] [\s!default]
+ \definetypeface [erewhon] [\s!tt] [\s!mono] [inconsolata-mono] [\s!default] [\s!rscale=1.1]
+ \definetypeface [erewhon] [\s!mm] [\s!math] [erewhon-math] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/fonts/mkiv/type-imp-libertinus.mkiv b/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
index 00b2a6abd..38804cf79 100644
--- a/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
@@ -72,6 +72,7 @@
\stoptypescript
\starttypescript [\s!math] [libertinus] [\s!name]
+ \loadfontgoodies[libertinus-math]
\definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=libertinus-math.lfg]
\definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=libertinus-math.lfg]
\stoptypescript
diff --git a/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv b/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
index e3417fca5..2494d1af2 100644
--- a/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
@@ -54,8 +54,8 @@
\starttypescript [\s!math] [modern-latin]
\loadfontgoodies[lm]
- \definefontsynonym [MathRoman] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,oldmath,lm-math-regular,mathextra},\s!goodies=lm]
- \definefontsynonym [MathRomanBold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,oldmath,lm-math-bold,mathextra},\s!goodies=lm]
+ \definefontsynonym [MathRoman] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,lm-math-regular,mathextra},\s!goodies=lm]
+ \definefontsynonym [MathRomanBold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,lm-math-bold,mathextra},\s!goodies=lm]
\stoptypescript
\starttypescript [modern-latin,modernlatin]
diff --git a/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv b/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
index 1c9788a98..00b9cb964 100644
--- a/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
@@ -49,8 +49,8 @@
\starttypescript [\s!math][newcomputermodern] [\s!name]
% \loadfontgoodies[newcomputermodern-math] ,\s!goodies=newcomputermodern-math
- \definefontsynonym[\s!MathRoman] [\s!file:newcmmath-regular][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lm]
- \definefontsynonym[\s!MathRomanBold][\s!file:newcmmath-regular][\s!features={\s!math\mathsizesuffix,newcomputermodern-math-bold,mathextra}\s!goodies=lm]
+ \definefontsynonym[\s!MathRoman] [\s!file:newcmmath-regular][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=newcomputermodern-math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:newcmmath-regular][\s!features={\s!math\mathsizesuffix,newcomputermodern-math-bold,mathextra}\s!goodies=newcomputermodern-math]
\stoptypescript
\starttypescript [\s!serif] [newcomputermodern-book] [\s!name]
diff --git a/tex/context/fonts/mkiv/xits-math.lfg b/tex/context/fonts/mkiv/xits-math.lfg
index d85e4b1b6..42a7052b9 100644
--- a/tex/context/fonts/mkiv/xits-math.lfg
+++ b/tex/context/fonts/mkiv/xits-math.lfg
@@ -38,6 +38,12 @@ return {
{
tweak = "addscripts",
},
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
},
},
alternates = {
diff --git a/tex/context/fonts/mkxl/bhai.lfg b/tex/context/fonts/mkxl/bhai.lfg
new file mode 100644
index 000000000..ab309e0b8
--- /dev/null
+++ b/tex/context/fonts/mkxl/bhai.lfg
@@ -0,0 +1,74 @@
+return {
+ name = "bhai",
+ version = "1.00",
+ comment = "Goodies that complement shobhika.",
+ author = "Hans Hagen & Sreeram",
+ copyright = "ConTeXt development team",
+ sanitizers = {
+ gjr2rkrf = {
+ mapping = {
+ ["કે્ર"] = "ક્રે",
+ ["કૈ્ર"] = "ક્રૈ",
+ ["ખે્ર"] = "ખ્રે",
+ ["ખૈ્ર"] = "ખ્રૈ",
+ ["ગે્ર"] = "ગ્રે",
+ ["ગૈ્ર"] = "ગ્રૈ",
+ ["ઘે્ર"] = "ઘ્રે",
+ ["ઘૈ્ર"] = "ઘ્રૈ",
+ -- not required: placeholder
+ -- ["ઙે્ર"] = "ઙ્રે",
+ -- ["ઙૈ્ર"] = "ઙ્રૈ",
+ ["ચે્ર"] = "ચ્રે",
+ ["ચૈ્ર"] = "ચ્રૈ",
+ ["છે્ર"] = "છ્રે",
+ ["છૈ્ર"] = "છ્રૈ",
+ ["જે્ર"] = "જ્રે",
+ ["જૈ્ર"] = "જ્રૈ",
+ ["ઝે્ર"] = "ઝ્રે",
+ ["ઝૈ્ર"] = "ઝ્રૈ",
+ ["ઞે્ર"] = "ઞ્રે",
+ ["ઞૈ્ર"] = "ઞ્રૈ",
+ ["ણે્ર"] = "ણ્રે",
+ ["ણૈ્ર"] = "ણ્રૈ",
+ ["તે્ર"] = "ત્રે",
+ ["તૈ્ર"] = "ત્રૈ",
+ ["થે્ર"] = "થ્રે",
+ ["થૈ્ર"] = "થ્રૈ",
+ ["દે્ર"] = "દ્રે",
+ ["દૈ્ર"] = "દ્રૈ",
+ ["ધે્ર"] = "ધ્રે",
+ ["ધૈ્ર"] = "ધ્રૈ",
+ ["ને્ર"] = "ન્રે",
+ ["નૈ્ર"] = "ન્રૈ",
+ ["પે્ર"] = "પ્રે",
+ ["પૈ્ર"] = "પ્રૈ",
+ ["ફે્ર"] = "ફ્રે",
+ ["ફૈ્ર"] = "ફ્રૈ",
+ ["બે્ર"] = "બ્રે",
+ ["બૈ્ર"] = "બ્રૈ",
+ ["ભે્ર"] = "ભ્રે",
+ ["ભૈ્ર"] = "ભ્રૈ",
+ ["મે્ર"] = "મ્રે",
+ ["મૈ્ર"] = "મ્રૈ",
+ ["યે્ર"] = "ય્રે",
+ ["યૈ્ર"] = "ય્રૈ",
+ -- some fonts might need this, some might not
+ -- ["લે્ર"] = "લ્રે",
+ -- ["લૈ્ર"] = "લ્રૈ",
+ ["વે્ર"] = "વ્રે",
+ ["વૈ્ર"] = "વ્રૈ",
+ ["સે્ર"] = "સ્રે",
+ ["સૈ્ર"] = "સ્રૈ",
+ ["શે્ર"] = "શ્રે",
+ ["શૈ્ર"] = "શ્રૈ",
+ ["ષે્ર"] = "ષ્રે",
+ ["ષૈ્ર"] = "ષ્રૈ",
+ ["હે્ર"] = "હ્રે",
+ ["હૈ્ર"] = "હ્રૈ",
+ -- some fonts might need this, some might not
+ -- ["ળે્ર"] = "ળ્રે",
+ -- ["ળૈ્ર"] = "ળ્રૈ",
+ }
+ }
+ }
+}
diff --git a/tex/context/fonts/mkxl/shobhika.lfg b/tex/context/fonts/mkxl/shobhika.lfg
new file mode 100644
index 000000000..f9b7dc433
--- /dev/null
+++ b/tex/context/fonts/mkxl/shobhika.lfg
@@ -0,0 +1,74 @@
+return {
+ name = "shobhika",
+ version = "1.00",
+ comment = "Goodies that complement shobhika.",
+ author = "Hans Hagen & Sreeram",
+ copyright = "ConTeXt development team",
+ sanitizers = {
+ dev2rkrf = {
+ mapping = {
+ ["के्र"] = "क्रे",
+ ["कै्र"] = "क्रै",
+ ["खे्र"] = "ख्रे",
+ ["खै्र"] = "ख्रै",
+ ["गे्र"] = "ग्रे",
+ ["गै्र"] = "ग्रै",
+ ["घे्र"] = "घ्रे",
+ ["घै्र"] = "घ्रै",
+ -- not required: placeholder
+ -- ["ङे्र"] = "ङ्रे",
+ -- ["ङै्र"] = "ङ्रै",
+ ["चे्र"] = "च्रे",
+ ["चै्र"] = "च्रै",
+ ["छे्र"] = "छ्रे",
+ ["छै्र"] = "छ्रै",
+ ["जे्र"] = "ज्रे",
+ ["जै्र"] = "ज्रै",
+ ["झे्र"] = "झ्रे",
+ ["झै्र"] = "झ्रै",
+ ["ञे्र"] = "ञ्रे",
+ ["ञै्र"] = "ञ्रै",
+ ["णे्र"] = "ण्रे",
+ ["णै्र"] = "ण्रै",
+ ["ते्र"] = "त्रे",
+ ["तै्र"] = "त्रै",
+ ["थे्र"] = "थ्रे",
+ ["थै्र"] = "थ्रै",
+ ["दे्र"] = "द्रे",
+ ["दै्र"] = "द्रै",
+ ["धे्र"] = "ध्रे",
+ ["धै्र"] = "ध्रै",
+ ["ने्र"] = "न्रे",
+ ["नै्र"] = "न्रै",
+ ["पे्र"] = "प्रे",
+ ["पै्र"] = "प्रै",
+ ["फे्र"] = "फ्रे",
+ ["फै्र"] = "फ्रै",
+ ["बे्र"] = "ब्रे",
+ ["बै्र"] = "ब्रै",
+ ["भे्र"] = "भ्रे",
+ ["भै्र"] = "भ्रै",
+ ["मे्र"] = "म्रे",
+ ["मै्र"] = "म्रै",
+ ["ये्र"] = "य्रे",
+ ["यै्र"] = "य्रै",
+ -- some fonts might need this, some might not
+ -- ["ले्र"] = "ल्रे",
+ -- ["लै्र"] = "ल्रै",
+ ["वे्र"] = "व्रे",
+ ["वै्र"] = "व्रै",
+ ["से्र"] = "स्रे",
+ ["सै्र"] = "स्रै",
+ ["शे्र"] = "श्रे",
+ ["शै्र"] = "श्रै",
+ ["षे्र"] = "ष्रे",
+ ["षै्र"] = "ष्रै",
+ ["हे्र"] = "ह्रे",
+ ["है्र"] = "ह्रै",
+ -- some fonts might need this, some might not
+ -- ["ळे्र"] = "ळ्रे",
+ -- ["ळै्र"] = "ळ्रै",
+ }
+ }
+ }
+}
diff --git a/tex/context/interface/mkii/keys-cs.xml b/tex/context/interface/mkii/keys-cs.xml
index 7cd92518b..798a94760 100644
--- a/tex/context/interface/mkii/keys-cs.xml
+++ b/tex/context/interface/mkii/keys-cs.xml
@@ -284,7 +284,6 @@
<cd:variable name='inright' value='ivpravo'/>
<cd:variable name='inrightedge' value='napravo'/>
<cd:variable name='inrightmargin' value='napravyokraj'/>
- <cd:variable name='integral' value='integral'/>
<cd:variable name='interaction' value='interakce'/>
<cd:variable name='interactionmenu' value='interaktivnimenu'/>
<cd:variable name='interactive' value='interactive'/>
@@ -722,6 +721,7 @@
<cd:constant name='bottom' value='spodek'/>
<cd:constant name='bottomafter' value='bottomafter'/>
<cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomcolor' value='bottomcolor'/>
<cd:constant name='bottomcommand' value='bottomcommand'/>
<cd:constant name='bottomdistance' value='vzdalenostspodku'/>
<cd:constant name='bottomframe' value='ramecekdole'/>
@@ -893,6 +893,7 @@
<cd:constant name='header' value='zahlavi'/>
<cd:constant name='headerdistance' value='vzdalenostzahlavi'/>
<cd:constant name='headerstate' value='statuszahlavi'/>
+ <cd:constant name='headindenting' value='headindenting'/>
<cd:constant name='headlabel' value='popisekhlavicky'/>
<cd:constant name='headnumber' value='cislonadpisu'/>
<cd:constant name='headseparator' value='headseparator'/>
@@ -924,6 +925,7 @@
<cd:constant name='inputfile' value='inputfile'/>
<cd:constant name='insidesection' value='insidesection'/>
<cd:constant name='instance' value='instance'/>
+ <cd:constant name='integral' value='integral'/>
<cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='interakce'/>
<cd:constant name='interlinespace' value='meziradkovamezera'/>
@@ -966,6 +968,7 @@
<cd:constant name='leftquote' value='citovatvlevo'/>
<cd:constant name='leftsample' value='leftsample'/>
<cd:constant name='leftsentence' value='vetavlevo'/>
+ <cd:constant name='leftsource' value='leftsource'/>
<cd:constant name='leftspeech' value='leftspeech'/>
<cd:constant name='leftstyle' value='stylvlevo'/>
<cd:constant name='leftsubsentence' value='podvetavlevo'/>
@@ -998,7 +1001,9 @@
<cd:constant name='marstyle' value='stylsnacky'/>
<cd:constant name='mask' value='mask'/>
<cd:constant name='mathclass' value='mathclass'/>
+ <cd:constant name='mathdenominatorstyle' value='mathdenominatorstyle'/>
<cd:constant name='mathlimits' value='mathlimits'/>
+ <cd:constant name='mathnumeratorstyle' value='mathnumeratorstyle'/>
<cd:constant name='mathstyle' value='mathstyle'/>
<cd:constant name='max' value='max'/>
<cd:constant name='maxdepth' value='maxdepth'/>
@@ -1010,6 +1015,7 @@
<cd:constant name='middle' value='stredni'/>
<cd:constant name='middlecolor' value='middlecolor'/>
<cd:constant name='middlecommand' value='middlecommand'/>
+ <cd:constant name='middlesource' value='middlesource'/>
<cd:constant name='middlespeech' value='middlespeech'/>
<cd:constant name='middlestyle' value='middlestyle'/>
<cd:constant name='middletext' value='strednitext'/>
@@ -1182,6 +1188,7 @@
<cd:constant name='rightquote' value='citovatvpravo'/>
<cd:constant name='rightsample' value='rightsample'/>
<cd:constant name='rightsentence' value='vetavpravo'/>
+ <cd:constant name='rightsource' value='rightsource'/>
<cd:constant name='rightspeech' value='rightspeech'/>
<cd:constant name='rightstyle' value='stylvpravo'/>
<cd:constant name='rightsubsentence' value='podvetavpravo'/>
@@ -1317,6 +1324,7 @@
<cd:constant name='toffset' value='toffset'/>
<cd:constant name='tolerance' value='tolerance'/>
<cd:constant name='top' value='vrsek'/>
+ <cd:constant name='topcolor' value='topcolor'/>
<cd:constant name='topcommand' value='topcommand'/>
<cd:constant name='topdistance' value='vzdalenostvrsku'/>
<cd:constant name='topframe' value='rameceknahore'/>
diff --git a/tex/context/interface/mkii/keys-fr.xml b/tex/context/interface/mkii/keys-fr.xml
index 9dd507c6a..0cc90a6a0 100644
--- a/tex/context/interface/mkii/keys-fr.xml
+++ b/tex/context/interface/mkii/keys-fr.xml
@@ -284,7 +284,6 @@
<cd:variable name='inright' value='dansdroite'/>
<cd:variable name='inrightedge' value='dansborddroit'/>
<cd:variable name='inrightmargin' value='dansmargedroite'/>
- <cd:variable name='integral' value='integrale'/>
<cd:variable name='interaction' value='interaction'/>
<cd:variable name='interactionmenu' value='menuinteraction'/>
<cd:variable name='interactive' value='interactif'/>
@@ -303,6 +302,7 @@
<cd:variable name='july' value='juillet'/>
<cd:variable name='june' value='juin'/>
<cd:variable name='keep' value='conserver'/>
+ <cd:variable name='keeptogether' value='conserverensemble'/>
<cd:variable name='kerncharacters' value='approchercaracteres'/>
<cd:variable name='knockout' value='knockout'/>
<cd:variable name='label' value='etiquette'/>
@@ -318,6 +318,7 @@
<cd:variable name='lefthanging' value='suspensiongauche'/>
<cd:variable name='leftmargin' value='margegauche'/>
<cd:variable name='leftpage' value='surpagegauche'/>
+ <cd:variable name='lefttext' value='textegauche'/>
<cd:variable name='lefttoright' value='gaucheadroite'/>
<cd:variable name='legend' value='legende'/>
<cd:variable name='less' value='moins'/>
@@ -479,6 +480,7 @@
<cd:variable name='righthanging' value='suspensiondroite'/>
<cd:variable name='rightmargin' value='margedroite'/>
<cd:variable name='rightpage' value='surpagedroite'/>
+ <cd:variable name='righttext' value='textedroite'/>
<cd:variable name='righttoleft' value='droiteagauche'/>
<cd:variable name='roman' value='romain'/>
<cd:variable name='romannumerals' value='chiffresromains'/>
@@ -719,6 +721,7 @@
<cd:constant name='bottom' value='bas'/>
<cd:constant name='bottomafter' value='basaprès'/>
<cd:constant name='bottombefore' value='basavant'/>
+ <cd:constant name='bottomcolor' value='bottomcolor'/>
<cd:constant name='bottomcommand' value='commandebas'/>
<cd:constant name='bottomdistance' value='distancebas'/>
<cd:constant name='bottomframe' value='cadrebas'/>
@@ -890,6 +893,7 @@
<cd:constant name='header' value='entête'/>
<cd:constant name='headerdistance' value='distanceentête'/>
<cd:constant name='headerstate' value='etatentête'/>
+ <cd:constant name='headindenting' value='headindenting'/>
<cd:constant name='headlabel' value='etiquettetete'/>
<cd:constant name='headnumber' value='numerotete'/>
<cd:constant name='headseparator' value='separateurtete'/>
@@ -921,6 +925,7 @@
<cd:constant name='inputfile' value='fichierentree'/>
<cd:constant name='insidesection' value='auseinsection'/>
<cd:constant name='instance' value='instance'/>
+ <cd:constant name='integral' value='integrale'/>
<cd:constant name='intent' value='intention'/>
<cd:constant name='interaction' value='interaction'/>
<cd:constant name='interlinespace' value='espaceinterligne'/>
@@ -963,6 +968,7 @@
<cd:constant name='leftquote' value='citergauche'/>
<cd:constant name='leftsample' value='echantillongauche'/>
<cd:constant name='leftsentence' value='phrasegauche'/>
+ <cd:constant name='leftsource' value='leftsource'/>
<cd:constant name='leftspeech' value='discoursgauche'/>
<cd:constant name='leftstyle' value='stylegauche'/>
<cd:constant name='leftsubsentence' value='sousphrasegauche'/>
@@ -995,7 +1001,9 @@
<cd:constant name='marstyle' value='stylerem'/>
<cd:constant name='mask' value='masque'/>
<cd:constant name='mathclass' value='classemath'/>
+ <cd:constant name='mathdenominatorstyle' value='mathdenominatorstyle'/>
<cd:constant name='mathlimits' value='limitesmath'/>
+ <cd:constant name='mathnumeratorstyle' value='mathnumeratorstyle'/>
<cd:constant name='mathstyle' value='stylemath'/>
<cd:constant name='max' value='max'/>
<cd:constant name='maxdepth' value='profondeurmax'/>
@@ -1007,6 +1015,7 @@
<cd:constant name='middle' value='milieu'/>
<cd:constant name='middlecolor' value='couleurmilieu'/>
<cd:constant name='middlecommand' value='commandemilieu'/>
+ <cd:constant name='middlesource' value='middlesource'/>
<cd:constant name='middlespeech' value='discoursmilieu'/>
<cd:constant name='middlestyle' value='stylemilieu'/>
<cd:constant name='middletext' value='textemilieu'/>
@@ -1179,6 +1188,7 @@
<cd:constant name='rightquote' value='citerdroite'/>
<cd:constant name='rightsample' value='echantillondroite'/>
<cd:constant name='rightsentence' value='phrasedroite'/>
+ <cd:constant name='rightsource' value='rightsource'/>
<cd:constant name='rightspeech' value='discoursdroite'/>
<cd:constant name='rightstyle' value='styledroit'/>
<cd:constant name='rightsubsentence' value='sousphrasedroite'/>
@@ -1284,8 +1294,10 @@
<cd:constant name='synonymcommand' value='commandesynonyme'/>
<cd:constant name='synonymstyle' value='stylesynonyme'/>
<cd:constant name='tab' value='tab'/>
+ <cd:constant name='target' value='target'/>
<cd:constant name='text' value='texte'/>
<cd:constant name='textalign' value='alignertexte'/>
+ <cd:constant name='textalternative' value='textalternative'/>
<cd:constant name='textcolor' value='couleurtexte'/>
<cd:constant name='textcommand' value='commandetexte'/>
<cd:constant name='textdistance' value='distancetexte'/>
@@ -1312,6 +1324,7 @@
<cd:constant name='toffset' value='decalaget'/>
<cd:constant name='tolerance' value='tolerance'/>
<cd:constant name='top' value='haut'/>
+ <cd:constant name='topcolor' value='topcolor'/>
<cd:constant name='topcommand' value='commandehaut'/>
<cd:constant name='topdistance' value='distancehaut'/>
<cd:constant name='topframe' value='cadrehaut'/>
diff --git a/tex/context/interface/mkii/keys-pe.xml b/tex/context/interface/mkii/keys-pe.xml
index 70fc55c34..dcda83b79 100644
--- a/tex/context/interface/mkii/keys-pe.xml
+++ b/tex/context/interface/mkii/keys-pe.xml
@@ -284,7 +284,6 @@
<cd:variable name='inright' value='درون‌راست'/>
<cd:variable name='inrightedge' value='درلبه‌راست'/>
<cd:variable name='inrightmargin' value='درحاشیه‌راست'/>
- <cd:variable name='integral' value='integral'/>
<cd:variable name='interaction' value='پانل'/>
<cd:variable name='interactionmenu' value='منوی‌پانل'/>
<cd:variable name='interactive' value='interactive'/>
@@ -303,6 +302,7 @@
<cd:variable name='july' value='ژولای'/>
<cd:variable name='june' value='ژوئن'/>
<cd:variable name='keep' value='نگهدار'/>
+ <cd:variable name='keeptogether' value='keeptogether'/>
<cd:variable name='kerncharacters' value='kerncharacters'/>
<cd:variable name='knockout' value='knockout'/>
<cd:variable name='label' value='برچسب'/>
@@ -721,6 +721,7 @@
<cd:constant name='bottom' value='پایین'/>
<cd:constant name='bottomafter' value='bottomafter'/>
<cd:constant name='bottombefore' value='bottombefore'/>
+ <cd:constant name='bottomcolor' value='bottomcolor'/>
<cd:constant name='bottomcommand' value='bottomcommand'/>
<cd:constant name='bottomdistance' value='فاصله‌پایین'/>
<cd:constant name='bottomframe' value='قالب‌پایین'/>
@@ -892,6 +893,7 @@
<cd:constant name='header' value='سربرگ'/>
<cd:constant name='headerdistance' value='فاصله‌سربرگ'/>
<cd:constant name='headerstate' value='وضعیت‌سربرگ'/>
+ <cd:constant name='headindenting' value='headindenting'/>
<cd:constant name='headlabel' value='برچسب‌سر'/>
<cd:constant name='headnumber' value='شماره‌سر'/>
<cd:constant name='headseparator' value='headseparator'/>
@@ -923,6 +925,7 @@
<cd:constant name='inputfile' value='پرونده‌ورودی'/>
<cd:constant name='insidesection' value='insidesection'/>
<cd:constant name='instance' value='instance'/>
+ <cd:constant name='integral' value='integral'/>
<cd:constant name='intent' value='intent'/>
<cd:constant name='interaction' value='پانل'/>
<cd:constant name='interlinespace' value='فضای‌بین‌خط'/>
@@ -965,6 +968,7 @@
<cd:constant name='leftquote' value='نقل‌چپ'/>
<cd:constant name='leftsample' value='leftsample'/>
<cd:constant name='leftsentence' value='جمله‌چپ'/>
+ <cd:constant name='leftsource' value='leftsource'/>
<cd:constant name='leftspeech' value='سخنرانی‌چپ'/>
<cd:constant name='leftstyle' value='سبک‌چپ'/>
<cd:constant name='leftsubsentence' value='زیرجمله‌چپ'/>
@@ -997,7 +1001,9 @@
<cd:constant name='marstyle' value='سبک‌حاش'/>
<cd:constant name='mask' value='mask'/>
<cd:constant name='mathclass' value='mathclass'/>
+ <cd:constant name='mathdenominatorstyle' value='mathdenominatorstyle'/>
<cd:constant name='mathlimits' value='mathlimits'/>
+ <cd:constant name='mathnumeratorstyle' value='mathnumeratorstyle'/>
<cd:constant name='mathstyle' value='mathstyle'/>
<cd:constant name='max' value='بیشترین'/>
<cd:constant name='maxdepth' value='maxdepth'/>
@@ -1009,6 +1015,7 @@
<cd:constant name='middle' value='میان'/>
<cd:constant name='middlecolor' value='middlecolor'/>
<cd:constant name='middlecommand' value='middlecommand'/>
+ <cd:constant name='middlesource' value='middlesource'/>
<cd:constant name='middlespeech' value='سخنرانی‌میانی'/>
<cd:constant name='middlestyle' value='middlestyle'/>
<cd:constant name='middletext' value='متن‌میانی'/>
@@ -1181,6 +1188,7 @@
<cd:constant name='rightquote' value='نقل‌راست'/>
<cd:constant name='rightsample' value='rightsample'/>
<cd:constant name='rightsentence' value='جمله‌راست'/>
+ <cd:constant name='rightsource' value='rightsource'/>
<cd:constant name='rightspeech' value='سخنرانی‌راست'/>
<cd:constant name='rightstyle' value='سبک‌راست'/>
<cd:constant name='rightsubsentence' value='زیرجمله‌راست'/>
@@ -1235,7 +1243,7 @@
<cd:constant name='solution' value='solution'/>
<cd:constant name='sort' value='sort'/>
<cd:constant name='sorttype' value='ترتیب‌تایپ'/>
- <cd:constant name='source' value='منبع'/>
+ <cd:constant name='source' value='source'/>
<cd:constant name='space' value='فضا'/>
<cd:constant name='spaceafter' value='فضا‌بعداز'/>
<cd:constant name='spaceafterside' value='spaceafterside'/>
@@ -1286,6 +1294,7 @@
<cd:constant name='synonymcommand' value='synonymcommand'/>
<cd:constant name='synonymstyle' value='سبک‌مترادف'/>
<cd:constant name='tab' value='تب'/>
+ <cd:constant name='target' value='target'/>
<cd:constant name='text' value='متن'/>
<cd:constant name='textalign' value='textalign'/>
<cd:constant name='textalternative' value='textalternative'/>
@@ -1315,6 +1324,7 @@
<cd:constant name='toffset' value='toffset'/>
<cd:constant name='tolerance' value='بردباری'/>
<cd:constant name='top' value='بالا'/>
+ <cd:constant name='topcolor' value='topcolor'/>
<cd:constant name='topcommand' value='topcommand'/>
<cd:constant name='topdistance' value='فاصله‌بالا'/>
<cd:constant name='topframe' value='قالب‌راست'/>
diff --git a/tex/context/modules/mkiv/m-zint.mkiv b/tex/context/modules/mkiv/m-zint.mkiv
index 7fe9f761c..87e0d382c 100644
--- a/tex/context/modules/mkiv/m-zint.mkiv
+++ b/tex/context/modules/mkiv/m-zint.mkiv
@@ -68,9 +68,12 @@ function moduledata.zint.generate(code,data,suffix,options)
if not lfs.isfile(name) then
local temp = file.addsuffix(base,"tmp")
local code = numberofcode(code)
- logs.simple("using 'zint' to generate '%s'",base)
io.savedata(temp,data)
- os.execute(format('%s --barcode=%s --output="%s" --input="%s" %s',zint,code,name,temp,options or ""))
+ local command = format('%s --barcode=%s %s --output="%s" --input="%s"',zint,code,options or "",name,temp)
+ logs.simple("using 'zint' to generate '%s'",base)
+ logs.simple("command '%s'",command)
+ print(command)
+ os.execute(command)
os.remove(temp)
end
return name
@@ -83,10 +86,10 @@ end
\unexpanded\def\barcode[#1]% [alternative=,text=]
{\bgroup
\getdummyparameters
- [\c!alternative=,\c!text=,#1]%
+ [\c!alternative=,\c!text=,\c!suffix=eps,\c!option=,#1]%
\externalfigure
- [\cldcontext{moduledata.zint.generate("\dummyparameter\c!alternative",\!!bs\dummyparameter\c!text\!!es)}]%
- [#1,\c!alternative=,\c!text=]%
+ [\cldcontext{moduledata.zint.generate("\dummyparameter\c!alternative",\!!bs\dummyparameter\c!text\!!es,"\dummyparameter\c!suffix","\dummyparameter\c!option")}]%
+ [#1,\c!option=,\c!alternative=,\c!text=]%
\egroup}
\protect
@@ -95,15 +98,17 @@ end
\starttext
- \externalfigure[\cldcontext{moduledata.zint.generate("PDF417",[[Hans Hagen]])}]
- \blank
- \externalfigure[\cldcontext{moduledata.zint.generate("PDF417","Ton Otten")}]
- \blank
- \externalfigure[\cldcontext{moduledata.zint.generate("ISBN","9789490688011")}]
- \blank
- \barcode[text=Does It Work?,width=\textwidth]
- \blank
- \barcode[alternative=isbn,text=9789490688011,width=3cm]
+% \externalfigure[\cldcontext{moduledata.zint.generate("PDF417",[[Hans Hagen]])}]
+% \blank
+% \externalfigure[\cldcontext{moduledata.zint.generate("PDF417","Ton Otten")}]
+% \blank
+% \externalfigure[\cldcontext{moduledata.zint.generate("ISBN","9789490688011")}]
+% \blank
+% \barcode[text=Does It Work?,width=\textwidth]
+% \blank
+% \barcode[alternative=isbn,text=9789490688011,width=3cm]
+% \blank
+ \barcode[alternative=datamatrix,text=whatever,width=3cm,option=--square]
\stoptext
diff --git a/tex/context/modules/mkiv/s-math-characters.lua b/tex/context/modules/mkiv/s-math-characters.lua
index fc697cae5..aed3258d2 100644
--- a/tex/context/modules/mkiv/s-math-characters.lua
+++ b/tex/context/modules/mkiv/s-math-characters.lua
@@ -157,8 +157,8 @@ local alllookups = collectalllookups(tfmdata,"math","dflt")
-- skip
else
local next_sizes = char.next
- local vvariants = char.vvariants or char.vert_variants
- local hvariants = char.hvariants or char.horiz_variants
+ local vparts = char.vparts or char.vert_variants
+ local hparts = char.hparts or char.horiz_variants
local mathclass = info.mathclass
local mathspec = info.mathspec
local mathsymbol = info.mathsymbol
@@ -208,32 +208,33 @@ local alllookups = collectalllookups(tfmdata,"math","dflt")
done[next_sizes] = true
context.showmathcharactersnextentry(n,f_unicode(next_sizes),next_sizes)
next_sizes = characters[next_sizes]
- vvariants = next_sizes.vvariants or next_sizes.vert_variants or vvariants
- hvariants = next_sizes.hvariants or next_sizes.horiz_variants or hvariants
+ vparts = next_sizes.vparts or next_sizes.vert_variants or vparts
+ hparts = next_sizes.hparts or next_sizes.horiz_variants or hparts
if next_sizes then
next_sizes = next_sizes.next
end
end
end
context.showmathcharactersstopnext()
- if hvariants or vvariants then
+ if vparts or hparts then
context.showmathcharactersbetweennextandvariants()
end
end
- if hvariants then
- context.showmathcharactersstarthvariants()
- for i=1,#hvariants do -- we might go top-down in the original
- local vi = hvariants[i]
- context.showmathcharactershvariantsentry(i,f_unicode(vi.glyph),vi.glyph)
+ if vparts then
+ context.showmathcharactersstartvparts()
+ for i=1,#vparts do -- we might go top-down in the original
+ local vi = vparts[i]
+ context.showmathcharactersvpartsentry(i,f_unicode(vi.glyph),vi.glyph)
end
- context.showmathcharactersstophvariants()
- elseif vvariants then
- context.showmathcharactersstartvvariants()
- for i=1,#vvariants do
- local vi = vvariants[#vvariants-i+1]
- context.showmathcharactersvvariantsentry(i,f_unicode(vi.glyph),vi.glyph)
+ context.showmathcharactersstopvparts()
+ end
+ if hparts then
+ context.showmathcharactersstarthparts()
+ for i=1,#hparts do
+ local hi = hparts[#hparts-i+1]
+ context.showmathcharactershpartsentry(i,f_unicode(hi.glyph),hi.glyph)
end
- context.showmathcharactersstopvvariants()
+ context.showmathcharactersstophparts()
end
local lookups = alllookups[unicode]
if lookups then
diff --git a/tex/context/modules/mkiv/s-math-characters.mkiv b/tex/context/modules/mkiv/s-math-characters.mkiv
index e5e0d084f..c9011fbe1 100644
--- a/tex/context/modules/mkiv/s-math-characters.mkiv
+++ b/tex/context/modules/mkiv/s-math-characters.mkiv
@@ -20,33 +20,33 @@
\startsetups s-math-characters:reset
- \let\showmathcharactersstart \relax
- \let\showmathcharactersstop \relax
- \let\showmathcharactersreference \gobbleoneargument
- \let\showmathcharactersstartentry \relax
- \let\showmathcharactersstopentry \relax
- \let\showmathcharactersentryhexdectit \gobblethreearguments
- \let\showmathcharactersentrywdhtdpic \gobblefourarguments
- \let\showmathcharactersentryresource \gobbleoneargument
- \let\showmathcharactersstartnext \relax
- \let\showmathcharactersnextentry \gobblethreearguments
- \let\showmathcharactersnextcycle \gobbleonearguments
- \let\showmathcharactersstopnext \relax
- \let\showmathcharactersstarthvariants \relax
- \let\showmathcharactershvariantsentry \gobblethreearguments
- \let\showmathcharactersstophvariants \relax
- \let\showmathcharactersstartvvariants \showmathcharactersstarthvariants
- \let\showmathcharactersvvariantsentry \showmathcharactershvariantsentry
- \let\showmathcharactersstopvvariants \showmathcharactersstophvariants
- \let\showmathcharactersbetweennextandvariants\relax
- \let\showmathcharactersstartentryclassspec \relax
- \let\showmathcharactersstopentryclassspec \relax
- \let\showmathcharactersentryclassname \gobbletwoarguments
- \let\showmathcharactersentrysymbol \gobbletwoarguments
- \let\showmathcharactersstartlookupvariants \relax
- \let\showmathcharacterslookupvariant \gobblefourarguments
- \let\showmathcharactersstoplookupvariants \relax
- \let\showmathcharacterssetrange \gobblethreearguments
+ \let\showmathcharactersstart \relax
+ \let\showmathcharactersstop \relax
+ \let\showmathcharactersreference \gobbleoneargument
+ \let\showmathcharactersstartentry \relax
+ \let\showmathcharactersstopentry \relax
+ \let\showmathcharactersentryhexdectit \gobblethreearguments
+ \let\showmathcharactersentrywdhtdpic \gobblefourarguments
+ \let\showmathcharactersentryresource \gobbleoneargument
+ \let\showmathcharactersstartnext \relax
+ \let\showmathcharactersnextentry \gobblethreearguments
+ \let\showmathcharactersnextcycle \gobbleonearguments
+ \let\showmathcharactersstopnext \relax
+ \let\showmathcharactersstarthparts \relax
+ \let\showmathcharactershpartsentry \gobblethreearguments
+ \let\showmathcharactersstophparts \relax
+ \let\showmathcharactersstartvparts \relax
+ \let\showmathcharactersvpartsentry \gobblethreearguments
+ \let\showmathcharactersstopvparts \relax
+ \let\showmathcharactersbetweennextandvparts\relax
+ \let\showmathcharactersstartentryclassspec \relax
+ \let\showmathcharactersstopentryclassspec \relax
+ \let\showmathcharactersentryclassname \gobbletwoarguments
+ \let\showmathcharactersentrysymbol \gobbletwoarguments
+ \let\showmathcharactersstartlookupvariants \relax
+ \let\showmathcharacterslookupvariant \gobblefourarguments
+ \let\showmathcharactersstoplookupvariants \relax
+ \let\showmathcharacterssetrange \gobblethreearguments
\stopsetups
@@ -70,7 +70,7 @@
{virtual:\space##1\par}
\def\showmathcharactersstartnext
- {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
+ {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth\relax
next:\space}
\def\showmathcharactersnextentry##1##2##3%
@@ -82,21 +82,25 @@
\def\showmathcharactersstopnext
{\par\endgroup}
- \def\showmathcharactersstarthvariants
- {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
- variants:\space}
+ \def\showmathcharactersstartparts
+ {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth\relax
+ parts:\space}
- \def\showmathcharactershvariantsentry##1##2##3%
+ \def\showmathcharacterspartsentry##1##2##3%
{\ifnum##1>\plusone \space=>\space\fi##2~\ruledhbox{\char##3}}
- \def\showmathcharactersstophvariants
+ \def\showmathcharactersstopparts
{\par\endgroup}
- \let\showmathcharactersstartvvariants\showmathcharactersstarthvariants
- \let\showmathcharactersvvariantsentry\showmathcharactershvariantsentry
- \let\showmathcharactersstopvvariants \showmathcharactersstophvariants
+ \let\showmathcharactersstartvparts\showmathcharactersstartparts
+ \let\showmathcharactersvpartsentry\showmathcharacterspartsentry
+ \let\showmathcharactersstopvparts \showmathcharactersstopparts
- \def\showmathcharactersbetweennextandvariants
+ \let\showmathcharactersstarthparts\showmathcharactersstartparts
+ \let\showmathcharactershpartsentry\showmathcharacterspartsentry
+ \let\showmathcharactersstophparts \showmathcharactersstopparts
+
+ \def\showmathcharactersbetweennextandparts
{}% \space=>\space}
\def\showmathcharactersentryclassname##1##2%
@@ -106,7 +110,7 @@
{mathsymbol:\space##1~\ruledhbox{\char##2}\par}
\def\showmathcharactersstartlookupvariants
- {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
+ {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth\relax
lookupvariants:\space}
\def\showmathcharacterslookupvariant##1##2##3##4%
diff --git a/tex/context/modules/mkiv/s-math-parameters.lua b/tex/context/modules/mkiv/s-math-parameters.lua
index 8e8c15a2d..73d5f4208 100644
--- a/tex/context/modules/mkiv/s-math-parameters.lua
+++ b/tex/context/modules/mkiv/s-math-parameters.lua
@@ -34,6 +34,28 @@ tables.parameters = {
"spaceafterscript", "connectoroverlapmin",
}
+if CONTEXTLMTXMODE > 0 then
+
+ tables.styleaxis = table.imerged ( tables.styleaxis, {
+ "frac", "rad",
+ } )
+
+ tables.parameters = table.imerged ( tables.parameters, {
+ "extrasupshift", "extrasubshift", "extrasuppreshift", "extrasubpreshift",
+ "extrasupspace", "extrasubspace", "extrasupprespace", "extrasubprespace",
+ -- "overlinevariant", "underlinevariant",
+ -- "overdelimitervariant", "underdelimitervariant",
+ -- "delimiterovervariant", "delimiterundervariant",
+ -- "hextensiblevariant", "vextensiblevariant",
+ -- "fractionvariant", "radicalvariant", "degreevariant",
+ -- "accentvariant", "topaccentvariant", "botaccentvariant", "overlayaccentvariant",
+ -- "numeratorvariant", "denominatorvariant",
+ -- "superscriptvariant", "subscriptvariant",
+ -- "stackvariant",
+ } )
+
+end
+
tables.styles = {
"display",
"text",
diff --git a/tex/context/modules/mkxl/m-svg.mkxl b/tex/context/modules/mkxl/m-svg.mkxl
new file mode 100644
index 000000000..56a101979
--- /dev/null
+++ b/tex/context/modules/mkxl/m-svg.mkxl
@@ -0,0 +1,39 @@
+%D \module
+%D [ file=m-svg,
+%D version=2022.02.18,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=SVG Helper Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\protected\def\showSVGcode#1#2%
+ {\ctxlua{metapost.showsvgpage{
+ filename = "#1",
+ index = tonumber(#2),
+ method = "code"
+ }}}
+
+\protected\def\showSVGcodeG#1#2%
+ {\ctxlua{metapost.showsvgpage{
+ filename = "#1",
+ index = tonumber(#2),
+ method = "code",
+ x = 0,
+ y = 1000,
+ width = 1000,
+ height = 1000,
+ noclip = true
+ }}}
+
+\protected\def\typeSVGcode#1#2%
+ {\ctxlua{metapost.typesvgpage{
+ filename = "#1",
+ index = tonumber(#2)
+ }}}
+
+% \continueifinputfile{m-svg.mkxl}
diff --git a/tex/context/modules/mkxl/s-math-atoms.mkxl b/tex/context/modules/mkxl/s-math-atoms.mkxl
new file mode 100644
index 000000000..1b5ebed41
--- /dev/null
+++ b/tex/context/modules/mkxl/s-math-atoms.mkxl
@@ -0,0 +1,104 @@
+%D \module
+%D [ file=s-math-atoms.mksl,
+%D version=2022.02.13,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Show Math Atom Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is just a quick and dirty overview.
+
+\startmodule[math-atoms]
+
+\setvalue{atom:\number\mathordinarycode }{ord}%inary}
+\setvalue{atom:\number\mathoperatorcode }{ope}%rator}
+\setvalue{atom:\number\mathbinarycode }{bin}%ary}
+\setvalue{atom:\number\mathrelationcode }{rel}%ation}
+\setvalue{atom:\number\mathopencode }{ope}%n}
+\setvalue{atom:\number\mathclosecode }{clo}%se}
+\setvalue{atom:\number\mathpunctuationcode }{pun}%ctuation}
+%setvalue{atom:\number\mathinnercode }{inn}%er}
+%setvalue{atom:\number\mathovercode }{ove}%r}
+%setvalue{atom:\number\mathundercode }{und}%er}
+\setvalue{atom:\number\mathfractioncode }{fra}%ction}
+\setvalue{atom:\number\mathradicalcode }{rad}%ical}
+\setvalue{atom:\number\mathmiddlecode }{mid}%dle}
+%setvalue{atom:\number\mathaccentcode }{acc}%ent}
+%setvalue{atom:\number\mathfencedcode }{fen}%ced}
+%setvalue{atom:\number\mathvariablecode }{var}%iable}
+%setvalue{atom:\number\mathactivecode }{act}%ive}
+%setvalue{atom:\number\mathvcentercode }{vce}%nter}
+%setvalue{atom:\number\mathreservedcode }{res}%erved}
+%setvalue{atom:\number\mathimaginarycode }{ima}%ginary}
+%setvalue{atom:\number\mathdifferentialcode}{dif}%ferential}
+%setvalue{atom:\number\mathexponentialcode }{exp}%onential}
+\setvalue{atom:\number\mathfunctioncode }{fun}%ction}
+\setvalue{atom:\number\mathdigitcode }{dig}%it}
+
+\dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {
+ \setmathatomrule \mathbegincode #1 \allmathstyles \mathbegincode #1
+ \setmathatomrule #1 \mathendcode \allmathstyles #1 \mathendcode
+ \dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {
+ \setmathatomrule#1 ##1 \allmathstyles #1 ##1
+ }
+}
+
+\protected\def\showmathatomspacing#1{
+ \startTEXpage[offset=10pt]
+ \showmakeup[mathglue]
+ \bTABLE[align=middle,width=4em]
+ \dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {%
+ \ifcsname atom:##1\endcsname
+ \bTR
+ \dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {%
+ \ifcsname atom:####1\endcsname
+ \bTD
+ $ #1%
+ \mathatom class ##1 {\hpack to 1.5em{\infofont[\hss\getvalue{atom:##1}\hss]}}
+ \mathatom class ####1 {\hpack to 1.5em{\infofont[\hss\getvalue{atom:####1}\hss]}}
+ $
+ \eTD
+ \fi
+ }
+ \eTR
+ \fi
+ }
+ \bTR[frame=off]
+ \bTD[nx=12,height=6ex,align={middle,lohi}]
+ \type{#1}
+ \eTD
+ \eTR
+ \bTR
+ \bTD[nx=12,align=middle]
+ \infofont\hfill
+ tiny : \the\tinymuskip\hfill
+ thin : \the\thinmuskip\hfill
+ med : \the\medmuskip\hfill
+ thick : \the\thickmuskip\hfill\strut
+ \eTD
+ \eTR
+ \eTABLE
+ \stopTEXpage
+}
+
+\stopmodule
+
+\continueifinputfile{s-math-atoms.mkxl}
+
+\starttext
+
+ \showmathatomspacing{\displaystyle}
+ \showmathatomspacing{\textstyle}
+ \showmathatomspacing{\scriptstyle}
+ \showmathatomspacing{\scriptscriptstyle}
+ \showmathatomspacing{\crampeddisplaystyle}
+ \showmathatomspacing{\crampedtextstyle}
+ \showmathatomspacing{\crampedscriptstyle}
+ \showmathatomspacing{\crampedscriptscriptstyle}
+
+\stoptext
diff --git a/tex/context/modules/mkxl/s-math-definitions.mkxl b/tex/context/modules/mkxl/s-math-definitions.mkxl
new file mode 100644
index 000000000..8b99ae602
--- /dev/null
+++ b/tex/context/modules/mkxl/s-math-definitions.mkxl
@@ -0,0 +1,56 @@
+%D \module
+%D [ file=s-math-definitions.mkxl,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Math Definition Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D I use this file for checking the classes as set in \type {char-def.lua}. It
+%D could work with \MKIV\ but because we have more clases in \LMTX\ we only use
+%D (and need) it there.
+
+\startmodule[math-definitions]
+
+\registerctxluafile{s-math-definitions}{autosuffix}
+
+\permanent\tolerant\protected\def\showmathcharacterdefinitions[#1]%
+ {\ctxlua{moduledata.math.definitions.showlist()}}
+
+\permanent\tolerant\protected\def\showmathatomspacing[#1]%
+ {\ctxlua{moduledata.math.definitions.showatoms()}}
+
+\def\ShowMathAtomSpacingPage#1#2#3#4%
+ {\startTEXpage[offset=10pt]
+ \raggedcenter
+ \dontleavehmode\framed
+ [height=60pt,width=150pt]
+ {$\showglyphs\showmakeup[math]#3 #4$}
+ \blank
+ \strut\infofont\detokenize{#1 #2 : $#3 #4$}
+ \stopTEXpage}
+
+\permanent\tolerant\protected\def\showmathatomspacingpage[#1]%
+ {\ctxlua{moduledata.math.definitions.showatomspage()}}
+
+\stopmodule
+
+\continueifinputfile{s-math-definitions.mkxl}
+
+\setuplayout[tight]
+
+\setupbodyfont[cambria,10pt]
+
+\starttext
+ \showmathatomspacing
+% \page
+% \showmathatomspacingpage
+% \page
+% \showmathcharacterdefinitions
+\stoptext
+
diff --git a/tex/context/modules/mkxl/s-math-tweaks.mkxl b/tex/context/modules/mkxl/s-math-tweaks.mkxl
new file mode 100644
index 000000000..2579f1ec4
--- /dev/null
+++ b/tex/context/modules/mkxl/s-math-tweaks.mkxl
@@ -0,0 +1,185 @@
+%D \module
+%D [ file=s-math-atoms.mksl,
+%D version=2022.02.13,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Show Math Atom Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is just a quick and dirty overview.
+
+\startmodule[math-tweaks]
+
+\unprotect
+
+\starttexdefinition protected showmathfonttweaks_text_accent #1
+ \bTR
+ \bTD[width=7em,align=flushleft,style=mono] #1 \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{i} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{I} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{x} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{X} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XX} } \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks_wide_accent #1
+ \bTR
+ \bTD[width=7em,align=flushleft,style=mono] #1 \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{i} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{I} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{x} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{X} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XX} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xxxxx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XXXXX} } \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks_prime #1
+ \bTR
+ \bTD \type{#1} \eTD
+ \bTD \m {\showglyphs #1} \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks_bracer #1
+ \bTR
+ \bTD \type{#1} \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{x} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xxxxx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{X} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XXXXX} } \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks
+
+ \startsubject[title=text accents]
+ \startlinecorrection
+ \bTABLE[align=middle,offset=1ex]
+ \showmathfonttweaks_text_accent{grave}
+ \showmathfonttweaks_text_accent{bar}
+ \showmathfonttweaks_text_accent{acute}
+ \showmathfonttweaks_text_accent{hat}
+ \showmathfonttweaks_text_accent{check}
+ \showmathfonttweaks_text_accent{breve}
+ \showmathfonttweaks_text_accent{dot}
+ \showmathfonttweaks_text_accent{ring}
+ \showmathfonttweaks_text_accent{tilde}
+ \showmathfonttweaks_text_accent{ddot}
+ \showmathfonttweaks_text_accent{dddot}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=wide accents]
+ \startlinecorrection
+ \bTABLE[align=middle,offset=1ex]
+ \showmathfonttweaks_wide_accent{widegrave}
+ \showmathfonttweaks_wide_accent{widebar}
+ \showmathfonttweaks_wide_accent{wideacute}
+ \showmathfonttweaks_wide_accent{widehat}
+ \showmathfonttweaks_wide_accent{widecheck}
+ \showmathfonttweaks_wide_accent{widebreve}
+ \showmathfonttweaks_wide_accent{widedot}
+ \showmathfonttweaks_wide_accent{widering}
+ \showmathfonttweaks_wide_accent{widetilde}
+ \showmathfonttweaks_wide_accent{wideddot}
+ \showmathfonttweaks_wide_accent{widedddot}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=primes]
+ \startlinecorrection
+ \bTABLE[align=flushleft,offset=1ex]
+ \showmathfonttweaks_prime{x'}
+ \showmathfonttweaks_prime{x''}
+ \showmathfonttweaks_prime{x'''}
+ \showmathfonttweaks_prime{X'}
+ \showmathfonttweaks_prime{X''}
+ \showmathfonttweaks_prime{X'''}
+ \showmathfonttweaks_prime{x'}
+ \showmathfonttweaks_prime{x'^2}
+ \showmathfonttweaks_prime{x'_2}
+ \showmathfonttweaks_prime{x'^2_2}
+ \showmathfonttweaks_prime{x'}
+ \showmathfonttweaks_prime{x^2'}
+ \showmathfonttweaks_prime{x_2'}
+ \showmathfonttweaks_prime{x^2_2'}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=bracers]
+ \startlinecorrection
+ \bTABLE[align=flushleft,offset=1ex]
+ \showmathfonttweaks_bracer{overbrace}
+ \showmathfonttweaks_bracer{underbrace}
+ \showmathfonttweaks_bracer{overbracket}
+ \showmathfonttweaks_bracer{underbracket}
+ \showmathfonttweaks_bracer{overparent}
+ \showmathfonttweaks_bracer{underparent}
+ \showmathfonttweaks_bracer{overbar}
+ \showmathfonttweaks_bracer{underbar}
+ \showmathfonttweaks_bracer{overline}
+ \showmathfonttweaks_bracer{underline}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=whatever]
+ \startlinecorrection
+ \bTABLE[align=flushleft,offset=1ex]
+ \bTR
+ \bTD \m{\mfunction{máx}}\eTD
+ \eTR
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+\stoptexdefinition
+
+\protect
+
+\stopmodule
+
+\continueifinputfile{s-math-tweaks.mkxl}
+
+\setuplayout
+ [tight]
+
+\starttext
+
+\definefontfeature[mathextra][compose=yes]
+
+% \number"23DC
+ \doifelse {\getdocumentargument{bodyfont}} {} {
+
+% \setupbodyfont[cambria,10pt] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[modern] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[pagella] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[termes] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[bonum] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[schola] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[lucidaot,10pt] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+ \setupbodyfont[ebgaramond] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[stixtwo] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+
+ } {
+
+ \normalexpanded{\setupbodyfont[\getdocumentargument{bodyfont},12pt]}
+ \showmathfonttweaks
+
+ }
+
+
+\stoptext
+
diff --git a/tex/context/patterns/mkii/lang-sr.hyp b/tex/context/patterns/mkii/lang-sr.hyp
index 86dd41074..86909bb2a 100644
--- a/tex/context/patterns/mkii/lang-sr.hyp
+++ b/tex/context/patterns/mkii/lang-sr.hyp
@@ -2,7 +2,7 @@
% for comment and copyright, see lang-sr.rme
-% used: а б в г д е з и к л м н о п р с т у ц ш ј њ ћ
+% used: a b c d e g i j k l m n o p r s t u v z ć š а б в г д е з и к л м н о п р с т у ц ш ј ћ
\hyphenation{
на-дно
@@ -15,10 +15,10 @@
о-тка-ше
по-дно
по-дне
-по-тку
по-тки
-по-тке
+по-тку
по-тка
+по-тке
у-дно
и-где
и-гдје
@@ -29,41 +29,41 @@
по-не-где
по-не-гдје
и-зби
-и-збе
и-зба
+и-збе
и-зби-ци
-и-зби-це
и-зби-ца
+и-зби-це
и-звит
и-зим
-изо-ба-ру
изо-ба-ри
-изо-ба-ре
+изо-ба-ру
изо-ба-ра
+изо-ба-ре
и-скок
и-ско-ку
и-ско-ка
и-скон
-и-ско-ну
и-ско-ни
+и-ско-ну
и-ско-на
-и-скру
-и-скре
и-скри
+и-скру
и-скра
+и-скре
и-скрав
и-спод
и-спо-да
-и-стру
и-стри
и-стро
-и-стре
+и-стру
и-стра
-на-ју
+и-стре
на-ји
на-јо
-на-је
+на-ју
на-ја
+на-је
на-јам
на-јест
о-браз
@@ -72,66 +72,168 @@
о-дран
о-дра-ти
пре-двој
-ра-зму
ра-зми
ра-змо
-ра-зме
+ра-зму
ра-зма
-ра-зну
+ра-зме
ра-зни
ра-зно
-ра-зне
+ра-зну
ра-зна
+ра-зне
ра-склоп
-ра-спе-лу
ра-спе-ло
+ра-спе-лу
ра-спе-ла
-ра-спе-ћа
ра-спе-ћу
+ра-спе-ћа
ра-спе-ће
-ра-сту
ра-сти
-ра-сте
+ра-сту
ра-ста
+ра-сте
ра-стом
ра-стер
-ра-шћу
ра-шћи
ра-шћо
-ра-шће
+ра-шћу
ра-шћа
+ра-шће
+у-зни
у-зно
у-зна
-у-зни
у-зник
у-зрок
-у-ску
у-ски
у-ско
-у-ске
+у-ску
у-ска
+у-ске
ус-кос
у-спио
у-спео
у-спор
у-шћу
-у-шће
у-шћа
+у-шће
ин-те-рес
тран-су
тран-са
тран-сом
-те-ле-ви-зор
-те-ле-ви-зо-ру
-те-ле-ви-зо-ром
-те-ле-ви-зо-ра
-те-ле-ви-зо-ри
-при-ти-сак
-при-ти-с-ком
-при-ти-с-ку
-при-ти-с-ка
-по-ја-ви-ће
-на-пу-шта
-про-гра-ми-ра-ње
-сни-ма-ња
-сни-ма-ње} \ No newline at end of file
+na-dno
+na-tka
+na-tka-ti
+na-tka-še
+o-dno
+o-tka
+o-tka-ti
+o-tka-še
+po-dno
+po-dne
+po-tki
+po-tku
+po-tka
+po-tke
+u-dno
+i-gde
+i-gdje
+svu-gde
+sve-gde
+svu-gdje
+sve-gdje
+po-ne-gde
+po-ne-gdje
+i-zbi
+i-zba
+i-zbe
+i-zbi-ci
+i-zbi-ca
+i-zbi-ce
+i-zvit
+i-zim
+izo-ba-ri
+izo-ba-ru
+izo-ba-ra
+izo-ba-re
+i-skok
+i-sko-ku
+i-sko-ka
+i-skon
+i-sko-ni
+i-sko-nu
+i-sko-na
+i-skri
+i-skru
+i-skra
+i-skre
+i-skrav
+i-spod
+i-spo-da
+i-stri
+i-stro
+i-stru
+i-stra
+i-stre
+na-ji
+na-jo
+na-ju
+na-ja
+na-je
+na-jam
+na-jest
+o-braz
+o-bret
+o-dvi-ka
+o-dran
+o-dra-ti
+pre-dvoj
+ra-zmi
+ra-zmo
+ra-zmu
+ra-zma
+ra-zme
+ra-zni
+ra-zno
+ra-znu
+ra-zna
+ra-zne
+ra-sklop
+ra-spe-lo
+ra-spe-lu
+ra-spe-la
+ra-spe-ću
+ra-spe-ća
+ra-spe-će
+ra-sti
+ra-stu
+ra-sta
+ra-ste
+ra-stom
+ra-ster
+ra-šći
+ra-šćo
+ra-šću
+ra-šća
+ra-šće
+u-zni
+u-zno
+u-zna
+u-znik
+u-zrok
+u-ski
+u-sko
+u-sku
+u-ska
+u-ske
+us-kos
+u-spio
+u-speo
+u-spor
+u-šću
+u-šća
+u-šće
+in-te-res
+tran-su
+tran-sa
+tran-som} \ No newline at end of file
diff --git a/tex/context/patterns/mkii/lang-sr.pat b/tex/context/patterns/mkii/lang-sr.pat
index 8c6d8f27c..17b095f41 100644
--- a/tex/context/patterns/mkii/lang-sr.pat
+++ b/tex/context/patterns/mkii/lang-sr.pat
@@ -2,1006 +2,2266 @@
% for comment and copyright, see lang-sr.rme
-% used: а б в г д е ж з и к л м н о п р с т у ф х ц ч ш ђ ј љ њ ћ џ
+% used: a b c d e f g h i j k l m n o p r s t u v z ć č đ š ž а б в г д е ж з и к л м н о п р с т у ф х ц ч ш ђ ј љ њ ћ џ
\patterns{
+т2ј
+т2л
+т2љ
+т2р
+т2в
+д2ј
+д2л
+д2љ
+д2р
+д2в
+г2ј
+г2л
+г2љ
+г2р
+г2в
+х2ј
+х2л
+х2љ
+х2р
+х2в
+к2ј
+к2л
+к2љ
+к2р
+к2в
+2д1ж
+2д1б
+2д1ц
+2д1д
+2д1ф
+2д1г
+2д1х
+2д1к
+2д1м
+2д1н
+2д1п
+2д1с
+2д1т
+2д1њ
+2д1џ
+2д1з
+2д1ш
+2д1ђ
+2д1ћ
+2д1ч
+2г1ж
+2г1б
+2г1ц
+2г1д
+2г1ф
+2г1г
+2г1х
+2г1к
+2г1м
+2г1н
+2г1п
+2г1с
+2г1т
+2г1њ
+2г1џ
+2г1з
+2г1ш
+2г1ђ
+2г1ћ
+2г1ч
+2х1ж
+2х1б
+2х1ц
+2х1д
+2х1ф
+2х1г
+2х1х
+2х1к
+2х1м
+2х1н
+2х1п
+2х1с
+2х1т
+2х1њ
+2х1џ
+2х1з
+2х1ш
+2х1ђ
+2х1ћ
+2х1ч
+2к1ж
+2к1б
+2к1ц
+2к1д
+2к1ф
+2к1г
+2к1х
+2к1к
+2к1м
+2к1н
+2к1п
+2к1с
+2к1т
+2к1њ
+2к1џ
+2к1з
+2к1ш
+2к1ђ
+2к1ћ
+2к1ч
+2т1ж
+2т1б
+2т1ц
+2т1д
+2т1ф
+2т1г
+2т1х
+2т1к
+2т1м
+2т1н
+2т1п
+2т1с
+2т1т
+2т1њ
+2т1џ
+2т1з
+2т1ш
+2т1ђ
+2т1ћ
+2т1ч
+2дј.
+2дл.
+2дљ.
+2др.
+2дв.
+2гј.
+2гл.
+2гљ.
+2гр.
+2гв.
+2хј.
+2хл.
+2хљ.
+2хр.
+2хв.
+2кј.
+2кл.
+2кљ.
+2кр.
+2кв.
+2тј.
+2тл.
+2тљ.
+2тр.
+2тв.
+п2ј
+п2л
+п2љ
+п2р
+в2ј
+в2л
+в2љ
+в2р
+б2ј
+б2л
+б2љ
+б2р
+ф2ј
+ф2л
+ф2љ
+ф2р
+м2ј
+м2л
+м2љ
+м2р
+2б1ж
+2б1б
+2б1ц
+2б1д
+2б1ф
+2б1г
+2б1х
+2б1к
+2б1м
+2б1н
+2б1п
+2б1с
+2б1т
+2б1в
+2б1њ
+2б1џ
+2б1з
+2б1ш
+2б1ђ
+2б1ћ
+2б1ч
+2ф1ж
+2ф1б
+2ф1ц
+2ф1д
+2ф1ф
+2ф1г
+2ф1х
+2ф1к
+2ф1м
+2ф1н
+2ф1п
+2ф1с
+2ф1т
+2ф1в
+2ф1њ
+2ф1џ
+2ф1з
+2ф1ш
+2ф1ђ
+2ф1ћ
+2ф1ч
+2м1ж
+2м1б
+2м1ц
+2м1д
+2м1ф
+2м1г
+2м1х
+2м1к
+2м1м
+2м1н
+2м1п
+2м1с
+2м1т
+2м1в
+2м1њ
+2м1џ
+2м1з
+2м1ш
+2м1ђ
+2м1ћ
+2м1ч
+2п1ж
+2п1б
+2п1ц
+2п1д
+2п1ф
+2п1г
+2п1х
+2п1к
+2п1м
+2п1н
+2п1п
+2п1с
+2п1т
+2п1в
+2п1њ
+2п1џ
+2п1з
+2п1ш
+2п1ђ
+2п1ћ
+2п1ч
+2в1ж
+2в1б
+2в1ц
+2в1д
+2в1ф
+2в1г
+2в1х
+2в1к
+2в1м
+2в1н
+2в1п
+2в1с
+2в1т
+2в1в
+2в1њ
+2в1џ
+2в1з
+2в1ш
+2в1ђ
+2в1ћ
+2в1ч
+2бј.
+2бл.
+2бљ.
+2бр.
+2фј.
+2фл.
+2фљ.
+2фр.
+2мј.
+2мл.
+2мљ.
+2мр.
+2пј.
+2пл.
+2пљ.
+2пр.
+2вј.
+2вл.
+2вљ.
+2вр.
+с2ц
+с2ј
+с2к
+с2л
+с2м
+с2н
+с2п
+с2љ
+с2р
+с2т
+с2в
+с2њ
+2с1ж
+2с1б
+2с1д
+2с1ф
+2с1г
+2с1х
+2с1с
+2с1џ
+2с1з
+2с1ш
+2с1ђ
+2с1ћ
+2с1ч
+2сј.
+2ск.
+2сл.
+2см.
+2сн.
+2сп.
+2сљ.
+2ср.
+2ст.
+2св.
+2сњ.
+2сц.
+з2б
+з2д
+з2г
+з2ј
+з2л
+з2м
+з2н
+з2љ
+з2р
+з2в
+з2њ
+2з1ж
+2з1ц
+2з1ф
+2з1х
+2з1к
+2з1п
+2з1с
+2з1т
+2з1џ
+2з1з
+2з1ш
+2з1ђ
+2з1ћ
+2з1ч
+2зј.
+2зл.
+2зм.
+2зн.
+2зљ.
+2зр.
+2зв.
+2зњ.
+2зб.
+2зд.
+2зг.
+ш2ц
+ш2к
+ш2л
+ш2м
+ш2н
+ш2п
+ш2љ
+ш2т
+ш2в
+ш2њ
+ш2ћ
+ш2ч
+2ш1ж
+2ш1б
+2ш1д
+2ш1ф
+2ш1г
+2ш1х
+2ш1с
+2ш1џ
+2ш1з
+2ш1ш
+2ш1ђ
+2ш1ј
+2ш1р
+2шк.
+2шл.
+2шм.
+2шн.
+2шп.
+2шљ.
+2шт.
+2шв.
+2шњ.
+2шћ.
+2шч.
+2шц.
+ж2б
+ж2д
+ж2г
+ж2л
+ж2м
+ж2н
+ж2љ
+ж2в
+ж2њ
+ж2ђ
+2ж1ж
+2ж1ц
+2ж1ф
+2ж1х
+2ж1к
+2ж1п
+2ж1с
+2ж1т
+2ж1џ
+2ж1з
+2ж1ш
+2ж1ћ
+2ж1ч
+2ж1ј
+2ж1р
+2жл.
+2жм.
+2жн.
+2жљ.
+2жв.
+2жњ.
+2жђ.
+2жб.
+2жд.
+2жг.
+ц2ј
+ц2р
+ц2в
+2ц1ж
+2ц1б
+2ц1ц
+2ц1д
+2ц1ф
+2ц1г
+2ц1х
+2ц1к
+2ц1л
+2ц1м
+2ц1н
+2ц1п
+2ц1љ
+2ц1с
+2ц1т
+2ц1њ
+2ц1џ
+2ц1з
+2ц1ш
+2ц1ђ
+2ц1ћ
+2ц1ч
+2цј.
+2цр.
+2цв.
+ч2в
+2ч1ж
+2ч1б
+2ч1ц
+2ч1д
+2ч1ф
+2ч1г
+2ч1х
+2ч1ј
+2ч1к
+2ч1л
+2ч1м
+2ч1н
+2ч1п
+2ч1љ
+2ч1р
+2ч1с
+2ч1т
+2ч1њ
+2ч1џ
+2ч1з
+2ч1ш
+2ч1ђ
+2ч1ћ
+2ч1ч
+2чв.
+2ј1ж
+2ј1б
+2ј1ц
+2ј1д
+2ј1ф
+2ј1г
+2ј1х
+2ј1ј
+2ј1к
+2ј1л
+2ј1м
+2ј1н
+2ј1п
+2ј1љ
+2ј1р
+2ј1с
+2ј1т
+2ј1в
+2ј1њ
+2ј1џ
+2ј1з
+2ј1ш
+2ј1ђ
+2ј1ћ
+2ј1ч
+2л1ж
+2л1б
+2л1ц
+2л1д
+2л1ф
+2л1г
+2л1х
+2л1ј
+2л1к
+2л1л
+2л1м
+2л1н
+2л1п
+2л1љ
+2л1р
+2л1с
+2л1т
+2л1в
+2л1њ
+2л1џ
+2л1з
+2л1ш
+2л1ђ
+2л1ћ
+2л1ч
+2н1ж
+2н1б
+2н1ц
+2н1д
+2н1ф
+2н1г
+2н1х
+2н1ј
+2н1к
+2н1л
+2н1м
+2н1н
+2н1п
+2н1љ
+2н1р
+2н1с
+2н1т
+2н1в
+2н1њ
+2н1џ
+2н1з
+2н1ш
+2н1ђ
+2н1ћ
+2н1ч
+2љ1ж
+2љ1б
+2љ1ц
+2љ1д
+2љ1ф
+2љ1г
+2љ1х
+2љ1ј
+2љ1к
+2љ1л
+2љ1м
+2љ1н
+2љ1п
+2љ1љ
+2љ1р
+2љ1с
+2љ1т
+2љ1в
+2љ1њ
+2љ1џ
+2љ1з
+2љ1ш
+2љ1ђ
+2љ1ћ
+2љ1ч
+2р1ж
+2р1б
+2р1ц
+2р1д
+2р1ф
+2р1г
+2р1х
+2р1ј
+2р1к
+2р1л
+2р1м
+2р1н
+2р1п
+2р1љ
+2р1р
+2р1с
+2р1т
+2р1в
+2р1њ
+2р1џ
+2р1з
+2р1ш
+2р1ђ
+2р1ћ
+2р1ч
+2њ1ж
+2њ1б
+2њ1ц
+2њ1д
+2њ1ф
+2њ1г
+2њ1х
+2њ1ј
+2њ1к
+2њ1л
+2њ1м
+2њ1н
+2њ1п
+2њ1љ
+2њ1р
+2њ1с
+2њ1т
+2њ1в
+2њ1њ
+2њ1џ
+2њ1з
+2њ1ш
+2њ1ђ
+2њ1ћ
+2њ1ч
+2џ1ж
+2џ1б
+2џ1ц
+2џ1д
+2џ1ф
+2џ1г
+2џ1х
+2џ1ј
+2џ1к
+2џ1л
+2џ1м
+2џ1н
+2џ1п
+2џ1љ
+2џ1р
+2џ1с
+2џ1т
+2џ1в
+2џ1њ
+2џ1џ
+2џ1з
+2џ1ш
+2џ1ђ
+2џ1ћ
+2џ1ч
+2ђ1ж
+2ђ1б
+2ђ1ц
+2ђ1д
+2ђ1ф
+2ђ1г
+2ђ1х
+2ђ1ј
+2ђ1к
+2ђ1л
+2ђ1м
+2ђ1н
+2ђ1п
+2ђ1љ
+2ђ1р
+2ђ1с
+2ђ1т
+2ђ1в
+2ђ1њ
+2ђ1џ
+2ђ1з
+2ђ1ш
+2ђ1ђ
+2ђ1ћ
+2ђ1ч
+2ћ1ж
+2ћ1б
+2ћ1ц
+2ћ1д
+2ћ1ф
+2ћ1г
+2ћ1х
+2ћ1ј
+2ћ1к
+2ћ1л
+2ћ1м
+2ћ1н
+2ћ1п
+2ћ1љ
+2ћ1р
+2ћ1с
+2ћ1т
+2ћ1в
+2ћ1њ
+2ћ1џ
+2ћ1з
+2ћ1ш
+2ћ1ђ
+2ћ1ћ
+2ћ1ч
+.х2
+.ј2
+.к2
+.л2
+.м2
+.н2
+.п2
+.љ2
+.р2
+.с2
+.т2
+.в2
+.њ2
+.џ2
+.з2
+.ш2
.ђ2
.ћ2
.ч2
-.ш2
.ж2
-.а2б3алиј
-.а2б3анац
-.а2б3ерац
-.а2б3ерир
-.а2б3евак
-.а2б3ирит
-.а2б3ју
-.а2б3ла
-.а2б3лег
-.а2б3леп
-.а2б3лок
-.а2б3лу
-.а2б3ориг
-.а2б3реак
-.а2б3рог
-.а2б3узус
-.а2д3ерац
-.а2д3ј
-.а2д3лат
-.а2д3рен
-.а2д3рог
-.а2д3верб
-.а2н3а4е2ро
-.а2н3афиј
-.а2н3афрод
-.а2н3аго
-.а2н3акуз
-.а2н3алд
-.а2н3алфа
-.а2н3алг
-.а2н3амерт
-.а2н3андр
-.а2н3ант
-.а2н3апто
-.а2н3арх
-.а2н3егер
-.а2н3екл
-.а2н3екум
-.а2н3елек
-.а2н3енер
-.а2н3епи
-.а2н3ерг
-.а2н3ерит
-.а2н3есте
-.а2н3идр
-.а2н3ирид
-.а2н3изог
-.а2н3изом
-.а2н3изур
-.а2н3јон
-.а2н3офт
-.а2н3окс
-.а2н3опис
-.а2н3орг
-.а2н3орх
-.а2н3овар
-.а2набап
-.а2набат
-.а2набаз
-.а2набио
-.а2набол
-.а2надем
-.а2надипл
-.а2надоз
-.а2нафаз
-.а2нафила
-.а2нафон
-.а2нафор
-.а2наген
-.а2нагно
-.а2награ
-.а2нахор
-.а2нахро
-.а2накал
-.а2накам
-.а2накат
-.а2накеф
-.а2накла
-.а2накли
-.а2накој
-.а2накол
-.а2накрон
-.а2накру
-.а2налеп
-.а2налис
-.а2налит
-.а2нализ
-.а2намне
-.а2нанео
-.а2напла
-.а2напле
-.а2напне
-.а2напно
-.а2напро
-.а2напти
-.а2нарт
-.а2насар
-.а2насеи
-.а2наспаз
-.а2наста
-.а2настиг
-.а2настом
-.а2натим
-.а2натоц
-.а2натом
-.а2натре
-.а2натри
-.а2натро
-.а2неор
-.а3г2нос
-.а3г2ноз
-.а4е2ро
.б2
-.бе2ш3ћ
-.бе2ш3ч
-.бе2с3ц
-.бе2с3к
-.бе2с3п
-.бе2с3т
-.бе2з3алкохол
-.бе2з3атомск
-.бе2з3б
-.бе2з3д
-.бе2з3г
-.бе2з3и
+.ц2
+.д2
+.ф2
+.г2
+о3а
+о3е
+о3и
+о3о
+о3у
+у3а
+у3е
+у3и
+у3о
+у3у
+а3а
+а3е
+а3и
+а3о
+а3у
+е3а
+е3е
+е3и
+е3о
+е3у
+и3а
+и3е
+и3и
+и3о
+и3у
+2а1
+2е1
+2и1
+2о1
+2у1
+2скб
+2скц
+2скд
+2скф
+2скг
+2скх
+2скк
+2скм
+2скн
+2скп
+2скс
+2скт
+2скњ
+2скџ
+2скз
+2скш
+2скђ
+2скћ
+2скч
+2скж
+2стб
+2стц
+2стд
+2стф
+2стг
+2стх
+2стк
+2стм
+2стн
+2стп
+2стс
+2стт
+2стњ
+2стџ
+2стз
+2стш
+2стђ
+2стћ
+2стч
+2стж
+2шкб
+2шкц
+2шкд
+2шкф
+2шкг
+2шкх
+2шкк
+2шкм
+2шкн
+2шкп
+2шкс
+2шкт
+2шкњ
+2шкџ
+2шкз
+2шкш
+2шкђ
+2шкћ
+2шкч
+2шкж
+2штб
+2штц
+2штд
+2штф
+2штг
+2штх
+2штк
+2штм
+2штн
+2штп
+2штс
+2штт
+2штњ
+2штџ
+2штз
+2штш
+2штђ
+2штћ
+2штч
+2штж
+2спб
+2спц
+2спд
+2спф
+2спг
+2спх
+2спк
+2спм
+2спн
+2спп
+2спс
+2спт
+2спв
+2спњ
+2спџ
+2спз
+2спш
+2спђ
+2спћ
+2спч
+2спж
+2свб
+2свц
+2свд
+2свф
+2свг
+2свх
+2свк
+2свм
+2свн
+2свп
+2свс
+2свт
+2свв
+2свњ
+2свџ
+2свз
+2свш
+2свђ
+2свћ
+2свч
+2свж
+2шпб
+2шпц
+2шпд
+2шпф
+2шпг
+2шпх
+2шпк
+2шпм
+2шпн
+2шпп
+2шпс
+2шпт
+2шпв
+2шпњ
+2шпџ
+2шпз
+2шпш
+2шпђ
+2шпћ
+2шпч
+2шпж
+2швб
+2швц
+2швд
+2швф
+2швг
+2швх
+2швк
+2швм
+2швн
+2швп
+2швс
+2швт
+2швв
+2швњ
+2швџ
+2швз
+2швш
+2швђ
+2швћ
+2швч
+2швж
+2ждб
+2ждц
+2ждд
+2ждф
+2ждг
+2ждх
+2ждк
+2ждм
+2ждн
+2ждп
+2ждс
+2ждт
+2ждњ
+2ждџ
+2ждз
+2ждш
+2ждђ
+2ждћ
+2ждч
+2ждж
+2жгб
+2жгц
+2жгд
+2жгф
+2жгг
+2жгх
+2жгк
+2жгм
+2жгн
+2жгп
+2жгс
+2жгт
+2жгњ
+2жгџ
+2жгз
+2жгш
+2жгђ
+2жгћ
+2жгч
+2жгж
+2здб
+2здц
+2здд
+2здф
+2здг
+2здх
+2здк
+2здм
+2здн
+2здп
+2здс
+2здт
+2здњ
+2здџ
+2здз
+2здш
+2здђ
+2здћ
+2здч
+2здж
+2згб
+2згц
+2згд
+2згф
+2згг
+2згх
+2згк
+2згм
+2згн
+2згп
+2згс
+2згт
+2згњ
+2згџ
+2згз
+2згш
+2згђ
+2згћ
+2згч
+2згж
+2жвб
+2жвц
+2жвд
+2жвф
+2жвг
+2жвх
+2жвк
+2жвм
+2жвн
+2жвп
+2жвс
+2жвт
+2жвв
+2жвњ
+2жвџ
+2жвз
+2жвш
+2жвђ
+2жвћ
+2жвч
+2жвж
+2жбб
+2жбц
+2жбд
+2жбф
+2жбг
+2жбх
+2жбк
+2жбм
+2жбн
+2жбп
+2жбс
+2жбт
+2жбв
+2жбњ
+2жбџ
+2жбз
+2жбш
+2жбђ
+2жбћ
+2жбч
+2жбж
+2звб
+2звц
+2звд
+2звф
+2звг
+2звх
+2звк
+2звм
+2звн
+2звп
+2звс
+2звт
+2звв
+2звњ
+2звџ
+2звз
+2звш
+2звђ
+2звћ
+2звч
+2звж
+2збб
+2збц
+2збд
+2збф
+2збг
+2збх
+2збк
+2збм
+2збн
+2збп
+2збс
+2збт
+2збв
+2збњ
+2збџ
+2збз
+2збш
+2збђ
+2збћ
+2збч
+2збж
+2жмб
+2жмц
+2жмд
+2жмф
+2жмг
+2жмх
+2жмк
+2жмм
+2жмн
+2жмп
+2жмс
+2жмт
+2жмв
+2жмњ
+2жмџ
+2жмз
+2жмш
+2жмђ
+2жмћ
+2жмч
+2жмж
+2смб
+2смц
+2смд
+2смф
+2смг
+2смх
+2смк
+2смм
+2смн
+2смп
+2смс
+2смт
+2смв
+2смњ
+2смџ
+2смз
+2смш
+2смђ
+2смћ
+2смч
+2смж
+2змб
+2змц
+2змд
+2змф
+2змг
+2змх
+2змк
+2змм
+2змн
+2змп
+2змс
+2змт
+2змв
+2змњ
+2змџ
+2змз
+2змш
+2змђ
+2змћ
+2змч
+2змж
+2шмб
+2шмц
+2шмд
+2шмф
+2шмг
+2шмх
+2шмк
+2шмм
+2шмн
+2шмп
+2шмс
+2шмт
+2шмв
+2шмњ
+2шмџ
+2шмз
+2шмш
+2шмђ
+2шмћ
+2шмч
+2шмж
+2сцб
+2сцц
+2сцд
+2сцф
+2сцг
+2сцх
+2сцк
+2сцл
+2сцм
+2сцн
+2сцп
+2сцљ
+2сцр
+2сцс
+2сцт
+2сцњ
+2сцџ
+2сцз
+2сцш
+2сцђ
+2сцћ
+2сцч
+2сцж
+2шцб
+2шцц
+2шцд
+2шцф
+2шцг
+2шцх
+2шцк
+2шцл
+2шцм
+2шцн
+2шцп
+2шцљ
+2шцр
+2шцс
+2шцт
+2шцњ
+2шцџ
+2шцз
+2шцш
+2шцђ
+2шцћ
+2шцч
+2шцж
+2шчб
+2шчц
+2шчд
+2шчф
+2шчг
+2шчх
+2шчј
+2шчк
+2шчл
+2шчм
+2шчн
+2шчп
+2шчљ
+2шчр
+2шчс
+2шчт
+2шчњ
+2шчџ
+2шчз
+2шчш
+2шчђ
+2шчћ
+2шчч
+2шчж
+2хвб
+2хвц
+2хвд
+2хвф
+2хвг
+2хвх
+2хвк
+2хвм
+2хвн
+2хвп
+2хвс
+2хвт
+2хвњ
+2хвџ
+2хвз
+2хвш
+2хвђ
+2хвћ
+2хвч
+2хвж
+2ж3вл
+2ж3вљ
+2ц3вл
+2ц3вљ
+2з3вл
+2з3вљ
+2ш3вл
+2ш3вљ
+2ч3вл
+2ч3вљ
+2ч3вј
+2с3вљ
+2д3вл
+2д3вљ
+2д3вр
+2к3вј
+2к3вл
+2к3вљ
+2т3вј
+2т3вл
+2т3вљ
+2г3вј
+2г3вл
+2г3вљ
+2г3вр
+2х3вј
+2х3вл
+2х3вљ
+2х3вр
+2ж3мј
+2ж3мл
+2ж3мљ
+2ж3мр
+2з3мл
+2з3мр
+2ш3мј
+2ш3мл
+2ш3мљ
+2ш3цј
+2ш3цв
+2ш3чв
+2ш3тј
+2ш3тл
+2ш3тљ
+2с3тл
+2с3кј
+2с3кљ
+2ш3пј
+2ш3пл
+2ш3пљ
+2ж3дј
+2ж3дл
+2ж3дљ
+2ж3дв
+2ж3гј
+2ж3гл
+2ж3гљ
+2ж3гр
+2ж3гв
+2з3дл
+2з3дљ
+2з3дв
+2з3гј
+2з3гљ
+2ж3бј
+2ж3бл
+2ж3бљ
+2ж3бр
+2з3бљ
+.а4е2ро
+.бе4о
+.би4о
+.ге4о
+.за3г2н
+.за3т2ка
+.иза3г2н
+.иза3т2к
+.из3г2н
+.изд2но
+.изд2ну
+.изд2на
+.изр2к
+.ист2к
+.наг2н
+.наг2њ
+.на3д2нев
+.на3д2нич
+.на3д2ниц
+.на3т2ках
+.на3т2кам
+.на3т2касм
+.на3т2каст
+.ода3г2н
+.ода3д2н
+.од3г2н
+.од3м2н
+.о3т2ках
+.о3т2кам
+.о3т2касм
+.о3т2каст
+.по3г2н
+.по3д2нев
+.по3м2н
+.по3м2њ
+.по3р2в
+.по3р2ђ
+.по3т2ках
+.по3т2кам
+.по3т2кат
+.по3т2кав
+.пред3м2н
+.пред3м2њ
+.пре3т2ках
+.пре3т2кам
+.пре3т2кат
+.про3г2н
+.про3т2ки
+.про3т2ка
+.раза3г2н
+.раз3г2н
+.раз3д2ни
+.раза3т2ка
+.у3г2ми
+.у3г2н
+.уза3т2ка
+3х2тети
+3х2тјети
+3х2тел
+3х2тев
+3х2тењ
+3х2тјел
+3х2тјев
+3х2тјењ
+3г2дегод.
+3г2дјегод.
+3г2декак
+3г2декад
+3г2дјекак
+3г2дјекад
+ни3г2де.
+не3г2де.
+ни3г2дје.
+не3г2дје.
+3б2дет
+3б2дењ
+3б2дјет
+3б2дјењ
+3г2мил
+3г2миљ
+3г2миз
+3г2нос
+3г2ноз
+3г2ној
+3г2нај
+3г2незд
+3г2нијезд
+3г2нежђ
+3г2нијежђ
+3г2нев
+3г2њев
+3г2њав
+3г2њес
+3г2њет
+3г2њеч
+3г2њил
+3г2њио
+3г2њиљ
+3г2њит
+3г2њур
+3к2нез
+3к2неж
+3к2њиж
+3к2њиг
+3м2нож
+3м2ног
+3м2наж
+3п2сик
+3п2сич
+3п2сов
+3п2суј
+3р2ђа
+3с2фер
+3т2маст
+3т2мул
+3т2муо
+3т2муљ
+3т2мур
+3ц2миз
+3ц2мак
+3ц2мач
+3ц2мок
+3ч2лан
+3ч2лањ
+3р2је
+4р3јем
+4р3је.
+.бе2з3ј
.бе2з3л
-.бе2з3љ
.бе2з3м
.бе2з3н
+.бе2з3љ
+.бе2з3р
+.бе2з3в
.бе2з3њ
+.бе2з3б
+.бе2з3д
+.бе2з3г
+.бе2з3и
.бе2з3о
-.бе2з3р
.бе2з3у
-.бе2з3в
-.бе3с4крупул
-.бе3с4покоја
-.бе3с4покојн
-.бе3с4пора
-.бе3с4порн
-.бе3с4тид
-.бе3с4тија
-.бе3с4тиљ
-.бе3с4тилу
-.бе3с4трана
-.бе3с4трас
-.бе3с4твар
-.бе3з4беда
+.бе2з3алкохол
+.бе2з3атомск
.бе3з4бедн
-.бе3з4бели
-.бе3з4бједа
+.бе3з4беда
.бе3з4бједн
+.бе3з4бједа
+.бе3з4бели
.бе3з4бол
+.бе3з4вучн
+.бе3з4вуча
.бе3з4истан
.бе3з4истен
-.бе3з4јач
.бе3з4јак
-.бе3з4лоба
+.бе3з4јач
.бе3з4лобн
+.бе3з4лоба
.бе3з4начај
-.бе3з4рача
.бе3з4рачн
-.бе3з4уб
+.бе3з4рача
.бе3з4уп
-.бе3з4вуча
-.бе3з4вучн
-.бе4о
+.бе3з4уб
+.бе2с3ц
+.бе2с3к
+.бе2с3п
+.бе2с3т
+.бе3с4крупул
+.бе3с4покојн
+.бе3с4покоја
+.бе3с4порн
+.бе3с4пора
+.бе3с4твар
+.бе3с4тид
+.бе3с4тија
+.бе3с4тилу
+.бе3с4тиљ
+.бе3с4трана
+.бе3с4трас
.бес4тселер
-.би4о
-.ц2
-.д2
-.џ2
-.ди2с3акор
-.ди2с3јунк
-.ди2с3конт
-.ди2с3корд
-.ди2с3кре
-.ди2с3кри
-.ди2с3кур
-.ди2с3квал
-.ди2с3ло
-.ди2с3ориј
-.ди2с3парит
-.ди2с3пон
-.ди2с3поз
-.ди2с3проп
-.ди2с3тон
-.ди2с3трак
-.ф2
-.г2
-.ге4о
-.х2
-.и2ш3ћ
-.и2ш3ч
-.и2ж3ђ
-.и2н3абруп
-.и2н3адек
-.и2н3афек
-.и2н3акце
-.и2н3акур
-.и2н3амор
-.и2н3аниц
-.и2н3аплик
-.и2н3апст
-.и2н3арт
-.и2н3аугур
-.и2н3аура
-.и2н3ед
-.и2н3ефек
-.и2н3ег
-.и2н3екс
-.и2н3екв
-.и2н3елиг
-.и2н3епц
-.и2н3евид
-.и2н3јек
-.и2н3јур
-.и2н3јуст
-.и2н3обл
-.и2н3офиц
-.и2н3окуп
-.и2н3опер
-.и2н3опор
-.и2н3опсе
-.и2н3умбр
-.и2н3унда
-.и2н3унк
-.и2н3утил
-.и2ноген
-.и2нокор
-.и2с3ц
-.и2с3к
-.и2с3п
-.и2с3т
-.и2з3аба
-.и2з3ака
-.и2з3анал
+.бе2ш3ћ
+.бе2ш3ч
+.ва2н3евр
+.ва2н3устав
.и2з3б
-.и2з3бија
-.и2з3бива
.и2з3д
-.и2з3дај
.и2з3г
-.и2з3и
+.и2з3ј
.и2з3л
-.и2з3љ
.и2з3м
.и2з3н
+.и2з3љ
+.и2з3р
+.и2з3в
.и2з3њ
+.и2з3и
.и2з3о
-.и2з3р
.и2з3у
-.и2з3в
-.и2з3ведб
-.и2з3веде
+.и2з3бија
+.и2з3бива
.и2з3веди
.и2з3ведн
+.и2з3ведб
+.и2з3веде
+.и2з3дај
+.и2з3аба
+.и2з3ака
+.и2з3анал
+.и3з4бав
+.и3з4бичкава
+.и3з4блеушан
+.и3з4бојак
+.и3з4бојк
+.и3з4вали
+.и3з4валу
+.и3з4вала
+.и3з4вале
+.и3з4ваљи
+.и3з4вижд
+.и3з4виискр
+.и3з4вија
+.и3з4вијен
+.и3з4вин
+.и3з4вир
+.и3з4вињ
+.и3з4витоп
+.и3з4вјед
+.и3з4војац
+.и3з4војц
+.и3з4вор
+.и3з4гомет
+.и3з4гред
+.и3з4грн
+.и3з4грт
+.и3з4драв
+.и3з4иђ
+.и3з4ид
+.и3з4ими
+.и3з4јежљ
+.и3з4лоз
+.и3з4лож
+.и3з4лог
+.и3з4лопаћ
+.и3з4ним
+.и3з4ној
+.из4оанем
+.из4оаном
+.из4обат
+.из4оброн
+.из4огам
+.из4огео
+.из4оглос
+.из4огон
+.из4ограф
+.из4одим
+.из4один
+.из4одоз
+.из4оклин
+.из4околон
+.и3з4олат
+.и3з4олац
+.и3з4олир
+.и3з4олов
+.из4олекс
+.из4олукс
+.из4омер
+.из4ометр
+.из4оморф
+.из4онеф
+.из4оном
+.из4опат
+.из4опер
+.из4опле
+.из4опол
+.из4опсеф
+.из4орах
+.из4осеи
+.из4осинт
+.из4осист
+.из4оскел
+.из4оскоп
+.из4остаз
+.из4осте
+.из4отах
+.из4отал
+.из4отер
+.из4отон
+.из4отоп
+.из4отро
+.из4офон
+.из4офот
+.из4охал
+.из4охаз
+.из4охел
+.из4охиј
+.из4охим
+.из4охит
+.из4охипс
+.из4охор
+.из4охро
+.и3з4раел
+.и3з4раиљ
+.и3з4рачи
+.и3з4ун
+.и3з4упч
+.и2с3ц
+.и2с3к
+.и2с3п
+.и2с3т
.и3с4как
-.и3с4кариот
.и3с4кат
+.и3с4кањ
+.и3с4кариот
+.и3с4квас
+.и3с4кврч
.и3с4кин
.и3с4кита
-.и3с4коч
.и3с4конск
+.и3с4коч
.и3с4крам
+.и3с4крит
+.и3с4криш
+.и3с4крич
+.и3с4криц
.и3с4крат
.и3с4крен
.и3с4крењ
-.и3с4крич
-.и3с4криш
-.и3с4криц
-.и3с4крит
.и3с4крој
-.и3с4крса
.и3с4крсн
+.и3с4крса
.и3с4купља
-.и3с4квас
-.и3с4кврч
-.и3с4лаб
.и3с4лам
+.и3с4лаб
.и3с4леђ
.и3с4лед
.и3с4лијеђ
.и3с4лијед
-.и3с4лик
-.и3с4лин
.и3с4љеђ
.и3с4љед
+.и3с4лик
+.и3с4лин
.и3с4лов
.и3с4луш
.и3с4луж
.и3с4ме
.и3с4мије
.и3с4мје
-.и3с4паљив
.и3с4пав
+.и3с4паљив
.и3с4пира
-.и3с4плић
.и3с4плит
+.и3с4плић
.и3с4покој
.и3с4полин
.и3с4пон
.и3с4порав
-.и3с4права
.и3с4прави
.и3с4правк
-.и3с4прављ
.и3с4правн
+.и3с4прављ
+.и3с4права
.и3с4пупч
.и3с4пур
.и3с4ред
.и3с4рк
-.и3с4таћ
+.и3с4тави
+.и3с4тављ
.и3с4такн
.и3с4там
.и3с4тар
.и3с4тас
-.и3с4тави
-.и3с4тављ
-.и3с4тиц
-.и3с4тифан
+.и3с4таћ
.и3с4тин
.и3с4тир
-.и3с4точа
-.и3с4точн
-.и3с4точњ
+.и3с4тиц
+.и3с4тифан
.и3с4ток
.и3с4тори
+.и3с4точн
+.и3с4точњ
+.и3с4точа
+.и3с4трав
.и3с4трад
.и3с4тран
-.и3с4трав
.и3с4трић
.и3с4триж
.и3с4триц
.и3с4труг
.и3с4туп
-.и3с4уш
.и3с4ук
.и3с4ус
.и3с4ут
-.и3з4бав
-.и3з4бичкава
-.и3з4блеушан
-.и3з4бојак
-.и3з4бојк
-.и3з4драв
-.и3з4гомет
-.и3з4гред
-.и3з4грн
-.и3з4грт
-.и3з4иђ
-.и3з4ид
-.и3з4ими
-.и3з4јежљ
-.и3з4лож
-.и3з4лог
-.и3з4лопаћ
-.и3з4лоз
-.и3з4ним
-.и3з4ној
-.и3з4олац
-.и3з4олат
-.и3з4олир
-.и3з4олов
-.и3з4рачи
-.и3з4раел
-.и3з4раиљ
-.и3з4ун
-.и3з4упч
-.и3з4вала
-.и3з4вале
-.и3з4вали
-.и3з4ваљи
-.и3з4валу
-.и3з4вижд
-.и3з4виискр
-.и3з4вија
-.и3з4вијен
-.и3з4вин
-.и3з4вињ
-.и3з4вир
-.и3з4витоп
-.и3з4вјед
-.и3з4војац
-.и3з4војц
-.и3з4вор
-.инте2р3а
-.инте2р3е
-.инте2р3и
-.инте2р3је
-.инте2р3о
-.инте2р3у
-.инте3р4ежџ
-.инте3р4егн
-.инте3р4еса
-.инте3р4есе
-.инте3р4еси
-.инте3р4есн
-.инте3р4есо
-.инте3р4есу
-.инте3р4ије
-.инте3р4огат
-.ист2к
+.и3с4уш
+.и2ж3ђ
+.и2ш3ћ
+.и2ш3ч
.из3бе2з3обр
.из3бе2з3ум
-.из3г2н
.из3ва2н3евр
-.из4оанем
-.из4оаном
-.из4обат
-.из4оброн
-.из4одим
-.из4один
-.из4одоз
-.из4офон
-.из4офот
-.из4огам
-.из4огео
-.из4оглос
-.из4огон
-.из4ограф
-.из4охал
-.из4охаз
-.из4охел
-.из4охиј
-.из4охим
-.из4охипс
-.из4охит
-.из4охор
-.из4охро
-.из4оклин
-.из4околон
-.из4олекс
-.из4олукс
-.из4омер
-.из4ометр
-.из4оморф
-.из4онеф
-.из4оном
-.из4опат
-.из4опер
-.из4опле
-.из4опол
-.из4опсеф
-.из4орах
-.из4осеи
-.из4осинт
-.из4осист
-.из4оскел
-.из4оскоп
-.из4остаз
-.из4осте
-.из4отах
-.из4отал
-.из4отер
-.из4отон
-.из4отоп
-.из4отро
-.иза3г2н
-.иза3т2к
-.изд2на
-.изд2но
-.изд2ну
-.изр2к
-.јури2с3к
-.јури2с3п
-.к2
-.љ2
-.м2
-.н2
-.на2д3жањ
-.на2д3ждр
-.на2д3же
-.на2д3жир
-.на2д3жив
-.на2д3жњ
-.на2д3жуп
+.на2д3л
+.на2д3љ
+.на2д3в
+.на3д4вал
+.на3д4веси
+.на3д4вест
+.на3д4виј
+.на3д4вит
+.на3д4вла
+.на3д4воје
+.на3д4вор
.на2д3игр
.на2д3инж
.на2д3ина
.на2д3иск
-.на2д3јач
.на2д3јах
-.на2д3јеч
+.на2д3јач
.на2д3јек
.на2д3јез
+.на2д3јеч
.на2д3јун
-.на2д3л
-.на2д3љ
-.на2д3оч
-.на2д3офи
+.на3д4лан
+.на3д4леш
+.на3д4леж
.на2д3ора
+.на2д3осо
.на2д3осе
.на2д3осје
-.на2д3осо
-.на2д3рач
-.на2д3рашћ
+.на2д3офи
+.на2д3оч
.на2д3ран
+.на2д3рач
.на2д3раст
+.на2д3рашћ
.на2д3реал
.на2д3реп
+.на2д3рук
.на2д3руч
.на2д3руг
-.на2д3рук
-.на2д3уч
.на2д3удар
.на2д3ум
-.на2д3в
+.на2д3уч
.на2ј3а
.на2ј3е
.на2ј3и
.на2ј3о
.на2ј3у
-.на3д2нев
-.на3д2нич
-.на3д2ниц
-.на3д4лан
-.на3д4леш
-.на3д4леж
-.на3д4вал
-.на3д4веси
-.на3д4вест
-.на3д4виј
-.на3д4вит
-.на3д4вла
-.на3д4воје
-.на3д4вор
-.на3ј4аш
-.на3ј4ажи
+.на3ј4ави
+.на3ј4ављ
+.на3ј4ава
+.на3ј4аве
+.на3ј4ади
.на3ј4ада
.на3ј4аде
-.на3ј4ади
-.на3ј4ах
-.на3ј4ака
+.на3ј4ажи
+.на3ј4ази
.на3ј4ако
+.на3ј4ака
.на3ј4ало
.на3ј4ами
.на3ј4амл
.на3ј4амн
-.на3ј4арц
.на3ј4ари
.на3ј4арм
+.на3ј4арц
.на3ј4ати
.на3ј4аук
-.на3ј4ава
-.на3ј4аве
-.на3ј4ави
-.на3ј4ављ
-.на3ј4ази
-.на3ј4еже
-.на3ј4ежи
-.на3ј4ежу
-.на3ј4ец
-.на3ј4еда
+.на3ј4ах
+.на3ј4аш
.на3ј4еди
.на3ј4едн
.на3ј4едр
+.на3ј4еда
+.на3ј4ежи
+.на3ј4ежу
+.на3ј4еже
+.на3ј4езн
+.на3ј4езд
.на3ј4ести
.на3ј4етк
-.на3ј4езд
-.на3ј4езн
-.на3ј4урен
+.на3ј4ец
.на3ј4ури
-.на3т2ках
-.на3т2кам
-.на3т2касм
-.на3т2каст
-.наг2н
-.наг2њ
-.ну2с3пос
-.ну2с3про
-.ну2з3бел
-.ну2з3биљ
-.ну2з3љуб
-.ну2з3ре
-.ну2з3рје
-.ну2з3уж
+.на3ј4урен
+.о2б3ј
+.о2б3љ
+.о2б3р
+.обе2з3б
+.обе2з3д
+.обе2з3г
+.обе2з3ј
+.обе2з3л
+.обе2з3м
+.обе2з3н
+.обе2з3о
+.обе2з3љ
+.обе2з3р
+.обе2з3у
+.обе2з3в
+.обе3з4виј
+.обе3з4нан
+.обе3з4нањ
+.обе3з4нач
+.обе3з4уб
+.обе2с3ц
+.обе2с3к
+.обе2с3п
+.обе2с3т
+.обе3с4тан
+.обе3с4тиј
+.обе3с4тран
+.обе2ш3ћ
+.обе2ш3ч
.о2б3игр
.о2б3истин
.о2б3истињ
-.о2б3ј
+.о3б4јек
+.о3б4јер
+.о3б4јеси
+.о3б4јет
+.о3б4јеш
.о2б3лај
-.о2б3лакш
.о2б3лам
+.о2б3лакш
.о2б3ласк
+.о2б3леп
+.о2б3лет
.о2б3лећ
.о2б3леж
-.о2б3леден
.о2б3лег
-.о2б3леп
-.о2б3лет
-.о2б3лијеж
-.о2б3лијег
.о2б3лијеп
.о2б3лијет
-.о2б3лист
+.о2б3лијеж
+.о2б3лијег
+.о2б3леден
.о2б3лив
.о2б3лизат
.о2б3лизав
.о2б3лизи
-.о2б3љ
+.о2б3лист
.о2б3лока
-.о2б3луч
.о2б3лук
-.о2б3ору
-.о2б3р
-.о2б3уж
-.о2б3убож
-.о2б3уд
-.о2б3уме
-.о2б3уми
-.о2б3умр
-.о2б3уз
-.о2д3жал
-.о2д3жаљ
-.о2д3же
-.о2д3жи
-.о2д3жв
-.о2д3арг
-.о2д3и2з3д
-.о2д3и2з3в
-.о2д3игр
-.о2д3иск
-.о2д3исти
-.о2д3ј
-.о2д3л
-.о2д3љ
-.о2д3ок
-.о2д3онд
-.о2д3онл
-.о2д3оно
-.о2д3ону
-.о2д3озд
-.о2д3озг
-.о2д3р
-.о2д3уч
-.о2д3ук
-.о2д3ул
-.о2д3ум
-.о2д3уве
-.о2д3уви
-.о2д3узд
-.о2д3узе
-.о2д3узи
-.о2д3узл
-.о2д3в
-.о3б4јеш
-.о3б4јек
-.о3б4јер
-.о3б4јеси
-.о3б4јет
+.о2б3луч
.о3б4љан
.о3б4љут
.о3б4љуз
-.о3б4рђ
-.о3б4рч
-.о3б4рш
-.о3б4раћ
-.о3б4рашч
-.о3б4рашн
+.о2б3ору
.о3б4раже
-.о3б4рамб
-.о3б4ран
-.о3б4рањ
-.о3б4рат
-.о3б4раза
-.о3б4разд
.о3б4рази
.о3б4разн
.о3б4разо
.о3б4разу
+.о3б4раза
+.о3б4разд
+.о3б4рамб
+.о3б4ран
+.о3б4рањ
+.о3б4рат
+.о3б4раћ
+.о3б4рашн
+.о3б4рашч
+.о3б4рв
+.о3б4рђ
+.о3б4рем
+.о3б4рес
.о3б4ређ
.о3б4реч
.о3б4реж
.о3б4рец
.о3б4ред
-.о3б4рем
-.о3б4рес
.о3б4рети
.о3б4ретн
-.о3б4рич
-.о3б4риц
.о3б4риј
.о3б4рис
.о3б4рит
.о3б4рив
+.о3б4рич
+.о3б4риц
.о3б4рк
.о3б4рл
-.о3б4рљ
.о3б4рн
-.о3б4роћ
-.о3б4роч
+.о3б4рљ
+.о3б4рс
+.о3б4рт
+.о3б4рш
+.о3б4рч
.о3б4рок
.о3б4рон
+.о3б4роњ
+.о3б4роћ
+.о3б4роч
.о3б4рова
.о3б4ровц
-.о3б4рс
-.о3б4руч
-.о3б4руш
.о3б4рук
.о3б4рун
.о3б4рус
-.о3д4јећ
+.о3б4руњ
+.о3б4руш
+.о3б4руч
+.о2б3убож
+.о2б3уз
+.о2б3уж
+.о2б3уд
+.о2б3уми
+.о2б3умј
+.о2б3умр
+.о2б3уме
+.о2д3ј
+.о2д3л
+.о2д3љ
+.о2д3р
+.о2д3в
+.о2д3арг
+.о3д4вај
+.о3д4важ
+.о3д4весн
+.о3д4вест
+.о3д4веса
+.о3д4викав
+.о3д4викн
+.о3д4вис
+.о3д4вић
+.о3д4вој
+.о2д3игр
+.о2д3и2з3в
+.о2д3и2з3д
+.о2д3иск
+.о2д3исти
+.о3д4јел
.о3д4јен
.о3д4јев
+.о3д4јећ
+.о3д4лаз
.о3д4лаж
.о3д4лаг
.о3д4лака
-.о3д4лаз
-.о3д4луч
.о3д4лук
-.о3д4рж
-.о3д4раћ
-.о3д4рачи
-.о3д4раж
-.о3д4рана
-.о3д4ране
+.о3д4луч
+.о2д3озд
+.о2д3озг
+.о2д3ок
+.о2д3онл
+.о2д3оно
+.о2д3ону
+.о2д3онд
.о3д4рани
.о3д4рано
.о3д4рану
-.о3д4рапа
+.о3д4рана
+.о3д4ране
+.о3д4раз
+.о3д4раћ
+.о3д4раж
.о3д4рапи
.о3д4рапљ
-.о3д4раз
-.о3д4ређ
-.о3д4ред
+.о3д4рапа
+.о3д4рачи
+.о3д4рвен
+.о3д4рвењ
+.о3д4рвеч
.о3д4рем
.о3д4рен
-.о3д4рич
+.о3д4рет
+.о3д4ређ
+.о3д4ред
+.о3д4рл
+.о3д4рн
+.о3д4рп
+.о3д4рљ
+.о3д4рт
+.о3д4рж
+.о3д4рин
+.о3д4рињ
.о3д4риш
+.о3д4рич
.о3д4риб
.о3д4риц
-.о3д4рин
-.о3д4рињ
-.о3д4рл
-.о3д4рљ
-.о3д4рн
.о3д4рон
.о3д4роњ
-.о3д4рп
-.о3д4рт
.о3д4руж
.о3д4руг
-.о3д4рвеч
-.о3д4рвен
-.о3д4рвењ
-.о3д4важ
-.о3д4вај
-.о3д4веса
-.о3д4весн
-.о3д4вест
-.о3д4вић
-.о3д4викав
-.о3д4викн
-.о3д4вис
-.о3д4вој
-.о3т2ках
-.о3т2кам
-.о3т2касм
-.о3т2каст
-.обе2ш3ћ
-.обе2ш3ч
-.обе2с3ц
-.обе2с3к
-.обе2с3п
-.обе2с3т
-.обе2з3б
-.обе2з3д
-.обе2з3г
-.обе2з3ј
-.обе2з3л
-.обе2з3љ
-.обе2з3м
-.обе2з3н
-.обе2з3о
-.обе2з3р
-.обе2з3у
-.обе2з3в
-.обе3с4тан
-.обе3с4тиј
-.обе3с4тран
-.обе3з4нач
-.обе3з4нан
-.обе3з4нањ
-.обе3з4уб
-.обе3з4виј
-.од3г2н
-.од3м2н
-.ода3д2н
-.ода3г2н
+.о2д3уви
+.о2д3уве
+.о2д3узи
+.о2д3узл
+.о2д3узд
+.о2д3узе
+.о2д3ук
+.о2д3ул
+.о2д3ум
+.о2д3уч
.по2д3адм
+.по2д3вариј
+.по2д3вез
+.по2д3веч
+.по2д3веж
+.по2д3вик
+.по2д3вил
+.по2д3вир
+.по2д3вињ
+.по2д3влас
+.по2д3влаш
+.по2д3воз
+.по2д3вођ
+.по2д3вож
+.по2д3вод
+.по2д3врат
+.по2д3враћ
+.по2д3врћ
+.по2д3врж
+.по2д3врг
+.по2д3врис
+.по2д3врс
+.по2д3вућ
.по2д3игр
.по2д3изв
.по2д3ј
+.по3д4јен
+.по3д4јеч
.по2д3лакат
.по2д3лакт
+.по2д3леп
+.по2д3лет
.по2д3лећ
.по2д3леж
.по2д3лег
-.по2д3леп
-.по2д3лет
+.по2д3лиз
+.по2д3лијеп
+.по2д3лијет
.по2д3лијећ
.по2д3лијеж
.по2д3лијег
-.по2д3лијеп
-.по2д3лијет
.по2д3лист
-.по2д3лиз
-.по2д3љут
.по2д3лок
.по2д3лом
+.по2д3луп
.по2д3луч
.по2д3луж
-.по2д3луп
-.по2д3оч
+.по2д3љут
+.по2д3окн
.по2д3ош
+.по2д3оч
.по2д3оф
-.по2д3окн
-.по2д3ра2з3д
-.по2д3рад
-.по2д3рам
-.по2д3ран
-.по2д3рањ
-.по2д3рас
.по2д3равн
.по2д3равњ
+.по2д3рад
+.по2д3ра2з3д
.по2д3разр
.по2д3разу
+.по2д3рам
+.по2д3ран
+.по2д3рас
+.по2д3рањ
.по2д3реп
.по2д3рес
.по2д3рез
.по2д3рик
.по2д3рит
-.по2д3рож
.по2д3рон
.по2д3ров
-.по2д3руча
+.по2д3рож
+.по2д3рук
+.по2д3руб
.по2д3ручи
.по2д3ручн
-.по2д3руб
-.по2д3рук
+.по2д3руча
.по2д3упла
.по2д3усм
.по2д3усн
-.по2д3вариј
-.по2д3веч
-.по2д3веж
-.по2д3вез
-.по2д3вик
-.по2д3вил
-.по2д3вир
-.по2д3влаш
-.по2д3влас
-.по2д3вођ
-.по2д3вож
-.по2д3вод
-.по2д3воз
-.по2д3врћ
-.по2д3врж
-.по2д3враћ
-.по2д3врат
-.по2д3врг
-.по2д3врис
-.по2д3врс
-.по2д3вућ
-.по2ст3егз
-.по2ст3инду
-.по2ст3лим
-.по2ст3онк
-.по2ст3опер
-.по3д2нев
-.по3д4јеч
-.по3д4јен
-.по3г2н
-.по3м2н
-.по3м2њ
-.по3р2ђ
-.по3т2ках
-.по3т2кам
-.по3т2кат
-.по3т2кав
-.пре2д3же
-.пре2д3жи
-.пре2д3ид
+.пре2д3ј
+.пре2д3в
+.пре3д4вај
+.пре3д4вар
+.пре3д4вест
+.пре3д4воји
+.пре3д4воја
+.пре3д4воје
+.пре3д4вор
+.пре3д4вос
+.пре3д4јен
.пре2д3игр
+.пре2д3ид
+.пре2д3изб
.пре2д3испи
.пре2д3исто
.пре2д3истр
-.пре2д3изб
-.пре2д3ј
.пре2д3обј
.пре2д3одре
.пре2д3окус
+.пре2д3осв
.пре2д3осе
.пре2д3осје
-.пре2д3осв
+.пре2д3рат
.пре2д3рач
.пре2д3рад
-.пре2д3рат
.пре2д3руч
.пре2д3убеђ
.пре2д3убијеђ
.пре2д3убјеђ
-.пре2д3удар
-.пре2д3угов
-.пре2д3упис
-.пре2д3усло
.пре2д3увер
.пре2д3увјер
.пре2д3увјет
-.пре2д3в
-.пре3д4јен
-.пре3д4вај
-.пре3д4вар
-.пре3д4вест
-.пре3д4воја
-.пре3д4воје
-.пре3д4воји
-.пре3д4вор
-.пре3д4вос
-.пре3т2ках
-.пре3т2кам
-.пре3т2кат
-.пред3м2н
-.пред3м2њ
-.про3г2н
-.про3т2ка
-.про3т2ки
+.пре2д3угов
+.пре2д3удар
+.пре2д3упис
+.пре2д3усло
.проти2в3акц
-.проти2в3оф
.проти2в3отр
+.проти2в3оф
.проти2в3р
-.проти2в3уд
.проти2в3ус
-.р2
-.ра2ш3ћ
-.ра2ш3ч
+.проти2в3уд
.ра2ж3ђ
-.ра2с3ц
-.ра2с3к
-.ра2с3п
-.ра2с3т
-.ра2з3анал
.ра2з3б
.ра2з3д
.ра2з3е
.ра2з3г
.ра2з3и
+.ра2з3ј
.ра2з3л
-.ра2з3љ
.ра2з3м
.ра2з3н
+.ра2з3љ
+.ра2з3р
+.ра2з3в
.ра2з3њ
-.ра2з3оба
+.ра2з3анал
+.ра3з4бан
+.ра3з4бар
+.ра3з4бау
+.ра3з4бад
+.ра3з4башур
+.ра3з4бој
+.ра3з4бор
+.ра3з4вал
+.ра3з4веде
+.ра3з4вест
+.ра3з4виго
+.ра3з4вију
+.ра3з4вија
+.ра3з4вије
+.ра3з4вит
+.ра3з4вић
+.ра3з4вој
+.ра3з4вон
+.ра3з4врат
+.ра3з4враћ
+.ра3з4врт
+.ра3з4врћ
+.ра3з4гађ
+.ра3з4грт
+.ра3з4ев
+.ра3з4иј
+.ра3з4ил
+.ра3з4ин
+.ра3з4ир
+.ра3з4ит
+.ра3з4из
+.ра3з4иђ
+.ра3з4ић
+.ра3з4ид
+.ра3з4лаз
+.ра3з4лаг
+.ра3з4лик
+.ра3з4лич
+.ра3з4лоз
+.ра3з4лож
+.ра3з4лог
+.ра3з4мет
+.ра3з4мећ
+.ра3з4мрск
+.ра3з4нат
.ра2з3обл
.ра2з3обр
+.ра2з3оба
.ра2з3од
.ра2з3орат
.ра2з3орав
.ра2з3орт
.ра2з3ору
.ра2з3от
-.ра2з3р
+.ра3з4ред
+.ра3з4рок
+.ра3з4роч
+.ра2з3уве
+.ра2з3уди
.ра2з3уда
.ра2з3удб
-.ра2з3уди
-.ра2з3улар
-.ра2з3умр
-.ра2з3уве
+.ра2з3узи
.ра2з3узд
.ра2з3узе
-.ра2з3узи
-.ра2з3в
-.ра3ш4ћењ
-.ра3ш4чић
+.ра2з3улар
+.ра2з3умр
+.ра2с3ц
+.ра2с3к
+.ра2с3п
+.ра2с3т
.ра3с4как
.ра3с4канд
.ра3с4кин
-.ра3с4клад
-.ра3с4клањ
.ра3с4клап
+.ра3с4клањ
+.ра3с4клад
.ра3с4клон
-.ра3с4клопа
.ра3с4клопи
.ра3с4клопљ
+.ра3с4клопа
.ра3с4кош
.ра3с4кроп
.ра3с4пај
.ра3с4пав
-.ра3с4пета
-.ра3с4пете
.ра3с4пети
.ра3с4пето
+.ра3с4пета
+.ра3с4пете
.ра3с4пику
.ра3с4пињ
.ра3с4плин
@@ -1021,1412 +2281,3048 @@
.ра3с4тав
.ра3с4тењ
.ра3с4тил
-.ра3с4тињ
.ра3с4тир
.ра3с4тис
.ра3с4тит
+.ра3с4тињ
.ра3с4тој
.ра3с4трел
.ра3с4трет
.ра3с4трој
.ра3с4трт
-.ра3с4тућ
.ра3с4туп
.ра3с4тур
-.ра3з4башур
-.ра3з4бад
-.ра3з4бан
-.ра3з4бар
-.ра3з4бау
-.ра3з4бој
-.ра3з4бор
-.ра3з4ев
-.ра3з4гађ
-.ра3з4грт
-.ра3з4иђ
-.ра3з4ић
-.ра3з4ид
-.ра3з4иј
-.ра3з4ин
-.ра3з4ир
-.ра3з4из
-.ра3з4лаг
-.ра3з4лаз
-.ра3з4лич
-.ра3з4лик
-.ра3з4лож
-.ра3з4лог
-.ра3з4лоз
-.ра3з4мећ
-.ра3з4мет
-.ра3з4мрск
-.ра3з4нат
-.ра3з4ред
-.ра3з4роч
-.ра3з4рок
-.ра3з4вал
-.ра3з4веде
-.ра3з4вест
-.ра3з4вић
-.ра3з4виго
-.ра3з4вија
-.ра3з4вије
-.ра3з4вију
-.ра3з4вит
-.ра3з4вој
-.ра3з4вон
-.ра3з4врћ
-.ра3з4враћ
-.ра3з4врат
-.ра3з4врт
+.ра3с4тућ
.ра4с5турч
-.раз3д2ни
-.раз3г2н
-.раза3г2н
-.раза3т2ка
-.с2
-.су2б3а
-.су2б3инв
-.су2б3јунк
-.су2б3л
-.су2б3окс
-.су2б3орд
-.су2б3реп
-.су2б3рог
-.су3б4аш
-.супе2р3а
-.супе2р3е
-.супе2р3и
-.супе2р3о
-.супе2р3у
-.супе3р4иор
-.тран2с3а
-.тран2с3ц
-.тран2с3е
-.тран2с3к
-.тран2с3л
-.тран2с3м
-.тран2с3н
-.тран2с3о
-.тран2с3п
-.тран2с3т
-.тран2с3у
-.тран2с3в
-.тран3с4еп
-.тран3с4кри
-.тран3с4уд
-.тран3с4ум
-.у2ш3ћ
-.у2ш3ч
-.у2с3ц
-.у2с3к
-.у2с3п
-.у2с3талас
-.у2с3тара
-.у2с3тећ
-.у2с3тег
-.у2с3тер
-.у2с3тов
-.у2с3трћ
-.у2с3трч
-.у2с3трај
-.у2с3трал
-.у2с3треб
-.у2с3треп
-.у2с3трес
-.у2с3трг
-.у2с3трк
-.у2с3трн
-.у2с3трп
-.у2с3тућ
-.у2с3тум
-.у2с3тур
-.у2с3тврђ
-.у2с3тврд
+.ра2ш3ћ
+.ра2ш3ч
+.ра3ш4ћењ
+.ра3ш4чић
.у2з3б
.у2з3д
.у2з3г
.у2з3и
-.у2з3игр
-.у2з3инат
-.у2з3искр
+.у2з3ј
.у2з3л
-.у2з3љ
.у2з3м
.у2з3н
+.у2з3љ
+.у2з3р
+.у2з3в
.у2з3њ
+.у3з4бор
+.у3з4ван
+.у3з4ват
+.у3з4виж
+.у3з4вијо
+.у3з4вију
+.у3з4вија
+.у3з4вије
+.у3з4вој
+.у3з4диц
+.у2з3игр
+.у2з3инат
+.у2з3искр
+.у3з4лан
+.у3з4лат
+.у3з4лим
+.у3з4лит
+.у3з4лић
+.у3з4лиц
+.у3з4лов
+.у3з4лудоб
+.у3з4нак
+.у3з4нач
+.у3з4неве
+.у3з4невје
+.у3з4нич
+.у3з4ниц
+.у3з4ној
.у2з3обест
.у2з3обијест
-.у2з3охо
.у2з3орат
.у2з3орав
-.у2з3р
+.у2з3охо
+.у3з4рет
+.у3з4рев
+.у3з4ријет
+.у3з4ријев
+.у3з4рн
+.у3з4рњ
+.у3з4роко
+.у3з4року
+.у3з4рока
+.у3з4роч
+.у3з4руј
.у2з3угар
-.у2з3в
-.у3г2ми
-.у3г2н
+.у2с3ц
+.у2с3к
+.у2с3п
.у3с4как
.у3с4клађ
.у3с4клад
.у3с4ко
+.у4с5ком
+.у4с5ков
+.у4с5кош
+.у4с5коко
+.у4с5колу
+.у4с5коле
+.у4с5копа
+.у4с5кора
+.у4с5коси
+.у4с5котр
.у3с4куп
-.у3с4пало
.у3с4пав
-.у3с4пеш
+.у3с4пало
.у3с4пех
.у3с4пел
.у3с4пем
-.у3с4пент
.у3с4пет
.у3с4пев
-.у3с4пија
-.у3с4пије
-.у3с4пијуш
-.у3с4пикуш
-.у3с4пјеш
+.у3с4пеш
.у3с4пјех
.у3с4пјел
.у3с4пјем
.у3с4пјет
.у3с4пјев
+.у3с4пјеш
+.у3с4пент
+.у3с4пија
+.у3с4пије
+.у3с4пијуш
+.у3с4пикуш
.у3с4пон
+.у3с4пори
.у3с4пора
-.у3с4пореч
.у3с4порен
.у3с4порењ
-.у3с4пори
+.у3с4пореч
.у3с4пособ
-.у3с4према
.у3с4преми
+.у3с4према
+.у3с4рк
+.у3с4рн
+.у3с4рп
+.у3с4рљ
+.у3с4рт
.у3с4рђ
.у3с4рж
.у3с4ра
.у3с4рд
.у3с4ре
.у3с4ријед
-.у3с4рк
-.у3с4рљ
-.у3с4рн
-.у3с4рп
-.у3з4бор
-.у3з4диц
-.у3з4лан
-.у3з4лат
-.у3з4лић
-.у3з4лиц
-.у3з4лим
-.у3з4лит
-.у3з4лов
-.у3з4лудоб
-.у3з4нач
-.у3з4нак
-.у3з4неве
-.у3з4невје
-.у3з4нич
-.у3з4ниц
-.у3з4ној
-.у3з4рет
-.у3з4рев
-.у3з4ријет
-.у3з4ријев
-.у3з4рн
-.у3з4рњ
-.у3з4роч
-.у3з4рока
-.у3з4роко
-.у3з4року
-.у3з4руј
-.у3з4ван
-.у3з4ват
-.у3з4виж
-.у3з4вија
-.у3з4вије
-.у3з4вијо
-.у3з4вију
-.у3з4вој
-.у4с5кош
-.у4с5коко
-.у4с5коле
-.у4с5колу
-.у4с5ком
-.у4с5копа
-.у4с5кора
-.у4с5коси
-.у4с5котр
-.у4с5ков
-.уза3т2ка
-.ва2н3евр
-.ва2н3устав
-.з2
-.за3г2н
-.за3т2ка
-2ђ1ђ
-2ђ1ћ
-2ђ1ч
-2ђ1ш
-2ђ1ж
-2ђ1б
-2ђ1ц
-2ђ1д
-2ђ1џ
-2ђ1ф
-2ђ1г
-2ђ1х
-2ђ1к
-2ђ1љ
-2ђ1м
-2ђ1н
-2ђ1р
-2ђ1с
-2ђ1з
-2ћ1ђ
-2ћ1ћ
-2ћ1ч
-2ћ1ш
-2ћ1ж
-2ћ1б
-2ћ1ц
-2ћ1д
-2ћ1џ
-2ћ1ф
-2ћ1г
-2ћ1х
-2ћ1к
-2ћ1љ
-2ћ1м
-2ћ1н
-2ћ1р
-2ћ1с
-2ћ1з
-2ч1ђ
-2ч1ћ
-2ч1ч
-2ч1ш
-2ч1ж
-2ч1б
-2ч1ц
-2ч1д
-2ч1џ
-2ч1ф
-2ч1г
-2ч1х
-2ч1ј
-2ч1к
-2ч1љ
-2ч1м
-2ч1н
-2ч1р
-2ч1с
-2ч1т
-2ч1з
-2ч3вј
-2ч3вл
-2ч3вљ
-2чв.
-2ш1ђ
-2ш1ш
-2ш1ж
-2ш1б
-2ш1д
-2ш1џ
-2ш1ф
-2ш1г
-2ш1х
-2ш1ј
-2ш1р
-2ш1с
-2ш1з
-2ш3чв
-2ш3цј
-2ш3цв
-2ш3мј
-2ш3мл
-2ш3мљ
-2ш3пј
-2ш3пл
-2ш3пљ
-2ш3тј
-2ш3тл
-2ш3тљ
-2ш3вл
-2ш3вљ
-2шћ.
-2шч.
-2шчћ
-2шчч
-2шчш
-2шчж
-2шчб
-2шчц
-2шчд
-2шчџ
-2шчф
-2шчг
-2шчх
-2шчј
-2шчк
-2шчљ
-2шчм
-2шчн
-2шчр
-2шчс
-2шчт
-2шчз
-2шц.
-2шцћ
-2шцч
-2шцш
-2шцж
-2шцб
-2шцц
-2шцд
-2шцџ
-2шцф
-2шцг
-2шцх
-2шцк
-2шцљ
-2шцм
-2шцн
-2шцр
-2шцс
-2шцт
-2шцз
-2шк.
-2шкђ
-2шкћ
-2шкч
-2шкш
-2шкж
-2шкб
-2шкц
-2шкд
-2шкџ
-2шкф
-2шкг
-2шкх
-2шкк
-2шкм
-2шкн
-2шкс
-2шкт
-2шкз
-2шљ.
-2шм.
-2шмђ
-2шмч
-2шмш
-2шмж
-2шмб
-2шмц
-2шмд
-2шмџ
-2шмф
-2шмг
-2шмх
-2шмк
-2шмм
-2шмн
-2шмс
-2шмт
-2шмз
-2шн.
-2шп.
-2шпђ
-2шпч
-2шпш
-2шпж
-2шпб
-2шпц
-2шпд
-2шпџ
-2шпф
-2шпг
-2шпх
-2шпк
-2шпм
-2шпн
-2шпс
-2шпт
-2шпз
-2шт.
-2штђ
-2штч
-2штш
-2штж
-2штб
-2штц
-2штд
-2штџ
-2штф
-2штг
-2штх
-2штк
-2штм
-2штн
-2штс
-2штт
-2штз
-2шв.
-2швђ
-2швч
-2швш
-2швж
-2швб
-2швц
-2швд
-2швџ
-2швф
-2швг
-2швх
-2швк
-2швм
-2швн
-2швс
-2швт
-2швз
-2ж1ћ
-2ж1ч
-2ж1ш
-2ж1ж
-2ж1ц
-2ж1џ
-2ж1ф
-2ж1х
-2ж1ј
-2ж1к
-2ж1р
-2ж1с
-2ж1т
-2ж1з
-2ж3бј
-2ж3бл
-2ж3бљ
-2ж3бр
-2ж3дј
-2ж3дл
-2ж3дљ
-2ж3дв
-2ж3гј
-2ж3гл
-2ж3гљ
-2ж3гр
-2ж3гв
-2ж3мј
-2ж3мл
-2ж3мљ
-2ж3мр
-2ж3вл
-2ж3вљ
-2жђ.
-2жб.
-2жбђ
-2жбч
-2жбш
-2жбж
-2жбб
-2жбц
-2жбд
-2жбџ
-2жбф
-2жбг
-2жбх
-2жбк
-2жбм
-2жбн
-2жбс
-2жбт
-2жбз
-2жд.
-2ждч
-2ждш
-2ждб
-2ждц
-2ждд
-2ждџ
-2ждф
-2ждг
-2ждх
-2ждк
-2ждм
-2ждн
-2ждс
-2ждт
-2ждз
-2жг.
-2жгч
-2жгш
-2жгж
-2жгб
-2жгц
-2жгд
-2жгџ
-2жгф
-2жгг
-2жгх
-2жгк
-2жгм
-2жгн
-2жгс
-2жгт
-2жгз
-2жл.
-2жљ.
-2жм.
-2жмђ
-2жмч
-2жмш
-2жмж
-2жмб
-2жмц
-2жмд
-2жмџ
-2жмф
-2жмг
-2жмх
-2жмк
-2жмм
-2жмн
-2жмс
-2жмт
-2жмз
-2жн.
-2жњ.
-2жвђ
-2жвч
-2жвш
-2жвж
-2жвб
-2жвц
-2жвд
-2жвџ
-2жвф
-2жвг
-2жвх
-2жвк
-2жвм
-2жвн
-2жвс
-2жвт
-2жвз
-2а1
-2б1ђ
-2б1ћ
-2б1ч
-2б1ш
-2б1ж
-2б1б
-2б1ц
-2б1д
-2б1џ
-2б1ф
-2б1г
-2б1х
-2б1к
-2б1м
-2б1н
-2б1с
-2б1т
-2б1з
-2бј.
-2бл.
-2бљ.
-2бр.
-2ц1ђ
-2ц1ћ
-2ц1ч
-2ц1ш
-2ц1ж
-2ц1б
-2ц1ц
-2ц1д
-2ц1џ
-2ц1ф
-2ц1г
-2ц1х
-2ц1к
-2ц1љ
-2ц1м
-2ц1н
-2ц1с
-2ц1т
-2ц1з
-2ц3вл
-2ц3вљ
-2цј.
-2цр.
-2цв.
-2д1ђ
-2д1ћ
-2д1ч
-2д1ш
-2д1б
-2д1ц
-2д1д
-2д1џ
-2д1ф
-2д1г
-2д1х
-2д1к
-2д1м
-2д1н
-2д1с
-2д1т
-2д1з
-2д3вл
-2д3вљ
-2д3вр
-2џ1ђ
-2џ1ћ
-2џ1ч
-2џ1ш
-2џ1ж
-2џ1б
-2џ1ц
-2џ1д
-2џ1џ
-2џ1ф
-2џ1г
-2џ1х
-2џ1ј
-2џ1к
-2џ1љ
-2џ1м
-2џ1н
-2џ1р
-2џ1с
-2џ1т
-2џ1з
-2џ.
-2дј.
-2дл.
-2дљ.
-2др.
-2дв.
-2е1
-2ф1ђ
-2ф1ћ
-2ф1ч
-2ф1ш
-2ф1ж
-2ф1б
-2ф1ц
-2ф1д
-2ф1џ
-2ф1ф
-2ф1г
-2ф1х
-2ф1к
-2ф1м
-2ф1н
-2ф1с
-2ф1т
-2ф1з
-2фј.
-2фл.
-2фљ.
-2фр.
-2г1ђ
-2г1ћ
-2г1ч
-2г1ш
-2г1ж
-2г1б
-2г1ц
-2г1д
-2г1џ
-2г1ф
-2г1г
-2г1х
-2г1к
-2г1м
-2г1н
-2г1с
-2г1т
-2г1з
-2г3вј
-2г3вл
-2г3вљ
-2г3вр
-2гј.
-2гл.
-2гљ.
-2гр.
-2гв.
-2х1ђ
-2х1ћ
-2х1ч
-2х1ш
-2х1ж
-2х1б
-2х1ц
-2х1д
-2х1џ
-2х1ф
-2х1г
-2х1х
-2х1к
-2х1м
-2х1н
-2х1с
-2х1т
-2х1з
-2х3вј
-2х3вл
-2х3вљ
-2х3вр
-2хј.
-2хл.
-2хљ.
-2хр.
-2хв.
-2хвђ
-2хвч
-2хвш
-2хвж
-2хвб
-2хвц
-2хвд
-2хвџ
-2хвф
-2хвг
-2хвх
-2хвк
-2хвм
-2хвн
-2хвс
-2хвт
-2хвз
-2и1
-2ј1ђ
-2ј1ћ
-2ј1ч
-2ј1ш
-2ј1ж
-2ј1б
-2ј1ц
-2ј1д
-2ј1џ
-2ј1ф
-2ј1г
-2ј1х
-2ј1ј
-2ј1к
-2ј1љ
-2ј1м
-2ј1н
-2ј1р
-2ј1с
-2ј1т
-2ј1з
-2к1ђ
-2к1ћ
-2к1ч
-2к1ш
-2к1ж
-2к1б
-2к1ц
-2к1д
-2к1џ
-2к1ф
-2к1г
-2к1х
-2к1к
-2к1м
-2к1н
-2к1с
-2к1т
-2к1з
-2к3вј
-2к3вл
-2к3вљ
-2кј.
-2кл.
-2кљ.
-2кр.
-2кв.
-2љ1ђ
-2љ1ћ
-2љ1ч
-2љ1ш
-2љ1ж
-2љ1б
-2љ1ц
-2љ1д
-2љ1џ
-2љ1ф
-2љ1г
-2љ1х
-2љ1ј
-2љ1к
-2љ1љ
-2љ1м
-2љ1н
-2љ1р
-2љ1с
-2љ1т
-2љ1з
-2м1ђ
-2м1ћ
-2м1ч
-2м1ш
-2м1ж
-2м1б
-2м1ц
-2м1д
-2м1џ
-2м1ф
-2м1г
-2м1х
-2м1к
-2м1м
-2м1н
-2м1с
-2м1т
-2м1з
-2мј.
-2мл.
-2мљ.
-2мр.
-2н1ђ
-2н1ћ
-2н1ч
-2н1ш
-2н1ж
-2н1б
-2н1ц
-2н1д
-2н1џ
-2н1ф
-2н1г
-2н1х
-2н1к
-2н1љ
-2н1м
-2н1н
-2н1р
-2н1с
-2н1т
-2н1з
-2о1
-2пј.
-2пл.
-2пљ.
-2пр.
-2р1ђ
-2р1ћ
-2р1ч
-2р1ш
-2р1ж
-2р1б
-2р1ц
-2р1д
-2р1џ
-2р1ф
-2р1г
-2р1х
-2р1ј
-2р1к
-2р1љ
-2р1м
-2р1н
-2р1р
-2р1с
-2р1т
-2р1з
-2с1ђ
-2с1ћ
-2с1ч
-2с1ш
-2с1ж
-2с1б
-2с1д
-2с1џ
-2с1ф
-2с1г
-2с1х
-2с1с
-2с1з
-2с3кј
-2с3кљ
-2с3тл
-2с3вљ
-2сц.
-2сцђ
-2сцћ
-2сцч
-2сцш
-2сцж
-2сцб
-2сцц
-2сцд
-2сцџ
-2сцф
-2сцг
-2сцх
-2сцк
-2сцљ
-2сцм
-2сцн
-2сцр
-2сцс
-2сцт
-2сцз
-2сј.
-2ск.
-2скђ
-2скћ
-2скч
-2скш
-2скж
-2скб
-2скц
-2скд
-2скџ
-2скф
-2скг
-2скх
-2скк
-2скм
-2скн
-2скс
-2скт
-2скз
-2сл.
-2сљ.
-2см.
-2смђ
-2смћ
-2смч
-2смш
-2смж
-2смб
-2смц
-2смд
-2смџ
-2смф
-2смг
-2смх
-2смк
-2смм
-2смн
-2смс
-2смт
-2смз
-2сн.
-2сњ.
-2сп.
-2спђ
-2спћ
-2спч
-2спш
-2спж
-2спб
-2спц
-2спд
-2спџ
-2спф
-2спг
-2спх
-2спк
-2спм
-2спн
-2спп
-2спс
-2спт
-2спв
-2спз
-2ср.
-2ст.
-2стђ
-2стћ
-2стч
-2стш
-2стж
-2стб
-2стц
-2стд
-2стџ
-2стф
-2стг
-2стх
-2стк
-2стм
-2стн
-2стп
-2стс
-2стт
-2стз
-2св.
-2свђ
-2свћ
-2свч
-2свш
-2свж
-2свб
-2свц
-2свд
-2свџ
-2свф
-2свг
-2свх
-2свк
-2свм
-2свн
-2свп
-2свс
-2свт
-2свв
-2свз
-2т1ђ
-2т1ћ
-2т1ч
-2т1ш
-2т1ж
-2т1б
-2т1ц
-2т1д
-2т1џ
-2т1ф
-2т1г
-2т1х
-2т1к
-2т1м
-2т1н
-2т1п
-2т1с
-2т1т
-2т1з
-2т3вј
-2т3вл
-2т3вљ
-2тј.
-2тл.
-2тљ.
-2тр.
-2тв.
-2у1
-2в1ђ
-2в1ћ
-2в1ч
-2в1ш
-2в1ж
-2в1б
-2в1ц
-2в1д
-2в1џ
-2в1ф
-2в1г
-2в1х
-2в1к
-2в1м
-2в1н
-2в1п
-2в1с
-2в1т
-2в1в
-2в1з
-2вј.
-2вл.
-2вљ.
-2вр.
-2з1ђ
-2з1ћ
-2з1ч
-2з1ш
-2з1ж
-2з1ц
-2з1џ
-2з1ф
-2з1х
-2з1к
-2з1п
-2з1с
-2з1з
-2з3бљ
-2з3дл
-2з3дљ
-2з3дв
-2з3гј
-2з3гљ
-2з3мл
-2з3мр
-2з3вл
-2з3вљ
-2зб.
-2збђ
-2збћ
-2збч
-2збш
-2збж
-2збб
-2збц
-2збд
-2збџ
-2збф
-2збг
-2збх
-2збк
-2збм
-2збн
-2збп
-2збс
-2збв
-2збз
-2зд.
-2здђ
-2здћ
-2здч
-2здш
-2здб
-2здц
-2здд
-2здџ
-2здф
-2здг
-2здх
-2здк
-2здм
-2здн
-2здп
-2здс
-2здз
-2зг.
-2згђ
-2згћ
-2згч
-2згж
-2згб
-2згц
-2згд
-2згџ
-2згф
-2згг
-2згх
-2згк
-2згм
-2згн
-2згп
-2згс
-2згз
-2зј.
-2зл.
-2зљ.
-2зм.
-2змђ
-2змћ
-2змч
-2змш
-2змж
-2змб
-2змц
-2змд
-2змџ
-2змф
-2змг
-2змх
-2змк
-2змм
-2змн
-2змп
-2змс
-2змв
-2змз
-2зн.
-2зњ.
-2зр.
-2зв.
-2звђ
-2звћ
-2звч
-2звш
-2звж
-2звб
-2звц
-2звд
-2звџ
-2звф
-2звг
-2звх
-2звк
-2звм
-2звн
-2звп
-2звс
-2звв
-2звз
-3ч2лан
-3ч2лањ
-3б2дењ
-3б2дет
-3б2дјењ
-3б2дјет
-3ц2мач
-3ц2мак
-3ц2миз
-3ц2мок
-3г2дегод.
-3г2декад
-3г2декак
-3г2дјегод.
-3г2дјекад
-3г2дјекак
-3г2мил
-3г2миљ
-3г2миз
-3г2нај
-3г2нежђ
-3г2нев
-3г2незд
-3г2нијежђ
-3г2нијезд
-3г2њав
-3г2њеч
-3г2њес
-3г2њет
-3г2њев
-3г2њил
-3г2њиљ
-3г2њио
-3г2њит
-3г2њур
-3г2ној
-3г2нос
-3г2ноз
-3х2тел
-3х2тењ
-3х2тети
-3х2тев
-3х2тјел
-3х2тјењ
-3х2тјети
-3х2тјев
-3к2неж
-3к2нез
-3к2њиж
-3к2њиг
-3м2наж
-3м2нож
-3м2ног
-3п2сич
-3п2сик
-3п2сов
-3п2суј
-3р2ђа
-3с2фер
-3т2маст
-3т2мул
-3т2муљ
-3т2муо
-3т2мур
-4р3је.
-4р3јем
-ч2в
-ш2ч
-ш2л
-ш2љ
-ш2м
-ш2н
-ш2п
-ш2т
-ш2в
-ж2ђ
-ж2б
-ж2д
-ж2г
-ж2л
-ж2љ
-ж2м
-ж2н
-ж2в
-а3а
-а3е
-а3и
-а3о
-а3у
-б2ј
-б2л
-б2љ
-б2р
-ц2ј
-ц2р
-ц2в
-д2ж
-д2ј
-д2л
-д2љ
-д2р
-д2в
-е3а
-е3е
-е3и
-е3о
-е3у
-ф2ј
-ф2л
-ф2љ
-ф2р
-г2л
-г2љ
-г2р
-г2в
-х2л
-х2љ
-х2р
-х2в
-и3а
-и3е
-и3и
-и3о
-и3у
-к2л
-к2љ
-к2р
-к2в
-л2ј
-м2л
-м2љ
-м2р
-не3г2де.
-не3г2дје.
-ни3г2де.
-ни3г2дје.
-о3а
-о3е
-о3и
-о3о
-о3у
-п2ј
-п2л
-п2љ
-п2р
-с2ц
-с2к
-с2л
-с2љ
-с2м
-с2н
-с2п
-с2р
-с2в
-т2ј
-т2л
-т2в
-у3а
-у3е
-у3и
-у3о
-у3у
-в2л
-в2љ
-в2р
-з2б
-з2д
-з2г
-з2ј
-з2л
-з2љ
-з2м
-з2н
-з2р
-з2в} \ No newline at end of file
+.у2с3талас
+.у2с3тара
+.у2с3тврђ
+.у2с3тврд
+.у2с3тер
+.у2с3тећ
+.у2с3тег
+.у2с3тов
+.у2с3трај
+.у2с3трал
+.у2с3трг
+.у2с3треп
+.у2с3трес
+.у2с3треб
+.у2с3трк
+.у2с3трн
+.у2с3трп
+.у2с3трћ
+.у2с3трч
+.у2с3тум
+.у2с3тур
+.у2с3тућ
+.у2ш3ћ
+.у2ш3ч
+.а2б3алиј
+.а2б3анац
+.а2б3евак
+.а2б3ерац
+.а2б3ерир
+.а2б3ирит
+.а2б3ју
+.а2б3ла
+.а2б3лег
+.а2б3леп
+.а2б3лок
+.а2б3лу
+.а2б3ориг
+.а2б3реак
+.а2б3рог
+.а2б3узус
+.а2д3ерац
+.а2д3верб
+.а2д3ј
+.а2д3лат
+.а2д3рен
+.а2д3рог
+.а3г2нос
+.а3г2ноз
+.а2набап
+.а2набаз
+.а2набат
+.а2набио
+.а2набол
+.а2наген
+.а2нагно
+.а2н3аго
+.а2награ
+.а2надем
+.а2надипл
+.а2надоз
+.а2н3а4е2ро
+.а2накал
+.а2накам
+.а2накат
+.а2накеф
+.а2накла
+.а2накли
+.а2накој
+.а2н3акуз
+.а2н3алг
+.а2н3алд
+.а2налеп
+.а2нализ
+.а2налис
+.а2налит
+.а2н3амерт
+.а2намне
+.а2н3андр
+.а2нанео
+.а2н3ант
+.а2напла
+.а2напле
+.а2напне
+.а2напно
+.а2напро
+.а2напти
+.а2н3апто
+.а2нарт
+.а2н3арх
+.а2насар
+.а2насеи
+.а2наспаз
+.а2наста
+.а2настиг
+.а2настом
+.а2натим
+.а2натом
+.а2натоц
+.а2натре
+.а2натри
+.а2натро
+.а2нафаз
+.а2н3афиј
+.а2нафила
+.а2нафон
+.а2н3афрод
+.а2накол
+.а2накрон
+.а2накру
+.а2н3алфа
+.а2нафор
+.а2нахор
+.а2нахро
+.а2н3егер
+.а2н3екл
+.а2н3екум
+.а2н3елек
+.а2н3енер
+.а2н3епи
+.а2неор
+.а2н3ерг
+.а2н3ерит
+.а2н3есте
+.а2н3идр
+.а2н3изог
+.а2н3изом
+.а2н3изур
+.а2н3ирид
+.а2н3овар
+.а2н3окс
+.а2н3опис
+.а2н3орх
+.а2н3офт
+.а2н3орг
+.ди2с3акор
+.ди2с3јунк
+.ди2с3квал
+.ди2с3конт
+.ди2с3корд
+.ди2с3кре
+.ди2с3кри
+.ди2с3кур
+.ди2с3ло
+.ди2с3ориј
+.ди2с3парит
+.ди2с3поз
+.ди2с3пон
+.ди2с3проп
+.ди2с3тон
+.ди2с3трак
+.и2н3абруп
+.и2н3адек
+.и2н3акур
+.и2н3акце
+.и2н3амор
+.и2н3аниц
+.и2н3аплик
+.и2н3апст
+.и2н3арт
+.и2н3аугур
+.и2н3аура
+.и2н3афек
+.и2н3евид
+.и2н3ег
+.и2н3ед
+.и2н3екв
+.и2н3екс
+.и2н3елиг
+.и2н3епц
+.и2н3ефек
+.и2н3обл
+.и2ноген
+.и2нокор
+.и2н3окуп
+.и2н3опер
+.и2н3опор
+.и2н3опсе
+.и2н3офиц
+.и2н3умбр
+.и2н3унда
+.и2н3унк
+.и2н3утил
+.инте2р3и
+.инте2р3о
+.инте2р3у
+.инте2р3а
+.инте2р3е
+.инте3р4егн
+.инте3р4еси
+.инте3р4есн
+.инте3р4есо
+.инте3р4есу
+.инте3р4еса
+.инте3р4есе
+.инте3р4ежџ
+.инте3р4ије
+.инте2р3је
+.инте3р4огат
+.јури2с3к
+.јури2с3п
+.ну2з3бел
+.ну2з3биљ
+.ну2з3љуб
+.ну2з3ре
+.ну2з3рје
+.ну2з3уж
+.ну2с3пос
+.ну2с3про
+.по2ст3егз
+.по2ст3инду
+.по2ст3лим
+.по2ст3онк
+.по2ст3опер
+.су2б3а
+.су2б3л
+.су3б4аш
+.су2б3инв
+.су2б3јунк
+.су2б3окс
+.су2б3реп
+.су2б3рог
+.су2б3орд
+.супе2р3и
+.супе2р3о
+.супе2р3у
+.супе2р3а
+.супе2р3е
+.супе3р4иор
+.тран2с3а
+.тран2с3ц
+.тран2с3е
+.тран2с3к
+.тран2с3л
+.тран2с3м
+.тран2с3н
+.тран2с3о
+.тран2с3п
+.тран2с3т
+.тран2с3у
+.тран2с3в
+.тран2с3њ
+.тран3с4еп
+.тран3с4кри
+.тран3с4ум
+.тран3с4уд
+t2j
+t2l
+t2lj
+t2r
+t2v
+d2j
+d2l
+d2lj
+d2r
+d2v
+g2j
+g2l
+g2lj
+g2r
+g2v
+h2j
+h2l
+h2lj
+h2r
+h2v
+k2j
+k2l
+k2lj
+k2r
+k2v
+2d1b
+2d1c
+2d1d
+2d1f
+2d1g
+2d1h
+2d1k
+2d1m
+2d1n
+2d1p
+2d1s
+2d1t
+2d1nj
+2d1dž
+2d1z
+2d1š
+2d1đ
+2d1ć
+2d1č
+2g1ž
+2g1b
+2g1c
+2g1d
+2g1f
+2g1g
+2g1h
+2g1k
+2g1m
+2g1n
+2g1p
+2g1s
+2g1t
+2g1nj
+2g1dž
+2g1z
+2g1š
+2g1đ
+2g1ć
+2g1č
+2h1ž
+2h1b
+2h1c
+2h1d
+2h1f
+2h1g
+2h1h
+2h1k
+2h1m
+2h1n
+2h1p
+2h1s
+2h1t
+2h1nj
+2h1dž
+2h1z
+2h1š
+2h1đ
+2h1ć
+2h1č
+2k1ž
+2k1b
+2k1c
+2k1d
+2k1f
+2k1g
+2k1h
+2k1k
+2k1m
+2k1n
+2k1p
+2k1s
+2k1t
+2k1nj
+2k1dž
+2k1z
+2k1š
+2k1đ
+2k1ć
+2k1č
+2t1ž
+2t1b
+2t1c
+2t1d
+2t1f
+2t1g
+2t1h
+2t1k
+2t1m
+2t1n
+2t1p
+2t1s
+2t1t
+2t1nj
+2t1dž
+2t1z
+2t1š
+2t1đ
+2t1ć
+2t1č
+2dj.
+2dl.
+2dlj.
+2dr.
+2dv.
+2gj.
+2gl.
+2glj.
+2gr.
+2gv.
+2hj.
+2hl.
+2hlj.
+2hr.
+2hv.
+2kj.
+2kl.
+2klj.
+2kr.
+2kv.
+2tj.
+2tl.
+2tlj.
+2tr.
+2tv.
+p2j
+p2l
+p2lj
+p2r
+v2j
+v2l
+v2lj
+v2r
+b2j
+b2l
+b2lj
+b2r
+f2j
+f2l
+f2lj
+f2r
+m2j
+m2l
+m2lj
+m2r
+2b1ž
+2b1b
+2b1c
+2b1d
+2b1f
+2b1g
+2b1h
+2b1k
+2b1m
+2b1n
+2b1p
+2b1s
+2b1t
+2b1v
+2b1nj
+2b1dž
+2b1z
+2b1š
+2b1đ
+2b1ć
+2b1č
+2f1ž
+2f1b
+2f1c
+2f1d
+2f1f
+2f1g
+2f1h
+2f1k
+2f1m
+2f1n
+2f1p
+2f1s
+2f1t
+2f1v
+2f1nj
+2f1dž
+2f1z
+2f1š
+2f1đ
+2f1ć
+2f1č
+2m1ž
+2m1b
+2m1c
+2m1d
+2m1f
+2m1g
+2m1h
+2m1k
+2m1m
+2m1n
+2m1p
+2m1s
+2m1t
+2m1v
+2m1nj
+2m1dž
+2m1z
+2m1š
+2m1đ
+2m1ć
+2m1č
+2p1ž
+2p1b
+2p1c
+2p1d
+2p1f
+2p1g
+2p1h
+2p1k
+2p1m
+2p1n
+2p1p
+2p1s
+2p1t
+2p1v
+2p1nj
+2p1dž
+2p1z
+2p1š
+2p1đ
+2p1ć
+2p1č
+2v1ž
+2v1b
+2v1c
+2v1d
+2v1f
+2v1g
+2v1h
+2v1k
+2v1m
+2v1n
+2v1p
+2v1s
+2v1t
+2v1v
+2v1nj
+2v1dž
+2v1z
+2v1š
+2v1đ
+2v1ć
+2v1č
+2bj.
+2bl.
+2blj.
+2br.
+2fj.
+2fl.
+2flj.
+2fr.
+2mj.
+2ml.
+2mlj.
+2mr.
+2pj.
+2pl.
+2plj.
+2pr.
+2vj.
+2vl.
+2vlj.
+2vr.
+s2c
+s2j
+s2k
+s2l
+s2m
+s2n
+s2p
+s2lj
+s2r
+s2t
+s2v
+s2nj
+2s1ž
+2s1b
+2s1d
+2s1f
+2s1g
+2s1h
+2s1s
+2s1dž
+2s1z
+2s1š
+2s1đ
+2s1ć
+2s1č
+2sj.
+2sk.
+2sl.
+2sm.
+2sn.
+2sp.
+2slj.
+2sr.
+2st.
+2sv.
+2snj.
+2sc.
+z2b
+z2d
+z2g
+z2j
+z2l
+z2m
+z2n
+z2lj
+z2r
+z2v
+z2nj
+2z1ž
+2z1c
+2z1f
+2z1h
+2z1k
+2z1p
+2z1s
+2z1t
+2z1dž
+2z1z
+2z1š
+2z1đ
+2z1ć
+2z1č
+2zj.
+2zl.
+2zm.
+2zn.
+2zlj.
+2zr.
+2zv.
+2znj.
+2zb.
+2zd.
+2zg.
+š2c
+š2k
+š2l
+š2m
+š2n
+š2p
+š2lj
+š2t
+š2v
+š2nj
+š2ć
+š2č
+2š1ž
+2š1b
+2š1d
+2š1f
+2š1g
+2š1h
+2š1s
+2š1dž
+2š1z
+2š1š
+2š1đ
+2š1j
+2š1r
+2šk.
+2šl.
+2šm.
+2šn.
+2šp.
+2šlj.
+2št.
+2šv.
+2šnj.
+2šć.
+2šč.
+2šc.
+ž2b
+ž2d
+ž2g
+ž2l
+ž2m
+ž2n
+ž2lj
+ž2v
+ž2nj
+ž2đ
+2ž1ž
+2ž1c
+2ž1f
+2ž1h
+2ž1k
+2ž1p
+2ž1s
+2ž1t
+2ž1dž
+2ž1z
+2ž1š
+2ž1ć
+2ž1č
+2ž1j
+2ž1r
+2žl.
+2žm.
+2žn.
+2žlj.
+2žv.
+2žnj.
+2žđ.
+2žb.
+2žd.
+2žg.
+c2j
+c2r
+c2v
+2c1ž
+2c1b
+2c1c
+2c1d
+2c1f
+2c1g
+2c1h
+2c1k
+2c1l
+2c1m
+2c1n
+2c1p
+2c1lj
+2c1s
+2c1t
+2c1nj
+2c1dž
+2c1z
+2c1š
+2c1đ
+2c1ć
+2c1č
+2cj.
+2cr.
+2cv.
+č2v
+2č1ž
+2č1b
+2č1c
+2č1d
+2č1f
+2č1g
+2č1h
+2č1j
+2č1k
+2č1l
+2č1m
+2č1n
+2č1p
+2č1lj
+2č1r
+2č1s
+2č1t
+2č1nj
+2č1dž
+2č1z
+2č1š
+2č1đ
+2č1ć
+2č1č
+2čv.
+2j1ž
+2j1b
+2j1c
+2j1d
+2j1f
+2j1g
+2j1h
+2j1j
+2j1k
+2j1l
+2j1m
+2j1n
+2j1p
+2j1lj
+2j1r
+2j1s
+2j1t
+2j1v
+2j1nj
+2j1dž
+2j1z
+2j1š
+2j1đ
+2j1ć
+2j1č
+2l1ž
+2l1b
+2l1c
+2l1d
+2l1f
+2l1g
+2l1h
+2l1k
+2l1l
+2l1m
+2l1n
+2l1p
+2l1lj
+2l1r
+2l1s
+2l1t
+2l1v
+2l1nj
+2l1dž
+2l1z
+2l1š
+2l1đ
+2l1ć
+2l1č
+2n1ž
+2n1b
+2n1c
+2n1d
+2n1f
+2n1g
+2n1h
+2n1k
+2n1l
+2n1m
+2n1n
+2n1p
+2n1lj
+2n1r
+2n1s
+2n1t
+2n1v
+2n1nj
+2n1dž
+2n1z
+2n1š
+2n1đ
+2n1ć
+2n1č
+2lj1ž
+2lj1b
+2lj1c
+2lj1d
+2lj1f
+2lj1g
+2lj1h
+2lj1j
+2lj1k
+2lj1l
+2lj1m
+2lj1n
+2lj1p
+2lj1lj
+2lj1r
+2lj1s
+2lj1t
+2lj1v
+2lj1nj
+2lj1dž
+2lj1z
+2lj1š
+2lj1đ
+2lj1ć
+2lj1č
+2r1ž
+2r1b
+2r1c
+2r1d
+2r1f
+2r1g
+2r1h
+2r1j
+2r1k
+2r1l
+2r1m
+2r1n
+2r1p
+2r1lj
+2r1r
+2r1s
+2r1t
+2r1v
+2r1nj
+2r1dž
+2r1z
+2r1š
+2r1đ
+2r1ć
+2r1č
+2nj1ž
+2nj1b
+2nj1c
+2nj1d
+2nj1f
+2nj1g
+2nj1h
+2nj1j
+2nj1k
+2nj1l
+2nj1m
+2nj1n
+2nj1p
+2nj1lj
+2nj1r
+2nj1s
+2nj1t
+2nj1v
+2nj1nj
+2nj1dž
+2nj1z
+2nj1š
+2nj1đ
+2nj1ć
+2nj1č
+2dž1ž
+2dž1b
+2dž1c
+2dž1d
+2dž1f
+2dž1g
+2dž1h
+2dž1j
+2dž1k
+2dž1l
+2dž1m
+2dž1n
+2dž1p
+2dž1lj
+2dž1r
+2dž1s
+2dž1t
+2dž1v
+2dž1nj
+2dž1dž
+2dž1z
+2dž1š
+2dž1đ
+2dž1ć
+2dž1č
+2đ1ž
+2đ1b
+2đ1c
+2đ1d
+2đ1f
+2đ1g
+2đ1h
+2đ1j
+2đ1k
+2đ1l
+2đ1m
+2đ1n
+2đ1p
+2đ1lj
+2đ1r
+2đ1s
+2đ1t
+2đ1v
+2đ1nj
+2đ1dž
+2đ1z
+2đ1š
+2đ1đ
+2đ1ć
+2đ1č
+2ć1ž
+2ć1b
+2ć1c
+2ć1d
+2ć1f
+2ć1g
+2ć1h
+2ć1j
+2ć1k
+2ć1l
+2ć1m
+2ć1n
+2ć1p
+2ć1lj
+2ć1r
+2ć1s
+2ć1t
+2ć1v
+2ć1nj
+2ć1dž
+2ć1z
+2ć1š
+2ć1đ
+2ć1ć
+2ć1č
+.h2
+.j2
+.k2
+.l2
+.m2
+.n2
+.p2
+.lj2
+.r2
+.s2
+.t2
+.v2
+.nj2
+.dž2
+.z2
+.š2
+.đ2
+.ć2
+.č2
+.ž2
+.b2
+.c2
+.d2
+.f2
+.g2
+o3a
+o3e
+o3i
+o3o
+o3u
+u3a
+u3e
+u3i
+u3o
+u3u
+a3a
+a3e
+a3i
+a3o
+a3u
+e3a
+e3e
+e3i
+e3o
+e3u
+i3a
+i3e
+i3i
+i3o
+i3u
+2a1
+2e1
+2i1
+2o1
+2u1
+2skb
+2skc
+2skd
+2skf
+2skg
+2skh
+2skk
+2skm
+2skn
+2skp
+2sks
+2skt
+2sknj
+2skdž
+2skz
+2skš
+2skđ
+2skć
+2skč
+2skž
+2stb
+2stc
+2std
+2stf
+2stg
+2sth
+2stk
+2stm
+2stn
+2stp
+2sts
+2stt
+2stnj
+2stdž
+2stz
+2stš
+2stđ
+2stć
+2stč
+2stž
+2škb
+2škc
+2škd
+2škf
+2škg
+2škh
+2škk
+2škm
+2škn
+2škp
+2šks
+2škt
+2šknj
+2škdž
+2škz
+2škš
+2škđ
+2škć
+2škč
+2škž
+2štb
+2štc
+2štd
+2štf
+2štg
+2šth
+2štk
+2štm
+2štn
+2štp
+2šts
+2štt
+2štnj
+2štdž
+2štz
+2štš
+2štđ
+2štć
+2štč
+2štž
+2spb
+2spc
+2spd
+2spf
+2spg
+2sph
+2spk
+2spm
+2spn
+2spp
+2sps
+2spt
+2spv
+2spnj
+2spdž
+2spz
+2spš
+2spđ
+2spć
+2spč
+2spž
+2svb
+2svc
+2svd
+2svf
+2svg
+2svh
+2svk
+2svm
+2svn
+2svp
+2svs
+2svt
+2svv
+2svnj
+2svdž
+2svz
+2svš
+2svđ
+2svć
+2svč
+2svž
+2špb
+2špc
+2špd
+2špf
+2špg
+2šph
+2špk
+2špm
+2špn
+2špp
+2šps
+2špt
+2špv
+2špnj
+2špdž
+2špz
+2špš
+2špđ
+2špć
+2špč
+2špž
+2švb
+2švc
+2švd
+2švf
+2švg
+2švh
+2švk
+2švm
+2švn
+2švp
+2švs
+2švt
+2švv
+2švnj
+2švdž
+2švz
+2švš
+2švđ
+2švć
+2švč
+2švž
+2ždb
+2ždc
+2ždd
+2ždf
+2ždg
+2ždh
+2ždk
+2ždm
+2ždn
+2ždp
+2žds
+2ždt
+2ždnj
+2žddž
+2ždz
+2ždš
+2ždđ
+2ždć
+2ždč
+2žgb
+2žgc
+2žgd
+2žgf
+2žgg
+2žgh
+2žgk
+2žgm
+2žgn
+2žgp
+2žgs
+2žgt
+2žgnj
+2žgdž
+2žgz
+2žgš
+2žgđ
+2žgć
+2žgč
+2žgž
+2zdb
+2zdc
+2zdd
+2zdf
+2zdg
+2zdh
+2zdk
+2zdm
+2zdn
+2zdp
+2zds
+2zdt
+2zdnj
+2zddž
+2zdz
+2zdš
+2zdđ
+2zdć
+2zdč
+2zgb
+2zgc
+2zgd
+2zgf
+2zgg
+2zgh
+2zgk
+2zgm
+2zgn
+2zgp
+2zgs
+2zgt
+2zgnj
+2zgdž
+2zgz
+2zgš
+2zgđ
+2zgć
+2zgč
+2zgž
+2žvb
+2žvc
+2žvd
+2žvf
+2žvg
+2žvh
+2žvk
+2žvm
+2žvn
+2žvp
+2žvs
+2žvt
+2žvv
+2žvnj
+2žvdž
+2žvz
+2žvš
+2žvđ
+2žvć
+2žvč
+2žvž
+2žbb
+2žbc
+2žbd
+2žbf
+2žbg
+2žbh
+2žbk
+2žbm
+2žbn
+2žbp
+2žbs
+2žbt
+2žbv
+2žbnj
+2žbdž
+2žbz
+2žbš
+2žbđ
+2žbć
+2žbč
+2žbž
+2zvb
+2zvc
+2zvd
+2zvf
+2zvg
+2zvh
+2zvk
+2zvm
+2zvn
+2zvp
+2zvs
+2zvt
+2zvv
+2zvnj
+2zvdž
+2zvz
+2zvš
+2zvđ
+2zvć
+2zvč
+2zvž
+2zbb
+2zbc
+2zbd
+2zbf
+2zbg
+2zbh
+2zbk
+2zbm
+2zbn
+2zbp
+2zbs
+2zbt
+2zbv
+2zbnj
+2zbdž
+2zbz
+2zbš
+2zbđ
+2zbć
+2zbč
+2zbž
+2žmb
+2žmc
+2žmd
+2žmf
+2žmg
+2žmh
+2žmk
+2žmm
+2žmn
+2žmp
+2žms
+2žmt
+2žmv
+2žmnj
+2žmdž
+2žmz
+2žmš
+2žmđ
+2žmć
+2žmč
+2žmž
+2smb
+2smc
+2smd
+2smf
+2smg
+2smh
+2smk
+2smm
+2smn
+2smp
+2sms
+2smt
+2smv
+2smnj
+2smdž
+2smz
+2smš
+2smđ
+2smć
+2smč
+2smž
+2zmb
+2zmc
+2zmd
+2zmf
+2zmg
+2zmh
+2zmk
+2zmm
+2zmn
+2zmp
+2zms
+2zmt
+2zmv
+2zmnj
+2zmdž
+2zmz
+2zmš
+2zmđ
+2zmć
+2zmč
+2zmž
+2šmb
+2šmc
+2šmd
+2šmf
+2šmg
+2šmh
+2šmk
+2šmm
+2šmn
+2šmp
+2šms
+2šmt
+2šmv
+2šmnj
+2šmdž
+2šmz
+2šmš
+2šmđ
+2šmć
+2šmč
+2šmž
+2scb
+2scc
+2scd
+2scf
+2scg
+2sch
+2sck
+2scl
+2scm
+2scn
+2scp
+2sclj
+2scr
+2scs
+2sct
+2scnj
+2scdž
+2scz
+2scš
+2scđ
+2scć
+2scč
+2scž
+2šcb
+2šcc
+2šcd
+2šcf
+2šcg
+2šch
+2šck
+2šcl
+2šcm
+2šcn
+2šcp
+2šclj
+2šcr
+2šcs
+2šct
+2šcnj
+2šcdž
+2šcz
+2šcš
+2šcđ
+2šcć
+2šcč
+2šcž
+2ščb
+2ščc
+2ščd
+2ščf
+2ščg
+2ščh
+2ščj
+2ščk
+2ščl
+2ščm
+2ščn
+2ščp
+2ščlj
+2ščr
+2ščs
+2ščt
+2ščnj
+2ščdž
+2ščz
+2ščš
+2ščđ
+2ščć
+2ščč
+2ščž
+2hvb
+2hvc
+2hvd
+2hvf
+2hvg
+2hvh
+2hvk
+2hvm
+2hvn
+2hvp
+2hvs
+2hvt
+2hvnj
+2hvdž
+2hvz
+2hvš
+2hvđ
+2hvć
+2hvč
+2hvž
+2ž3vl
+2ž3vlj
+2c3vl
+2c3vlj
+2z3vl
+2z3vlj
+2š3vl
+2š3vlj
+2č3vl
+2č3vlj
+2č3vj
+2s3vlj
+2d3vl
+2d3vlj
+2d3vr
+2k3vj
+2k3vl
+2k3vlj
+2t3vj
+2t3vl
+2t3vlj
+2g3vj
+2g3vl
+2g3vlj
+2g3vr
+2h3vj
+2h3vl
+2h3vlj
+2h3vr
+2ž3mj
+2ž3ml
+2ž3mlj
+2ž3mr
+2z3ml
+2z3mr
+2š3mj
+2š3ml
+2š3mlj
+2š3cj
+2š3cv
+2š3čv
+2š3tj
+2š3tl
+2š3tlj
+2s3tl
+2s3kj
+2s3klj
+2š3pj
+2š3pl
+2š3plj
+2ž3dj
+2ž3dl
+2ž3dlj
+2ž3dv
+2ž3gj
+2ž3gl
+2ž3glj
+2ž3gr
+2ž3gv
+2z3dl
+2z3dlj
+2z3dv
+2z3gj
+2z3glj
+2ž3bj
+2ž3bl
+2ž3blj
+2ž3br
+2z3blj
+.a4e2ro
+.be4o
+.bi4o
+.ge4o
+.za3g2n
+.za3t2ka
+.iza3g2n
+.iza3t2k
+.iz3g2n
+.izd2no
+.izd2nu
+.izd2na
+.izr2k
+.ist2k
+.nag2n
+.nag2nj
+.na3d2nev
+.na3d2nič
+.na3d2nic
+.na3t2kah
+.na3t2kam
+.na3t2kasm
+.na3t2kast
+.oda3g2n
+.oda3d2n
+.od3g2n
+.od3m2n
+.o3t2kah
+.o3t2kam
+.o3t2kasm
+.o3t2kast
+.po3g2n
+.po3d2nev
+.po3m2n
+.po3m2nj
+.po3r2v
+.po3r2đ
+.po3t2kah
+.po3t2kam
+.po3t2kat
+.po3t2kav
+.pred3m2n
+.pred3m2nj
+.pre3t2kah
+.pre3t2kam
+.pre3t2kat
+.pro3g2n
+.pro3t2ki
+.pro3t2ka
+.raza3g2n
+.raz3g2n
+.raz3d2ni
+.raza3t2ka
+.u3g2mi
+.u3g2n
+.uza3t2ka
+3h2teti
+3h2tjeti
+3h2tel
+3h2tev
+3h2tenj
+3h2tjel
+3h2tjev
+3h2tjenj
+3g2degod.
+3g2djegod.
+3g2dekak
+3g2dekad
+3g2djekak
+3g2djekad
+ni3g2de.
+ne3g2de.
+ni3g2dje.
+ne3g2dje.
+3b2det
+3b2denj
+3b2djet
+3b2djenj
+3g2mil
+3g2milj
+3g2miz
+3g2nos
+3g2noz
+3g2noj
+3g2naj
+3g2nezd
+3g2nijezd
+3g2nežđ
+3g2niježđ
+3g2nev
+3g2njev
+3g2njav
+3g2njes
+3g2njet
+3g2nječ
+3g2njil
+3g2njio
+3g2njilj
+3g2njit
+3g2njur
+3k2nez
+3k2než
+3k2njiž
+3k2njig
+3m2nož
+3m2nog
+3m2naž
+3p2sik
+3p2sič
+3p2sov
+3p2suj
+3r2đa
+3s2fer
+3t2mast
+3t2mul
+3t2muo
+3t2mulj
+3t2mur
+3c2miz
+3c2mak
+3c2mač
+3c2mok
+3č2lan
+3č2lanj
+3r2je
+4r3jem
+4r3je.
+.be2z3j
+.be2z3l
+.be2z3m
+.be2z3n
+.be2z3lj
+.be2z3r
+.be2z3v
+.be2z3nj
+.be2z3b
+.be2z3d
+.be2z3g
+.be2z3i
+.be2z3o
+.be2z3u
+.be2z3alkohol
+.be2z3atomsk
+.be3z4bedn
+.be3z4beda
+.be3z4bjedn
+.be3z4bjeda
+.be3z4beli
+.be3z4bol
+.be3z4vučn
+.be3z4vuča
+.be3z4istan
+.be3z4isten
+.be3z4jak
+.be3z4jač
+.be3z4lobn
+.be3z4loba
+.be3z4načaj
+.be3z4račn
+.be3z4rača
+.be3z4up
+.be3z4ub
+.be2s3c
+.be2s3k
+.be2s3p
+.be2s3t
+.be3s4krupul
+.be3s4pokojn
+.be3s4pokoja
+.be3s4porn
+.be3s4pora
+.be3s4tvar
+.be3s4tid
+.be3s4tija
+.be3s4tilu
+.be3s4tilj
+.be3s4trana
+.be3s4tras
+.bes4tseler
+.be2š3ć
+.be2š3č
+.va2n3evr
+.va2n3ustav
+.i2z3b
+.i2z3d
+.i2z3g
+.i2z3j
+.i2z3l
+.i2z3m
+.i2z3n
+.i2z3lj
+.i2z3r
+.i2z3v
+.i2z3nj
+.i2z3i
+.i2z3o
+.i2z3u
+.i2z3bija
+.i2z3biva
+.i2z3vedi
+.i2z3vedn
+.i2z3vedb
+.i2z3vede
+.i2z3daj
+.i2z3aba
+.i2z3aka
+.i2z3anal
+.i3z4bav
+.i3z4bičkava
+.i3z4bleušan
+.i3z4bojak
+.i3z4bojk
+.i3z4vali
+.i3z4valu
+.i3z4vala
+.i3z4vale
+.i3z4valji
+.i3z4vižd
+.i3z4viiskr
+.i3z4vija
+.i3z4vijen
+.i3z4vin
+.i3z4vir
+.i3z4vinj
+.i3z4vitop
+.i3z4vjed
+.i3z4vojac
+.i3z4vojc
+.i3z4vor
+.i3z4gomet
+.i3z4gred
+.i3z4grn
+.i3z4grt
+.i3z4drav
+.i3z4iđ
+.i3z4id
+.i3z4imi
+.i3z4ježlj
+.i3z4loz
+.i3z4lož
+.i3z4log
+.i3z4lopać
+.i3z4nim
+.i3z4noj
+.iz4oanem
+.iz4oanom
+.iz4obat
+.iz4obron
+.iz4ogam
+.iz4ogeo
+.iz4oglos
+.iz4ogon
+.iz4ograf
+.iz4odim
+.iz4odin
+.iz4odoz
+.iz4oklin
+.iz4okolon
+.i3z4olat
+.i3z4olac
+.i3z4olir
+.i3z4olov
+.iz4oleks
+.iz4oluks
+.iz4omer
+.iz4ometr
+.iz4omorf
+.iz4onef
+.iz4onom
+.iz4opat
+.iz4oper
+.iz4ople
+.iz4opol
+.iz4opsef
+.iz4orah
+.iz4osei
+.iz4osint
+.iz4osist
+.iz4oskel
+.iz4oskop
+.iz4ostaz
+.iz4oste
+.iz4otah
+.iz4otal
+.iz4oter
+.iz4oton
+.iz4otop
+.iz4otro
+.iz4ofon
+.iz4ofot
+.iz4ohal
+.iz4ohaz
+.iz4ohel
+.iz4ohij
+.iz4ohim
+.iz4ohit
+.iz4ohips
+.iz4ohor
+.iz4ohro
+.i3z4rael
+.i3z4railj
+.i3z4rači
+.i3z4un
+.i3z4upč
+.i2s3c
+.i2s3k
+.i2s3p
+.i2s3t
+.i3s4kak
+.i3s4kat
+.i3s4kanj
+.i3s4kariot
+.i3s4kvas
+.i3s4kvrč
+.i3s4kin
+.i3s4kita
+.i3s4konsk
+.i3s4koč
+.i3s4kram
+.i3s4krit
+.i3s4kriš
+.i3s4krič
+.i3s4kric
+.i3s4krat
+.i3s4kren
+.i3s4krenj
+.i3s4kroj
+.i3s4krsn
+.i3s4krsa
+.i3s4kuplja
+.i3s4lam
+.i3s4lab
+.i3s4leđ
+.i3s4led
+.i3s4lijeđ
+.i3s4lijed
+.i3s4ljeđ
+.i3s4ljed
+.i3s4lik
+.i3s4lin
+.i3s4lov
+.i3s4luš
+.i3s4luž
+.i3s4me
+.i3s4mije
+.i3s4mje
+.i3s4pav
+.i3s4paljiv
+.i3s4pira
+.i3s4plit
+.i3s4plić
+.i3s4pokoj
+.i3s4polin
+.i3s4pon
+.i3s4porav
+.i3s4pravi
+.i3s4pravk
+.i3s4pravn
+.i3s4pravlj
+.i3s4prava
+.i3s4pupč
+.i3s4pur
+.i3s4red
+.i3s4rk
+.i3s4tavi
+.i3s4tavlj
+.i3s4takn
+.i3s4tam
+.i3s4tar
+.i3s4tas
+.i3s4tać
+.i3s4tin
+.i3s4tir
+.i3s4tic
+.i3s4tifan
+.i3s4tok
+.i3s4tori
+.i3s4točn
+.i3s4točnj
+.i3s4toča
+.i3s4trav
+.i3s4trad
+.i3s4tran
+.i3s4trić
+.i3s4triž
+.i3s4tric
+.i3s4trug
+.i3s4tup
+.i3s4uk
+.i3s4us
+.i3s4ut
+.i3s4uš
+.i2ž3đ
+.i2š3ć
+.i2š3č
+.iz3be2z3obr
+.iz3be2z3um
+.iz3va2n3evr
+.na2d3l
+.na2d3lj
+.na2d3v
+.na3d4val
+.na3d4vesi
+.na3d4vest
+.na3d4vij
+.na3d4vit
+.na3d4vla
+.na3d4voje
+.na3d4vor
+.na2d3igr
+.na2d3inž
+.na2d3ina
+.na2d3isk
+.na2d3jah
+.na2d3jač
+.na2d3jek
+.na2d3jez
+.na2d3ječ
+.na2d3jun
+.na3d4lan
+.na3d4leš
+.na3d4lež
+.na2d3ora
+.na2d3oso
+.na2d3ose
+.na2d3osje
+.na2d3ofi
+.na2d3oč
+.na2d3ran
+.na2d3rač
+.na2d3rast
+.na2d3rašć
+.na2d3real
+.na2d3rep
+.na2d3ruk
+.na2d3ruč
+.na2d3rug
+.na2d3udar
+.na2d3um
+.na2d3uč
+.na2j3a
+.na2j3e
+.na2j3i
+.na2j3o
+.na2j3u
+.na3j4avi
+.na3j4avlj
+.na3j4ava
+.na3j4ave
+.na3j4adi
+.na3j4ada
+.na3j4ade
+.na3j4aži
+.na3j4azi
+.na3j4ako
+.na3j4aka
+.na3j4alo
+.na3j4ami
+.na3j4aml
+.na3j4amn
+.na3j4ari
+.na3j4arm
+.na3j4arc
+.na3j4ati
+.na3j4auk
+.na3j4ah
+.na3j4aš
+.na3j4edi
+.na3j4edn
+.na3j4edr
+.na3j4eda
+.na3j4eži
+.na3j4ežu
+.na3j4eže
+.na3j4ezn
+.na3j4ezd
+.na3j4esti
+.na3j4etk
+.na3j4ec
+.na3j4uri
+.na3j4uren
+.o2b3j
+.o2b3lj
+.o2b3r
+.obe2z3b
+.obe2z3d
+.obe2z3g
+.obe2z3j
+.obe2z3l
+.obe2z3m
+.obe2z3n
+.obe2z3o
+.obe2z3lj
+.obe2z3r
+.obe2z3u
+.obe2z3v
+.obe3z4vij
+.obe3z4nan
+.obe3z4nanj
+.obe3z4nač
+.obe3z4ub
+.obe2s3c
+.obe2s3k
+.obe2s3p
+.obe2s3t
+.obe3s4tan
+.obe3s4tij
+.obe3s4tran
+.obe2š3ć
+.obe2š3č
+.o2b3igr
+.o2b3istin
+.o2b3istinj
+.o3b4jek
+.o3b4jer
+.o3b4jesi
+.o3b4jet
+.o3b4ješ
+.o2b3laj
+.o2b3lam
+.o2b3lakš
+.o2b3lask
+.o2b3lep
+.o2b3let
+.o2b3leć
+.o2b3lež
+.o2b3leg
+.o2b3lijep
+.o2b3lijet
+.o2b3lijež
+.o2b3lijeg
+.o2b3leden
+.o2b3liv
+.o2b3lizat
+.o2b3lizav
+.o2b3lizi
+.o2b3list
+.o2b3loka
+.o2b3luk
+.o2b3luč
+.o3b4ljan
+.o3b4ljut
+.o3b4ljuz
+.o2b3oru
+.o3b4raže
+.o3b4razi
+.o3b4razn
+.o3b4razo
+.o3b4razu
+.o3b4raza
+.o3b4razd
+.o3b4ramb
+.o3b4ran
+.o3b4ranj
+.o3b4rat
+.o3b4rać
+.o3b4rašn
+.o3b4rašč
+.o3b4rv
+.o3b4rđ
+.o3b4rem
+.o3b4res
+.o3b4ređ
+.o3b4reč
+.o3b4rež
+.o3b4rec
+.o3b4red
+.o3b4reti
+.o3b4retn
+.o3b4rij
+.o3b4ris
+.o3b4rit
+.o3b4riv
+.o3b4rič
+.o3b4ric
+.o3b4rk
+.o3b4rl
+.o3b4rn
+.o3b4rlj
+.o3b4rs
+.o3b4rt
+.o3b4rš
+.o3b4rč
+.o3b4rok
+.o3b4ron
+.o3b4ronj
+.o3b4roć
+.o3b4roč
+.o3b4rova
+.o3b4rovc
+.o3b4ruk
+.o3b4run
+.o3b4rus
+.o3b4runj
+.o3b4ruš
+.o3b4ruč
+.o2b3ubož
+.o2b3uz
+.o2b3už
+.o2b3ud
+.o2b3umi
+.o2b3umj
+.o2b3umr
+.o2b3ume
+.o2d3j
+.o2d3l
+.o2d3lj
+.o2d3r
+.o2d3v
+.o2d3arg
+.o3d4vaj
+.o3d4važ
+.o3d4vesn
+.o3d4vest
+.o3d4vesa
+.o3d4vikav
+.o3d4vikn
+.o3d4vis
+.o3d4vić
+.o3d4voj
+.o2d3igr
+.o2d3i2z3v
+.o2d3i2z3d
+.o2d3isk
+.o2d3isti
+.o3d4jel
+.o3d4jen
+.o3d4jev
+.o3d4jeć
+.o3d4laz
+.o3d4laž
+.o3d4lag
+.o3d4laka
+.o3d4luk
+.o3d4luč
+.o2d3ozd
+.o2d3ozg
+.o2d3ok
+.o2d3onl
+.o2d3ono
+.o2d3onu
+.o2d3ond
+.o3d4rani
+.o3d4rano
+.o3d4ranu
+.o3d4rana
+.o3d4rane
+.o3d4raz
+.o3d4rać
+.o3d4raž
+.o3d4rapi
+.o3d4raplj
+.o3d4rapa
+.o3d4rači
+.o3d4rven
+.o3d4rvenj
+.o3d4rveč
+.o3d4rem
+.o3d4ren
+.o3d4ret
+.o3d4ređ
+.o3d4red
+.o3d4rl
+.o3d4rn
+.o3d4rp
+.o3d4rlj
+.o3d4rt
+.o3d4rž
+.o3d4rin
+.o3d4rinj
+.o3d4riš
+.o3d4rič
+.o3d4rib
+.o3d4ric
+.o3d4ron
+.o3d4ronj
+.o3d4ruž
+.o3d4rug
+.o2d3uvi
+.o2d3uve
+.o2d3uzi
+.o2d3uzl
+.o2d3uzd
+.o2d3uze
+.o2d3uk
+.o2d3ul
+.o2d3um
+.o2d3uč
+.po2d3adm
+.po2d3varij
+.po2d3vez
+.po2d3več
+.po2d3vež
+.po2d3vik
+.po2d3vil
+.po2d3vir
+.po2d3vinj
+.po2d3vlas
+.po2d3vlaš
+.po2d3voz
+.po2d3vođ
+.po2d3vož
+.po2d3vod
+.po2d3vrat
+.po2d3vrać
+.po2d3vrć
+.po2d3vrž
+.po2d3vrg
+.po2d3vris
+.po2d3vrs
+.po2d3vuć
+.po2d3igr
+.po2d3izv
+.po2d3j
+.po3d4jen
+.po3d4ječ
+.po2d3lakat
+.po2d3lakt
+.po2d3lep
+.po2d3let
+.po2d3leć
+.po2d3lež
+.po2d3leg
+.po2d3liz
+.po2d3lijep
+.po2d3lijet
+.po2d3lijeć
+.po2d3lijež
+.po2d3lijeg
+.po2d3list
+.po2d3lok
+.po2d3lom
+.po2d3lup
+.po2d3luč
+.po2d3luž
+.po2d3ljut
+.po2d3okn
+.po2d3oš
+.po2d3oč
+.po2d3of
+.po2d3ravn
+.po2d3ravnj
+.po2d3rad
+.po2d3ra2z3d
+.po2d3razr
+.po2d3razu
+.po2d3ram
+.po2d3ran
+.po2d3ras
+.po2d3ranj
+.po2d3rep
+.po2d3res
+.po2d3rez
+.po2d3rik
+.po2d3rit
+.po2d3ron
+.po2d3rov
+.po2d3rož
+.po2d3ruk
+.po2d3rub
+.po2d3ruči
+.po2d3ručn
+.po2d3ruča
+.po2d3upla
+.po2d3usm
+.po2d3usn
+.pre2d3j
+.pre2d3v
+.pre3d4vaj
+.pre3d4var
+.pre3d4vest
+.pre3d4voji
+.pre3d4voja
+.pre3d4voje
+.pre3d4vor
+.pre3d4vos
+.pre3d4jen
+.pre2d3igr
+.pre2d3id
+.pre2d3izb
+.pre2d3ispi
+.pre2d3isto
+.pre2d3istr
+.pre2d3obj
+.pre2d3odre
+.pre2d3okus
+.pre2d3osv
+.pre2d3ose
+.pre2d3osje
+.pre2d3rat
+.pre2d3rač
+.pre2d3rad
+.pre2d3ruč
+.pre2d3ubeđ
+.pre2d3ubijeđ
+.pre2d3ubjeđ
+.pre2d3uver
+.pre2d3uvjer
+.pre2d3uvjet
+.pre2d3ugov
+.pre2d3udar
+.pre2d3upis
+.pre2d3uslo
+.proti2v3akc
+.proti2v3otr
+.proti2v3of
+.proti2v3r
+.proti2v3us
+.proti2v3ud
+.ra2ž3đ
+.ra2z3b
+.ra2z3d
+.ra2z3e
+.ra2z3g
+.ra2z3i
+.ra2z3j
+.ra2z3l
+.ra2z3m
+.ra2z3n
+.ra2z3lj
+.ra2z3r
+.ra2z3v
+.ra2z3nj
+.ra2z3anal
+.ra3z4ban
+.ra3z4bar
+.ra3z4bau
+.ra3z4bad
+.ra3z4bašur
+.ra3z4boj
+.ra3z4bor
+.ra3z4val
+.ra3z4vede
+.ra3z4vest
+.ra3z4vigo
+.ra3z4viju
+.ra3z4vija
+.ra3z4vije
+.ra3z4vit
+.ra3z4vić
+.ra3z4voj
+.ra3z4von
+.ra3z4vrat
+.ra3z4vrać
+.ra3z4vrt
+.ra3z4vrć
+.ra3z4gađ
+.ra3z4grt
+.ra3z4ev
+.ra3z4ij
+.ra3z4il
+.ra3z4in
+.ra3z4ir
+.ra3z4it
+.ra3z4iz
+.ra3z4iđ
+.ra3z4ić
+.ra3z4id
+.ra3z4laz
+.ra3z4lag
+.ra3z4lik
+.ra3z4lič
+.ra3z4loz
+.ra3z4lož
+.ra3z4log
+.ra3z4met
+.ra3z4meć
+.ra3z4mrsk
+.ra3z4nat
+.ra2z3obl
+.ra2z3obr
+.ra2z3oba
+.ra2z3od
+.ra2z3orat
+.ra2z3orav
+.ra2z3ort
+.ra2z3oru
+.ra2z3ot
+.ra3z4red
+.ra3z4rok
+.ra3z4roč
+.ra2z3uve
+.ra2z3udi
+.ra2z3uda
+.ra2z3udb
+.ra2z3uzi
+.ra2z3uzd
+.ra2z3uze
+.ra2z3ular
+.ra2z3umr
+.ra2s3c
+.ra2s3k
+.ra2s3p
+.ra2s3t
+.ra3s4kak
+.ra3s4kand
+.ra3s4kin
+.ra3s4klap
+.ra3s4klanj
+.ra3s4klad
+.ra3s4klon
+.ra3s4klopi
+.ra3s4kloplj
+.ra3s4klopa
+.ra3s4koš
+.ra3s4krop
+.ra3s4paj
+.ra3s4pav
+.ra3s4peti
+.ra3s4peto
+.ra3s4peta
+.ra3s4pete
+.ra3s4piku
+.ra3s4pinj
+.ra3s4plin
+.ra3s4plinj
+.ra3s4pn
+.ra3s4polož
+.ra3s4pon
+.ra3s4por
+.ra3s4prav
+.ra3s4prem
+.ra3s4rđ
+.ra3s4rd
+.ra3s4re
+.ra3s4taj
+.ra3s4tan
+.ra3s4tat
+.ra3s4tav
+.ra3s4tenj
+.ra3s4til
+.ra3s4tir
+.ra3s4tis
+.ra3s4tit
+.ra3s4tinj
+.ra3s4toj
+.ra3s4trel
+.ra3s4tret
+.ra3s4troj
+.ra3s4trt
+.ra3s4tup
+.ra3s4tur
+.ra3s4tuć
+.ra4s5turč
+.ra2š3ć
+.ra2š3č
+.ra3š4ćenj
+.ra3š4čić
+.u2z3b
+.u2z3d
+.u2z3g
+.u2z3i
+.u2z3j
+.u2z3l
+.u2z3m
+.u2z3n
+.u2z3lj
+.u2z3r
+.u2z3v
+.u2z3nj
+.u3z4bor
+.u3z4van
+.u3z4vat
+.u3z4viž
+.u3z4vijo
+.u3z4viju
+.u3z4vija
+.u3z4vije
+.u3z4voj
+.u3z4dic
+.u2z3igr
+.u2z3inat
+.u2z3iskr
+.u3z4lan
+.u3z4lat
+.u3z4lim
+.u3z4lit
+.u3z4lić
+.u3z4lic
+.u3z4lov
+.u3z4ludob
+.u3z4nak
+.u3z4nač
+.u3z4neve
+.u3z4nevje
+.u3z4nič
+.u3z4nic
+.u3z4noj
+.u2z3obest
+.u2z3obijest
+.u2z3orat
+.u2z3orav
+.u2z3oho
+.u3z4ret
+.u3z4rev
+.u3z4rijet
+.u3z4rijev
+.u3z4rn
+.u3z4rnj
+.u3z4roko
+.u3z4roku
+.u3z4roka
+.u3z4roč
+.u3z4ruj
+.u2z3ugar
+.u2s3c
+.u2s3k
+.u2s3p
+.u3s4kak
+.u3s4klađ
+.u3s4klad
+.u3s4ko
+.u4s5kom
+.u4s5kov
+.u4s5koš
+.u4s5koko
+.u4s5kolu
+.u4s5kole
+.u4s5kopa
+.u4s5kora
+.u4s5kosi
+.u4s5kotr
+.u3s4kup
+.u3s4pav
+.u3s4palo
+.u3s4peh
+.u3s4pel
+.u3s4pem
+.u3s4pet
+.u3s4pev
+.u3s4peš
+.u3s4pjeh
+.u3s4pjel
+.u3s4pjem
+.u3s4pjet
+.u3s4pjev
+.u3s4pješ
+.u3s4pent
+.u3s4pija
+.u3s4pije
+.u3s4pijuš
+.u3s4pikuš
+.u3s4pon
+.u3s4pori
+.u3s4pora
+.u3s4poren
+.u3s4porenj
+.u3s4poreč
+.u3s4posob
+.u3s4premi
+.u3s4prema
+.u3s4rk
+.u3s4rn
+.u3s4rp
+.u3s4rlj
+.u3s4rt
+.u3s4rđ
+.u3s4rž
+.u3s4ra
+.u3s4rd
+.u3s4re
+.u3s4rijed
+.u2s3talas
+.u2s3tara
+.u2s3tvrđ
+.u2s3tvrd
+.u2s3ter
+.u2s3teć
+.u2s3teg
+.u2s3tov
+.u2s3traj
+.u2s3tral
+.u2s3trg
+.u2s3trep
+.u2s3tres
+.u2s3treb
+.u2s3trk
+.u2s3trn
+.u2s3trp
+.u2s3trć
+.u2s3trč
+.u2s3tum
+.u2s3tur
+.u2s3tuć
+.u2š3ć
+.u2š3č
+.a2b3alij
+.a2b3anac
+.a2b3evak
+.a2b3erac
+.a2b3erir
+.a2b3irit
+.a2b3ju
+.a2b3la
+.a2b3leg
+.a2b3lep
+.a2b3lok
+.a2b3lu
+.a2b3orig
+.a2b3reak
+.a2b3rog
+.a2b3uzus
+.a2d3erac
+.a2d3verb
+.a2d3j
+.a2d3lat
+.a2d3ren
+.a2d3rog
+.a3g2nos
+.a3g2noz
+.a2nabap
+.a2nabaz
+.a2nabat
+.a2nabio
+.a2nabol
+.a2nagen
+.a2nagno
+.a2n3ago
+.a2nagra
+.a2nadem
+.a2nadipl
+.a2nadoz
+.a2n3a4e2ro
+.a2nakal
+.a2nakam
+.a2nakat
+.a2nakef
+.a2nakla
+.a2nakli
+.a2nakoj
+.a2n3akuz
+.a2n3alg
+.a2n3ald
+.a2nalep
+.a2naliz
+.a2nalis
+.a2nalit
+.a2n3amert
+.a2namne
+.a2n3andr
+.a2naneo
+.a2n3ant
+.a2napla
+.a2naple
+.a2napne
+.a2napno
+.a2napro
+.a2napti
+.a2n3apto
+.a2nart
+.a2n3arh
+.a2nasar
+.a2nasei
+.a2naspaz
+.a2nasta
+.a2nastig
+.a2nastom
+.a2natim
+.a2natom
+.a2natoc
+.a2natre
+.a2natri
+.a2natro
+.a2nafaz
+.a2n3afij
+.a2nafila
+.a2nafon
+.a2n3afrod
+.a2nakol
+.a2nakron
+.a2nakru
+.a2n3alfa
+.a2nafor
+.a2nahor
+.a2nahro
+.a2n3eger
+.a2n3ekl
+.a2n3ekum
+.a2n3elek
+.a2n3ener
+.a2n3epi
+.a2neor
+.a2n3erg
+.a2n3erit
+.a2n3este
+.a2n3idr
+.a2n3izog
+.a2n3izom
+.a2n3izur
+.a2n3irid
+.a2n3ovar
+.a2n3oks
+.a2n3opis
+.a2n3orh
+.a2n3oft
+.a2n3org
+.di2s3akor
+.di2s3junk
+.di2s3kval
+.di2s3kont
+.di2s3kord
+.di2s3kre
+.di2s3kri
+.di2s3kur
+.di2s3lo
+.di2s3orij
+.di2s3parit
+.di2s3poz
+.di2s3pon
+.di2s3prop
+.di2s3ton
+.di2s3trak
+.i2n3abrup
+.i2n3adek
+.i2n3akur
+.i2n3akce
+.i2n3amor
+.i2n3anic
+.i2n3aplik
+.i2n3apst
+.i2n3art
+.i2n3augur
+.i2n3aura
+.i2n3afek
+.i2n3evid
+.i2n3eg
+.i2n3ed
+.i2n3ekv
+.i2n3eks
+.i2n3elig
+.i2n3epc
+.i2n3efek
+.i2n3obl
+.i2nogen
+.i2nokor
+.i2n3okup
+.i2n3oper
+.i2n3opor
+.i2n3opse
+.i2n3ofic
+.i2n3umbr
+.i2n3unda
+.i2n3unk
+.i2n3util
+.inte2r3i
+.inte2r3o
+.inte2r3u
+.inte2r3a
+.inte2r3e
+.inte3r4egn
+.inte3r4esi
+.inte3r4esn
+.inte3r4eso
+.inte3r4esu
+.inte3r4esa
+.inte3r4ese
+.inte3r4eždž
+.inte3r4ije
+.inte2r3je
+.inte3r4ogat
+.juri2s3k
+.juri2s3p
+.nu2z3bel
+.nu2z3bilj
+.nu2z3ljub
+.nu2z3re
+.nu2z3rje
+.nu2z3už
+.nu2s3pos
+.nu2s3pro
+.po2st3egz
+.po2st3indu
+.po2st3lim
+.po2st3onk
+.po2st3oper
+.su2b3a
+.su2b3l
+.su3b4aš
+.su2b3inv
+.su2b3junk
+.su2b3oks
+.su2b3rep
+.su2b3rog
+.su2b3ord
+.supe2r3i
+.supe2r3o
+.supe2r3u
+.supe2r3a
+.supe2r3e
+.supe3r4ior
+.tran2s3a
+.tran2s3c
+.tran2s3e
+.tran2s3k
+.tran2s3l
+.tran2s3m
+.tran2s3n
+.tran2s3o
+.tran2s3p
+.tran2s3t
+.tran2s3u
+.tran2s3v
+.tran2s3nj
+.tran3s4ep
+.tran3s4kri
+.tran3s4um
+.tran3s4ud
+.a2n3jon
+.i2n3jek
+.i2n3jur
+.i2n3just
+.o2d3žal
+.o2d3žalj
+.o2d3ži
+.o2d3žv
+.o2d3že
+.pre2d3ži
+.pre2d3že
+.na2d3ždr
+.na2d3žnj
+.na2d3že
+.na2d3žanj
+.na2d3žir
+.na2d3živ
+.na2d3žup
+l2j
+n2j
+d2ž
+2dž.} \ No newline at end of file
diff --git a/tex/context/patterns/mkiv/lang-sr.lua b/tex/context/patterns/mkiv/lang-sr.lua
index 78455bca2..eed9741bd 100644
--- a/tex/context/patterns/mkiv/lang-sr.lua
+++ b/tex/context/patterns/mkiv/lang-sr.lua
@@ -1,10 +1,10 @@
return {
["comment"]="% generated by mtxrun --script pattern --convert",
["exceptions"]={
- ["characters"]="абвгдезиклмнопрстуцшјњћ",
- ["data"]="на-дно на-тка на-тка-ти на-тка-ше о-дно о-тка о-тка-ти о-тка-ше по-дно по-дне по-тку по-тки по-тке по-тка у-дно и-где и-гдје сву-где све-где сву-гдје све-гдје по-не-где по-не-гдје и-зби и-збе и-зба и-зби-ци и-зби-це и-зби-ца и-звит и-зим изо-ба-ру изо-ба-ри изо-ба-ре изо-ба-ра и-скок и-ско-ку и-ско-ка и-скон и-ско-ну и-ско-ни и-ско-на и-скру и-скре и-скри и-скра и-скрав и-спод и-спо-да и-стру и-стри и-стро и-стре и-стра на-ју на-ји на-јо на-је на-ја на-јам на-јест о-браз о-брет о-дви-ка о-дран о-дра-ти пре-двој ра-зму ра-зми ра-змо ра-зме ра-зма ра-зну ра-зни ра-зно ра-зне ра-зна ра-склоп ра-спе-лу ра-спе-ло ра-спе-ла ра-спе-ћа ра-спе-ћу ра-спе-ће ра-сту ра-сти ра-сте ра-ста ра-стом ра-стер ра-шћу ра-шћи ра-шћо ра-шће ра-шћа у-зно у-зна у-зни у-зник у-зрок у-ску у-ски у-ско у-ске у-ска ус-кос у-спио у-спео у-спор у-шћу у-шће у-шћа ин-те-рес тран-су тран-са тран-сом те-ле-ви-зор те-ле-ви-зо-ру те-ле-ви-зо-ром те-ле-ви-зо-ра те-ле-ви-зо-ри при-ти-сак при-ти-с-ком при-ти-с-ку при-ти-с-ка по-ја-ви-ће на-пу-шта про-гра-ми-ра-ње сни-ма-ња сни-ма-ње",
- ["length"]=1800,
- ["n"]=130,
+ ["characters"]="abcdegijklmnoprstuvzćšабвгдезиклмнопрстуцшјћ",
+ ["data"]="на-дно на-тка на-тка-ти на-тка-ше о-дно о-тка о-тка-ти о-тка-ше по-дно по-дне по-тки по-тку по-тка по-тке у-дно и-где и-гдје сву-где све-где сву-гдје све-гдје по-не-где по-не-гдје и-зби и-зба и-збе и-зби-ци и-зби-ца и-зби-це и-звит и-зим изо-ба-ри изо-ба-ру изо-ба-ра изо-ба-ре и-скок и-ско-ку и-ско-ка и-скон и-ско-ни и-ско-ну и-ско-на и-скри и-скру и-скра и-скре и-скрав и-спод и-спо-да и-стри и-стро и-стру и-стра и-стре на-ји на-јо на-ју на-ја на-је на-јам на-јест о-браз о-брет о-дви-ка о-дран о-дра-ти пре-двој ра-зми ра-змо ра-зму ра-зма ра-зме ра-зни ра-зно ра-зну ра-зна ра-зне ра-склоп ра-спе-ло ра-спе-лу ра-спе-ла ра-спе-ћу ра-спе-ћа ра-спе-ће ра-сти ра-сту ра-ста ра-сте ра-стом ра-стер ра-шћи ра-шћо ра-шћу ра-шћа ра-шће у-зни у-зно у-зна у-зник у-зрок у-ски у-ско у-ску у-ска у-ске ус-кос у-спио у-спео у-спор у-шћу у-шћа у-шће ин-те-рес тран-су тран-са тран-сом na-dno na-tka na-tka-ti na-tka-še o-dno o-tka o-tka-ti o-tka-še po-dno po-dne po-tki po-tku po-tka po-tke u-dno i-gde i-gdje svu-gde sve-gde svu-gdje sve-gdje po-ne-gde po-ne-gdje i-zbi i-zba i-zbe i-zbi-ci i-zbi-ca i-zbi-ce i-zvit i-zim izo-ba-ri izo-ba-ru izo-ba-ra izo-ba-re i-skok i-sko-ku i-sko-ka i-skon i-sko-ni i-sko-nu i-sko-na i-skri i-skru i-skra i-skre i-skrav i-spod i-spo-da i-stri i-stro i-stru i-stra i-stre na-ji na-jo na-ju na-ja na-je na-jam na-jest o-braz o-bret o-dvi-ka o-dran o-dra-ti pre-dvoj ra-zmi ra-zmo ra-zmu ra-zma ra-zme ra-zni ra-zno ra-znu ra-zna ra-zne ra-sklop ra-spe-lo ra-spe-lu ra-spe-la ra-spe-ću ra-spe-ća ra-spe-će ra-sti ra-stu ra-sta ra-ste ra-stom ra-ster ra-šći ra-šćo ra-šću ra-šća ra-šće u-zni u-zno u-zna u-znik u-zrok u-ski u-sko u-sku u-ska u-ske us-kos u-spio u-speo u-spor u-šću u-šća u-šće in-te-res tran-su tran-sa tran-som",
+ ["length"]=2394,
+ ["n"]=232,
},
["metadata"]={
["mnemonic"]="sr",
@@ -12,11 +12,11 @@ return {
["texcomment"]="% \n% \n% \n% \n% ",
},
["patterns"]={
- ["characters"]="абвгдежзиклмнопрстуфхцчшђјљњћџ",
- ["data"]=".ђ2 .ћ2 .ч2 .ш2 .ж2 .а2б3алиј .а2б3анац .а2б3ерац .а2б3ерир .а2б3евак .а2б3ирит .а2б3ју .а2б3ла .а2б3лег .а2б3леп .а2б3лок .а2б3лу .а2б3ориг .а2б3реак .а2б3рог .а2б3узус .а2д3ерац .а2д3ј .а2д3лат .а2д3рен .а2д3рог .а2д3верб .а2н3а4е2ро .а2н3афиј .а2н3афрод .а2н3аго .а2н3акуз .а2н3алд .а2н3алфа .а2н3алг .а2н3амерт .а2н3андр .а2н3ант .а2н3апто .а2н3арх .а2н3егер .а2н3екл .а2н3екум .а2н3елек .а2н3енер .а2н3епи .а2н3ерг .а2н3ерит .а2н3есте .а2н3идр .а2н3ирид .а2н3изог .а2н3изом .а2н3изур .а2н3јон .а2н3офт .а2н3окс .а2н3опис .а2н3орг .а2н3орх .а2н3овар .а2набап .а2набат .а2набаз .а2набио .а2набол .а2надем .а2надипл .а2надоз .а2нафаз .а2нафила .а2нафон .а2нафор .а2наген .а2нагно .а2награ .а2нахор .а2нахро .а2накал .а2накам .а2накат .а2накеф .а2накла .а2накли .а2накој .а2накол .а2накрон .а2накру .а2налеп .а2налис .а2налит .а2нализ .а2намне .а2нанео .а2напла .а2напле .а2напне .а2напно .а2напро .а2напти .а2нарт .а2насар .а2насеи .а2наспаз .а2наста .а2настиг .а2настом .а2натим .а2натоц .а2натом .а2натре .а2натри .а2натро .а2неор .а3г2нос .а3г2ноз .а4е2ро .б2 .бе2ш3ћ .бе2ш3ч .бе2с3ц .бе2с3к .бе2с3п .бе2с3т .бе2з3алкохол .бе2з3атомск .бе2з3б .бе2з3д .бе2з3г .бе2з3и .бе2з3л .бе2з3љ .бе2з3м .бе2з3н .бе2з3њ .бе2з3о .бе2з3р .бе2з3у .бе2з3в .бе3с4крупул .бе3с4покоја .бе3с4покојн .бе3с4пора .бе3с4порн .бе3с4тид .бе3с4тија .бе3с4тиљ .бе3с4тилу .бе3с4трана .бе3с4трас .бе3с4твар .бе3з4беда .бе3з4бедн .бе3з4бели .бе3з4бједа .бе3з4бједн .бе3з4бол .бе3з4истан .бе3з4истен .бе3з4јач .бе3з4јак .бе3з4лоба .бе3з4лобн .бе3з4начај .бе3з4рача .бе3з4рачн .бе3з4уб .бе3з4уп .бе3з4вуча .бе3з4вучн .бе4о .бес4тселер .би4о .ц2 .д2 .џ2 .ди2с3акор .ди2с3јунк .ди2с3конт .ди2с3корд .ди2с3кре .ди2с3кри .ди2с3кур .ди2с3квал .ди2с3ло .ди2с3ориј .ди2с3парит .ди2с3пон .ди2с3поз .ди2с3проп .ди2с3тон .ди2с3трак .ф2 .г2 .ге4о .х2 .и2ш3ћ .и2ш3ч .и2ж3ђ .и2н3абруп .и2н3адек .и2н3афек .и2н3акце .и2н3акур .и2н3амор .и2н3аниц .и2н3аплик .и2н3апст .и2н3арт .и2н3аугур .и2н3аура .и2н3ед .и2н3ефек .и2н3ег .и2н3екс .и2н3екв .и2н3елиг .и2н3епц .и2н3евид .и2н3јек .и2н3јур .и2н3јуст .и2н3обл .и2н3офиц .и2н3окуп .и2н3опер .и2н3опор .и2н3опсе .и2н3умбр .и2н3унда .и2н3унк .и2н3утил .и2ноген .и2нокор .и2с3ц .и2с3к .и2с3п .и2с3т .и2з3аба .и2з3ака .и2з3анал .и2з3б .и2з3бија .и2з3бива .и2з3д .и2з3дај .и2з3г .и2з3и .и2з3л .и2з3љ .и2з3м .и2з3н .и2з3њ .и2з3о .и2з3р .и2з3у .и2з3в .и2з3ведб .и2з3веде .и2з3веди .и2з3ведн .и3с4как .и3с4кариот .и3с4кат .и3с4кин .и3с4кита .и3с4коч .и3с4конск .и3с4крам .и3с4крат .и3с4крен .и3с4крењ .и3с4крич .и3с4криш .и3с4криц .и3с4крит .и3с4крој .и3с4крса .и3с4крсн .и3с4купља .и3с4квас .и3с4кврч .и3с4лаб .и3с4лам .и3с4леђ .и3с4лед .и3с4лијеђ .и3с4лијед .и3с4лик .и3с4лин .и3с4љеђ .и3с4љед .и3с4лов .и3с4луш .и3с4луж .и3с4ме .и3с4мије .и3с4мје .и3с4паљив .и3с4пав .и3с4пира .и3с4плић .и3с4плит .и3с4покој .и3с4полин .и3с4пон .и3с4порав .и3с4права .и3с4прави .и3с4правк .и3с4прављ .и3с4правн .и3с4пупч .и3с4пур .и3с4ред .и3с4рк .и3с4таћ .и3с4такн .и3с4там .и3с4тар .и3с4тас .и3с4тави .и3с4тављ .и3с4тиц .и3с4тифан .и3с4тин .и3с4тир .и3с4точа .и3с4точн .и3с4точњ .и3с4ток .и3с4тори .и3с4трад .и3с4тран .и3с4трав .и3с4трић .и3с4триж .и3с4триц .и3с4труг .и3с4туп .и3с4уш .и3с4ук .и3с4ус .и3с4ут .и3з4бав .и3з4бичкава .и3з4блеушан .и3з4бојак .и3з4бојк .и3з4драв .и3з4гомет .и3з4гред .и3з4грн .и3з4грт .и3з4иђ .и3з4ид .и3з4ими .и3з4јежљ .и3з4лож .и3з4лог .и3з4лопаћ .и3з4лоз .и3з4ним .и3з4ној .и3з4олац .и3з4олат .и3з4олир .и3з4олов .и3з4рачи .и3з4раел .и3з4раиљ .и3з4ун .и3з4упч .и3з4вала .и3з4вале .и3з4вали .и3з4ваљи .и3з4валу .и3з4вижд .и3з4виискр .и3з4вија .и3з4вијен .и3з4вин .и3з4вињ .и3з4вир .и3з4витоп .и3з4вјед .и3з4војац .и3з4војц .и3з4вор .инте2р3а .инте2р3е .инте2р3и .инте2р3је .инте2р3о .инте2р3у .инте3р4ежџ .инте3р4егн .инте3р4еса .инте3р4есе .инте3р4еси .инте3р4есн .инте3р4есо .инте3р4есу .инте3р4ије .инте3р4огат .ист2к .из3бе2з3обр .из3бе2з3ум .из3г2н .из3ва2н3евр .из4оанем .из4оаном .из4обат .из4оброн .из4одим .из4один .из4одоз .из4офон .из4офот .из4огам .из4огео .из4оглос .из4огон .из4ограф .из4охал .из4охаз .из4охел .из4охиј .из4охим .из4охипс .из4охит .из4охор .из4охро .из4оклин .из4околон .из4олекс .из4олукс .из4омер .из4ометр .из4оморф .из4онеф .из4оном .из4опат .из4опер .из4опле .из4опол .из4опсеф .из4орах .из4осеи .из4осинт .из4осист .из4оскел .из4оскоп .из4остаз .из4осте .из4отах .из4отал .из4отер .из4отон .из4отоп .из4отро .иза3г2н .иза3т2к .изд2на .изд2но .изд2ну .изр2к .јури2с3к .јури2с3п .к2 .љ2 .м2 .н2 .на2д3жањ .на2д3ждр .на2д3же .на2д3жир .на2д3жив .на2д3жњ .на2д3жуп .на2д3игр .на2д3инж .на2д3ина .на2д3иск .на2д3јач .на2д3јах .на2д3јеч .на2д3јек .на2д3јез .на2д3јун .на2д3л .на2д3љ .на2д3оч .на2д3офи .на2д3ора .на2д3осе .на2д3осје .на2д3осо .на2д3рач .на2д3рашћ .на2д3ран .на2д3раст .на2д3реал .на2д3реп .на2д3руч .на2д3руг .на2д3рук .на2д3уч .на2д3удар .на2д3ум .на2д3в .на2ј3а .на2ј3е .на2ј3и .на2ј3о .на2ј3у .на3д2нев .на3д2нич .на3д2ниц .на3д4лан .на3д4леш .на3д4леж .на3д4вал .на3д4веси .на3д4вест .на3д4виј .на3д4вит .на3д4вла .на3д4воје .на3д4вор .на3ј4аш .на3ј4ажи .на3ј4ада .на3ј4аде .на3ј4ади .на3ј4ах .на3ј4ака .на3ј4ако .на3ј4ало .на3ј4ами .на3ј4амл .на3ј4амн .на3ј4арц .на3ј4ари .на3ј4арм .на3ј4ати .на3ј4аук .на3ј4ава .на3ј4аве .на3ј4ави .на3ј4ављ .на3ј4ази .на3ј4еже .на3ј4ежи .на3ј4ежу .на3ј4ец .на3ј4еда .на3ј4еди .на3ј4едн .на3ј4едр .на3ј4ести .на3ј4етк .на3ј4езд .на3ј4езн .на3ј4урен .на3ј4ури .на3т2ках .на3т2кам .на3т2касм .на3т2каст .наг2н .наг2њ .ну2с3пос .ну2с3про .ну2з3бел .ну2з3биљ .ну2з3љуб .ну2з3ре .ну2з3рје .ну2з3уж .о2б3игр .о2б3истин .о2б3истињ .о2б3ј .о2б3лај .о2б3лакш .о2б3лам .о2б3ласк .о2б3лећ .о2б3леж .о2б3леден .о2б3лег .о2б3леп .о2б3лет .о2б3лијеж .о2б3лијег .о2б3лијеп .о2б3лијет .о2б3лист .о2б3лив .о2б3лизат .о2б3лизав .о2б3лизи .о2б3љ .о2б3лока .о2б3луч .о2б3лук .о2б3ору .о2б3р .о2б3уж .о2б3убож .о2б3уд .о2б3уме .о2б3уми .о2б3умр .о2б3уз .о2д3жал .о2д3жаљ .о2д3же .о2д3жи .о2д3жв .о2д3арг .о2д3и2з3д .о2д3и2з3в .о2д3игр .о2д3иск .о2д3исти .о2д3ј .о2д3л .о2д3љ .о2д3ок .о2д3онд .о2д3онл .о2д3оно .о2д3ону .о2д3озд .о2д3озг .о2д3р .о2д3уч .о2д3ук .о2д3ул .о2д3ум .о2д3уве .о2д3уви .о2д3узд .о2д3узе .о2д3узи .о2д3узл .о2д3в .о3б4јеш .о3б4јек .о3б4јер .о3б4јеси .о3б4јет .о3б4љан .о3б4љут .о3б4љуз .о3б4рђ .о3б4рч .о3б4рш .о3б4раћ .о3б4рашч .о3б4рашн .о3б4раже .о3б4рамб .о3б4ран .о3б4рањ .о3б4рат .о3б4раза .о3б4разд .о3б4рази .о3б4разн .о3б4разо .о3б4разу .о3б4ређ .о3б4реч .о3б4реж .о3б4рец .о3б4ред .о3б4рем .о3б4рес .о3б4рети .о3б4ретн .о3б4рич .о3б4риц .о3б4риј .о3б4рис .о3б4рит .о3б4рив .о3б4рк .о3б4рл .о3б4рљ .о3б4рн .о3б4роћ .о3б4роч .о3б4рок .о3б4рон .о3б4рова .о3б4ровц .о3б4рс .о3б4руч .о3б4руш .о3б4рук .о3б4рун .о3б4рус .о3д4јећ .о3д4јен .о3д4јев .о3д4лаж .о3д4лаг .о3д4лака .о3д4лаз .о3д4луч .о3д4лук .о3д4рж .о3д4раћ .о3д4рачи .о3д4раж .о3д4рана .о3д4ране .о3д4рани .о3д4рано .о3д4рану .о3д4рапа .о3д4рапи .о3д4рапљ .о3д4раз .о3д4ређ .о3д4ред .о3д4рем .о3д4рен .о3д4рич .о3д4риш .о3д4риб .о3д4риц .о3д4рин .о3д4рињ .о3д4рл .о3д4рљ .о3д4рн .о3д4рон .о3д4роњ .о3д4рп .о3д4рт .о3д4руж .о3д4руг .о3д4рвеч .о3д4рвен .о3д4рвењ .о3д4важ .о3д4вај .о3д4веса .о3д4весн .о3д4вест .о3д4вић .о3д4викав .о3д4викн .о3д4вис .о3д4вој .о3т2ках .о3т2кам .о3т2касм .о3т2каст .обе2ш3ћ .обе2ш3ч .обе2с3ц .обе2с3к .обе2с3п .обе2с3т .обе2з3б .обе2з3д .обе2з3г .обе2з3ј .обе2з3л .обе2з3љ .обе2з3м .обе2з3н .обе2з3о .обе2з3р .обе2з3у .обе2з3в .обе3с4тан .обе3с4тиј .обе3с4тран .обе3з4нач .обе3з4нан .обе3з4нањ .обе3з4уб .обе3з4виј .од3г2н .од3м2н .ода3д2н .ода3г2н .по2д3адм .по2д3игр .по2д3изв .по2д3ј .по2д3лакат .по2д3лакт .по2д3лећ .по2д3леж .по2д3лег .по2д3леп .по2д3лет .по2д3лијећ .по2д3лијеж .по2д3лијег .по2д3лијеп .по2д3лијет .по2д3лист .по2д3лиз .по2д3љут .по2д3лок .по2д3лом .по2д3луч .по2д3луж .по2д3луп .по2д3оч .по2д3ош .по2д3оф .по2д3окн .по2д3ра2з3д .по2д3рад .по2д3рам .по2д3ран .по2д3рањ .по2д3рас .по2д3равн .по2д3равњ .по2д3разр .по2д3разу .по2д3реп .по2д3рес .по2д3рез .по2д3рик .по2д3рит .по2д3рож .по2д3рон .по2д3ров .по2д3руча .по2д3ручи .по2д3ручн .по2д3руб .по2д3рук .по2д3упла .по2д3усм .по2д3усн .по2д3вариј .по2д3веч .по2д3веж .по2д3вез .по2д3вик .по2д3вил .по2д3вир .по2д3влаш .по2д3влас .по2д3вођ .по2д3вож .по2д3вод .по2д3воз .по2д3врћ .по2д3врж .по2д3враћ .по2д3врат .по2д3врг .по2д3врис .по2д3врс .по2д3вућ .по2ст3егз .по2ст3инду .по2ст3лим .по2ст3онк .по2ст3опер .по3д2нев .по3д4јеч .по3д4јен .по3г2н .по3м2н .по3м2њ .по3р2ђ .по3т2ках .по3т2кам .по3т2кат .по3т2кав .пре2д3же .пре2д3жи .пре2д3ид .пре2д3игр .пре2д3испи .пре2д3исто .пре2д3истр .пре2д3изб .пре2д3ј .пре2д3обј .пре2д3одре .пре2д3окус .пре2д3осе .пре2д3осје .пре2д3осв .пре2д3рач .пре2д3рад .пре2д3рат .пре2д3руч .пре2д3убеђ .пре2д3убијеђ .пре2д3убјеђ .пре2д3удар .пре2д3угов .пре2д3упис .пре2д3усло .пре2д3увер .пре2д3увјер .пре2д3увјет .пре2д3в .пре3д4јен .пре3д4вај .пре3д4вар .пре3д4вест .пре3д4воја .пре3д4воје .пре3д4воји .пре3д4вор .пре3д4вос .пре3т2ках .пре3т2кам .пре3т2кат .пред3м2н .пред3м2њ .про3г2н .про3т2ка .про3т2ки .проти2в3акц .проти2в3оф .проти2в3отр .проти2в3р .проти2в3уд .проти2в3ус .р2 .ра2ш3ћ .ра2ш3ч .ра2ж3ђ .ра2с3ц .ра2с3к .ра2с3п .ра2с3т .ра2з3анал .ра2з3б .ра2з3д .ра2з3е .ра2з3г .ра2з3и .ра2з3л .ра2з3љ .ра2з3м .ра2з3н .ра2з3њ .ра2з3оба .ра2з3обл .ра2з3обр .ра2з3од .ра2з3орат .ра2з3орав .ра2з3орт .ра2з3ору .ра2з3от .ра2з3р .ра2з3уда .ра2з3удб .ра2з3уди .ра2з3улар .ра2з3умр .ра2з3уве .ра2з3узд .ра2з3узе .ра2з3узи .ра2з3в .ра3ш4ћењ .ра3ш4чић .ра3с4как .ра3с4канд .ра3с4кин .ра3с4клад .ра3с4клањ .ра3с4клап .ра3с4клон .ра3с4клопа .ра3с4клопи .ра3с4клопљ .ра3с4кош .ра3с4кроп .ра3с4пај .ра3с4пав .ра3с4пета .ра3с4пете .ра3с4пети .ра3с4пето .ра3с4пику .ра3с4пињ .ра3с4плин .ра3с4плињ .ра3с4пн .ра3с4полож .ра3с4пон .ра3с4пор .ра3с4прав .ра3с4прем .ра3с4рђ .ра3с4рд .ра3с4ре .ра3с4тај .ра3с4тан .ра3с4тат .ра3с4тав .ра3с4тењ .ра3с4тил .ра3с4тињ .ра3с4тир .ра3с4тис .ра3с4тит .ра3с4тој .ра3с4трел .ра3с4трет .ра3с4трој .ра3с4трт .ра3с4тућ .ра3с4туп .ра3с4тур .ра3з4башур .ра3з4бад .ра3з4бан .ра3з4бар .ра3з4бау .ра3з4бој .ра3з4бор .ра3з4ев .ра3з4гађ .ра3з4грт .ра3з4иђ .ра3з4ић .ра3з4ид .ра3з4иј .ра3з4ин .ра3з4ир .ра3з4из .ра3з4лаг .ра3з4лаз .ра3з4лич .ра3з4лик .ра3з4лож .ра3з4лог .ра3з4лоз .ра3з4мећ .ра3з4мет .ра3з4мрск .ра3з4нат .ра3з4ред .ра3з4роч .ра3з4рок .ра3з4вал .ра3з4веде .ра3з4вест .ра3з4вић .ра3з4виго .ра3з4вија .ра3з4вије .ра3з4вију .ра3з4вит .ра3з4вој .ра3з4вон .ра3з4врћ .ра3з4враћ .ра3з4врат .ра3з4врт .ра4с5турч .раз3д2ни .раз3г2н .раза3г2н .раза3т2ка .с2 .су2б3а .су2б3инв .су2б3јунк .су2б3л .су2б3окс .су2б3орд .су2б3реп .су2б3рог .су3б4аш .супе2р3а .супе2р3е .супе2р3и .супе2р3о .супе2р3у .супе3р4иор .тран2с3а .тран2с3ц .тран2с3е .тран2с3к .тран2с3л .тран2с3м .тран2с3н .тран2с3о .тран2с3п .тран2с3т .тран2с3у .тран2с3в .тран3с4еп .тран3с4кри .тран3с4уд .тран3с4ум .у2ш3ћ .у2ш3ч .у2с3ц .у2с3к .у2с3п .у2с3талас .у2с3тара .у2с3тећ .у2с3тег .у2с3тер .у2с3тов .у2с3трћ .у2с3трч .у2с3трај .у2с3трал .у2с3треб .у2с3треп .у2с3трес .у2с3трг .у2с3трк .у2с3трн .у2с3трп .у2с3тућ .у2с3тум .у2с3тур .у2с3тврђ .у2с3тврд .у2з3б .у2з3д .у2з3г .у2з3и .у2з3игр .у2з3инат .у2з3искр .у2з3л .у2з3љ .у2з3м .у2з3н .у2з3њ .у2з3обест .у2з3обијест .у2з3охо .у2з3орат .у2з3орав .у2з3р .у2з3угар .у2з3в .у3г2ми .у3г2н .у3с4как .у3с4клађ .у3с4клад .у3с4ко .у3с4куп .у3с4пало .у3с4пав .у3с4пеш .у3с4пех .у3с4пел .у3с4пем .у3с4пент .у3с4пет .у3с4пев .у3с4пија .у3с4пије .у3с4пијуш .у3с4пикуш .у3с4пјеш .у3с4пјех .у3с4пјел .у3с4пјем .у3с4пјет .у3с4пјев .у3с4пон .у3с4пора .у3с4пореч .у3с4порен .у3с4порењ .у3с4пори .у3с4пособ .у3с4према .у3с4преми .у3с4рђ .у3с4рж .у3с4ра .у3с4рд .у3с4ре .у3с4ријед .у3с4рк .у3с4рљ .у3с4рн .у3с4рп .у3з4бор .у3з4диц .у3з4лан .у3з4лат .у3з4лић .у3з4лиц .у3з4лим .у3з4лит .у3з4лов .у3з4лудоб .у3з4нач .у3з4нак .у3з4неве .у3з4невје .у3з4нич .у3з4ниц .у3з4ној .у3з4рет .у3з4рев .у3з4ријет .у3з4ријев .у3з4рн .у3з4рњ .у3з4роч .у3з4рока .у3з4роко .у3з4року .у3з4руј .у3з4ван .у3з4ват .у3з4виж .у3з4вија .у3з4вије .у3з4вијо .у3з4вију .у3з4вој .у4с5кош .у4с5коко .у4с5коле .у4с5колу .у4с5ком .у4с5копа .у4с5кора .у4с5коси .у4с5котр .у4с5ков .уза3т2ка .ва2н3евр .ва2н3устав .з2 .за3г2н .за3т2ка 2ђ1ђ 2ђ1ћ 2ђ1ч 2ђ1ш 2ђ1ж 2ђ1б 2ђ1ц 2ђ1д 2ђ1џ 2ђ1ф 2ђ1г 2ђ1х 2ђ1к 2ђ1љ 2ђ1м 2ђ1н 2ђ1р 2ђ1с 2ђ1з 2ћ1ђ 2ћ1ћ 2ћ1ч 2ћ1ш 2ћ1ж 2ћ1б 2ћ1ц 2ћ1д 2ћ1џ 2ћ1ф 2ћ1г 2ћ1х 2ћ1к 2ћ1љ 2ћ1м 2ћ1н 2ћ1р 2ћ1с 2ћ1з 2ч1ђ 2ч1ћ 2ч1ч 2ч1ш 2ч1ж 2ч1б 2ч1ц 2ч1д 2ч1џ 2ч1ф 2ч1г 2ч1х 2ч1ј 2ч1к 2ч1љ 2ч1м 2ч1н 2ч1р 2ч1с 2ч1т 2ч1з 2ч3вј 2ч3вл 2ч3вљ 2чв. 2ш1ђ 2ш1ш 2ш1ж 2ш1б 2ш1д 2ш1џ 2ш1ф 2ш1г 2ш1х 2ш1ј 2ш1р 2ш1с 2ш1з 2ш3чв 2ш3цј 2ш3цв 2ш3мј 2ш3мл 2ш3мљ 2ш3пј 2ш3пл 2ш3пљ 2ш3тј 2ш3тл 2ш3тљ 2ш3вл 2ш3вљ 2шћ. 2шч. 2шчћ 2шчч 2шчш 2шчж 2шчб 2шчц 2шчд 2шчџ 2шчф 2шчг 2шчх 2шчј 2шчк 2шчљ 2шчм 2шчн 2шчр 2шчс 2шчт 2шчз 2шц. 2шцћ 2шцч 2шцш 2шцж 2шцб 2шцц 2шцд 2шцџ 2шцф 2шцг 2шцх 2шцк 2шцљ 2шцм 2шцн 2шцр 2шцс 2шцт 2шцз 2шк. 2шкђ 2шкћ 2шкч 2шкш 2шкж 2шкб 2шкц 2шкд 2шкџ 2шкф 2шкг 2шкх 2шкк 2шкм 2шкн 2шкс 2шкт 2шкз 2шљ. 2шм. 2шмђ 2шмч 2шмш 2шмж 2шмб 2шмц 2шмд 2шмџ 2шмф 2шмг 2шмх 2шмк 2шмм 2шмн 2шмс 2шмт 2шмз 2шн. 2шп. 2шпђ 2шпч 2шпш 2шпж 2шпб 2шпц 2шпд 2шпџ 2шпф 2шпг 2шпх 2шпк 2шпм 2шпн 2шпс 2шпт 2шпз 2шт. 2штђ 2штч 2штш 2штж 2штб 2штц 2штд 2штџ 2штф 2штг 2штх 2штк 2штм 2штн 2штс 2штт 2штз 2шв. 2швђ 2швч 2швш 2швж 2швб 2швц 2швд 2швџ 2швф 2швг 2швх 2швк 2швм 2швн 2швс 2швт 2швз 2ж1ћ 2ж1ч 2ж1ш 2ж1ж 2ж1ц 2ж1џ 2ж1ф 2ж1х 2ж1ј 2ж1к 2ж1р 2ж1с 2ж1т 2ж1з 2ж3бј 2ж3бл 2ж3бљ 2ж3бр 2ж3дј 2ж3дл 2ж3дљ 2ж3дв 2ж3гј 2ж3гл 2ж3гљ 2ж3гр 2ж3гв 2ж3мј 2ж3мл 2ж3мљ 2ж3мр 2ж3вл 2ж3вљ 2жђ. 2жб. 2жбђ 2жбч 2жбш 2жбж 2жбб 2жбц 2жбд 2жбџ 2жбф 2жбг 2жбх 2жбк 2жбм 2жбн 2жбс 2жбт 2жбз 2жд. 2ждч 2ждш 2ждб 2ждц 2ждд 2ждџ 2ждф 2ждг 2ждх 2ждк 2ждм 2ждн 2ждс 2ждт 2ждз 2жг. 2жгч 2жгш 2жгж 2жгб 2жгц 2жгд 2жгџ 2жгф 2жгг 2жгх 2жгк 2жгм 2жгн 2жгс 2жгт 2жгз 2жл. 2жљ. 2жм. 2жмђ 2жмч 2жмш 2жмж 2жмб 2жмц 2жмд 2жмџ 2жмф 2жмг 2жмх 2жмк 2жмм 2жмн 2жмс 2жмт 2жмз 2жн. 2жњ. 2жвђ 2жвч 2жвш 2жвж 2жвб 2жвц 2жвд 2жвџ 2жвф 2жвг 2жвх 2жвк 2жвм 2жвн 2жвс 2жвт 2жвз 2а1 2б1ђ 2б1ћ 2б1ч 2б1ш 2б1ж 2б1б 2б1ц 2б1д 2б1џ 2б1ф 2б1г 2б1х 2б1к 2б1м 2б1н 2б1с 2б1т 2б1з 2бј. 2бл. 2бљ. 2бр. 2ц1ђ 2ц1ћ 2ц1ч 2ц1ш 2ц1ж 2ц1б 2ц1ц 2ц1д 2ц1џ 2ц1ф 2ц1г 2ц1х 2ц1к 2ц1љ 2ц1м 2ц1н 2ц1с 2ц1т 2ц1з 2ц3вл 2ц3вљ 2цј. 2цр. 2цв. 2д1ђ 2д1ћ 2д1ч 2д1ш 2д1б 2д1ц 2д1д 2д1џ 2д1ф 2д1г 2д1х 2д1к 2д1м 2д1н 2д1с 2д1т 2д1з 2д3вл 2д3вљ 2д3вр 2џ1ђ 2џ1ћ 2џ1ч 2џ1ш 2џ1ж 2џ1б 2џ1ц 2џ1д 2џ1џ 2џ1ф 2џ1г 2џ1х 2џ1ј 2џ1к 2џ1љ 2џ1м 2џ1н 2џ1р 2џ1с 2џ1т 2џ1з 2џ. 2дј. 2дл. 2дљ. 2др. 2дв. 2е1 2ф1ђ 2ф1ћ 2ф1ч 2ф1ш 2ф1ж 2ф1б 2ф1ц 2ф1д 2ф1џ 2ф1ф 2ф1г 2ф1х 2ф1к 2ф1м 2ф1н 2ф1с 2ф1т 2ф1з 2фј. 2фл. 2фљ. 2фр. 2г1ђ 2г1ћ 2г1ч 2г1ш 2г1ж 2г1б 2г1ц 2г1д 2г1џ 2г1ф 2г1г 2г1х 2г1к 2г1м 2г1н 2г1с 2г1т 2г1з 2г3вј 2г3вл 2г3вљ 2г3вр 2гј. 2гл. 2гљ. 2гр. 2гв. 2х1ђ 2х1ћ 2х1ч 2х1ш 2х1ж 2х1б 2х1ц 2х1д 2х1џ 2х1ф 2х1г 2х1х 2х1к 2х1м 2х1н 2х1с 2х1т 2х1з 2х3вј 2х3вл 2х3вљ 2х3вр 2хј. 2хл. 2хљ. 2хр. 2хв. 2хвђ 2хвч 2хвш 2хвж 2хвб 2хвц 2хвд 2хвџ 2хвф 2хвг 2хвх 2хвк 2хвм 2хвн 2хвс 2хвт 2хвз 2и1 2ј1ђ 2ј1ћ 2ј1ч 2ј1ш 2ј1ж 2ј1б 2ј1ц 2ј1д 2ј1џ 2ј1ф 2ј1г 2ј1х 2ј1ј 2ј1к 2ј1љ 2ј1м 2ј1н 2ј1р 2ј1с 2ј1т 2ј1з 2к1ђ 2к1ћ 2к1ч 2к1ш 2к1ж 2к1б 2к1ц 2к1д 2к1џ 2к1ф 2к1г 2к1х 2к1к 2к1м 2к1н 2к1с 2к1т 2к1з 2к3вј 2к3вл 2к3вљ 2кј. 2кл. 2кљ. 2кр. 2кв. 2љ1ђ 2љ1ћ 2љ1ч 2љ1ш 2љ1ж 2љ1б 2љ1ц 2љ1д 2љ1џ 2љ1ф 2љ1г 2љ1х 2љ1ј 2љ1к 2љ1љ 2љ1м 2љ1н 2љ1р 2љ1с 2љ1т 2љ1з 2м1ђ 2м1ћ 2м1ч 2м1ш 2м1ж 2м1б 2м1ц 2м1д 2м1џ 2м1ф 2м1г 2м1х 2м1к 2м1м 2м1н 2м1с 2м1т 2м1з 2мј. 2мл. 2мљ. 2мр. 2н1ђ 2н1ћ 2н1ч 2н1ш 2н1ж 2н1б 2н1ц 2н1д 2н1џ 2н1ф 2н1г 2н1х 2н1к 2н1љ 2н1м 2н1н 2н1р 2н1с 2н1т 2н1з 2о1 2пј. 2пл. 2пљ. 2пр. 2р1ђ 2р1ћ 2р1ч 2р1ш 2р1ж 2р1б 2р1ц 2р1д 2р1џ 2р1ф 2р1г 2р1х 2р1ј 2р1к 2р1љ 2р1м 2р1н 2р1р 2р1с 2р1т 2р1з 2с1ђ 2с1ћ 2с1ч 2с1ш 2с1ж 2с1б 2с1д 2с1џ 2с1ф 2с1г 2с1х 2с1с 2с1з 2с3кј 2с3кљ 2с3тл 2с3вљ 2сц. 2сцђ 2сцћ 2сцч 2сцш 2сцж 2сцб 2сцц 2сцд 2сцџ 2сцф 2сцг 2сцх 2сцк 2сцљ 2сцм 2сцн 2сцр 2сцс 2сцт 2сцз 2сј. 2ск. 2скђ 2скћ 2скч 2скш 2скж 2скб 2скц 2скд 2скџ 2скф 2скг 2скх 2скк 2скм 2скн 2скс 2скт 2скз 2сл. 2сљ. 2см. 2смђ 2смћ 2смч 2смш 2смж 2смб 2смц 2смд 2смџ 2смф 2смг 2смх 2смк 2смм 2смн 2смс 2смт 2смз 2сн. 2сњ. 2сп. 2спђ 2спћ 2спч 2спш 2спж 2спб 2спц 2спд 2спџ 2спф 2спг 2спх 2спк 2спм 2спн 2спп 2спс 2спт 2спв 2спз 2ср. 2ст. 2стђ 2стћ 2стч 2стш 2стж 2стб 2стц 2стд 2стџ 2стф 2стг 2стх 2стк 2стм 2стн 2стп 2стс 2стт 2стз 2св. 2свђ 2свћ 2свч 2свш 2свж 2свб 2свц 2свд 2свџ 2свф 2свг 2свх 2свк 2свм 2свн 2свп 2свс 2свт 2свв 2свз 2т1ђ 2т1ћ 2т1ч 2т1ш 2т1ж 2т1б 2т1ц 2т1д 2т1џ 2т1ф 2т1г 2т1х 2т1к 2т1м 2т1н 2т1п 2т1с 2т1т 2т1з 2т3вј 2т3вл 2т3вљ 2тј. 2тл. 2тљ. 2тр. 2тв. 2у1 2в1ђ 2в1ћ 2в1ч 2в1ш 2в1ж 2в1б 2в1ц 2в1д 2в1џ 2в1ф 2в1г 2в1х 2в1к 2в1м 2в1н 2в1п 2в1с 2в1т 2в1в 2в1з 2вј. 2вл. 2вљ. 2вр. 2з1ђ 2з1ћ 2з1ч 2з1ш 2з1ж 2з1ц 2з1џ 2з1ф 2з1х 2з1к 2з1п 2з1с 2з1з 2з3бљ 2з3дл 2з3дљ 2з3дв 2з3гј 2з3гљ 2з3мл 2з3мр 2з3вл 2з3вљ 2зб. 2збђ 2збћ 2збч 2збш 2збж 2збб 2збц 2збд 2збџ 2збф 2збг 2збх 2збк 2збм 2збн 2збп 2збс 2збв 2збз 2зд. 2здђ 2здћ 2здч 2здш 2здб 2здц 2здд 2здџ 2здф 2здг 2здх 2здк 2здм 2здн 2здп 2здс 2здз 2зг. 2згђ 2згћ 2згч 2згж 2згб 2згц 2згд 2згџ 2згф 2згг 2згх 2згк 2згм 2згн 2згп 2згс 2згз 2зј. 2зл. 2зљ. 2зм. 2змђ 2змћ 2змч 2змш 2змж 2змб 2змц 2змд 2змџ 2змф 2змг 2змх 2змк 2змм 2змн 2змп 2змс 2змв 2змз 2зн. 2зњ. 2зр. 2зв. 2звђ 2звћ 2звч 2звш 2звж 2звб 2звц 2звд 2звџ 2звф 2звг 2звх 2звк 2звм 2звн 2звп 2звс 2звв 2звз 3ч2лан 3ч2лањ 3б2дењ 3б2дет 3б2дјењ 3б2дјет 3ц2мач 3ц2мак 3ц2миз 3ц2мок 3г2дегод. 3г2декад 3г2декак 3г2дјегод. 3г2дјекад 3г2дјекак 3г2мил 3г2миљ 3г2миз 3г2нај 3г2нежђ 3г2нев 3г2незд 3г2нијежђ 3г2нијезд 3г2њав 3г2њеч 3г2њес 3г2њет 3г2њев 3г2њил 3г2њиљ 3г2њио 3г2њит 3г2њур 3г2ној 3г2нос 3г2ноз 3х2тел 3х2тењ 3х2тети 3х2тев 3х2тјел 3х2тјењ 3х2тјети 3х2тјев 3к2неж 3к2нез 3к2њиж 3к2њиг 3м2наж 3м2нож 3м2ног 3п2сич 3п2сик 3п2сов 3п2суј 3р2ђа 3с2фер 3т2маст 3т2мул 3т2муљ 3т2муо 3т2мур 4р3је. 4р3јем ч2в ш2ч ш2л ш2љ ш2м ш2н ш2п ш2т ш2в ж2ђ ж2б ж2д ж2г ж2л ж2љ ж2м ж2н ж2в а3а а3е а3и а3о а3у б2ј б2л б2љ б2р ц2ј ц2р ц2в д2ж д2ј д2л д2љ д2р д2в е3а е3е е3и е3о е3у ф2ј ф2л ф2љ ф2р г2л г2љ г2р г2в х2л х2љ х2р х2в и3а и3е и3и и3о и3у к2л к2љ к2р к2в л2ј м2л м2љ м2р не3г2де. не3г2дје. ни3г2де. ни3г2дје. о3а о3е о3и о3о о3у п2ј п2л п2љ п2р с2ц с2к с2л с2љ с2м с2н с2п с2р с2в т2ј т2л т2в у3а у3е у3и у3о у3у в2л в2љ в2р з2б з2д з2г з2ј з2л з2љ з2м з2н з2р з2в",
+ ["characters"]="abcdefghijklmnoprstuvzćčđšžабвгдежзиклмнопрстуфхцчшђјљњћџ",
+ ["data"]="т2ј т2л т2љ т2р т2в д2ј д2л д2љ д2р д2в г2ј г2л г2љ г2р г2в х2ј х2л х2љ х2р х2в к2ј к2л к2љ к2р к2в 2д1ж 2д1б 2д1ц 2д1д 2д1ф 2д1г 2д1х 2д1к 2д1м 2д1н 2д1п 2д1с 2д1т 2д1њ 2д1џ 2д1з 2д1ш 2д1ђ 2д1ћ 2д1ч 2г1ж 2г1б 2г1ц 2г1д 2г1ф 2г1г 2г1х 2г1к 2г1м 2г1н 2г1п 2г1с 2г1т 2г1њ 2г1џ 2г1з 2г1ш 2г1ђ 2г1ћ 2г1ч 2х1ж 2х1б 2х1ц 2х1д 2х1ф 2х1г 2х1х 2х1к 2х1м 2х1н 2х1п 2х1с 2х1т 2х1њ 2х1џ 2х1з 2х1ш 2х1ђ 2х1ћ 2х1ч 2к1ж 2к1б 2к1ц 2к1д 2к1ф 2к1г 2к1х 2к1к 2к1м 2к1н 2к1п 2к1с 2к1т 2к1њ 2к1џ 2к1з 2к1ш 2к1ђ 2к1ћ 2к1ч 2т1ж 2т1б 2т1ц 2т1д 2т1ф 2т1г 2т1х 2т1к 2т1м 2т1н 2т1п 2т1с 2т1т 2т1њ 2т1џ 2т1з 2т1ш 2т1ђ 2т1ћ 2т1ч 2дј. 2дл. 2дљ. 2др. 2дв. 2гј. 2гл. 2гљ. 2гр. 2гв. 2хј. 2хл. 2хљ. 2хр. 2хв. 2кј. 2кл. 2кљ. 2кр. 2кв. 2тј. 2тл. 2тљ. 2тр. 2тв. п2ј п2л п2љ п2р в2ј в2л в2љ в2р б2ј б2л б2љ б2р ф2ј ф2л ф2љ ф2р м2ј м2л м2љ м2р 2б1ж 2б1б 2б1ц 2б1д 2б1ф 2б1г 2б1х 2б1к 2б1м 2б1н 2б1п 2б1с 2б1т 2б1в 2б1њ 2б1џ 2б1з 2б1ш 2б1ђ 2б1ћ 2б1ч 2ф1ж 2ф1б 2ф1ц 2ф1д 2ф1ф 2ф1г 2ф1х 2ф1к 2ф1м 2ф1н 2ф1п 2ф1с 2ф1т 2ф1в 2ф1њ 2ф1џ 2ф1з 2ф1ш 2ф1ђ 2ф1ћ 2ф1ч 2м1ж 2м1б 2м1ц 2м1д 2м1ф 2м1г 2м1х 2м1к 2м1м 2м1н 2м1п 2м1с 2м1т 2м1в 2м1њ 2м1џ 2м1з 2м1ш 2м1ђ 2м1ћ 2м1ч 2п1ж 2п1б 2п1ц 2п1д 2п1ф 2п1г 2п1х 2п1к 2п1м 2п1н 2п1п 2п1с 2п1т 2п1в 2п1њ 2п1џ 2п1з 2п1ш 2п1ђ 2п1ћ 2п1ч 2в1ж 2в1б 2в1ц 2в1д 2в1ф 2в1г 2в1х 2в1к 2в1м 2в1н 2в1п 2в1с 2в1т 2в1в 2в1њ 2в1џ 2в1з 2в1ш 2в1ђ 2в1ћ 2в1ч 2бј. 2бл. 2бљ. 2бр. 2фј. 2фл. 2фљ. 2фр. 2мј. 2мл. 2мљ. 2мр. 2пј. 2пл. 2пљ. 2пр. 2вј. 2вл. 2вљ. 2вр. с2ц с2ј с2к с2л с2м с2н с2п с2љ с2р с2т с2в с2њ 2с1ж 2с1б 2с1д 2с1ф 2с1г 2с1х 2с1с 2с1џ 2с1з 2с1ш 2с1ђ 2с1ћ 2с1ч 2сј. 2ск. 2сл. 2см. 2сн. 2сп. 2сљ. 2ср. 2ст. 2св. 2сњ. 2сц. з2б з2д з2г з2ј з2л з2м з2н з2љ з2р з2в з2њ 2з1ж 2з1ц 2з1ф 2з1х 2з1к 2з1п 2з1с 2з1т 2з1џ 2з1з 2з1ш 2з1ђ 2з1ћ 2з1ч 2зј. 2зл. 2зм. 2зн. 2зљ. 2зр. 2зв. 2зњ. 2зб. 2зд. 2зг. ш2ц ш2к ш2л ш2м ш2н ш2п ш2љ ш2т ш2в ш2њ ш2ћ ш2ч 2ш1ж 2ш1б 2ш1д 2ш1ф 2ш1г 2ш1х 2ш1с 2ш1џ 2ш1з 2ш1ш 2ш1ђ 2ш1ј 2ш1р 2шк. 2шл. 2шм. 2шн. 2шп. 2шљ. 2шт. 2шв. 2шњ. 2шћ. 2шч. 2шц. ж2б ж2д ж2г ж2л ж2м ж2н ж2љ ж2в ж2њ ж2ђ 2ж1ж 2ж1ц 2ж1ф 2ж1х 2ж1к 2ж1п 2ж1с 2ж1т 2ж1џ 2ж1з 2ж1ш 2ж1ћ 2ж1ч 2ж1ј 2ж1р 2жл. 2жм. 2жн. 2жљ. 2жв. 2жњ. 2жђ. 2жб. 2жд. 2жг. ц2ј ц2р ц2в 2ц1ж 2ц1б 2ц1ц 2ц1д 2ц1ф 2ц1г 2ц1х 2ц1к 2ц1л 2ц1м 2ц1н 2ц1п 2ц1љ 2ц1с 2ц1т 2ц1њ 2ц1џ 2ц1з 2ц1ш 2ц1ђ 2ц1ћ 2ц1ч 2цј. 2цр. 2цв. ч2в 2ч1ж 2ч1б 2ч1ц 2ч1д 2ч1ф 2ч1г 2ч1х 2ч1ј 2ч1к 2ч1л 2ч1м 2ч1н 2ч1п 2ч1љ 2ч1р 2ч1с 2ч1т 2ч1њ 2ч1џ 2ч1з 2ч1ш 2ч1ђ 2ч1ћ 2ч1ч 2чв. 2ј1ж 2ј1б 2ј1ц 2ј1д 2ј1ф 2ј1г 2ј1х 2ј1ј 2ј1к 2ј1л 2ј1м 2ј1н 2ј1п 2ј1љ 2ј1р 2ј1с 2ј1т 2ј1в 2ј1њ 2ј1џ 2ј1з 2ј1ш 2ј1ђ 2ј1ћ 2ј1ч 2л1ж 2л1б 2л1ц 2л1д 2л1ф 2л1г 2л1х 2л1ј 2л1к 2л1л 2л1м 2л1н 2л1п 2л1љ 2л1р 2л1с 2л1т 2л1в 2л1њ 2л1џ 2л1з 2л1ш 2л1ђ 2л1ћ 2л1ч 2н1ж 2н1б 2н1ц 2н1д 2н1ф 2н1г 2н1х 2н1ј 2н1к 2н1л 2н1м 2н1н 2н1п 2н1љ 2н1р 2н1с 2н1т 2н1в 2н1њ 2н1џ 2н1з 2н1ш 2н1ђ 2н1ћ 2н1ч 2љ1ж 2љ1б 2љ1ц 2љ1д 2љ1ф 2љ1г 2љ1х 2љ1ј 2љ1к 2љ1л 2љ1м 2љ1н 2љ1п 2љ1љ 2љ1р 2љ1с 2љ1т 2љ1в 2љ1њ 2љ1џ 2љ1з 2љ1ш 2љ1ђ 2љ1ћ 2љ1ч 2р1ж 2р1б 2р1ц 2р1д 2р1ф 2р1г 2р1х 2р1ј 2р1к 2р1л 2р1м 2р1н 2р1п 2р1љ 2р1р 2р1с 2р1т 2р1в 2р1њ 2р1џ 2р1з 2р1ш 2р1ђ 2р1ћ 2р1ч 2њ1ж 2њ1б 2њ1ц 2њ1д 2њ1ф 2њ1г 2њ1х 2њ1ј 2њ1к 2њ1л 2њ1м 2њ1н 2њ1п 2њ1љ 2њ1р 2њ1с 2њ1т 2њ1в 2њ1њ 2њ1џ 2њ1з 2њ1ш 2њ1ђ 2њ1ћ 2њ1ч 2џ1ж 2џ1б 2џ1ц 2џ1д 2џ1ф 2џ1г 2џ1х 2џ1ј 2џ1к 2џ1л 2џ1м 2џ1н 2џ1п 2џ1љ 2џ1р 2џ1с 2џ1т 2џ1в 2џ1њ 2џ1џ 2џ1з 2џ1ш 2џ1ђ 2џ1ћ 2џ1ч 2ђ1ж 2ђ1б 2ђ1ц 2ђ1д 2ђ1ф 2ђ1г 2ђ1х 2ђ1ј 2ђ1к 2ђ1л 2ђ1м 2ђ1н 2ђ1п 2ђ1љ 2ђ1р 2ђ1с 2ђ1т 2ђ1в 2ђ1њ 2ђ1џ 2ђ1з 2ђ1ш 2ђ1ђ 2ђ1ћ 2ђ1ч 2ћ1ж 2ћ1б 2ћ1ц 2ћ1д 2ћ1ф 2ћ1г 2ћ1х 2ћ1ј 2ћ1к 2ћ1л 2ћ1м 2ћ1н 2ћ1п 2ћ1љ 2ћ1р 2ћ1с 2ћ1т 2ћ1в 2ћ1њ 2ћ1џ 2ћ1з 2ћ1ш 2ћ1ђ 2ћ1ћ 2ћ1ч .х2 .ј2 .к2 .л2 .м2 .н2 .п2 .љ2 .р2 .с2 .т2 .в2 .њ2 .џ2 .з2 .ш2 .ђ2 .ћ2 .ч2 .ж2 .б2 .ц2 .д2 .ф2 .г2 о3а о3е о3и о3о о3у у3а у3е у3и у3о у3у а3а а3е а3и а3о а3у е3а е3е е3и е3о е3у и3а и3е и3и и3о и3у 2а1 2е1 2и1 2о1 2у1 2скб 2скц 2скд 2скф 2скг 2скх 2скк 2скм 2скн 2скп 2скс 2скт 2скњ 2скџ 2скз 2скш 2скђ 2скћ 2скч 2скж 2стб 2стц 2стд 2стф 2стг 2стх 2стк 2стм 2стн 2стп 2стс 2стт 2стњ 2стџ 2стз 2стш 2стђ 2стћ 2стч 2стж 2шкб 2шкц 2шкд 2шкф 2шкг 2шкх 2шкк 2шкм 2шкн 2шкп 2шкс 2шкт 2шкњ 2шкџ 2шкз 2шкш 2шкђ 2шкћ 2шкч 2шкж 2штб 2штц 2штд 2штф 2штг 2штх 2штк 2штм 2штн 2штп 2штс 2штт 2штњ 2штџ 2штз 2штш 2штђ 2штћ 2штч 2штж 2спб 2спц 2спд 2спф 2спг 2спх 2спк 2спм 2спн 2спп 2спс 2спт 2спв 2спњ 2спџ 2спз 2спш 2спђ 2спћ 2спч 2спж 2свб 2свц 2свд 2свф 2свг 2свх 2свк 2свм 2свн 2свп 2свс 2свт 2свв 2свњ 2свџ 2свз 2свш 2свђ 2свћ 2свч 2свж 2шпб 2шпц 2шпд 2шпф 2шпг 2шпх 2шпк 2шпм 2шпн 2шпп 2шпс 2шпт 2шпв 2шпњ 2шпџ 2шпз 2шпш 2шпђ 2шпћ 2шпч 2шпж 2швб 2швц 2швд 2швф 2швг 2швх 2швк 2швм 2швн 2швп 2швс 2швт 2швв 2швњ 2швџ 2швз 2швш 2швђ 2швћ 2швч 2швж 2ждб 2ждц 2ждд 2ждф 2ждг 2ждх 2ждк 2ждм 2ждн 2ждп 2ждс 2ждт 2ждњ 2ждџ 2ждз 2ждш 2ждђ 2ждћ 2ждч 2ждж 2жгб 2жгц 2жгд 2жгф 2жгг 2жгх 2жгк 2жгм 2жгн 2жгп 2жгс 2жгт 2жгњ 2жгџ 2жгз 2жгш 2жгђ 2жгћ 2жгч 2жгж 2здб 2здц 2здд 2здф 2здг 2здх 2здк 2здм 2здн 2здп 2здс 2здт 2здњ 2здџ 2здз 2здш 2здђ 2здћ 2здч 2здж 2згб 2згц 2згд 2згф 2згг 2згх 2згк 2згм 2згн 2згп 2згс 2згт 2згњ 2згџ 2згз 2згш 2згђ 2згћ 2згч 2згж 2жвб 2жвц 2жвд 2жвф 2жвг 2жвх 2жвк 2жвм 2жвн 2жвп 2жвс 2жвт 2жвв 2жвњ 2жвџ 2жвз 2жвш 2жвђ 2жвћ 2жвч 2жвж 2жбб 2жбц 2жбд 2жбф 2жбг 2жбх 2жбк 2жбм 2жбн 2жбп 2жбс 2жбт 2жбв 2жбњ 2жбџ 2жбз 2жбш 2жбђ 2жбћ 2жбч 2жбж 2звб 2звц 2звд 2звф 2звг 2звх 2звк 2звм 2звн 2звп 2звс 2звт 2звв 2звњ 2звџ 2звз 2звш 2звђ 2звћ 2звч 2звж 2збб 2збц 2збд 2збф 2збг 2збх 2збк 2збм 2збн 2збп 2збс 2збт 2збв 2збњ 2збџ 2збз 2збш 2збђ 2збћ 2збч 2збж 2жмб 2жмц 2жмд 2жмф 2жмг 2жмх 2жмк 2жмм 2жмн 2жмп 2жмс 2жмт 2жмв 2жмњ 2жмџ 2жмз 2жмш 2жмђ 2жмћ 2жмч 2жмж 2смб 2смц 2смд 2смф 2смг 2смх 2смк 2смм 2смн 2смп 2смс 2смт 2смв 2смњ 2смџ 2смз 2смш 2смђ 2смћ 2смч 2смж 2змб 2змц 2змд 2змф 2змг 2змх 2змк 2змм 2змн 2змп 2змс 2змт 2змв 2змњ 2змџ 2змз 2змш 2змђ 2змћ 2змч 2змж 2шмб 2шмц 2шмд 2шмф 2шмг 2шмх 2шмк 2шмм 2шмн 2шмп 2шмс 2шмт 2шмв 2шмњ 2шмџ 2шмз 2шмш 2шмђ 2шмћ 2шмч 2шмж 2сцб 2сцц 2сцд 2сцф 2сцг 2сцх 2сцк 2сцл 2сцм 2сцн 2сцп 2сцљ 2сцр 2сцс 2сцт 2сцњ 2сцџ 2сцз 2сцш 2сцђ 2сцћ 2сцч 2сцж 2шцб 2шцц 2шцд 2шцф 2шцг 2шцх 2шцк 2шцл 2шцм 2шцн 2шцп 2шцљ 2шцр 2шцс 2шцт 2шцњ 2шцџ 2шцз 2шцш 2шцђ 2шцћ 2шцч 2шцж 2шчб 2шчц 2шчд 2шчф 2шчг 2шчх 2шчј 2шчк 2шчл 2шчм 2шчн 2шчп 2шчљ 2шчр 2шчс 2шчт 2шчњ 2шчџ 2шчз 2шчш 2шчђ 2шчћ 2шчч 2шчж 2хвб 2хвц 2хвд 2хвф 2хвг 2хвх 2хвк 2хвм 2хвн 2хвп 2хвс 2хвт 2хвњ 2хвџ 2хвз 2хвш 2хвђ 2хвћ 2хвч 2хвж 2ж3вл 2ж3вљ 2ц3вл 2ц3вљ 2з3вл 2з3вљ 2ш3вл 2ш3вљ 2ч3вл 2ч3вљ 2ч3вј 2с3вљ 2д3вл 2д3вљ 2д3вр 2к3вј 2к3вл 2к3вљ 2т3вј 2т3вл 2т3вљ 2г3вј 2г3вл 2г3вљ 2г3вр 2х3вј 2х3вл 2х3вљ 2х3вр 2ж3мј 2ж3мл 2ж3мљ 2ж3мр 2з3мл 2з3мр 2ш3мј 2ш3мл 2ш3мљ 2ш3цј 2ш3цв 2ш3чв 2ш3тј 2ш3тл 2ш3тљ 2с3тл 2с3кј 2с3кљ 2ш3пј 2ш3пл 2ш3пљ 2ж3дј 2ж3дл 2ж3дљ 2ж3дв 2ж3гј 2ж3гл 2ж3гљ 2ж3гр 2ж3гв 2з3дл 2з3дљ 2з3дв 2з3гј 2з3гљ 2ж3бј 2ж3бл 2ж3бљ 2ж3бр 2з3бљ .а4е2ро .бе4о .би4о .ге4о .за3г2н .за3т2ка .иза3г2н .иза3т2к .из3г2н .изд2но .изд2ну .изд2на .изр2к .ист2к .наг2н .наг2њ .на3д2нев .на3д2нич .на3д2ниц .на3т2ках .на3т2кам .на3т2касм .на3т2каст .ода3г2н .ода3д2н .од3г2н .од3м2н .о3т2ках .о3т2кам .о3т2касм .о3т2каст .по3г2н .по3д2нев .по3м2н .по3м2њ .по3р2в .по3р2ђ .по3т2ках .по3т2кам .по3т2кат .по3т2кав .пред3м2н .пред3м2њ .пре3т2ках .пре3т2кам .пре3т2кат .про3г2н .про3т2ки .про3т2ка .раза3г2н .раз3г2н .раз3д2ни .раза3т2ка .у3г2ми .у3г2н .уза3т2ка 3х2тети 3х2тјети 3х2тел 3х2тев 3х2тењ 3х2тјел 3х2тјев 3х2тјењ 3г2дегод. 3г2дјегод. 3г2декак 3г2декад 3г2дјекак 3г2дјекад ни3г2де. не3г2де. ни3г2дје. не3г2дје. 3б2дет 3б2дењ 3б2дјет 3б2дјењ 3г2мил 3г2миљ 3г2миз 3г2нос 3г2ноз 3г2ној 3г2нај 3г2незд 3г2нијезд 3г2нежђ 3г2нијежђ 3г2нев 3г2њев 3г2њав 3г2њес 3г2њет 3г2њеч 3г2њил 3г2њио 3г2њиљ 3г2њит 3г2њур 3к2нез 3к2неж 3к2њиж 3к2њиг 3м2нож 3м2ног 3м2наж 3п2сик 3п2сич 3п2сов 3п2суј 3р2ђа 3с2фер 3т2маст 3т2мул 3т2муо 3т2муљ 3т2мур 3ц2миз 3ц2мак 3ц2мач 3ц2мок 3ч2лан 3ч2лањ 3р2је 4р3јем 4р3је. .бе2з3ј .бе2з3л .бе2з3м .бе2з3н .бе2з3љ .бе2з3р .бе2з3в .бе2з3њ .бе2з3б .бе2з3д .бе2з3г .бе2з3и .бе2з3о .бе2з3у .бе2з3алкохол .бе2з3атомск .бе3з4бедн .бе3з4беда .бе3з4бједн .бе3з4бједа .бе3з4бели .бе3з4бол .бе3з4вучн .бе3з4вуча .бе3з4истан .бе3з4истен .бе3з4јак .бе3з4јач .бе3з4лобн .бе3з4лоба .бе3з4начај .бе3з4рачн .бе3з4рача .бе3з4уп .бе3з4уб .бе2с3ц .бе2с3к .бе2с3п .бе2с3т .бе3с4крупул .бе3с4покојн .бе3с4покоја .бе3с4порн .бе3с4пора .бе3с4твар .бе3с4тид .бе3с4тија .бе3с4тилу .бе3с4тиљ .бе3с4трана .бе3с4трас .бес4тселер .бе2ш3ћ .бе2ш3ч .ва2н3евр .ва2н3устав .и2з3б .и2з3д .и2з3г .и2з3ј .и2з3л .и2з3м .и2з3н .и2з3љ .и2з3р .и2з3в .и2з3њ .и2з3и .и2з3о .и2з3у .и2з3бија .и2з3бива .и2з3веди .и2з3ведн .и2з3ведб .и2з3веде .и2з3дај .и2з3аба .и2з3ака .и2з3анал .и3з4бав .и3з4бичкава .и3з4блеушан .и3з4бојак .и3з4бојк .и3з4вали .и3з4валу .и3з4вала .и3з4вале .и3з4ваљи .и3з4вижд .и3з4виискр .и3з4вија .и3з4вијен .и3з4вин .и3з4вир .и3з4вињ .и3з4витоп .и3з4вјед .и3з4војац .и3з4војц .и3з4вор .и3з4гомет .и3з4гред .и3з4грн .и3з4грт .и3з4драв .и3з4иђ .и3з4ид .и3з4ими .и3з4јежљ .и3з4лоз .и3з4лож .и3з4лог .и3з4лопаћ .и3з4ним .и3з4ној .из4оанем .из4оаном .из4обат .из4оброн .из4огам .из4огео .из4оглос .из4огон .из4ограф .из4одим .из4один .из4одоз .из4оклин .из4околон .и3з4олат .и3з4олац .и3з4олир .и3з4олов .из4олекс .из4олукс .из4омер .из4ометр .из4оморф .из4онеф .из4оном .из4опат .из4опер .из4опле .из4опол .из4опсеф .из4орах .из4осеи .из4осинт .из4осист .из4оскел .из4оскоп .из4остаз .из4осте .из4отах .из4отал .из4отер .из4отон .из4отоп .из4отро .из4офон .из4офот .из4охал .из4охаз .из4охел .из4охиј .из4охим .из4охит .из4охипс .из4охор .из4охро .и3з4раел .и3з4раиљ .и3з4рачи .и3з4ун .и3з4упч .и2с3ц .и2с3к .и2с3п .и2с3т .и3с4как .и3с4кат .и3с4кањ .и3с4кариот .и3с4квас .и3с4кврч .и3с4кин .и3с4кита .и3с4конск .и3с4коч .и3с4крам .и3с4крит .и3с4криш .и3с4крич .и3с4криц .и3с4крат .и3с4крен .и3с4крењ .и3с4крој .и3с4крсн .и3с4крса .и3с4купља .и3с4лам .и3с4лаб .и3с4леђ .и3с4лед .и3с4лијеђ .и3с4лијед .и3с4љеђ .и3с4љед .и3с4лик .и3с4лин .и3с4лов .и3с4луш .и3с4луж .и3с4ме .и3с4мије .и3с4мје .и3с4пав .и3с4паљив .и3с4пира .и3с4плит .и3с4плић .и3с4покој .и3с4полин .и3с4пон .и3с4порав .и3с4прави .и3с4правк .и3с4правн .и3с4прављ .и3с4права .и3с4пупч .и3с4пур .и3с4ред .и3с4рк .и3с4тави .и3с4тављ .и3с4такн .и3с4там .и3с4тар .и3с4тас .и3с4таћ .и3с4тин .и3с4тир .и3с4тиц .и3с4тифан .и3с4ток .и3с4тори .и3с4точн .и3с4точњ .и3с4точа .и3с4трав .и3с4трад .и3с4тран .и3с4трић .и3с4триж .и3с4триц .и3с4труг .и3с4туп .и3с4ук .и3с4ус .и3с4ут .и3с4уш .и2ж3ђ .и2ш3ћ .и2ш3ч .из3бе2з3обр .из3бе2з3ум .из3ва2н3евр .на2д3л .на2д3љ .на2д3в .на3д4вал .на3д4веси .на3д4вест .на3д4виј .на3д4вит .на3д4вла .на3д4воје .на3д4вор .на2д3игр .на2д3инж .на2д3ина .на2д3иск .на2д3јах .на2д3јач .на2д3јек .на2д3јез .на2д3јеч .на2д3јун .на3д4лан .на3д4леш .на3д4леж .на2д3ора .на2д3осо .на2д3осе .на2д3осје .на2д3офи .на2д3оч .на2д3ран .на2д3рач .на2д3раст .на2д3рашћ .на2д3реал .на2д3реп .на2д3рук .на2д3руч .на2д3руг .на2д3удар .на2д3ум .на2д3уч .на2ј3а .на2ј3е .на2ј3и .на2ј3о .на2ј3у .на3ј4ави .на3ј4ављ .на3ј4ава .на3ј4аве .на3ј4ади .на3ј4ада .на3ј4аде .на3ј4ажи .на3ј4ази .на3ј4ако .на3ј4ака .на3ј4ало .на3ј4ами .на3ј4амл .на3ј4амн .на3ј4ари .на3ј4арм .на3ј4арц .на3ј4ати .на3ј4аук .на3ј4ах .на3ј4аш .на3ј4еди .на3ј4едн .на3ј4едр .на3ј4еда .на3ј4ежи .на3ј4ежу .на3ј4еже .на3ј4езн .на3ј4езд .на3ј4ести .на3ј4етк .на3ј4ец .на3ј4ури .на3ј4урен .о2б3ј .о2б3љ .о2б3р .обе2з3б .обе2з3д .обе2з3г .обе2з3ј .обе2з3л .обе2з3м .обе2з3н .обе2з3о .обе2з3љ .обе2з3р .обе2з3у .обе2з3в .обе3з4виј .обе3з4нан .обе3з4нањ .обе3з4нач .обе3з4уб .обе2с3ц .обе2с3к .обе2с3п .обе2с3т .обе3с4тан .обе3с4тиј .обе3с4тран .обе2ш3ћ .обе2ш3ч .о2б3игр .о2б3истин .о2б3истињ .о3б4јек .о3б4јер .о3б4јеси .о3б4јет .о3б4јеш .о2б3лај .о2б3лам .о2б3лакш .о2б3ласк .о2б3леп .о2б3лет .о2б3лећ .о2б3леж .о2б3лег .о2б3лијеп .о2б3лијет .о2б3лијеж .о2б3лијег .о2б3леден .о2б3лив .о2б3лизат .о2б3лизав .о2б3лизи .о2б3лист .о2б3лока .о2б3лук .о2б3луч .о3б4љан .о3б4љут .о3б4љуз .о2б3ору .о3б4раже .о3б4рази .о3б4разн .о3б4разо .о3б4разу .о3б4раза .о3б4разд .о3б4рамб .о3б4ран .о3б4рањ .о3б4рат .о3б4раћ .о3б4рашн .о3б4рашч .о3б4рв .о3б4рђ .о3б4рем .о3б4рес .о3б4ређ .о3б4реч .о3б4реж .о3б4рец .о3б4ред .о3б4рети .о3б4ретн .о3б4риј .о3б4рис .о3б4рит .о3б4рив .о3б4рич .о3б4риц .о3б4рк .о3б4рл .о3б4рн .о3б4рљ .о3б4рс .о3б4рт .о3б4рш .о3б4рч .о3б4рок .о3б4рон .о3б4роњ .о3б4роћ .о3б4роч .о3б4рова .о3б4ровц .о3б4рук .о3б4рун .о3б4рус .о3б4руњ .о3б4руш .о3б4руч .о2б3убож .о2б3уз .о2б3уж .о2б3уд .о2б3уми .о2б3умј .о2б3умр .о2б3уме .о2д3ј .о2д3л .о2д3љ .о2д3р .о2д3в .о2д3арг .о3д4вај .о3д4важ .о3д4весн .о3д4вест .о3д4веса .о3д4викав .о3д4викн .о3д4вис .о3д4вић .о3д4вој .о2д3игр .о2д3и2з3в .о2д3и2з3д .о2д3иск .о2д3исти .о3д4јел .о3д4јен .о3д4јев .о3д4јећ .о3д4лаз .о3д4лаж .о3д4лаг .о3д4лака .о3д4лук .о3д4луч .о2д3озд .о2д3озг .о2д3ок .о2д3онл .о2д3оно .о2д3ону .о2д3онд .о3д4рани .о3д4рано .о3д4рану .о3д4рана .о3д4ране .о3д4раз .о3д4раћ .о3д4раж .о3д4рапи .о3д4рапљ .о3д4рапа .о3д4рачи .о3д4рвен .о3д4рвењ .о3д4рвеч .о3д4рем .о3д4рен .о3д4рет .о3д4ређ .о3д4ред .о3д4рл .о3д4рн .о3д4рп .о3д4рљ .о3д4рт .о3д4рж .о3д4рин .о3д4рињ .о3д4риш .о3д4рич .о3д4риб .о3д4риц .о3д4рон .о3д4роњ .о3д4руж .о3д4руг .о2д3уви .о2д3уве .о2д3узи .о2д3узл .о2д3узд .о2д3узе .о2д3ук .о2д3ул .о2д3ум .о2д3уч .по2д3адм .по2д3вариј .по2д3вез .по2д3веч .по2д3веж .по2д3вик .по2д3вил .по2д3вир .по2д3вињ .по2д3влас .по2д3влаш .по2д3воз .по2д3вођ .по2д3вож .по2д3вод .по2д3врат .по2д3враћ .по2д3врћ .по2д3врж .по2д3врг .по2д3врис .по2д3врс .по2д3вућ .по2д3игр .по2д3изв .по2д3ј .по3д4јен .по3д4јеч .по2д3лакат .по2д3лакт .по2д3леп .по2д3лет .по2д3лећ .по2д3леж .по2д3лег .по2д3лиз .по2д3лијеп .по2д3лијет .по2д3лијећ .по2д3лијеж .по2д3лијег .по2д3лист .по2д3лок .по2д3лом .по2д3луп .по2д3луч .по2д3луж .по2д3љут .по2д3окн .по2д3ош .по2д3оч .по2д3оф .по2д3равн .по2д3равњ .по2д3рад .по2д3ра2з3д .по2д3разр .по2д3разу .по2д3рам .по2д3ран .по2д3рас .по2д3рањ .по2д3реп .по2д3рес .по2д3рез .по2д3рик .по2д3рит .по2д3рон .по2д3ров .по2д3рож .по2д3рук .по2д3руб .по2д3ручи .по2д3ручн .по2д3руча .по2д3упла .по2д3усм .по2д3усн .пре2д3ј .пре2д3в .пре3д4вај .пре3д4вар .пре3д4вест .пре3д4воји .пре3д4воја .пре3д4воје .пре3д4вор .пре3д4вос .пре3д4јен .пре2д3игр .пре2д3ид .пре2д3изб .пре2д3испи .пре2д3исто .пре2д3истр .пре2д3обј .пре2д3одре .пре2д3окус .пре2д3осв .пре2д3осе .пре2д3осје .пре2д3рат .пре2д3рач .пре2д3рад .пре2д3руч .пре2д3убеђ .пре2д3убијеђ .пре2д3убјеђ .пре2д3увер .пре2д3увјер .пре2д3увјет .пре2д3угов .пре2д3удар .пре2д3упис .пре2д3усло .проти2в3акц .проти2в3отр .проти2в3оф .проти2в3р .проти2в3ус .проти2в3уд .ра2ж3ђ .ра2з3б .ра2з3д .ра2з3е .ра2з3г .ра2з3и .ра2з3ј .ра2з3л .ра2з3м .ра2з3н .ра2з3љ .ра2з3р .ра2з3в .ра2з3њ .ра2з3анал .ра3з4бан .ра3з4бар .ра3з4бау .ра3з4бад .ра3з4башур .ра3з4бој .ра3з4бор .ра3з4вал .ра3з4веде .ра3з4вест .ра3з4виго .ра3з4вију .ра3з4вија .ра3з4вије .ра3з4вит .ра3з4вић .ра3з4вој .ра3з4вон .ра3з4врат .ра3з4враћ .ра3з4врт .ра3з4врћ .ра3з4гађ .ра3з4грт .ра3з4ев .ра3з4иј .ра3з4ил .ра3з4ин .ра3з4ир .ра3з4ит .ра3з4из .ра3з4иђ .ра3з4ић .ра3з4ид .ра3з4лаз .ра3з4лаг .ра3з4лик .ра3з4лич .ра3з4лоз .ра3з4лож .ра3з4лог .ра3з4мет .ра3з4мећ .ра3з4мрск .ра3з4нат .ра2з3обл .ра2з3обр .ра2з3оба .ра2з3од .ра2з3орат .ра2з3орав .ра2з3орт .ра2з3ору .ра2з3от .ра3з4ред .ра3з4рок .ра3з4роч .ра2з3уве .ра2з3уди .ра2з3уда .ра2з3удб .ра2з3узи .ра2з3узд .ра2з3узе .ра2з3улар .ра2з3умр .ра2с3ц .ра2с3к .ра2с3п .ра2с3т .ра3с4как .ра3с4канд .ра3с4кин .ра3с4клап .ра3с4клањ .ра3с4клад .ра3с4клон .ра3с4клопи .ра3с4клопљ .ра3с4клопа .ра3с4кош .ра3с4кроп .ра3с4пај .ра3с4пав .ра3с4пети .ра3с4пето .ра3с4пета .ра3с4пете .ра3с4пику .ра3с4пињ .ра3с4плин .ра3с4плињ .ра3с4пн .ра3с4полож .ра3с4пон .ра3с4пор .ра3с4прав .ра3с4прем .ра3с4рђ .ра3с4рд .ра3с4ре .ра3с4тај .ра3с4тан .ра3с4тат .ра3с4тав .ра3с4тењ .ра3с4тил .ра3с4тир .ра3с4тис .ра3с4тит .ра3с4тињ .ра3с4тој .ра3с4трел .ра3с4трет .ра3с4трој .ра3с4трт .ра3с4туп .ра3с4тур .ра3с4тућ .ра4с5турч .ра2ш3ћ .ра2ш3ч .ра3ш4ћењ .ра3ш4чић .у2з3б .у2з3д .у2з3г .у2з3и .у2з3ј .у2з3л .у2з3м .у2з3н .у2з3љ .у2з3р .у2з3в .у2з3њ .у3з4бор .у3з4ван .у3з4ват .у3з4виж .у3з4вијо .у3з4вију .у3з4вија .у3з4вије .у3з4вој .у3з4диц .у2з3игр .у2з3инат .у2з3искр .у3з4лан .у3з4лат .у3з4лим .у3з4лит .у3з4лић .у3з4лиц .у3з4лов .у3з4лудоб .у3з4нак .у3з4нач .у3з4неве .у3з4невје .у3з4нич .у3з4ниц .у3з4ној .у2з3обест .у2з3обијест .у2з3орат .у2з3орав .у2з3охо .у3з4рет .у3з4рев .у3з4ријет .у3з4ријев .у3з4рн .у3з4рњ .у3з4роко .у3з4року .у3з4рока .у3з4роч .у3з4руј .у2з3угар .у2с3ц .у2с3к .у2с3п .у3с4как .у3с4клађ .у3с4клад .у3с4ко .у4с5ком .у4с5ков .у4с5кош .у4с5коко .у4с5колу .у4с5коле .у4с5копа .у4с5кора .у4с5коси .у4с5котр .у3с4куп .у3с4пав .у3с4пало .у3с4пех .у3с4пел .у3с4пем .у3с4пет .у3с4пев .у3с4пеш .у3с4пјех .у3с4пјел .у3с4пјем .у3с4пјет .у3с4пјев .у3с4пјеш .у3с4пент .у3с4пија .у3с4пије .у3с4пијуш .у3с4пикуш .у3с4пон .у3с4пори .у3с4пора .у3с4порен .у3с4порењ .у3с4пореч .у3с4пособ .у3с4преми .у3с4према .у3с4рк .у3с4рн .у3с4рп .у3с4рљ .у3с4рт .у3с4рђ .у3с4рж .у3с4ра .у3с4рд .у3с4ре .у3с4ријед .у2с3талас .у2с3тара .у2с3тврђ .у2с3тврд .у2с3тер .у2с3тећ .у2с3тег .у2с3тов .у2с3трај .у2с3трал .у2с3трг .у2с3треп .у2с3трес .у2с3треб .у2с3трк .у2с3трн .у2с3трп .у2с3трћ .у2с3трч .у2с3тум .у2с3тур .у2с3тућ .у2ш3ћ .у2ш3ч .а2б3алиј .а2б3анац .а2б3евак .а2б3ерац .а2б3ерир .а2б3ирит .а2б3ју .а2б3ла .а2б3лег .а2б3леп .а2б3лок .а2б3лу .а2б3ориг .а2б3реак .а2б3рог .а2б3узус .а2д3ерац .а2д3верб .а2д3ј .а2д3лат .а2д3рен .а2д3рог .а3г2нос .а3г2ноз .а2набап .а2набаз .а2набат .а2набио .а2набол .а2наген .а2нагно .а2н3аго .а2награ .а2надем .а2надипл .а2надоз .а2н3а4е2ро .а2накал .а2накам .а2накат .а2накеф .а2накла .а2накли .а2накој .а2н3акуз .а2н3алг .а2н3алд .а2налеп .а2нализ .а2налис .а2налит .а2н3амерт .а2намне .а2н3андр .а2нанео .а2н3ант .а2напла .а2напле .а2напне .а2напно .а2напро .а2напти .а2н3апто .а2нарт .а2н3арх .а2насар .а2насеи .а2наспаз .а2наста .а2настиг .а2настом .а2натим .а2натом .а2натоц .а2натре .а2натри .а2натро .а2нафаз .а2н3афиј .а2нафила .а2нафон .а2н3афрод .а2накол .а2накрон .а2накру .а2н3алфа .а2нафор .а2нахор .а2нахро .а2н3егер .а2н3екл .а2н3екум .а2н3елек .а2н3енер .а2н3епи .а2неор .а2н3ерг .а2н3ерит .а2н3есте .а2н3идр .а2н3изог .а2н3изом .а2н3изур .а2н3ирид .а2н3овар .а2н3окс .а2н3опис .а2н3орх .а2н3офт .а2н3орг .ди2с3акор .ди2с3јунк .ди2с3квал .ди2с3конт .ди2с3корд .ди2с3кре .ди2с3кри .ди2с3кур .ди2с3ло .ди2с3ориј .ди2с3парит .ди2с3поз .ди2с3пон .ди2с3проп .ди2с3тон .ди2с3трак .и2н3абруп .и2н3адек .и2н3акур .и2н3акце .и2н3амор .и2н3аниц .и2н3аплик .и2н3апст .и2н3арт .и2н3аугур .и2н3аура .и2н3афек .и2н3евид .и2н3ег .и2н3ед .и2н3екв .и2н3екс .и2н3елиг .и2н3епц .и2н3ефек .и2н3обл .и2ноген .и2нокор .и2н3окуп .и2н3опер .и2н3опор .и2н3опсе .и2н3офиц .и2н3умбр .и2н3унда .и2н3унк .и2н3утил .инте2р3и .инте2р3о .инте2р3у .инте2р3а .инте2р3е .инте3р4егн .инте3р4еси .инте3р4есн .инте3р4есо .инте3р4есу .инте3р4еса .инте3р4есе .инте3р4ежџ .инте3р4ије .инте2р3је .инте3р4огат .јури2с3к .јури2с3п .ну2з3бел .ну2з3биљ .ну2з3љуб .ну2з3ре .ну2з3рје .ну2з3уж .ну2с3пос .ну2с3про .по2ст3егз .по2ст3инду .по2ст3лим .по2ст3онк .по2ст3опер .су2б3а .су2б3л .су3б4аш .су2б3инв .су2б3јунк .су2б3окс .су2б3реп .су2б3рог .су2б3орд .супе2р3и .супе2р3о .супе2р3у .супе2р3а .супе2р3е .супе3р4иор .тран2с3а .тран2с3ц .тран2с3е .тран2с3к .тран2с3л .тран2с3м .тран2с3н .тран2с3о .тран2с3п .тран2с3т .тран2с3у .тран2с3в .тран2с3њ .тран3с4еп .тран3с4кри .тран3с4ум .тран3с4уд t2j t2l t2lj t2r t2v d2j d2l d2lj d2r d2v g2j g2l g2lj g2r g2v h2j h2l h2lj h2r h2v k2j k2l k2lj k2r k2v 2d1b 2d1c 2d1d 2d1f 2d1g 2d1h 2d1k 2d1m 2d1n 2d1p 2d1s 2d1t 2d1nj 2d1dž 2d1z 2d1š 2d1đ 2d1ć 2d1č 2g1ž 2g1b 2g1c 2g1d 2g1f 2g1g 2g1h 2g1k 2g1m 2g1n 2g1p 2g1s 2g1t 2g1nj 2g1dž 2g1z 2g1š 2g1đ 2g1ć 2g1č 2h1ž 2h1b 2h1c 2h1d 2h1f 2h1g 2h1h 2h1k 2h1m 2h1n 2h1p 2h1s 2h1t 2h1nj 2h1dž 2h1z 2h1š 2h1đ 2h1ć 2h1č 2k1ž 2k1b 2k1c 2k1d 2k1f 2k1g 2k1h 2k1k 2k1m 2k1n 2k1p 2k1s 2k1t 2k1nj 2k1dž 2k1z 2k1š 2k1đ 2k1ć 2k1č 2t1ž 2t1b 2t1c 2t1d 2t1f 2t1g 2t1h 2t1k 2t1m 2t1n 2t1p 2t1s 2t1t 2t1nj 2t1dž 2t1z 2t1š 2t1đ 2t1ć 2t1č 2dj. 2dl. 2dlj. 2dr. 2dv. 2gj. 2gl. 2glj. 2gr. 2gv. 2hj. 2hl. 2hlj. 2hr. 2hv. 2kj. 2kl. 2klj. 2kr. 2kv. 2tj. 2tl. 2tlj. 2tr. 2tv. p2j p2l p2lj p2r v2j v2l v2lj v2r b2j b2l b2lj b2r f2j f2l f2lj f2r m2j m2l m2lj m2r 2b1ž 2b1b 2b1c 2b1d 2b1f 2b1g 2b1h 2b1k 2b1m 2b1n 2b1p 2b1s 2b1t 2b1v 2b1nj 2b1dž 2b1z 2b1š 2b1đ 2b1ć 2b1č 2f1ž 2f1b 2f1c 2f1d 2f1f 2f1g 2f1h 2f1k 2f1m 2f1n 2f1p 2f1s 2f1t 2f1v 2f1nj 2f1dž 2f1z 2f1š 2f1đ 2f1ć 2f1č 2m1ž 2m1b 2m1c 2m1d 2m1f 2m1g 2m1h 2m1k 2m1m 2m1n 2m1p 2m1s 2m1t 2m1v 2m1nj 2m1dž 2m1z 2m1š 2m1đ 2m1ć 2m1č 2p1ž 2p1b 2p1c 2p1d 2p1f 2p1g 2p1h 2p1k 2p1m 2p1n 2p1p 2p1s 2p1t 2p1v 2p1nj 2p1dž 2p1z 2p1š 2p1đ 2p1ć 2p1č 2v1ž 2v1b 2v1c 2v1d 2v1f 2v1g 2v1h 2v1k 2v1m 2v1n 2v1p 2v1s 2v1t 2v1v 2v1nj 2v1dž 2v1z 2v1š 2v1đ 2v1ć 2v1č 2bj. 2bl. 2blj. 2br. 2fj. 2fl. 2flj. 2fr. 2mj. 2ml. 2mlj. 2mr. 2pj. 2pl. 2plj. 2pr. 2vj. 2vl. 2vlj. 2vr. s2c s2j s2k s2l s2m s2n s2p s2lj s2r s2t s2v s2nj 2s1ž 2s1b 2s1d 2s1f 2s1g 2s1h 2s1s 2s1dž 2s1z 2s1š 2s1đ 2s1ć 2s1č 2sj. 2sk. 2sl. 2sm. 2sn. 2sp. 2slj. 2sr. 2st. 2sv. 2snj. 2sc. z2b z2d z2g z2j z2l z2m z2n z2lj z2r z2v z2nj 2z1ž 2z1c 2z1f 2z1h 2z1k 2z1p 2z1s 2z1t 2z1dž 2z1z 2z1š 2z1đ 2z1ć 2z1č 2zj. 2zl. 2zm. 2zn. 2zlj. 2zr. 2zv. 2znj. 2zb. 2zd. 2zg. š2c š2k š2l š2m š2n š2p š2lj š2t š2v š2nj š2ć š2č 2š1ž 2š1b 2š1d 2š1f 2š1g 2š1h 2š1s 2š1dž 2š1z 2š1š 2š1đ 2š1j 2š1r 2šk. 2šl. 2šm. 2šn. 2šp. 2šlj. 2št. 2šv. 2šnj. 2šć. 2šč. 2šc. ž2b ž2d ž2g ž2l ž2m ž2n ž2lj ž2v ž2nj ž2đ 2ž1ž 2ž1c 2ž1f 2ž1h 2ž1k 2ž1p 2ž1s 2ž1t 2ž1dž 2ž1z 2ž1š 2ž1ć 2ž1č 2ž1j 2ž1r 2žl. 2žm. 2žn. 2žlj. 2žv. 2žnj. 2žđ. 2žb. 2žd. 2žg. c2j c2r c2v 2c1ž 2c1b 2c1c 2c1d 2c1f 2c1g 2c1h 2c1k 2c1l 2c1m 2c1n 2c1p 2c1lj 2c1s 2c1t 2c1nj 2c1dž 2c1z 2c1š 2c1đ 2c1ć 2c1č 2cj. 2cr. 2cv. č2v 2č1ž 2č1b 2č1c 2č1d 2č1f 2č1g 2č1h 2č1j 2č1k 2č1l 2č1m 2č1n 2č1p 2č1lj 2č1r 2č1s 2č1t 2č1nj 2č1dž 2č1z 2č1š 2č1đ 2č1ć 2č1č 2čv. 2j1ž 2j1b 2j1c 2j1d 2j1f 2j1g 2j1h 2j1j 2j1k 2j1l 2j1m 2j1n 2j1p 2j1lj 2j1r 2j1s 2j1t 2j1v 2j1nj 2j1dž 2j1z 2j1š 2j1đ 2j1ć 2j1č 2l1ž 2l1b 2l1c 2l1d 2l1f 2l1g 2l1h 2l1k 2l1l 2l1m 2l1n 2l1p 2l1lj 2l1r 2l1s 2l1t 2l1v 2l1nj 2l1dž 2l1z 2l1š 2l1đ 2l1ć 2l1č 2n1ž 2n1b 2n1c 2n1d 2n1f 2n1g 2n1h 2n1k 2n1l 2n1m 2n1n 2n1p 2n1lj 2n1r 2n1s 2n1t 2n1v 2n1nj 2n1dž 2n1z 2n1š 2n1đ 2n1ć 2n1č 2lj1ž 2lj1b 2lj1c 2lj1d 2lj1f 2lj1g 2lj1h 2lj1j 2lj1k 2lj1l 2lj1m 2lj1n 2lj1p 2lj1lj 2lj1r 2lj1s 2lj1t 2lj1v 2lj1nj 2lj1dž 2lj1z 2lj1š 2lj1đ 2lj1ć 2lj1č 2r1ž 2r1b 2r1c 2r1d 2r1f 2r1g 2r1h 2r1j 2r1k 2r1l 2r1m 2r1n 2r1p 2r1lj 2r1r 2r1s 2r1t 2r1v 2r1nj 2r1dž 2r1z 2r1š 2r1đ 2r1ć 2r1č 2nj1ž 2nj1b 2nj1c 2nj1d 2nj1f 2nj1g 2nj1h 2nj1j 2nj1k 2nj1l 2nj1m 2nj1n 2nj1p 2nj1lj 2nj1r 2nj1s 2nj1t 2nj1v 2nj1nj 2nj1dž 2nj1z 2nj1š 2nj1đ 2nj1ć 2nj1č 2dž1ž 2dž1b 2dž1c 2dž1d 2dž1f 2dž1g 2dž1h 2dž1j 2dž1k 2dž1l 2dž1m 2dž1n 2dž1p 2dž1lj 2dž1r 2dž1s 2dž1t 2dž1v 2dž1nj 2dž1dž 2dž1z 2dž1š 2dž1đ 2dž1ć 2dž1č 2đ1ž 2đ1b 2đ1c 2đ1d 2đ1f 2đ1g 2đ1h 2đ1j 2đ1k 2đ1l 2đ1m 2đ1n 2đ1p 2đ1lj 2đ1r 2đ1s 2đ1t 2đ1v 2đ1nj 2đ1dž 2đ1z 2đ1š 2đ1đ 2đ1ć 2đ1č 2ć1ž 2ć1b 2ć1c 2ć1d 2ć1f 2ć1g 2ć1h 2ć1j 2ć1k 2ć1l 2ć1m 2ć1n 2ć1p 2ć1lj 2ć1r 2ć1s 2ć1t 2ć1v 2ć1nj 2ć1dž 2ć1z 2ć1š 2ć1đ 2ć1ć 2ć1č .h2 .j2 .k2 .l2 .m2 .n2 .p2 .lj2 .r2 .s2 .t2 .v2 .nj2 .dž2 .z2 .š2 .đ2 .ć2 .č2 .ž2 .b2 .c2 .d2 .f2 .g2 o3a o3e o3i o3o o3u u3a u3e u3i u3o u3u a3a a3e a3i a3o a3u e3a e3e e3i e3o e3u i3a i3e i3i i3o i3u 2a1 2e1 2i1 2o1 2u1 2skb 2skc 2skd 2skf 2skg 2skh 2skk 2skm 2skn 2skp 2sks 2skt 2sknj 2skdž 2skz 2skš 2skđ 2skć 2skč 2skž 2stb 2stc 2std 2stf 2stg 2sth 2stk 2stm 2stn 2stp 2sts 2stt 2stnj 2stdž 2stz 2stš 2stđ 2stć 2stč 2stž 2škb 2škc 2škd 2škf 2škg 2škh 2škk 2škm 2škn 2škp 2šks 2škt 2šknj 2škdž 2škz 2škš 2škđ 2škć 2škč 2škž 2štb 2štc 2štd 2štf 2štg 2šth 2štk 2štm 2štn 2štp 2šts 2štt 2štnj 2štdž 2štz 2štš 2štđ 2štć 2štč 2štž 2spb 2spc 2spd 2spf 2spg 2sph 2spk 2spm 2spn 2spp 2sps 2spt 2spv 2spnj 2spdž 2spz 2spš 2spđ 2spć 2spč 2spž 2svb 2svc 2svd 2svf 2svg 2svh 2svk 2svm 2svn 2svp 2svs 2svt 2svv 2svnj 2svdž 2svz 2svš 2svđ 2svć 2svč 2svž 2špb 2špc 2špd 2špf 2špg 2šph 2špk 2špm 2špn 2špp 2šps 2špt 2špv 2špnj 2špdž 2špz 2špš 2špđ 2špć 2špč 2špž 2švb 2švc 2švd 2švf 2švg 2švh 2švk 2švm 2švn 2švp 2švs 2švt 2švv 2švnj 2švdž 2švz 2švš 2švđ 2švć 2švč 2švž 2ždb 2ždc 2ždd 2ždf 2ždg 2ždh 2ždk 2ždm 2ždn 2ždp 2žds 2ždt 2ždnj 2žddž 2ždz 2ždš 2ždđ 2ždć 2ždč 2žgb 2žgc 2žgd 2žgf 2žgg 2žgh 2žgk 2žgm 2žgn 2žgp 2žgs 2žgt 2žgnj 2žgdž 2žgz 2žgš 2žgđ 2žgć 2žgč 2žgž 2zdb 2zdc 2zdd 2zdf 2zdg 2zdh 2zdk 2zdm 2zdn 2zdp 2zds 2zdt 2zdnj 2zddž 2zdz 2zdš 2zdđ 2zdć 2zdč 2zgb 2zgc 2zgd 2zgf 2zgg 2zgh 2zgk 2zgm 2zgn 2zgp 2zgs 2zgt 2zgnj 2zgdž 2zgz 2zgš 2zgđ 2zgć 2zgč 2zgž 2žvb 2žvc 2žvd 2žvf 2žvg 2žvh 2žvk 2žvm 2žvn 2žvp 2žvs 2žvt 2žvv 2žvnj 2žvdž 2žvz 2žvš 2žvđ 2žvć 2žvč 2žvž 2žbb 2žbc 2žbd 2žbf 2žbg 2žbh 2žbk 2žbm 2žbn 2žbp 2žbs 2žbt 2žbv 2žbnj 2žbdž 2žbz 2žbš 2žbđ 2žbć 2žbč 2žbž 2zvb 2zvc 2zvd 2zvf 2zvg 2zvh 2zvk 2zvm 2zvn 2zvp 2zvs 2zvt 2zvv 2zvnj 2zvdž 2zvz 2zvš 2zvđ 2zvć 2zvč 2zvž 2zbb 2zbc 2zbd 2zbf 2zbg 2zbh 2zbk 2zbm 2zbn 2zbp 2zbs 2zbt 2zbv 2zbnj 2zbdž 2zbz 2zbš 2zbđ 2zbć 2zbč 2zbž 2žmb 2žmc 2žmd 2žmf 2žmg 2žmh 2žmk 2žmm 2žmn 2žmp 2žms 2žmt 2žmv 2žmnj 2žmdž 2žmz 2žmš 2žmđ 2žmć 2žmč 2žmž 2smb 2smc 2smd 2smf 2smg 2smh 2smk 2smm 2smn 2smp 2sms 2smt 2smv 2smnj 2smdž 2smz 2smš 2smđ 2smć 2smč 2smž 2zmb 2zmc 2zmd 2zmf 2zmg 2zmh 2zmk 2zmm 2zmn 2zmp 2zms 2zmt 2zmv 2zmnj 2zmdž 2zmz 2zmš 2zmđ 2zmć 2zmč 2zmž 2šmb 2šmc 2šmd 2šmf 2šmg 2šmh 2šmk 2šmm 2šmn 2šmp 2šms 2šmt 2šmv 2šmnj 2šmdž 2šmz 2šmš 2šmđ 2šmć 2šmč 2šmž 2scb 2scc 2scd 2scf 2scg 2sch 2sck 2scl 2scm 2scn 2scp 2sclj 2scr 2scs 2sct 2scnj 2scdž 2scz 2scš 2scđ 2scć 2scč 2scž 2šcb 2šcc 2šcd 2šcf 2šcg 2šch 2šck 2šcl 2šcm 2šcn 2šcp 2šclj 2šcr 2šcs 2šct 2šcnj 2šcdž 2šcz 2šcš 2šcđ 2šcć 2šcč 2šcž 2ščb 2ščc 2ščd 2ščf 2ščg 2ščh 2ščj 2ščk 2ščl 2ščm 2ščn 2ščp 2ščlj 2ščr 2ščs 2ščt 2ščnj 2ščdž 2ščz 2ščš 2ščđ 2ščć 2ščč 2ščž 2hvb 2hvc 2hvd 2hvf 2hvg 2hvh 2hvk 2hvm 2hvn 2hvp 2hvs 2hvt 2hvnj 2hvdž 2hvz 2hvš 2hvđ 2hvć 2hvč 2hvž 2ž3vl 2ž3vlj 2c3vl 2c3vlj 2z3vl 2z3vlj 2š3vl 2š3vlj 2č3vl 2č3vlj 2č3vj 2s3vlj 2d3vl 2d3vlj 2d3vr 2k3vj 2k3vl 2k3vlj 2t3vj 2t3vl 2t3vlj 2g3vj 2g3vl 2g3vlj 2g3vr 2h3vj 2h3vl 2h3vlj 2h3vr 2ž3mj 2ž3ml 2ž3mlj 2ž3mr 2z3ml 2z3mr 2š3mj 2š3ml 2š3mlj 2š3cj 2š3cv 2š3čv 2š3tj 2š3tl 2š3tlj 2s3tl 2s3kj 2s3klj 2š3pj 2š3pl 2š3plj 2ž3dj 2ž3dl 2ž3dlj 2ž3dv 2ž3gj 2ž3gl 2ž3glj 2ž3gr 2ž3gv 2z3dl 2z3dlj 2z3dv 2z3gj 2z3glj 2ž3bj 2ž3bl 2ž3blj 2ž3br 2z3blj .a4e2ro .be4o .bi4o .ge4o .za3g2n .za3t2ka .iza3g2n .iza3t2k .iz3g2n .izd2no .izd2nu .izd2na .izr2k .ist2k .nag2n .nag2nj .na3d2nev .na3d2nič .na3d2nic .na3t2kah .na3t2kam .na3t2kasm .na3t2kast .oda3g2n .oda3d2n .od3g2n .od3m2n .o3t2kah .o3t2kam .o3t2kasm .o3t2kast .po3g2n .po3d2nev .po3m2n .po3m2nj .po3r2v .po3r2đ .po3t2kah .po3t2kam .po3t2kat .po3t2kav .pred3m2n .pred3m2nj .pre3t2kah .pre3t2kam .pre3t2kat .pro3g2n .pro3t2ki .pro3t2ka .raza3g2n .raz3g2n .raz3d2ni .raza3t2ka .u3g2mi .u3g2n .uza3t2ka 3h2teti 3h2tjeti 3h2tel 3h2tev 3h2tenj 3h2tjel 3h2tjev 3h2tjenj 3g2degod. 3g2djegod. 3g2dekak 3g2dekad 3g2djekak 3g2djekad ni3g2de. ne3g2de. ni3g2dje. ne3g2dje. 3b2det 3b2denj 3b2djet 3b2djenj 3g2mil 3g2milj 3g2miz 3g2nos 3g2noz 3g2noj 3g2naj 3g2nezd 3g2nijezd 3g2nežđ 3g2niježđ 3g2nev 3g2njev 3g2njav 3g2njes 3g2njet 3g2nječ 3g2njil 3g2njio 3g2njilj 3g2njit 3g2njur 3k2nez 3k2než 3k2njiž 3k2njig 3m2nož 3m2nog 3m2naž 3p2sik 3p2sič 3p2sov 3p2suj 3r2đa 3s2fer 3t2mast 3t2mul 3t2muo 3t2mulj 3t2mur 3c2miz 3c2mak 3c2mač 3c2mok 3č2lan 3č2lanj 3r2je 4r3jem 4r3je. .be2z3j .be2z3l .be2z3m .be2z3n .be2z3lj .be2z3r .be2z3v .be2z3nj .be2z3b .be2z3d .be2z3g .be2z3i .be2z3o .be2z3u .be2z3alkohol .be2z3atomsk .be3z4bedn .be3z4beda .be3z4bjedn .be3z4bjeda .be3z4beli .be3z4bol .be3z4vučn .be3z4vuča .be3z4istan .be3z4isten .be3z4jak .be3z4jač .be3z4lobn .be3z4loba .be3z4načaj .be3z4račn .be3z4rača .be3z4up .be3z4ub .be2s3c .be2s3k .be2s3p .be2s3t .be3s4krupul .be3s4pokojn .be3s4pokoja .be3s4porn .be3s4pora .be3s4tvar .be3s4tid .be3s4tija .be3s4tilu .be3s4tilj .be3s4trana .be3s4tras .bes4tseler .be2š3ć .be2š3č .va2n3evr .va2n3ustav .i2z3b .i2z3d .i2z3g .i2z3j .i2z3l .i2z3m .i2z3n .i2z3lj .i2z3r .i2z3v .i2z3nj .i2z3i .i2z3o .i2z3u .i2z3bija .i2z3biva .i2z3vedi .i2z3vedn .i2z3vedb .i2z3vede .i2z3daj .i2z3aba .i2z3aka .i2z3anal .i3z4bav .i3z4bičkava .i3z4bleušan .i3z4bojak .i3z4bojk .i3z4vali .i3z4valu .i3z4vala .i3z4vale .i3z4valji .i3z4vižd .i3z4viiskr .i3z4vija .i3z4vijen .i3z4vin .i3z4vir .i3z4vinj .i3z4vitop .i3z4vjed .i3z4vojac .i3z4vojc .i3z4vor .i3z4gomet .i3z4gred .i3z4grn .i3z4grt .i3z4drav .i3z4iđ .i3z4id .i3z4imi .i3z4ježlj .i3z4loz .i3z4lož .i3z4log .i3z4lopać .i3z4nim .i3z4noj .iz4oanem .iz4oanom .iz4obat .iz4obron .iz4ogam .iz4ogeo .iz4oglos .iz4ogon .iz4ograf .iz4odim .iz4odin .iz4odoz .iz4oklin .iz4okolon .i3z4olat .i3z4olac .i3z4olir .i3z4olov .iz4oleks .iz4oluks .iz4omer .iz4ometr .iz4omorf .iz4onef .iz4onom .iz4opat .iz4oper .iz4ople .iz4opol .iz4opsef .iz4orah .iz4osei .iz4osint .iz4osist .iz4oskel .iz4oskop .iz4ostaz .iz4oste .iz4otah .iz4otal .iz4oter .iz4oton .iz4otop .iz4otro .iz4ofon .iz4ofot .iz4ohal .iz4ohaz .iz4ohel .iz4ohij .iz4ohim .iz4ohit .iz4ohips .iz4ohor .iz4ohro .i3z4rael .i3z4railj .i3z4rači .i3z4un .i3z4upč .i2s3c .i2s3k .i2s3p .i2s3t .i3s4kak .i3s4kat .i3s4kanj .i3s4kariot .i3s4kvas .i3s4kvrč .i3s4kin .i3s4kita .i3s4konsk .i3s4koč .i3s4kram .i3s4krit .i3s4kriš .i3s4krič .i3s4kric .i3s4krat .i3s4kren .i3s4krenj .i3s4kroj .i3s4krsn .i3s4krsa .i3s4kuplja .i3s4lam .i3s4lab .i3s4leđ .i3s4led .i3s4lijeđ .i3s4lijed .i3s4ljeđ .i3s4ljed .i3s4lik .i3s4lin .i3s4lov .i3s4luš .i3s4luž .i3s4me .i3s4mije .i3s4mje .i3s4pav .i3s4paljiv .i3s4pira .i3s4plit .i3s4plić .i3s4pokoj .i3s4polin .i3s4pon .i3s4porav .i3s4pravi .i3s4pravk .i3s4pravn .i3s4pravlj .i3s4prava .i3s4pupč .i3s4pur .i3s4red .i3s4rk .i3s4tavi .i3s4tavlj .i3s4takn .i3s4tam .i3s4tar .i3s4tas .i3s4tać .i3s4tin .i3s4tir .i3s4tic .i3s4tifan .i3s4tok .i3s4tori .i3s4točn .i3s4točnj .i3s4toča .i3s4trav .i3s4trad .i3s4tran .i3s4trić .i3s4triž .i3s4tric .i3s4trug .i3s4tup .i3s4uk .i3s4us .i3s4ut .i3s4uš .i2ž3đ .i2š3ć .i2š3č .iz3be2z3obr .iz3be2z3um .iz3va2n3evr .na2d3l .na2d3lj .na2d3v .na3d4val .na3d4vesi .na3d4vest .na3d4vij .na3d4vit .na3d4vla .na3d4voje .na3d4vor .na2d3igr .na2d3inž .na2d3ina .na2d3isk .na2d3jah .na2d3jač .na2d3jek .na2d3jez .na2d3ječ .na2d3jun .na3d4lan .na3d4leš .na3d4lež .na2d3ora .na2d3oso .na2d3ose .na2d3osje .na2d3ofi .na2d3oč .na2d3ran .na2d3rač .na2d3rast .na2d3rašć .na2d3real .na2d3rep .na2d3ruk .na2d3ruč .na2d3rug .na2d3udar .na2d3um .na2d3uč .na2j3a .na2j3e .na2j3i .na2j3o .na2j3u .na3j4avi .na3j4avlj .na3j4ava .na3j4ave .na3j4adi .na3j4ada .na3j4ade .na3j4aži .na3j4azi .na3j4ako .na3j4aka .na3j4alo .na3j4ami .na3j4aml .na3j4amn .na3j4ari .na3j4arm .na3j4arc .na3j4ati .na3j4auk .na3j4ah .na3j4aš .na3j4edi .na3j4edn .na3j4edr .na3j4eda .na3j4eži .na3j4ežu .na3j4eže .na3j4ezn .na3j4ezd .na3j4esti .na3j4etk .na3j4ec .na3j4uri .na3j4uren .o2b3j .o2b3lj .o2b3r .obe2z3b .obe2z3d .obe2z3g .obe2z3j .obe2z3l .obe2z3m .obe2z3n .obe2z3o .obe2z3lj .obe2z3r .obe2z3u .obe2z3v .obe3z4vij .obe3z4nan .obe3z4nanj .obe3z4nač .obe3z4ub .obe2s3c .obe2s3k .obe2s3p .obe2s3t .obe3s4tan .obe3s4tij .obe3s4tran .obe2š3ć .obe2š3č .o2b3igr .o2b3istin .o2b3istinj .o3b4jek .o3b4jer .o3b4jesi .o3b4jet .o3b4ješ .o2b3laj .o2b3lam .o2b3lakš .o2b3lask .o2b3lep .o2b3let .o2b3leć .o2b3lež .o2b3leg .o2b3lijep .o2b3lijet .o2b3lijež .o2b3lijeg .o2b3leden .o2b3liv .o2b3lizat .o2b3lizav .o2b3lizi .o2b3list .o2b3loka .o2b3luk .o2b3luč .o3b4ljan .o3b4ljut .o3b4ljuz .o2b3oru .o3b4raže .o3b4razi .o3b4razn .o3b4razo .o3b4razu .o3b4raza .o3b4razd .o3b4ramb .o3b4ran .o3b4ranj .o3b4rat .o3b4rać .o3b4rašn .o3b4rašč .o3b4rv .o3b4rđ .o3b4rem .o3b4res .o3b4ređ .o3b4reč .o3b4rež .o3b4rec .o3b4red .o3b4reti .o3b4retn .o3b4rij .o3b4ris .o3b4rit .o3b4riv .o3b4rič .o3b4ric .o3b4rk .o3b4rl .o3b4rn .o3b4rlj .o3b4rs .o3b4rt .o3b4rš .o3b4rč .o3b4rok .o3b4ron .o3b4ronj .o3b4roć .o3b4roč .o3b4rova .o3b4rovc .o3b4ruk .o3b4run .o3b4rus .o3b4runj .o3b4ruš .o3b4ruč .o2b3ubož .o2b3uz .o2b3už .o2b3ud .o2b3umi .o2b3umj .o2b3umr .o2b3ume .o2d3j .o2d3l .o2d3lj .o2d3r .o2d3v .o2d3arg .o3d4vaj .o3d4važ .o3d4vesn .o3d4vest .o3d4vesa .o3d4vikav .o3d4vikn .o3d4vis .o3d4vić .o3d4voj .o2d3igr .o2d3i2z3v .o2d3i2z3d .o2d3isk .o2d3isti .o3d4jel .o3d4jen .o3d4jev .o3d4jeć .o3d4laz .o3d4laž .o3d4lag .o3d4laka .o3d4luk .o3d4luč .o2d3ozd .o2d3ozg .o2d3ok .o2d3onl .o2d3ono .o2d3onu .o2d3ond .o3d4rani .o3d4rano .o3d4ranu .o3d4rana .o3d4rane .o3d4raz .o3d4rać .o3d4raž .o3d4rapi .o3d4raplj .o3d4rapa .o3d4rači .o3d4rven .o3d4rvenj .o3d4rveč .o3d4rem .o3d4ren .o3d4ret .o3d4ređ .o3d4red .o3d4rl .o3d4rn .o3d4rp .o3d4rlj .o3d4rt .o3d4rž .o3d4rin .o3d4rinj .o3d4riš .o3d4rič .o3d4rib .o3d4ric .o3d4ron .o3d4ronj .o3d4ruž .o3d4rug .o2d3uvi .o2d3uve .o2d3uzi .o2d3uzl .o2d3uzd .o2d3uze .o2d3uk .o2d3ul .o2d3um .o2d3uč .po2d3adm .po2d3varij .po2d3vez .po2d3več .po2d3vež .po2d3vik .po2d3vil .po2d3vir .po2d3vinj .po2d3vlas .po2d3vlaš .po2d3voz .po2d3vođ .po2d3vož .po2d3vod .po2d3vrat .po2d3vrać .po2d3vrć .po2d3vrž .po2d3vrg .po2d3vris .po2d3vrs .po2d3vuć .po2d3igr .po2d3izv .po2d3j .po3d4jen .po3d4ječ .po2d3lakat .po2d3lakt .po2d3lep .po2d3let .po2d3leć .po2d3lež .po2d3leg .po2d3liz .po2d3lijep .po2d3lijet .po2d3lijeć .po2d3lijež .po2d3lijeg .po2d3list .po2d3lok .po2d3lom .po2d3lup .po2d3luč .po2d3luž .po2d3ljut .po2d3okn .po2d3oš .po2d3oč .po2d3of .po2d3ravn .po2d3ravnj .po2d3rad .po2d3ra2z3d .po2d3razr .po2d3razu .po2d3ram .po2d3ran .po2d3ras .po2d3ranj .po2d3rep .po2d3res .po2d3rez .po2d3rik .po2d3rit .po2d3ron .po2d3rov .po2d3rož .po2d3ruk .po2d3rub .po2d3ruči .po2d3ručn .po2d3ruča .po2d3upla .po2d3usm .po2d3usn .pre2d3j .pre2d3v .pre3d4vaj .pre3d4var .pre3d4vest .pre3d4voji .pre3d4voja .pre3d4voje .pre3d4vor .pre3d4vos .pre3d4jen .pre2d3igr .pre2d3id .pre2d3izb .pre2d3ispi .pre2d3isto .pre2d3istr .pre2d3obj .pre2d3odre .pre2d3okus .pre2d3osv .pre2d3ose .pre2d3osje .pre2d3rat .pre2d3rač .pre2d3rad .pre2d3ruč .pre2d3ubeđ .pre2d3ubijeđ .pre2d3ubjeđ .pre2d3uver .pre2d3uvjer .pre2d3uvjet .pre2d3ugov .pre2d3udar .pre2d3upis .pre2d3uslo .proti2v3akc .proti2v3otr .proti2v3of .proti2v3r .proti2v3us .proti2v3ud .ra2ž3đ .ra2z3b .ra2z3d .ra2z3e .ra2z3g .ra2z3i .ra2z3j .ra2z3l .ra2z3m .ra2z3n .ra2z3lj .ra2z3r .ra2z3v .ra2z3nj .ra2z3anal .ra3z4ban .ra3z4bar .ra3z4bau .ra3z4bad .ra3z4bašur .ra3z4boj .ra3z4bor .ra3z4val .ra3z4vede .ra3z4vest .ra3z4vigo .ra3z4viju .ra3z4vija .ra3z4vije .ra3z4vit .ra3z4vić .ra3z4voj .ra3z4von .ra3z4vrat .ra3z4vrać .ra3z4vrt .ra3z4vrć .ra3z4gađ .ra3z4grt .ra3z4ev .ra3z4ij .ra3z4il .ra3z4in .ra3z4ir .ra3z4it .ra3z4iz .ra3z4iđ .ra3z4ić .ra3z4id .ra3z4laz .ra3z4lag .ra3z4lik .ra3z4lič .ra3z4loz .ra3z4lož .ra3z4log .ra3z4met .ra3z4meć .ra3z4mrsk .ra3z4nat .ra2z3obl .ra2z3obr .ra2z3oba .ra2z3od .ra2z3orat .ra2z3orav .ra2z3ort .ra2z3oru .ra2z3ot .ra3z4red .ra3z4rok .ra3z4roč .ra2z3uve .ra2z3udi .ra2z3uda .ra2z3udb .ra2z3uzi .ra2z3uzd .ra2z3uze .ra2z3ular .ra2z3umr .ra2s3c .ra2s3k .ra2s3p .ra2s3t .ra3s4kak .ra3s4kand .ra3s4kin .ra3s4klap .ra3s4klanj .ra3s4klad .ra3s4klon .ra3s4klopi .ra3s4kloplj .ra3s4klopa .ra3s4koš .ra3s4krop .ra3s4paj .ra3s4pav .ra3s4peti .ra3s4peto .ra3s4peta .ra3s4pete .ra3s4piku .ra3s4pinj .ra3s4plin .ra3s4plinj .ra3s4pn .ra3s4polož .ra3s4pon .ra3s4por .ra3s4prav .ra3s4prem .ra3s4rđ .ra3s4rd .ra3s4re .ra3s4taj .ra3s4tan .ra3s4tat .ra3s4tav .ra3s4tenj .ra3s4til .ra3s4tir .ra3s4tis .ra3s4tit .ra3s4tinj .ra3s4toj .ra3s4trel .ra3s4tret .ra3s4troj .ra3s4trt .ra3s4tup .ra3s4tur .ra3s4tuć .ra4s5turč .ra2š3ć .ra2š3č .ra3š4ćenj .ra3š4čić .u2z3b .u2z3d .u2z3g .u2z3i .u2z3j .u2z3l .u2z3m .u2z3n .u2z3lj .u2z3r .u2z3v .u2z3nj .u3z4bor .u3z4van .u3z4vat .u3z4viž .u3z4vijo .u3z4viju .u3z4vija .u3z4vije .u3z4voj .u3z4dic .u2z3igr .u2z3inat .u2z3iskr .u3z4lan .u3z4lat .u3z4lim .u3z4lit .u3z4lić .u3z4lic .u3z4lov .u3z4ludob .u3z4nak .u3z4nač .u3z4neve .u3z4nevje .u3z4nič .u3z4nic .u3z4noj .u2z3obest .u2z3obijest .u2z3orat .u2z3orav .u2z3oho .u3z4ret .u3z4rev .u3z4rijet .u3z4rijev .u3z4rn .u3z4rnj .u3z4roko .u3z4roku .u3z4roka .u3z4roč .u3z4ruj .u2z3ugar .u2s3c .u2s3k .u2s3p .u3s4kak .u3s4klađ .u3s4klad .u3s4ko .u4s5kom .u4s5kov .u4s5koš .u4s5koko .u4s5kolu .u4s5kole .u4s5kopa .u4s5kora .u4s5kosi .u4s5kotr .u3s4kup .u3s4pav .u3s4palo .u3s4peh .u3s4pel .u3s4pem .u3s4pet .u3s4pev .u3s4peš .u3s4pjeh .u3s4pjel .u3s4pjem .u3s4pjet .u3s4pjev .u3s4pješ .u3s4pent .u3s4pija .u3s4pije .u3s4pijuš .u3s4pikuš .u3s4pon .u3s4pori .u3s4pora .u3s4poren .u3s4porenj .u3s4poreč .u3s4posob .u3s4premi .u3s4prema .u3s4rk .u3s4rn .u3s4rp .u3s4rlj .u3s4rt .u3s4rđ .u3s4rž .u3s4ra .u3s4rd .u3s4re .u3s4rijed .u2s3talas .u2s3tara .u2s3tvrđ .u2s3tvrd .u2s3ter .u2s3teć .u2s3teg .u2s3tov .u2s3traj .u2s3tral .u2s3trg .u2s3trep .u2s3tres .u2s3treb .u2s3trk .u2s3trn .u2s3trp .u2s3trć .u2s3trč .u2s3tum .u2s3tur .u2s3tuć .u2š3ć .u2š3č .a2b3alij .a2b3anac .a2b3evak .a2b3erac .a2b3erir .a2b3irit .a2b3ju .a2b3la .a2b3leg .a2b3lep .a2b3lok .a2b3lu .a2b3orig .a2b3reak .a2b3rog .a2b3uzus .a2d3erac .a2d3verb .a2d3j .a2d3lat .a2d3ren .a2d3rog .a3g2nos .a3g2noz .a2nabap .a2nabaz .a2nabat .a2nabio .a2nabol .a2nagen .a2nagno .a2n3ago .a2nagra .a2nadem .a2nadipl .a2nadoz .a2n3a4e2ro .a2nakal .a2nakam .a2nakat .a2nakef .a2nakla .a2nakli .a2nakoj .a2n3akuz .a2n3alg .a2n3ald .a2nalep .a2naliz .a2nalis .a2nalit .a2n3amert .a2namne .a2n3andr .a2naneo .a2n3ant .a2napla .a2naple .a2napne .a2napno .a2napro .a2napti .a2n3apto .a2nart .a2n3arh .a2nasar .a2nasei .a2naspaz .a2nasta .a2nastig .a2nastom .a2natim .a2natom .a2natoc .a2natre .a2natri .a2natro .a2nafaz .a2n3afij .a2nafila .a2nafon .a2n3afrod .a2nakol .a2nakron .a2nakru .a2n3alfa .a2nafor .a2nahor .a2nahro .a2n3eger .a2n3ekl .a2n3ekum .a2n3elek .a2n3ener .a2n3epi .a2neor .a2n3erg .a2n3erit .a2n3este .a2n3idr .a2n3izog .a2n3izom .a2n3izur .a2n3irid .a2n3ovar .a2n3oks .a2n3opis .a2n3orh .a2n3oft .a2n3org .di2s3akor .di2s3junk .di2s3kval .di2s3kont .di2s3kord .di2s3kre .di2s3kri .di2s3kur .di2s3lo .di2s3orij .di2s3parit .di2s3poz .di2s3pon .di2s3prop .di2s3ton .di2s3trak .i2n3abrup .i2n3adek .i2n3akur .i2n3akce .i2n3amor .i2n3anic .i2n3aplik .i2n3apst .i2n3art .i2n3augur .i2n3aura .i2n3afek .i2n3evid .i2n3eg .i2n3ed .i2n3ekv .i2n3eks .i2n3elig .i2n3epc .i2n3efek .i2n3obl .i2nogen .i2nokor .i2n3okup .i2n3oper .i2n3opor .i2n3opse .i2n3ofic .i2n3umbr .i2n3unda .i2n3unk .i2n3util .inte2r3i .inte2r3o .inte2r3u .inte2r3a .inte2r3e .inte3r4egn .inte3r4esi .inte3r4esn .inte3r4eso .inte3r4esu .inte3r4esa .inte3r4ese .inte3r4eždž .inte3r4ije .inte2r3je .inte3r4ogat .juri2s3k .juri2s3p .nu2z3bel .nu2z3bilj .nu2z3ljub .nu2z3re .nu2z3rje .nu2z3už .nu2s3pos .nu2s3pro .po2st3egz .po2st3indu .po2st3lim .po2st3onk .po2st3oper .su2b3a .su2b3l .su3b4aš .su2b3inv .su2b3junk .su2b3oks .su2b3rep .su2b3rog .su2b3ord .supe2r3i .supe2r3o .supe2r3u .supe2r3a .supe2r3e .supe3r4ior .tran2s3a .tran2s3c .tran2s3e .tran2s3k .tran2s3l .tran2s3m .tran2s3n .tran2s3o .tran2s3p .tran2s3t .tran2s3u .tran2s3v .tran2s3nj .tran3s4ep .tran3s4kri .tran3s4um .tran3s4ud .a2n3jon .i2n3jek .i2n3jur .i2n3just .o2d3žal .o2d3žalj .o2d3ži .o2d3žv .o2d3že .pre2d3ži .pre2d3že .na2d3ždr .na2d3žnj .na2d3že .na2d3žanj .na2d3žir .na2d3živ .na2d3žup l2j n2j d2ž 2dž.",
["lefthyphenmin"]=1,
- ["length"]=28148,
- ["n"]=2425,
+ ["length"]=50368,
+ ["n"]=5321,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 2118c8001..c9dbfe3d6 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 2022-01-21 20:10
+-- merge date : 2022-03-12 11:24
do -- begin closure to overcome local limits and interference
@@ -30884,7 +30884,7 @@ local function validspecification(specification,name)
return specification,name
end
end
-local function addfeature(data,feature,specifications)
+local function addfeature(data,feature,specifications,prepareonly)
if not specifications then
report_otf("missing specification")
return
@@ -31183,8 +31183,6 @@ local function addfeature(data,feature,specifications)
local rules=list.rules
local coverage={}
if rules then
- local rulehash={}
- local rulesize=0
local lookuptype=types[featuretype]
for nofrules=1,#rules do
local rule=rules[nofrules]
@@ -31215,6 +31213,14 @@ local function addfeature(data,feature,specifications)
local lookups=rule.lookups or false
local subtype=nil
if lookups and sublookups then
+if #lookups>0 then
+ local ns=stop-start+1
+ for i=1,ns do
+ if lookups[i]==nil then
+ lookups[i]=0
+ end
+ end
+end
local l={}
for k,v in sortedhash(lookups) do
local t=type(v)
@@ -31262,8 +31268,7 @@ local function addfeature(data,feature,specifications)
hashed[i]=t
end
sequence=hashed
- rulesize=rulesize+1
- rulehash[rulesize]={
+ local ruleset={
nofrules,
lookuptype,
sequence,
@@ -31275,8 +31280,15 @@ local function addfeature(data,feature,specifications)
}
for unic in sortedhash(sequence[start]) do
local cu=coverage[unic]
- if not cu then
- coverage[unic]=rulehash
+ if cu then
+ local n=cu.n+1
+ cu[n]=ruleset
+ cu.n=n
+ else
+ coverage[unic]={
+ ruleset,
+ n=1,
+ }
end
end
sequence.n=nofsequences
@@ -31284,7 +31296,6 @@ local function addfeature(data,feature,specifications)
end
end
end
- rulehash.n=rulesize
end
return coverage
end
@@ -31507,6 +31518,9 @@ local function addfeature(data,feature,specifications)
nofsteps=nofsteps,
type=types[featuretype],
}
+ if prepareonly then
+ return sequence
+ end
end
end
if sequence then
@@ -31588,6 +31602,14 @@ if not modules then modules={} end modules ['font-osd']={
copyright="TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
+local experiment1=false
+local experiment2=false
+local experiment2b1=false
+local experiment2b2=false
+experiments.register("fonts.indic.experiment1",function(v) experiment1=v end)
+experiments.register("fonts.indic.experiment2",function(v) experiment2=v end)
+experiments.register("fonts.indic.experiment2b1",function(v) experiment2b1=v end)
+experiments.register("fonts.indic.experiment2b2",function(v) experiment2b2=v end)
local insert,remove,imerge,copy,tohash=table.insert,table.remove,table.imerge,table.copy,table.tohash
local next,type,rawget=next,type,rawget
local formatters=string.formatters
@@ -33100,7 +33122,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces)
local subpos=nil
local postpos=nil
reorderreph.coverage={}
- rephbase[font]={}
+ rephbase[font]={}
for i=1,#seqsubset do
local subset=seqsubset[i]
local kind=subset[1]
@@ -33277,7 +33299,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces)
logprocess("reorder two, handle nbsp")
end
end
- else
+ else
local last=getnext(stop)
while current~=last do
local next=getnext(current)
@@ -33340,7 +33362,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces)
logprocess("reorder two, handle matra")
end
end
- if not moved[current] and dependent_vowel[char] then
+ if dependent_vowel[char] then
if pre_mark[char] then
moved[current]=true
local prev,next=getboth(current)
@@ -33519,8 +33541,8 @@ local function analyze_next_chars_one(c,font,variant)
if not n then
return c
end
+ local v=ischar(n,font)
if variant==1 then
- local v=ischar(n,font)
if v and nukta[v] then
n=getnext(n)
if n then
@@ -33553,7 +33575,6 @@ local function analyze_next_chars_one(c,font,variant)
end
end
elseif variant==2 then
- local v=ischar(n,font)
if v and nukta[v] then
c=n
end
@@ -33577,11 +33598,11 @@ local function analyze_next_chars_one(c,font,variant)
end
end
end
- local n=getnext(c)
+ n=getnext(c)
if not n then
return c
end
- local v=ischar(n,font)
+ v=ischar(n,font)
if not v then
return c
end
@@ -33686,12 +33707,11 @@ local function analyze_next_chars_one(c,font,variant)
end
end
local function analyze_next_chars_two(c,font)
- local n,v
- n=getnext(c)
+ local n=getnext(c)
if not n then
return c
end
- v=ischar(n,font)
+ local v=ischar(n,font)
if v and nukta[v] then
c=n
end