summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-context.lua2
-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.lua2
-rw-r--r--context/data/scite/context/scite-context-data-context.properties146
-rw-r--r--context/data/scite/context/scite-context-data-interfaces.properties1644
-rw-r--r--context/data/scite/context/scite-context-data-tex.properties34
-rw-r--r--context/data/textadept/context/data/scite-context-data-context.lua2
-rw-r--r--context/data/textadept/context/data/scite-context-data-interfaces.lua2
-rw-r--r--context/data/textadept/context/data/scite-context-data-tex.lua2
-rw-r--r--doc/context/documents/general/manuals/luatex.pdfbin1172101 -> 1172923 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin844254 -> 844329 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin844110 -> 841953 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin848123 -> 846098 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin839791 -> 840714 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin845669 -> 842987 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-cs.pdfbin358994 -> 359373 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-de.pdfbin438373 -> 441447 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-en.pdfbin356101 -> 356091 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-fr.pdfbin359078 -> 359492 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-it.pdfbin357924 -> 358028 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-nl.pdfbin357376 -> 356852 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-ro.pdfbin624174 -> 610245 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin836763 -> 835566 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin839748 -> 840676 bytes
-rw-r--r--doc/context/sources/general/manuals/hybrid/hybrid-grouping.tex2
-rw-r--r--doc/context/sources/general/manuals/hybrid/hybrid-parbuilder.tex2
-rw-r--r--doc/context/sources/general/manuals/languages/languages-sorting.tex66
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-enhancements.tex5
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex.tex4
-rw-r--r--doc/context/sources/general/manuals/xml/xml-mkiv.tex2
-rw-r--r--scripts/context/lua/mtx-update.lua2
-rw-r--r--scripts/context/lua/mtxlibs.lua26
-rw-r--r--scripts/context/lua/mtxrun.lua167
-rw-r--r--scripts/context/stubs/install/first-setup.sh6
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua167
-rw-r--r--scripts/context/stubs/setup/setuptex141
-rw-r--r--scripts/context/stubs/unix/mtxrun167
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua167
-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/mkiv/anch-pgr.lua2
-rw-r--r--tex/context/base/mkiv/attr-ini.lua2
-rw-r--r--tex/context/base/mkiv/back-exp.lua2
-rw-r--r--tex/context/base/mkiv/buff-ini.lua2
-rw-r--r--tex/context/base/mkiv/buff-par.lua6
-rw-r--r--tex/context/base/mkiv/char-def.lua1194
-rw-r--r--tex/context/base/mkiv/char-tex.lua4
-rw-r--r--tex/context/base/mkiv/char-utf.lua2
-rw-r--r--tex/context/base/mkiv/chem-str.lua4
-rw-r--r--tex/context/base/mkiv/cldf-ini.lua72
-rw-r--r--tex/context/base/mkiv/cldf-scn.lua4
-rw-r--r--tex/context/base/mkiv/colo-ini.lua10
-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/core-con.lua6
-rw-r--r--tex/context/base/mkiv/core-dat.lua10
-rw-r--r--tex/context/base/mkiv/core-sys.lua2
-rw-r--r--tex/context/base/mkiv/core-two.lua8
-rw-r--r--tex/context/base/mkiv/core-uti.lua40
-rw-r--r--tex/context/base/mkiv/file-job.lua8
-rw-r--r--tex/context/base/mkiv/file-res.lua2
-rw-r--r--tex/context/base/mkiv/file-syn.lua4
-rw-r--r--tex/context/base/mkiv/font-cft.lua2
-rw-r--r--tex/context/base/mkiv/font-col.lua4
-rw-r--r--tex/context/base/mkiv/font-con.lua28
-rw-r--r--tex/context/base/mkiv/font-ctx.lua10
-rw-r--r--tex/context/base/mkiv/font-ext.lua194
-rw-r--r--tex/context/base/mkiv/font-map.lua6
-rw-r--r--tex/context/base/mkiv/font-osd.lua882
-rw-r--r--tex/context/base/mkiv/font-ota.lua10
-rw-r--r--tex/context/base/mkiv/font-ots.lua2
-rw-r--r--tex/context/base/mkiv/font-pre.mkiv138
-rw-r--r--tex/context/base/mkiv/font-sel.lua2
-rw-r--r--tex/context/base/mkiv/grph-fil.lua2
-rw-r--r--tex/context/base/mkiv/grph-inc.lua4
-rw-r--r--tex/context/base/mkiv/java-ini.lua4
-rw-r--r--tex/context/base/mkiv/l-macro.lua72
-rw-r--r--tex/context/base/mkiv/l-package.lua6
-rw-r--r--tex/context/base/mkiv/l-table.lua10
-rw-r--r--tex/context/base/mkiv/lang-hyp.lua4
-rw-r--r--tex/context/base/mkiv/lang-ini.lua10
-rw-r--r--tex/context/base/mkiv/lang-rep.lua4
-rw-r--r--tex/context/base/mkiv/lang-url.lua2
-rw-r--r--tex/context/base/mkiv/lang-wrd.lua2
-rw-r--r--tex/context/base/mkiv/lpdf-epd.lua2
-rw-r--r--tex/context/base/mkiv/lpdf-ini.lua30
-rw-r--r--tex/context/base/mkiv/lpdf-mis.lua32
-rw-r--r--tex/context/base/mkiv/lpdf-pda.xml9
-rw-r--r--tex/context/base/mkiv/lpdf-pdx.xml9
-rw-r--r--tex/context/base/mkiv/lpdf-pua.xml9
-rw-r--r--tex/context/base/mkiv/lpdf-xmp.lua123
-rw-r--r--tex/context/base/mkiv/luat-ini.mkiv40
-rw-r--r--tex/context/base/mkiv/luat-usr.lua4
-rw-r--r--tex/context/base/mkiv/lxml-css.lua4
-rw-r--r--tex/context/base/mkiv/lxml-ini.lua114
-rw-r--r--tex/context/base/mkiv/lxml-ini.mkiv4
-rw-r--r--tex/context/base/mkiv/lxml-tex.lua44
-rw-r--r--tex/context/base/mkiv/lxml-xml.lua23
-rw-r--r--tex/context/base/mkiv/math-map.lua2
-rw-r--r--tex/context/base/mkiv/math-noa.lua3
-rw-r--r--tex/context/base/mkiv/meta-grd.mkiv220
-rw-r--r--tex/context/base/mkiv/meta-imp-mat.mkiv152
-rw-r--r--tex/context/base/mkiv/meta-ini.mkiv6
-rw-r--r--tex/context/base/mkiv/meta-tex.lua4
-rw-r--r--tex/context/base/mkiv/mlib-ctx.lua4
-rw-r--r--tex/context/base/mkiv/mlib-lua.lua2
-rw-r--r--tex/context/base/mkiv/mult-aux.lua2
-rw-r--r--tex/context/base/mkiv/mult-aux.mkiv9
-rw-r--r--tex/context/base/mkiv/mult-chk.lua6
-rw-r--r--tex/context/base/mkiv/mult-ini.lua20
-rw-r--r--tex/context/base/mkiv/mult-low.lua9
-rw-r--r--tex/context/base/mkiv/mult-prm.lua1
-rw-r--r--tex/context/base/mkiv/pack-obj.lua12
-rw-r--r--tex/context/base/mkiv/page-cst.lua10
-rw-r--r--tex/context/base/mkiv/page-ini.lua2
-rw-r--r--tex/context/base/mkiv/page-inj.mkvi20
-rw-r--r--tex/context/base/mkiv/page-ins.lua2
-rw-r--r--tex/context/base/mkiv/page-sid.mkiv5
-rw-r--r--tex/context/base/mkiv/phys-dim.lua2
-rw-r--r--tex/context/base/mkiv/publ-aut.lua2
-rw-r--r--tex/context/base/mkiv/publ-ini.lua56
-rw-r--r--tex/context/base/mkiv/publ-jrn.lua2
-rw-r--r--tex/context/base/mkiv/publ-reg.lua4
-rw-r--r--tex/context/base/mkiv/scrn-but.lua2
-rw-r--r--tex/context/base/mkiv/scrn-fld.lua2
-rw-r--r--tex/context/base/mkiv/scrn-fld.mkvi2
-rw-r--r--tex/context/base/mkiv/scrn-pag.mkvi13
-rw-r--r--tex/context/base/mkiv/scrn-wid.lua2
-rw-r--r--tex/context/base/mkiv/scrp-ini.lua2
-rw-r--r--tex/context/base/mkiv/sort-ini.lua58
-rw-r--r--tex/context/base/mkiv/spac-ver.lua4
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25832 -> 26081 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin254074 -> 255107 bytes
-rw-r--r--tex/context/base/mkiv/strc-bkm.lua2
-rw-r--r--tex/context/base/mkiv/strc-blk.lua6
-rw-r--r--tex/context/base/mkiv/strc-doc.lua8
-rw-r--r--tex/context/base/mkiv/strc-lev.lua2
-rw-r--r--tex/context/base/mkiv/strc-lst.lua2
-rw-r--r--tex/context/base/mkiv/strc-mar.lua20
-rw-r--r--tex/context/base/mkiv/strc-not.lua8
-rw-r--r--tex/context/base/mkiv/strc-ref.lua18
-rw-r--r--tex/context/base/mkiv/strc-reg.lua8
-rw-r--r--tex/context/base/mkiv/strc-syn.lua12
-rw-r--r--tex/context/base/mkiv/strc-tag.lua17
-rw-r--r--tex/context/base/mkiv/supp-box.lua6
-rw-r--r--tex/context/base/mkiv/syst-aux.lua24
-rw-r--r--tex/context/base/mkiv/toks-ini.lua2
-rw-r--r--tex/context/base/mkiv/toks-scn.lua18
-rw-r--r--tex/context/base/mkiv/trac-ctx.lua4
-rw-r--r--tex/context/base/mkiv/trac-inf.lua5
-rw-r--r--tex/context/base/mkiv/trac-log.lua10
-rw-r--r--tex/context/base/mkiv/typo-inj.lua4
-rw-r--r--tex/context/base/mkiv/util-lua.lua14
-rw-r--r--tex/context/base/mkiv/util-sql-imp-ffi.lua4
-rw-r--r--tex/context/base/mkiv/util-str.lua61
-rw-r--r--tex/context/fonts/mkiv/type-imp-modernlatin.mkiv69
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin848123 -> 846098 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60774 -> 61032 bytes
-rw-r--r--tex/context/modules/common/s-faq-01.tex12
-rw-r--r--tex/context/modules/common/s-faq-02.tex6
-rw-r--r--tex/context/modules/mkiv/m-punk.mkiv6
-rw-r--r--tex/context/modules/mkiv/s-fonts-basics.mkiv175
-rw-r--r--tex/context/modules/mkiv/s-fonts-overlay.mkiv107
-rw-r--r--tex/context/modules/mkiv/s-fonts-shapes.lua115
-rw-r--r--tex/context/modules/mkiv/s-fonts-shapes.mkiv6
-rw-r--r--tex/context/modules/mkiv/s-tugboat.mkiv15
-rw-r--r--tex/context/modules/mkiv/x-asciimath.lua13
-rw-r--r--tex/context/modules/mkiv/x-asciimath.mkiv17
-rw-r--r--tex/generic/context/luatex/luatex-basics-chr.lua1072
-rw-r--r--tex/generic/context/luatex/luatex-basics-prepare.tex8
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua1680
-rw-r--r--tex/generic/context/luatex/luatex-fonts.lua2
172 files changed, 7586 insertions, 2611 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 3ecca045b..15ce97796 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", "plussixteen", "plushundred", "plustwohundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "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", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "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", "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" },
- ["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", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "strippedcsname", "checkedstrippedcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "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", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "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", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "normalbaselineskip", "normallineskip", "normallineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "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", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "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", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "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", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "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", "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", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "uncramped", "cramped", "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", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "cldprocessfile", "cldloadfile", "cldcontext", "cldcommand", "carryoverpar", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "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", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "frule", "compoundhyphenpenalty", "start", "stop" },
+ ["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", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "strippedcsname", "checkedstrippedcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "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", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "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", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "normalbaselineskip", "normallineskip", "normallineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "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", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "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", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "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", "protected", "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", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "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", "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", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "uncramped", "cramped", "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", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installctxfunctioncall", "installprotectedctxfunction", "installprotectedctxfunctioncall", "installctxscanner", "installctxscannercall", "resetctxscanner", "installprotectedctxscanner", "installprotectedctxscannercall", "cldprocessfile", "cldloadfile", "cldcontext", "cldcommand", "carryoverpar", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "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", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "frule", "compoundhyphenpenalty", "start", "stop" },
} \ 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 943d6bcc1..14036ae5d 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,5 +1,5 @@
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", "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", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKVI", "MKXI", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPVI", "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", "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", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addfontpath", "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", "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", "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", "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", "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", "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", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "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", "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", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "crightoverleftarrow", "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", "dayoftheweek", "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", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "defineeffect", "defineenumeration", "defineexpandable", "defineexternalfigure", "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", "definehypenationfeatures", "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", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagegrid", "definepagegridarea", "definepagegridspan", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "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", "definetabulation", "definetext", "definetextbackground", "definetextflow", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "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", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpagestate", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontpresent", "doifelsefontsynonym", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "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", "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", "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", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "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", "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", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "dotfskip", "dotlessI", "dotlessJ", "dotlessi", "dotlessj", "dotlessjstroke", "dotminus", "dotoks", "dotplus", "dotripleargument", "dotripleargumentwithset", "dotripleempty", "dotripleemptywithset", "dotriplegroupempty", "dots", "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", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "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", "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", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "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", "forgetparameters", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "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", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettwopassdata", "gettwopassdatalist", "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", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiatonos", "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", "greekpsilitonos", "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", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "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", "ifassignment", "iff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignorevalue", "igrave", "ihook", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "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", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installlanguage", "installleftframerenderer", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "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", "intop", "invisibletimes", "invokepageheandler", "iogonek", "iota", "istltdir", "istrtdir", "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", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "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", "linefeed", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "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", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "marking", "markinjector", "markpage", "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", "metaTeX", "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", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "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", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "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", "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", "overbarunderbar", "overbrace", "overbraceunderbrace", "overbracket", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overloaderror", "overparent", "overparentunderparent", "overrightarrow", "overset", "overstrike", "overstrikes", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pagegridspanwidth", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "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", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "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", "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", "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", "referenceprefix", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacement", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "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", "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", "rtop", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "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", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setcurrentfontclass", "setdataset", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setfirstline", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagegrid", "setpagereference", "setpagestate", "setpagestaterealpageno", "setpenalties", "setpercentdimen", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacement", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsectionblock", "setsimplecolumnhsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settextcontent", "settightobject", "settightreferencedobject", "settightunreferencedobject", "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", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnspan", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexport", "setupexternalfigure", "setupexternalsoundtracks", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatcaption", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "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", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setupoutputroutine", "setuppagechecker", "setuppagecomment", "setuppagegrid", "setuppagegridarea", "setuppagegridareatext", "setuppagegridlines", "setuppagegridspan", "setuppagegridstart", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiods", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstruts", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbolset", "setupsynctex", "setupsynonyms", "setuptables", "setuptabulate", "setuptabulation", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "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", "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", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showprint", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "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", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "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", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "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", "startcolumnspan", "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", "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", "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", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecomment", "startpagefigure", "startpagegrid", "startpagegridspan", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startprefixtext", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startspread", "startstandardmakeup", "startstartstop", "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", "starttitle", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "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", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "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", "stopcolumnspan", "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", "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", "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", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecomment", "stoppagefigure", "stoppagegrid", "stoppagegridspan", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopregister", "stopreusableMPgraphic", "stoprightaligned", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopspread", "stopstandardmakeup", "stopstartstop", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstructurepageregister", "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", "stoptitle", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "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", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thefirstcharacter", "thenormalizedbodyfontsize", "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", "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", "typesetfile", "uacute", "ubreve", "ucaron", "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", "underbrace", "underbracket", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underparent", "underrandom", "underrandoms", "underrightarrow", "underset", "understrike", "understrikes", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "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", "usegridparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "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", "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", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifelse", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "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", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "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", "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", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKVI", "MKXI", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPVI", "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", "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", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addfontpath", "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", "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", "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", "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", "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", "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", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "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", "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", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "crightoverleftarrow", "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", "dayoftheweek", "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", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "defineeffect", "defineenumeration", "defineexpandable", "defineexternalfigure", "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", "definehypenationfeatures", "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", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagegrid", "definepagegridarea", "definepagegridspan", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "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", "definetabulation", "definetext", "definetextbackground", "definetextflow", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "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", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpagestate", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontpresent", "doifelsefontsynonym", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "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", "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", "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", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "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", "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", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "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", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "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", "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", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "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", "forgetparameters", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "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", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettwopassdata", "gettwopassdatalist", "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", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiatonos", "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", "greekpsilitonos", "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", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "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", "ifassignment", "iff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignorevalue", "igrave", "ihook", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "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", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installlanguage", "installleftframerenderer", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "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", "intop", "invisibletimes", "invokepageheandler", "iogonek", "iota", "istltdir", "istrtdir", "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", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "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", "linefeed", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "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", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "marking", "markinjector", "markpage", "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", "metaTeX", "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", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "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", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "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", "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", "overbarunderbar", "overbrace", "overbraceunderbrace", "overbracket", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overloaderror", "overparent", "overparentunderparent", "overrightarrow", "overset", "overstrike", "overstrikes", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pagegridspanwidth", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "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", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "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", "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", "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", "referenceprefix", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacement", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "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", "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", "rtop", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "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", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setcurrentfontclass", "setdataset", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setfirstline", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagegrid", "setpagereference", "setpagestate", "setpagestaterealpageno", "setpenalties", "setpercentdimen", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacement", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsectionblock", "setsimplecolumnhsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settextcontent", "settightobject", "settightreferencedobject", "settightunreferencedobject", "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", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnspan", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexport", "setupexternalfigure", "setupexternalsoundtracks", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatcaption", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "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", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setupoutputroutine", "setuppagechecker", "setuppagecomment", "setuppagegrid", "setuppagegridarea", "setuppagegridareatext", "setuppagegridlines", "setuppagegridspan", "setuppagegridstart", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiods", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstruts", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbolset", "setupsynctex", "setupsynonyms", "setuptables", "setuptabulate", "setuptabulation", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "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", "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", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showprint", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "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", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "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", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "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", "startcolumnspan", "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", "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", "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", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecomment", "startpagefigure", "startpagegrid", "startpagegridspan", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startprefixtext", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startspread", "startstandardmakeup", "startstartstop", "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", "starttitle", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "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", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "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", "stopcolumnspan", "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", "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", "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", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecomment", "stoppagefigure", "stoppagegrid", "stoppagegridspan", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopregister", "stopreusableMPgraphic", "stoprightaligned", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopspread", "stopstandardmakeup", "stopstartstop", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstructurepageregister", "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", "stoptitle", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "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", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thefirstcharacter", "thenormalizedbodyfontsize", "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", "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", "typesetfile", "uacute", "ubreve", "ucaron", "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", "underbrace", "underbracket", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underparent", "underrandom", "underrandoms", "underrightarrow", "underset", "understrike", "understrikes", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "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", "usegridparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "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", "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", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifelse", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "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", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "zerowidthnobreakspace", "zerowidthspace", "zeta", "zhook", "zstroke", "zwj", "zwnj" },
["cs"]={ "Cisla", "Kap", "MESIC", "Rimskecislice", "SLOVA", "SLOVO", "Slova", "Slovo", "VSEDNIDEN", "Znak", "Znaky", "aktualnicislonadpisu", "aktualnidatum", "barevnalista", "barva", "cernalinka", "cernelinky", "cisla", "cislonadpisu", "cislorovnice", "cislostrany", "datum", "definuj", "definujakcent", "definujbarvu", "definujblok", "definujbloksekce", "definujbuffer", "definujfont", "definujformatodkazu", "definujhbox", "definujinterakcnimenu", "definujkombinovanyseznam", "definujkonverzi", "definujnadpis", "definujobrazeksymbol", "definujodkaz", "definujodstavce", "definujopis", "definujoramovani", "definujoramovanytext", "definujpaletu", "definujplvouciobjekt", "definujpodpole", "definujpole", "definujpopis", "definujpopisek", "definujprekryv", "definujprikaz", "definujprofil", "definujprogram", "definujprostredizakladnihofontu", "definujrejstrik", "definujsablonutabulky", "definujsekci", "definujseznam", "definujskupinubarev", "definujstartstop", "definujstyl", "definujstylfontu", "definujsymbol", "definujsynonumumfontu", "definujsynonyma", "definujtabelaci", "definujtext", "definujtrideni", "definujupravu", "definujvelikostpapiru", "definujvycet", "definujzakladnifont", "definujzasobnikpoli", "definujznaceni", "definujznak", "delkaseznamu", "externiobraz", "hlavnijazyk", "hodnotabarvy", "instalacejazyka", "interakcnilista", "interakcnitlacitka", "interaktivnimenu", "jazyk", "jdidolu", "jdina", "jdinabox", "jdinastranu", "klonujpole", "komponenta", "konvertujcislo", "kopirujpole", "korekcebilehomista", "matematika", "meritko", "mesic", "mezera", "mrizka", "nastavbarvu", "nastavbarvy", "nastavbilamista", "nastavblok", "nastavbloksekce", "nastavbuffer", "nastavcernelinky", "nastavcislonadpisu", "nastavcislostrany", "nastavcislovaniodstavcu", "nastavcislovaniradku", "nastavcislovanistran", "nastavcitaci", "nastavdeleniplvoucichobjektu", "nastavdelitko", "nastavdolnitexty", "nastavhorejsek", "nastavhornitexty", "nastavinterakci", "nastavinterakcnilistu", "nastavinterakcnimenu", "nastavinterakcniobrazovku", "nastavjazyk", "nastavkapitalky", "nastavkombinovanyseznam", "nastavkomentar", "nastavkomentarstrany", "nastavmarginalnilinky", "nastavmeziradkovoumezeru", "nastavnadpis", "nastavnadpisy", "nastavodkazovani", "nastavodsazovani", "nastavodstavce", "nastavopis", "nastavoramovanetexty", "nastavoramovani", "nastavorez", "nastavotoceni", "nastavpaletu", "nastavplvouciobjekt", "nastavplvouciobjekty", "nastavpodcislostrany", "nastavpole", "nastavpolozky", "nastavpopisek", "nastavpopisky", "nastavpozadi", "nastavprechodstrany", "nastavpreskok", "nastavprogramy", "nastavradkovani", "nastavradky", "nastavrejstrik", "nastavrovnice", "nastavsadusymbolu", "nastavseznam", "nastavsirkucary", "nastavsloupce", "nastavspodek", "nastavsynonyma", "nastavtabelaci", "nastavtabulky", "nastavtenkelinky", "nastavtext", "nastavtextovelinky", "nastavtexttexty", "nastavtextyupati", "nastavtextyzahlavi", "nastavtoleranci", "nastavtrideni", "nastavtype", "nastavumisteniprotejsku", "nastavumistovani", "nastavupati", "nastavupravu", "nastavurl", "nastavusporadani", "nastavvelikostpapiru", "nastavvsechnapole", "nastavvycty", "nastavvyplnovelinky", "nastavvyplnoveradky", "nastavvzhled", "nastavzahlavi", "nastavzakladnifont", "nastavzarovnani", "nastavznaceni", "nastavzuzeni", "nastrane", "nejakyradek", "nekde", "neznamo", "nivy", "nizky", "nokap", "obrazovka", "odkaz", "odkaznastranu", "odkaznatext", "odkazujici", "opis", "opissoubor", "oramovani", "oref", "orez", "otocit", "oznaceni", "pis", "plnezneni", "pole", "polozka", "polozky", "porovnejpaletu", "porovnejskupinubarev", "pozadi", "pozice", "poznamka", "pref", "prelozit", "prepninazakladnifont", "preskoc", "prizpusobivepole", "prizpusobvzhled", "produkt", "projekt", "prostredi", "resetznaceni", "rimskecislice", "rozdelplvouciobjekt", "roztazene", "schovejbloky", "sedabarva", "sloupec", "slovovpravo", "stanovcharakteristickuseznamu", "stanovcislonadpisu", "startbarva", "startinteraktivnimenu", "startjdina", "startkomponenta", "startmarginalnilinka", "startnadpis", "startoramovani", "startpolozka", "startpozadi", "startprodukt", "startprojekt", "startprostredi", "startpublikace", "startradek", "starttextovalinka", "startumistirovnici", "startzarovnanonastred", "startzarovnanovlevo", "startzarovnanovpravo", "startzhustene", "stopbarva", "stopinteraktivnimenu", "stopjdina", "stopkomponenta", "stopmarginalnilinka", "stopnadpis", "stoporamovani", "stoppolozka", "stoppozadi", "stopprodukt", "stopprojekt", "stopprostredi", "stoppublikace", "stopradek", "stoptextovalinka", "stopumistirovnici", "stopzarovnanonastred", "stopzarovnanovlevo", "stopzarovnanovpravo", "stopzhustene", "strana", "tecky", "tenkalinka", "tenkelinky", "textovalinka", "tlacitko", "tlacitkomenu", "tloustkacary", "tref", "tvrdamezera", "tvrdemezery", "ukazbarvu", "ukazmrizku", "ukaznastaveni", "ukazpaletu", "ukazpodpery", "ukazpostredizakladnihofontu", "ukazramecek", "ukazsadusymbolu", "ukazskupinubarev", "ukazupravu", "ukazvytisk", "ukazvzhled", "ukazzakladnifont", "umistikombinovanyseznam", "umistilokalnipoznamkypodcarou", "umistinadsebe", "umistinamrizku", "umistipodrovnici", "umistipoznamkypodcarou", "umistirejstrik", "umistirovnici", "umistiseznam", "umistivedlesebe", "umistizalozky", "urcicharakteristikurejstriku", "uzijJSscripts", "uzijURL", "uzijadresar", "uzijbloky", "uzijexternidokument", "uzijexterniobraz", "uzijexternizvuk", "uzijmodul", "uzijsymbol", "uzijurl", "verze", "vlasovalinka", "vradku", "vsedniden", "vyberbloky", "vyplnenytext", "vyplnovelinky", "vyplnovyradek", "vysoky", "zachovejbloky", "zadnamezera", "zadnehorniadolniradky", "zadnezahlaviaupati", "zalozka", "zapisdoseznamu", "zapismeziseznam", "zaramovani", "zarovnanonastred", "zarovnanovlevo", "zarovnanovpravo", "zasobnikpoli", "ziskejbuffer", "ziskejznaceni", "znaceni", "znak", "znaky", "zpracujbloky", "zrcadlit", "zref" },
["de"]={ "Buchstabe", "Buchstaben", "Kap", "MONAT", "Roemischezahlen", "WOCHENTAG", "WOERTER", "WORT", "Woerter", "Wort", "Ziffern", "amgitterausrichten", "aufseite", "ausfuelltext", "ausschnitt", "bearbeitebloecke", "behaltebloecke", "bei", "bemerkung", "benutzeverzeichnis", "beschriftung", "bestimmekopfnummer", "bestimmelistencharakeristika", "bestimmeregistercharakteristika", "bildschirm", "blanko", "buchstabe", "buchstaben", "datum", "defineschriftsynonym", "definiereabbsymbol", "definiereabsaetze", "definiereabschnitt", "definiereabschnittsblock", "definiereakzent", "definierebefehl", "definierebeschreibung", "definierebeschriftung", "definiereblock", "definierefarbe", "definierefarbengruppe", "definierefeld", "definierefeldstapel", "definierefliesstext", "definierefliesstextumgebung", "definieregleitobjekt", "definierehbox", "definiereinteraktionsmenue", "definierekonversion", "definierelabel", "definiereliste", "definieren", "definierenummerierung", "definiereoverlay", "definierepalette", "definierepapierformat", "definiereprofil", "definiereprogramme", "definierepuffer", "definierereferenz", "definierereferenzformat", "definiereregister", "definiereschrift", "definiereschriftstil", "definieresortieren", "definierestartstop", "definierestil", "definieresubfeld", "definieresymbol", "definieresynonyme", "definieretabellenvorlage", "definieretabulator", "definieretext", "definieretippen", "definiereueberschrift", "definiereumbruch", "definiereumrahmt", "definiereumrahmtertext", "definierezeichen", "definierezusammengestellteliste", "drehen", "duennelinie", "duennerumriss", "einezeile", "externeabbildung", "farbbalken", "farbe", "farbewert", "feld", "feldstapel", "festesspatium", "format", "formelnummer", "gefuelltesrechteck", "gefuelltezeile", "gestreckt", "gitter", "graufarbe", "haarlinie", "hauptsprache", "heutigesdatum", "heutigeskopfnummer", "hintergrund", "hoch", "holebeschriftung", "holepuffer", "imumriss", "installieresprache", "interaktionsbalken", "interaktionsknopfe", "interaktionsmenue", "inzeile", "irgendwo", "keinekopfundfusszeilen", "keinspatium", "keinzeilenobenundunten", "klonierefeld", "knopf", "komponente", "konvertierezahl", "kopfnummer", "kopierefeld", "korrigierezwischenraum", "liniendicke", "linksbuendig", "listenlaenge", "mathematik", "menueknopf", "monat", "nachunten", "nokap", "notiz", "passelayoutan", "passendfeld", "platzierebookmarks", "platziereformel", "platzierefussnoten", "platziereliste", "platzierelokalefussnoten", "platzierenebeneinander", "platziereregister", "platziereuntereinander", "platziereunterformel", "platzierezusammengestellteliste", "pos", "posten", "produkt", "programm", "projekt", "punkt", "rechteck", "rechtecke", "rechtsbuendig", "referenz", "referieren", "roemischezahlen", "ruecksetztenbeschriftung", "schreibezurliste", "schreibezwischenliste", "seite", "seitenreferenz", "seitenummer", "settext", "spalte", "spatium", "spiegeln", "sprache", "startfarbe", "starthintergrund", "startinteraktionsmenue", "startkleinerdurchschuss", "startkomponente", "startkopf", "startlinksbuendig", "startmarginallinie", "startplatziereformel", "startpos", "startprodukt", "startprojekt", "startpublikation", "startrechtsbuendig", "starttextlinie", "startumgebung", "startumrahmt", "startzeile", "startzentriert", "startzu", "stelleabsaetzeein", "stelleabsatznummerierungein", "stelleabschnittsblockein", "stelleanordnenein", "stelleaufzaehlungenein", "stelleausrichtungein", "stelleausschnittein", "stellebeschreibungein", "stellebeschriftungein", "stellebilderunterschriftein", "stellebildunterschriftein", "stellebindestrichein", "stelleblankoein", "stelleblockein", "stelledrehenein", "stelleduennerumrissein", "stelleeinziehenein", "stelleengerein", "stellefarbeein", "stellefarbenein", "stellefeldein", "stellefelderin", "stellefliesstextein", "stelleformelnein", "stellefusszeileein", "stellefusszeilentextein", "stellegefuelltesrechteckein", "stellegefuelltezeileein", "stellegegenueberplatzierenein", "stellegleitobjekteein", "stellegleitobjektein", "stellehintergruendeein", "stellehintergrundein", "stelleinteraktionein", "stelleinteraktionsbalkenein", "stelleinteraktionsbildschirmein", "stelleinteraktionsmenueein", "stellekommentarein", "stellekopfzahlein", "stellekopfzeileein", "stellekopfzeilentextein", "stellelayoutein", "stellelinienbreiteein", "stellelisteein", "stellemarginallinieein", "stellenobenein", "stellepaletteein", "stellepapierformatein", "stelleplatziegeteiltegleitobjekt", "stellepositionierenein", "stellepostenein", "stelleprogrammein", "stellepufferein", "stellerechteckein", "stellereferenzierenein", "stelleregisterein", "stelleseitenkommentarein", "stelleseitennummerein", "stelleseitennummeriernungein", "stelleseitenuebergangein", "stellesortierenein", "stellespaltenein", "stellespatiumein", "stellespracheein", "stellesymbolsetein", "stellesynonymein", "stelletabellenein", "stelletabulatorein", "stelletextein", "stelletextobenein", "stelletexttexteein", "stelletextumrissein", "stelletextuntenein", "stelletipein", "stelletippenein", "stelletoleranzein", "stelleueberschriftein", "stelleueberschriftenein", "stelleumbruchein", "stelleumrahmtein", "stelleumrahmtetexteein", "stelleuntenein", "stelleunterseitennummerein", "stelleurlein", "stelleversalienein", "stellezeilenabstandein", "stellezeilenein", "stellezeilennumerierungein", "stellezitierenein", "stellezusammengestelltelisteein", "stellezwischenraumein", "stopfarbe", "stophintergrund", "stopinteraktionsmenue", "stopkleinerdurchschuss", "stopkomponente", "stopkopf", "stoplinksbuendig", "stopmarginallinie", "stopplatziereformel", "stoppos", "stopprodukt", "stopprojekt", "stoppublikation", "stoprechtsbuendig", "stoptextlinie", "stopumgebung", "stopumrahmt", "stopzeile", "stopzentriert", "stopzu", "teilegleitobjekt", "textlinie", "textreferenz", "tief", "tiho", "tip", "tippedatei", "tippen", "tippepuffer", "ueber", "uebersetzten", "umgebung", "umrahmt", "unbekant", "verbergebloecke", "vergleichefarbengruppe", "vergleichepalette", "verwendeJSscript", "verwendeURL", "verwendebloecke", "verwendeexteresdokument", "verwendeexterneabbildung", "verwendeexternestonstueck", "verwendemodul", "verwendesymbole", "verwendeurl", "volleswort", "von", "waehlebloeckeaus", "wechselezumfliesstext", "wochentag", "wortrechts", "zeigedruck", "zeigeeinstellungen", "zeigefarbe", "zeigefarbengruppe", "zeigefliesstext", "zeigefliesstextumgebung", "zeigegitter", "zeigelayout", "zeigepalette", "zeigerahmen", "zeigestruts", "zeigeumbruch", "zentriert", "ziffern", "zu", "zurbox", "zurseite" },
["en"]={},
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 c0bce17d4..31cb6e4fb 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,7 +1,7 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "eTeXVersion", "eTeXminorversion", "eTeXrevision", "eTeXversion", "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", "readline", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "tracingscantokens", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Unosubscript", "Unosuperscript", "Uoverdelimiter", "Uradical", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "alignmark", "aligntab", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "bodydir", "bodydirection", "boxdir", "boxdirection", "breakafterdirmode", "catcodetable", "clearmarks", "copyfont", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "draftmode", "dviextension", "dvifeedback", "dvivariable", "efcode", "etoksapp", "etokspre", "expanded", "expandglyphsinfont", "explicitdiscretionary", "explicithyphenpenalty", "fontid", "formatname", "gleaders", "hjcode", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifincsname", "ifprimitive", "ignoreligaturesinfont", "initcatcodetable", "insertht", "lastnamedcs", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastxpos", "lastypos", "latelua", "leftghost", "leftmarginkern", "letcharcode", "letterspacefont", "linedir", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luaescapestring", "luafunction", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdir", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathitalicsmode", "mathnolimitsmode", "mathoption", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathscriptsmode", "mathscriptboxmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "nohrule", "nokerns", "noligs", "normaldeviate", "nospaces", "novrule", "outputbox", "outputmode", "pagebottomoffset", "pagedir", "pagedirection", "pageheight", "pageleftoffset", "pagerightoffset", "pagetopoffset", "pagewidth", "pardir", "pardirection", "pdfextension", "pdffeedback", "pdfvariable", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "primitive", "protrudechars", "pxdimen", "quitvmode", "randomseed", "rightghost", "rightmarginkern", "rpcode", "saveboxresource", "savecatcodetable", "saveimageresource", "savepos", "scantextokens", "setfontid", "setrandomseed", "shapemode", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressmathparerror", "suppressoutererror", "suppressprimitiveerror", "synctex", "tagcode", "textdir", "textdirection", "toksapp", "tokspre", "tracingfonts", "uniformdeviate", "useboxresource", "useimageresource" },
+ ["luatex"]={ "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Unosubscript", "Unosuperscript", "Uoverdelimiter", "Uradical", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "alignmark", "aligntab", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "bodydir", "bodydirection", "boxdir", "boxdirection", "breakafterdirmode", "catcodetable", "clearmarks", "copyfont", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "draftmode", "dviextension", "dvifeedback", "dvivariable", "efcode", "etoksapp", "etokspre", "expanded", "expandglyphsinfont", "explicitdiscretionary", "explicithyphenpenalty", "fontid", "formatname", "gleaders", "hjcode", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifincsname", "ifprimitive", "ignoreligaturesinfont", "initcatcodetable", "insertht", "lastnamedcs", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastxpos", "lastypos", "latelua", "leftghost", "leftmarginkern", "letcharcode", "letterspacefont", "linedir", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdir", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathitalicsmode", "mathnolimitsmode", "mathoption", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathscriptsmode", "mathscriptboxmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "nohrule", "nokerns", "noligs", "normaldeviate", "nospaces", "novrule", "outputbox", "outputmode", "pagebottomoffset", "pagedir", "pagedirection", "pageheight", "pageleftoffset", "pagerightoffset", "pagetopoffset", "pagewidth", "pardir", "pardirection", "pdfextension", "pdffeedback", "pdfvariable", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "primitive", "protrudechars", "pxdimen", "quitvmode", "randomseed", "rightghost", "rightmarginkern", "rpcode", "saveboxresource", "savecatcodetable", "saveimageresource", "savepos", "scantextokens", "setfontid", "setrandomseed", "shapemode", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressmathparerror", "suppressoutererror", "suppressprimitiveerror", "synctex", "tagcode", "textdir", "textdirection", "toksapp", "tokspre", "tracingfonts", "uniformdeviate", "useboxresource", "useimageresource" },
["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", "pdfmapfile", "pdfmapline", "pdfmajorversion", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "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"]={ " ", "-", "/", "Uleft", "Umiddle", "Uright", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "boundary", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "closein", "closeout", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "csstring", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "directlua", "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", "firstvalidlanguage", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hpack", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "ifeof", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "immediate", "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", "mag", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noboundary", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "openin", "openout", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "protrusionboundary", "radical", "raise", "read", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "special", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tpack", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vpack", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "wordboundary", "write", "xdef", "xleaders", "xspaceskip", "year" },
diff --git a/context/data/scite/context/scite-context-data-context.properties b/context/data/scite/context/scite-context-data-context.properties
index acc704051..5c089d489 100644
--- a/context/data/scite/context/scite-context-data-context.properties
+++ b/context/data/scite/context/scite-context-data-context.properties
@@ -153,76 +153,78 @@ setuvalue setuevalue setugvalue setuxvalue globallet \
glet udef ugdef uedef uxdef \
checked unique getparameters geteparameters getgparameters \
getxparameters forgetparameters copyparameters getdummyparameters dummyparameter \
-directdummyparameter setdummyparameter letdummyparameter usedummystyleandcolor usedummystyleparameter \
-usedummycolorparameter processcommalist processcommacommand quitcommalist quitprevcommalist \
-processaction processallactions processfirstactioninset processallactionsinset unexpanded \
-expanded startexpanded stopexpanded protected 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 newconstant setnewconstant \
-setconstant setconstantvalue newconditional settrue setfalse \
-settruevalue setfalsevalue 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 \
-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 ordordspacing ordopspacing ordbinspacing \
-ordrelspacing ordopenspacing ordclosespacing ordpunctspacing ordinnerspacing \
-opordspacing opopspacing opbinspacing oprelspacing opopenspacing \
-opclosespacing oppunctspacing opinnerspacing binordspacing binopspacing \
-binbinspacing binrelspacing binopenspacing binclosespacing binpunctspacing \
-bininnerspacing relordspacing relopspacing relbinspacing relrelspacing \
-relopenspacing relclosespacing relpunctspacing relinnerspacing openordspacing \
-openopspacing openbinspacing openrelspacing openopenspacing openclosespacing \
-openpunctspacing openinnerspacing closeordspacing closeopspacing closebinspacing \
-closerelspacing closeopenspacing closeclosespacing closepunctspacing closeinnerspacing \
-punctordspacing punctopspacing punctbinspacing punctrelspacing punctopenspacing \
-punctclosespacing punctpunctspacing punctinnerspacing innerordspacing inneropspacing \
-innerbinspacing innerrelspacing inneropenspacing innerclosespacing innerpunctspacing \
-innerinnerspacing normalreqno startimath stopimath normalstartimath \
-normalstopimath startdmath stopdmath normalstartdmath normalstopdmath \
-normalsuperscript normalsubscript normalnosuperscript normalnosubscript superscript \
-subscript nosuperscript nosubscript uncramped cramped \
-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 startluaparameterset stopluaparameterset luaparameterset \
-definenamedlua obeylualines obeyluatokens startluacode stopluacode \
-startlua stoplua startctxfunction stopctxfunction ctxfunction \
-startctxfunctiondefinition stopctxfunctiondefinition installctxfunction cldprocessfile cldloadfile \
-cldcontext cldcommand carryoverpar lastlinewidth assumelongusagecs \
-Umathbotaccent 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 \
-lesshyphens morehyphens nohyphens dohyphens Ucheckedstartdisplaymath \
-Ucheckedstopdisplaymath break nobreak allowbreak goodbreak \
-nospace nospacing dospacing naturalhbox naturalvbox \
-naturalvtop naturalhpack naturalvpack frule compoundhyphenpenalty \
-start stop
+directdummyparameter setdummyparameter letdummyparameter setexpandeddummyparameter usedummystyleandcolor \
+usedummystyleparameter usedummycolorparameter processcommalist processcommacommand quitcommalist \
+quitprevcommalist processaction processallactions processfirstactioninset processallactionsinset \
+unexpanded expanded startexpanded stopexpanded protected \
+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 newconstant \
+setnewconstant setconstant setconstantvalue newconditional settrue \
+setfalse settruevalue setfalsevalue 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 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 ordordspacing ordopspacing \
+ordbinspacing ordrelspacing ordopenspacing ordclosespacing ordpunctspacing \
+ordinnerspacing opordspacing opopspacing opbinspacing oprelspacing \
+opopenspacing opclosespacing oppunctspacing opinnerspacing binordspacing \
+binopspacing binbinspacing binrelspacing binopenspacing binclosespacing \
+binpunctspacing bininnerspacing relordspacing relopspacing relbinspacing \
+relrelspacing relopenspacing relclosespacing relpunctspacing relinnerspacing \
+openordspacing openopspacing openbinspacing openrelspacing openopenspacing \
+openclosespacing openpunctspacing openinnerspacing closeordspacing closeopspacing \
+closebinspacing closerelspacing closeopenspacing closeclosespacing closepunctspacing \
+closeinnerspacing punctordspacing punctopspacing punctbinspacing punctrelspacing \
+punctopenspacing punctclosespacing punctpunctspacing punctinnerspacing innerordspacing \
+inneropspacing innerbinspacing innerrelspacing inneropenspacing innerclosespacing \
+innerpunctspacing innerinnerspacing normalreqno startimath stopimath \
+normalstartimath normalstopimath startdmath stopdmath normalstartdmath \
+normalstopdmath normalsuperscript normalsubscript normalnosuperscript normalnosubscript \
+superscript subscript nosuperscript nosubscript uncramped \
+cramped 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 startluaparameterset stopluaparameterset \
+luaparameterset definenamedlua obeylualines obeyluatokens startluacode \
+stopluacode startlua stoplua startctxfunction stopctxfunction \
+ctxfunction startctxfunctiondefinition stopctxfunctiondefinition installctxfunction installctxfunctioncall \
+installprotectedctxfunction installprotectedctxfunctioncall installctxscanner installctxscannercall resetctxscanner \
+installprotectedctxscanner installprotectedctxscannercall cldprocessfile cldloadfile cldcontext \
+cldcommand carryoverpar lastlinewidth assumelongusagecs Umathbotaccent \
+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 lesshyphens \
+morehyphens nohyphens dohyphens Ucheckedstartdisplaymath Ucheckedstopdisplaymath \
+break nobreak allowbreak goodbreak nospace \
+nospacing dospacing naturalhbox naturalvbox naturalvtop \
+naturalhpack naturalvpack frule compoundhyphenpenalty start \
+stop
diff --git a/context/data/scite/context/scite-context-data-interfaces.properties b/context/data/scite/context/scite-context-data-interfaces.properties
index f1d5344ff..aa5ba4612 100644
--- a/context/data/scite/context/scite-context-data-interfaces.properties
+++ b/context/data/scite/context/scite-context-data-interfaces.properties
@@ -391,828 +391,828 @@ dosixtupleargument dosixtupleempty dostepwiserecurse dosubtractfeature dot \
doteq doteqdot dotfskip dotlessI dotlessJ \
dotlessi dotlessj dotlessjstroke dotminus dotoks \
dotplus dotripleargument dotripleargumentwithset dotripleempty dotripleemptywithset \
-dotriplegroupempty dots 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 elapsedtime eleftarrowfill eleftharpoondownfill eleftharpoonupfill \
-eleftrightarrowfill ell em emacron emdash \
-emphasisboldface emphasistypeface emptylines emptyset emquad \
-emspace 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 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 filterfromnext filterfromvalue filterpages filterreference \
-findtwopassdata finishregisterentry firstcharacter firstcounter firstcountervalue \
-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 forgetparameters forgetragged formula formulanumber \
-foundbox fourfifths fourperemspace fourthoffivearguments fourthoffourarguments \
-fourthofsixarguments frac framed frameddimension framedparameter \
-framedtext freezedimenmacro freezemeasure 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 getdayoftheweek getdayspermonth getdefinedbuffer getdocumentargument \
-getdocumentargumentdefault getdocumentfilename getdummyparameters getemptyparameters geteparameters \
-getexpandedparameters getfiguredimensions getfirstcharacter getfirsttwopassdata getfromcommacommand \
-getfromcommalist getfromtwopassdata getglyphdirect getglyphstyled getgparameters \
-getlasttwopassdata getlocalfloat getlocalfloats getmarking getmessage \
-getnamedglyphdirect getnamedglyphstyled getnamedtwopassdatalist getnaturaldimensions getnoflines \
-getobject getobjectdimensions getpaletsize getparameters getprivatechar \
-getprivateslot getrandomcount getrandomdimen getrandomfloat getrandomnumber \
-getrandomseed getraweparameters getrawgparameters getrawnoflines getrawparameters \
-getrawxparameters getreference getreferenceentry getroundednoflines gets \
-getsubstring gettwopassdata gettwopassdatalist 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 greekchi greekdasia greekdasiaperispomeni \
-greekdasiatonos 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 greekpsilitonos 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 heightanddepthofstring heightofstring \
-heightspanningtext helptext hglue hiddenbar hiddencitation \
-hiddencite hideblocks high highlight highordinalstr \
-hilo himilo hl hookleftarrow hookrightarrow \
-horizontalgrowingbar horizontalpositionbar 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 ifassignment iff ifinobject \
-ifinoutputstream ifparameters iftrialtypesetting ignoreimplicitspaces ignorevalue \
-igrave ihook iiiint iiiintop iiint \
-iiintop iint iintop iinvertedbreve ijligature \
-imacron imaginaryi imaginaryj imath immediatesavetwopassdata \
-impliedby implies imply in includemenu \
-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 installactionhandler \
-installactivecharacter installanddefineactivecharacter installattributestack installautocommandhandler installautosetuphandler \
-installbasicautosetuphandler installbasicparameterhandler installbottomframerenderer installcommandhandler installcorenamespace \
-installdefinehandler installdefinitionset installdefinitionsetmember installdirectcommandhandler installdirectparameterhandler \
-installdirectparametersethandler installdirectsetuphandler installdirectstyleandcolorhandler installframedautocommandhandler installframedcommandhandler \
-installlanguage installleftframerenderer installnamespace installoutputroutine installpagearrangement \
-installparameterhandler installparameterhashhandler installparametersethandler installparentinjector 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 intop \
-invisibletimes invokepageheandler iogonek iota istltdir \
-istrtdir 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 lastpredefinedsymbol \
-lastrealpage lastrealpagenumber lastsubcountervalue lastsubpage lastsubpagenumber \
-lasttwodigits lastuserpage lastuserpagenumber lateluacode latin \
-layeredtext layerheight layerwidth lazysavetaggedtwopassdata lazysavetwopassdata \
-lbar lbox lbrace lbracket lcaron \
-lceil 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 linefeed linenote linespanningtext linethickness \
-linterval listcitation listcite listlength listnamespaces \
-ljligature ll llangle llap llbracket \
-llcorner lll llless 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 \
-lowerleftdoubleninequote lowerleftsingleninequote lowerrightdoubleninequote lowerrightsingleninequote lozenge \
-lparent lrcorner lrointerval lrtbbox lstroke \
-lt ltimes ltop luaTeX luacode \
-luaconditional luaenvironment luaexpanded luaexpr luafunction \
-luajitTeX luamajorversion luaminorversion luaparameterset luasetup \
-luaversion lvert m mLeftarrow mLeftrightarrow \
-mRightarrow mainlanguage makecharacteractive makerawcommalist makestrutofbox \
-maltese mapfontsize mapsdown mapsfrom mapsto \
-mapsup margindata margintext markcontent marking \
-markinjector markpage 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 \
-metaTeX 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 naturalvbox naturalvcenter naturalvpack \
-naturalvtop naturalwd ncaron ncommaaccent ncong \
-ncurl ndivides ne nearrow neg \
-negatecolorbox negated negativesign negthinspace neng \
-neq nequiv neswarrow newattribute newcatcodetable \
-newcounter newevery newfrenchspacing 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 nocitation nocite \
-nodetostring noffigurepages noflines noflocalfloats noheaderandfooterlines \
-noheightstrut noindentation noitem nonfrenchspacing nonmathematics \
-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 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 overbarunderbar overbrace overbraceunderbrace overbracket \
-overbracketunderbracket overlaybutton overlaycolor overlaydepth overlayfigure \
-overlayheight overlaylinecolor overlaylinewidth overlayoffset overlayrollbutton \
-overlaywidth overleftarrow overloaderror overparent overparentunderparent \
-overrightarrow overset overstrike overstrikes owns \
-page pagearea pagebreak pagefigure pagegridspanwidth \
-pageinjection pagenumber pagereference pagestaterealpage 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 placefloatwithsetups placefootnotes placeformula \
-placeframed placegraphic placeheadnumber placeheadtext placehelp \
-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 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 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 referenceprefix referring registerattachment \
-registerctxluafile registered registerexternalfigure registerfontclass registerhyphenationexception \
-registerhyphenationpattern registermenubuttons registersort registersynonym registerunit \
-regular relatemarking relateparameterhandlers relaxvalueifundefined relbar \
-remainingcharacters remark removebottomthings removedepth removefromcommalist \
-removelastskip removelastspace removemarkedcontent removepunctuation removesubstring \
-removetoks removeunwantedspaces replacefeature replaceincommalist replaceword \
-rescan rescanwithsetup resetMPdrawing resetMPenvironment resetMPinstance \
-resetallattributes resetandaddfeature resetbar resetboxesincache resetbreakpoints \
-resetbuffer resetcharacteralign resetcharacterkerning resetcharacterspacing resetcharacterstripping \
-resetcollector resetcounter resetdigitsmanipulation resetdirection resetfeature \
-resetflag resetfontcolorsheme resetfontfallback resetfontsolution resethyphenationfeatures \
-resetinjector resetinteractionmenu resetitaliccorrection resetlayer resetlocalfloats \
-resetmarker resetmarking resetmode resetpagenumber resetparallel \
-resetpath resetpenalties resetprofile resetrecurselevel resetreference \
-resetreplacement resetscript resetsetups resetshownsynonyms resetsubpagenumber \
-resetsymbolset resetsystemmode resettimer resettrackers resettrialtypesetting \
-resetusedsortings resetusedsynonyms resetuserpagenumber resetvalue resetvisualizers \
-reshapebox resolvedglyphdirect resolvedglyphstyled restartcounter restorebox \
-restorecatcodes restorecounter restorecurrentattributes restoreendofline restoreglobalbodyfont \
-restriction reusableMPgraphic reuseMPgraphic reuserandomseed reverseddoubleprime \
-reversedprime reversedtripleprime 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 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 rtop \
-ruledhbox ruledhpack ruledmbox ruledtopv ruledtpack \
-ruledvbox ruledvpack ruledvtop runMPbuffer runninghbox \
-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 \
-setbar setbigbodyfont setboxllx setboxlly setbreakpoints \
-setcapstrut setcatcodetable setcharacteralign setcharactercasing setcharactercleaning \
-setcharacterkerning setcharacterspacing setcharacterstripping setcharstrut setcollector \
-setcolormodell setcounter setcounterown setcurrentfontclass setdataset \
-setdefaultpenalties setdigitsmanipulation setdirection setdocumentargument setdocumentargumentdefault \
-setdocumentfilename setdummyparameter setelementexporttag setemeasure setevalue \
-setevariable setevariables setfirstline setflag setfont \
-setfontcolorsheme setfontfeature setfontsolution setfontstrut setgmeasure \
-setgvalue setgvariable setgvariables sethboxregister sethyphenatedurlafter \
-sethyphenatedurlbefore sethyphenatedurlnormal sethyphenationfeatures setinitial setinjector \
-setinteraction setinterfacecommand setinterfaceconstant setinterfaceelement setinterfacemessage \
-setinterfacevariable setinternalrendering setitaliccorrection setlayer setlayerframed \
-setlayertext setlinefiller setlocalhsize setmainbodyfont setmainparbuilder \
-setmarker setmarking setmathstyle setmeasure setmessagetext \
-setminus setmode setnostrut setnote setnotetext \
-setobject setoldstyle setpagegrid setpagereference setpagestate \
-setpagestaterealpageno setpenalties setpercentdimen setposition setpositionbox \
-setpositiondata setpositiondataplus setpositiononly setpositionplus setpositionstrut \
-setprofile setrandomseed setreference setreferencedobject setregisterentry \
-setreplacement setrigidcolumnbalance setrigidcolumnhsize setscript setsectionblock \
-setsimplecolumnhsize setsmallbodyfont setsmallcaps setstackbox setstructurepageregister \
-setstrut setsuperiors setsystemmode settabular settaggedmetadata \
-settextcontent settightobject settightreferencedobject settightunreferencedobject 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 \
-setupbookmark setupbottom setupbottomtexts setupbtx setupbtxdataset \
-setupbtxlabeltext setupbtxlist setupbtxregister setupbtxrendering setupbuffer \
-setupbutton setupcapitals setupcaption setupcaptions setupcharacterkerning \
-setupcharacterspacing setupchemical setupchemicalframed setupclipping setupcollector \
-setupcolor setupcolors setupcolumns setupcolumnspan setupcombination \
-setupcombinedlist setupcomment setupcontent setupcounter setupdataset \
-setupdelimitedtext setupdescription setupdirections setupdocument setupeffect \
-setupenumeration setupenumerations setupenv setupexport setupexternalfigure \
-setupexternalsoundtracks setupfield setupfieldbody setupfieldcategory setupfieldcontentframed \
-setupfieldlabelframed setupfields setupfieldtotalframed setupfiller setupfillinlines \
-setupfillinrules setupfirstline setupfittingpage setupfloat setupfloatcaption \
-setupfloats setupfloatsplitting setupfontexpansion setupfontprotrusion setupfonts \
-setupfontsolution setupfooter setupfootertexts 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 setupnarrower setupnotation setupnotations \
-setupnote setupnotes setupoffset setupoffsetbox setupoperatortext \
-setupoppositeplacing setupoutputroutine setuppagechecker setuppagecomment setuppagegrid \
-setuppagegridarea setuppagegridareatext setuppagegridlines setuppagegridspan setuppagegridstart \
-setuppageinjection setuppageinjectionalternative setuppagenumber setuppagenumbering setuppageshift \
-setuppagestate setuppagetransitions setuppairedbox setuppalet setuppaper \
-setuppapersize setupparagraph setupparagraphintro setupparagraphnumbering setupparagraphs \
-setupparallel setupperiods setupplacement setuppositionbar setuppositioning \
-setupprefixtext setupprocessor setupprofile setupprograms setupquotation \
-setupquote setuprealpagenumber setupreferenceformat setupreferenceprefix setupreferencestructureprefix \
-setupreferencing setupregister setupregisters setuprenderingwindow setuprotate \
-setups setupscale setupscript setupscripts setupsectionblock \
-setupselector setupshift setupsidebar setupsorting setupspacing \
-setupspellchecking setupstartstop setupstretched setupstruts setupstyle \
-setupsubformula setupsubformulas setupsubpagenumber setupsuffixtext setupsymbolset \
-setupsynctex setupsynonyms setuptables setuptabulate setuptabulation \
-setuptagging setuptaglabeltext setuptext setuptextbackground setuptextflow \
-setuptextrules setuptexttexts setupthinrules setuptolerance setuptooltip \
-setuptop setuptoptexts setuptype setuptyping setupunit \
-setupunittext setupurl 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 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 showfontitalics showfontkerns showfontparameters showfontstrip \
-showfontstyle showframe showglyphs showgrid showgridsnapping \
-showhelp showhyphenationtrace showhyphens showinjector showjustification \
-showkerning showlayout showlayoutcomponents showligature showligatures \
-showlogcategories showmakeup showmargins showmessage showminimalbaseline \
-shownextbox showotfcomposition showpalet showparentchain showprint \
-showsetups showsetupsdefinition showstruts showsymbolset showtimer \
-showtokens showtrackers showvalue showvariable showwarning \
-sigma 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 smaller \
-smallitalicbold smallnormal smallskip smallslanted smallslantedbold \
-smalltype smash smashbox smashboxed smashedhbox \
-smashedvbox smile snaptogrid softhyphen solidus \
-someheadnumber somekindoftab someline somelocalfloat somenamedheadnumber \
-someplace somewhere space 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 \
-star stareq startJScode startJSpreamble startLUA \
-startMP startMPclip startMPcode startMPdefinitions startMPdrawing \
-startMPenvironment startMPextensions startMPinclusions startMPinitializations startMPpage \
-startMPpositiongraphic startMPpositionmethod startMPrun startPARSEDXML startTABLE \
-startTABLEbody startTABLEfoot startTABLEhead startTABLEnext startTC \
-startTD startTDs startTEX startTEXpage startTH \
-startTN startTR startTRs startTX startTY \
-startXML startalign startalignment startallmodes startappendices \
-startarrangedpages 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 \
-startcolumnspan 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 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 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 startmathalignment \
-startmathcases startmathlabeltext startmathmatrix startmathmode startmathstyle \
-startmatrices startmatrix startmaxaligned startmdformula startmidaligned \
-startmiddlealigned startmiddlemakeup startmixedcolumns startmode startmodeset \
-startmodule startmoduletestsection startmpformula startnamedsection startnamedsubformulas \
-startnarrow startnarrower startnegative startnicelyfilledbox startnointerference \
-startnotallmodes startnotext startnotmode startoperatortext startopposite \
-startoutputstream startoverlay startoverprint startpacked startpagecomment \
-startpagefigure startpagegrid startpagegridspan startpagelayout startpagemakeup \
-startpar startparagraph startparagraphs startparagraphscell startparbuilder \
-startpart startpath startplacechemical startplacefigure startplacefloat \
-startplaceformula startplacegraphic startplaceintermezzo startplacelegend startplacepairedbox \
-startplacetable startpositioning startpositionoverlay startpositive startpostponing \
-startprefixtext startprocessassignmentcommand startprocessassignmentlist startprocesscommacommand startprocesscommalist \
-startproduct startproject startprotect startprotectedcolors startpublication \
-startpunctuation startquotation startquote startrandomized startrandomseed \
-startrawsetups startreadingfile startreferenceprefix startregime startregister \
-startreusableMPgraphic startrightaligned startscript startsdformula startsection \
-startsectionblock startsectionblockenvironment startsectionlevel startsetups startshapebox \
-startshift startsidebar startsimplecolumns startspecialitem startspeech \
-startspformula startsplitformula startspread startstandardmakeup startstartstop \
-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 starttitle starttokens starttransparent starttypescript \
-starttypescriptcollection starttyping startuniqueMPgraphic startuniqueMPpagegraphic startunittext \
-startunpacked startusableMPgraphic startuseMPgraphic startusemathstyleparameter startusingbtxspecification \
-startvbox startvboxregister startvboxtohbox startvboxtohboxseparator startviewerlayer \
-startvtop startvtopregister startxcell startxcellgroup 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 stopTABLEnext stopTC \
-stopTD stopTDs stopTEX stopTEXpage stopTH \
-stopTN stopTR stopTRs stopTX stopTY \
-stopXML stopalign stopalignment stopallmodes stopappendices \
-stoparrangedpages 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 \
-stopcolumnspan 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 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 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 stopmathalignment \
-stopmathcases stopmathlabeltext stopmathmatrix stopmathmode stopmathstyle \
-stopmatrices stopmatrix stopmaxaligned stopmdformula stopmidaligned \
-stopmiddlealigned stopmiddlemakeup stopmixedcolumns stopmode stopmodeset \
-stopmodule stopmoduletestsection stopmpformula stopnamedsection stopnamedsubformulas \
-stopnarrow stopnarrower stopnegative stopnicelyfilledbox stopnointerference \
-stopnotallmodes stopnotext stopnotmode stopoperatortext stopopposite \
-stopoutputstream stopoverlay stopoverprint stoppacked stoppagecomment \
-stoppagefigure stoppagegrid stoppagegridspan stoppagelayout stoppagemakeup \
-stoppar stopparagraph stopparagraphs stopparagraphscell stopparbuilder \
-stoppart stoppath stopplacechemical stopplacefigure stopplacefloat \
-stopplaceformula stopplacegraphic stopplaceintermezzo stopplacelegend stopplacepairedbox \
-stopplacetable stoppositioning stoppositionoverlay stoppositive stoppostponing \
-stopprefixtext stopprocessassignmentcommand stopprocessassignmentlist stopprocesscommacommand stopprocesscommalist \
-stopproduct stopproject stopprotect stopprotectedcolors stoppublication \
-stoppunctuation stopquotation stopquote stoprandomized stoprandomseed \
-stoprawsetups stopreadingfile stopreferenceprefix stopregime stopregister \
-stopreusableMPgraphic stoprightaligned stopscript stopsdformula stopsection \
-stopsectionblock stopsectionblockenvironment stopsectionlevel stopsetups stopshapebox \
-stopshift stopsidebar stopsimplecolumns stopspecialitem stopspeech \
-stopspformula stopsplitformula stopspread stopstandardmakeup stopstartstop \
-stopstaticMPfigure stopstaticMPgraphic stopstrictinspectnextcharacter stopstructurepageregister 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 stoptitle stoptokens stoptransparent stoptypescript \
-stoptypescriptcollection stoptyping stopuniqueMPgraphic stopuniqueMPpagegraphic stopunittext \
-stopunpacked stopusableMPgraphic stopuseMPgraphic stopusemathstyleparameter stopusingbtxspecification \
-stopvbox stopvboxregister stopvboxtohbox stopvboxtohboxseparator stopviewerlayer \
-stopvtop stopvtopregister stopxcell stopxcellgroup 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 \
-textounce textpercent textperiod textplus textpm \
-textreference textring textrule textslash textsterling \
-texttilde textunderscore textvisiblespace textyen thai \
-thainumerals thefirstcharacter thenormalizedbodyfontsize 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 \
-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 typesetfile uacute ubreve ucaron \
-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 underbrace underbracket underdash \
-underdashes underdot underdots underleftarrow underparent \
-underrandom underrandoms underrightarrow underset understrike \
-understrikes undoassign unexpandeddocumentvariable unframed unhhbox \
-unihex uniqueMPgraphic uniqueMPpagegraphic unit unitlanguage \
-unitshigh unitslow unittext unknown unprotected \
-unregisterhyphenationpattern unspaceafter unspaceargument unspaced unspacestring \
-untexargument untexcommand uogonek upand uparrow \
-updasharrow updownarrow updownarrowbar updownarrows upharpoonleft \
-upharpoonright uplus uppercased uppercasestring 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 usegridparameter useindentingparameter useindentnextparameter useinterlinespaceparameter \
-uselanguageparameter useluamodule usemathstyleparameter usemodule useproduct \
-useprofileparameter useproject usereferenceparameter userpagenumber usesetupsparameter \
-usestaticMPfigure usesubpath usesymbols usetexmodule usetypescript \
-usetypescriptfile useurl usezipfile utfchar utflower \
-utfupper utilde utilityregisterlength vDash 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 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 xmldirectives \
-xmldirectivesafter xmldirectivesbefore xmldisplayverbatim xmldoif xmldoifelse \
-xmldoifelseempty xmldoifelseselfempty xmldoifelsetext xmldoifelsevalue xmldoifnot \
-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 \
-ymacron ytilde zacute zcaron zdotaccent \
-zerowidthnobreakspace zerowidthspace zeta zhook zstroke \
-zwj zwnj
+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 elapsedtime eleftarrowfill eleftharpoondownfill \
+eleftharpoonupfill eleftrightarrowfill ell em emacron \
+emdash emphasisboldface emphasistypeface emptylines emptyset \
+emquad emspace 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 \
+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 filterfromnext filterfromvalue filterpages \
+filterreference findtwopassdata finishregisterentry firstcharacter firstcounter \
+firstcountervalue 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 forgetparameters forgetragged formula \
+formulanumber foundbox fourfifths fourperemspace fourthoffivearguments \
+fourthoffourarguments fourthofsixarguments frac framed frameddimension \
+framedparameter framedtext freezedimenmacro freezemeasure 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 getdayoftheweek getdayspermonth getdefinedbuffer \
+getdocumentargument getdocumentargumentdefault getdocumentfilename getdummyparameters getemptyparameters \
+geteparameters getexpandedparameters getfiguredimensions getfirstcharacter getfirsttwopassdata \
+getfromcommacommand getfromcommalist getfromtwopassdata getglyphdirect getglyphstyled \
+getgparameters getlasttwopassdata getlocalfloat getlocalfloats getmarking \
+getmessage getnamedglyphdirect getnamedglyphstyled getnamedtwopassdatalist getnaturaldimensions \
+getnoflines getobject getobjectdimensions getpaletsize getparameters \
+getprivatechar getprivateslot getrandomcount getrandomdimen getrandomfloat \
+getrandomnumber getrandomseed getraweparameters getrawgparameters getrawnoflines \
+getrawparameters getrawxparameters getreference getreferenceentry getroundednoflines \
+gets getsubstring gettwopassdata gettwopassdatalist 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 greekchi greekdasia \
+greekdasiaperispomeni greekdasiatonos 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 greekpsilitonos 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 heightanddepthofstring \
+heightofstring heightspanningtext helptext hglue hiddenbar \
+hiddencitation hiddencite hideblocks high highlight \
+highordinalstr hilo himilo hl hookleftarrow \
+hookrightarrow horizontalgrowingbar horizontalpositionbar 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 ifassignment iff \
+ifinobject ifinoutputstream ifparameters iftrialtypesetting ignoreimplicitspaces \
+ignorevalue igrave ihook iiiint iiiintop \
+iiint iiintop iint iintop iinvertedbreve \
+ijligature imacron imaginaryi imaginaryj imath \
+immediatesavetwopassdata impliedby implies imply in \
+includemenu 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 \
+installactionhandler installactivecharacter installanddefineactivecharacter installattributestack installautocommandhandler \
+installautosetuphandler installbasicautosetuphandler installbasicparameterhandler installbottomframerenderer installcommandhandler \
+installcorenamespace installdefinehandler installdefinitionset installdefinitionsetmember installdirectcommandhandler \
+installdirectparameterhandler installdirectparametersethandler installdirectsetuphandler installdirectstyleandcolorhandler installframedautocommandhandler \
+installframedcommandhandler installlanguage installleftframerenderer installnamespace installoutputroutine \
+installpagearrangement installparameterhandler installparameterhashhandler installparametersethandler installparentinjector \
+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 \
+intop invisibletimes invokepageheandler iogonek iota \
+istltdir istrtdir 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 \
+lastpredefinedsymbol lastrealpage lastrealpagenumber lastsubcountervalue lastsubpage \
+lastsubpagenumber lasttwodigits lastuserpage lastuserpagenumber lateluacode \
+latin layeredtext layerheight layerwidth lazysavetaggedtwopassdata \
+lazysavetwopassdata lbar lbox lbrace lbracket \
+lcaron lceil 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 linefeed linenote linespanningtext \
+linethickness linterval listcitation listcite listlength \
+listnamespaces ljligature ll llangle llap \
+llbracket llcorner lll llless 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 lowerleftdoubleninequote lowerleftsingleninequote lowerrightdoubleninequote lowerrightsingleninequote \
+lozenge lparent lrcorner lrointerval lrtbbox \
+lstroke lt ltimes ltop luaTeX \
+luacode luaconditional luaenvironment luaexpanded luaexpr \
+luafunction luajitTeX luamajorversion luaminorversion luaparameterset \
+luasetup luaversion lvert m mLeftarrow \
+mLeftrightarrow mRightarrow mainlanguage makecharacteractive makerawcommalist \
+makestrutofbox maltese mapfontsize mapsdown mapsfrom \
+mapsto mapsup margindata margintext markcontent \
+marking markinjector markpage 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 metaTeX 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 naturalvbox naturalvcenter \
+naturalvpack naturalvtop naturalwd ncaron ncommaaccent \
+ncong ncurl ndivides ne nearrow \
+neg negatecolorbox negated negativesign negthinspace \
+neng neq nequiv neswarrow newattribute \
+newcatcodetable newcounter newevery newfrenchspacing 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 nocitation \
+nocite nodetostring noffigurepages noflines noflocalfloats \
+noheaderandfooterlines noheightstrut noindentation noitem nonfrenchspacing \
+nonmathematics 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 \
+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 overbarunderbar overbrace overbraceunderbrace \
+overbracket overbracketunderbracket overlaybutton overlaycolor overlaydepth \
+overlayfigure overlayheight overlaylinecolor overlaylinewidth overlayoffset \
+overlayrollbutton overlaywidth overleftarrow overloaderror overparent \
+overparentunderparent overrightarrow overset overstrike overstrikes \
+owns page pagearea pagebreak pagefigure \
+pagegridspanwidth pageinjection pagenumber pagereference pagestaterealpage \
+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 placefloatwithsetups placefootnotes \
+placeformula placeframed placegraphic placeheadnumber placeheadtext \
+placehelp 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 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 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 referenceprefix referring \
+registerattachment registerctxluafile registered registerexternalfigure registerfontclass \
+registerhyphenationexception registerhyphenationpattern registermenubuttons registersort registersynonym \
+registerunit regular relatemarking relateparameterhandlers relaxvalueifundefined \
+relbar remainingcharacters remark removebottomthings removedepth \
+removefromcommalist removelastskip removelastspace removemarkedcontent removepunctuation \
+removesubstring removetoks removeunwantedspaces replacefeature replaceincommalist \
+replaceword rescan rescanwithsetup resetMPdrawing resetMPenvironment \
+resetMPinstance resetallattributes resetandaddfeature resetbar resetboxesincache \
+resetbreakpoints resetbuffer resetcharacteralign resetcharacterkerning resetcharacterspacing \
+resetcharacterstripping resetcollector resetcounter resetdigitsmanipulation resetdirection \
+resetfeature resetflag resetfontcolorsheme resetfontfallback resetfontsolution \
+resethyphenationfeatures resetinjector resetinteractionmenu resetitaliccorrection resetlayer \
+resetlocalfloats resetmarker resetmarking resetmode resetpagenumber \
+resetparallel resetpath resetpenalties resetprofile resetrecurselevel \
+resetreference resetreplacement resetscript resetsetups resetshownsynonyms \
+resetsubpagenumber resetsymbolset resetsystemmode resettimer resettrackers \
+resettrialtypesetting resetusedsortings resetusedsynonyms resetuserpagenumber resetvalue \
+resetvisualizers reshapebox resolvedglyphdirect resolvedglyphstyled restartcounter \
+restorebox restorecatcodes restorecounter restorecurrentattributes restoreendofline \
+restoreglobalbodyfont restriction reusableMPgraphic reuseMPgraphic reuserandomseed \
+reverseddoubleprime reversedprime reversedtripleprime 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 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 \
+rtop ruledhbox ruledhpack ruledmbox ruledtopv \
+ruledtpack ruledvbox ruledvpack ruledvtop runMPbuffer \
+runninghbox 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 setbar setbigbodyfont setboxllx setboxlly \
+setbreakpoints setcapstrut setcatcodetable setcharacteralign setcharactercasing \
+setcharactercleaning setcharacterkerning setcharacterspacing setcharacterstripping setcharstrut \
+setcollector setcolormodell setcounter setcounterown setcurrentfontclass \
+setdataset setdefaultpenalties setdigitsmanipulation setdirection setdocumentargument \
+setdocumentargumentdefault setdocumentfilename setdummyparameter setelementexporttag setemeasure \
+setevalue setevariable setevariables setfirstline setflag \
+setfont setfontcolorsheme setfontfeature setfontsolution setfontstrut \
+setgmeasure setgvalue setgvariable setgvariables sethboxregister \
+sethyphenatedurlafter sethyphenatedurlbefore sethyphenatedurlnormal sethyphenationfeatures setinitial \
+setinjector setinteraction setinterfacecommand setinterfaceconstant setinterfaceelement \
+setinterfacemessage setinterfacevariable setinternalrendering setitaliccorrection setlayer \
+setlayerframed setlayertext setlinefiller setlocalhsize setmainbodyfont \
+setmainparbuilder setmarker setmarking setmathstyle setmeasure \
+setmessagetext setminus setmode setnostrut setnote \
+setnotetext setobject setoldstyle setpagegrid setpagereference \
+setpagestate setpagestaterealpageno setpenalties setpercentdimen setposition \
+setpositionbox setpositiondata setpositiondataplus setpositiononly setpositionplus \
+setpositionstrut setprofile setrandomseed setreference setreferencedobject \
+setregisterentry setreplacement setrigidcolumnbalance setrigidcolumnhsize setscript \
+setsectionblock setsimplecolumnhsize setsmallbodyfont setsmallcaps setstackbox \
+setstructurepageregister setstrut setsuperiors setsystemmode settabular \
+settaggedmetadata settextcontent settightobject settightreferencedobject settightunreferencedobject \
+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 setupbookmark setupbottom setupbottomtexts setupbtx \
+setupbtxdataset setupbtxlabeltext setupbtxlist setupbtxregister setupbtxrendering \
+setupbuffer setupbutton setupcapitals setupcaption setupcaptions \
+setupcharacterkerning setupcharacterspacing setupchemical setupchemicalframed setupclipping \
+setupcollector setupcolor setupcolors setupcolumns setupcolumnspan \
+setupcombination setupcombinedlist setupcomment setupcontent setupcounter \
+setupdataset setupdelimitedtext setupdescription setupdirections setupdocument \
+setupeffect setupenumeration setupenumerations setupenv setupexport \
+setupexternalfigure setupexternalsoundtracks setupfield setupfieldbody setupfieldcategory \
+setupfieldcontentframed setupfieldlabelframed setupfields setupfieldtotalframed setupfiller \
+setupfillinlines setupfillinrules setupfirstline setupfittingpage setupfloat \
+setupfloatcaption setupfloats setupfloatsplitting setupfontexpansion setupfontprotrusion \
+setupfonts setupfontsolution setupfooter setupfootertexts 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 setupnarrower setupnotation \
+setupnotations setupnote setupnotes setupoffset setupoffsetbox \
+setupoperatortext setupoppositeplacing setupoutputroutine setuppagechecker setuppagecomment \
+setuppagegrid setuppagegridarea setuppagegridareatext setuppagegridlines setuppagegridspan \
+setuppagegridstart setuppageinjection setuppageinjectionalternative setuppagenumber setuppagenumbering \
+setuppageshift setuppagestate setuppagetransitions setuppairedbox setuppalet \
+setuppaper setuppapersize setupparagraph setupparagraphintro setupparagraphnumbering \
+setupparagraphs setupparallel setupperiods setupplacement setuppositionbar \
+setuppositioning setupprefixtext setupprocessor setupprofile setupprograms \
+setupquotation setupquote setuprealpagenumber setupreferenceformat setupreferenceprefix \
+setupreferencestructureprefix setupreferencing setupregister setupregisters setuprenderingwindow \
+setuprotate setups setupscale setupscript setupscripts \
+setupsectionblock setupselector setupshift setupsidebar setupsorting \
+setupspacing setupspellchecking setupstartstop setupstretched setupstruts \
+setupstyle setupsubformula setupsubformulas setupsubpagenumber setupsuffixtext \
+setupsymbolset setupsynctex setupsynonyms setuptables setuptabulate \
+setuptabulation setuptagging setuptaglabeltext setuptext setuptextbackground \
+setuptextflow setuptextrules setuptexttexts setupthinrules setuptolerance \
+setuptooltip setuptop setuptoptexts setuptype setuptyping \
+setupunit setupunittext setupurl 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 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 showfontitalics showfontkerns showfontparameters \
+showfontstrip showfontstyle showframe showglyphs showgrid \
+showgridsnapping showhelp showhyphenationtrace showhyphens showinjector \
+showjustification showkerning showlayout showlayoutcomponents showligature \
+showligatures showlogcategories showmakeup showmargins showmessage \
+showminimalbaseline shownextbox showotfcomposition showpalet showparentchain \
+showprint showsetups showsetupsdefinition showstruts showsymbolset \
+showtimer showtokens showtrackers showvalue showvariable \
+showwarning sigma 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 \
+smaller smallitalicbold smallnormal smallskip smallslanted \
+smallslantedbold smalltype smash smashbox smashboxed \
+smashedhbox smashedvbox smile snaptogrid softhyphen \
+solidus someheadnumber somekindoftab someline somelocalfloat \
+somenamedheadnumber someplace somewhere space 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 star stareq startJScode startJSpreamble \
+startLUA startMP startMPclip startMPcode startMPdefinitions \
+startMPdrawing startMPenvironment startMPextensions startMPinclusions startMPinitializations \
+startMPpage startMPpositiongraphic startMPpositionmethod startMPrun startPARSEDXML \
+startTABLE startTABLEbody startTABLEfoot startTABLEhead startTABLEnext \
+startTC startTD startTDs startTEX startTEXpage \
+startTH startTN startTR startTRs startTX \
+startTY startXML startalign startalignment startallmodes \
+startappendices startarrangedpages 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 startcolumnspan 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 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 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 \
+startmathalignment startmathcases startmathlabeltext startmathmatrix startmathmode \
+startmathstyle startmatrices startmatrix startmaxaligned startmdformula \
+startmidaligned startmiddlealigned startmiddlemakeup startmixedcolumns startmode \
+startmodeset startmodule startmoduletestsection startmpformula startnamedsection \
+startnamedsubformulas startnarrow startnarrower startnegative startnicelyfilledbox \
+startnointerference startnotallmodes startnotext startnotmode startoperatortext \
+startopposite startoutputstream startoverlay startoverprint startpacked \
+startpagecomment startpagefigure startpagegrid startpagegridspan startpagelayout \
+startpagemakeup startpar startparagraph startparagraphs startparagraphscell \
+startparbuilder startpart startpath startplacechemical startplacefigure \
+startplacefloat startplaceformula startplacegraphic startplaceintermezzo startplacelegend \
+startplacepairedbox startplacetable startpositioning startpositionoverlay startpositive \
+startpostponing startprefixtext startprocessassignmentcommand startprocessassignmentlist startprocesscommacommand \
+startprocesscommalist startproduct startproject startprotect startprotectedcolors \
+startpublication startpunctuation startquotation startquote startrandomized \
+startrandomseed startrawsetups startreadingfile startreferenceprefix startregime \
+startregister startreusableMPgraphic startrightaligned startscript startsdformula \
+startsection startsectionblock startsectionblockenvironment startsectionlevel startsetups \
+startshapebox startshift startsidebar startsimplecolumns startspecialitem \
+startspeech startspformula startsplitformula startspread startstandardmakeup \
+startstartstop 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 starttitle starttokens starttransparent \
+starttypescript starttypescriptcollection starttyping startuniqueMPgraphic startuniqueMPpagegraphic \
+startunittext startunpacked startusableMPgraphic startuseMPgraphic startusemathstyleparameter \
+startusingbtxspecification startvbox startvboxregister startvboxtohbox startvboxtohboxseparator \
+startviewerlayer startvtop startvtopregister startxcell startxcellgroup \
+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 stopTABLEnext \
+stopTC stopTD stopTDs stopTEX stopTEXpage \
+stopTH stopTN stopTR stopTRs stopTX \
+stopTY stopXML stopalign stopalignment stopallmodes \
+stopappendices stoparrangedpages 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 stopcolumnspan 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 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 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 \
+stopmathalignment stopmathcases stopmathlabeltext stopmathmatrix stopmathmode \
+stopmathstyle stopmatrices stopmatrix stopmaxaligned stopmdformula \
+stopmidaligned stopmiddlealigned stopmiddlemakeup stopmixedcolumns stopmode \
+stopmodeset stopmodule stopmoduletestsection stopmpformula stopnamedsection \
+stopnamedsubformulas stopnarrow stopnarrower stopnegative stopnicelyfilledbox \
+stopnointerference stopnotallmodes stopnotext stopnotmode stopoperatortext \
+stopopposite stopoutputstream stopoverlay stopoverprint stoppacked \
+stoppagecomment stoppagefigure stoppagegrid stoppagegridspan stoppagelayout \
+stoppagemakeup stoppar stopparagraph stopparagraphs stopparagraphscell \
+stopparbuilder stoppart stoppath stopplacechemical stopplacefigure \
+stopplacefloat stopplaceformula stopplacegraphic stopplaceintermezzo stopplacelegend \
+stopplacepairedbox stopplacetable stoppositioning stoppositionoverlay stoppositive \
+stoppostponing stopprefixtext stopprocessassignmentcommand stopprocessassignmentlist stopprocesscommacommand \
+stopprocesscommalist stopproduct stopproject stopprotect stopprotectedcolors \
+stoppublication stoppunctuation stopquotation stopquote stoprandomized \
+stoprandomseed stoprawsetups stopreadingfile stopreferenceprefix stopregime \
+stopregister stopreusableMPgraphic stoprightaligned stopscript stopsdformula \
+stopsection stopsectionblock stopsectionblockenvironment stopsectionlevel stopsetups \
+stopshapebox stopshift stopsidebar stopsimplecolumns stopspecialitem \
+stopspeech stopspformula stopsplitformula stopspread stopstandardmakeup \
+stopstartstop stopstaticMPfigure stopstaticMPgraphic stopstrictinspectnextcharacter stopstructurepageregister \
+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 stoptitle stoptokens stoptransparent \
+stoptypescript stoptypescriptcollection stoptyping stopuniqueMPgraphic stopuniqueMPpagegraphic \
+stopunittext stopunpacked stopusableMPgraphic stopuseMPgraphic stopusemathstyleparameter \
+stopusingbtxspecification stopvbox stopvboxregister stopvboxtohbox stopvboxtohboxseparator \
+stopviewerlayer stopvtop stopvtopregister stopxcell stopxcellgroup \
+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 textounce textpercent textperiod textplus \
+textpm textreference textring textrule textslash \
+textsterling texttilde textunderscore textvisiblespace textyen \
+thai thainumerals thefirstcharacter thenormalizedbodyfontsize 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 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 typesetfile uacute ubreve \
+ucaron 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 underbrace underbracket \
+underdash underdashes underdot underdots underleftarrow \
+underparent underrandom underrandoms underrightarrow underset \
+understrike understrikes undoassign unexpandeddocumentvariable unframed \
+unhhbox unihex uniqueMPgraphic uniqueMPpagegraphic unit \
+unitlanguage unitshigh unitslow unittext unknown \
+unprotected unregisterhyphenationpattern unspaceafter unspaceargument unspaced \
+unspacestring untexargument untexcommand uogonek upand \
+uparrow updasharrow updownarrow updownarrowbar updownarrows \
+upharpoonleft upharpoonright uplus uppercased uppercasestring \
+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 usegridparameter useindentingparameter useindentnextparameter \
+useinterlinespaceparameter uselanguageparameter useluamodule usemathstyleparameter usemodule \
+useproduct useprofileparameter useproject usereferenceparameter userpagenumber \
+usesetupsparameter usestaticMPfigure usesubpath usesymbols usetexmodule \
+usetypescript usetypescriptfile useurl usezipfile utfchar \
+utflower utfupper utilde utilityregisterlength vDash \
+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 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 \
+xmldirectives xmldirectivesafter xmldirectivesbefore xmldisplayverbatim xmldoif \
+xmldoifelse xmldoifelseempty xmldoifelseselfempty xmldoifelsetext xmldoifelsevalue \
+xmldoifnot 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 ymacron ytilde zacute zcaron \
+zdotaccent zerowidthnobreakspace zerowidthspace zeta zhook \
+zstroke zwj zwnj
keywordclass.context.cs=\
Cisla Kap MESIC Rimskecislice \
diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties
index ece23c77b..05ddc71fd 100644
--- a/context/data/scite/context/scite-context-data-tex.properties
+++ b/context/data/scite/context/scite-context-data-tex.properties
@@ -59,23 +59,23 @@ ifprimitive ignoreligaturesinfont initcatcodetable insertht lastnamedcs \
lastsavedboxresourceindex lastsavedimageresourceindex lastsavedimageresourcepages lastxpos lastypos \
latelua leftghost leftmarginkern letcharcode letterspacefont \
linedir linedirection localbrokenpenalty localinterlinepenalty localleftbox \
-localrightbox lpcode luaescapestring luafunction luatexbanner \
-luatexrevision luatexversion mathdelimitersmode mathdir mathdirection \
-mathdisplayskipmode matheqnogapstep mathitalicsmode mathnolimitsmode mathoption \
-mathpenaltiesmode mathrulesfam mathrulesmode mathscriptsmode mathscriptboxmode \
-mathstyle mathsurroundmode mathsurroundskip nohrule nokerns \
-noligs normaldeviate nospaces novrule outputbox \
-outputmode pagebottomoffset pagedir pagedirection pageheight \
-pageleftoffset pagerightoffset pagetopoffset pagewidth pardir \
-pardirection pdfextension pdffeedback pdfvariable postexhyphenchar \
-posthyphenchar prebinoppenalty predisplaygapfactor preexhyphenchar prehyphenchar \
-prerelpenalty primitive protrudechars pxdimen quitvmode \
-randomseed rightghost rightmarginkern rpcode saveboxresource \
-savecatcodetable saveimageresource savepos scantextokens setfontid \
-setrandomseed shapemode suppressfontnotfounderror suppressifcsnameerror suppresslongerror \
-suppressmathparerror suppressoutererror suppressprimitiveerror synctex tagcode \
-textdir textdirection toksapp tokspre tracingfonts \
-uniformdeviate useboxresource useimageresource
+localrightbox lpcode luaescapestring luafunction luafunctioncall \
+luatexbanner luatexrevision luatexversion mathdelimitersmode mathdir \
+mathdirection mathdisplayskipmode matheqnogapstep mathitalicsmode mathnolimitsmode \
+mathoption mathpenaltiesmode mathrulesfam mathrulesmode mathscriptsmode \
+mathscriptboxmode mathstyle mathsurroundmode mathsurroundskip nohrule \
+nokerns noligs normaldeviate nospaces novrule \
+outputbox outputmode pagebottomoffset pagedir pagedirection \
+pageheight pageleftoffset pagerightoffset pagetopoffset pagewidth \
+pardir pardirection pdfextension pdffeedback pdfvariable \
+postexhyphenchar posthyphenchar prebinoppenalty predisplaygapfactor preexhyphenchar \
+prehyphenchar prerelpenalty primitive protrudechars pxdimen \
+quitvmode randomseed rightghost rightmarginkern rpcode \
+saveboxresource savecatcodetable saveimageresource savepos scantextokens \
+setfontid setrandomseed shapemode suppressfontnotfounderror suppressifcsnameerror \
+suppresslongerror suppressmathparerror suppressoutererror suppressprimitiveerror synctex \
+tagcode textdir textdirection toksapp tokspre \
+tracingfonts uniformdeviate useboxresource useimageresource
keywordclass.tex.omega=\
Omegaminorversion Omegarevision Omegaversion
diff --git a/context/data/textadept/context/data/scite-context-data-context.lua b/context/data/textadept/context/data/scite-context-data-context.lua
index 3ecca045b..15ce97796 100644
--- a/context/data/textadept/context/data/scite-context-data-context.lua
+++ b/context/data/textadept/context/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", "plussixteen", "plushundred", "plustwohundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "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", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "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", "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" },
- ["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", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "strippedcsname", "checkedstrippedcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "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", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "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", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "normalbaselineskip", "normallineskip", "normallineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "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", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "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", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "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", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "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", "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", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "uncramped", "cramped", "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", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "cldprocessfile", "cldloadfile", "cldcontext", "cldcommand", "carryoverpar", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "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", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "frule", "compoundhyphenpenalty", "start", "stop" },
+ ["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", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "strippedcsname", "checkedstrippedcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "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", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "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", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "normalbaselineskip", "normallineskip", "normallineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "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", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "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", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "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", "protected", "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", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "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", "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", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "uncramped", "cramped", "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", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installctxfunctioncall", "installprotectedctxfunction", "installprotectedctxfunctioncall", "installctxscanner", "installctxscannercall", "resetctxscanner", "installprotectedctxscanner", "installprotectedctxscannercall", "cldprocessfile", "cldloadfile", "cldcontext", "cldcommand", "carryoverpar", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "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", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "frule", "compoundhyphenpenalty", "start", "stop" },
} \ No newline at end of file
diff --git a/context/data/textadept/context/data/scite-context-data-interfaces.lua b/context/data/textadept/context/data/scite-context-data-interfaces.lua
index 943d6bcc1..14036ae5d 100644
--- a/context/data/textadept/context/data/scite-context-data-interfaces.lua
+++ b/context/data/textadept/context/data/scite-context-data-interfaces.lua
@@ -1,5 +1,5 @@
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", "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", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKVI", "MKXI", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPVI", "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", "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", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addfontpath", "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", "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", "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", "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", "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", "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", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "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", "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", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "crightoverleftarrow", "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", "dayoftheweek", "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", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "defineeffect", "defineenumeration", "defineexpandable", "defineexternalfigure", "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", "definehypenationfeatures", "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", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagegrid", "definepagegridarea", "definepagegridspan", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "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", "definetabulation", "definetext", "definetextbackground", "definetextflow", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "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", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpagestate", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontpresent", "doifelsefontsynonym", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "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", "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", "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", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "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", "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", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "dotfskip", "dotlessI", "dotlessJ", "dotlessi", "dotlessj", "dotlessjstroke", "dotminus", "dotoks", "dotplus", "dotripleargument", "dotripleargumentwithset", "dotripleempty", "dotripleemptywithset", "dotriplegroupempty", "dots", "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", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "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", "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", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "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", "forgetparameters", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "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", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettwopassdata", "gettwopassdatalist", "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", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiatonos", "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", "greekpsilitonos", "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", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "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", "ifassignment", "iff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignorevalue", "igrave", "ihook", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "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", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installlanguage", "installleftframerenderer", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "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", "intop", "invisibletimes", "invokepageheandler", "iogonek", "iota", "istltdir", "istrtdir", "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", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "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", "linefeed", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "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", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "marking", "markinjector", "markpage", "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", "metaTeX", "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", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "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", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "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", "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", "overbarunderbar", "overbrace", "overbraceunderbrace", "overbracket", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overloaderror", "overparent", "overparentunderparent", "overrightarrow", "overset", "overstrike", "overstrikes", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pagegridspanwidth", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "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", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "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", "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", "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", "referenceprefix", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacement", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "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", "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", "rtop", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "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", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setcurrentfontclass", "setdataset", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setfirstline", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagegrid", "setpagereference", "setpagestate", "setpagestaterealpageno", "setpenalties", "setpercentdimen", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacement", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsectionblock", "setsimplecolumnhsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settextcontent", "settightobject", "settightreferencedobject", "settightunreferencedobject", "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", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnspan", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexport", "setupexternalfigure", "setupexternalsoundtracks", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatcaption", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "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", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setupoutputroutine", "setuppagechecker", "setuppagecomment", "setuppagegrid", "setuppagegridarea", "setuppagegridareatext", "setuppagegridlines", "setuppagegridspan", "setuppagegridstart", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiods", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstruts", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbolset", "setupsynctex", "setupsynonyms", "setuptables", "setuptabulate", "setuptabulation", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "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", "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", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showprint", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "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", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "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", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "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", "startcolumnspan", "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", "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", "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", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecomment", "startpagefigure", "startpagegrid", "startpagegridspan", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startprefixtext", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startspread", "startstandardmakeup", "startstartstop", "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", "starttitle", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "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", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "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", "stopcolumnspan", "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", "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", "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", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecomment", "stoppagefigure", "stoppagegrid", "stoppagegridspan", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopregister", "stopreusableMPgraphic", "stoprightaligned", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopspread", "stopstandardmakeup", "stopstartstop", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstructurepageregister", "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", "stoptitle", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "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", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thefirstcharacter", "thenormalizedbodyfontsize", "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", "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", "typesetfile", "uacute", "ubreve", "ucaron", "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", "underbrace", "underbracket", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underparent", "underrandom", "underrandoms", "underrightarrow", "underset", "understrike", "understrikes", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "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", "usegridparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "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", "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", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifelse", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "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", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "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", "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", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKVI", "MKXI", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPVI", "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", "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", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addfontpath", "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", "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", "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", "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", "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", "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", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "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", "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", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "crightoverleftarrow", "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", "dayoftheweek", "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", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "defineeffect", "defineenumeration", "defineexpandable", "defineexternalfigure", "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", "definehypenationfeatures", "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", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagegrid", "definepagegridarea", "definepagegridspan", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "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", "definetabulation", "definetext", "definetextbackground", "definetextflow", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "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", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpagestate", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontpresent", "doifelsefontsynonym", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "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", "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", "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", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "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", "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", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "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", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "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", "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", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "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", "forgetparameters", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "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", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettwopassdata", "gettwopassdatalist", "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", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiatonos", "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", "greekpsilitonos", "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", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "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", "ifassignment", "iff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignorevalue", "igrave", "ihook", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "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", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installlanguage", "installleftframerenderer", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "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", "intop", "invisibletimes", "invokepageheandler", "iogonek", "iota", "istltdir", "istrtdir", "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", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "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", "linefeed", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "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", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "marking", "markinjector", "markpage", "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", "metaTeX", "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", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "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", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "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", "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", "overbarunderbar", "overbrace", "overbraceunderbrace", "overbracket", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overloaderror", "overparent", "overparentunderparent", "overrightarrow", "overset", "overstrike", "overstrikes", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pagegridspanwidth", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "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", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "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", "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", "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", "referenceprefix", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacement", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "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", "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", "rtop", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "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", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setcurrentfontclass", "setdataset", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setfirstline", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagegrid", "setpagereference", "setpagestate", "setpagestaterealpageno", "setpenalties", "setpercentdimen", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacement", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsectionblock", "setsimplecolumnhsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settextcontent", "settightobject", "settightreferencedobject", "settightunreferencedobject", "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", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnspan", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexport", "setupexternalfigure", "setupexternalsoundtracks", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatcaption", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "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", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setupoutputroutine", "setuppagechecker", "setuppagecomment", "setuppagegrid", "setuppagegridarea", "setuppagegridareatext", "setuppagegridlines", "setuppagegridspan", "setuppagegridstart", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiods", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstruts", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbolset", "setupsynctex", "setupsynonyms", "setuptables", "setuptabulate", "setuptabulation", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "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", "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", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showprint", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "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", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "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", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "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", "startcolumnspan", "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", "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", "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", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecomment", "startpagefigure", "startpagegrid", "startpagegridspan", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startprefixtext", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startspread", "startstandardmakeup", "startstartstop", "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", "starttitle", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "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", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "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", "stopcolumnspan", "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", "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", "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", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecomment", "stoppagefigure", "stoppagegrid", "stoppagegridspan", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopregister", "stopreusableMPgraphic", "stoprightaligned", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopspread", "stopstandardmakeup", "stopstartstop", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstructurepageregister", "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", "stoptitle", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "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", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thefirstcharacter", "thenormalizedbodyfontsize", "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", "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", "typesetfile", "uacute", "ubreve", "ucaron", "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", "underbrace", "underbracket", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underparent", "underrandom", "underrandoms", "underrightarrow", "underset", "understrike", "understrikes", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "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", "usegridparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "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", "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", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifelse", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "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", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "zerowidthnobreakspace", "zerowidthspace", "zeta", "zhook", "zstroke", "zwj", "zwnj" },
["cs"]={ "Cisla", "Kap", "MESIC", "Rimskecislice", "SLOVA", "SLOVO", "Slova", "Slovo", "VSEDNIDEN", "Znak", "Znaky", "aktualnicislonadpisu", "aktualnidatum", "barevnalista", "barva", "cernalinka", "cernelinky", "cisla", "cislonadpisu", "cislorovnice", "cislostrany", "datum", "definuj", "definujakcent", "definujbarvu", "definujblok", "definujbloksekce", "definujbuffer", "definujfont", "definujformatodkazu", "definujhbox", "definujinterakcnimenu", "definujkombinovanyseznam", "definujkonverzi", "definujnadpis", "definujobrazeksymbol", "definujodkaz", "definujodstavce", "definujopis", "definujoramovani", "definujoramovanytext", "definujpaletu", "definujplvouciobjekt", "definujpodpole", "definujpole", "definujpopis", "definujpopisek", "definujprekryv", "definujprikaz", "definujprofil", "definujprogram", "definujprostredizakladnihofontu", "definujrejstrik", "definujsablonutabulky", "definujsekci", "definujseznam", "definujskupinubarev", "definujstartstop", "definujstyl", "definujstylfontu", "definujsymbol", "definujsynonumumfontu", "definujsynonyma", "definujtabelaci", "definujtext", "definujtrideni", "definujupravu", "definujvelikostpapiru", "definujvycet", "definujzakladnifont", "definujzasobnikpoli", "definujznaceni", "definujznak", "delkaseznamu", "externiobraz", "hlavnijazyk", "hodnotabarvy", "instalacejazyka", "interakcnilista", "interakcnitlacitka", "interaktivnimenu", "jazyk", "jdidolu", "jdina", "jdinabox", "jdinastranu", "klonujpole", "komponenta", "konvertujcislo", "kopirujpole", "korekcebilehomista", "matematika", "meritko", "mesic", "mezera", "mrizka", "nastavbarvu", "nastavbarvy", "nastavbilamista", "nastavblok", "nastavbloksekce", "nastavbuffer", "nastavcernelinky", "nastavcislonadpisu", "nastavcislostrany", "nastavcislovaniodstavcu", "nastavcislovaniradku", "nastavcislovanistran", "nastavcitaci", "nastavdeleniplvoucichobjektu", "nastavdelitko", "nastavdolnitexty", "nastavhorejsek", "nastavhornitexty", "nastavinterakci", "nastavinterakcnilistu", "nastavinterakcnimenu", "nastavinterakcniobrazovku", "nastavjazyk", "nastavkapitalky", "nastavkombinovanyseznam", "nastavkomentar", "nastavkomentarstrany", "nastavmarginalnilinky", "nastavmeziradkovoumezeru", "nastavnadpis", "nastavnadpisy", "nastavodkazovani", "nastavodsazovani", "nastavodstavce", "nastavopis", "nastavoramovanetexty", "nastavoramovani", "nastavorez", "nastavotoceni", "nastavpaletu", "nastavplvouciobjekt", "nastavplvouciobjekty", "nastavpodcislostrany", "nastavpole", "nastavpolozky", "nastavpopisek", "nastavpopisky", "nastavpozadi", "nastavprechodstrany", "nastavpreskok", "nastavprogramy", "nastavradkovani", "nastavradky", "nastavrejstrik", "nastavrovnice", "nastavsadusymbolu", "nastavseznam", "nastavsirkucary", "nastavsloupce", "nastavspodek", "nastavsynonyma", "nastavtabelaci", "nastavtabulky", "nastavtenkelinky", "nastavtext", "nastavtextovelinky", "nastavtexttexty", "nastavtextyupati", "nastavtextyzahlavi", "nastavtoleranci", "nastavtrideni", "nastavtype", "nastavumisteniprotejsku", "nastavumistovani", "nastavupati", "nastavupravu", "nastavurl", "nastavusporadani", "nastavvelikostpapiru", "nastavvsechnapole", "nastavvycty", "nastavvyplnovelinky", "nastavvyplnoveradky", "nastavvzhled", "nastavzahlavi", "nastavzakladnifont", "nastavzarovnani", "nastavznaceni", "nastavzuzeni", "nastrane", "nejakyradek", "nekde", "neznamo", "nivy", "nizky", "nokap", "obrazovka", "odkaz", "odkaznastranu", "odkaznatext", "odkazujici", "opis", "opissoubor", "oramovani", "oref", "orez", "otocit", "oznaceni", "pis", "plnezneni", "pole", "polozka", "polozky", "porovnejpaletu", "porovnejskupinubarev", "pozadi", "pozice", "poznamka", "pref", "prelozit", "prepninazakladnifont", "preskoc", "prizpusobivepole", "prizpusobvzhled", "produkt", "projekt", "prostredi", "resetznaceni", "rimskecislice", "rozdelplvouciobjekt", "roztazene", "schovejbloky", "sedabarva", "sloupec", "slovovpravo", "stanovcharakteristickuseznamu", "stanovcislonadpisu", "startbarva", "startinteraktivnimenu", "startjdina", "startkomponenta", "startmarginalnilinka", "startnadpis", "startoramovani", "startpolozka", "startpozadi", "startprodukt", "startprojekt", "startprostredi", "startpublikace", "startradek", "starttextovalinka", "startumistirovnici", "startzarovnanonastred", "startzarovnanovlevo", "startzarovnanovpravo", "startzhustene", "stopbarva", "stopinteraktivnimenu", "stopjdina", "stopkomponenta", "stopmarginalnilinka", "stopnadpis", "stoporamovani", "stoppolozka", "stoppozadi", "stopprodukt", "stopprojekt", "stopprostredi", "stoppublikace", "stopradek", "stoptextovalinka", "stopumistirovnici", "stopzarovnanonastred", "stopzarovnanovlevo", "stopzarovnanovpravo", "stopzhustene", "strana", "tecky", "tenkalinka", "tenkelinky", "textovalinka", "tlacitko", "tlacitkomenu", "tloustkacary", "tref", "tvrdamezera", "tvrdemezery", "ukazbarvu", "ukazmrizku", "ukaznastaveni", "ukazpaletu", "ukazpodpery", "ukazpostredizakladnihofontu", "ukazramecek", "ukazsadusymbolu", "ukazskupinubarev", "ukazupravu", "ukazvytisk", "ukazvzhled", "ukazzakladnifont", "umistikombinovanyseznam", "umistilokalnipoznamkypodcarou", "umistinadsebe", "umistinamrizku", "umistipodrovnici", "umistipoznamkypodcarou", "umistirejstrik", "umistirovnici", "umistiseznam", "umistivedlesebe", "umistizalozky", "urcicharakteristikurejstriku", "uzijJSscripts", "uzijURL", "uzijadresar", "uzijbloky", "uzijexternidokument", "uzijexterniobraz", "uzijexternizvuk", "uzijmodul", "uzijsymbol", "uzijurl", "verze", "vlasovalinka", "vradku", "vsedniden", "vyberbloky", "vyplnenytext", "vyplnovelinky", "vyplnovyradek", "vysoky", "zachovejbloky", "zadnamezera", "zadnehorniadolniradky", "zadnezahlaviaupati", "zalozka", "zapisdoseznamu", "zapismeziseznam", "zaramovani", "zarovnanonastred", "zarovnanovlevo", "zarovnanovpravo", "zasobnikpoli", "ziskejbuffer", "ziskejznaceni", "znaceni", "znak", "znaky", "zpracujbloky", "zrcadlit", "zref" },
["de"]={ "Buchstabe", "Buchstaben", "Kap", "MONAT", "Roemischezahlen", "WOCHENTAG", "WOERTER", "WORT", "Woerter", "Wort", "Ziffern", "amgitterausrichten", "aufseite", "ausfuelltext", "ausschnitt", "bearbeitebloecke", "behaltebloecke", "bei", "bemerkung", "benutzeverzeichnis", "beschriftung", "bestimmekopfnummer", "bestimmelistencharakeristika", "bestimmeregistercharakteristika", "bildschirm", "blanko", "buchstabe", "buchstaben", "datum", "defineschriftsynonym", "definiereabbsymbol", "definiereabsaetze", "definiereabschnitt", "definiereabschnittsblock", "definiereakzent", "definierebefehl", "definierebeschreibung", "definierebeschriftung", "definiereblock", "definierefarbe", "definierefarbengruppe", "definierefeld", "definierefeldstapel", "definierefliesstext", "definierefliesstextumgebung", "definieregleitobjekt", "definierehbox", "definiereinteraktionsmenue", "definierekonversion", "definierelabel", "definiereliste", "definieren", "definierenummerierung", "definiereoverlay", "definierepalette", "definierepapierformat", "definiereprofil", "definiereprogramme", "definierepuffer", "definierereferenz", "definierereferenzformat", "definiereregister", "definiereschrift", "definiereschriftstil", "definieresortieren", "definierestartstop", "definierestil", "definieresubfeld", "definieresymbol", "definieresynonyme", "definieretabellenvorlage", "definieretabulator", "definieretext", "definieretippen", "definiereueberschrift", "definiereumbruch", "definiereumrahmt", "definiereumrahmtertext", "definierezeichen", "definierezusammengestellteliste", "drehen", "duennelinie", "duennerumriss", "einezeile", "externeabbildung", "farbbalken", "farbe", "farbewert", "feld", "feldstapel", "festesspatium", "format", "formelnummer", "gefuelltesrechteck", "gefuelltezeile", "gestreckt", "gitter", "graufarbe", "haarlinie", "hauptsprache", "heutigesdatum", "heutigeskopfnummer", "hintergrund", "hoch", "holebeschriftung", "holepuffer", "imumriss", "installieresprache", "interaktionsbalken", "interaktionsknopfe", "interaktionsmenue", "inzeile", "irgendwo", "keinekopfundfusszeilen", "keinspatium", "keinzeilenobenundunten", "klonierefeld", "knopf", "komponente", "konvertierezahl", "kopfnummer", "kopierefeld", "korrigierezwischenraum", "liniendicke", "linksbuendig", "listenlaenge", "mathematik", "menueknopf", "monat", "nachunten", "nokap", "notiz", "passelayoutan", "passendfeld", "platzierebookmarks", "platziereformel", "platzierefussnoten", "platziereliste", "platzierelokalefussnoten", "platzierenebeneinander", "platziereregister", "platziereuntereinander", "platziereunterformel", "platzierezusammengestellteliste", "pos", "posten", "produkt", "programm", "projekt", "punkt", "rechteck", "rechtecke", "rechtsbuendig", "referenz", "referieren", "roemischezahlen", "ruecksetztenbeschriftung", "schreibezurliste", "schreibezwischenliste", "seite", "seitenreferenz", "seitenummer", "settext", "spalte", "spatium", "spiegeln", "sprache", "startfarbe", "starthintergrund", "startinteraktionsmenue", "startkleinerdurchschuss", "startkomponente", "startkopf", "startlinksbuendig", "startmarginallinie", "startplatziereformel", "startpos", "startprodukt", "startprojekt", "startpublikation", "startrechtsbuendig", "starttextlinie", "startumgebung", "startumrahmt", "startzeile", "startzentriert", "startzu", "stelleabsaetzeein", "stelleabsatznummerierungein", "stelleabschnittsblockein", "stelleanordnenein", "stelleaufzaehlungenein", "stelleausrichtungein", "stelleausschnittein", "stellebeschreibungein", "stellebeschriftungein", "stellebilderunterschriftein", "stellebildunterschriftein", "stellebindestrichein", "stelleblankoein", "stelleblockein", "stelledrehenein", "stelleduennerumrissein", "stelleeinziehenein", "stelleengerein", "stellefarbeein", "stellefarbenein", "stellefeldein", "stellefelderin", "stellefliesstextein", "stelleformelnein", "stellefusszeileein", "stellefusszeilentextein", "stellegefuelltesrechteckein", "stellegefuelltezeileein", "stellegegenueberplatzierenein", "stellegleitobjekteein", "stellegleitobjektein", "stellehintergruendeein", "stellehintergrundein", "stelleinteraktionein", "stelleinteraktionsbalkenein", "stelleinteraktionsbildschirmein", "stelleinteraktionsmenueein", "stellekommentarein", "stellekopfzahlein", "stellekopfzeileein", "stellekopfzeilentextein", "stellelayoutein", "stellelinienbreiteein", "stellelisteein", "stellemarginallinieein", "stellenobenein", "stellepaletteein", "stellepapierformatein", "stelleplatziegeteiltegleitobjekt", "stellepositionierenein", "stellepostenein", "stelleprogrammein", "stellepufferein", "stellerechteckein", "stellereferenzierenein", "stelleregisterein", "stelleseitenkommentarein", "stelleseitennummerein", "stelleseitennummeriernungein", "stelleseitenuebergangein", "stellesortierenein", "stellespaltenein", "stellespatiumein", "stellespracheein", "stellesymbolsetein", "stellesynonymein", "stelletabellenein", "stelletabulatorein", "stelletextein", "stelletextobenein", "stelletexttexteein", "stelletextumrissein", "stelletextuntenein", "stelletipein", "stelletippenein", "stelletoleranzein", "stelleueberschriftein", "stelleueberschriftenein", "stelleumbruchein", "stelleumrahmtein", "stelleumrahmtetexteein", "stelleuntenein", "stelleunterseitennummerein", "stelleurlein", "stelleversalienein", "stellezeilenabstandein", "stellezeilenein", "stellezeilennumerierungein", "stellezitierenein", "stellezusammengestelltelisteein", "stellezwischenraumein", "stopfarbe", "stophintergrund", "stopinteraktionsmenue", "stopkleinerdurchschuss", "stopkomponente", "stopkopf", "stoplinksbuendig", "stopmarginallinie", "stopplatziereformel", "stoppos", "stopprodukt", "stopprojekt", "stoppublikation", "stoprechtsbuendig", "stoptextlinie", "stopumgebung", "stopumrahmt", "stopzeile", "stopzentriert", "stopzu", "teilegleitobjekt", "textlinie", "textreferenz", "tief", "tiho", "tip", "tippedatei", "tippen", "tippepuffer", "ueber", "uebersetzten", "umgebung", "umrahmt", "unbekant", "verbergebloecke", "vergleichefarbengruppe", "vergleichepalette", "verwendeJSscript", "verwendeURL", "verwendebloecke", "verwendeexteresdokument", "verwendeexterneabbildung", "verwendeexternestonstueck", "verwendemodul", "verwendesymbole", "verwendeurl", "volleswort", "von", "waehlebloeckeaus", "wechselezumfliesstext", "wochentag", "wortrechts", "zeigedruck", "zeigeeinstellungen", "zeigefarbe", "zeigefarbengruppe", "zeigefliesstext", "zeigefliesstextumgebung", "zeigegitter", "zeigelayout", "zeigepalette", "zeigerahmen", "zeigestruts", "zeigeumbruch", "zentriert", "ziffern", "zu", "zurbox", "zurseite" },
["en"]={},
diff --git a/context/data/textadept/context/data/scite-context-data-tex.lua b/context/data/textadept/context/data/scite-context-data-tex.lua
index c0bce17d4..31cb6e4fb 100644
--- a/context/data/textadept/context/data/scite-context-data-tex.lua
+++ b/context/data/textadept/context/data/scite-context-data-tex.lua
@@ -1,7 +1,7 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "eTeXVersion", "eTeXminorversion", "eTeXrevision", "eTeXversion", "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", "readline", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "tracingscantokens", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Unosubscript", "Unosuperscript", "Uoverdelimiter", "Uradical", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "alignmark", "aligntab", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "bodydir", "bodydirection", "boxdir", "boxdirection", "breakafterdirmode", "catcodetable", "clearmarks", "copyfont", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "draftmode", "dviextension", "dvifeedback", "dvivariable", "efcode", "etoksapp", "etokspre", "expanded", "expandglyphsinfont", "explicitdiscretionary", "explicithyphenpenalty", "fontid", "formatname", "gleaders", "hjcode", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifincsname", "ifprimitive", "ignoreligaturesinfont", "initcatcodetable", "insertht", "lastnamedcs", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastxpos", "lastypos", "latelua", "leftghost", "leftmarginkern", "letcharcode", "letterspacefont", "linedir", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luaescapestring", "luafunction", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdir", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathitalicsmode", "mathnolimitsmode", "mathoption", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathscriptsmode", "mathscriptboxmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "nohrule", "nokerns", "noligs", "normaldeviate", "nospaces", "novrule", "outputbox", "outputmode", "pagebottomoffset", "pagedir", "pagedirection", "pageheight", "pageleftoffset", "pagerightoffset", "pagetopoffset", "pagewidth", "pardir", "pardirection", "pdfextension", "pdffeedback", "pdfvariable", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "primitive", "protrudechars", "pxdimen", "quitvmode", "randomseed", "rightghost", "rightmarginkern", "rpcode", "saveboxresource", "savecatcodetable", "saveimageresource", "savepos", "scantextokens", "setfontid", "setrandomseed", "shapemode", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressmathparerror", "suppressoutererror", "suppressprimitiveerror", "synctex", "tagcode", "textdir", "textdirection", "toksapp", "tokspre", "tracingfonts", "uniformdeviate", "useboxresource", "useimageresource" },
+ ["luatex"]={ "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Unosubscript", "Unosuperscript", "Uoverdelimiter", "Uradical", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "alignmark", "aligntab", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "bodydir", "bodydirection", "boxdir", "boxdirection", "breakafterdirmode", "catcodetable", "clearmarks", "copyfont", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "draftmode", "dviextension", "dvifeedback", "dvivariable", "efcode", "etoksapp", "etokspre", "expanded", "expandglyphsinfont", "explicitdiscretionary", "explicithyphenpenalty", "fontid", "formatname", "gleaders", "hjcode", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifincsname", "ifprimitive", "ignoreligaturesinfont", "initcatcodetable", "insertht", "lastnamedcs", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastxpos", "lastypos", "latelua", "leftghost", "leftmarginkern", "letcharcode", "letterspacefont", "linedir", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdir", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathitalicsmode", "mathnolimitsmode", "mathoption", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathscriptsmode", "mathscriptboxmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "nohrule", "nokerns", "noligs", "normaldeviate", "nospaces", "novrule", "outputbox", "outputmode", "pagebottomoffset", "pagedir", "pagedirection", "pageheight", "pageleftoffset", "pagerightoffset", "pagetopoffset", "pagewidth", "pardir", "pardirection", "pdfextension", "pdffeedback", "pdfvariable", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "primitive", "protrudechars", "pxdimen", "quitvmode", "randomseed", "rightghost", "rightmarginkern", "rpcode", "saveboxresource", "savecatcodetable", "saveimageresource", "savepos", "scantextokens", "setfontid", "setrandomseed", "shapemode", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressmathparerror", "suppressoutererror", "suppressprimitiveerror", "synctex", "tagcode", "textdir", "textdirection", "toksapp", "tokspre", "tracingfonts", "uniformdeviate", "useboxresource", "useimageresource" },
["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", "pdfmapfile", "pdfmapline", "pdfmajorversion", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "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"]={ " ", "-", "/", "Uleft", "Umiddle", "Uright", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "boundary", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "closein", "closeout", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "csstring", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "directlua", "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", "firstvalidlanguage", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hpack", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "ifeof", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "immediate", "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", "mag", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noboundary", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "openin", "openout", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "protrusionboundary", "radical", "raise", "read", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "special", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tpack", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vpack", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "wordboundary", "write", "xdef", "xleaders", "xspaceskip", "year" },
diff --git a/doc/context/documents/general/manuals/luatex.pdf b/doc/context/documents/general/manuals/luatex.pdf
index b9925775e..0d7adafbe 100644
--- a/doc/context/documents/general/manuals/luatex.pdf
+++ b/doc/context/documents/general/manuals/luatex.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index 7f73888b2..76108aa59 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index e95f798bf..958c189ec 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 7b808f8da..6ff801846 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index 7e82d88c9..195cd6411 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index fcecfbcac..900b697dd 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
index 285347420..2b1369ae7 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
index 56f7170da..cabb087fb 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
index b9a6da180..33331d9e4 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
index 98c96cd82..0dbd7a847 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
index fefbe6ceb..9d59690de 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
index b60af34d4..ca4ac5581 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
index c66413500..50d22528f 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index 5fbbd909d..ed1eeec04 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index 9e5810ceb..c1530f75d 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/hybrid/hybrid-grouping.tex b/doc/context/sources/general/manuals/hybrid/hybrid-grouping.tex
index 44018e746..c95186c99 100644
--- a/doc/context/sources/general/manuals/hybrid/hybrid-grouping.tex
+++ b/doc/context/sources/general/manuals/hybrid/hybrid-grouping.tex
@@ -25,7 +25,7 @@
keywords=,
author=Hans Hagen,
address=PRAGMA ADE\\Ridderstraat 27\\8061GH Hasselt NL,
- email=pragma@wxs.nl]
+ email=pragma@xs4all.nl]
%
% we use a buffer as abstract themselves are buffers and
% inside macros we loose line endings and such
diff --git a/doc/context/sources/general/manuals/hybrid/hybrid-parbuilder.tex b/doc/context/sources/general/manuals/hybrid/hybrid-parbuilder.tex
index 06519b2fb..cceac6d55 100644
--- a/doc/context/sources/general/manuals/hybrid/hybrid-parbuilder.tex
+++ b/doc/context/sources/general/manuals/hybrid/hybrid-parbuilder.tex
@@ -28,7 +28,7 @@
keywords=,
author=Hans Hagen,
address=PRAGMA ADE\\Ridderstraat 27\\8061GH Hasselt NL,
- email=pragma@wxs.nl]
+ email=pragma@xs4all.nl]
%
% we use a buffer as abstract themselves are buffers and
% inside macros we loose line endings and such
diff --git a/doc/context/sources/general/manuals/languages/languages-sorting.tex b/doc/context/sources/general/manuals/languages/languages-sorting.tex
index ce24f385c..956866e5d 100644
--- a/doc/context/sources/general/manuals/languages/languages-sorting.tex
+++ b/doc/context/sources/general/manuals/languages/languages-sorting.tex
@@ -230,6 +230,72 @@ This three entry index\jindex{ぱあ}\jindex{ぱー}\jindex{ぱぁ} should be so
% ぱー $\prec$ ぱぁ $\prec$ ぱあ
+\startsection[title=Special usage]
+
+The following example demonstrates how you can trick the sorter into doing other
+things: \footnote {The \type {replacementlist} helper is the result of a request
+by John Grasty on the mailing list.}
+
+\startbuffer
+\startluacode
+ local list = {
+ -- old testament
+ "Genesis", "Exodus", "Leviticus", "Numbers", "Deuteronomy", "Joshua",
+ "Judges", "Ruth", "1 Samuel", "2 Samuel", "1 Kings", "2 Kings",
+ "1 Chronicles", "2 Chronicles", "Ezra", "Nehemiah", "Esther", "Job",
+ "Psalms", "Proverbs", "Ecclesiastes", "Canticles", "Isaiah", "Jeremiah",
+ "Lamentations", "Ezekiel", "Daniel", "Hosea", "Joel", "Amos", "Obadiah",
+ "Jonah", "Micah", "Nahum", "Habakkuk", "Zephaniah", "Haggai",
+ "Zechariah", "Malachi",
+ -- new testament
+ "Matthew", "Mark", "Luke", "John", "Acts", "Romans", "1 Corinthians",
+ "2 Corinthians", "Galatians", "Ephesians", "Philippians", "Colossians",
+ "1 Thessalonians", "2 Thessalonians", "1 Timothy", "2 Timothy", "Titus",
+ "Philemon", "Hebrews", "James", "1 Peter", "2 Peter", "1 John", "2 John",
+ "3 John", "Jude", "Revelation",
+ }
+
+ sorters.definitions["bible"] = {
+ replacements = sorters.replacementlist(list),
+ }
+\stopluacode
+
+\defineregister
+ [booksort]
+ [language=bible,
+ n=3,
+ criterium=text,
+ indicator=no]
+\stopbuffer
+
+\typebuffer \getbuffer
+
+We use this as follows:
+
+\startbuffer
+One \booksort{Genesis+5.2}
+Two \booksort{Exodus+2}
+Three \booksort{Genesis+45}
+Four \booksort{Philemon+2}
+Five \booksort{John+45}
+Six \booksort{1 John 1+45}
+Seven \booksort{2 John 2+45}
+
+\placeregister
+ [booksort]
+ [language=bible]
+\stopbuffer
+
+\typebuffer
+
+which gives:
+
+\getbuffer
+
+\stoptext
+
+\stopsection
+
\stopchapter
\stopcomponent
diff --git a/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex b/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex
index d1da33878..e0119bf7e 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex
@@ -384,7 +384,7 @@ is easier to keep the code in a separate file and load it using \LUA's
\directlua { dofile('mysetups.lua') }
\stoptyping
-\subsection{\type {\luafunction}}
+\subsection{\type {\luafunction} and \type {\luafunctioncall}}
The \type {\directlua} commands involves tokenization of its argument (after
picking up an optional name or number specification). The tokenlist is then
@@ -417,6 +417,9 @@ in the following example the number \type {8} gets typeset.
}
\stoptyping
+The \type {\luafunctioncall} primitive does the same but is unexpandable, for instance
+in an \type {\edef}.
+
\section {Alignments}
\subsection{\tex {alignmark}}
diff --git a/doc/context/sources/general/manuals/luatex/luatex.tex b/doc/context/sources/general/manuals/luatex/luatex.tex
index 1d6f16f6a..3025788bf 100644
--- a/doc/context/sources/general/manuals/luatex/luatex.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex.tex
@@ -2,6 +2,10 @@
% \disabledirectives[vspacing.synchronizepage]
+% wsl /data/context/runcontext.sh --global --path=/mnt/c/data/develop/context/manuals/mkiv/external/luatex luatex.tex
+%
+% same runtime as regular context or linux
+
% author : Hans Hagen with Taco Hoekwater, Luigi Scarso & Hartmut Henkel
% copyright : PRAGMA ADE & ConTeXt Development Team
% license : Creative Commons Attribution ShareAlike 4.0 International
diff --git a/doc/context/sources/general/manuals/xml/xml-mkiv.tex b/doc/context/sources/general/manuals/xml/xml-mkiv.tex
index 0f9c74662..8550badec 100644
--- a/doc/context/sources/general/manuals/xml/xml-mkiv.tex
+++ b/doc/context/sources/general/manuals/xml/xml-mkiv.tex
@@ -2347,7 +2347,7 @@ status information, using for instance:
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmlinfo}}
- typeset the name if the element given by \cmdinternal {cd:node}
+ typeset the name in the element given by \cmdinternal {cd:node}
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmlpath}}
diff --git a/scripts/context/lua/mtx-update.lua b/scripts/context/lua/mtx-update.lua
index 20ca9ce27..6663be7a2 100644
--- a/scripts/context/lua/mtx-update.lua
+++ b/scripts/context/lua/mtx-update.lua
@@ -188,6 +188,8 @@ update.platforms = {
["linux-64"] = "linux-64",
["linux64"] = "linux-64",
--
+ ["linuxmusl-64"] = "linuxmusl-64",
+ --
["linux-armhf"] = "linux-armhf",
--
["freebsd"] = "freebsd",
diff --git a/scripts/context/lua/mtxlibs.lua b/scripts/context/lua/mtxlibs.lua
index bb0e03b17..f6839eb9d 100644
--- a/scripts/context/lua/mtxlibs.lua
+++ b/scripts/context/lua/mtxlibs.lua
@@ -68,7 +68,7 @@ local owntree = ownpath
local ownlibs = {
"l-lua.lua",
- "l-macros.lua",
+ "l-macro.lua",
"l-sandbox.lua",
"l-package.lua",
"l-lpeg.lua",
@@ -196,15 +196,13 @@ end
local arguments = environment.arguments
local files = environment.files
-if file.basename(environment.ownname) ~= "mtxlibs.lua" then
- return
-end
+local ownname = file.basename(environment.ownname)
local helpinfo = [[
usage: mtxlibs [options]
---merge
---merge targetfile extralibs
+--selfmerge
+--selfmerge targetfile extralibs
--selfclean
and in a lua file:
@@ -218,7 +216,19 @@ local application = logs.application {
helpinfo = helpinfo,
}
-local report = application.report
+local report = application.report
+
+if ownname == "mtxrun" or ownname == "mtxrun.lua" then
+ -- we're using mtxrun
+ ownname = "mtxlibs.lua"
+elseif ownname == "mtxlibs" or ownname == "mtxlibs.lua" then
+ -- we're using lua
+ ownname = "mtxlibs.lua"
+else
+ report("usage : lua mtxlibs.lua ...")
+ report(" : mtxrun --script mtxlibs.lua ...")
+ return
+end
if arguments.selfmerge then
@@ -247,7 +257,7 @@ elseif arguments.selfclean then
merger.selfclean(ownname)
report("done")
-elseif arguments.help or files[1] == "help" then
+else -- if arguments.help or files[1] == "help" then
application.help()
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index 3374a364a..91528360a 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -195,7 +195,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-macro"] = package.loaded["l-macro"] or true
--- original size: 6393, stripped down to: 3659
+-- original size: 8260, stripped down to: 5213
if not modules then modules={} end modules ['l-macros']={
version=1.001,
@@ -207,7 +207,8 @@ if not modules then modules={} end modules ['l-macros']={
local S,P,R,V,C,Cs,Cc,Ct,Carg=lpeg.S,lpeg.P,lpeg.R,lpeg.V,lpeg.C,lpeg.Cs,lpeg.Cc,lpeg.Ct,lpeg.Carg
local lpegmatch=lpeg.match
local concat=table.concat
-local next=next
+local format,sub=string.format,string.sub
+local next,load,type=next,load,type
local newline=S("\n\r")^1
local continue=P("\\")*newline
local spaces=S(" \t")+continue
@@ -228,6 +229,14 @@ local patterns={}
local definitions={}
local resolve
local subparser
+local report_lua=function(...)
+ if logs and logs.reporter then
+ report_lua=logs.reporter("system","lua")
+ report_lua(...)
+ else
+ print(format(...))
+ end
+end
resolve=C(C(name)*arguments^-1)/function(raw,s,a)
local d=definitions[s]
if d then
@@ -334,6 +343,61 @@ end
function macros.resolving()
return next(patterns)
end
+local function loaded(name,trace,detail)
+ local f=io.open(name,"rb")
+ if not f then
+ return false,format("file '%s' not found",name)
+ end
+ local c=f:read("*a")
+ if not c then
+ return false,format("file '%s' is invalid",name)
+ end
+ f:close()
+ local n=lpegmatch(parser,c)
+ if trace then
+ if #n~=#c then
+ report_lua("macros expanded in '%s' (%i => %i bytes)",name,#c,#n)
+ if detail then
+ report_lua()
+ report_lua(n)
+ report_lua()
+ end
+ elseif detail then
+ report_lua("no macros expanded in '%s'",name)
+ end
+ end
+ if #name>30 then
+ n="--[["..sub(name,-30).."]] "..n
+ else
+ n="--[["..name.."]] "..n
+ end
+ return load(n)
+end
+macros.loaded=loaded
+function required(name,trace)
+ local filename=file.addsuffix(name,"lua")
+ local fullname=resolvers and resolvers.find_file(filename) or filename
+ if not fullname or fullname=="" then
+ return false
+ end
+ local codeblob=package.loaded[fullname]
+ if codeblob then
+ return codeblob
+ end
+ local code,message=loaded(fullname,macros,trace,trace)
+ if type(code)=="function" then
+ code=code()
+ else
+ report_lua("error when loading '%s'",fullname)
+ return false,message
+ end
+ if code==nil then
+ code=false
+ end
+ package.loaded[fullname]=code
+ return code
+end
+macros.required=required
end -- of closure
@@ -609,7 +673,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-package"] = package.loaded["l-package"] or true
--- original size: 11564, stripped down to: 8625
+-- original size: 11562, stripped down to: 8625
if not modules then modules={} end modules ['l-package']={
version=1.001,
@@ -620,10 +684,10 @@ if not modules then modules={} end modules ['l-package']={
}
local type=type
local gsub,format,find=string.gsub,string.format,string.find
+local insert,remove=table.insert,table.remove
local P,S,Cs,lpegmatch=lpeg.P,lpeg.S,lpeg.Cs,lpeg.match
local package=package
local searchers=package.searchers or package.loaders
-local insert,remove=table.insert,table.remove
local filejoin=file and file.join or function(path,name) return path.."/"..name end
local isreadable=file and file.is_readable or function(name) local f=io.open(name) if f then f:close() return true end end
local addsuffix=file and file.addsuffix or function(name,suffix) return name.."."..suffix end
@@ -1871,7 +1935,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 40161, stripped down to: 23559
+-- original size: 40197, stripped down to: 23561
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2783,10 +2847,10 @@ function table.reversed(t)
return tt
end
end
-function table.reverse(t)
+function table.reverse(t)
if t then
local n=#t
- for i=1,floor(n/2) do
+ for i=1,floor(n/2) do
local j=n-i+1
t[i],t[j]=t[j],t[i]
end
@@ -6037,7 +6101,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-str"] = package.loaded["util-str"] or true
--- original size: 38725, stripped down to: 21726
+-- original size: 38699, stripped down to: 22142
if not modules then modules={} end modules ['util-str']={
version=1.001,
@@ -6051,13 +6115,15 @@ utilities.strings=utilities.strings or {}
local strings=utilities.strings
local format,gsub,rep,sub,find=string.format,string.gsub,string.rep,string.sub,string.find
local load,dump=load,string.dump
-local tonumber,type,tostring,next=tonumber,type,tostring,next
+local tonumber,type,tostring,next,setmetatable=tonumber,type,tostring,next,setmetatable
+local unpack,concat=table.unpack,table.concat
local unpack,concat=table.unpack,table.concat
local P,V,C,S,R,Ct,Cs,Cp,Carg,Cc=lpeg.P,lpeg.V,lpeg.C,lpeg.S,lpeg.R,lpeg.Ct,lpeg.Cs,lpeg.Cp,lpeg.Carg,lpeg.Cc
local patterns,lpegmatch=lpeg.patterns,lpeg.match
local utfchar,utfbyte,utflen=utf.char,utf.byte,utf.len
local loadstripped=nil
-if LUAVERSION<5.2 then
+local oldfashioned=LUAVERSION<5.2
+if oldfashioned then
loadstripped=function(str,shortcuts)
return load(str)
end
@@ -6329,7 +6395,7 @@ local template=[[
return function(%s) return %s end
]]
local preamble,environment="",{}
-if LUAVERSION<5.2 then
+if oldfashioned then
preamble=[[
local lpeg=lpeg
local type=type
@@ -6376,7 +6442,7 @@ else
sequenced=table.sequenced,
formattednumber=number.formatted,
sparseexponent=number.sparseexponent,
- formattedfloat=number.formattedfloat
+ formattedfloat=number.formattedfloat,
}
end
local arguments={ "a1" }
@@ -6733,12 +6799,18 @@ local builder=Cs { "start",
["?"]=Cs(((1-P("%"))^1 )^1)/format_rest,
["!"]=Carg(2)*prefix_any*P("!")*C((1-P("!"))^1)*P("!")/format_extension,
}
-local direct=Cs (
- P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
-)
+local xx=setmetatable({},{ __index=function(t,k) local v=format("%02x",k) t[k]=v return v end })
+local XX=setmetatable({},{ __index=function(t,k) local v=format("%02X",k) t[k]=v return v end })
+local preset={
+ ["%02x"]=function(n) return xx[n] end,
+ ["%02X"]=function(n) return XX[n] end,
+}
+local direct=P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
- local f
- local p
+ local f=preset[str]
+ if f then
+ return f
+ end
local p=lpegmatch(direct,str)
if p then
f=loadstripped(p)()
@@ -6759,7 +6831,7 @@ local function use(t,fmt,...)
return t[fmt](...)
end
strings.formatters={}
-if LUAVERSION<5.2 then
+if oldfashioned then
function strings.formatters.new(noconcat)
local t={ _type_="formatter",_connector_=noconcat and "," or "..",_extensions_={},_preamble_=preamble,_environment_={} }
setmetatable(t,{ __index=make,__call=use })
@@ -6796,7 +6868,7 @@ patterns.xmlescape=Cs((P("<")/"&lt;"+P(">")/"&gt;"+P("&")/"&amp;"+P('"')/"&quot;
patterns.texescape=Cs((C(S("#$%\\{}"))/"\\%1"+P(1))^0)
patterns.luaescape=Cs(((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0)
patterns.luaquoted=Cs(Cc('"')*((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0*Cc('"'))
-if LUAVERSION<5.2 then
+if oldfashioned then
add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape")
@@ -9200,7 +9272,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-log"] = package.loaded["trac-log"] or true
--- original size: 32737, stripped down to: 22946
+-- original size: 32922, stripped down to: 23011
if not modules then modules={} end modules ['trac-log']={
version=1.001,
@@ -9210,13 +9282,15 @@ if not modules then modules={} end modules ['trac-log']={
license="see context related readme files"
}
local next,type,select,print=next,type,select,print
-local write_nl,write=texio and texio.write_nl or print,texio and texio.write or io.write
local format,gmatch,find=string.format,string.gmatch,string.find
local concat,insert,remove=table.concat,table.insert,table.remove
local topattern=string.topattern
local utfchar=utf.char
local datetime=os.date
local openfile=io.open
+local runningtex=tex and (tex.jobname or tex.formatname)
+local write_nl=runningtex and texio and texio.write_nl or print
+local write=runningtex and texio and texio.write or io.write
local setmetatableindex=table.setmetatableindex
local formatters=string.formatters
local settings_to_hash=utilities.parsers.settings_to_hash
@@ -9243,7 +9317,7 @@ local function ignore() end
setmetatableindex(logs,function(t,k) t[k]=ignore;return ignore end)
local report,subreport,status,settarget,setformats,settranslations
local direct,subdirect,writer,pushtarget,poptarget,setlogfile,settimedlog,setprocessor,setformatters,newline
-if tex and (tex.jobname or tex.formatname) then
+if runningtex then
if texio.setescape then
texio.setescape(0)
end
@@ -10091,7 +10165,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 8284, stripped down to: 5698
+-- original size: 8097, stripped down to: 5534
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -10205,10 +10279,7 @@ function statistics.show()
register("control sequences",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
- register("callbacks",function()
- local total,indirect=status.callbacks or 0,status.indirect_callbacks or 0
- return format("%s direct, %s indirect, %s total",total-indirect,indirect,total)
- end)
+ register("callbacks",statistics.callbacks)
if TEXENGINE=="luajittex" and JITSUPPORTED then
local jitstatus=jit.status
if jitstatus then
@@ -10427,7 +10498,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-lua"] = package.loaded["util-lua"] or true
--- original size: 6921, stripped down to: 4998
+-- original size: 6621, stripped down to: 4764
if not modules then modules={} end modules ['util-lua']={
version=1.001,
@@ -10463,7 +10534,7 @@ luautilities.suffixes={
tua="tua",
tuc="tuc",
}
-local function register(name)
+local function register(name)
if tracestripping then
report_lua("stripped bytecode from %a",name or "unknown")
end
@@ -10491,17 +10562,12 @@ local function stupidcompile(luafile,lucfile,strip)
end
function luautilities.loadedluacode(fullname,forcestrip,name,macros)
name=name or fullname
- local code,message
if macros then
macros=lua.macros
end
- if macros and macros.enabled then
- local f=io.open(fullname,"rb") local c=f:read("*a") f:close()
- local n=c and macros.resolvestring("--[["..fullname.."]] "..c)
- if n and #n~=#c then
- report_lua("preprocessed file %a: %i => %i bytes",fullname,#c,#n)
- end
- code,message=load(n or c)
+ local code,message
+ if macros then
+ code,message=macros.loaded(fullname,true,false)
else
code,message=loadfile(fullname)
end
@@ -15602,7 +15668,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
--- original size: 10412, stripped down to: 7669
+-- original size: 11096, stripped down to: 8243
if not modules then modules={} end modules ['lxml-xml']={
version=1.001,
@@ -15621,6 +15687,9 @@ local xmltostring=xml.tostring
local xmlserialize=xml.serialize
local xmlcollected=xml.collected
local xmlnewhandlers=xml.newhandlers
+local reparsedentity=xml.reparsedentitylpeg
+local unescapedentity=xml.unescapedentitylpeg
+local parsedentity=reparsedentity
local function first(collected)
return collected and collected[1]
end
@@ -15903,6 +15972,24 @@ function xml.text(id,pattern)
return ""
end
end
+function xml.pure(id,pattern)
+ if pattern then
+ local collected=xmlfilter(id,pattern)
+ if collected and #collected>0 then
+ parsedentity=unescapedentity
+ local s=collected and #collected>0 and xmltotext(collected[1]) or ""
+ parsedentity=reparsedentity
+ return s
+ else
+ return ""
+ end
+ else
+ parsedentity=unescapedentity
+ local s=xmltotext(id) or ""
+ parsedentity=reparsedentity
+ return s
+ end
+end
xml.content=text
function xml.position(id,pattern,n)
return position(xmlfilter(id,pattern),n)
@@ -21234,8 +21321,8 @@ end -- of closure
-- used libraries : 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-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 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 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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 874849
--- stripped bytes : 317531
+-- original bytes : 877106
+-- stripped bytes : 317575
-- end library merge
diff --git a/scripts/context/stubs/install/first-setup.sh b/scripts/context/stubs/install/first-setup.sh
index ea72d55d4..11af49233 100644
--- a/scripts/context/stubs/install/first-setup.sh
+++ b/scripts/context/stubs/install/first-setup.sh
@@ -60,7 +60,6 @@ case "$system" in
FreeBSD|freebsd)
case "$cpu" in
i*86) platform="freebsd" ;;
- x86_64) platform="freebsd" ;; # no special binaries are available yet
amd64) platform="freebsd-amd64" ;;
*) platform="unknown" ;;
esac ;;
@@ -71,15 +70,14 @@ case "$system" in
#x86_64|amd64) platform="kfreebsd-amd64" ;;
*) platform="unknown" ;;
esac ;;
- # cygwin
# OpenBSD
- OpenBSD|freebsd)
+ OpenBSD)
case "$cpu" in
i*86) platform="openbsd" ;;
- x86_64) platform="openbsd" ;; # no special binaries are available yet
amd64) platform="openbsd-amd64" ;;
*) platform="unknown" ;;
esac ;;
+ # cygwin
CYGWIN*)
case "$cpu" in
i*86) platform="cygwin" ;;
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index 3374a364a..91528360a 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -195,7 +195,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-macro"] = package.loaded["l-macro"] or true
--- original size: 6393, stripped down to: 3659
+-- original size: 8260, stripped down to: 5213
if not modules then modules={} end modules ['l-macros']={
version=1.001,
@@ -207,7 +207,8 @@ if not modules then modules={} end modules ['l-macros']={
local S,P,R,V,C,Cs,Cc,Ct,Carg=lpeg.S,lpeg.P,lpeg.R,lpeg.V,lpeg.C,lpeg.Cs,lpeg.Cc,lpeg.Ct,lpeg.Carg
local lpegmatch=lpeg.match
local concat=table.concat
-local next=next
+local format,sub=string.format,string.sub
+local next,load,type=next,load,type
local newline=S("\n\r")^1
local continue=P("\\")*newline
local spaces=S(" \t")+continue
@@ -228,6 +229,14 @@ local patterns={}
local definitions={}
local resolve
local subparser
+local report_lua=function(...)
+ if logs and logs.reporter then
+ report_lua=logs.reporter("system","lua")
+ report_lua(...)
+ else
+ print(format(...))
+ end
+end
resolve=C(C(name)*arguments^-1)/function(raw,s,a)
local d=definitions[s]
if d then
@@ -334,6 +343,61 @@ end
function macros.resolving()
return next(patterns)
end
+local function loaded(name,trace,detail)
+ local f=io.open(name,"rb")
+ if not f then
+ return false,format("file '%s' not found",name)
+ end
+ local c=f:read("*a")
+ if not c then
+ return false,format("file '%s' is invalid",name)
+ end
+ f:close()
+ local n=lpegmatch(parser,c)
+ if trace then
+ if #n~=#c then
+ report_lua("macros expanded in '%s' (%i => %i bytes)",name,#c,#n)
+ if detail then
+ report_lua()
+ report_lua(n)
+ report_lua()
+ end
+ elseif detail then
+ report_lua("no macros expanded in '%s'",name)
+ end
+ end
+ if #name>30 then
+ n="--[["..sub(name,-30).."]] "..n
+ else
+ n="--[["..name.."]] "..n
+ end
+ return load(n)
+end
+macros.loaded=loaded
+function required(name,trace)
+ local filename=file.addsuffix(name,"lua")
+ local fullname=resolvers and resolvers.find_file(filename) or filename
+ if not fullname or fullname=="" then
+ return false
+ end
+ local codeblob=package.loaded[fullname]
+ if codeblob then
+ return codeblob
+ end
+ local code,message=loaded(fullname,macros,trace,trace)
+ if type(code)=="function" then
+ code=code()
+ else
+ report_lua("error when loading '%s'",fullname)
+ return false,message
+ end
+ if code==nil then
+ code=false
+ end
+ package.loaded[fullname]=code
+ return code
+end
+macros.required=required
end -- of closure
@@ -609,7 +673,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-package"] = package.loaded["l-package"] or true
--- original size: 11564, stripped down to: 8625
+-- original size: 11562, stripped down to: 8625
if not modules then modules={} end modules ['l-package']={
version=1.001,
@@ -620,10 +684,10 @@ if not modules then modules={} end modules ['l-package']={
}
local type=type
local gsub,format,find=string.gsub,string.format,string.find
+local insert,remove=table.insert,table.remove
local P,S,Cs,lpegmatch=lpeg.P,lpeg.S,lpeg.Cs,lpeg.match
local package=package
local searchers=package.searchers or package.loaders
-local insert,remove=table.insert,table.remove
local filejoin=file and file.join or function(path,name) return path.."/"..name end
local isreadable=file and file.is_readable or function(name) local f=io.open(name) if f then f:close() return true end end
local addsuffix=file and file.addsuffix or function(name,suffix) return name.."."..suffix end
@@ -1871,7 +1935,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 40161, stripped down to: 23559
+-- original size: 40197, stripped down to: 23561
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2783,10 +2847,10 @@ function table.reversed(t)
return tt
end
end
-function table.reverse(t)
+function table.reverse(t)
if t then
local n=#t
- for i=1,floor(n/2) do
+ for i=1,floor(n/2) do
local j=n-i+1
t[i],t[j]=t[j],t[i]
end
@@ -6037,7 +6101,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-str"] = package.loaded["util-str"] or true
--- original size: 38725, stripped down to: 21726
+-- original size: 38699, stripped down to: 22142
if not modules then modules={} end modules ['util-str']={
version=1.001,
@@ -6051,13 +6115,15 @@ utilities.strings=utilities.strings or {}
local strings=utilities.strings
local format,gsub,rep,sub,find=string.format,string.gsub,string.rep,string.sub,string.find
local load,dump=load,string.dump
-local tonumber,type,tostring,next=tonumber,type,tostring,next
+local tonumber,type,tostring,next,setmetatable=tonumber,type,tostring,next,setmetatable
+local unpack,concat=table.unpack,table.concat
local unpack,concat=table.unpack,table.concat
local P,V,C,S,R,Ct,Cs,Cp,Carg,Cc=lpeg.P,lpeg.V,lpeg.C,lpeg.S,lpeg.R,lpeg.Ct,lpeg.Cs,lpeg.Cp,lpeg.Carg,lpeg.Cc
local patterns,lpegmatch=lpeg.patterns,lpeg.match
local utfchar,utfbyte,utflen=utf.char,utf.byte,utf.len
local loadstripped=nil
-if LUAVERSION<5.2 then
+local oldfashioned=LUAVERSION<5.2
+if oldfashioned then
loadstripped=function(str,shortcuts)
return load(str)
end
@@ -6329,7 +6395,7 @@ local template=[[
return function(%s) return %s end
]]
local preamble,environment="",{}
-if LUAVERSION<5.2 then
+if oldfashioned then
preamble=[[
local lpeg=lpeg
local type=type
@@ -6376,7 +6442,7 @@ else
sequenced=table.sequenced,
formattednumber=number.formatted,
sparseexponent=number.sparseexponent,
- formattedfloat=number.formattedfloat
+ formattedfloat=number.formattedfloat,
}
end
local arguments={ "a1" }
@@ -6733,12 +6799,18 @@ local builder=Cs { "start",
["?"]=Cs(((1-P("%"))^1 )^1)/format_rest,
["!"]=Carg(2)*prefix_any*P("!")*C((1-P("!"))^1)*P("!")/format_extension,
}
-local direct=Cs (
- P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
-)
+local xx=setmetatable({},{ __index=function(t,k) local v=format("%02x",k) t[k]=v return v end })
+local XX=setmetatable({},{ __index=function(t,k) local v=format("%02X",k) t[k]=v return v end })
+local preset={
+ ["%02x"]=function(n) return xx[n] end,
+ ["%02X"]=function(n) return XX[n] end,
+}
+local direct=P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
- local f
- local p
+ local f=preset[str]
+ if f then
+ return f
+ end
local p=lpegmatch(direct,str)
if p then
f=loadstripped(p)()
@@ -6759,7 +6831,7 @@ local function use(t,fmt,...)
return t[fmt](...)
end
strings.formatters={}
-if LUAVERSION<5.2 then
+if oldfashioned then
function strings.formatters.new(noconcat)
local t={ _type_="formatter",_connector_=noconcat and "," or "..",_extensions_={},_preamble_=preamble,_environment_={} }
setmetatable(t,{ __index=make,__call=use })
@@ -6796,7 +6868,7 @@ patterns.xmlescape=Cs((P("<")/"&lt;"+P(">")/"&gt;"+P("&")/"&amp;"+P('"')/"&quot;
patterns.texescape=Cs((C(S("#$%\\{}"))/"\\%1"+P(1))^0)
patterns.luaescape=Cs(((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0)
patterns.luaquoted=Cs(Cc('"')*((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0*Cc('"'))
-if LUAVERSION<5.2 then
+if oldfashioned then
add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape")
@@ -9200,7 +9272,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-log"] = package.loaded["trac-log"] or true
--- original size: 32737, stripped down to: 22946
+-- original size: 32922, stripped down to: 23011
if not modules then modules={} end modules ['trac-log']={
version=1.001,
@@ -9210,13 +9282,15 @@ if not modules then modules={} end modules ['trac-log']={
license="see context related readme files"
}
local next,type,select,print=next,type,select,print
-local write_nl,write=texio and texio.write_nl or print,texio and texio.write or io.write
local format,gmatch,find=string.format,string.gmatch,string.find
local concat,insert,remove=table.concat,table.insert,table.remove
local topattern=string.topattern
local utfchar=utf.char
local datetime=os.date
local openfile=io.open
+local runningtex=tex and (tex.jobname or tex.formatname)
+local write_nl=runningtex and texio and texio.write_nl or print
+local write=runningtex and texio and texio.write or io.write
local setmetatableindex=table.setmetatableindex
local formatters=string.formatters
local settings_to_hash=utilities.parsers.settings_to_hash
@@ -9243,7 +9317,7 @@ local function ignore() end
setmetatableindex(logs,function(t,k) t[k]=ignore;return ignore end)
local report,subreport,status,settarget,setformats,settranslations
local direct,subdirect,writer,pushtarget,poptarget,setlogfile,settimedlog,setprocessor,setformatters,newline
-if tex and (tex.jobname or tex.formatname) then
+if runningtex then
if texio.setescape then
texio.setescape(0)
end
@@ -10091,7 +10165,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 8284, stripped down to: 5698
+-- original size: 8097, stripped down to: 5534
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -10205,10 +10279,7 @@ function statistics.show()
register("control sequences",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
- register("callbacks",function()
- local total,indirect=status.callbacks or 0,status.indirect_callbacks or 0
- return format("%s direct, %s indirect, %s total",total-indirect,indirect,total)
- end)
+ register("callbacks",statistics.callbacks)
if TEXENGINE=="luajittex" and JITSUPPORTED then
local jitstatus=jit.status
if jitstatus then
@@ -10427,7 +10498,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-lua"] = package.loaded["util-lua"] or true
--- original size: 6921, stripped down to: 4998
+-- original size: 6621, stripped down to: 4764
if not modules then modules={} end modules ['util-lua']={
version=1.001,
@@ -10463,7 +10534,7 @@ luautilities.suffixes={
tua="tua",
tuc="tuc",
}
-local function register(name)
+local function register(name)
if tracestripping then
report_lua("stripped bytecode from %a",name or "unknown")
end
@@ -10491,17 +10562,12 @@ local function stupidcompile(luafile,lucfile,strip)
end
function luautilities.loadedluacode(fullname,forcestrip,name,macros)
name=name or fullname
- local code,message
if macros then
macros=lua.macros
end
- if macros and macros.enabled then
- local f=io.open(fullname,"rb") local c=f:read("*a") f:close()
- local n=c and macros.resolvestring("--[["..fullname.."]] "..c)
- if n and #n~=#c then
- report_lua("preprocessed file %a: %i => %i bytes",fullname,#c,#n)
- end
- code,message=load(n or c)
+ local code,message
+ if macros then
+ code,message=macros.loaded(fullname,true,false)
else
code,message=loadfile(fullname)
end
@@ -15602,7 +15668,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
--- original size: 10412, stripped down to: 7669
+-- original size: 11096, stripped down to: 8243
if not modules then modules={} end modules ['lxml-xml']={
version=1.001,
@@ -15621,6 +15687,9 @@ local xmltostring=xml.tostring
local xmlserialize=xml.serialize
local xmlcollected=xml.collected
local xmlnewhandlers=xml.newhandlers
+local reparsedentity=xml.reparsedentitylpeg
+local unescapedentity=xml.unescapedentitylpeg
+local parsedentity=reparsedentity
local function first(collected)
return collected and collected[1]
end
@@ -15903,6 +15972,24 @@ function xml.text(id,pattern)
return ""
end
end
+function xml.pure(id,pattern)
+ if pattern then
+ local collected=xmlfilter(id,pattern)
+ if collected and #collected>0 then
+ parsedentity=unescapedentity
+ local s=collected and #collected>0 and xmltotext(collected[1]) or ""
+ parsedentity=reparsedentity
+ return s
+ else
+ return ""
+ end
+ else
+ parsedentity=unescapedentity
+ local s=xmltotext(id) or ""
+ parsedentity=reparsedentity
+ return s
+ end
+end
xml.content=text
function xml.position(id,pattern,n)
return position(xmlfilter(id,pattern),n)
@@ -21234,8 +21321,8 @@ end -- of closure
-- used libraries : 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-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 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 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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 874849
--- stripped bytes : 317531
+-- original bytes : 877106
+-- stripped bytes : 317575
-- end library merge
diff --git a/scripts/context/stubs/setup/setuptex b/scripts/context/stubs/setup/setuptex
index 78128ee8b..9808140e4 100644
--- a/scripts/context/stubs/setup/setuptex
+++ b/scripts/context/stubs/setup/setuptex
@@ -22,59 +22,91 @@ system=`uname -s`
cpu=`uname -m`
case "$system" in
- # linux
- Linux)
- case "$cpu" in
- i*86) platform="linux" ;;
- x86_64|ia64) platform="linux-64" ;;
- # a little bit of cheating with ppc64 (won't work on Gentoo)
- ppc|ppc64) platform="linux-ppc" ;;
- *) platform="unknown" ;;
- esac ;;
- # Mac OS X
- Darwin)
- case "$cpu" in
- i*86) platform="osx-intel" ;;
- x86_64) platform="osx-64" ;;
- ppc*|powerpc|power*|Power*) platform="osx-ppc" ;;
- *) platform="unknown" ;;
- esac ;;
- # FreeBSD
- FreeBSD|freebsd)
- case "$cpu" in
- i*86) platform="freebsd" ;;
- x86_64) platform="freebsd" ;;
- amd64) platform="freebsd-amd64" ;;
- *) platform="unknown" ;;
- esac ;;
- # kFreeBSD (Debian)
- GNU/kFreeBSD)
- case "$cpu" in
- i*86) platform="kfreebsd-i386" ;;
- x86_64|amd64) platform="kfreebsd-amd64" ;;
- *) platform="unknown" ;;
- esac ;;
- # MSYS2|MSYS_NT-10.0)
- case "$cpu" in
- i*86) platform="win32" ;;
- x86_64) platform="win64" ;;
- *) platform="unknown" ;;
- esac ;;
- # cygwin
- CYGWIN)
- case "$cpu" in
- i*86) platform="cygwin" ;;
- x86_64|ia64) platform="cygwin-64" ;;
- *) platform="unknown" ;;
- esac ;;
- # SunOS/Solaris
- SunOS)
- case "$cpu" in
- sparc) platform="solaris-sparc" ;;
- i86pc) platform="solaris-intel" ;;
- *) platform="unknown" ;;
- esac ;;
- *) platform="unknown"
+ # linux
+ Linux)
+ case "$cpu" in
+ i*86) platform="linux" ;;
+ x86_64|ia64) platform="linux-64" ;;
+
+ # a little bit of cheating with ppc64 (won't work on Gentoo)
+ ppc|ppc64) platform="linux-ppc" ;;
+
+ # we currently support just mipsel, but Debian is lying (reports mips64)
+ # we need more hacks to fix the situation, this is just a temporary solution
+ mips|mips64|mipsel|mips64el) platform="linux-mipsel" ;;
+
+ armv7l) platform="linux-armhf"
+ # machine id output by uname(1) is insufficent to determine whether this
+ # is a soft or hard float system so we check ourselves.
+ # a) binutils, this should work almost everywhere
+ if $(which readelf >/dev/null 2>&1); then
+ readelf -A /proc/self/exe | grep -q '^ \+Tag_ABI_VFP_args'
+ if [ ! $? ]; then
+ platform="linux-armel"
+ fi
+ # b) debian-specific fallback
+ elif $(which dpkg >/dev/null 2>&1); then
+ if [ "$(dpkg --print-architecture)" = armel ]; then
+ platform="linux-armel"
+ fi
+ fi
+ # else go with hard fp
+ ;;
+
+ *) platform="unknown" ;;
+ esac ;;
+ # Mac OS X
+ Darwin)
+ case "$cpu" in
+ i*86) platform="osx-intel" ;;
+ x86_64) platform="osx-64" ;;
+ ppc*|powerpc|power*|Power*) platform="osx-ppc" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ # FreeBSD
+ FreeBSD|freebsd)
+ case "$cpu" in
+ i*86) platform="freebsd" ;;
+ x86_64) platform="freebsd" ;;
+ amd64) platform="freebsd-amd64" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ # OpenBSD
+ OpenBSD)
+ case "$cpu" in
+ i*86) platform="openbsd" ;;
+ amd64) platform="openbsd-amd64" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ # kFreeBSD (Debian)
+ GNU/kFreeBSD)
+ case "$cpu" in
+ i*86) platform="kfreebsd-i386" ;;
+ x86_64|amd64) platform="kfreebsd-amd64" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ # MSYS2
+ MSYS_NT-10.0)
+ case "$cpu" in
+ i*86) platform="win32" ;;
+ x86_64) platform="win64" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ # cygwin
+ CYGWIN)
+ case "$cpu" in
+ i*86) platform="cygwin" ;;
+ x86_64|ia64) platform="cygwin-64" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ # SunOS/Solaris
+ SunOS)
+ case "$cpu" in
+ sparc) platform="solaris-sparc" ;;
+ i86pc) platform="solaris-intel" ;;
+ *) platform="unknown" ;;
+ esac ;;
+ *) platform="unknown"
esac
# temporary fix for Snow Leopard
@@ -91,6 +123,9 @@ fi
if test "$platform" = "unknown" ; then
echo "Error: your system \"$system $cpu\" is not supported yet."
echo "Please report to the ConTeXt mailing-list (ntg-context@ntg.nl)"
+elif test "$platform" = "linux-ppc" ; then
+ echo "Error: support for your system \"$platform\" has been dropped."
+ echo "Please ask on to the ConTeXt mailing-list if you still need it (ntg-context@ntg.nl)"
fi
#
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index 3374a364a..91528360a 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -195,7 +195,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-macro"] = package.loaded["l-macro"] or true
--- original size: 6393, stripped down to: 3659
+-- original size: 8260, stripped down to: 5213
if not modules then modules={} end modules ['l-macros']={
version=1.001,
@@ -207,7 +207,8 @@ if not modules then modules={} end modules ['l-macros']={
local S,P,R,V,C,Cs,Cc,Ct,Carg=lpeg.S,lpeg.P,lpeg.R,lpeg.V,lpeg.C,lpeg.Cs,lpeg.Cc,lpeg.Ct,lpeg.Carg
local lpegmatch=lpeg.match
local concat=table.concat
-local next=next
+local format,sub=string.format,string.sub
+local next,load,type=next,load,type
local newline=S("\n\r")^1
local continue=P("\\")*newline
local spaces=S(" \t")+continue
@@ -228,6 +229,14 @@ local patterns={}
local definitions={}
local resolve
local subparser
+local report_lua=function(...)
+ if logs and logs.reporter then
+ report_lua=logs.reporter("system","lua")
+ report_lua(...)
+ else
+ print(format(...))
+ end
+end
resolve=C(C(name)*arguments^-1)/function(raw,s,a)
local d=definitions[s]
if d then
@@ -334,6 +343,61 @@ end
function macros.resolving()
return next(patterns)
end
+local function loaded(name,trace,detail)
+ local f=io.open(name,"rb")
+ if not f then
+ return false,format("file '%s' not found",name)
+ end
+ local c=f:read("*a")
+ if not c then
+ return false,format("file '%s' is invalid",name)
+ end
+ f:close()
+ local n=lpegmatch(parser,c)
+ if trace then
+ if #n~=#c then
+ report_lua("macros expanded in '%s' (%i => %i bytes)",name,#c,#n)
+ if detail then
+ report_lua()
+ report_lua(n)
+ report_lua()
+ end
+ elseif detail then
+ report_lua("no macros expanded in '%s'",name)
+ end
+ end
+ if #name>30 then
+ n="--[["..sub(name,-30).."]] "..n
+ else
+ n="--[["..name.."]] "..n
+ end
+ return load(n)
+end
+macros.loaded=loaded
+function required(name,trace)
+ local filename=file.addsuffix(name,"lua")
+ local fullname=resolvers and resolvers.find_file(filename) or filename
+ if not fullname or fullname=="" then
+ return false
+ end
+ local codeblob=package.loaded[fullname]
+ if codeblob then
+ return codeblob
+ end
+ local code,message=loaded(fullname,macros,trace,trace)
+ if type(code)=="function" then
+ code=code()
+ else
+ report_lua("error when loading '%s'",fullname)
+ return false,message
+ end
+ if code==nil then
+ code=false
+ end
+ package.loaded[fullname]=code
+ return code
+end
+macros.required=required
end -- of closure
@@ -609,7 +673,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-package"] = package.loaded["l-package"] or true
--- original size: 11564, stripped down to: 8625
+-- original size: 11562, stripped down to: 8625
if not modules then modules={} end modules ['l-package']={
version=1.001,
@@ -620,10 +684,10 @@ if not modules then modules={} end modules ['l-package']={
}
local type=type
local gsub,format,find=string.gsub,string.format,string.find
+local insert,remove=table.insert,table.remove
local P,S,Cs,lpegmatch=lpeg.P,lpeg.S,lpeg.Cs,lpeg.match
local package=package
local searchers=package.searchers or package.loaders
-local insert,remove=table.insert,table.remove
local filejoin=file and file.join or function(path,name) return path.."/"..name end
local isreadable=file and file.is_readable or function(name) local f=io.open(name) if f then f:close() return true end end
local addsuffix=file and file.addsuffix or function(name,suffix) return name.."."..suffix end
@@ -1871,7 +1935,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 40161, stripped down to: 23559
+-- original size: 40197, stripped down to: 23561
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2783,10 +2847,10 @@ function table.reversed(t)
return tt
end
end
-function table.reverse(t)
+function table.reverse(t)
if t then
local n=#t
- for i=1,floor(n/2) do
+ for i=1,floor(n/2) do
local j=n-i+1
t[i],t[j]=t[j],t[i]
end
@@ -6037,7 +6101,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-str"] = package.loaded["util-str"] or true
--- original size: 38725, stripped down to: 21726
+-- original size: 38699, stripped down to: 22142
if not modules then modules={} end modules ['util-str']={
version=1.001,
@@ -6051,13 +6115,15 @@ utilities.strings=utilities.strings or {}
local strings=utilities.strings
local format,gsub,rep,sub,find=string.format,string.gsub,string.rep,string.sub,string.find
local load,dump=load,string.dump
-local tonumber,type,tostring,next=tonumber,type,tostring,next
+local tonumber,type,tostring,next,setmetatable=tonumber,type,tostring,next,setmetatable
+local unpack,concat=table.unpack,table.concat
local unpack,concat=table.unpack,table.concat
local P,V,C,S,R,Ct,Cs,Cp,Carg,Cc=lpeg.P,lpeg.V,lpeg.C,lpeg.S,lpeg.R,lpeg.Ct,lpeg.Cs,lpeg.Cp,lpeg.Carg,lpeg.Cc
local patterns,lpegmatch=lpeg.patterns,lpeg.match
local utfchar,utfbyte,utflen=utf.char,utf.byte,utf.len
local loadstripped=nil
-if LUAVERSION<5.2 then
+local oldfashioned=LUAVERSION<5.2
+if oldfashioned then
loadstripped=function(str,shortcuts)
return load(str)
end
@@ -6329,7 +6395,7 @@ local template=[[
return function(%s) return %s end
]]
local preamble,environment="",{}
-if LUAVERSION<5.2 then
+if oldfashioned then
preamble=[[
local lpeg=lpeg
local type=type
@@ -6376,7 +6442,7 @@ else
sequenced=table.sequenced,
formattednumber=number.formatted,
sparseexponent=number.sparseexponent,
- formattedfloat=number.formattedfloat
+ formattedfloat=number.formattedfloat,
}
end
local arguments={ "a1" }
@@ -6733,12 +6799,18 @@ local builder=Cs { "start",
["?"]=Cs(((1-P("%"))^1 )^1)/format_rest,
["!"]=Carg(2)*prefix_any*P("!")*C((1-P("!"))^1)*P("!")/format_extension,
}
-local direct=Cs (
- P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
-)
+local xx=setmetatable({},{ __index=function(t,k) local v=format("%02x",k) t[k]=v return v end })
+local XX=setmetatable({},{ __index=function(t,k) local v=format("%02X",k) t[k]=v return v end })
+local preset={
+ ["%02x"]=function(n) return xx[n] end,
+ ["%02X"]=function(n) return XX[n] end,
+}
+local direct=P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
- local f
- local p
+ local f=preset[str]
+ if f then
+ return f
+ end
local p=lpegmatch(direct,str)
if p then
f=loadstripped(p)()
@@ -6759,7 +6831,7 @@ local function use(t,fmt,...)
return t[fmt](...)
end
strings.formatters={}
-if LUAVERSION<5.2 then
+if oldfashioned then
function strings.formatters.new(noconcat)
local t={ _type_="formatter",_connector_=noconcat and "," or "..",_extensions_={},_preamble_=preamble,_environment_={} }
setmetatable(t,{ __index=make,__call=use })
@@ -6796,7 +6868,7 @@ patterns.xmlescape=Cs((P("<")/"&lt;"+P(">")/"&gt;"+P("&")/"&amp;"+P('"')/"&quot;
patterns.texescape=Cs((C(S("#$%\\{}"))/"\\%1"+P(1))^0)
patterns.luaescape=Cs(((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0)
patterns.luaquoted=Cs(Cc('"')*((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0*Cc('"'))
-if LUAVERSION<5.2 then
+if oldfashioned then
add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape")
@@ -9200,7 +9272,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-log"] = package.loaded["trac-log"] or true
--- original size: 32737, stripped down to: 22946
+-- original size: 32922, stripped down to: 23011
if not modules then modules={} end modules ['trac-log']={
version=1.001,
@@ -9210,13 +9282,15 @@ if not modules then modules={} end modules ['trac-log']={
license="see context related readme files"
}
local next,type,select,print=next,type,select,print
-local write_nl,write=texio and texio.write_nl or print,texio and texio.write or io.write
local format,gmatch,find=string.format,string.gmatch,string.find
local concat,insert,remove=table.concat,table.insert,table.remove
local topattern=string.topattern
local utfchar=utf.char
local datetime=os.date
local openfile=io.open
+local runningtex=tex and (tex.jobname or tex.formatname)
+local write_nl=runningtex and texio and texio.write_nl or print
+local write=runningtex and texio and texio.write or io.write
local setmetatableindex=table.setmetatableindex
local formatters=string.formatters
local settings_to_hash=utilities.parsers.settings_to_hash
@@ -9243,7 +9317,7 @@ local function ignore() end
setmetatableindex(logs,function(t,k) t[k]=ignore;return ignore end)
local report,subreport,status,settarget,setformats,settranslations
local direct,subdirect,writer,pushtarget,poptarget,setlogfile,settimedlog,setprocessor,setformatters,newline
-if tex and (tex.jobname or tex.formatname) then
+if runningtex then
if texio.setescape then
texio.setescape(0)
end
@@ -10091,7 +10165,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 8284, stripped down to: 5698
+-- original size: 8097, stripped down to: 5534
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -10205,10 +10279,7 @@ function statistics.show()
register("control sequences",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
- register("callbacks",function()
- local total,indirect=status.callbacks or 0,status.indirect_callbacks or 0
- return format("%s direct, %s indirect, %s total",total-indirect,indirect,total)
- end)
+ register("callbacks",statistics.callbacks)
if TEXENGINE=="luajittex" and JITSUPPORTED then
local jitstatus=jit.status
if jitstatus then
@@ -10427,7 +10498,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-lua"] = package.loaded["util-lua"] or true
--- original size: 6921, stripped down to: 4998
+-- original size: 6621, stripped down to: 4764
if not modules then modules={} end modules ['util-lua']={
version=1.001,
@@ -10463,7 +10534,7 @@ luautilities.suffixes={
tua="tua",
tuc="tuc",
}
-local function register(name)
+local function register(name)
if tracestripping then
report_lua("stripped bytecode from %a",name or "unknown")
end
@@ -10491,17 +10562,12 @@ local function stupidcompile(luafile,lucfile,strip)
end
function luautilities.loadedluacode(fullname,forcestrip,name,macros)
name=name or fullname
- local code,message
if macros then
macros=lua.macros
end
- if macros and macros.enabled then
- local f=io.open(fullname,"rb") local c=f:read("*a") f:close()
- local n=c and macros.resolvestring("--[["..fullname.."]] "..c)
- if n and #n~=#c then
- report_lua("preprocessed file %a: %i => %i bytes",fullname,#c,#n)
- end
- code,message=load(n or c)
+ local code,message
+ if macros then
+ code,message=macros.loaded(fullname,true,false)
else
code,message=loadfile(fullname)
end
@@ -15602,7 +15668,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
--- original size: 10412, stripped down to: 7669
+-- original size: 11096, stripped down to: 8243
if not modules then modules={} end modules ['lxml-xml']={
version=1.001,
@@ -15621,6 +15687,9 @@ local xmltostring=xml.tostring
local xmlserialize=xml.serialize
local xmlcollected=xml.collected
local xmlnewhandlers=xml.newhandlers
+local reparsedentity=xml.reparsedentitylpeg
+local unescapedentity=xml.unescapedentitylpeg
+local parsedentity=reparsedentity
local function first(collected)
return collected and collected[1]
end
@@ -15903,6 +15972,24 @@ function xml.text(id,pattern)
return ""
end
end
+function xml.pure(id,pattern)
+ if pattern then
+ local collected=xmlfilter(id,pattern)
+ if collected and #collected>0 then
+ parsedentity=unescapedentity
+ local s=collected and #collected>0 and xmltotext(collected[1]) or ""
+ parsedentity=reparsedentity
+ return s
+ else
+ return ""
+ end
+ else
+ parsedentity=unescapedentity
+ local s=xmltotext(id) or ""
+ parsedentity=reparsedentity
+ return s
+ end
+end
xml.content=text
function xml.position(id,pattern,n)
return position(xmlfilter(id,pattern),n)
@@ -21234,8 +21321,8 @@ end -- of closure
-- used libraries : 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-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 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 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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 874849
--- stripped bytes : 317531
+-- original bytes : 877106
+-- stripped bytes : 317575
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index 3374a364a..91528360a 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -195,7 +195,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-macro"] = package.loaded["l-macro"] or true
--- original size: 6393, stripped down to: 3659
+-- original size: 8260, stripped down to: 5213
if not modules then modules={} end modules ['l-macros']={
version=1.001,
@@ -207,7 +207,8 @@ if not modules then modules={} end modules ['l-macros']={
local S,P,R,V,C,Cs,Cc,Ct,Carg=lpeg.S,lpeg.P,lpeg.R,lpeg.V,lpeg.C,lpeg.Cs,lpeg.Cc,lpeg.Ct,lpeg.Carg
local lpegmatch=lpeg.match
local concat=table.concat
-local next=next
+local format,sub=string.format,string.sub
+local next,load,type=next,load,type
local newline=S("\n\r")^1
local continue=P("\\")*newline
local spaces=S(" \t")+continue
@@ -228,6 +229,14 @@ local patterns={}
local definitions={}
local resolve
local subparser
+local report_lua=function(...)
+ if logs and logs.reporter then
+ report_lua=logs.reporter("system","lua")
+ report_lua(...)
+ else
+ print(format(...))
+ end
+end
resolve=C(C(name)*arguments^-1)/function(raw,s,a)
local d=definitions[s]
if d then
@@ -334,6 +343,61 @@ end
function macros.resolving()
return next(patterns)
end
+local function loaded(name,trace,detail)
+ local f=io.open(name,"rb")
+ if not f then
+ return false,format("file '%s' not found",name)
+ end
+ local c=f:read("*a")
+ if not c then
+ return false,format("file '%s' is invalid",name)
+ end
+ f:close()
+ local n=lpegmatch(parser,c)
+ if trace then
+ if #n~=#c then
+ report_lua("macros expanded in '%s' (%i => %i bytes)",name,#c,#n)
+ if detail then
+ report_lua()
+ report_lua(n)
+ report_lua()
+ end
+ elseif detail then
+ report_lua("no macros expanded in '%s'",name)
+ end
+ end
+ if #name>30 then
+ n="--[["..sub(name,-30).."]] "..n
+ else
+ n="--[["..name.."]] "..n
+ end
+ return load(n)
+end
+macros.loaded=loaded
+function required(name,trace)
+ local filename=file.addsuffix(name,"lua")
+ local fullname=resolvers and resolvers.find_file(filename) or filename
+ if not fullname or fullname=="" then
+ return false
+ end
+ local codeblob=package.loaded[fullname]
+ if codeblob then
+ return codeblob
+ end
+ local code,message=loaded(fullname,macros,trace,trace)
+ if type(code)=="function" then
+ code=code()
+ else
+ report_lua("error when loading '%s'",fullname)
+ return false,message
+ end
+ if code==nil then
+ code=false
+ end
+ package.loaded[fullname]=code
+ return code
+end
+macros.required=required
end -- of closure
@@ -609,7 +673,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-package"] = package.loaded["l-package"] or true
--- original size: 11564, stripped down to: 8625
+-- original size: 11562, stripped down to: 8625
if not modules then modules={} end modules ['l-package']={
version=1.001,
@@ -620,10 +684,10 @@ if not modules then modules={} end modules ['l-package']={
}
local type=type
local gsub,format,find=string.gsub,string.format,string.find
+local insert,remove=table.insert,table.remove
local P,S,Cs,lpegmatch=lpeg.P,lpeg.S,lpeg.Cs,lpeg.match
local package=package
local searchers=package.searchers or package.loaders
-local insert,remove=table.insert,table.remove
local filejoin=file and file.join or function(path,name) return path.."/"..name end
local isreadable=file and file.is_readable or function(name) local f=io.open(name) if f then f:close() return true end end
local addsuffix=file and file.addsuffix or function(name,suffix) return name.."."..suffix end
@@ -1871,7 +1935,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-table"] = package.loaded["l-table"] or true
--- original size: 40161, stripped down to: 23559
+-- original size: 40197, stripped down to: 23561
if not modules then modules={} end modules ['l-table']={
version=1.001,
@@ -2783,10 +2847,10 @@ function table.reversed(t)
return tt
end
end
-function table.reverse(t)
+function table.reverse(t)
if t then
local n=#t
- for i=1,floor(n/2) do
+ for i=1,floor(n/2) do
local j=n-i+1
t[i],t[j]=t[j],t[i]
end
@@ -6037,7 +6101,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-str"] = package.loaded["util-str"] or true
--- original size: 38725, stripped down to: 21726
+-- original size: 38699, stripped down to: 22142
if not modules then modules={} end modules ['util-str']={
version=1.001,
@@ -6051,13 +6115,15 @@ utilities.strings=utilities.strings or {}
local strings=utilities.strings
local format,gsub,rep,sub,find=string.format,string.gsub,string.rep,string.sub,string.find
local load,dump=load,string.dump
-local tonumber,type,tostring,next=tonumber,type,tostring,next
+local tonumber,type,tostring,next,setmetatable=tonumber,type,tostring,next,setmetatable
+local unpack,concat=table.unpack,table.concat
local unpack,concat=table.unpack,table.concat
local P,V,C,S,R,Ct,Cs,Cp,Carg,Cc=lpeg.P,lpeg.V,lpeg.C,lpeg.S,lpeg.R,lpeg.Ct,lpeg.Cs,lpeg.Cp,lpeg.Carg,lpeg.Cc
local patterns,lpegmatch=lpeg.patterns,lpeg.match
local utfchar,utfbyte,utflen=utf.char,utf.byte,utf.len
local loadstripped=nil
-if LUAVERSION<5.2 then
+local oldfashioned=LUAVERSION<5.2
+if oldfashioned then
loadstripped=function(str,shortcuts)
return load(str)
end
@@ -6329,7 +6395,7 @@ local template=[[
return function(%s) return %s end
]]
local preamble,environment="",{}
-if LUAVERSION<5.2 then
+if oldfashioned then
preamble=[[
local lpeg=lpeg
local type=type
@@ -6376,7 +6442,7 @@ else
sequenced=table.sequenced,
formattednumber=number.formatted,
sparseexponent=number.sparseexponent,
- formattedfloat=number.formattedfloat
+ formattedfloat=number.formattedfloat,
}
end
local arguments={ "a1" }
@@ -6733,12 +6799,18 @@ local builder=Cs { "start",
["?"]=Cs(((1-P("%"))^1 )^1)/format_rest,
["!"]=Carg(2)*prefix_any*P("!")*C((1-P("!"))^1)*P("!")/format_extension,
}
-local direct=Cs (
- P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
-)
+local xx=setmetatable({},{ __index=function(t,k) local v=format("%02x",k) t[k]=v return v end })
+local XX=setmetatable({},{ __index=function(t,k) local v=format("%02X",k) t[k]=v return v end })
+local preset={
+ ["%02x"]=function(n) return xx[n] end,
+ ["%02X"]=function(n) return XX[n] end,
+}
+local direct=P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
- local f
- local p
+ local f=preset[str]
+ if f then
+ return f
+ end
local p=lpegmatch(direct,str)
if p then
f=loadstripped(p)()
@@ -6759,7 +6831,7 @@ local function use(t,fmt,...)
return t[fmt](...)
end
strings.formatters={}
-if LUAVERSION<5.2 then
+if oldfashioned then
function strings.formatters.new(noconcat)
local t={ _type_="formatter",_connector_=noconcat and "," or "..",_extensions_={},_preamble_=preamble,_environment_={} }
setmetatable(t,{ __index=make,__call=use })
@@ -6796,7 +6868,7 @@ patterns.xmlescape=Cs((P("<")/"&lt;"+P(">")/"&gt;"+P("&")/"&amp;"+P('"')/"&quot;
patterns.texescape=Cs((C(S("#$%\\{}"))/"\\%1"+P(1))^0)
patterns.luaescape=Cs(((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0)
patterns.luaquoted=Cs(Cc('"')*((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0*Cc('"'))
-if LUAVERSION<5.2 then
+if oldfashioned then
add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape")
@@ -9200,7 +9272,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-log"] = package.loaded["trac-log"] or true
--- original size: 32737, stripped down to: 22946
+-- original size: 32922, stripped down to: 23011
if not modules then modules={} end modules ['trac-log']={
version=1.001,
@@ -9210,13 +9282,15 @@ if not modules then modules={} end modules ['trac-log']={
license="see context related readme files"
}
local next,type,select,print=next,type,select,print
-local write_nl,write=texio and texio.write_nl or print,texio and texio.write or io.write
local format,gmatch,find=string.format,string.gmatch,string.find
local concat,insert,remove=table.concat,table.insert,table.remove
local topattern=string.topattern
local utfchar=utf.char
local datetime=os.date
local openfile=io.open
+local runningtex=tex and (tex.jobname or tex.formatname)
+local write_nl=runningtex and texio and texio.write_nl or print
+local write=runningtex and texio and texio.write or io.write
local setmetatableindex=table.setmetatableindex
local formatters=string.formatters
local settings_to_hash=utilities.parsers.settings_to_hash
@@ -9243,7 +9317,7 @@ local function ignore() end
setmetatableindex(logs,function(t,k) t[k]=ignore;return ignore end)
local report,subreport,status,settarget,setformats,settranslations
local direct,subdirect,writer,pushtarget,poptarget,setlogfile,settimedlog,setprocessor,setformatters,newline
-if tex and (tex.jobname or tex.formatname) then
+if runningtex then
if texio.setescape then
texio.setescape(0)
end
@@ -10091,7 +10165,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["trac-inf"] = package.loaded["trac-inf"] or true
--- original size: 8284, stripped down to: 5698
+-- original size: 8097, stripped down to: 5534
if not modules then modules={} end modules ['trac-inf']={
version=1.001,
@@ -10205,10 +10279,7 @@ function statistics.show()
register("control sequences",function()
return format("%s of %s + %s",status.cs_count,status.hash_size,status.hash_extra)
end)
- register("callbacks",function()
- local total,indirect=status.callbacks or 0,status.indirect_callbacks or 0
- return format("%s direct, %s indirect, %s total",total-indirect,indirect,total)
- end)
+ register("callbacks",statistics.callbacks)
if TEXENGINE=="luajittex" and JITSUPPORTED then
local jitstatus=jit.status
if jitstatus then
@@ -10427,7 +10498,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["util-lua"] = package.loaded["util-lua"] or true
--- original size: 6921, stripped down to: 4998
+-- original size: 6621, stripped down to: 4764
if not modules then modules={} end modules ['util-lua']={
version=1.001,
@@ -10463,7 +10534,7 @@ luautilities.suffixes={
tua="tua",
tuc="tuc",
}
-local function register(name)
+local function register(name)
if tracestripping then
report_lua("stripped bytecode from %a",name or "unknown")
end
@@ -10491,17 +10562,12 @@ local function stupidcompile(luafile,lucfile,strip)
end
function luautilities.loadedluacode(fullname,forcestrip,name,macros)
name=name or fullname
- local code,message
if macros then
macros=lua.macros
end
- if macros and macros.enabled then
- local f=io.open(fullname,"rb") local c=f:read("*a") f:close()
- local n=c and macros.resolvestring("--[["..fullname.."]] "..c)
- if n and #n~=#c then
- report_lua("preprocessed file %a: %i => %i bytes",fullname,#c,#n)
- end
- code,message=load(n or c)
+ local code,message
+ if macros then
+ code,message=macros.loaded(fullname,true,false)
else
code,message=loadfile(fullname)
end
@@ -15602,7 +15668,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["lxml-xml"] = package.loaded["lxml-xml"] or true
--- original size: 10412, stripped down to: 7669
+-- original size: 11096, stripped down to: 8243
if not modules then modules={} end modules ['lxml-xml']={
version=1.001,
@@ -15621,6 +15687,9 @@ local xmltostring=xml.tostring
local xmlserialize=xml.serialize
local xmlcollected=xml.collected
local xmlnewhandlers=xml.newhandlers
+local reparsedentity=xml.reparsedentitylpeg
+local unescapedentity=xml.unescapedentitylpeg
+local parsedentity=reparsedentity
local function first(collected)
return collected and collected[1]
end
@@ -15903,6 +15972,24 @@ function xml.text(id,pattern)
return ""
end
end
+function xml.pure(id,pattern)
+ if pattern then
+ local collected=xmlfilter(id,pattern)
+ if collected and #collected>0 then
+ parsedentity=unescapedentity
+ local s=collected and #collected>0 and xmltotext(collected[1]) or ""
+ parsedentity=reparsedentity
+ return s
+ else
+ return ""
+ end
+ else
+ parsedentity=unescapedentity
+ local s=xmltotext(id) or ""
+ parsedentity=reparsedentity
+ return s
+ end
+end
xml.content=text
function xml.position(id,pattern,n)
return position(xmlfilter(id,pattern),n)
@@ -21234,8 +21321,8 @@ end -- of closure
-- used libraries : 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-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 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 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 util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 874849
--- stripped bytes : 317531
+-- original bytes : 877106
+-- stripped bytes : 317575
-- end library merge
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 0c189965f..082e39ee4 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{2018.03.16 22:20}
+\newcontextversion{2018.04.02 15:43}
%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 2dcc7482e..4e087c1c8 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{2018.03.16 22:20}
+\edef\contextversion{2018.04.02 15:43}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/anch-pgr.lua b/tex/context/base/mkiv/anch-pgr.lua
index 18a915692..ca5a5a8af 100644
--- a/tex/context/base/mkiv/anch-pgr.lua
+++ b/tex/context/base/mkiv/anch-pgr.lua
@@ -222,7 +222,7 @@ end
interfaces.implement {
name = "registerbackground",
actions = registerbackground,
- arguments = { "string" }
+ arguments = "string",
}
-- optimized already but we can assume a cycle i.e. prune the last point and then
diff --git a/tex/context/base/mkiv/attr-ini.lua b/tex/context/base/mkiv/attr-ini.lua
index 2a11558a5..67faa9fc0 100644
--- a/tex/context/base/mkiv/attr-ini.lua
+++ b/tex/context/base/mkiv/attr-ini.lua
@@ -170,7 +170,7 @@ end
implement {
name = "defineattribute",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = { attributes.define, context }
}
diff --git a/tex/context/base/mkiv/back-exp.lua b/tex/context/base/mkiv/back-exp.lua
index 2d51d933d..b18679fa2 100644
--- a/tex/context/base/mkiv/back-exp.lua
+++ b/tex/context/base/mkiv/back-exp.lua
@@ -3876,7 +3876,7 @@ implement {
implement {
name = "settagfloat",
actions = structurestags.setfloat,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/buff-ini.lua b/tex/context/base/mkiv/buff-ini.lua
index 2bbec2e4a..1c7912773 100644
--- a/tex/context/base/mkiv/buff-ini.lua
+++ b/tex/context/base/mkiv/buff-ini.lua
@@ -492,7 +492,7 @@ end
implement {
name = "savebuffer",
actions = savebuffer,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
-- we can consider adding a size to avoid unlikely clashes
diff --git a/tex/context/base/mkiv/buff-par.lua b/tex/context/base/mkiv/buff-par.lua
index 33ed4baf0..a2b300a2b 100644
--- a/tex/context/base/mkiv/buff-par.lua
+++ b/tex/context/base/mkiv/buff-par.lua
@@ -203,7 +203,7 @@ end
implement {
name = "defineparallel",
actions = parallel.define,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -236,11 +236,11 @@ implement {
implement {
name = "resetparallel",
actions = parallel.reset,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "doifelseparallel",
actions = { parallel.hassomecontent, commands.doifelse } ,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua
index a305ee202..fcbf01900 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -16,6 +16,9 @@ now and then using mtx-unicode where we check against the latest unicode txt fil
(normally once per year around the tex live code freeze) and checked afterwards for
differences. We could save some bytes by sharing variant tables but it's not worth
the trouble. Some additional data is kept in other files.
+
+For a generic subset of the data here, run "context luatex-basics-prepare.tex" after
+adapting this file.
]]--
local variants_emoji={
@@ -15430,8 +15433,8 @@ characters.data={
},
[0x60C]={
adobename="commaarabic",
- contextname="arabiccomma",
category="po",
+ contextname="arabiccomma",
description="ARABIC COMMA",
direction="cs",
linebreak="is",
@@ -20729,6 +20732,8 @@ characters.data={
category="mn",
description="DEVANAGARI SIGN INVERTED CANDRABINDU",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0x900,
},
@@ -20737,6 +20742,8 @@ characters.data={
category="mn",
description="DEVANAGARI SIGN CANDRABINDU",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
synonyms={ "devanagari anunasika" },
unicodeslot=0x901,
@@ -20746,6 +20753,8 @@ characters.data={
category="mn",
description="DEVANAGARI SIGN ANUSVARA",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
synonyms={ "devanagari bindu" },
unicodeslot=0x902,
@@ -20755,6 +20764,8 @@ characters.data={
category="mc",
description="DEVANAGARI SIGN VISARGA",
direction="l",
+ indic="m",
+ indicmark="r",
linebreak="cm",
unicodeslot=0x903,
},
@@ -20762,6 +20773,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER SHORT A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x904,
},
@@ -20770,6 +20782,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x905,
},
@@ -20778,6 +20791,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x906,
},
@@ -20786,6 +20800,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x907,
},
@@ -20794,6 +20809,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x908,
},
@@ -20802,6 +20818,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x909,
},
@@ -20810,6 +20827,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x90A,
},
@@ -20818,6 +20836,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x90B,
},
@@ -20826,6 +20845,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x90C,
},
@@ -20834,6 +20854,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER CANDRA E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x90D,
},
@@ -20842,6 +20863,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER SHORT E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x90E,
},
@@ -20850,6 +20872,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x90F,
},
@@ -20858,6 +20881,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x910,
},
@@ -20866,6 +20890,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER CANDRA O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x911,
},
@@ -20874,6 +20899,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER SHORT O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x912,
},
@@ -20882,6 +20908,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x913,
},
@@ -20890,6 +20917,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x914,
},
@@ -20898,6 +20926,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x915,
},
@@ -20906,6 +20935,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x916,
},
@@ -20914,6 +20944,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x917,
},
@@ -20922,6 +20953,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x918,
},
@@ -20930,6 +20962,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x919,
},
@@ -20938,6 +20971,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x91A,
},
@@ -20946,6 +20980,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x91B,
},
@@ -20954,6 +20989,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x91C,
},
@@ -20962,6 +20998,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x91D,
},
@@ -20970,6 +21007,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x91E,
},
@@ -20978,6 +21016,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x91F,
},
@@ -20986,6 +21025,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x920,
},
@@ -20994,6 +21034,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x921,
},
@@ -21002,6 +21043,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x922,
},
@@ -21010,6 +21052,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x923,
},
@@ -21018,6 +21061,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x924,
},
@@ -21026,6 +21070,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x925,
},
@@ -21034,6 +21079,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x926,
},
@@ -21042,6 +21088,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x927,
},
@@ -21050,6 +21097,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x928,
},
@@ -21058,6 +21106,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER NNNA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x928, 0x93C },
unicodeslot=0x929,
@@ -21067,6 +21116,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x92A,
},
@@ -21075,6 +21125,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x92B,
},
@@ -21083,6 +21134,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x92C,
},
@@ -21091,6 +21143,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x92D,
},
@@ -21099,6 +21152,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x92E,
},
@@ -21107,6 +21161,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x92F,
},
@@ -21115,6 +21170,9 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="bp",
linebreak="al",
unicodeslot=0x930,
},
@@ -21123,6 +21181,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x930, 0x93C },
unicodeslot=0x931,
@@ -21132,6 +21191,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x932,
},
@@ -21140,6 +21200,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x933,
},
@@ -21148,6 +21209,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER LLLA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x933, 0x93C },
unicodeslot=0x934,
@@ -21157,6 +21219,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x935,
},
@@ -21165,6 +21228,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x936,
},
@@ -21173,6 +21237,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x937,
},
@@ -21181,6 +21246,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x938,
},
@@ -21189,6 +21255,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x939,
},
@@ -21196,6 +21263,8 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN OE",
direction="nsm",
+ indic="d",
+ indicmark="t",
linebreak="cm",
unicodeslot=0x93A,
},
@@ -21203,6 +21272,8 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN OOE",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
unicodeslot=0x93B,
},
@@ -21212,6 +21283,9 @@ characters.data={
combining=0x7,
description="DEVANAGARI SIGN NUKTA",
direction="nsm",
+ indic="o",
+ indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0x93C,
},
@@ -21220,6 +21294,7 @@ characters.data={
category="lo",
description="DEVANAGARI SIGN AVAGRAHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x93D,
},
@@ -21228,6 +21303,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x93E,
},
@@ -21236,6 +21314,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0x93F,
},
@@ -21244,6 +21325,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x940,
},
@@ -21252,6 +21336,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN U",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x941,
},
@@ -21260,6 +21347,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN UU",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x942,
},
@@ -21268,6 +21358,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN VOCALIC R",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x943,
},
@@ -21276,6 +21369,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN VOCALIC RR",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x944,
},
@@ -21284,6 +21380,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN CANDRA E",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x945,
},
@@ -21292,6 +21391,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN SHORT E",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x946,
},
@@ -21300,6 +21402,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN E",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x947,
},
@@ -21308,6 +21413,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN AI",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x948,
},
@@ -21316,6 +21424,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN CANDRA O",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x949,
},
@@ -21324,6 +21435,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN SHORT O",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x94A,
},
@@ -21332,6 +21446,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN O",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x94B,
},
@@ -21340,6 +21457,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN AU",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x94C,
},
@@ -21349,6 +21469,9 @@ characters.data={
combining=0x9,
description="DEVANAGARI SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="b",
linebreak="cm",
synonyms={ "halant" },
unicodeslot=0x94D,
@@ -21357,6 +21480,9 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN PRISHTHAMATRA E",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0x94E,
},
@@ -21364,6 +21490,8 @@ characters.data={
category="mc",
description="DEVANAGARI VOWEL SIGN AW",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
unicodeslot=0x94F,
},
@@ -21372,6 +21500,7 @@ characters.data={
category="lo",
description="DEVANAGARI OM",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x950,
},
@@ -21381,6 +21510,8 @@ characters.data={
combining=0xE6,
description="DEVANAGARI STRESS SIGN UDATTA",
direction="nsm",
+ indic="s",
+ indicmark="t",
linebreak="cm",
unicodeslot=0x951,
},
@@ -21390,6 +21521,9 @@ characters.data={
combining=0xDC,
description="DEVANAGARI STRESS SIGN ANUDATTA",
direction="nsm",
+ indic="s",
+ indicmark="b",
+ indicclass="anudatta",
linebreak="cm",
unicodeslot=0x952,
},
@@ -21399,6 +21533,8 @@ characters.data={
combining=0xE6,
description="DEVANAGARI GRAVE ACCENT",
direction="nsm",
+ indic="s",
+ indicmark="t",
linebreak="cm",
unicodeslot=0x953,
},
@@ -21408,6 +21544,8 @@ characters.data={
combining=0xE6,
description="DEVANAGARI ACUTE ACCENT",
direction="nsm",
+ indic="s",
+ indicmark="t",
linebreak="cm",
unicodeslot=0x954,
},
@@ -21415,6 +21553,8 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN CANDRA LONG E",
direction="nsm",
+ indic="d",
+ indicmark="t",
linebreak="cm",
unicodeslot=0x955,
},
@@ -21422,6 +21562,8 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN UE",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0x956,
},
@@ -21429,6 +21571,8 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN UUE",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0x957,
},
@@ -21437,6 +21581,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER QA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x915, 0x93C },
unicodeslot=0x958,
@@ -21446,6 +21591,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER KHHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x916, 0x93C },
unicodeslot=0x959,
@@ -21455,6 +21601,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER GHHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x917, 0x93C },
unicodeslot=0x95A,
@@ -21464,6 +21611,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER ZA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x91C, 0x93C },
unicodeslot=0x95B,
@@ -21473,6 +21621,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER DDDHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x921, 0x93C },
unicodeslot=0x95C,
@@ -21482,6 +21631,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER RHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x922, 0x93C },
unicodeslot=0x95D,
@@ -21491,6 +21641,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER FA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x92B, 0x93C },
unicodeslot=0x95E,
@@ -21500,6 +21651,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER YYA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x92F, 0x93C },
unicodeslot=0x95F,
@@ -21509,6 +21661,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x960,
},
@@ -21517,6 +21670,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x961,
},
@@ -21525,6 +21679,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x962,
},
@@ -21533,6 +21690,9 @@ characters.data={
category="mn",
description="DEVANAGARI VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x963,
},
@@ -21541,6 +21701,7 @@ characters.data={
category="po",
description="DEVANAGARI DANDA",
direction="l",
+ indic="o",
linebreak="ba",
synonyms={ "devanagari phrase separator", "devanagari purna viram" },
unicodeslot=0x964,
@@ -21550,6 +21711,7 @@ characters.data={
category="po",
description="DEVANAGARI DOUBLE DANDA",
direction="l",
+ indic="o",
linebreak="ba",
synonyms={ "devanagari deergh viram" },
unicodeslot=0x965,
@@ -21559,6 +21721,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x966,
},
@@ -21567,6 +21730,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x967,
},
@@ -21575,6 +21739,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x968,
},
@@ -21583,6 +21748,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x969,
},
@@ -21591,6 +21757,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x96A,
},
@@ -21599,6 +21766,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x96B,
},
@@ -21607,6 +21775,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x96C,
},
@@ -21615,6 +21784,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x96D,
},
@@ -21623,6 +21793,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x96E,
},
@@ -21631,6 +21802,7 @@ characters.data={
category="nd",
description="DEVANAGARI DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x96F,
},
@@ -21639,6 +21811,7 @@ characters.data={
category="po",
description="DEVANAGARI ABBREVIATION SIGN",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x970,
},
@@ -21646,6 +21819,7 @@ characters.data={
category="lm",
description="DEVANAGARI SIGN HIGH SPACING DOT",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x971,
},
@@ -21653,6 +21827,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER CANDRA A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x972,
},
@@ -21660,6 +21835,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER OE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x973,
},
@@ -21667,6 +21843,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER OOE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x974,
},
@@ -21674,6 +21851,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER AW",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x975,
},
@@ -21681,6 +21859,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER UE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x976,
},
@@ -21688,6 +21867,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER UUE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x977,
},
@@ -21695,6 +21875,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER MARWARI DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x978,
},
@@ -21702,6 +21883,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER ZHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x979,
},
@@ -21709,6 +21891,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER HEAVY YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x97A,
},
@@ -21716,6 +21899,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER GGA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x97B,
},
@@ -21723,6 +21907,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER JJA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x97C,
},
@@ -21730,6 +21915,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER GLOTTAL STOP",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x97D,
},
@@ -21737,6 +21923,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER DDDA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x97E,
},
@@ -21744,6 +21931,7 @@ characters.data={
category="lo",
description="DEVANAGARI LETTER BBA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x97F,
},
@@ -21751,6 +21939,7 @@ characters.data={
category="lo",
description="BENGALI ANJI",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x980,
},
@@ -21759,6 +21948,8 @@ characters.data={
category="mn",
description="BENGALI SIGN CANDRABINDU",
direction="nsm",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0x981,
},
@@ -21767,6 +21958,7 @@ characters.data={
category="mc",
description="BENGALI SIGN ANUSVARA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0x982,
},
@@ -21775,6 +21967,7 @@ characters.data={
category="mc",
description="BENGALI SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0x983,
},
@@ -21783,6 +21976,7 @@ characters.data={
category="lo",
description="BENGALI LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x985,
},
@@ -21791,6 +21985,7 @@ characters.data={
category="lo",
description="BENGALI LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x986,
},
@@ -21799,6 +21994,7 @@ characters.data={
category="lo",
description="BENGALI LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x987,
},
@@ -21807,6 +22003,7 @@ characters.data={
category="lo",
description="BENGALI LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x988,
},
@@ -21815,6 +22012,7 @@ characters.data={
category="lo",
description="BENGALI LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x989,
},
@@ -21823,6 +22021,7 @@ characters.data={
category="lo",
description="BENGALI LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x98A,
},
@@ -21831,6 +22030,7 @@ characters.data={
category="lo",
description="BENGALI LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x98B,
},
@@ -21839,6 +22039,7 @@ characters.data={
category="lo",
description="BENGALI LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x98C,
},
@@ -21847,6 +22048,7 @@ characters.data={
category="lo",
description="BENGALI LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x98F,
},
@@ -21855,6 +22057,7 @@ characters.data={
category="lo",
description="BENGALI LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x990,
},
@@ -21863,6 +22066,7 @@ characters.data={
category="lo",
description="BENGALI LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x993,
},
@@ -21871,6 +22075,7 @@ characters.data={
category="lo",
description="BENGALI LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x994,
},
@@ -21879,6 +22084,7 @@ characters.data={
category="lo",
description="BENGALI LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x995,
},
@@ -21887,6 +22093,7 @@ characters.data={
category="lo",
description="BENGALI LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x996,
},
@@ -21895,6 +22102,7 @@ characters.data={
category="lo",
description="BENGALI LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x997,
},
@@ -21903,6 +22111,7 @@ characters.data={
category="lo",
description="BENGALI LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x998,
},
@@ -21911,6 +22120,7 @@ characters.data={
category="lo",
description="BENGALI LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x999,
},
@@ -21919,6 +22129,7 @@ characters.data={
category="lo",
description="BENGALI LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x99A,
},
@@ -21927,6 +22138,7 @@ characters.data={
category="lo",
description="BENGALI LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x99B,
},
@@ -21935,6 +22147,7 @@ characters.data={
category="lo",
description="BENGALI LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x99C,
},
@@ -21943,6 +22156,7 @@ characters.data={
category="lo",
description="BENGALI LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x99D,
},
@@ -21951,6 +22165,7 @@ characters.data={
category="lo",
description="BENGALI LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x99E,
},
@@ -21959,6 +22174,7 @@ characters.data={
category="lo",
description="BENGALI LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x99F,
},
@@ -21967,6 +22183,7 @@ characters.data={
category="lo",
description="BENGALI LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A0,
},
@@ -21975,6 +22192,7 @@ characters.data={
category="lo",
description="BENGALI LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A1,
},
@@ -21983,6 +22201,7 @@ characters.data={
category="lo",
description="BENGALI LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A2,
},
@@ -21991,6 +22210,7 @@ characters.data={
category="lo",
description="BENGALI LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A3,
},
@@ -21999,6 +22219,7 @@ characters.data={
category="lo",
description="BENGALI LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A4,
},
@@ -22007,6 +22228,7 @@ characters.data={
category="lo",
description="BENGALI LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A5,
},
@@ -22015,6 +22237,7 @@ characters.data={
category="lo",
description="BENGALI LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A6,
},
@@ -22023,6 +22246,7 @@ characters.data={
category="lo",
description="BENGALI LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A7,
},
@@ -22031,6 +22255,7 @@ characters.data={
category="lo",
description="BENGALI LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9A8,
},
@@ -22039,6 +22264,7 @@ characters.data={
category="lo",
description="BENGALI LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9AA,
},
@@ -22047,6 +22273,7 @@ characters.data={
category="lo",
description="BENGALI LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9AB,
},
@@ -22055,6 +22282,7 @@ characters.data={
category="lo",
description="BENGALI LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9AC,
},
@@ -22063,6 +22291,7 @@ characters.data={
category="lo",
description="BENGALI LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9AD,
},
@@ -22071,6 +22300,7 @@ characters.data={
category="lo",
description="BENGALI LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9AE,
},
@@ -22079,6 +22309,7 @@ characters.data={
category="lo",
description="BENGALI LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9AF,
},
@@ -22087,6 +22318,9 @@ characters.data={
category="lo",
description="BENGALI LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="as",
linebreak="al",
unicodeslot=0x9B0,
},
@@ -22095,6 +22329,7 @@ characters.data={
category="lo",
description="BENGALI LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9B2,
},
@@ -22103,6 +22338,7 @@ characters.data={
category="lo",
description="BENGALI LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9B6,
},
@@ -22111,6 +22347,7 @@ characters.data={
category="lo",
description="BENGALI LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9B7,
},
@@ -22119,6 +22356,7 @@ characters.data={
category="lo",
description="BENGALI LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9B8,
},
@@ -22127,6 +22365,7 @@ characters.data={
category="lo",
description="BENGALI LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9B9,
},
@@ -22136,6 +22375,9 @@ characters.data={
combining=0x7,
description="BENGALI SIGN NUKTA",
direction="nsm",
+ indic="o",
+ indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0x9BC,
},
@@ -22143,6 +22385,7 @@ characters.data={
category="lo",
description="BENGALI SIGN AVAGRAHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9BD,
},
@@ -22151,6 +22394,9 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0x9BE,
},
@@ -22159,6 +22405,9 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0x9BF,
},
@@ -22167,6 +22416,9 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0x9C0,
},
@@ -22175,6 +22427,9 @@ characters.data={
category="mn",
description="BENGALI VOWEL SIGN U",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x9C1,
},
@@ -22183,6 +22438,9 @@ characters.data={
category="mn",
description="BENGALI VOWEL SIGN UU",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x9C2,
},
@@ -22191,6 +22449,9 @@ characters.data={
category="mn",
description="BENGALI VOWEL SIGN VOCALIC R",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x9C3,
},
@@ -22199,6 +22460,9 @@ characters.data={
category="mn",
description="BENGALI VOWEL SIGN VOCALIC RR",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x9C4,
},
@@ -22207,6 +22471,9 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN E",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0x9C7,
},
@@ -22215,6 +22482,9 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN AI",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0x9C8,
},
@@ -22223,6 +22493,7 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN O",
direction="l",
+ indic="s",
linebreak="cm",
specials={ "char", 0x9C7, 0x9BE },
unicodeslot=0x9CB,
@@ -22232,6 +22503,7 @@ characters.data={
category="mc",
description="BENGALI VOWEL SIGN AU",
direction="l",
+ indic="s",
linebreak="cm",
specials={ "char", 0x9C7, 0x9D7 },
unicodeslot=0x9CC,
@@ -22242,6 +22514,9 @@ characters.data={
combining=0x9,
description="BENGALI SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="b",
linebreak="cm",
synonyms={ "bengali hasant" },
unicodeslot=0x9CD,
@@ -22250,6 +22525,7 @@ characters.data={
category="lo",
description="BENGALI LETTER KHANDA TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0x9CE,
},
@@ -22258,6 +22534,8 @@ characters.data={
category="mc",
description="BENGALI AU LENGTH MARK",
direction="l",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0x9D7,
},
@@ -22266,6 +22544,7 @@ characters.data={
category="lo",
description="BENGALI LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x9A1, 0x9BC },
unicodeslot=0x9DC,
@@ -22275,6 +22554,7 @@ characters.data={
category="lo",
description="BENGALI LETTER RHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x9A2, 0x9BC },
unicodeslot=0x9DD,
@@ -22284,6 +22564,7 @@ characters.data={
category="lo",
description="BENGALI LETTER YYA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0x9AF, 0x9BC },
unicodeslot=0x9DF,
@@ -22293,6 +22574,7 @@ characters.data={
category="lo",
description="BENGALI LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x9E0,
},
@@ -22301,6 +22583,7 @@ characters.data={
category="lo",
description="BENGALI LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0x9E1,
},
@@ -22309,6 +22592,8 @@ characters.data={
category="mn",
description="BENGALI VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="i",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x9E2,
},
@@ -22317,6 +22602,8 @@ characters.data={
category="mn",
description="BENGALI VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="i",
+ indicorder="as",
linebreak="cm",
unicodeslot=0x9E3,
},
@@ -22325,6 +22612,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9E6,
},
@@ -22333,6 +22621,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9E7,
},
@@ -22341,6 +22630,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9E8,
},
@@ -22349,6 +22639,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9E9,
},
@@ -22357,6 +22648,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9EA,
},
@@ -22365,6 +22657,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9EB,
},
@@ -22373,6 +22666,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9EC,
},
@@ -22381,6 +22675,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9ED,
},
@@ -22389,6 +22684,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9EE,
},
@@ -22397,6 +22693,7 @@ characters.data={
category="nd",
description="BENGALI DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0x9EF,
},
@@ -22405,6 +22702,8 @@ characters.data={
category="lo",
description="BENGALI LETTER RA WITH MIDDLE DIAGONAL",
direction="l",
+ indic="o",
+ indicorder="as",
linebreak="al",
shcode=0x9B0,
unicodeslot=0x9F0,
@@ -22414,6 +22713,7 @@ characters.data={
category="lo",
description="BENGALI LETTER RA WITH LOWER DIAGONAL",
direction="l",
+ indic="o",
linebreak="al",
shcode=0x9B0,
unicodeslot=0x9F1,
@@ -22423,6 +22723,7 @@ characters.data={
category="sc",
description="BENGALI RUPEE MARK",
direction="et",
+ indic="o",
linebreak="po",
unicodeslot=0x9F2,
},
@@ -22431,6 +22732,7 @@ characters.data={
category="sc",
description="BENGALI RUPEE SIGN",
direction="et",
+ indic="o",
linebreak="po",
unicodeslot=0x9F3,
},
@@ -22439,6 +22741,7 @@ characters.data={
category="no",
description="BENGALI CURRENCY NUMERATOR ONE",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9F4,
},
@@ -22447,6 +22750,7 @@ characters.data={
category="no",
description="BENGALI CURRENCY NUMERATOR TWO",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9F5,
},
@@ -22455,6 +22759,7 @@ characters.data={
category="no",
description="BENGALI CURRENCY NUMERATOR THREE",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9F6,
},
@@ -22463,6 +22768,7 @@ characters.data={
category="no",
description="BENGALI CURRENCY NUMERATOR FOUR",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9F7,
},
@@ -22471,6 +22777,7 @@ characters.data={
category="no",
description="BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9F8,
},
@@ -22479,6 +22786,7 @@ characters.data={
category="no",
description="BENGALI CURRENCY DENOMINATOR SIXTEEN",
direction="l",
+ indic="o",
linebreak="po",
unicodeslot=0x9F9,
},
@@ -22487,6 +22795,7 @@ characters.data={
category="so",
description="BENGALI ISSHAR",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9FA,
},
@@ -22494,6 +22803,7 @@ characters.data={
category="sc",
description="BENGALI GANDA MARK",
direction="et",
+ indic="o",
linebreak="pr",
unicodeslot=0x9FB,
},
@@ -22501,6 +22811,7 @@ characters.data={
category="lo",
description="BENGALI LETTER VEDIC ANUSVARA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9FC,
},
@@ -22508,6 +22819,7 @@ characters.data={
category="po",
description="BENGALI ABBREVIATION SIGN",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0x9FD,
},
@@ -22515,6 +22827,8 @@ characters.data={
category="mn",
description="GURMUKHI SIGN ADAK BINDI",
direction="nsm",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA01,
},
@@ -22523,6 +22837,8 @@ characters.data={
category="mn",
description="GURMUKHI SIGN BINDI",
direction="nsm",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA02,
},
@@ -22530,6 +22846,7 @@ characters.data={
category="mc",
description="GURMUKHI SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xA03,
},
@@ -22538,6 +22855,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA05,
},
@@ -22546,6 +22864,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA06,
},
@@ -22554,6 +22873,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA07,
},
@@ -22562,6 +22882,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA08,
},
@@ -22570,6 +22891,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA09,
},
@@ -22578,6 +22900,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA0A,
},
@@ -22586,6 +22909,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER EE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA0F,
},
@@ -22594,6 +22918,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA10,
},
@@ -22602,6 +22927,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER OO",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA13,
},
@@ -22610,6 +22936,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA14,
},
@@ -22618,6 +22945,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA15,
},
@@ -22626,6 +22954,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA16,
},
@@ -22634,6 +22963,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA17,
},
@@ -22642,6 +22972,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA18,
},
@@ -22650,6 +22981,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA19,
},
@@ -22658,6 +22990,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA1A,
},
@@ -22666,6 +22999,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA1B,
},
@@ -22674,6 +23008,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA1C,
},
@@ -22682,6 +23017,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA1D,
},
@@ -22690,6 +23026,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA1E,
},
@@ -22698,6 +23035,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA1F,
},
@@ -22706,6 +23044,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA20,
},
@@ -22714,6 +23053,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA21,
},
@@ -22722,6 +23062,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA22,
},
@@ -22730,6 +23071,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA23,
},
@@ -22738,6 +23080,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA24,
},
@@ -22746,6 +23089,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA25,
},
@@ -22754,6 +23098,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA26,
},
@@ -22762,6 +23107,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA27,
},
@@ -22770,6 +23116,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA28,
},
@@ -22778,6 +23125,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA2A,
},
@@ -22786,6 +23134,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA2B,
},
@@ -22794,6 +23143,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA2C,
},
@@ -22802,6 +23152,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA2D,
},
@@ -22810,6 +23161,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA2E,
},
@@ -22818,6 +23170,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA2F,
},
@@ -22826,6 +23179,9 @@ characters.data={
category="lo",
description="GURMUKHI LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="bs",
linebreak="al",
unicodeslot=0xA30,
},
@@ -22834,6 +23190,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA32,
},
@@ -22841,6 +23198,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xA32, 0xA3C },
unicodeslot=0xA33,
@@ -22850,6 +23208,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA35,
},
@@ -22858,6 +23217,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xA38, 0xA3C },
unicodeslot=0xA36,
@@ -22867,6 +23227,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA38,
},
@@ -22875,6 +23236,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA39,
},
@@ -22884,6 +23246,9 @@ characters.data={
combining=0x7,
description="GURMUKHI SIGN NUKTA",
direction="nsm",
+ indic="o",
+ indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xA3C,
},
@@ -22892,6 +23257,9 @@ characters.data={
category="mc",
description="GURMUKHI VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA3E,
},
@@ -22900,6 +23268,9 @@ characters.data={
category="mc",
description="GURMUKHI VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0xA3F,
},
@@ -22908,6 +23279,9 @@ characters.data={
category="mc",
description="GURMUKHI VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA40,
},
@@ -22916,6 +23290,9 @@ characters.data={
category="mn",
description="GURMUKHI VOWEL SIGN U",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA41,
},
@@ -22924,6 +23301,9 @@ characters.data={
category="mn",
description="GURMUKHI VOWEL SIGN UU",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA42,
},
@@ -22932,6 +23312,9 @@ characters.data={
category="mn",
description="GURMUKHI VOWEL SIGN EE",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xA47,
},
@@ -22940,6 +23323,9 @@ characters.data={
category="mn",
description="GURMUKHI VOWEL SIGN AI",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xA48,
},
@@ -22948,6 +23334,9 @@ characters.data={
category="mn",
description="GURMUKHI VOWEL SIGN OO",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xA4B,
},
@@ -22956,6 +23345,9 @@ characters.data={
category="mn",
description="GURMUKHI VOWEL SIGN AU",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xA4C,
},
@@ -22965,6 +23357,9 @@ characters.data={
combining=0x9,
description="GURMUKHI SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xA4D,
},
@@ -22972,6 +23367,7 @@ characters.data={
category="mn",
description="GURMUKHI SIGN UDAAT",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xA51,
},
@@ -22980,6 +23376,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER KHHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xA16, 0xA3C },
unicodeslot=0xA59,
@@ -22989,6 +23386,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER GHHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xA17, 0xA3C },
unicodeslot=0xA5A,
@@ -22998,6 +23396,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER ZA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xA1C, 0xA3C },
unicodeslot=0xA5B,
@@ -23007,6 +23406,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA5C,
},
@@ -23015,6 +23415,7 @@ characters.data={
category="lo",
description="GURMUKHI LETTER FA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xA2B, 0xA3C },
unicodeslot=0xA5E,
@@ -23024,6 +23425,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA66,
},
@@ -23032,6 +23434,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA67,
},
@@ -23040,6 +23443,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA68,
},
@@ -23048,6 +23452,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA69,
},
@@ -23056,6 +23461,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA6A,
},
@@ -23064,6 +23470,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA6B,
},
@@ -23072,6 +23479,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA6C,
},
@@ -23080,6 +23488,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA6D,
},
@@ -23088,6 +23497,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA6E,
},
@@ -23096,6 +23506,7 @@ characters.data={
category="nd",
description="GURMUKHI DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xA6F,
},
@@ -23104,6 +23515,8 @@ characters.data={
category="mn",
description="GURMUKHI TIPPI",
direction="nsm",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA70,
},
@@ -23112,6 +23525,8 @@ characters.data={
category="mn",
description="GURMUKHI ADDAK",
direction="nsm",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xA71,
},
@@ -23120,6 +23535,7 @@ characters.data={
category="lo",
description="GURMUKHI IRI",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xA72,
},
@@ -23128,6 +23544,7 @@ characters.data={
category="lo",
description="GURMUKHI URA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xA73,
},
@@ -23136,6 +23553,7 @@ characters.data={
category="lo",
description="GURMUKHI EK ONKAR",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xA74,
},
@@ -23143,6 +23561,7 @@ characters.data={
category="mn",
description="GURMUKHI SIGN YAKASH",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xA75,
},
@@ -23151,6 +23570,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN CANDRABINDU",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xA81,
},
@@ -23159,6 +23579,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN ANUSVARA",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xA82,
},
@@ -23167,6 +23588,7 @@ characters.data={
category="mc",
description="GUJARATI SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xA83,
},
@@ -23175,6 +23597,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA85,
},
@@ -23183,6 +23606,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA86,
},
@@ -23191,6 +23615,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA87,
},
@@ -23199,6 +23624,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA88,
},
@@ -23207,6 +23633,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA89,
},
@@ -23215,6 +23642,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA8A,
},
@@ -23223,6 +23651,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA8B,
},
@@ -23230,6 +23659,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA8C,
},
@@ -23238,6 +23668,7 @@ characters.data={
category="lo",
description="GUJARATI VOWEL CANDRA E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA8D,
},
@@ -23246,6 +23677,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA8F,
},
@@ -23254,6 +23686,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA90,
},
@@ -23262,6 +23695,7 @@ characters.data={
category="lo",
description="GUJARATI VOWEL CANDRA O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA91,
},
@@ -23270,6 +23704,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA93,
},
@@ -23278,6 +23713,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xA94,
},
@@ -23286,6 +23722,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA95,
},
@@ -23294,6 +23731,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA96,
},
@@ -23302,6 +23740,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA97,
},
@@ -23310,6 +23749,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA98,
},
@@ -23318,6 +23758,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA99,
},
@@ -23326,6 +23767,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA9A,
},
@@ -23334,6 +23776,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA9B,
},
@@ -23342,6 +23785,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA9C,
},
@@ -23350,6 +23794,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA9D,
},
@@ -23358,6 +23803,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA9E,
},
@@ -23366,6 +23812,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xA9F,
},
@@ -23374,6 +23821,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA0,
},
@@ -23382,6 +23830,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA1,
},
@@ -23390,6 +23839,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA2,
},
@@ -23398,6 +23848,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA3,
},
@@ -23406,6 +23857,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA4,
},
@@ -23414,6 +23866,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA5,
},
@@ -23422,6 +23875,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA6,
},
@@ -23430,6 +23884,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA7,
},
@@ -23438,6 +23893,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAA8,
},
@@ -23446,6 +23902,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAAA,
},
@@ -23454,6 +23911,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAAB,
},
@@ -23462,6 +23920,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAAC,
},
@@ -23470,6 +23929,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAAD,
},
@@ -23478,6 +23938,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAAE,
},
@@ -23486,6 +23947,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAAF,
},
@@ -23494,6 +23956,9 @@ characters.data={
category="lo",
description="GUJARATI LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="bp",
linebreak="al",
unicodeslot=0xAB0,
},
@@ -23502,6 +23967,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB2,
},
@@ -23510,6 +23976,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB3,
},
@@ -23518,6 +23985,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB5,
},
@@ -23526,6 +23994,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB6,
},
@@ -23534,6 +24003,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB7,
},
@@ -23542,6 +24012,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB8,
},
@@ -23550,6 +24021,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xAB9,
},
@@ -23559,6 +24031,9 @@ characters.data={
combining=0x7,
description="GUJARATI SIGN NUKTA",
direction="nsm",
+ indic="o",
+ indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xABC,
},
@@ -23566,6 +24041,7 @@ characters.data={
category="lo",
description="GUJARATI SIGN AVAGRAHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xABD,
},
@@ -23574,6 +24050,9 @@ characters.data={
category="mc",
description="GUJARATI VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xABE,
},
@@ -23582,6 +24061,9 @@ characters.data={
category="mc",
description="GUJARATI VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0xABF,
},
@@ -23590,6 +24072,9 @@ characters.data={
category="mc",
description="GUJARATI VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAC0,
},
@@ -23598,6 +24083,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN U",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAC1,
},
@@ -23606,6 +24094,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN UU",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAC2,
},
@@ -23614,6 +24105,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN VOCALIC R",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAC3,
},
@@ -23622,6 +24116,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN VOCALIC RR",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAC4,
},
@@ -23630,6 +24127,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN CANDRA E",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xAC5,
},
@@ -23638,6 +24138,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN E",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xAC7,
},
@@ -23646,6 +24149,9 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN AI",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xAC8,
},
@@ -23654,6 +24160,9 @@ characters.data={
category="mc",
description="GUJARATI VOWEL SIGN CANDRA O",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAC9,
},
@@ -23662,6 +24171,9 @@ characters.data={
category="mc",
description="GUJARATI VOWEL SIGN O",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xACB,
},
@@ -23670,6 +24182,9 @@ characters.data={
category="mc",
description="GUJARATI VOWEL SIGN AU",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xACC,
},
@@ -23679,6 +24194,9 @@ characters.data={
combining=0x9,
description="GUJARATI SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xACD,
},
@@ -23687,6 +24205,7 @@ characters.data={
category="lo",
description="GUJARATI OM",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xAD0,
},
@@ -23695,6 +24214,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xAE0,
},
@@ -23702,6 +24222,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xAE1,
},
@@ -23709,6 +24230,8 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="i",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAE2,
},
@@ -23716,6 +24239,8 @@ characters.data={
category="mn",
description="GUJARATI VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="i",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xAE3,
},
@@ -23724,6 +24249,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAE6,
},
@@ -23732,6 +24258,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAE7,
},
@@ -23740,6 +24267,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAE8,
},
@@ -23748,6 +24276,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAE9,
},
@@ -23756,6 +24285,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAEA,
},
@@ -23764,6 +24294,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAEB,
},
@@ -23772,6 +24303,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAEC,
},
@@ -23780,6 +24312,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAED,
},
@@ -23788,6 +24321,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAEE,
},
@@ -23796,6 +24330,7 @@ characters.data={
category="nd",
description="GUJARATI DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xAEF,
},
@@ -23803,6 +24338,7 @@ characters.data={
category="po",
description="GUJARATI ABBREVIATION SIGN",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xAF0,
},
@@ -23810,6 +24346,7 @@ characters.data={
category="sc",
description="GUJARATI RUPEE SIGN",
direction="et",
+ indic="o",
linebreak="pr",
unicodeslot=0xAF1,
},
@@ -23817,6 +24354,7 @@ characters.data={
category="lo",
description="GUJARATI LETTER ZHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xAF9,
},
@@ -23824,6 +24362,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN SUKUN",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xAFA,
},
@@ -23831,6 +24370,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN SHADDA",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xAFB,
},
@@ -23838,6 +24378,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN MADDAH",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xAFC,
},
@@ -23845,6 +24386,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN THREE-DOT NUKTA ABOVE",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xAFD,
},
@@ -23852,6 +24394,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN CIRCLE NUKTA ABOVE",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xAFE,
},
@@ -23859,6 +24402,7 @@ characters.data={
category="mn",
description="GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xAFF,
},
@@ -23866,6 +24410,8 @@ characters.data={
category="mn",
description="ORIYA SIGN CANDRABINDU",
direction="nsm",
+ indic="o",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xB01,
},
@@ -23873,6 +24419,7 @@ characters.data={
category="mc",
description="ORIYA SIGN ANUSVARA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xB02,
},
@@ -23880,6 +24427,7 @@ characters.data={
category="mc",
description="ORIYA SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xB03,
},
@@ -23887,6 +24435,7 @@ characters.data={
category="lo",
description="ORIYA LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB05,
},
@@ -23894,6 +24443,7 @@ characters.data={
category="lo",
description="ORIYA LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB06,
},
@@ -23901,6 +24451,7 @@ characters.data={
category="lo",
description="ORIYA LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB07,
},
@@ -23908,6 +24459,7 @@ characters.data={
category="lo",
description="ORIYA LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB08,
},
@@ -23915,6 +24467,7 @@ characters.data={
category="lo",
description="ORIYA LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB09,
},
@@ -23922,6 +24475,7 @@ characters.data={
category="lo",
description="ORIYA LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB0A,
},
@@ -23929,6 +24483,7 @@ characters.data={
category="lo",
description="ORIYA LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB0B,
},
@@ -23936,6 +24491,7 @@ characters.data={
category="lo",
description="ORIYA LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB0C,
},
@@ -23943,6 +24499,7 @@ characters.data={
category="lo",
description="ORIYA LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB0F,
},
@@ -23950,6 +24507,7 @@ characters.data={
category="lo",
description="ORIYA LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB10,
},
@@ -23957,6 +24515,7 @@ characters.data={
category="lo",
description="ORIYA LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB13,
},
@@ -23964,6 +24523,7 @@ characters.data={
category="lo",
description="ORIYA LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB14,
},
@@ -23971,6 +24531,7 @@ characters.data={
category="lo",
description="ORIYA LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB15,
},
@@ -23978,6 +24539,7 @@ characters.data={
category="lo",
description="ORIYA LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB16,
},
@@ -23985,6 +24547,7 @@ characters.data={
category="lo",
description="ORIYA LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB17,
},
@@ -23992,6 +24555,7 @@ characters.data={
category="lo",
description="ORIYA LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB18,
},
@@ -23999,6 +24563,7 @@ characters.data={
category="lo",
description="ORIYA LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB19,
},
@@ -24006,6 +24571,7 @@ characters.data={
category="lo",
description="ORIYA LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB1A,
},
@@ -24013,6 +24579,7 @@ characters.data={
category="lo",
description="ORIYA LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB1B,
},
@@ -24020,6 +24587,7 @@ characters.data={
category="lo",
description="ORIYA LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB1C,
},
@@ -24027,6 +24595,7 @@ characters.data={
category="lo",
description="ORIYA LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB1D,
},
@@ -24034,6 +24603,7 @@ characters.data={
category="lo",
description="ORIYA LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB1E,
},
@@ -24041,6 +24611,7 @@ characters.data={
category="lo",
description="ORIYA LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB1F,
},
@@ -24048,6 +24619,7 @@ characters.data={
category="lo",
description="ORIYA LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB20,
},
@@ -24055,6 +24627,7 @@ characters.data={
category="lo",
description="ORIYA LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB21,
},
@@ -24062,6 +24635,7 @@ characters.data={
category="lo",
description="ORIYA LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB22,
},
@@ -24069,6 +24643,7 @@ characters.data={
category="lo",
description="ORIYA LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB23,
},
@@ -24076,6 +24651,7 @@ characters.data={
category="lo",
description="ORIYA LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB24,
},
@@ -24083,6 +24659,7 @@ characters.data={
category="lo",
description="ORIYA LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB25,
},
@@ -24090,6 +24667,7 @@ characters.data={
category="lo",
description="ORIYA LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB26,
},
@@ -24097,6 +24675,7 @@ characters.data={
category="lo",
description="ORIYA LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB27,
},
@@ -24104,6 +24683,7 @@ characters.data={
category="lo",
description="ORIYA LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB28,
},
@@ -24111,6 +24691,7 @@ characters.data={
category="lo",
description="ORIYA LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB2A,
},
@@ -24118,6 +24699,7 @@ characters.data={
category="lo",
description="ORIYA LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB2B,
},
@@ -24125,6 +24707,7 @@ characters.data={
category="lo",
description="ORIYA LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB2C,
},
@@ -24132,6 +24715,7 @@ characters.data={
category="lo",
description="ORIYA LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB2D,
},
@@ -24139,6 +24723,7 @@ characters.data={
category="lo",
description="ORIYA LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB2E,
},
@@ -24146,6 +24731,7 @@ characters.data={
category="lo",
description="ORIYA LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB2F,
},
@@ -24153,6 +24739,9 @@ characters.data={
category="lo",
description="ORIYA LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="am",
linebreak="al",
unicodeslot=0xB30,
},
@@ -24160,6 +24749,7 @@ characters.data={
category="lo",
description="ORIYA LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB32,
},
@@ -24167,6 +24757,7 @@ characters.data={
category="lo",
description="ORIYA LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB33,
},
@@ -24174,6 +24765,7 @@ characters.data={
category="lo",
description="ORIYA LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB35,
},
@@ -24181,6 +24773,7 @@ characters.data={
category="lo",
description="ORIYA LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB36,
},
@@ -24188,6 +24781,7 @@ characters.data={
category="lo",
description="ORIYA LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB37,
},
@@ -24195,6 +24789,7 @@ characters.data={
category="lo",
description="ORIYA LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB38,
},
@@ -24202,6 +24797,7 @@ characters.data={
category="lo",
description="ORIYA LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB39,
},
@@ -24210,6 +24806,9 @@ characters.data={
combining=0x7,
description="ORIYA SIGN NUKTA",
direction="nsm",
+ indic="o",
+ indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xB3C,
},
@@ -24217,6 +24816,7 @@ characters.data={
category="lo",
description="ORIYA SIGN AVAGRAHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB3D,
},
@@ -24224,6 +24824,9 @@ characters.data={
category="mc",
description="ORIYA VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xB3E,
},
@@ -24231,6 +24834,9 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN I",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="am",
linebreak="cm",
unicodeslot=0xB3F,
},
@@ -24238,6 +24844,9 @@ characters.data={
category="mc",
description="ORIYA VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xB40,
},
@@ -24245,6 +24854,9 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN U",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xB41,
},
@@ -24252,6 +24864,9 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN UU",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xB42,
},
@@ -24259,6 +24874,9 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN VOCALIC R",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xB43,
},
@@ -24266,6 +24884,8 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN VOCALIC RR",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xB44,
},
@@ -24273,6 +24893,9 @@ characters.data={
category="mc",
description="ORIYA VOWEL SIGN E",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bh",
linebreak="cm",
unicodeslot=0xB47,
},
@@ -24280,6 +24903,8 @@ characters.data={
category="mc",
description="ORIYA VOWEL SIGN AI",
direction="l",
+ indic="d",
+ indicmark="l",
linebreak="cm",
specials={ "char", 0xB47, 0xB56 },
unicodeslot=0xB48,
@@ -24288,6 +24913,8 @@ characters.data={
category="mc",
description="ORIYA VOWEL SIGN O",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xB47, 0xB3E },
unicodeslot=0xB4B,
@@ -24296,6 +24923,8 @@ characters.data={
category="mc",
description="ORIYA VOWEL SIGN AU",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xB47, 0xB57 },
unicodeslot=0xB4C,
@@ -24305,6 +24934,9 @@ characters.data={
combining=0x9,
description="ORIYA SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xB4D,
},
@@ -24312,6 +24944,8 @@ characters.data={
category="mn",
description="ORIYA AI LENGTH MARK",
direction="nsm",
+ indic="o",
+ indicorder="am",
linebreak="cm",
unicodeslot=0xB56,
},
@@ -24319,6 +24953,8 @@ characters.data={
category="mc",
description="ORIYA AU LENGTH MARK",
direction="l",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xB57,
},
@@ -24326,6 +24962,7 @@ characters.data={
category="lo",
description="ORIYA LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xB21, 0xB3C },
unicodeslot=0xB5C,
@@ -24334,6 +24971,7 @@ characters.data={
category="lo",
description="ORIYA LETTER RHA",
direction="l",
+ indic="c",
linebreak="al",
specials={ "char", 0xB22, 0xB3C },
unicodeslot=0xB5D,
@@ -24342,6 +24980,7 @@ characters.data={
category="lo",
description="ORIYA LETTER YYA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB5F,
},
@@ -24349,6 +24988,7 @@ characters.data={
category="lo",
description="ORIYA LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB60,
},
@@ -24356,6 +24996,7 @@ characters.data={
category="lo",
description="ORIYA LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB61,
},
@@ -24363,6 +25004,8 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xB62,
},
@@ -24370,6 +25013,8 @@ characters.data={
category="mn",
description="ORIYA VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xB63,
},
@@ -24377,6 +25022,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB66,
},
@@ -24384,6 +25030,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB67,
},
@@ -24391,6 +25038,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB68,
},
@@ -24398,6 +25046,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB69,
},
@@ -24405,6 +25054,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB6A,
},
@@ -24412,6 +25062,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB6B,
},
@@ -24419,6 +25070,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB6C,
},
@@ -24426,6 +25078,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB6D,
},
@@ -24433,6 +25086,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB6E,
},
@@ -24440,6 +25094,7 @@ characters.data={
category="nd",
description="ORIYA DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xB6F,
},
@@ -24447,6 +25102,7 @@ characters.data={
category="so",
description="ORIYA ISSHAR",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB70,
},
@@ -24454,6 +25110,7 @@ characters.data={
category="lo",
description="ORIYA LETTER WA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB71,
},
@@ -24461,6 +25118,7 @@ characters.data={
category="no",
description="ORIYA FRACTION ONE QUARTER",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB72,
},
@@ -24468,6 +25126,7 @@ characters.data={
category="no",
description="ORIYA FRACTION ONE HALF",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB73,
},
@@ -24475,6 +25134,7 @@ characters.data={
category="no",
description="ORIYA FRACTION THREE QUARTERS",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB74,
},
@@ -24482,6 +25142,7 @@ characters.data={
category="no",
description="ORIYA FRACTION ONE SIXTEENTH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB75,
},
@@ -24489,6 +25150,7 @@ characters.data={
category="no",
description="ORIYA FRACTION ONE EIGHTH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB76,
},
@@ -24496,6 +25158,7 @@ characters.data={
category="no",
description="ORIYA FRACTION THREE SIXTEENTHS",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xB77,
},
@@ -24503,6 +25166,7 @@ characters.data={
category="mn",
description="TAMIL SIGN ANUSVARA",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xB82,
},
@@ -24510,6 +25174,7 @@ characters.data={
category="lo",
description="TAMIL SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="al",
synonyms={ "tamil aytham" },
unicodeslot=0xB83,
@@ -24518,6 +25183,7 @@ characters.data={
category="lo",
description="TAMIL LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB85,
},
@@ -24525,6 +25191,7 @@ characters.data={
category="lo",
description="TAMIL LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB86,
},
@@ -24532,6 +25199,7 @@ characters.data={
category="lo",
description="TAMIL LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB87,
},
@@ -24539,6 +25207,7 @@ characters.data={
category="lo",
description="TAMIL LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB88,
},
@@ -24546,6 +25215,7 @@ characters.data={
category="lo",
description="TAMIL LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB89,
},
@@ -24553,6 +25223,7 @@ characters.data={
category="lo",
description="TAMIL LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB8A,
},
@@ -24560,6 +25231,7 @@ characters.data={
category="lo",
description="TAMIL LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB8E,
},
@@ -24567,6 +25239,7 @@ characters.data={
category="lo",
description="TAMIL LETTER EE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB8F,
},
@@ -24574,6 +25247,7 @@ characters.data={
category="lo",
description="TAMIL LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB90,
},
@@ -24581,6 +25255,7 @@ characters.data={
category="lo",
description="TAMIL LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB92,
},
@@ -24588,6 +25263,7 @@ characters.data={
category="lo",
description="TAMIL LETTER OO",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xB93,
},
@@ -24595,6 +25271,7 @@ characters.data={
category="lo",
description="TAMIL LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
specials={ "char", 0xB92, 0xBD7 },
unicodeslot=0xB94,
@@ -24603,6 +25280,7 @@ characters.data={
category="lo",
description="TAMIL LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB95,
},
@@ -24610,6 +25288,7 @@ characters.data={
category="lo",
description="TAMIL LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB99,
},
@@ -24617,6 +25296,7 @@ characters.data={
category="lo",
description="TAMIL LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB9A,
},
@@ -24624,6 +25304,7 @@ characters.data={
category="lo",
description="TAMIL LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB9C,
},
@@ -24631,6 +25312,7 @@ characters.data={
category="lo",
description="TAMIL LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB9E,
},
@@ -24638,6 +25320,7 @@ characters.data={
category="lo",
description="TAMIL LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xB9F,
},
@@ -24645,6 +25328,7 @@ characters.data={
category="lo",
description="TAMIL LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBA3,
},
@@ -24652,6 +25336,7 @@ characters.data={
category="lo",
description="TAMIL LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBA4,
},
@@ -24659,6 +25344,7 @@ characters.data={
category="lo",
description="TAMIL LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBA8,
},
@@ -24666,6 +25352,7 @@ characters.data={
category="lo",
description="TAMIL LETTER NNNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBA9,
},
@@ -24673,6 +25360,7 @@ characters.data={
category="lo",
description="TAMIL LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBAA,
},
@@ -24680,6 +25368,7 @@ characters.data={
category="lo",
description="TAMIL LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBAE,
},
@@ -24687,6 +25376,7 @@ characters.data={
category="lo",
description="TAMIL LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBAF,
},
@@ -24694,6 +25384,9 @@ characters.data={
category="lo",
description="TAMIL LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="ap",
linebreak="al",
unicodeslot=0xBB0,
},
@@ -24701,6 +25394,7 @@ characters.data={
category="lo",
description="TAMIL LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB1,
},
@@ -24708,6 +25402,7 @@ characters.data={
category="lo",
description="TAMIL LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB2,
},
@@ -24715,6 +25410,7 @@ characters.data={
category="lo",
description="TAMIL LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB3,
},
@@ -24722,6 +25418,7 @@ characters.data={
category="lo",
description="TAMIL LETTER LLLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB4,
},
@@ -24729,6 +25426,7 @@ characters.data={
category="lo",
description="TAMIL LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB5,
},
@@ -24736,6 +25434,7 @@ characters.data={
category="lo",
description="TAMIL LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB6,
},
@@ -24743,6 +25442,7 @@ characters.data={
category="lo",
description="TAMIL LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB7,
},
@@ -24750,6 +25450,7 @@ characters.data={
category="lo",
description="TAMIL LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB8,
},
@@ -24757,6 +25458,7 @@ characters.data={
category="lo",
description="TAMIL LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xBB9,
},
@@ -24764,6 +25466,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xBBE,
},
@@ -24771,6 +25476,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xBBF,
},
@@ -24778,6 +25486,9 @@ characters.data={
category="mn",
description="TAMIL VOWEL SIGN II",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xBC0,
},
@@ -24785,6 +25496,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN U",
direction="l",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xBC1,
},
@@ -24792,6 +25506,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN UU",
direction="l",
+ indic="d",
+ indicmark="b",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xBC2,
},
@@ -24799,6 +25516,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN E",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bm",
linebreak="cm",
unicodeslot=0xBC6,
},
@@ -24806,6 +25526,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN EE",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bm",
linebreak="cm",
unicodeslot=0xBC7,
},
@@ -24813,6 +25536,9 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN AI",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bm",
linebreak="cm",
unicodeslot=0xBC8,
},
@@ -24820,6 +25546,8 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN O",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xBC6, 0xBBE },
unicodeslot=0xBCA,
@@ -24828,6 +25556,8 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN OO",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xBC7, 0xBBE },
unicodeslot=0xBCB,
@@ -24836,6 +25566,8 @@ characters.data={
category="mc",
description="TAMIL VOWEL SIGN AU",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xBC6, 0xBD7 },
unicodeslot=0xBCC,
@@ -24845,6 +25577,9 @@ characters.data={
combining=0x9,
description="TAMIL SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xBCD,
},
@@ -24852,6 +25587,7 @@ characters.data={
category="lo",
description="TAMIL OM",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xBD0,
},
@@ -24859,6 +25595,8 @@ characters.data={
category="mc",
description="TAMIL AU LENGTH MARK",
direction="l",
+ indic="o",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xBD7,
},
@@ -24866,6 +25604,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBE6,
},
@@ -24873,6 +25612,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBE7,
},
@@ -24880,6 +25620,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBE8,
},
@@ -24887,6 +25628,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBE9,
},
@@ -24894,6 +25636,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBEA,
},
@@ -24901,6 +25644,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBEB,
},
@@ -24908,6 +25652,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBEC,
},
@@ -24915,6 +25660,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBED,
},
@@ -24922,6 +25668,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBEE,
},
@@ -24929,6 +25676,7 @@ characters.data={
category="nd",
description="TAMIL DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xBEF,
},
@@ -24936,6 +25684,7 @@ characters.data={
category="no",
description="TAMIL NUMBER TEN",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xBF0,
},
@@ -24943,6 +25692,7 @@ characters.data={
category="no",
description="TAMIL NUMBER ONE HUNDRED",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xBF1,
},
@@ -24950,6 +25700,7 @@ characters.data={
category="no",
description="TAMIL NUMBER ONE THOUSAND",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xBF2,
},
@@ -24957,6 +25708,7 @@ characters.data={
category="so",
description="TAMIL DAY SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil naal" },
unicodeslot=0xBF3,
@@ -24965,6 +25717,7 @@ characters.data={
category="so",
description="TAMIL MONTH SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil maatham" },
unicodeslot=0xBF4,
@@ -24973,6 +25726,7 @@ characters.data={
category="so",
description="TAMIL YEAR SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil varudam" },
unicodeslot=0xBF5,
@@ -24981,6 +25735,7 @@ characters.data={
category="so",
description="TAMIL DEBIT SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil patru" },
unicodeslot=0xBF6,
@@ -24989,6 +25744,7 @@ characters.data={
category="so",
description="TAMIL CREDIT SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil varavu" },
unicodeslot=0xBF7,
@@ -24997,6 +25753,7 @@ characters.data={
category="so",
description="TAMIL AS ABOVE SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil merpadi" },
unicodeslot=0xBF8,
@@ -25005,6 +25762,7 @@ characters.data={
category="sc",
description="TAMIL RUPEE SIGN",
direction="et",
+ indic="o",
linebreak="pr",
synonyms={ "tamil rupai" },
unicodeslot=0xBF9,
@@ -25013,6 +25771,7 @@ characters.data={
category="so",
description="TAMIL NUMBER SIGN",
direction="on",
+ indic="o",
linebreak="al",
synonyms={ "tamil enn" },
unicodeslot=0xBFA,
@@ -25021,6 +25780,7 @@ characters.data={
category="mn",
description="TELUGU SIGN COMBINING CANDRABINDU ABOVE",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xC00,
},
@@ -25028,6 +25788,7 @@ characters.data={
category="mc",
description="TELUGU SIGN CANDRABINDU",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xC01,
},
@@ -25035,6 +25796,7 @@ characters.data={
category="mc",
description="TELUGU SIGN ANUSVARA",
direction="l",
+ indic="o",
linebreak="cm",
synonyms={ "telugu sunna" },
unicodeslot=0xC02,
@@ -25043,6 +25805,7 @@ characters.data={
category="mc",
description="TELUGU SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xC03,
},
@@ -25050,6 +25813,7 @@ characters.data={
category="lo",
description="TELUGU LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC05,
},
@@ -25057,6 +25821,7 @@ characters.data={
category="lo",
description="TELUGU LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC06,
},
@@ -25064,6 +25829,7 @@ characters.data={
category="lo",
description="TELUGU LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC07,
},
@@ -25071,6 +25837,7 @@ characters.data={
category="lo",
description="TELUGU LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC08,
},
@@ -25078,6 +25845,7 @@ characters.data={
category="lo",
description="TELUGU LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC09,
},
@@ -25085,6 +25853,7 @@ characters.data={
category="lo",
description="TELUGU LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC0A,
},
@@ -25092,6 +25861,7 @@ characters.data={
category="lo",
description="TELUGU LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC0B,
},
@@ -25099,6 +25869,7 @@ characters.data={
category="lo",
description="TELUGU LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC0C,
},
@@ -25106,6 +25877,7 @@ characters.data={
category="lo",
description="TELUGU LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC0E,
},
@@ -25113,6 +25885,7 @@ characters.data={
category="lo",
description="TELUGU LETTER EE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC0F,
},
@@ -25120,6 +25893,7 @@ characters.data={
category="lo",
description="TELUGU LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC10,
},
@@ -25127,6 +25901,7 @@ characters.data={
category="lo",
description="TELUGU LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC12,
},
@@ -25134,6 +25909,7 @@ characters.data={
category="lo",
description="TELUGU LETTER OO",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC13,
},
@@ -25141,6 +25917,7 @@ characters.data={
category="lo",
description="TELUGU LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC14,
},
@@ -25148,6 +25925,7 @@ characters.data={
category="lo",
description="TELUGU LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC15,
},
@@ -25155,6 +25933,7 @@ characters.data={
category="lo",
description="TELUGU LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC16,
},
@@ -25162,6 +25941,7 @@ characters.data={
category="lo",
description="TELUGU LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC17,
},
@@ -25169,6 +25949,7 @@ characters.data={
category="lo",
description="TELUGU LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC18,
},
@@ -25176,6 +25957,7 @@ characters.data={
category="lo",
description="TELUGU LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC19,
},
@@ -25183,6 +25965,7 @@ characters.data={
category="lo",
description="TELUGU LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC1A,
},
@@ -25190,6 +25973,7 @@ characters.data={
category="lo",
description="TELUGU LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC1B,
},
@@ -25197,6 +25981,7 @@ characters.data={
category="lo",
description="TELUGU LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC1C,
},
@@ -25204,6 +25989,7 @@ characters.data={
category="lo",
description="TELUGU LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC1D,
},
@@ -25211,6 +25997,7 @@ characters.data={
category="lo",
description="TELUGU LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC1E,
},
@@ -25218,6 +26005,7 @@ characters.data={
category="lo",
description="TELUGU LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC1F,
},
@@ -25225,6 +26013,7 @@ characters.data={
category="lo",
description="TELUGU LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC20,
},
@@ -25232,6 +26021,7 @@ characters.data={
category="lo",
description="TELUGU LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC21,
},
@@ -25239,6 +26029,7 @@ characters.data={
category="lo",
description="TELUGU LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC22,
},
@@ -25246,6 +26037,7 @@ characters.data={
category="lo",
description="TELUGU LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC23,
},
@@ -25253,6 +26045,7 @@ characters.data={
category="lo",
description="TELUGU LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC24,
},
@@ -25260,6 +26053,7 @@ characters.data={
category="lo",
description="TELUGU LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC25,
},
@@ -25267,6 +26061,7 @@ characters.data={
category="lo",
description="TELUGU LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC26,
},
@@ -25274,6 +26069,7 @@ characters.data={
category="lo",
description="TELUGU LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC27,
},
@@ -25281,6 +26077,7 @@ characters.data={
category="lo",
description="TELUGU LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC28,
},
@@ -25288,6 +26085,7 @@ characters.data={
category="lo",
description="TELUGU LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC2A,
},
@@ -25295,6 +26093,7 @@ characters.data={
category="lo",
description="TELUGU LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC2B,
},
@@ -25302,6 +26101,7 @@ characters.data={
category="lo",
description="TELUGU LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC2C,
},
@@ -25309,6 +26109,7 @@ characters.data={
category="lo",
description="TELUGU LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC2D,
},
@@ -25316,6 +26117,7 @@ characters.data={
category="lo",
description="TELUGU LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC2E,
},
@@ -25323,6 +26125,7 @@ characters.data={
category="lo",
description="TELUGU LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC2F,
},
@@ -25330,6 +26133,9 @@ characters.data={
category="lo",
description="TELUGU LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="ap",
linebreak="al",
unicodeslot=0xC30,
},
@@ -25337,6 +26143,7 @@ characters.data={
category="lo",
description="TELUGU LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC31,
},
@@ -25344,6 +26151,7 @@ characters.data={
category="lo",
description="TELUGU LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC32,
},
@@ -25351,6 +26159,7 @@ characters.data={
category="lo",
description="TELUGU LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC33,
},
@@ -25358,6 +26167,7 @@ characters.data={
category="lo",
description="TELUGU LETTER LLLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC34,
},
@@ -25367,11 +26177,13 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0xC35,
+ indic="c",
},
[0xC36]={
category="lo",
description="TELUGU LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC36,
},
@@ -25379,6 +26191,7 @@ characters.data={
category="lo",
description="TELUGU LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC37,
},
@@ -25386,6 +26199,7 @@ characters.data={
category="lo",
description="TELUGU LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC38,
},
@@ -25393,6 +26207,7 @@ characters.data={
category="lo",
description="TELUGU LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC39,
},
@@ -25400,6 +26215,7 @@ characters.data={
category="lo",
description="TELUGU SIGN AVAGRAHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC3D,
},
@@ -25407,6 +26223,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN AA",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC3E,
},
@@ -25414,6 +26233,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN I",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC3F,
},
@@ -25421,6 +26243,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN II",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC40,
},
@@ -25428,6 +26253,9 @@ characters.data={
category="mc",
description="TELUGU VOWEL SIGN U",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC41,
},
@@ -25435,6 +26263,9 @@ characters.data={
category="mc",
description="TELUGU VOWEL SIGN UU",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC42,
},
@@ -25442,6 +26273,9 @@ characters.data={
category="mc",
description="TELUGU VOWEL SIGN VOCALIC R",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xC43,
},
@@ -25449,6 +26283,9 @@ characters.data={
category="mc",
description="TELUGU VOWEL SIGN VOCALIC RR",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xC44,
},
@@ -25456,6 +26293,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN E",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC46,
},
@@ -25463,6 +26303,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN EE",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC47,
},
@@ -25470,6 +26313,8 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN AI",
direction="nsm",
+ indic="d",
+ indicmark="t",
linebreak="cm",
specials={ "char", 0xC46, 0xC56 },
unicodeslot=0xC48,
@@ -25478,6 +26323,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN O",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC4A,
},
@@ -25485,6 +26333,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN OO",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC4B,
},
@@ -25492,6 +26343,9 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN AU",
direction="nsm",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC4C,
},
@@ -25500,6 +26354,9 @@ characters.data={
combining=0x9,
description="TELUGU SIGN VIRAMA",
direction="nsm",
+ indic="o",
+ indicclass="halant",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xC4D,
},
@@ -25508,6 +26365,8 @@ characters.data={
combining=0x54,
description="TELUGU LENGTH MARK",
direction="nsm",
+ indic="o",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC55,
},
@@ -25516,6 +26375,8 @@ characters.data={
combining=0x5B,
description="TELUGU AI LENGTH MARK",
direction="nsm",
+ indic="o",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xC56,
},
@@ -25523,6 +26384,7 @@ characters.data={
category="lo",
description="TELUGU LETTER TSA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xC58,
},
@@ -25530,6 +26392,7 @@ characters.data={
category="lo",
description="TELUGU LETTER DZA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xC59,
},
@@ -25537,6 +26400,7 @@ characters.data={
category="lo",
description="TELUGU LETTER RRRA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xC5A,
},
@@ -25544,6 +26408,7 @@ characters.data={
category="lo",
description="TELUGU LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC60,
},
@@ -25551,6 +26416,7 @@ characters.data={
category="lo",
description="TELUGU LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC61,
},
@@ -25558,6 +26424,8 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xC62,
},
@@ -25565,6 +26433,8 @@ characters.data={
category="mn",
description="TELUGU VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xC63,
},
@@ -25572,6 +26442,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC66,
},
@@ -25579,6 +26450,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC67,
},
@@ -25586,6 +26458,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC68,
},
@@ -25593,6 +26466,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC69,
},
@@ -25600,6 +26474,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC6A,
},
@@ -25607,6 +26482,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC6B,
},
@@ -25614,6 +26490,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC6C,
},
@@ -25621,6 +26498,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC6D,
},
@@ -25628,6 +26506,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC6E,
},
@@ -25635,6 +26514,7 @@ characters.data={
category="nd",
description="TELUGU DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xC6F,
},
@@ -25642,6 +26522,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC78,
},
@@ -25649,6 +26530,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC79,
},
@@ -25656,6 +26538,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC7A,
},
@@ -25663,6 +26546,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC7B,
},
@@ -25670,6 +26554,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC7C,
},
@@ -25677,6 +26562,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC7D,
},
@@ -25684,6 +26570,7 @@ characters.data={
category="no",
description="TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR",
direction="on",
+ indic="o",
linebreak="al",
unicodeslot=0xC7E,
},
@@ -25691,6 +26578,7 @@ characters.data={
category="so",
description="TELUGU SIGN TUUMU",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xC7F,
},
@@ -25698,6 +26586,7 @@ characters.data={
category="lo",
description="KANNADA SIGN SPACING CANDRABINDU",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xC80,
},
@@ -25705,6 +26594,7 @@ characters.data={
category="mn",
description="KANNADA SIGN CANDRABINDU",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xC81,
},
@@ -25712,6 +26602,7 @@ characters.data={
category="mc",
description="KANNADA SIGN ANUSVARA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xC82,
},
@@ -25719,6 +26610,7 @@ characters.data={
category="mc",
description="KANNADA SIGN VISARGA",
direction="l",
+ indic="o",
linebreak="cm",
unicodeslot=0xC83,
},
@@ -25726,6 +26618,7 @@ characters.data={
category="lo",
description="KANNADA LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC85,
},
@@ -25733,6 +26626,7 @@ characters.data={
category="lo",
description="KANNADA LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC86,
},
@@ -25740,6 +26634,7 @@ characters.data={
category="lo",
description="KANNADA LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC87,
},
@@ -25747,6 +26642,7 @@ characters.data={
category="lo",
description="KANNADA LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC88,
},
@@ -25754,6 +26650,7 @@ characters.data={
category="lo",
description="KANNADA LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC89,
},
@@ -25761,6 +26658,7 @@ characters.data={
category="lo",
description="KANNADA LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC8A,
},
@@ -25768,6 +26666,7 @@ characters.data={
category="lo",
description="KANNADA LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC8B,
},
@@ -25775,6 +26674,7 @@ characters.data={
category="lo",
description="KANNADA LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC8C,
},
@@ -25782,6 +26682,7 @@ characters.data={
category="lo",
description="KANNADA LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC8E,
},
@@ -25789,6 +26690,7 @@ characters.data={
category="lo",
description="KANNADA LETTER EE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC8F,
},
@@ -25796,6 +26698,7 @@ characters.data={
category="lo",
description="KANNADA LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC90,
},
@@ -25803,6 +26706,7 @@ characters.data={
category="lo",
description="KANNADA LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC92,
},
@@ -25810,6 +26714,7 @@ characters.data={
category="lo",
description="KANNADA LETTER OO",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC93,
},
@@ -25817,6 +26722,7 @@ characters.data={
category="lo",
description="KANNADA LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xC94,
},
@@ -25824,6 +26730,7 @@ characters.data={
category="lo",
description="KANNADA LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC95,
},
@@ -25831,6 +26738,7 @@ characters.data={
category="lo",
description="KANNADA LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC96,
},
@@ -25838,6 +26746,7 @@ characters.data={
category="lo",
description="KANNADA LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC97,
},
@@ -25845,6 +26754,7 @@ characters.data={
category="lo",
description="KANNADA LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC98,
},
@@ -25852,6 +26762,7 @@ characters.data={
category="lo",
description="KANNADA LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC99,
},
@@ -25859,6 +26770,7 @@ characters.data={
category="lo",
description="KANNADA LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC9A,
},
@@ -25866,6 +26778,7 @@ characters.data={
category="lo",
description="KANNADA LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC9B,
},
@@ -25873,6 +26786,7 @@ characters.data={
category="lo",
description="KANNADA LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC9C,
},
@@ -25880,6 +26794,7 @@ characters.data={
category="lo",
description="KANNADA LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC9D,
},
@@ -25887,6 +26802,7 @@ characters.data={
category="lo",
description="KANNADA LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC9E,
},
@@ -25894,6 +26810,7 @@ characters.data={
category="lo",
description="KANNADA LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xC9F,
},
@@ -25901,6 +26818,7 @@ characters.data={
category="lo",
description="KANNADA LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA0,
},
@@ -25908,6 +26826,7 @@ characters.data={
category="lo",
description="KANNADA LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA1,
},
@@ -25915,6 +26834,7 @@ characters.data={
category="lo",
description="KANNADA LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA2,
},
@@ -25922,6 +26842,7 @@ characters.data={
category="lo",
description="KANNADA LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA3,
},
@@ -25929,6 +26850,7 @@ characters.data={
category="lo",
description="KANNADA LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA4,
},
@@ -25936,6 +26858,7 @@ characters.data={
category="lo",
description="KANNADA LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA5,
},
@@ -25943,6 +26866,7 @@ characters.data={
category="lo",
description="KANNADA LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA6,
},
@@ -25950,6 +26874,7 @@ characters.data={
category="lo",
description="KANNADA LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA7,
},
@@ -25957,6 +26882,7 @@ characters.data={
category="lo",
description="KANNADA LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCA8,
},
@@ -25964,6 +26890,7 @@ characters.data={
category="lo",
description="KANNADA LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCAA,
},
@@ -25971,6 +26898,7 @@ characters.data={
category="lo",
description="KANNADA LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCAB,
},
@@ -25978,6 +26906,7 @@ characters.data={
category="lo",
description="KANNADA LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCAC,
},
@@ -25985,6 +26914,7 @@ characters.data={
category="lo",
description="KANNADA LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCAD,
},
@@ -25992,6 +26922,7 @@ characters.data={
category="lo",
description="KANNADA LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCAE,
},
@@ -25999,6 +26930,7 @@ characters.data={
category="lo",
description="KANNADA LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCAF,
},
@@ -26006,6 +26938,9 @@ characters.data={
category="lo",
description="KANNADA LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="ap",
linebreak="al",
unicodeslot=0xCB0,
},
@@ -26013,6 +26948,7 @@ characters.data={
category="lo",
description="KANNADA LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB1,
},
@@ -26020,6 +26956,7 @@ characters.data={
category="lo",
description="KANNADA LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB2,
},
@@ -26027,6 +26964,7 @@ characters.data={
category="lo",
description="KANNADA LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB3,
},
@@ -26034,6 +26972,7 @@ characters.data={
category="lo",
description="KANNADA LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB5,
},
@@ -26041,6 +26980,7 @@ characters.data={
category="lo",
description="KANNADA LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB6,
},
@@ -26048,6 +26988,7 @@ characters.data={
category="lo",
description="KANNADA LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB7,
},
@@ -26055,6 +26996,7 @@ characters.data={
category="lo",
description="KANNADA LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB8,
},
@@ -26062,6 +27004,7 @@ characters.data={
category="lo",
description="KANNADA LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCB9,
},
@@ -26070,6 +27013,9 @@ characters.data={
combining=0x7,
description="KANNADA SIGN NUKTA",
direction="nsm",
+ indic="o",
+ indicmark="b",
+ indicclass="nukta",
linebreak="cm",
unicodeslot=0xCBC,
},
@@ -26077,6 +27023,7 @@ characters.data={
category="lo",
description="KANNADA SIGN AVAGRAHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xCBD,
},
@@ -26084,6 +27031,9 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCBE,
},
@@ -26091,6 +27041,9 @@ characters.data={
category="mn",
description="KANNADA VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCBF,
},
@@ -26098,6 +27051,8 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
specials={ "char", 0xCBF, 0xCD5 },
unicodeslot=0xCC0,
@@ -26106,6 +27061,9 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN U",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCC1,
},
@@ -26113,6 +27071,9 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN UU",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCC2,
},
@@ -26120,6 +27081,9 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN VOCALIC R",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xCC3,
},
@@ -26127,6 +27091,9 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN VOCALIC RR",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xCC4,
},
@@ -26134,6 +27101,9 @@ characters.data={
category="mn",
description="KANNADA VOWEL SIGN E",
direction="l",
+ indic="d",
+ indicmark="t",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCC6,
},
@@ -26141,6 +27111,8 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN EE",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
specials={ "char", 0xCC6, 0xCD5 },
unicodeslot=0xCC7,
@@ -26149,6 +27121,8 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN AI",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
specials={ "char", 0xCC6, 0xCD6 },
unicodeslot=0xCC8,
@@ -26157,6 +27131,8 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN O",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
specials={ "char", 0xCC6, 0xCC2 },
unicodeslot=0xCCA,
@@ -26165,6 +27141,8 @@ characters.data={
category="mc",
description="KANNADA VOWEL SIGN OO",
direction="l",
+ indic="d",
+ indicmark="r",
linebreak="cm",
specials={ "char", 0xCCA, 0xCD5 },
unicodeslot=0xCCB,
@@ -26173,6 +27151,9 @@ characters.data={
category="mn",
description="KANNADA VOWEL SIGN AU",
direction="nsm",
+ indic="d",
+ indicmark="r",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCCC,
},
@@ -26181,6 +27162,8 @@ characters.data={
combining=0x9,
description="KANNADA SIGN VIRAMA",
direction="nsm",
+ indic="s",
+ indicclass="halant",
linebreak="cm",
unicodeslot=0xCCD,
},
@@ -26188,6 +27171,8 @@ characters.data={
category="mc",
description="KANNADA LENGTH MARK",
direction="l",
+ indic="o",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xCD5,
},
@@ -26195,6 +27180,8 @@ characters.data={
category="mc",
description="KANNADA AI LENGTH MARK",
direction="l",
+ indic="o",
+ indicorder="as",
linebreak="cm",
unicodeslot=0xCD6,
},
@@ -26202,6 +27189,7 @@ characters.data={
category="lo",
description="KANNADA LETTER FA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xCDE,
},
@@ -26209,6 +27197,7 @@ characters.data={
category="lo",
description="KANNADA LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xCE0,
},
@@ -26216,6 +27205,7 @@ characters.data={
category="lo",
description="KANNADA LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xCE1,
},
@@ -26223,6 +27213,9 @@ characters.data={
category="mn",
description="KANNADA VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCE2,
},
@@ -26230,6 +27223,9 @@ characters.data={
category="mn",
description="KANNADA VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="d",
+ indicmark="b",
+ indicorder="bs",
linebreak="cm",
unicodeslot=0xCE3,
},
@@ -26237,6 +27233,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCE6,
},
@@ -26244,6 +27241,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCE7,
},
@@ -26251,6 +27249,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCE8,
},
@@ -26258,6 +27257,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCE9,
},
@@ -26265,6 +27265,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCEA,
},
@@ -26272,6 +27273,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCEB,
},
@@ -26279,6 +27281,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCEC,
},
@@ -26286,6 +27289,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCED,
},
@@ -26293,6 +27297,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCEE,
},
@@ -26300,6 +27305,7 @@ characters.data={
category="nd",
description="KANNADA DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xCEF,
},
@@ -26307,6 +27313,7 @@ characters.data={
category="so",
description="KANNADA SIGN JIHVAMULIYA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xCF1,
},
@@ -26314,6 +27321,7 @@ characters.data={
category="so",
description="KANNADA SIGN UPADHMANIYA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xCF2,
},
@@ -26321,6 +27329,7 @@ characters.data={
category="mn",
description="MALAYALAM SIGN COMBINING ANUSVARA ABOVE",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xD00,
},
@@ -26328,6 +27337,7 @@ characters.data={
category="mn",
description="MALAYALAM SIGN CANDRABINDU",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xD01,
},
@@ -26335,6 +27345,7 @@ characters.data={
category="mc",
description="MALAYALAM SIGN ANUSVARA",
direction="l",
+ indic="m",
linebreak="cm",
unicodeslot=0xD02,
},
@@ -26342,6 +27353,7 @@ characters.data={
category="mc",
description="MALAYALAM SIGN VISARGA",
direction="l",
+ indic="m",
linebreak="cm",
unicodeslot=0xD03,
},
@@ -26349,6 +27361,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER A",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD05,
},
@@ -26356,6 +27369,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER AA",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD06,
},
@@ -26363,6 +27377,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER I",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD07,
},
@@ -26370,6 +27385,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD08,
},
@@ -26377,6 +27393,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER U",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD09,
},
@@ -26384,6 +27401,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER UU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD0A,
},
@@ -26391,6 +27409,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER VOCALIC R",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD0B,
},
@@ -26398,6 +27417,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER VOCALIC L",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD0C,
},
@@ -26405,6 +27425,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER E",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD0E,
},
@@ -26412,6 +27433,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER EE",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD0F,
},
@@ -26419,6 +27441,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER AI",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD10,
},
@@ -26426,6 +27449,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER O",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD12,
},
@@ -26433,6 +27457,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER OO",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD13,
},
@@ -26440,6 +27465,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER AU",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD14,
},
@@ -26447,6 +27473,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER KA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD15,
},
@@ -26454,6 +27481,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER KHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD16,
},
@@ -26461,6 +27489,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER GA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD17,
},
@@ -26468,6 +27497,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER GHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD18,
},
@@ -26475,6 +27505,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER NGA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD19,
},
@@ -26482,6 +27513,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD1A,
},
@@ -26489,6 +27521,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD1B,
},
@@ -26496,6 +27529,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER JA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD1C,
},
@@ -26503,6 +27537,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER JHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD1D,
},
@@ -26510,6 +27545,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER NYA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD1E,
},
@@ -26517,6 +27553,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER TTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD1F,
},
@@ -26524,6 +27561,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER TTHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD20,
},
@@ -26531,6 +27569,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER DDA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD21,
},
@@ -26538,6 +27577,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER DDHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD22,
},
@@ -26545,6 +27585,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER NNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD23,
},
@@ -26552,6 +27593,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER TA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD24,
},
@@ -26559,6 +27601,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER THA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD25,
},
@@ -26566,6 +27609,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER DA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD26,
},
@@ -26573,6 +27617,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER DHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD27,
},
@@ -26580,6 +27625,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER NA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD28,
},
@@ -26587,6 +27633,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER NNNA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD29,
},
@@ -26594,6 +27641,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER PA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD2A,
},
@@ -26601,6 +27649,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER PHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD2B,
},
@@ -26608,6 +27657,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER BA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD2C,
},
@@ -26615,6 +27665,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER BHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD2D,
},
@@ -26622,6 +27673,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER MA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD2E,
},
@@ -26629,6 +27681,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER YA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD2F,
},
@@ -26636,6 +27689,9 @@ characters.data={
category="lo",
description="MALAYALAM LETTER RA",
direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="am",
linebreak="al",
unicodeslot=0xD30,
},
@@ -26643,6 +27699,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER RRA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD31,
},
@@ -26650,6 +27707,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER LA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD32,
},
@@ -26657,6 +27715,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER LLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD33,
},
@@ -26664,6 +27723,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER LLLA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD34,
},
@@ -26671,6 +27731,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER VA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD35,
},
@@ -26678,6 +27739,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER SHA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD36,
},
@@ -26685,6 +27747,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER SSA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD37,
},
@@ -26692,6 +27755,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER SA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD38,
},
@@ -26699,6 +27763,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER HA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD39,
},
@@ -26706,6 +27771,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER TTTA",
direction="l",
+ indic="c",
linebreak="al",
unicodeslot=0xD3A,
},
@@ -26714,6 +27780,7 @@ characters.data={
combining=0x9,
description="MALAYALAM SIGN VERTICAL BAR VIRAMA",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xD3B,
},
@@ -26722,6 +27789,7 @@ characters.data={
combining=0x9,
description="MALAYALAM SIGN CIRCULAR VIRAMA",
direction="nsm",
+ indic="o",
linebreak="cm",
unicodeslot=0xD3C,
},
@@ -26729,6 +27797,7 @@ characters.data={
category="lo",
description="MALAYALAM SIGN AVAGRAHA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD3D,
},
@@ -26736,6 +27805,9 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN AA",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD3E,
},
@@ -26743,6 +27815,9 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN I",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD3F,
},
@@ -26750,6 +27825,9 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN II",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD40,
},
@@ -26757,6 +27835,9 @@ characters.data={
category="mn",
description="MALAYALAM VOWEL SIGN U",
direction="nsm",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD41,
},
@@ -26764,6 +27845,9 @@ characters.data={
category="mn",
description="MALAYALAM VOWEL SIGN UU",
direction="nsm",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD42,
},
@@ -26771,6 +27855,9 @@ characters.data={
category="mn",
description="MALAYALAM VOWEL SIGN VOCALIC R",
direction="nsm",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD43,
},
@@ -26778,6 +27865,8 @@ characters.data={
category="mn",
description="MALAYALAM VOWEL SIGN VOCALIC RR",
direction="nsm",
+ indic="d",
+ indicmark="r",
linebreak="cm",
unicodeslot=0xD44,
},
@@ -26785,6 +27874,9 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN E",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bm",
linebreak="cm",
unicodeslot=0xD46,
},
@@ -26792,6 +27884,9 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN EE",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bm",
linebreak="cm",
unicodeslot=0xD47,
},
@@ -26799,6 +27894,9 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN AI",
direction="l",
+ indic="d",
+ indicmark="l",
+ indicorder="bm",
linebreak="cm",
unicodeslot=0xD48,
},
@@ -26806,6 +27904,8 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN O",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xD46, 0xD3E },
unicodeslot=0xD4A,
@@ -26814,6 +27914,8 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN OO",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xD47, 0xD3E },
unicodeslot=0xD4B,
@@ -26822,6 +27924,8 @@ characters.data={
category="mc",
description="MALAYALAM VOWEL SIGN AU",
direction="l",
+ indic="d",
+ indicmark="s",
linebreak="cm",
specials={ "char", 0xD46, 0xD57 },
unicodeslot=0xD4C,
@@ -26831,6 +27935,8 @@ characters.data={
combining=0x9,
description="MALAYALAM SIGN VIRAMA",
direction="nsm",
+ indic="s",
+ indicclass="halant",
linebreak="cm",
synonyms={ "malayalam chandrakkala", "malayalam vowel half-u" },
unicodeslot=0xD4D,
@@ -26839,6 +27945,8 @@ characters.data={
category="lo",
description="MALAYALAM LETTER DOT REPH",
direction="l",
+ indic="o",
+ indicmark="t",
linebreak="al",
unicodeslot=0xD4E,
},
@@ -26846,6 +27954,7 @@ characters.data={
category="so",
description="MALAYALAM SIGN PARA",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD4F,
},
@@ -26853,6 +27962,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU M",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD54,
},
@@ -26860,6 +27970,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU Y",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD55,
},
@@ -26867,6 +27978,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU LLL",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD56,
},
@@ -26874,6 +27986,9 @@ characters.data={
category="mc",
description="MALAYALAM AU LENGTH MARK",
direction="l",
+ indic="d",
+ indicmark="r",
+ indicorder="ap",
linebreak="cm",
unicodeslot=0xD57,
},
@@ -26881,6 +27996,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD58,
},
@@ -26888,6 +28004,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE FORTIETH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD59,
},
@@ -26895,6 +28012,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION THREE EIGHTIETHS",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD5A,
},
@@ -26902,6 +28020,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE TWENTIETH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD5B,
},
@@ -26909,6 +28028,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE TENTH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD5C,
},
@@ -26916,6 +28036,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION THREE TWENTIETHS",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD5D,
},
@@ -26923,6 +28044,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE FIFTH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD5E,
},
@@ -26930,6 +28052,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER ARCHAIC II",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD5F,
},
@@ -26937,6 +28060,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER VOCALIC RR",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD60,
},
@@ -26944,6 +28068,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER VOCALIC LL",
direction="l",
+ indic="i",
linebreak="al",
unicodeslot=0xD61,
},
@@ -26951,6 +28076,8 @@ characters.data={
category="mn",
description="MALAYALAM VOWEL SIGN VOCALIC L",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xD62,
},
@@ -26958,6 +28085,8 @@ characters.data={
category="mn",
description="MALAYALAM VOWEL SIGN VOCALIC LL",
direction="nsm",
+ indic="d",
+ indicmark="b",
linebreak="cm",
unicodeslot=0xD63,
},
@@ -26965,6 +28094,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT ZERO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD66,
},
@@ -26972,6 +28102,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT ONE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD67,
},
@@ -26979,6 +28110,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT TWO",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD68,
},
@@ -26986,6 +28118,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT THREE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD69,
},
@@ -26993,6 +28126,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT FOUR",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD6A,
},
@@ -27000,6 +28134,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT FIVE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD6B,
},
@@ -27007,6 +28142,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT SIX",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD6C,
},
@@ -27014,6 +28150,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT SEVEN",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD6D,
},
@@ -27021,6 +28158,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT EIGHT",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD6E,
},
@@ -27028,6 +28166,7 @@ characters.data={
category="nd",
description="MALAYALAM DIGIT NINE",
direction="l",
+ indic="o",
linebreak="nu",
unicodeslot=0xD6F,
},
@@ -27035,6 +28174,7 @@ characters.data={
category="no",
description="MALAYALAM NUMBER TEN",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD70,
},
@@ -27042,6 +28182,7 @@ characters.data={
category="no",
description="MALAYALAM NUMBER ONE HUNDRED",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD71,
},
@@ -27049,6 +28190,7 @@ characters.data={
category="no",
description="MALAYALAM NUMBER ONE THOUSAND",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD72,
},
@@ -27056,6 +28198,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE QUARTER",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD73,
},
@@ -27063,6 +28206,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE HALF",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD74,
},
@@ -27070,6 +28214,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION THREE QUARTERS",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD75,
},
@@ -27077,6 +28222,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE SIXTEENTH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD76,
},
@@ -27084,6 +28230,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION ONE EIGHTH",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD77,
},
@@ -27091,6 +28238,7 @@ characters.data={
category="no",
description="MALAYALAM FRACTION THREE SIXTEENTHS",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD78,
},
@@ -27098,6 +28246,7 @@ characters.data={
category="so",
description="MALAYALAM DATE MARK",
direction="l",
+ indic="o",
linebreak="po",
unicodeslot=0xD79,
},
@@ -27105,6 +28254,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU NN",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD7A,
},
@@ -27112,6 +28262,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU N",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD7B,
},
@@ -27119,6 +28270,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU RR",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD7C,
},
@@ -27126,6 +28278,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU L",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD7D,
},
@@ -27133,6 +28286,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU LL",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD7E,
},
@@ -27140,6 +28294,7 @@ characters.data={
category="lo",
description="MALAYALAM LETTER CHILLU K",
direction="l",
+ indic="o",
linebreak="al",
unicodeslot=0xD7F,
},
@@ -72295,6 +73450,7 @@ characters.data={
},
[0x25CC]={
adobename="dottedcircle",
+ contextname="dottedcircle",
category="so",
description="DOTTED CIRCLE",
direction="on",
@@ -117560,6 +118716,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT ZERO",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E0,
},
@@ -117568,6 +118726,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT ONE",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E1,
},
@@ -117576,6 +118736,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT TWO",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E2,
},
@@ -117584,6 +118746,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT THREE",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E3,
},
@@ -117592,6 +118756,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT FOUR",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E4,
},
@@ -117600,6 +118766,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT FIVE",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E5,
},
@@ -117608,6 +118776,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT SIX",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E6,
},
@@ -117616,6 +118786,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT SEVEN",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E7,
},
@@ -117624,6 +118796,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT EIGHT",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E8,
},
@@ -117632,6 +118806,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI DIGIT NINE",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8E9,
},
@@ -117640,6 +118816,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER A",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8EA,
},
@@ -117648,6 +118826,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER U",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8EB,
},
@@ -117656,6 +118836,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER KA",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8EC,
},
@@ -117664,6 +118846,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER NA",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8ED,
},
@@ -117672,6 +118856,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER PA",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8EE,
},
@@ -117680,6 +118866,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER RA",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8EF,
},
@@ -117688,6 +118876,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI LETTER VI",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8F0,
},
@@ -117696,6 +118886,8 @@ characters.data={
combining=0xE6,
description="COMBINING DEVANAGARI SIGN AVAGRAHA",
direction="nsm",
+ indic="m",
+ indicmark="t",
linebreak="cm",
unicodeslot=0xA8F1,
},
diff --git a/tex/context/base/mkiv/char-tex.lua b/tex/context/base/mkiv/char-tex.lua
index f123f0092..065152881 100644
--- a/tex/context/base/mkiv/char-tex.lua
+++ b/tex/context/base/mkiv/char-tex.lua
@@ -847,7 +847,7 @@ end
interfaces.implement {
name = "overloaduppercase",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(c,u)
overload(c,u,"uccode","uccodes")
end
@@ -855,7 +855,7 @@ interfaces.implement {
interfaces.implement {
name = "overloadlowercase",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(c,u)
overload(c,u,"lccode","lccodes")
end
diff --git a/tex/context/base/mkiv/char-utf.lua b/tex/context/base/mkiv/char-utf.lua
index 8f46ae98f..4dc7eba7a 100644
--- a/tex/context/base/mkiv/char-utf.lua
+++ b/tex/context/base/mkiv/char-utf.lua
@@ -269,7 +269,7 @@ if interfaces then -- eventually this goes to char-ctx.lua
interfaces.implement {
name = "addgrapheme",
actions = utffilters.addgrapheme,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
end
diff --git a/tex/context/base/mkiv/chem-str.lua b/tex/context/base/mkiv/chem-str.lua
index 1ad16564c..7581a61d1 100644
--- a/tex/context/base/mkiv/chem-str.lua
+++ b/tex/context/base/mkiv/chem-str.lua
@@ -808,7 +808,7 @@ implement {
implement {
name = "definechemical",
actions = chemistry.define,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
implement {
@@ -843,7 +843,7 @@ implement {
implement {
name = "chemicalcomponent",
actions = chemistry.component,
- arguments = { "string", "string", "string", "string" }
+ arguments = "4 strings",
}
-- todo: top / bottom
diff --git a/tex/context/base/mkiv/cldf-ini.lua b/tex/context/base/mkiv/cldf-ini.lua
index a2814877d..8cd6408d3 100644
--- a/tex/context/base/mkiv/cldf-ini.lua
+++ b/tex/context/base/mkiv/cldf-ini.lua
@@ -319,7 +319,43 @@ local interfacescanners = setmetatablenewindex(function(t,k,v)
rawset(t,k,v)
end)
+function interfaces.registerscanner(name,action,protected,public,call)
+ if storedscanners[name] then
+ -- report_cld("warning: scanner %a is already set",k)
+ -- os.exit()
+ -- \scan_<k> is already in the format
+ -- report_cld("using interface scanner: %s",k)
+ else
+ storedscanners[name] = true
+-- if protected then
+-- -- report_cld("installing expandable interface scanner: %s",k)
+-- if public then
+-- context("\\installprotectedctxscanner{%s}{interfaces.scanners.%s}",name,name)
+-- else
+-- context("\\installprotectedctxscanner{clf_%s}{interfaces.scanners.%s}",name,name)
+-- end
+-- else
+-- -- report_cld("installing protected interface scanner: %s",k)
+-- if public then
+-- context("\\installctxscanner{%s}{interfaces.scanners.%s}",name,name)
+-- else
+-- context("\\installctxscanner{clf_%s}{interfaces.scanners.%s}",name,name)
+-- end
+-- end
+ -- report_cld("installing interface scanner: %s",k)
+ context("\\install%sctxscanner%s{%s%s}{interfaces.scanners.%s}",
+ protected and "protected" or "",
+ call and "call" or "",
+ public and "" or "clf_",
+ name,
+ name
+ )
+ end
+ rawset(interfacescanners,name,action)
+end
+
interfaces.scanners = storage.mark(interfacescanners)
+interfaces._ = interfaces.scanners
context.functions = {
register = registerfunction,
@@ -633,6 +669,20 @@ end
local containseol = patterns.containseol
+local s_cldl_option_b = "[\\cldl"
+local s_cldl_option_f = "[\\cldl" -- add space (not needed)
+local s_cldl_option_e = "]"
+local s_cldl_option_s = "\\cldl"
+local s_cldl_argument_b = "{\\cldl"
+local s_cldl_argument_f = "{\\cldl "
+local s_cldl_argument_e = "}"
+
+-- local s_cldl_option_b = "["
+-- local s_cldl_option_f = "" -- add space (not needed)
+-- local s_cldl_option_s = ""
+-- local s_cldl_argument_b = "{"
+-- local s_cldl_argument_f = "{ "
+
local function writer(parent,command,...) -- already optimized before call
flush(currentcatcodes,command) -- todo: ctx|prt|texcatcodes
local direct = false
@@ -699,8 +749,7 @@ local function writer(parent,command,...) -- already optimized before call
elseif tn == 1 then -- some 20% faster than the next loop
local tj = ti[1]
if type(tj) == "function" then
- flush(currentcatcodes,"[\\cldl",storefunction(tj),"]")
- -- flush(currentcatcodes,"[",storefunction(tj),"]")
+ flush(currentcatcodes,s_cldl_option_b,storefunction(tj),s_cldl_option_e)
else
flush(currentcatcodes,"[",tj,"]")
end
@@ -710,11 +759,9 @@ local function writer(parent,command,...) -- already optimized before call
local tj = ti[j]
if type(tj) == "function" then
if j == tn then
- flush(currentcatcodes,"\\cldl",storefunction(tj),"]")
- -- flush(currentcatcodes,"",storefunction(tj),"]")
+ flush(currentcatcodes,s_cldl_option_s,storefunction(tj),"]")
else
- flush(currentcatcodes,"\\cldl",storefunction(tj),",")
- -- flush(currentcatcodes,"",storefunction(tj),",")
+ flush(currentcatcodes,s_cldl_option_s,storefunction(tj),",")
end
else
if j == tn then
@@ -726,8 +773,8 @@ local function writer(parent,command,...) -- already optimized before call
end
end
elseif typ == "function" then
- flush(currentcatcodes,"{\\cldl ",storefunction(ti),"}") -- todo: ctx|prt|texcatcodes
- -- flush(currentcatcodes,"{",storefunction(ti),"}") -- todo: ctx|prt|texcatcodes
+ -- todo: ctx|prt|texcatcodes
+ flush(currentcatcodes,s_cldl_argument_f,storefunction(ti),s_cldl_argument_e)
elseif typ == "boolean" then
if ti then
flushdirect(currentcatcodes,"\r")
@@ -737,8 +784,7 @@ local function writer(parent,command,...) -- already optimized before call
elseif typ == "thread" then
report_context("coroutines not supported as we cannot yield across boundaries")
elseif isnode(ti) then -- slow
- flush(currentcatcodes,"{\\cldl",storenode(ti),"}")
- -- flush(currentcatcodes,"{",storenode(ti),"}")
+ flush(currentcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
else
report_context("error: %a gets a weird argument %a",command,ti)
end
@@ -762,11 +808,9 @@ end
-- if tp == "string" or tp == "number"then
-- flush(prtcatcodes,"{",ti,"}")
-- elseif tp == "function" then
--- flush(prtcatcodes,"{\\cldl ",storefunction(ti),"}")
--- -- flush(currentcatcodes,"{",storefunction(ti),"}") -- todo: ctx|prt|texcatcodes
+-- flush(prtcatcodes,s_cldl_argument_f,storefunction(ti),s_cldl_argument_e)
-- elseif isnode(ti) then
--- flush(prtcatcodes,"{\\cldl",storenode(ti),"}")
--- -- flush(currentcatcodes,"{",storenode(ti),"}")
+-- flush(prtcatcodes,s_cldl_argument_b,storenode(ti),s_cldl_argument_e)
-- else
-- report_context("fatal error: prt %a gets a weird argument %a",command,ti)
-- end
diff --git a/tex/context/base/mkiv/cldf-scn.lua b/tex/context/base/mkiv/cldf-scn.lua
index beeb8c8c9..ccf1f01c6 100644
--- a/tex/context/base/mkiv/cldf-scn.lua
+++ b/tex/context/base/mkiv/cldf-scn.lua
@@ -22,6 +22,7 @@ local f_command = formatters["local action = tokens._action\n%\nt\nreturn func
local interfaces = interfaces
local commands = commands
local scanners = interfaces.scanners
+local register = interfaces.registerscanner
local compile = tokens.compile or function() end
@@ -71,7 +72,8 @@ function interfaces.implement(specification)
if scanners[name] and not specification.overload then
report("warning: 'scanners.%s' is redefined",name)
end
- scanners[name] = scanner
+-- scanners[name] = scanner
+ register(name,scanner,specification.protected,specification.public,specification.call)
if private then
return
end
diff --git a/tex/context/base/mkiv/colo-ini.lua b/tex/context/base/mkiv/colo-ini.lua
index ca00ae72f..921612b0f 100644
--- a/tex/context/base/mkiv/colo-ini.lua
+++ b/tex/context/base/mkiv/colo-ini.lua
@@ -1058,12 +1058,12 @@ implement {
implement {
name = "synccolorclone",
actions = synccolorclone,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "setcolormodel",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(model,weight)
texsetattribute(a_colormodel,setcolormodel(model,weight))
end
@@ -1072,7 +1072,7 @@ implement {
implement {
name = "setpagecolormodel",
actions = colors.setpagecolormodel,
- arguments = { "string" },
+ arguments = "string",
}
implement {
@@ -1110,13 +1110,13 @@ implement {
actions = function(main)
colors.main = main
end,
- arguments = { "integer" }
+ arguments = "integer"
}
implement {
name = "definetransparency",
actions = definetransparency,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index aef280dc3..c705c3afc 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2018.03.16 22:20}
+\newcontextversion{2018.04.02 15:43}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 1ff75e083..2adc6b3ee 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -42,7 +42,7 @@
%D has to match \type {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.03.16 22:20}
+\edef\contextversion{2018.04.02 15:43}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua
index edba24f10..87b4c063e 100644
--- a/tex/context/base/mkiv/core-con.lua
+++ b/tex/context/base/mkiv/core-con.lua
@@ -644,7 +644,7 @@ end
implement {
name = "defineconversion",
actions = converters.define,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -685,7 +685,7 @@ end
implement {
name = "doifelseconverter",
actions = { valid, commands.doifelse },
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -1398,7 +1398,7 @@ end
implement {
name = "currentdate",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = function(pattern,default,language)
currentdate(
pattern == "" and default or pattern,
diff --git a/tex/context/base/mkiv/core-dat.lua b/tex/context/base/mkiv/core-dat.lua
index c3b00a7c0..fa4d089d0 100644
--- a/tex/context/base/mkiv/core-dat.lua
+++ b/tex/context/base/mkiv/core-dat.lua
@@ -192,9 +192,9 @@ implement {
}
implement {
- name = "datasetvariable",
- actions = datasetvariable,
- arguments = { "string", "string", "string" }
+ name = "datasetvariable",
+ actions = datasetvariable,
+ arguments = "3 strings",
}
--[[ldx--
@@ -305,11 +305,11 @@ implement {
implement {
name = "pagestaterealpage",
actions = pagestaterealpage,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "setpagestaterealpageno",
actions = setpagestaterealpageno,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/core-sys.lua b/tex/context/base/mkiv/core-sys.lua
index 523b47298..26229235b 100644
--- a/tex/context/base/mkiv/core-sys.lua
+++ b/tex/context/base/mkiv/core-sys.lua
@@ -84,7 +84,7 @@ end)
implement {
name = "systemlog",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = function(whereto,category,text)
logs.system(whereto,"context",tex.jobname,category,text)
end,
diff --git a/tex/context/base/mkiv/core-two.lua b/tex/context/base/mkiv/core-two.lua
index 5192677b2..1e59004be 100644
--- a/tex/context/base/mkiv/core-two.lua
+++ b/tex/context/base/mkiv/core-two.lua
@@ -150,7 +150,7 @@ local implement = interfaces.implement
implement { name = "gettwopassdata", actions = { get , context }, arguments = "string" }
implement { name = "getfirsttwopassdata",actions = { first, context }, arguments = "string" }
implement { name = "getlasttwopassdata", actions = { last , context }, arguments = "string" }
-implement { name = "findtwopassdata", actions = { find , context }, arguments = { "string", "string" } }
+implement { name = "findtwopassdata", actions = { find , context }, arguments = "2 strings" }
implement { name = "gettwopassdatalist", actions = { list , context }, arguments = "string" }
implement { name = "counttwopassdata", actions = { count, context }, arguments = "string" }
implement { name = "checktwopassdata", actions = { check, context }, arguments = "string" }
@@ -164,17 +164,17 @@ implement {
implement {
name = "savetwopassdata",
actions = jobpasses.save,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "savetaggedtwopassdata",
actions = jobpasses.savetagged,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
implement {
name = "doifelseintwopassdata",
actions = { inlist, commands.doifelse },
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/core-uti.lua b/tex/context/base/mkiv/core-uti.lua
index fda66ed73..b281b81a4 100644
--- a/tex/context/base/mkiv/core-uti.lua
+++ b/tex/context/base/mkiv/core-uti.lua
@@ -384,15 +384,37 @@ statistics.register("jobdata time",function()
end
end)
-statistics.register("callbacks", function()
- local total, indirect = status.callbacks or 0, status.indirect_callbacks or 0
- local pages = texgetcount('realpageno') - 1
- if pages > 1 then
- return format("direct: %s, indirect: %s, total: %s (%i per page)", total-indirect, indirect, total, total/pages)
- else
- return format("direct: %s, indirect: %s, total: %s", total-indirect, indirect, total)
+-- statistics.register("callbacks", function()
+-- local total, indirect = status.callbacks or 0, status.indirect_callbacks or 0
+-- local pages = texgetcount('realpageno') - 1
+-- if pages > 1 then
+-- return format("direct: %s, indirect: %s, total: %s (%i per page)", total-indirect, indirect, total, total/pages)
+-- else
+-- return format("direct: %s, indirect: %s, total: %s", total-indirect, indirect, total)
+-- end
+-- end)
+
+function statistics.callbacks()
+ local c_internal = status.callbacks or 0
+ local c_file = status.indirect_callbacks or 0
+ local c_direct = status.direct_callbacks or 0
+ local c_late = status.late_callbacks or 0
+ local c_function = status.function_callbacks or 0
+ local c_total = c_internal + c_file + c_direct + c_late + c_function
+ local n_pages = texgetcount('realpageno') - 1
+ local c_average = n_pages > 0 and math.round(c_total/n_pages) or 0
+ local s_result = format (
+ c_average > 0 and "internal: %s, file: %s, direct: %s, late: %s, function %s, total: %s (%s per page)"
+ or "internal: %s, file: %s, direct: %s, late: %s, function %s, total: %s",
+ c_internal, c_file, c_direct, c_late, c_function, c_total, c_average
+ )
+ statistics.callbacks = function()
+ return s_result
end
-end)
+ return s_result
+end
+
+statistics.register("callbacks", statistics.callbacks)
statistics.register("randomizer", function()
if rmethod and rvalue then
@@ -436,7 +458,7 @@ end
implement {
name = "savevariable",
actions = job.variables.save,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/file-job.lua b/tex/context/base/mkiv/file-job.lua
index af15eff56..dbf6da9b4 100644
--- a/tex/context/base/mkiv/file-job.lua
+++ b/tex/context/base/mkiv/file-job.lua
@@ -160,7 +160,7 @@ implement {
implement {
name = "usezipfile",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(name,tree)
if tree and tree ~= "" then
resolvers.usezipfile(formatters["zip:///%s?tree=%s"](name,tree))
@@ -923,13 +923,13 @@ end
implement {
name = "setdocumentargument",
actions = document.setargument,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
name = "setdocumentdefaultargument",
actions = document.setdefaultargument,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
@@ -941,7 +941,7 @@ implement {
implement {
name = "getdocumentargument",
actions = { document.getargument, context },
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
diff --git a/tex/context/base/mkiv/file-res.lua b/tex/context/base/mkiv/file-res.lua
index cf76d2d8b..16afae4c7 100644
--- a/tex/context/base/mkiv/file-res.lua
+++ b/tex/context/base/mkiv/file-res.lua
@@ -161,7 +161,7 @@ local implement = interfaces.implement
implement {
name = "getreadfilename",
actions = { getreadfilename, context },
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
implement {
diff --git a/tex/context/base/mkiv/file-syn.lua b/tex/context/base/mkiv/file-syn.lua
index 7b000f9ad..c1c25bab3 100644
--- a/tex/context/base/mkiv/file-syn.lua
+++ b/tex/context/base/mkiv/file-syn.lua
@@ -60,11 +60,11 @@ implement {
implement {
name = "definefilesynonym",
actions = environment.definefilesynonym,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
name = "definefilefallback",
actions = environment,definefilefallback,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
diff --git a/tex/context/base/mkiv/font-cft.lua b/tex/context/base/mkiv/font-cft.lua
index 30221cbaa..83227ca4a 100644
--- a/tex/context/base/mkiv/font-cft.lua
+++ b/tex/context/base/mkiv/font-cft.lua
@@ -266,6 +266,8 @@ do
},
slantfactor = t_float,
extendfactor = t_float,
+ mode = t_cardinal,
+ width = t_scale,
factor = t_float,
hfactor = t_float,
vfactor = t_float,
diff --git a/tex/context/base/mkiv/font-col.lua b/tex/context/base/mkiv/font-col.lua
index 8d3152df4..7bbaf31cb 100644
--- a/tex/context/base/mkiv/font-col.lua
+++ b/tex/context/base/mkiv/font-col.lua
@@ -363,13 +363,13 @@ end
implement {
name = "fontcollectiondefine",
actions = collections.define,
- arguments = { "string", "string", "string", "string" }
+ arguments = "4 strings",
}
implement {
name = "fontcollectionreset",
actions = collections.reset,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/font-con.lua b/tex/context/base/mkiv/font-con.lua
index 9cffa5927..add646da1 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -492,6 +492,15 @@ function constructors.scale(tfmdata,specification)
else
target.slant = 0
end
+ -- effects
+ local mode = parameters.mode or 0
+ if mode ~= 0 then
+ target.mode = mode
+ end
+ local width = parameters.width or 0
+ if width ~= 0 then
+ target.width = width
+ end
--
targetparameters.factor = delta
targetparameters.hfactor = hdelta
@@ -499,6 +508,8 @@ function constructors.scale(tfmdata,specification)
targetparameters.size = scaledpoints
targetparameters.units = units
targetparameters.scaledpoints = askedscaledpoints
+ targetparameters.mode = mode
+ targetparameters.width = width
--
local isvirtual = properties.virtualized or tfmdata.type == "virtual"
local hasquality = parameters.expansion or parameters.protrusion
@@ -875,12 +886,15 @@ function constructors.scale(tfmdata,specification)
--
constructors.aftercopyingcharacters(target,tfmdata)
--
- constructors.trytosharefont(target,tfmdata)
+ constructors.trytosharefont(target,tfmdata)
--
-- catch inconsistencies
--
local vfonts = target.fonts
- if isvirtual then
+-- if isvirtual then
+if isvirtual or target.type == "virtual" or properties.virtualized then
+ properties.virtualized = true
+target.type = "virtual"
if not vfonts or #vfonts == 0 then
target.fonts = { { id = 0 } }
end
@@ -925,6 +939,14 @@ function constructors.finalize(tfmdata)
parameters.size = tfmdata.size
end
--
+ if not parameters.mode then
+ parameters.mode = 0
+ end
+ --
+ if not parameters.width then
+ parameters.width = 0
+ end
+ --
if not parameters.extendfactor then
parameters.extendfactor = tfmdata.extend or 0
end
@@ -1023,6 +1045,8 @@ function constructors.finalize(tfmdata)
tfmdata.step = nil
tfmdata.extend = nil
tfmdata.slant = nil
+ tfmdata.mode = nil
+ tfmdata.width = nil
tfmdata.units = nil
tfmdata.units_per_em = nil
--
diff --git a/tex/context/base/mkiv/font-ctx.lua b/tex/context/base/mkiv/font-ctx.lua
index bc562d0d0..87885f64f 100644
--- a/tex/context/base/mkiv/font-ctx.lua
+++ b/tex/context/base/mkiv/font-ctx.lua
@@ -2249,7 +2249,7 @@ end
implement {
name = "definetypeface",
actions = fonts.definetypeface,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
function fonts.current() -- todo: also handle name
@@ -2442,13 +2442,13 @@ do
implement {
name = "definefontfeature",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = presetcontext
}
implement {
name = "adaptfontfeature",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = adaptcontext
}
@@ -2919,7 +2919,7 @@ do
-- implement {
-- name = "definefontcolorpalette",
- -- arguments = { "string", "string" },
+ -- arguments = "2 strings",
-- actions = function(name,set)
-- set = settings_to_array(set)
-- for i=1,#set do
@@ -2938,7 +2938,7 @@ do
implement {
name = "definefontcolorpalette",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(name,set)
otf.registerpalette(name,settings_to_array(set))
end
diff --git a/tex/context/base/mkiv/font-ext.lua b/tex/context/base/mkiv/font-ext.lua
index f9db5e0d9..d873dccd4 100644
--- a/tex/context/base/mkiv/font-ext.lua
+++ b/tex/context/base/mkiv/font-ext.lua
@@ -30,9 +30,10 @@ of neutral.</p>
local handlers = fonts.handlers
local hashes = fonts.hashes
local otf = handlers.otf
+local afm = handlers.afm
-local registerotffeature = handlers.otf.features.register
-local registerafmfeature = handlers.afm.features.register
+local registerotffeature = otf.features.register
+local registerafmfeature = afm.features.register
local fontdata = hashes.identifiers
local fontproperties = hashes.properties
@@ -181,7 +182,7 @@ fonts.goodies.register("expansions", function(...) return fonts.goodies.report(
implement {
name = "setupfontexpansion",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(class,settings) getparameters(classes,class,'preset',settings) end
}
@@ -492,7 +493,7 @@ fonts.goodies.register("protrusions", function(...) return fonts.goodies.report(
implement {
name = "setupfontprotrusion",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(class,settings) getparameters(classes,class,'preset',settings) end
}
@@ -671,15 +672,15 @@ local function manipulatedimensions(tfmdata,key,value)
local width = newwidth or oldwidth or 0
local height = newheight or oldheight or 0
local depth = newdepth or olddepth or 0
- if oldwidth ~= width then
- -- Defining the tables in one step is more efficient
- -- than adding fields later.
+ if oldwidth ~= width or oldheight ~= height or olddepth ~= depth then
local private = getprivate(tfmdata)
+ local newslot = { "slot", 1, private } -- { "slot", 0, private }
local new_c
- local commands = {
+ local commands = oldwidth ~= width and {
{ "right", (width - oldwidth) / 2 },
- { "slot", 1, private },
- -- { "slot", 0, private },
+ newslot,
+ } or {
+ newslot,
}
if height > 0 then
if depth > 0 then
@@ -718,19 +719,19 @@ local function manipulatedimensions(tfmdata,key,value)
for k, v in next, additions do
characters[k] = v
end
- elseif height > 0 and depth > 0 then
- for unicode, old_c in next, characters do
- old_c.height = height
- old_c.depth = depth
- end
- elseif height > 0 then
- for unicode, old_c in next, characters do
- old_c.height = height
- end
- elseif depth > 0 then
- for unicode, old_c in next, characters do
- old_c.depth = depth
- end
+ -- elseif height > 0 and depth > 0 then
+ -- for unicode, old_c in next, characters do
+ -- old_c.height = height
+ -- old_c.depth = depth
+ -- end
+ -- elseif height > 0 then
+ -- for unicode, old_c in next, characters do
+ -- old_c.height = height
+ -- end
+ -- elseif depth > 0 then
+ -- for unicode, old_c in next, characters do
+ -- old_c.depth = depth
+ -- end
end
end
end
@@ -1706,3 +1707,150 @@ do
}
end
+
+-- maybe useful
+
+local function initializeoutline(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ else
+ value = tonumber(value) or 0
+ end
+ if value then
+ value = value * 1000
+ end
+ tfmdata.parameters.mode = 1
+ tfmdata.parameters.width = value
+end
+
+local outline_specification = {
+ name = "outline",
+ description = "outline glyphs",
+ initializers = {
+ base = initializeoutline,
+ node = initializeoutline,
+ }
+}
+
+registerotffeature(outline_specification)
+registerafmfeature(outline_specification)
+
+-- definitely ugly
+
+local report_effect = logs.reporter("fonts","effect")
+local trace_effect = false
+
+trackers.register("fonts.effect", function(v) trace_effect = v end)
+
+local effects = {
+ inner = 0,
+ normal = 0,
+ outer = 1,
+ outline = 1,
+ both = 2,
+ hidden = 3,
+}
+
+local function initializeeffect(tfmdata,value)
+ local spec
+ if type(value) == "number" then
+ spec = { width = value }
+ else
+ spec = settings_to_hash(value)
+ end
+ local effect = spec.effect or "both"
+ local width = tonumber(spec.width) or 0
+ local mode = effects[effect]
+ if not mode then
+ report_effect("invalid effect %a",effect)
+ elseif width == 0 and mode == 0 then
+ report_effect("invalid width %a for effect %a",width,effect)
+ else
+ local parameters = tfmdata.parameters
+ local properties = tfmdata.properties
+ parameters.mode = mode
+ parameters.width = width * 1000
+ local factor = tonumber(spec.factor) or 0
+ local hfactor = tonumber(spec.vfactor) or factor
+ local vfactor = tonumber(spec.hfactor) or factor
+ local delta = tonumber(spec.delta) or 1
+ local wdelta = tonumber(spec.wdelta) or delta
+ local hdelta = tonumber(spec.hdelta) or delta
+ local ddelta = tonumber(spec.ddelta) or hdelta
+ properties.effect = {
+ effect = effect,
+ width = width,
+ factor = factor,
+ hfactor = hfactor,
+ vfactor = vfactor,
+ wdelta = wdelta,
+ hdelta = hdelta,
+ ddelta = ddelta,
+ }
+ end
+end
+
+local function manipulateeffect(tfmdata)
+ local effect = tfmdata.properties.effect
+ if effect then
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ local multiplier = effect.width * 100
+ local wdelta = effect.wdelta * parameters.hfactor * multiplier
+ local hdelta = effect.hdelta * parameters.vfactor * multiplier
+ local ddelta = effect.ddelta * parameters.vfactor * multiplier
+ local hshift = wdelta / 2
+ local factor = (1 + effect.factor) * parameters.factor
+ local hfactor = (1 + effect.hfactor) * parameters.hfactor
+ local vfactor = (1 + effect.vfactor) * parameters.vfactor
+ for unicode, old_c in next, characters do
+ local oldwidth = old_c.width
+ local oldheight = old_c.height
+ local olddepth = old_c.depth
+ if oldwidth and oldwidth > 0 then
+ old_c.width = oldwidth + wdelta
+ old_c.commands = {
+ { "right", hshift },
+ { "char", unicode },
+ }
+ end
+ if oldheight and oldheight > 0 then
+ old_c.height = oldheight + hdelta
+ end
+ if olddepth and olddepth > 0 then
+ old_c.depth = olddepth + ddelta
+ end
+ end
+ parameters.factor = factor
+ parameters.hfactor = hfactor
+ parameters.vfactor = vfactor
+ if trace_effect then
+ report_effect("applying effect")
+ report_effect(" effect : %s", effect.effect)
+ report_effect(" width : %s => %s", effect.width, multiplier)
+ report_effect(" factor : %s => %s", effect.factor, factor )
+ report_effect(" hfactor : %s => %s", effect.hfactor,hfactor)
+ report_effect(" vfactor : %s => %s", effect.vfactor,vfactor)
+ report_effect(" wdelta : %s => %s", effect.wdelta, wdelta)
+ report_effect(" hdelta : %s => %s", effect.hdelta, hdelta)
+ report_effect(" ddelta : %s => %s", effect.ddelta, ddelta)
+ end
+ end
+end
+
+local effect_specification = {
+ name = "effect",
+ description = "apply effects to glyphs",
+ initializers = {
+ base = initializeeffect,
+ node = initializeeffect,
+ },
+ manipulators = {
+ base = manipulateeffect,
+ node = manipulateeffect,
+ },
+}
+
+registerotffeature(effect_specification)
+registerafmfeature(effect_specification)
diff --git a/tex/context/base/mkiv/font-map.lua b/tex/context/base/mkiv/font-map.lua
index d4a1b4594..66cf2db39 100644
--- a/tex/context/base/mkiv/font-map.lua
+++ b/tex/context/base/mkiv/font-map.lua
@@ -192,8 +192,8 @@ local function tounicode(unicode)
end
-- no real gain on runs
---
--- local hash = setmetatableindex(function(t,u)
+
+-- local hash = table.setmetatableindex(function(t,u)
-- local v
-- if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
-- v = f_single(u)
@@ -209,7 +209,7 @@ end
-- if type(unicode) == "table" then
-- local t = { }
-- for l=1,#unicode do
--- t[l] = hash[u]
+-- t[l] = hash[unicode[l]]
-- end
-- return concat(t)
-- else
diff --git a/tex/context/base/mkiv/font-osd.lua b/tex/context/base/mkiv/font-osd.lua
index 04fbf88f5..9f99fd57f 100644
--- a/tex/context/base/mkiv/font-osd.lua
+++ b/tex/context/base/mkiv/font-osd.lua
@@ -8,64 +8,80 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
-- A few remarks:
--
--- This code is a partial rewrite of the code that deals with devanagari. The data and logic
--- is by Kai Eigner and based based on Microsoft's OpenType specifications for specific
--- scripts, but with a few improvements. More information can be found at:
+-- This code is a partial rewrite of the code that deals with devanagari. The data
+-- and logic is by Kai Eigner and based based on Microsoft's OpenType specifications
+-- for specific scripts, but with a few improvements. More information can be found
+-- at:
--
-- deva: http://www.microsoft.com/typography/OpenType%20Dev/devanagari/introO.mspx
-- dev2: http://www.microsoft.com/typography/OpenType%20Dev/devanagari/intro.mspx
--
--- Rajeesh Nambiar provided patches for the malayalam variant. Thanks to feedback from
--- the mailing list some aspects could be improved.
+-- Rajeesh Nambiar provided patches for the malayalam variant. Thanks to feedback
+-- from the mailing list some aspects could be improved.
--
--- As I touched nearly all code, reshuffled it, optimized a lot, etc. etc. (imagine how
--- much can get messed up in over a week work) it could be that I introduced bugs. There
--- is more to gain (esp in the functions applied to a range) but I'll do that when
--- everything works as expected. Kai's original code is kept in font-odk.lua as a reference
--- so blame me (HH) for bugs. (We no longer ship that file as the code below has diverted
--- too much and in the meantime has more than doubled in size.)
+-- As I touched nearly all code, reshuffled it, optimized a lot, etc. etc. (imagine
+-- how much can get messed up in over a week work) it could be that I introduced
+-- bugs. There is more to gain (esp in the functions applied to a range) but I'll do
+-- that when everything works as expected. Kai's original code is kept in
+-- font-odk.lua as a reference so blame me (HH) for bugs. (We no longer ship that
+-- file as the code below has diverted too much and in the meantime has more than
+-- doubled in size.)
--
--- Interesting is that Kai managed to write this on top of the existing otf handler. Only a
--- few extensions were needed, like a few more analyzing states and dealing with changed
--- head nodes in the core scanner as that only happens here. There's a lot going on here
--- and it's only because I touched nearly all code that I got a bit of a picture of what
--- happens. For in-depth knowledge one needs to consult Kai.
+-- Interesting is that Kai managed to write this on top of the existing otf handler.
+-- Only a few extensions were needed, like a few more analyzing states and dealing
+-- with changed head nodes in the core scanner as that only happens here. There's a
+-- lot going on here and it's only because I touched nearly all code that I got a
+-- bit of a picture of what happens. For in-depth knowledge one needs to consult
+-- Kai.
--
--- The rewrite mostly deals with efficiency, both in terms of speed and code. We also made
--- sure that it suits generic use as well as use in ConTeXt. I removed some buglets but can
--- as well have messed up the logic by doing this. For this we keep the original around
--- as that serves as reference. Due to the lots of reshuffling glyphs quite some leaks
--- occur(red) but once I'm satisfied with the rewrite I'll weed them. I also integrated
--- initialization etc into the regular mechanisms.
+-- The rewrite mostly deals with efficiency, both in terms of speed and code. We
+-- also made sure that it suits generic use as well as use in ConTeXt. I removed
+-- some buglets but can as well have messed up the logic by doing this. For this we
+-- keep the original around as that serves as reference. Due to the lots of
+-- reshuffling glyphs quite some leaks occur(red) but once I'm satisfied with the
+-- rewrite I'll weed them. I also integrated initialization etc into the regular
+-- mechanisms.
--
--- In the meantime, we're down from 25.5-3.5=22 seconds to 17.7-3.5=14.2 seconds for a 100
--- page sample (mid 2012) with both variants so it's worth the effort. Some more speedup is
--- to be expected. Due to the method chosen it will never be real fast. If I ever become a
--- power user I'll have a go at some further speed up. I will rename some functions (and
--- features) once we don't need to check the original code. We now use a special subset
--- sequence for use inside the analyzer (after all we could can store this in the dataset
--- and save redundant analysis).
+-- In the meantime, we're down from 25.5-3.5=22 seconds to 17.7-3.5=14.2 seconds for
+-- a 100 page sample (mid 2012) with both variants so it's worth the effort. Some
+-- more speedup is to be expected. Due to the method chosen it will never be real
+-- fast. If I ever become a power user I'll have a go at some further speed up. I
+-- will rename some functions (and features) once we don't need to check the
+-- original code. We now use a special subset sequence for use inside the analyzer
+-- (after all we could can store this in the dataset and save redundant analysis).
--
--- I might go for an array approach with respect to attributes (and reshuffling). Easier.
+-- By now we have yet another incremental improved version. In the end I might
+-- rewrite the code.
--
--- Some data will move to char-def.lua (some day).
---
--- By now we have yet another incremental improved version. In the end I might rewrite the
--- code.
-
-- Hans Hagen, PRAGMA-ADE, Hasselt NL
---
--- We could have c_nukta, c_halant, c_ra is we know that they are never used mixed within
--- one script .. yes or no?
+
+-- Todo:
--
-- Matras: according to Microsoft typography specifications "up to one of each type:
-- pre-, above-, below- or post- base", but that does not seem to be right. It could
-- become an option.
+--
+-- Resources:
+--
+-- The tables that we had here are now generated from char-def.lua or in the case of
+-- generic usage loaded from luatex-basics-chr.lua. Still a couple of entries need
+-- to be added to char-def.lua but finally I moved the indic specific tables there.
+-- For generic usage one can create the relevant resources by running:
+--
+-- context luatex-basics-prepare.tex
+--
+-- and an overview with:
+--
+-- context --global s-fonts-basics.mkiv
+--
+-- For now we have defined: bengali, devanagari, gujarati, gurmukhi, kannada,
+-- malayalam, oriya, tamil and tolugu but not all are checked. Also, some of the
+-- code below might need to be adapted to the extra scripts.
local insert, imerge, copy = table.insert, table.imerge, table.copy
local next, type = next, type
-local report_devanagari = logs.reporter("otf","devanagari")
+local report = logs.reporter("otf","devanagari")
fonts = fonts or { }
fonts.analyzers = fonts.analyzers or { }
@@ -115,6 +131,9 @@ local a_state = attributes.private('state')
local a_syllabe = attributes.private('syllabe')
local dotted_circle = 0x25CC
+local c_nbsp = 0x00A0
+local c_zwnj = 0x200C
+local c_zwj = 0x200D
local states = fonts.analyzers.states -- not features
@@ -151,309 +170,199 @@ local function processcharacters(head,font)
return tonut(xprocesscharacters(tonode(head))) -- can be more efficient in context, just direct call
end
--- local fontprocesses = fonts.hashes.processes
+-- to be tested:
--
--- function processcharacters(head,font)
--- local processors = fontprocesses[font]
--- for i=1,#processors do
--- head = processors[i](head,font,0)
+-- local processcharacters = nil
+--
+-- if context then
+-- local fontprocesses = fonts.hashes.processes
+-- function processcharacters(head,font)
+-- local processors = fontprocesses[font]
+-- for i=1,#processors do
+-- head = processors[i](head,font,0)
+-- end
+-- return head, true
+-- end
+-- else
+-- function processcharacters(head,font)
+-- local processors = fontdata[font].shared.processes
+-- for i=1,#processors do
+-- head = processors[i](head,font,0)
+-- end
+-- return head, true
-- end
--- return head, true
-- end
--- In due time there will be entries here for scripts like Bengali, Gujarati,
--- Gurmukhi, Kannada, Malayalam, Oriya, Tamil, Telugu. Feel free to provide the
--- code points.
-
-- We can assume that script are not mixed in the source but if that is the case
-- we might need to have consonants etc per script and initialize a local table
--- pointing to the right one.
+-- pointing to the right one. But not now.
--- new, to be checked:
---
--- U+00978 : DEVANAGARI LETTER MARWARI DDA
--- U+00980 : BENGALI ANJI
--- U+00C00 : TELUGU SIGN COMBINING CANDRABINDU ABOVE
--- U+00C34 : TELUGU LETTER LLLA
--- U+00C81 : KANNADA SIGN CANDRABINDU
--- U+00D01 : MALAYALAM SIGN CANDRABINDU
--- U+00DE6 : SINHALA LITH DIGIT ZERO
--- U+00DE7 : SINHALA LITH DIGIT ONE
--- U+00DE8 : SINHALA LITH DIGIT TWO
--- U+00DE9 : SINHALA LITH DIGIT THREE
--- U+00DEA : SINHALA LITH DIGIT FOUR
--- U+00DEB : SINHALA LITH DIGIT FIVE
--- U+00DEC : SINHALA LITH DIGIT SIX
--- U+00DED : SINHALA LITH DIGIT SEVEN
--- U+00DEE : SINHALA LITH DIGIT EIGHT
--- U+00DEF : SINHALA LITH DIGIT NINE
-
-local consonant = {
- -- devanagari
- [0x0915] = true, [0x0916] = true, [0x0917] = true, [0x0918] = true,
- [0x0919] = true, [0x091A] = true, [0x091B] = true, [0x091C] = true,
- [0x091D] = true, [0x091E] = true, [0x091F] = true, [0x0920] = true,
- [0x0921] = true, [0x0922] = true, [0x0923] = true, [0x0924] = true,
- [0x0925] = true, [0x0926] = true, [0x0927] = true, [0x0928] = true,
- [0x0929] = true, [0x092A] = true, [0x092B] = true, [0x092C] = true,
- [0x092D] = true, [0x092E] = true, [0x092F] = true, [0x0930] = true,
- [0x0931] = true, [0x0932] = true, [0x0933] = true, [0x0934] = true,
- [0x0935] = true, [0x0936] = true, [0x0937] = true, [0x0938] = true,
- [0x0939] = true, [0x0958] = true, [0x0959] = true, [0x095A] = true,
- [0x095B] = true, [0x095C] = true, [0x095D] = true, [0x095E] = true,
- [0x095F] = true, [0x0979] = true, [0x097A] = true,
- -- kannada
- [0x0C95] = true, [0x0C96] = true, [0x0C97] = true, [0x0C98] = true,
- [0x0C99] = true, [0x0C9A] = true, [0x0C9B] = true, [0x0C9C] = true,
- [0x0C9D] = true, [0x0C9E] = true, [0x0C9F] = true, [0x0CA0] = true,
- [0x0CA1] = true, [0x0CA2] = true, [0x0CA3] = true, [0x0CA4] = true,
- [0x0CA5] = true, [0x0CA6] = true, [0x0CA7] = true, [0x0CA8] = true,
- [0x0CA9] = true, [0x0CAA] = true, [0x0CAB] = true, [0x0CAC] = true,
- [0x0CAD] = true, [0x0CAE] = true, [0x0CAF] = true, [0x0CB0] = true,
- [0x0CB1] = true, [0x0CB2] = true, [0x0CB3] = true, [0x0CB4] = true,
- [0x0CB5] = true, [0x0CB6] = true, [0x0CB7] = true, [0x0CB8] = true,
- [0x0CB9] = true,
- [0x0CDE] = true, -- obsolete
- -- malayalam
- [0x0D15] = true, [0x0D16] = true, [0x0D17] = true, [0x0D18] = true,
- [0x0D19] = true, [0x0D1A] = true, [0x0D1B] = true, [0x0D1C] = true,
- [0x0D1D] = true, [0x0D1E] = true, [0x0D1F] = true, [0x0D20] = true,
- [0x0D21] = true, [0x0D22] = true, [0x0D23] = true, [0x0D24] = true,
- [0x0D25] = true, [0x0D26] = true, [0x0D27] = true, [0x0D28] = true,
- [0x0D29] = true, [0x0D2A] = true, [0x0D2B] = true, [0x0D2C] = true,
- [0x0D2D] = true, [0x0D2E] = true, [0x0D2F] = true, [0x0D30] = true,
- [0x0D31] = true, [0x0D32] = true, [0x0D33] = true, [0x0D34] = true,
- [0x0D35] = true, [0x0D36] = true, [0x0D37] = true, [0x0D38] = true,
- [0x0D39] = true, [0x0D3A] = true,
-}
+local indicgroups = characters and characters.indicgroups
-local independent_vowel = {
- -- devanagari
- [0x0904] = true, [0x0905] = true, [0x0906] = true, [0x0907] = true,
- [0x0908] = true, [0x0909] = true, [0x090A] = true, [0x090B] = true,
- [0x090C] = true, [0x090D] = true, [0x090E] = true, [0x090F] = true,
- [0x0910] = true, [0x0911] = true, [0x0912] = true, [0x0913] = true,
- [0x0914] = true, [0x0960] = true, [0x0961] = true, [0x0972] = true,
- [0x0973] = true, [0x0974] = true, [0x0975] = true, [0x0976] = true,
- [0x0977] = true,
- -- kannada
- [0x0C85] = true, [0x0C86] = true, [0x0C87] = true, [0x0C88] = true,
- [0x0C89] = true, [0x0C8A] = true, [0x0C8B] = true, [0x0C8C] = true,
- [0x0C8D] = true, [0x0C8E] = true, [0x0C8F] = true, [0x0C90] = true,
- [0x0C91] = true, [0x0C92] = true, [0x0C93] = true, [0x0C94] = true,
- -- malayalam
- [0x0D05] = true, [0x0D06] = true, [0x0D07] = true, [0x0D08] = true,
- [0x0D09] = true, [0x0D0A] = true, [0x0D0B] = true, [0x0D0C] = true,
- [0x0D0E] = true, [0x0D0F] = true, [0x0D10] = true, [0x0D12] = true,
- [0x0D13] = true, [0x0D14] = true,
-}
+if not indicgroups and characters then
-local dependent_vowel = { -- matra
- -- devanagari
- [0x093A] = true, [0x093B] = true, [0x093E] = true, [0x093F] = true,
- [0x0940] = true, [0x0941] = true, [0x0942] = true, [0x0943] = true,
- [0x0944] = true, [0x0945] = true, [0x0946] = true, [0x0947] = true,
- [0x0948] = true, [0x0949] = true, [0x094A] = true, [0x094B] = true,
- [0x094C] = true, [0x094E] = true, [0x094F] = true, [0x0955] = true,
- [0x0956] = true, [0x0957] = true, [0x0962] = true, [0x0963] = true,
- -- kannada
- [0x0CBE] = true, [0x0CBF] = true, [0x0CC0] = true, [0x0CC1] = true,
- [0x0CC2] = true, [0x0CC3] = true, [0x0CC4] = true, [0x0CC5] = true,
- [0x0CC6] = true, [0x0CC7] = true, [0x0CC8] = true, [0x0CC9] = true,
- [0x0CCA] = true, [0x0CCB] = true, [0x0CCC] = true,
- -- malayalam
- [0x0D3E] = true, [0x0D3F] = true, [0x0D40] = true, [0x0D41] = true,
- [0x0D42] = true, [0x0D43] = true, [0x0D44] = true, [0x0D46] = true,
- [0x0D47] = true, [0x0D48] = true, [0x0D4A] = true, [0x0D4B] = true,
- [0x0D4C] = true, [0x0D57] = true,
-}
+ local indic = {
+ c = { }, -- consonant
+ i = { }, -- independent vowel
+ d = { }, -- dependent vowel
+ m = { }, -- vowel modifier
+ s = { }, -- stress tone mark
+ o = { }, -- other
+ }
-local vowel_modifier = {
- -- devanagari
- [0x0900] = true, [0x0901] = true, [0x0902] = true, [0x0903] = true,
- -- A8E0 - A8F1 are cantillation marks for the Samaveda and may not belong here.
- [0xA8E0] = true, [0xA8E1] = true, [0xA8E2] = true, [0xA8E3] = true,
- [0xA8E4] = true, [0xA8E5] = true, [0xA8E6] = true, [0xA8E7] = true,
- [0xA8E8] = true, [0xA8E9] = true, [0xA8EA] = true, [0xA8EB] = true,
- [0xA8EC] = true, [0xA8ED] = true, [0xA8EE] = true, [0xA8EF] = true,
- [0xA8F0] = true, [0xA8F1] = true,
- -- malayalam
- [0x0D02] = true, [0x0D03] = true,
-}
+ local indicmarks = {
+ l = { }, -- left | pre_mark
+ t = { }, -- top | above_mark
+ b = { }, -- bottom | below_mark
+ r = { }, -- right | post_mark
+ s = { }, -- split | twopart_mark
+ }
-local stress_tone_mark = {
- [0x0951] = true, [0x0952] = true, [0x0953] = true, [0x0954] = true,
- -- kannada
- [0x0CCD] = true,
- -- malayalam
- [0x0D4D] = true,
-}
+ local indicclasses = {
+ nukta = { },
+ halant = { },
+ ra = { },
+ anudatta = { },
+ }
-local nukta = {
- -- devanagari
- [0x093C] = true,
- -- kannada:
- [0x0CBC] = true,
-}
+ local indicorders = {
+ bp = { }, -- before_postscript
+ ap = { }, -- after_postscript
+ bs = { }, -- before_half
+ as = { }, -- after_half
+ bh = { }, -- before_subscript
+ ah = { }, -- after_subscript
+ bm = { }, -- before_main
+ am = { }, -- after_main
+ }
-local halant = {
- -- devanagari
- [0x094D] = true,
- -- kannada
- [0x0CCD] = true,
- -- malayalam
- [0x0D4D] = true,
-}
+ for k, v in next, characters.data do
+ local i = v.indic
+ if i then
+ indic[i][k] = true
+ i = v.indicmark
+ if i then
+ if i == "s" then
+ local s = v.specials
+ indicmarks[i][k] = { s[2], s[3] }
+ else
+ indicmarks[i][k] = true
+ end
+ end
+ i = v.indicclass
+ if i then
+ indicclasses[i][k] = true
+ end
+ i = v.indicorder
+ if i then
+ indicorders[i][k] = true
+ end
+ end
+ end
-local ra = {
- -- devanagari
- [0x0930] = true,
- -- kannada
- [0x0CB0] = true,
- -- malayalam
- [0x0D30] = true,
-}
+ indicgroups = {
+ consonant = indic.c,
+ independent_vowel = indic.i,
+ dependent_vowel = indic.d,
+ vowel_modifier = indic.m,
+ stress_tone_mark = indic.s,
+ -- other = indic.o,
+ pre_mark = indicmarks.l,
+ above_mark = indicmarks.t,
+ below_mark = indicmarks.b,
+ post_mark = indicmarks.r,
+ twopart_mark = indicmarks.s,
+ nukta = indicclasses.nukta,
+ halant = indicclasses.halant,
+ ra = indicclasses.ra,
+ anudatta = indicclasses.anudatta,
+ before_postscript = indicorders.bp,
+ after_postscript = indicorders.ap,
+ before_half = indicorders.bh,
+ after_half = indicorders.ah,
+ before_subscript = indicorders.bs,
+ after_subscript = indicorders.as,
+ before_main = indicorders.bm,
+ after_main = indicorders.am,
+ }
-local c_anudatta = 0x0952 -- used to be tables
-local c_nbsp = 0x00A0 -- used to be tables
-local c_zwnj = 0x200C -- used to be tables
-local c_zwj = 0x200D -- used to be tables
+ indic = nil
+ indicmarks = nil
+ indicclasses = nil
+ indicorders = nil
-local zw_char = { -- could also be inlined
- [0x200C] = true,
- [0x200D] = true,
-}
+ characters.indicgroups = indicgroups
--- 0C82 anusvara
--- 0C83 visarga
--- 0CBD avagraha
--- 0CD5 length mark
--- 0CD6 ai length mark
--- 0CE0 letter ll
--- 0CE1 letter rr
--- 0CE2 vowel sign l
--- 0CE2 vowel sign ll
--- 0CF1 sign
--- 0CF2 sign
--- OCE6 - OCEF digits
-
-local pre_mark = {
- [0x093F] = true, [0x094E] = true,
- -- malayalam
- [0x0D46] = true, [0x0D47] = true, [0x0D48] = true,
-}
+else
-local above_mark = {
- [0x0900] = true, [0x0901] = true, [0x0902] = true, [0x093A] = true,
- [0x0945] = true, [0x0946] = true, [0x0947] = true, [0x0948] = true,
- [0x0951] = true, [0x0953] = true, [0x0954] = true, [0x0955] = true,
- [0xA8E0] = true, [0xA8E1] = true, [0xA8E2] = true, [0xA8E3] = true,
- [0xA8E4] = true, [0xA8E5] = true, [0xA8E6] = true, [0xA8E7] = true,
- [0xA8E8] = true, [0xA8E9] = true, [0xA8EA] = true, [0xA8EB] = true,
- [0xA8EC] = true, [0xA8ED] = true, [0xA8EE] = true, [0xA8EF] = true,
- [0xA8F0] = true, [0xA8F1] = true,
- -- malayalam
- [0x0D4E] = true,
-}
+ indicgroups = table.setmetatableindex("table")
-local below_mark = {
- [0x093C] = true, [0x0941] = true, [0x0942] = true, [0x0943] = true,
- [0x0944] = true, [0x094D] = true, [0x0952] = true, [0x0956] = true,
- [0x0957] = true, [0x0962] = true, [0x0963] = true,
-}
+end
-local post_mark = {
- [0x0903] = true, [0x093B] = true, [0x093E] = true, [0x0940] = true,
- [0x0949] = true, [0x094A] = true, [0x094B] = true, [0x094C] = true,
- [0x094F] = true,
-}
+local consonant = indicgroups.consonant
+local independent_vowel = indicgroups.independent_vowel
+local dependent_vowel = indicgroups.dependent_vowel
+local vowel_modifier = indicgroups.vowel_modifier
+local stress_tone_mark = indicgroups.stress_tone_mark
+local pre_mark = indicgroups.pre_mark
+local above_mark = indicgroups.above_mark
+local below_mark = indicgroups.below_mark
+local post_mark = indicgroups.post_mark
+local twopart_mark = indicgroups.twopart_mark
+local nukta = indicgroups.nukta
+local halant = indicgroups.halant
+local ra = indicgroups.ra
+local anudatta = indicgroups.anudatta
+
+local before_postscript = indicgroups.before_postscript
+local after_postscript = indicgroups.after_postscript
+local before_half = indicgroups.before_half
+local after_half = indicgroups.after_half
+local before_subscript = indicgroups.before_subscript
+local after_subscript = indicgroups.after_subscript
+local before_main = indicgroups.before_main
+local after_main = indicgroups.after_main
+
+local mark_four = table.merged (
+ pre_mark,
+ above_mark,
+ below_mark,
+ post_mark
+)
+
+local mark_above_below_post = table.merged (
+ above_mark,
+ below_mark,
+ post_mark
+)
-local twopart_mark = {
- -- malayalam
- [0x0D4A] = { 0x0D46, 0x0D3E, }, -- ൊ
- [0x0D4B] = { 0x0D47, 0x0D3E, }, -- ോ
- [0x0D4C] = { 0x0D46, 0x0D57, }, -- ൌ
-}
+-- We use some pseudo features as we need to manipulate the nodelist based
+-- on information in the font as well as already applied features. We can
+-- probably replace some of the code below by injecting 'real' features
+-- using the extension mechanism.
-local mark_four = { } -- As we access these frequently an extra hash is used.
-
-for k, v in next, pre_mark do mark_four[k] = pre_mark end
-for k, v in next, above_mark do mark_four[k] = above_mark end
-for k, v in next, below_mark do mark_four[k] = below_mark end
-for k, v in next, post_mark do mark_four[k] = post_mark end
-
-local mark_above_below_post = { }
-
-for k, v in next, above_mark do mark_above_below_post[k] = above_mark end
-for k, v in next, below_mark do mark_above_below_post[k] = below_mark end
-for k, v in next, post_mark do mark_above_below_post[k] = post_mark end
-
--- Again, this table can be extended for other scripts than devanagari. Actually,
--- for ConTeXt this kind of data is kept elsewhere so eventually we might move
--- tables to someplace else.
-
-local reorder_class = {
- -- devanagari
- [0x0930] = "before postscript",
- [0x093F] = "before half",
- [0x0940] = "after subscript",
- [0x0941] = "after subscript",
- [0x0942] = "after subscript",
- [0x0943] = "after subscript",
- [0x0944] = "after subscript",
- [0x0945] = "after subscript",
- [0x0946] = "after subscript",
- [0x0947] = "after subscript",
- [0x0948] = "after subscript",
- [0x0949] = "after subscript",
- [0x094A] = "after subscript",
- [0x094B] = "after subscript",
- [0x094C] = "after subscript",
- [0x0962] = "after subscript",
- [0x0963] = "after subscript",
- [0x093E] = "after subscript",
- -- kannada:
- [0x0CB0] = "after postscript", -- todo in code below
- [0x0CBF] = "before subscript", -- todo in code below
- [0x0CC6] = "before subscript", -- todo in code below
- [0x0CCC] = "before subscript", -- todo in code below
- [0x0CBE] = "before subscript", -- todo in code below
- [0x0CE2] = "before subscript", -- todo in code below
- [0x0CE3] = "before subscript", -- todo in code below
- [0x0CC1] = "before subscript", -- todo in code below
- [0x0CC2] = "before subscript", -- todo in code below
- [0x0CC3] = "after subscript",
- [0x0CC4] = "after subscript",
- [0x0CD5] = "after subscript",
- [0x0CD6] = "after subscript",
- -- malayalam
+local zw_char = { -- both_joiners_true
+ [c_zwnj] = true,
+ [c_zwj ] = true,
}
--- We use some pseudo features as we need to manipulate the nodelist based
--- on information in the font as well as already applied features.
-
local dflt_true = {
dflt = true
}
-local dev2_defaults = {
+local two_defaults = {
dev2 = dflt_true,
}
-local deva_defaults = {
+local one_defaults = {
dev2 = dflt_true,
deva = dflt_true,
}
local false_flags = { false, false, false, false }
-local both_joiners_true = {
- [0x200C] = true,
- [0x200D] = true,
-}
-
local sequence_reorder_matras = {
- features = { dv01 = dev2_defaults },
+ features = { dv01 = two_defaults },
flags = false_flags,
name = "dv01_reorder_matras",
order = { "dv01" },
@@ -467,7 +376,7 @@ local sequence_reorder_matras = {
}
local sequence_reorder_reph = {
- features = { dv02 = dev2_defaults },
+ features = { dv02 = two_defaults },
flags = false_flags,
name = "dv02_reorder_reph",
order = { "dv02" },
@@ -481,7 +390,7 @@ local sequence_reorder_reph = {
}
local sequence_reorder_pre_base_reordering_consonants = {
- features = { dv03 = dev2_defaults },
+ features = { dv03 = two_defaults },
flags = false_flags,
name = "dv03_reorder_pre_base_reordering_consonants",
order = { "dv03" },
@@ -495,7 +404,7 @@ local sequence_reorder_pre_base_reordering_consonants = {
}
local sequence_remove_joiners = {
- features = { dv04 = deva_defaults },
+ features = { dv04 = one_defaults },
flags = false_flags,
name = "dv04_remove_joiners",
order = { "dv04" },
@@ -503,7 +412,7 @@ local sequence_remove_joiners = {
nofsteps = 1,
steps = {
{
- coverage = both_joiners_true,
+ coverage = zw_char, -- both_joiners_true
},
}
}
@@ -513,38 +422,85 @@ local sequence_remove_joiners = {
-- as it might depends on the font. Not that it's a bottleneck.
local basic_shaping_forms = {
- nukt = true,
+ init = true, -- new
+ abvs = true, -- new
akhn = true,
- rphf = true,
- pref = true,
- rkrf = true,
blwf = true,
+ calt = true, -- new
+ cjct = true,
half = true,
+ haln = true, -- new
+ nukt = true,
+ pref = true,
+ pres = true, -- new
pstf = true,
+ psts = true, -- new
+ rkrf = true,
+ rphf = true,
vatu = true,
- cjct = true,
}
local valid = {
- akhn = true, -- malayalam
- rphf = true,
- pref = true,
- half = true,
+ -- akhn = true, -- malayalam
+ -- rphf = true,
+ -- pref = true,
+ -- half = true,
+ -- blwf = true,
+ -- pstf = true,
+ -- pres = true, -- malayalam
+ -- blws = true, -- malayalam
+ -- psts = true, -- malayalam
+ abvs = true,
+ akhn = true,
blwf = true,
+ calt = true,
+ cjct = true,
+ half = true,
+ haln = true,
+ nukt = true,
+ pref = true,
+ pres = true,
pstf = true,
- pres = true, -- malayalam
- blws = true, -- malayalam
- psts = true, -- malayalam
+ psts = true,
+ rkrf = true,
+ rphf = true,
+ vatu = true,
+ pres = true,
+ abvs = true,
+ blws = true,
+ psts = true,
+ haln = true,
+ calt = true,
}
+local scripts = { }
+
+local scripts_one = { "deva", "mlym", "beng", "gujr", "guru", "knda", "orya", "taml", "telu" }
+local scripts_two = { "dev2", "mlm2", "bng2", "gjr2", "gur2", "knd2", "ory2", "tml2", "tel2" }
+
+local nofscripts = #scripts_one
+
+for i=1,nofscripts do
+ local one = scripts_one[i]
+ local two = scripts_two[i]
+ scripts[one] = true
+ scripts[two] = true
+ two_defaults[one] = dflt_true
+ one_defaults[one] = dflt_true
+ one_defaults[two] = dflt_true
+end
+
+local function valid_one(s) for i=1,nofscripts do if s[scripts_one[i]] then return true end end end
+local function valid_two(s) for i=1,nofscripts do if s[scripts_two[i]] then return true end end end
+
local function initializedevanagi(tfmdata)
local script, language = otf.scriptandlanguage(tfmdata,attr) -- todo: take fast variant
- if script == "deva" or script == "dev2" or script =="mlym" or script == "mlm2" then
+ if scripts[script] then
local resources = tfmdata.resources
local devanagari = resources.devanagari
if not devanagari then
--
- report_devanagari("adding devanagari features to font")
+ report("adding devanagari features to font")
--
local gsubfeatures = resources.features.gsub
local sequences = resources.sequences
@@ -563,10 +519,10 @@ local function initializedevanagi(tfmdata)
end
local insertindex = lastmatch + 1
--
- gsubfeatures["dv01"] = dev2_defaults -- reorder matras
- gsubfeatures["dv02"] = dev2_defaults -- reorder reph
- gsubfeatures["dv03"] = dev2_defaults -- reorder pre base reordering consonants
- gsubfeatures["dv04"] = deva_defaults -- remove joiners
+ gsubfeatures["dv01"] = two_defaults -- reorder matras
+ gsubfeatures["dv02"] = two_defaults -- reorder reph
+ gsubfeatures["dv03"] = two_defaults -- reorder pre base reordering consonants
+ gsubfeatures["dv04"] = one_defaults -- remove joiners
--
local reorder_pre_base_reordering_consonants = copy(sequence_reorder_pre_base_reordering_consonants)
local reorder_reph = copy(sequence_reorder_reph)
@@ -622,8 +578,9 @@ local function initializedevanagi(tfmdata)
end
end
end
- for kind, spec in next, features do -- beware, this is
- if spec.dev2 and valid[kind] then
+ for kind, spec in next, features do
+ -- if spec.dev2 and valid[kind] then
+ if valid[kind] and valid_two(spec)then
for i=1,nofsteps do
local step = steps[i]
local coverage = step.coverage
@@ -648,7 +605,9 @@ local function initializedevanagi(tfmdata)
end
end
end
- seqsubset[#seqsubset+1] = { kind, coverage, reph }
+if reph then
+ seqsubset[#seqsubset+1] = { kind, coverage, reph }
+end
end
end
end
@@ -694,8 +653,30 @@ local function initializedevanagi(tfmdata)
sharedfeatures["pstf"] = true
sharedfeatures["pref"] = true
sharedfeatures["dv03"] = true -- dv03_reorder_pre_base_reordering_consonants
- gsubfeatures ["dv03"] = dev2_defaults -- reorder pre base reordering consonants
+ gsubfeatures ["dv03"] = two_defaults -- reorder pre base reordering consonants
insert(sequences,insertindex,sequence_reorder_pre_base_reordering_consonants)
+ -- elseif script == "beng" then
+ -- elseif script == "bng2" then
+ -- elseif script == "gujr" then
+ -- elseif script == "gjr2" then
+ -- elseif script == "guru" then
+ -- elseif script == "gur2" then
+ -- elseif script == "knda" then
+ -- elseif script == "knd2" then
+ elseif script == "taml" then
+ sharedfeatures["dv04"] = true -- dv04_remove_joiners
+sharedfeatures["pstf"] = true
+ elseif script == "tml2" then
+-- sharedfeatures["pstf"] = true
+-- sharedfeatures["pref"] = true
+-- sharedfeatures["dv01"] = true -- dv01_reorder_matras
+-- sharedfeatures["dv02"] = true -- dv02_reorder_reph
+-- sharedfeatures["dv03"] = true -- dv03_reorder_pre_base_reordering_consonants
+-- sharedfeatures["dv04"] = true -- dv04_remove_joiners
+ -- elseif script == "telu" then
+ -- elseif script == "tel2" then
+ else
+ report("todo: enable the right features for script %a",script)
end
end
end
@@ -712,7 +693,7 @@ registerotffeature {
-- hm, this is applied to one character:
-local function deva_initialize(font,attr) -- we need a proper hook into the dataset initializer
+local function initialize_one(font,attr) -- we need a proper hook into the dataset initializer
local tfmdata = fontdata[font]
local datasets = otf.dataset(tfmdata,font,attr) -- don't we know this one?
@@ -751,9 +732,9 @@ local function deva_initialize(font,attr) -- we need a proper hook into the data
end
-local function deva_reorder(head,start,stop,font,attr,nbspaces)
+local function reorder_one(head,start,stop,font,attr,nbspaces)
- local reph, vattu, blwfcache = deva_initialize(font,attr) -- todo: a hash[font]
+ local reph, vattu, blwfcache = initialize_one(font,attr) -- todo: a hash[font]
local current = start
local n = getnext(start)
@@ -790,40 +771,40 @@ local function deva_reorder(head,start,stop,font,attr,nbspaces)
lastcons = current
current = getnext(current)
if current ~= stop then
- if nukta[getchar(current)] then
+ local char = getchar(current)
+ if nukta[char] then
current = getnext(current)
+ char = getchar(current)
end
- if getchar(current) == c_zwj then
- if current ~= stop then
- local next = getnext(current)
- if next ~= stop and halant[getchar(next)] then
- current = next
- next = getnext(current)
- local tmp = next and getnext(next) or nil -- needs checking
- local changestop = next == stop
- local tempcurrent = copy_node(next)
- copyinjection(tempcurrent,next)
- local nextcurrent = copy_node(current)
- copyinjection(nextcurrent,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set
- setlink(tempcurrent,nextcurrent)
- setprop(tempcurrent,a_state,s_blwf)
- tempcurrent = processcharacters(tempcurrent,font)
- setprop(tempcurrent,a_state,unsetvalue)
- if getchar(next) == getchar(tempcurrent) then
- flush_list(tempcurrent)
- local n = copy_node(current)
- copyinjection(n,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set
- setchar(current,dotted_circle)
- head = insert_node_after(head, current, n)
- else
- setchar(current,getchar(tempcurrent)) -- we assumes that the result of blwf consists of one node
- local freenode = getnext(current)
- setlink(current,tmp)
- flush_node(freenode)
- flush_list(tempcurrent)
- if changestop then
- stop = current
- end
+ if char == c_zwj and current ~= stop then
+ local next = getnext(current)
+ if next ~= stop and halant[getchar(next)] then
+ current = next
+ next = getnext(current)
+ local tmp = next and getnext(next) or nil -- needs checking
+ local changestop = next == stop
+ local tempcurrent = copy_node(next)
+ copyinjection(tempcurrent,next)
+ local nextcurrent = copy_node(current)
+ copyinjection(nextcurrent,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set
+ setlink(tempcurrent,nextcurrent)
+ setprop(tempcurrent,a_state,s_blwf)
+ tempcurrent = processcharacters(tempcurrent,font)
+ setprop(tempcurrent,a_state,unsetvalue)
+ if getchar(next) == getchar(tempcurrent) then
+ flush_list(tempcurrent)
+ local n = copy_node(current)
+ copyinjection(n,current) -- KE: necessary? HH: probably not as positioning comes later and we rawget/set
+ setchar(current,dotted_circle)
+ head = insert_node_after(head, current, n)
+ else
+ setchar(current,getchar(tempcurrent)) -- we assumes that the result of blwf consists of one node
+ local freenode = getnext(current)
+ setlink(current,tmp)
+ flush_node(freenode)
+ flush_list(tempcurrent)
+ if changestop then
+ stop = current
end
end
end
@@ -1130,41 +1111,39 @@ function handlers.devanagari_reorder_matras(head,start) -- no leak
return head, start, true
end
--- todo: way more caching of attributes and font
-
--- Reph’s original position is always at the beginning of the syllable, (i.e. it is not reordered at the character reordering stage).
--- However, it will be reordered according to the basic-forms shaping results.
--- Possible positions for reph, depending on the script, are; after main, before post-base consonant forms,
--- and after post-base consonant forms.
-
--- 1 If reph should be positioned after post-base consonant forms, proceed to step 5.
--- 2 If the reph repositioning class is not after post-base: target position is after the first explicit halant glyph between
--- the first post-reph consonant and last main consonant. If ZWJ or ZWNJ are following this halant, position is moved after it.
--- If such position is found, this is the target position. Otherwise, proceed to the next step.
--- Note: in old-implementation fonts, where classifications were fixed in shaping engine,
--- there was no case where reph position will be found on this step.
--- 3 If reph should be repositioned after the main consonant: from the first consonant not ligated with main,
--- or find the first consonant that is not a potential pre-base reordering Ra.
--- 4 If reph should be positioned before post-base consonant, find first post-base classified consonant not ligated with main.
--- If no consonant is found, the target position should be before the first matra, syllable modifier sign or vedic sign.
--- 5 If no consonant is found in steps 3 or 4, move reph to a position immediately before the first post-base matra,
--- syllable modifier sign or vedic sign that has a reordering class after the intended reph position.
--- For example, if the reordering position for reph is post-main, it will skip above-base matras that also have a post-main position.
--- 6 Otherwise, reorder reph to the end of the syllable.
-
--- hm, this only looks at the start of a nodelist ... is this supposed to be line based?
+-- Reph’s original position is always at the beginning of the syllable, (i.e. it is
+-- not reordered at the character reordering stage). However, it will be reordered
+-- according to the basic-forms shaping results. Possible positions for reph,
+-- depending on the script, are; after main, before post-base consonant forms, and
+-- after post-base consonant forms.
+
+-- In Devanagari reph has reordering position 'before postscript' and dev2 only
+-- follows step 2, 4, and 6.
function handlers.devanagari_reorder_reph(head,start)
- -- since in Devanagari reph has reordering position 'before postscript' dev2 only follows step 2, 4, and 6,
- -- the other steps are still ToDo (required for scripts other than dev2)
local current = getnext(start)
local startnext = nil
local startprev = nil
local startfont = getfont(start)
local startattr = getprop(start,a_syllabe)
+ --
+ ::step_1::
+ --
+ -- If reph should be positioned after post-base consonant forms, proceed to step 5.
+ --
+ ::step_2::
+ --
+ -- If the reph repositioning class is not after post-base: target position is after
+ -- the first explicit halant glyph between the first post-reph consonant and last
+ -- main consonant. If ZWJ or ZWNJ are following this halant, position is moved after
+ -- it. If such position is found, this is the target position. Otherwise, proceed to
+ -- the next step. Note: in old-implementation fonts, where classifications were
+ -- fixed in shaping engine, there was no case where reph position will be found on
+ -- this step.
+ --
while current do
local char = ischar(current,startfont)
- if char and getprop(current,a_syllabe) == startattr then -- step 2
+ if char and getprop(current,a_syllabe) == startattr then
if halant[char] and not getprop(current,a_state) then
local next = getnext(current)
if next then
@@ -1188,11 +1167,25 @@ function handlers.devanagari_reorder_reph(head,start)
break
end
end
+ ::step_3::
+ --
+ -- If reph should be repositioned after the main consonant: from the first consonant
+ -- not ligated with main, or find the first consonant that is not a potential
+ -- pre-base reordering Ra.
+ --
+ -- Kai: todo
+ --
+ ::step_4::
+ --
+ -- If reph should be positioned before post-base consonant, find first post-base
+ -- classified consonant not ligated with main. If no consonant is found, the target
+ -- position should be before the first matra, syllable modifier sign or vedic sign.
+ --
if not startnext then
current = getnext(start)
while current do
local char = ischar(current,startfont)
- if char and getprop(current,a_syllabe) == startattr then -- step 4
+ if char and getprop(current,a_syllabe) == startattr then
if getprop(current,a_state) == s_pstf then -- post-base
startnext = getnext(start)
head = remove_node(head,start)
@@ -1209,16 +1202,22 @@ function handlers.devanagari_reorder_reph(head,start)
end
end
end
- -- todo: determine position for reph with reordering position other than 'before postscript'
- -- (required for scripts other than dev2)
- -- leaks
+ --
+ ::step_5::
+ --
+ -- If no consonant is found in steps 3 or 4, move reph to a position immediately
+ -- before the first post-base matra, syllable modifier sign or vedic sign that has a
+ -- reordering class after the intended reph position. For example, if the reordering
+ -- position for reph is post-main, it will skip above-base matras that also have a
+ -- post-main position.
+ --
if not startnext then
current = getnext(start)
local c = nil
while current do
local char = ischar(current,startfont)
- if char and getprop(current,a_syllabe) == startattr then -- step 5
- if not c and mark_above_below_post[char] and reorder_class[char] ~= "after subscript" then
+ if char and getprop(current,a_syllabe) == startattr then
+ if not c and mark_above_below_post[char] and after_subscript[char] then
c = current
end
current = getnext(current)
@@ -1238,13 +1237,17 @@ function handlers.devanagari_reorder_reph(head,start)
startattr = getprop(start,a_syllabe)
end
end
- -- leaks
+ --
+ ::step_6::
+ --
+ -- Otherwise, reorder reph to the end of the syllable.
+ --
if not startnext then
current = start
local next = getnext(current)
while next do
local nextchar = ischar(next,startfont)
- if nextchar and getprop(next,a_syllabe) == startattr then --step 6
+ if nextchar and getprop(next,a_syllabe) == startattr then
current = next
next = getnext(current)
else
@@ -1264,13 +1267,13 @@ function handlers.devanagari_reorder_reph(head,start)
return head, start, true
end
--- we can cache some checking (v)
-
-- If a pre-base reordering consonant is found, reorder it according to the following rules:
--
--- 1 Only reorder a glyph produced by substitution during application of the feature.
--- (Note that a font may shape a Ra consonant with the feature generally but block it in certain contexts.)
--- 2 Try to find a target position the same way as for pre-base matra. If it is found, reorder pre-base consonant glyph.
+-- 1 Only reorder a glyph produced by substitution during application of the feature. (Note
+-- that a font may shape a Ra consonant with the feature generally but block it in certain
+-- contexts.)
+-- 2 Try to find a target position the same way as for pre-base matra. If it is found, reorder
+-- pre-base consonant glyph.
-- 3 If position is not found, reorder immediately before main consonant.
-- Here we implement a few handlers:
@@ -1358,13 +1361,13 @@ function handlers.devanagari_remove_joiners(head,start,kind,lookupname,replaceme
setnext(prev)
end
if head == start then
- head = stop
+ head = stop
end
flush_list(start)
return head, stop, true
end
-local function dev2_initialize(font,attr)
+local function initialize_two(font,attr)
local devanagari = fontdata[font].resources.devanagari
@@ -1379,9 +1382,9 @@ end
-- this one will be merged into the caller: it saves a call, but we will then make function
-- of the actions
-local function dev2_reorder(head,start,stop,font,attr,nbspaces) -- maybe do a pass over (determine stop in sweep)
+local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pass over (determine stop in sweep)
- local seqsubset, reorderreph = dev2_initialize(font,attr)
+ local seqsubset, reorderreph = initialize_two(font,attr)
local reph = false -- was nil ... probably went unnoticed because never assigned
local halfpos = nil
@@ -1392,7 +1395,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces) -- maybe do a pa
for i=1,#seqsubset do
- -- maybe quit if start == stop
+ -- this can be done more efficient, the last test and less getnext
local subset = seqsubset[i]
local kind = subset[1]
@@ -1411,8 +1414,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces) -- maybe do a pa
if found[n] then --above-base: rphf Consonant + Halant
local afternext = next ~= stop and getnext(next)
if afternext and zw_char[getchar(afternext)] then -- ZWJ and ZWNJ prevent creation of reph
- current = next
- current = getnext(current)
+ current = afternext -- getnext(next)
elseif current == start then
setprop(current,a_state,s_rphf)
current = next
@@ -1559,7 +1561,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces) -- maybe do a pa
if halant[getchar(current)] then
setnext(getnext(current),tmp)
local nc = copy_node(current)
- copyinjection(nc,current)
+ copyinjection(nc,current)
setchar(current,dotted_circle)
head = insert_node_after(head,current,nc)
else
@@ -1957,7 +1959,7 @@ local function analyze_next_chars_two(c,font)
if not v then
return c
end
- if v == c_anudatta then
+ if anudatta[v] then
c = n
n = getnext(c)
if not n then
@@ -2056,10 +2058,12 @@ local function analyze_next_chars_two(c,font)
end
end
-local function inject_syntax_error(head,current,mark)
+local show_syntax_errors = false
+
+local function inject_syntax_error(head,current,char)
local signal = copy_node(current)
- copyinjection(signal,current)
- if mark == pre_mark then -- THIS IS WRONG: pre_mark is a table
+ copyinjection(signal,current)
+ if pre_mark[char] then
setchar(signal,dotted_circle)
else
setchar(current,dotted_circle)
@@ -2070,21 +2074,21 @@ end
-- It looks like these two analyzers were written independently but they share
-- a lot. Common code has been synced.
-function methods.deva(head,font,attr)
+local function method_one(head,font,attr)
head = tonut(head)
local current = head
local start = true
local done = false
local nbspaces = 0
while current do
- local char = ischar(current,font)
+ local char = ischar(current,font)
if char then
done = true
local syllablestart = current
local syllableend = nil
local c = current
local n = getnext(c)
- local first = char
+ local first = char
if n and ra[first] then
local second = ischar(n,font)
if second and halant[second] then
@@ -2116,10 +2120,10 @@ function methods.deva(head,font,attr)
end
if standalone then
-- stand alone cluster (at the start of the word only): #[Ra+H]+NBSP+[N]+[<[<ZWJ|ZWNJ>]+H+C>]+[{M}+[N]+[H]]+[SM]+[(VD)]
- local syllableend = analyze_next_chars_one(c,font,2)
- current = getnext(syllableend)
+ local syllableend = analyze_next_chars_one(c,font,2)
+ current = getnext(syllableend)
if syllablestart ~= syllableend then
- head, current, nbspaces = deva_reorder(head,syllablestart,syllableend,font,attr,nbspaces)
+ head, current, nbspaces = reorder_one(head,syllablestart,syllableend,font,attr,nbspaces)
current = getnext(current)
end
else
@@ -2225,7 +2229,7 @@ function methods.deva(head,font,attr)
end
end
if syllablestart ~= syllableend then
- head, current, nbspaces = deva_reorder(head,syllablestart,syllableend,font,attr,nbspaces)
+ head, current, nbspaces = reorder_one(head,syllablestart,syllableend,font,attr,nbspaces)
current = getnext(current)
end
elseif independent_vowel[char] then
@@ -2247,9 +2251,11 @@ function methods.deva(head,font,attr)
end
end
else
- local mark = mark_four[char]
- if mark then
- head, current = inject_syntax_error(head,current,mark)
+ if show_syntax_errors then
+ local mark = mark_four[char]
+ if mark then
+ head, current = inject_syntax_error(head,current,char)
+ end
end
current = getnext(current)
end
@@ -2264,15 +2270,13 @@ function methods.deva(head,font,attr)
head = replace_all_nbsp(head)
end
- head = tonode(head)
-
- return head, done
+ return tonode(head), done
end
-- there is a good change that when we run into one with subtype < 256 that the rest is also done
-- so maybe we can omit this check (it's pretty hard to get glyphs in the stream out of the blue)
-function methods.dev2(head,font,attr)
+local function method_two(head,font,attr)
head = tonut(head)
local current = head
local start = true
@@ -2296,7 +2300,7 @@ function methods.dev2(head,font,attr)
local nextnextchar = ischar(n,font)
if nextnextchar then
c = n
- char = nextnextchar
+ char = nextnextchar
end
end
end
@@ -2343,14 +2347,14 @@ function methods.dev2(head,font,attr)
end
end
if syllableend and syllablestart ~= syllableend then
- head, current, nbspaces = dev2_reorder(head,syllablestart,syllableend,font,attr,nbspaces)
+ head, current, nbspaces = reorder_two(head,syllablestart,syllableend,font,attr,nbspaces)
end
- if not syllableend then
+ if not syllableend and show_syntax_errors then
local char = ischar(current,font)
if char and not getprop(current,a_state) then
local mark = mark_four[char]
if mark then
- head, current = inject_syntax_error(head,current,mark)
+ head, current = inject_syntax_error(head,current,char)
end
end
end
@@ -2362,10 +2366,10 @@ function methods.dev2(head,font,attr)
head = replace_all_nbsp(head)
end
- head = tonode(head)
-
- return head, done
+ return tonode(head), done
end
-methods.mlym = methods.deva
-methods.mlm2 = methods.dev2
+for i=1,nofscripts do
+ methods[scripts_one[i]] = method_one
+ methods[scripts_two[i]] = method_two
+end
diff --git a/tex/context/base/mkiv/font-ota.lua b/tex/context/base/mkiv/font-ota.lua
index 9c6ee7403..de626c120 100644
--- a/tex/context/base/mkiv/font-ota.lua
+++ b/tex/context/base/mkiv/font-ota.lua
@@ -248,11 +248,11 @@ local function warning(current,what)
end
local mappers = allocate {
- l = s_init, -- left
- d = s_medi, -- double
- c = s_medi, -- joiner
- r = s_fina, -- right
- u = s_isol, -- nonjoiner
+ l = s_init, -- left
+ d = s_medi, -- double
+ c = s_medi, -- joiner
+ r = s_fina, -- right
+ u = s_isol, -- nonjoiner
}
-- we can also use this trick for devanagari
diff --git a/tex/context/base/mkiv/font-ots.lua b/tex/context/base/mkiv/font-ots.lua
index 3e338f614..25083dfce 100644
--- a/tex/context/base/mkiv/font-ots.lua
+++ b/tex/context/base/mkiv/font-ots.lua
@@ -936,7 +936,7 @@ function handlers.gpos_pair(head,start,dataset,sequence,kerns,rlmode,skiphash,st
elseif b then -- #b > 0
local x, y, w, h = setposition(2,snext,factor,rlmode,b,injection)
if trace_kerns then
- local startchar = getchar(snext)
+ local startchar = getchar(start)
logprocess("%s: shifting second of pair %s and %s by xy (%p,%p) and wh (%p,%p) as %s",pref(dataset,sequence),gref(startchar),gref(nextchar),x,y,w,h,injection or "injections")
end
start = snext -- cf spec
diff --git a/tex/context/base/mkiv/font-pre.mkiv b/tex/context/base/mkiv/font-pre.mkiv
index d09d871f0..b49bc560e 100644
--- a/tex/context/base/mkiv/font-pre.mkiv
+++ b/tex/context/base/mkiv/font-pre.mkiv
@@ -191,59 +191,139 @@
[semitic-simple]
[script=hebr]
-% \definefont [DevaOne] [file:chandas.ttf*devanagari-one at 12pt]
-% \definefont [DevaTwo] [file:kokila.ttf*devanagari-two at 18pt]
+% indic
\definefontfeature
- [devanagari-one]
+ [indic-common]
[mode=node,
language=dflt,
- script=deva,
+ % localized
+ locl=yes,
+ % positioning
+ kern=yes,
+ dist=yes,
+ % above/below base marks
+ abvm=yes,
+ blwm=yes,
+ % basic shaping
nukt=yes,
akhn=yes,
rphf=yes,
- blwf=yes,
- half=yes,
- vatu=yes,
+ % presentation
pres=yes,
abvs=yes,
blws=yes,
psts=yes,
haln=yes,
- abvm=yes,
- blwm=yes,
- dist=yes]
+ calt=yes]
\definefontfeature
- [devanagari-two]
[devanagari-one]
- [script=dev2,
- locl=yes,
- pref=yes,
+ [indic-common]
+ [script=deva,
+ % basic shaping
rkrf=yes,
+ blwf=yes,
+ half=yes,
+ vatu=yes,
+ cjct=yes]
+
+\definefontfeature
+ [bengali-one]
+ [indic-common]
+ [script=beng,
+ % basic shaping
+ blwf=yes,
+ half=yes,
pstf=yes,
+ vatu=yes,
cjct=yes,
- init=yes,
- calt=yes,
- kern=yes]
+ % presentation
+ init=yes]
\definefontfeature
- [malayalam-one]
- [mode=node,
- language=dflt,
- script=mlym,
- akhn=yes,
+ [gujarati-one]
+ [indic-common]
+ [script=gujr,
+ % basic shaping
+ rkrf=yes,
blwf=yes,
half=yes,
- pres=yes,
- blws=yes,
- psts=yes,
- haln=no]
+ vatu=yes,
+ cjct=yes]
+
+\definefontfeature
+ [gurmukhi-one]
+ [indic-common]
+ [script=guru,
+ % basic shaping
+ blwf=yes,
+ half=yes,
+ pstf=yes,
+ vatu=yes,
+ cjct=yes]
+
+\definefontfeature
+ [kannada-one]
+ [indic-common]
+ [script=knda,
+ % basic shaping
+ pref=yes,
+ blwf=yes,
+ half=yes,
+ pstf=yes,
+ cjct=yes]
\definefontfeature
- [malayalam-two]
[malayalam-one]
- [script=mlm2]
+ [indic-common]
+ [script=mlym,
+ % basic shaping
+ pref=yes,
+ blwf=yes,
+ half=yes,
+ pstf=yes,
+ cjct=yes]
+
+\definefontfeature
+ [oriya-one]
+ [indic-common]
+ [script=orya,
+ % basic shaping
+ blwf=yes,
+ pstf=yes,
+ cjct=yes]
+
+\definefontfeature
+ [tamil-one]
+ [indic-common]
+ [script=taml,
+ % basic shaping
+ pref=yes,
+ half=yes]
+
+\definefontfeature
+ [telugu-one]
+ [indic-common]
+ [script=telu,
+ % basic shaping
+ pref=yes,
+ blwf=yes,
+ half=yes,
+ pstf=yes,
+ cjct=yes]
+
+\definefontfeature [devanagari-two] [devanagari-one] [script=dev2]
+\definefontfeature [bengali-two] [bengali-one] [script=bng2]
+\definefontfeature [gujarati-two] [gujarati-one] [script=gjr2]
+\definefontfeature [gurmukhi-two] [gurmukhi-one] [script=gur2]
+\definefontfeature [kannada-two] [kannada-one] [script=knd2]
+\definefontfeature [malayalam-two] [malayalam-one] [script=mlm2]
+\definefontfeature [oriya-two] [oriya-one] [script=ory2]
+\definefontfeature [tamil-two] [tamil-one] [script=tml2]
+\definefontfeature [telugu-two] [telugu-one] [script=tel2]
+
+% cjk
\definefontfeature
[jamoforms]
@@ -251,8 +331,6 @@
tjmo=yes,
vjmo=yes]
-% cjk
-
% \definefontfeature
% [japanese]
% [default]
diff --git a/tex/context/base/mkiv/font-sel.lua b/tex/context/base/mkiv/font-sel.lua
index 0cf51cad3..e7f56047b 100644
--- a/tex/context/base/mkiv/font-sel.lua
+++ b/tex/context/base/mkiv/font-sel.lua
@@ -943,5 +943,5 @@ implement {
implement {
name = "definefontfamilypreset",
actions = selectfont.definefontfamilypreset,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/grph-fil.lua b/tex/context/base/mkiv/grph-fil.lua
index 3c069da37..540356c46 100644
--- a/tex/context/base/mkiv/grph-fil.lua
+++ b/tex/context/base/mkiv/grph-fil.lua
@@ -101,6 +101,6 @@ end
interfaces.implement {
name = "runcontextjob",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = { jobfiles.context, context }
}
diff --git a/tex/context/base/mkiv/grph-inc.lua b/tex/context/base/mkiv/grph-inc.lua
index 47eb7bbbb..f2d7847eb 100644
--- a/tex/context/base/mkiv/grph-inc.lua
+++ b/tex/context/base/mkiv/grph-inc.lua
@@ -487,7 +487,7 @@ function figures.setpaths(locationset,pathlist)
end
end
-implement { name = "setfigurepaths", actions = figures.setpaths, arguments = { "string", "string" } }
+implement { name = "setfigurepaths", actions = figures.setpaths, arguments = "2 strings" }
-- check conversions and handle it here
@@ -2014,7 +2014,7 @@ local ctx_doexternalfigurerepeat = context.doexternalfigurerepeat
implement {
name = "figure_register_page",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = function(a,b,c)
registered[#registered+1] = { a, b, c }
context(#registered)
diff --git a/tex/context/base/mkiv/java-ini.lua b/tex/context/base/mkiv/java-ini.lua
index 069eb5ab6..61ab15e7a 100644
--- a/tex/context/base/mkiv/java-ini.lua
+++ b/tex/context/base/mkiv/java-ini.lua
@@ -246,13 +246,13 @@ implement {
implement {
name = "setjavascriptpreamble",
actions = javascripts.setpreamble,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "addtojavascriptpreamble",
actions = javascripts.addtopreamble,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/l-macro.lua b/tex/context/base/mkiv/l-macro.lua
index d2b8c7ae4..30c7cbec6 100644
--- a/tex/context/base/mkiv/l-macro.lua
+++ b/tex/context/base/mkiv/l-macro.lua
@@ -14,7 +14,8 @@ if not modules then modules = { } end modules ['l-macros'] = {
local S, P, R, V, C, Cs, Cc, Ct, Carg = lpeg.S, lpeg.P, lpeg.R, lpeg.V, lpeg.C, lpeg.Cs, lpeg.Cc, lpeg.Ct, lpeg.Carg
local lpegmatch = lpeg.match
local concat = table.concat
-local next = next
+local format, sub = string.format, string.sub
+local next, load, type = next, load, type
local newline = S("\n\r")^1
local continue = P("\\") * newline
@@ -41,6 +42,15 @@ local definitions = { }
local resolve
local subparser
+local report_lua = function(...)
+ if logs and logs.reporter then
+ report_lua = logs.reporter("system","lua")
+ report_lua(...)
+ else
+ print(format(...))
+ end
+end
+
-- todo: zero case
resolve = C(C(name) * arguments^-1) / function(raw,s,a)
@@ -160,6 +170,66 @@ function macros.resolving()
return next(patterns)
end
+local function loaded(name,trace,detail)
+ -- local c = io.loaddata(fullname) -- not yet available
+ local f = io.open(name,"rb")
+ if not f then
+ return false, format("file '%s' not found",name)
+ end
+ local c = f:read("*a")
+ if not c then
+ return false, format("file '%s' is invalid",name)
+ end
+ f:close()
+ local n = lpegmatch(parser,c)
+ if trace then
+ if #n ~= #c then
+ report_lua("macros expanded in '%s' (%i => %i bytes)",name,#c,#n)
+ if detail then
+ report_lua()
+ report_lua(n)
+ report_lua()
+ end
+ elseif detail then
+ report_lua("no macros expanded in '%s'",name)
+ end
+ end
+ if #name > 30 then
+ n = "--[[" .. sub(name,-30) .. "]] " .. n
+ else
+ n = "--[[" .. name .. "]] " .. n
+ end
+ return load(n)
+end
+
+macros.loaded = loaded
+
+function required(name,trace)
+ local filename = file.addsuffix(name,"lua")
+ local fullname = resolvers and resolvers.find_file(filename) or filename
+ if not fullname or fullname == "" then
+ return false
+ end
+ local codeblob = package.loaded[fullname]
+ if codeblob then
+ return codeblob
+ end
+ local code, message = loaded(fullname,macros,trace,trace)
+ if type(code) == "function" then
+ code = code()
+ else
+ report_lua("error when loading '%s'",fullname)
+ return false, message
+ end
+ if code == nil then
+ code = false
+ end
+ package.loaded[fullname] = code
+ return code
+end
+
+macros.required = required
+
-- local str = [[
-- #define check(p,q) (p ~= 0) and (p > q)
--
diff --git a/tex/context/base/mkiv/l-package.lua b/tex/context/base/mkiv/l-package.lua
index d43c5c5c6..4faee76bf 100644
--- a/tex/context/base/mkiv/l-package.lua
+++ b/tex/context/base/mkiv/l-package.lua
@@ -18,12 +18,12 @@ if not modules then modules = { } end modules ['l-package'] = {
local type = type
local gsub, format, find = string.gsub, string.format, string.find
+local insert, remove = table.insert, table.remove
local P, S, Cs, lpegmatch = lpeg.P, lpeg.S, lpeg.Cs, lpeg.match
-local package = package
-local searchers = package.searchers or package.loaders
-local insert, remove = table.insert, table.remove
+local package = package
+local searchers = package.searchers or package.loaders
-------.loaders = nil -- old stuff that we don't want
-------.seeall = nil -- old stuff that we don't want
diff --git a/tex/context/base/mkiv/l-table.lua b/tex/context/base/mkiv/l-table.lua
index 9d7152544..5cd65dd67 100644
--- a/tex/context/base/mkiv/l-table.lua
+++ b/tex/context/base/mkiv/l-table.lua
@@ -420,7 +420,7 @@ end
-- todo : copy without metatable
-local function copy(t, tables) -- taken from lua wiki, slightly adapted
+local function copy(t,tables) -- taken from lua wiki, slightly adapted
tables = tables or { }
local tcopy = { }
if not tables[t] then
@@ -431,7 +431,7 @@ local function copy(t, tables) -- taken from lua wiki, slightly adapted
if tables[i] then
i = tables[i]
else
- i = copy(i, tables)
+ i = copy(i,tables)
end
end
if type(v) ~= "table" then
@@ -439,7 +439,7 @@ local function copy(t, tables) -- taken from lua wiki, slightly adapted
elseif tables[v] then
tcopy[i] = tables[v]
else
- tcopy[i] = copy(v, tables)
+ tcopy[i] = copy(v,tables)
end
end
local mt = getmetatable(t)
@@ -1225,10 +1225,10 @@ function table.reversed(t)
end
end
-function table.reverse(t)
+function table.reverse(t) -- check with 5.3 ?
if t then
local n = #t
- for i=1,floor(n/2) do
+ for i=1,floor(n/2) do -- maybe just n//2
local j = n - i + 1
t[i], t[j] = t[j], t[i]
end
diff --git a/tex/context/base/mkiv/lang-hyp.lua b/tex/context/base/mkiv/lang-hyp.lua
index f73a51b3a..e29446b65 100644
--- a/tex/context/base/mkiv/lang-hyp.lua
+++ b/tex/context/base/mkiv/lang-hyp.lua
@@ -980,7 +980,7 @@ featureset.hyphenonly = hyphenonly == v_yes
implement {
name = "registerhyphenationexception",
actions = traditional.registerexception,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
-- This is a relative large function with local variables and local functions. A previous
@@ -1725,7 +1725,7 @@ featureset.hyphenonly = hyphenonly == v_yes
implement {
name = "showhyphenationtrace",
actions = hyphenators.showhyphenationtrace,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
function nodes.stripdiscretionaries(head)
diff --git a/tex/context/base/mkiv/lang-ini.lua b/tex/context/base/mkiv/lang-ini.lua
index 6d202ff5a..30e086e15 100644
--- a/tex/context/base/mkiv/lang-ini.lua
+++ b/tex/context/base/mkiv/lang-ini.lua
@@ -612,7 +612,7 @@ end)
implement {
name = "languagenumber",
actions = { languages.getnumber, context },
- arguments = { "string", "string", "string", "string" }
+ arguments = "4 strings"
}
implement {
@@ -623,25 +623,25 @@ implement {
implement {
name = "definelanguage",
actions = languages.define,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
name = "setlanguagesynonym",
actions = languages.setsynonym,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
name = "unloadlanguage",
actions = languages.unload,
- arguments = { "string" }
+ arguments = "string"
}
implement {
name = "setlanguageexceptions",
actions = languages.setexceptions,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
diff --git a/tex/context/base/mkiv/lang-rep.lua b/tex/context/base/mkiv/lang-rep.lua
index 172454fc2..a5c4d97c8 100644
--- a/tex/context/base/mkiv/lang-rep.lua
+++ b/tex/context/base/mkiv/lang-rep.lua
@@ -366,11 +366,11 @@ implement {
implement {
name = "addreplacements",
actions = replacements.add,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
implement {
name = "addreplacementslist",
actions = replacements.addlist,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/lang-url.lua b/tex/context/base/mkiv/lang-url.lua
index 651c6bd52..95d959206 100644
--- a/tex/context/base/mkiv/lang-url.lua
+++ b/tex/context/base/mkiv/lang-url.lua
@@ -214,7 +214,7 @@ end
implement {
name = "sethyphenatedurlcharacters",
actions = urls.setcharacters,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/lang-wrd.lua b/tex/context/base/mkiv/lang-wrd.lua
index b00375cc0..7363dbb31 100644
--- a/tex/context/base/mkiv/lang-wrd.lua
+++ b/tex/context/base/mkiv/lang-wrd.lua
@@ -420,6 +420,6 @@ implement {
implement {
name = "loadspellchecklist",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = words.load
}
diff --git a/tex/context/base/mkiv/lpdf-epd.lua b/tex/context/base/mkiv/lpdf-epd.lua
index 2fcd28473..cf02b5a22 100644
--- a/tex/context/base/mkiv/lpdf-epd.lua
+++ b/tex/context/base/mkiv/lpdf-epd.lua
@@ -374,6 +374,8 @@ local function get_array(object,document)
end
end
+-- todo: collect chunks
+
local function streamaccess(s,_,what)
if not what or what == "all" or what == "*all" then
local t, n = { }, 0
diff --git a/tex/context/base/mkiv/lpdf-ini.lua b/tex/context/base/mkiv/lpdf-ini.lua
index f8cff2032..8af1fb409 100644
--- a/tex/context/base/mkiv/lpdf-ini.lua
+++ b/tex/context/base/mkiv/lpdf-ini.lua
@@ -1082,10 +1082,28 @@ end
do
+ -- It's a bit of a historical mess here.
+
+ local metadata = nil
local timestamp = backends.timestamp()
- function lpdf.timestamp()
- return timestamp
+ function lpdf.getmetadata()
+ if not metadata then
+ local contextversion = environment.version
+ local luatexversion = format("%1.2f",LUATEXVERSION)
+ local luatexfunctionality = tostring(LUATEXFUNCTIONALITY)
+ metadata = {
+ producer = format("LuaTeX-%s",luatexversion),
+ creator = format("LuaTeX %s %s + ConTeXt MkIV %s",luatexversion,luatexfunctionality,contextversion),
+ luatexversion = luatexversion,
+ contextversion = contextversion,
+ luatexfunctionality = luatexfunctionality,
+ luaversion = tostring(LUAVERSION),
+ platform = os.platform,
+ time = timestamp,
+ }
+ end
+ return metadata
end
function lpdf.settime(n)
@@ -1096,6 +1114,9 @@ do
timestamp = backends.timestamp()
end
end
+ if metadata then
+ metadata.time = timestamp
+ end
return timestamp
end
@@ -1107,10 +1128,11 @@ do
end
function lpdf.id(nodate)
+ local banner = environment.jobname or tex.jobname or "unknown"
if nodate then
- return tex.jobname
+ return banner
else
- return format("%s.%s",tex.jobname,timestamp)
+ return format("%s.%s",banner,timestamp)
end
end
diff --git a/tex/context/base/mkiv/lpdf-mis.lua b/tex/context/base/mkiv/lpdf-mis.lua
index 07dc3dcf1..6d1b09ca0 100644
--- a/tex/context/base/mkiv/lpdf-mis.lua
+++ b/tex/context/base/mkiv/lpdf-mis.lua
@@ -52,6 +52,8 @@ local addtoinfo = lpdf.addtoinfo
local addtopageattributes = lpdf.addtopageattributes
local addtonames = lpdf.addtonames
+local pdfgetmetadata = lpdf.getmetadata
+
local variables = interfaces.variables
local v_stop = variables.stop
@@ -189,6 +191,12 @@ local done = false -- using "setupidentity = function() end" fails as the meani
local function setupidentity()
if not done then
+ local metadata = pdfgetmetadata()
+ local creator = metadata.creator
+ local version = metadata.contextversion
+ local time = metadata.time
+ local jobname = environment.jobname or tex.jobname or "unknown"
+ --
local title = identity.title
if not title or title == "" then
title = tex.jobname
@@ -202,21 +210,16 @@ local function setupidentity()
if author ~= "" then
addtoinfo("Author", pdfunicode(author), author) -- '/Author' in /Info, 'Creator' in XMP
end
- -- local creator = identity.creator or ""
- local creator = "LuaTeX + ConTeXt MkIV" -- has to be the same in CreatorTool
- if creator ~= "" then
- addtoinfo("Creator", pdfunicode(creator), creator) -- '/Creator' in /Info, 'CreatorTool' in XMP
- end
- local currenttimestamp = lpdf.timestamp()
- addtoinfo("CreationDate", pdfstring(formattedtimestamp(currenttimestamp)))
+ addtoinfo("Creator", pdfunicode(creator), creator)
+ addtoinfo("CreationDate", pdfstring(formattedtimestamp(time)))
local date = identity.date or ""
- local pdfdate = formattedtimestamp(date)
+ local pdfdate = date and formattedtimestamp(date)
if pdfdate then
addtoinfo("ModDate", pdfstring(pdfdate), date)
else
-- users should enter the date in 2010-01-19T23:27:50+01:00 format
-- and if not provided that way we use the creation time instead
- addtoinfo("ModDate", pdfstring(formattedtimestamp(currenttimestamp)), currenttimestamp)
+ addtoinfo("ModDate", pdfstring(formattedtimestamp(time)),time)
end
local keywords = identity.keywords or ""
if keywords ~= "" then
@@ -226,11 +229,12 @@ local function setupidentity()
local id = lpdf.id()
addtoinfo("ID", pdfstring(id), id) -- needed for pdf/x
--
- addtoinfo("ConTeXt.Version", environment.version)
- addtoinfo("ConTeXt.Time", os.date("%Y-%m-%d %H:%M"))
- addtoinfo("ConTeXt.Jobname", environment.jobname or tex.jobname)
- addtoinfo("ConTeXt.Url", "www.pragma-ade.com")
- addtoinfo("ConTeXt.Support", "contextgarden.net")
+ addtoinfo("ConTeXt.Version",version)
+ addtoinfo("ConTeXt.Time",os.date("%Y-%m-%d %H:%M"))
+ addtoinfo("ConTeXt.Jobname",jobname)
+ addtoinfo("ConTeXt.Url","www.pragma-ade.com")
+ addtoinfo("ConTeXt.Support","contextgarden.net")
+ addtoinfo("TeX.Support","tug.org")
--
done = true
else
diff --git a/tex/context/base/mkiv/lpdf-pda.xml b/tex/context/base/mkiv/lpdf-pda.xml
index 78ad47f21..efdfc4d7d 100644
--- a/tex/context/base/mkiv/lpdf-pda.xml
+++ b/tex/context/base/mkiv/lpdf-pda.xml
@@ -24,12 +24,17 @@
</dc:title>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
+ <pdfx:ID/>
<pdfx:ConTeXt.Jobname/>
<pdfx:ConTeXt.Time/>
<pdfx:ConTeXt.Url/>
+ <pdfx:ConTeXt.Support/>
<pdfx:ConTeXt.Version/>
- <pdfx:ID/>
- <pdfx:PTEX.Fullbanner/>
+ <pdfx:TeX.Support/>
+ <pdfx:LuaTeX.Version/>
+ <pdfx:LuaTeX.Functionality/>
+ <pdfx:LuaTeX.LuaVersion/>
+ <pdfx:LuaTeX.Platform/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
<xmp:CreateDate/>
diff --git a/tex/context/base/mkiv/lpdf-pdx.xml b/tex/context/base/mkiv/lpdf-pdx.xml
index d55e1fdf3..889862c76 100644
--- a/tex/context/base/mkiv/lpdf-pdx.xml
+++ b/tex/context/base/mkiv/lpdf-pdx.xml
@@ -23,12 +23,17 @@
</dc:title>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
+ <pdfx:ID/>
<pdfx:ConTeXt.Jobname/>
<pdfx:ConTeXt.Time/>
<pdfx:ConTeXt.Url/>
+ <pdfx:ConTeXt.Support/>
<pdfx:ConTeXt.Version/>
- <pdfx:ID/>
- <pdfx:PTEX.Fullbanner/>
+ <pdfx:TeX.Support/>
+ <pdfx:LuaTeX.Version/>
+ <pdfx:LuaTeX.Functionality/>
+ <pdfx:LuaTeX.LuaVersion/>
+ <pdfx:LuaTeX.Platform/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
<xmp:CreateDate/>
diff --git a/tex/context/base/mkiv/lpdf-pua.xml b/tex/context/base/mkiv/lpdf-pua.xml
index c50e1f05b..f985b54d3 100644
--- a/tex/context/base/mkiv/lpdf-pua.xml
+++ b/tex/context/base/mkiv/lpdf-pua.xml
@@ -23,12 +23,17 @@
</dc:title>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
+ <pdfx:ID/>
<pdfx:ConTeXt.Jobname/>
<pdfx:ConTeXt.Time/>
<pdfx:ConTeXt.Url/>
+ <pdfx:ConTeXt.Support/>
<pdfx:ConTeXt.Version/>
- <pdfx:ID/>
- <pdfx:PTEX.Fullbanner/>
+ <pdfx:TeX.Support/>
+ <pdfx:LuaTeX.Version/>
+ <pdfx:LuaTeX.Functionality/>
+ <pdfx:LuaTeX.LuaVersion/>
+ <pdfx:LuaTeX.Platform/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
<xmp:CreateDate/>
diff --git a/tex/context/base/mkiv/lpdf-xmp.lua b/tex/context/base/mkiv/lpdf-xmp.lua
index 2eb573acb..eb15a3582 100644
--- a/tex/context/base/mkiv/lpdf-xmp.lua
+++ b/tex/context/base/mkiv/lpdf-xmp.lua
@@ -27,6 +27,8 @@ local pdfconstant = lpdf.constant
local pdfreference = lpdf.reference
local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfgetmetadata = lpdf.getmetadata
+
-- The XMP packet wrapper is kind of fixed, see page 10 of XMPSpecificationsPart1.pdf from
-- XMP-Toolkit-SDK-CC201607.zip. So we hardcode the id.
@@ -39,47 +41,52 @@ local xpacket = format ( [[
local mapping = {
-- user defined keys (pdfx:)
- ["ConTeXt.Jobname"] = { "context", "rdf:Description/pdfx:ConTeXt.Jobname" },
- ["ConTeXt.Time"] = { "date", "rdf:Description/pdfx:ConTeXt.Time" },
- ["ConTeXt.Url"] = { "context", "rdf:Description/pdfx:ConTeXt.Url" },
- ["ConTeXt.Version"] = { "context", "rdf:Description/pdfx:ConTeXt.Version" },
- ["ID"] = { "id", "rdf:Description/pdfx:ID" }, -- has date
- ["PTEX.Fullbanner"] = { "metadata","rdf:Description/pdfx:PTEX.Fullbanner" },
+ ["ConTeXt.Jobname"] = { "context", "rdf:Description/pdfx:ConTeXt.Jobname" },
+ ["ConTeXt.Time"] = { "date", "rdf:Description/pdfx:ConTeXt.Time" },
+ ["ConTeXt.Url"] = { "context", "rdf:Description/pdfx:ConTeXt.Url" },
+ ["ConTeXt.Support"] = { "context", "rdf:Description/pdfx:ConTeXt.Support" },
+ ["ConTeXt.Version"] = { "context", "rdf:Description/pdfx:ConTeXt.Version" },
+ ["TeX.Support"] = { "metadata", "rdf:Description/pdfx:TeX.Support" },
+ ["LuaTeX.Version"] = { "metadata","rdf:Description/pdfx:LuaTeX.Version" },
+ ["LuaTeX.Functionality"] = { "metadata","rdf:Description/pdfx:LuaTeX.Functionality" },
+ ["LuaTeX.LuaVersion"] = { "metadata","rdf:Description/pdfx:LuaTeX.LuaVersion" },
+ ["LuaTeX.Platform"] = { "metadata","rdf:Description/pdfx:LuaTeX.Platform" },
+ ["ID"] = { "id", "rdf:Description/pdfx:ID" }, -- has date
-- Adobe PDF schema
- ["Keywords"] = { "metadata","rdf:Description/pdf:Keywords" },
- ["Producer"] = { "metadata","rdf:Description/pdf:Producer" },
- -- ["Trapped"] = { "pdf", "rdf:Description/pdf:Trapped" }, -- '/False' in /Info, but 'False' in XMP
+ ["Keywords"] = { "metadata","rdf:Description/pdf:Keywords" },
+ ["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" },
+ ["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" },
-- XMP Basic schema
- ["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
- ["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
- ["Creator"] = { "metadata","rdf:Description/xmp:CreatorTool" },
- ["MetadataDate"] = { "date", "rdf:Description/xmp:MetadataDate" },
- ["ModDate"] = { "date", "rdf:Description/xmp:ModDate" }, -- dummy
- ["ModifyDate"] = { "date", "rdf:Description/xmp:ModifyDate" },
+ ["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
+ ["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
+ ["Creator"] = { "metadata","rdf:Description/xmp:CreatorTool" },
+ ["MetadataDate"] = { "date", "rdf:Description/xmp:MetadataDate" },
+ ["ModDate"] = { "date", "rdf:Description/xmp:ModDate" }, -- dummy
+ ["ModifyDate"] = { "date", "rdf:Description/xmp:ModifyDate" },
-- XMP Media Management schema
- ["DocumentID"] = { "id", "rdf:Description/xmpMM:DocumentID" }, -- uuid
- ["InstanceID"] = { "id", "rdf:Description/xmpMM:InstanceID" }, -- uuid
- ["RenditionClass"] = { "pdf", "rdf:Description/xmpMM:RenditionClass" }, -- PDF/X-4
- ["VersionID"] = { "pdf", "rdf:Description/xmpMM:VersionID" }, -- PDF/X-4
+ ["DocumentID"] = { "id", "rdf:Description/xmpMM:DocumentID" }, -- uuid
+ ["InstanceID"] = { "id", "rdf:Description/xmpMM:InstanceID" }, -- uuid
+ ["RenditionClass"] = { "pdf", "rdf:Description/xmpMM:RenditionClass" }, -- PDF/X-4
+ ["VersionID"] = { "pdf", "rdf:Description/xmpMM:VersionID" }, -- PDF/X-4
-- additional entries
-- PDF/X
- ["GTS_PDFXVersion"] = { "pdf", "rdf:Description/pdfxid:GTS_PDFXVersion" },
+ ["GTS_PDFXVersion"] = { "pdf", "rdf:Description/pdfxid:GTS_PDFXVersion" },
-- optional entries
-- all what is visible in the 'document properties --> additional metadata' window
-- XMP Rights Management schema (optional)
- ["Marked"] = { "pdf", "rdf:Description/xmpRights:Marked" },
- -- ["Owner"] = { "metadata", "rdf:Description/xmpRights:Owner/rdf:Bag/rdf:li" }, -- maybe useful (not visible)
- -- ["UsageTerms"] = { "metadata", "rdf:Description/xmpRights:UsageTerms" }, -- maybe useful (not visible)
- ["WebStatement"] = { "metadata", "rdf:Description/xmpRights:WebStatement" },
+ ["Marked"] = { "pdf", "rdf:Description/xmpRights:Marked" },
+ -- ["Owner"] = { "metadata", "rdf:Description/xmpRights:Owner/rdf:Bag/rdf:li" }, -- maybe useful (not visible)
+ -- ["UsageTerms"] = { "metadata", "rdf:Description/xmpRights:UsageTerms" }, -- maybe useful (not visible)
+ ["WebStatement"] = { "metadata", "rdf:Description/xmpRights:WebStatement" },
-- Photoshop PDF schema (optional)
- ["AuthorsPosition"] = { "metadata", "rdf:Description/photoshop:AuthorsPosition" },
- ["Copyright"] = { "metadata", "rdf:Description/photoshop:Copyright" },
- ["CaptionWriter"] = { "metadata", "rdf:Description/photoshop:CaptionWriter" },
+ ["AuthorsPosition"] = { "metadata", "rdf:Description/photoshop:AuthorsPosition" },
+ ["Copyright"] = { "metadata", "rdf:Description/photoshop:Copyright" },
+ ["CaptionWriter"] = { "metadata", "rdf:Description/photoshop:CaptionWriter" },
}
pdf.setsuppressoptionalinfo(
@@ -100,6 +107,12 @@ local included = backends.included
local pdfsettrailerid = pdf.settrailerid
+local lpdfid = lpdf.id
+
+function lpdf.id() -- overload of ini
+ return lpdfid(included.date)
+end
+
pdf.disablecommand("settrailerid")
function lpdf.settrailerid(v)
@@ -144,14 +157,6 @@ function lpdf.setdates(v)
end
end
-function lpdf.id() -- overload of ini
- local banner = tex.jobname
- if included.date then
- return format("%s.%s",banner,lpdf.timestamp())
- else
- return banner
- end
-end
directives.register("backend.trailerid", lpdf.settrailerid)
directives.register("backend.date", lpdf.setdates)
@@ -251,38 +256,36 @@ local function flushxmpinfo()
commands.pushrandomseed()
commands.setrandomseed(os.time())
- local version = status.luatex_version
- local revision = status.luatex_revision
-
local documentid = "no unique document id here"
local instanceid = "no unique instance id here"
- -- local producer = format("LuaTeX-%i.%02i.%s",math.div(version,100),math.mod(version,100),revision)
- local producer = format("LuaTeX-%0.2f.%s",version/100,revision)
- local creator = "LuaTeX + ConTeXt MkIV"
- local time = lpdf.timestamp()
- local fullbanner = status.banner
+ local metadata = pdfgetmetadata()
+ local time = metadata.time
+ local producer = metadata.producer
+ local creator = metadata.creator
if included.id ~= "fake" then
documentid = "uuid:" .. os.uuid()
instanceid = "uuid:" .. os.uuid()
end
- pdfaddtoinfo("Producer", producer)
- pdfaddtoinfo("Creator", creator)
- pdfaddtoinfo("CreationDate", time)
- pdfaddtoinfo("ModDate", time)
- -- pdfaddtoinfo("PTEX.Fullbanner", fullbanner) -- no checking done on existence
+ pdfaddtoinfo("Producer",producer)
+ pdfaddtoinfo("Creator",creator)
+ pdfaddtoinfo("CreationDate",time)
+ pdfaddtoinfo("ModDate",time)
if add_xmp_blob then
- pdfaddxmpinfo("DocumentID", documentid)
- pdfaddxmpinfo("InstanceID", instanceid)
- pdfaddxmpinfo("Producer", producer)
- pdfaddxmpinfo("CreatorTool", creator)
- pdfaddxmpinfo("CreateDate", time)
- pdfaddxmpinfo("ModifyDate", time)
- pdfaddxmpinfo("MetadataDate", time)
- pdfaddxmpinfo("PTEX.Fullbanner", fullbanner)
+ pdfaddxmpinfo("DocumentID",documentid)
+ pdfaddxmpinfo("InstanceID",instanceid)
+ pdfaddxmpinfo("Producer",producer)
+ pdfaddxmpinfo("CreatorTool",creator)
+ pdfaddxmpinfo("CreateDate",time)
+ pdfaddxmpinfo("ModifyDate",time)
+ pdfaddxmpinfo("MetadataDate",time)
+ pdfaddxmpinfo("LuaTeX.Version",metadata.luatexversion)
+ pdfaddxmpinfo("LuaTeX.Functionality",metadata.luatexfunctionality)
+ pdfaddxmpinfo("LuaTeX.LuaVersion",metadata.luaversion)
+ pdfaddxmpinfo("LuaTeX.Platform",metadata.platform)
local blob = xml.tostring(xml.first(xmp or valid_xmp(),"/x:xmpmeta"))
local md = pdfdictionary {
diff --git a/tex/context/base/mkiv/luat-ini.mkiv b/tex/context/base/mkiv/luat-ini.mkiv
index 25ad7e139..872d27e77 100644
--- a/tex/context/base/mkiv/luat-ini.mkiv
+++ b/tex/context/base/mkiv/luat-ini.mkiv
@@ -265,16 +265,52 @@
% \def\syst_helpers_checked_stripped_csname#1%
% {\if\noexpand#1\letterbackslash\else#1\fi}
-\normalprotected\def\installctxfunction#1#2%
+\normalprotected\def\installctxfunction#1#2% expandable
{\edef\m_syst_name{\csstring#1}%
\global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
\expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
-\normalprotected\def\installctxscanner#1#2%
+\normalprotected\def\installctxscanner#1#2% expandable
{\edef\m_syst_name{\csstring#1}%
\global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
\expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+\normalprotected\def\installprotectedctxfunction#1#2% protected
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxscanner#1#2% protected
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}}
+
+% not yet used
+
+\ifdefined\luafunctioncall \else
+ \protected\def\luafunctioncall{\luafunctioncall}
+\fi
+
+\normalprotected\def\installctxfunctioncall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installctxscannercall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxfunctioncall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax
+ \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
+\normalprotected\def\installprotectedctxscannercall#1#2%
+ {\edef\m_syst_name{\csstring#1}%
+ \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax
+ \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}}
+
\normalprotected\def\resetctxscanner#1%
{\edef\m_syst_name{\csstring#1}%
\global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\zerocount
diff --git a/tex/context/base/mkiv/luat-usr.lua b/tex/context/base/mkiv/luat-usr.lua
index e7406782b..ebcb0f0e8 100644
--- a/tex/context/base/mkiv/luat-usr.lua
+++ b/tex/context/base/mkiv/luat-usr.lua
@@ -101,7 +101,7 @@ interfaces.implement {
interfaces.implement {
name = "luathread",
actions = runthread,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
-- local scanners = interfaces.scanners
@@ -177,7 +177,7 @@ lua.registername = registername
implement {
name = "registernamedlua",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = function(name,message,csname)
if csname and csname ~= "" then
implement {
diff --git a/tex/context/base/mkiv/lxml-css.lua b/tex/context/base/mkiv/lxml-css.lua
index a4d15ba1f..1787c53df 100644
--- a/tex/context/base/mkiv/lxml-css.lua
+++ b/tex/context/base/mkiv/lxml-css.lua
@@ -985,11 +985,11 @@ end
interfaces.implement {
name = "xmlstylevalue",
actions = css.stylevalue,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
interfaces.implement {
name = "xmlmappedstylevalue",
actions = css.mappedstylevalue,
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
}
diff --git a/tex/context/base/mkiv/lxml-ini.lua b/tex/context/base/mkiv/lxml-ini.lua
index f7f882cee..b255477cb 100644
--- a/tex/context/base/mkiv/lxml-ini.lua
+++ b/tex/context/base/mkiv/lxml-ini.lua
@@ -23,16 +23,16 @@ local implement = interfaces.implement
implement { name = "lxmlid", actions = lxml.getid, arguments = "string" }
-implement { name = "xmldoif", actions = lxml.doif, arguments = { "string", "string" } }
-implement { name = "xmldoifnot", actions = lxml.doifnot, arguments = { "string", "string" } }
-implement { name = "xmldoifelse", actions = lxml.doifelse, arguments = { "string", "string" } }
-implement { name = "xmldoiftext", actions = lxml.doiftext, arguments = { "string", "string" } }
-implement { name = "xmldoifnottext", actions = lxml.doifnottext, arguments = { "string", "string" } }
-implement { name = "xmldoifelsetext", actions = lxml.doifelsetext, arguments = { "string", "string" } }
-
-implement { name = "xmldoifempty", actions = lxml.doifempty, arguments = { "string", "string" } }
-implement { name = "xmldoifnotempty", actions = lxml.doifnotempty, arguments = { "string", "string" } }
-implement { name = "xmldoifelseempty", actions = lxml.doifelseempty, arguments = { "string", "string" } }
+implement { name = "xmldoif", actions = lxml.doif, arguments = "2 strings" }
+implement { name = "xmldoifnot", actions = lxml.doifnot, arguments = "2 strings" }
+implement { name = "xmldoifelse", actions = lxml.doifelse, arguments = "2 strings" }
+implement { name = "xmldoiftext", actions = lxml.doiftext, arguments = "2 strings" }
+implement { name = "xmldoifnottext", actions = lxml.doifnottext, arguments = "2 strings" }
+implement { name = "xmldoifelsetext", actions = lxml.doifelsetext, arguments = "2 strings" }
+
+implement { name = "xmldoifempty", actions = lxml.doifempty, arguments = "2 strings" }
+implement { name = "xmldoifnotempty", actions = lxml.doifnotempty, arguments = "2 strings" }
+implement { name = "xmldoifelseempty", actions = lxml.doifelseempty, arguments = "2 strings" }
implement { name = "xmldoifselfempty", actions = lxml.doifempty, arguments = "string" } -- second arg is not passed (used)
implement { name = "xmldoifnotselfempty", actions = lxml.doifnotempty, arguments = "string" } -- second arg is not passed (used)
implement { name = "xmldoifelseselfempty", actions = lxml.doifelseempty, arguments = "string" } -- second arg is not passed (used)
@@ -40,88 +40,88 @@ implement { name = "xmldoifelseselfempty", actions = lxml.doifelseempty, arg
--------- { name = "xmlcontent", actions = lxml.content, arguments = "string" }
--------- { name = "xmlflushstripped", actions = lxml.strip, arguments = { "string", true } }
-implement { name = "xmlall", actions = lxml.all, arguments = { "string", "string" } }
-implement { name = "xmlatt", actions = lxml.att, arguments = { "string", "string" } }
-implement { name = "xmlattdef", actions = lxml.att, arguments = { "string", "string", "string" } }
-implement { name = "xmlattribute", actions = lxml.attribute, arguments = { "string", "string", "string" } }
-implement { name = "xmlattributedef", actions = lxml.attribute, arguments = { "string", "string", "string", "string" } }
+implement { name = "xmlall", actions = lxml.all, arguments = "2 strings" }
+implement { name = "xmlatt", actions = lxml.att, arguments = "2 strings" }
+implement { name = "xmlattdef", actions = lxml.att, arguments = "3 strings" }
+implement { name = "xmlattribute", actions = lxml.attribute, arguments = "3 strings" }
+implement { name = "xmlattributedef", actions = lxml.attribute, arguments = "4 strings" }
implement { name = "xmlbadinclusions", actions = lxml.badinclusions, arguments = "string" }
implement { name = "xmlchainatt", actions = lxml.chainattribute, arguments = { "string", "'/'", "string" } }
implement { name = "xmlchainattdef", actions = lxml.chainattribute, arguments = { "string", "'/'", "string", "string" } }
implement { name = "xmlchecknamespace", actions = xml.checknamespace, arguments = { "lxmlid", "string", "string" } }
-implement { name = "xmlcommand", actions = lxml.command, arguments = { "string", "string", "string" } }
-implement { name = "xmlconcat", actions = lxml.concat, arguments = { "string", "string", "string" } } -- \detokenize{#3}
+implement { name = "xmlcommand", actions = lxml.command, arguments = "3 strings" }
+implement { name = "xmlconcat", actions = lxml.concat, arguments = "3 strings" } -- \detokenize{#3}
implement { name = "xmlconcatrange", actions = lxml.concatrange, arguments = { "string", "string", "string", "string", "string" } } -- \detokenize{#5}
-implement { name = "xmlcontext", actions = lxml.context, arguments = { "string", "string" } }
-implement { name = "xmlcount", actions = lxml.count, arguments = { "string", "string" } }
-implement { name = "xmldelete", actions = lxml.delete, arguments = { "string", "string" } }
+implement { name = "xmlcontext", actions = lxml.context, arguments = "2 strings" }
+implement { name = "xmlcount", actions = lxml.count, arguments = "2 strings" }
+implement { name = "xmldelete", actions = lxml.delete, arguments = "2 strings" }
implement { name = "xmldirect", actions = lxml.direct, arguments = "string" }
implement { name = "xmldirectives", actions = lxml.directives.setup, arguments = "string" }
implement { name = "xmldirectivesafter", actions = lxml.directives.after, arguments = "string" }
implement { name = "xmldirectivesbefore", actions = lxml.directives.before, arguments = "string" }
implement { name = "xmldisplayverbatim", actions = lxml.displayverbatim, arguments = "string" }
-implement { name = "xmlelement", actions = lxml.element, arguments = { "string", "string" } } -- could be integer but now we can alias
-implement { name = "xmlfilter", actions = lxml.filter, arguments = { "string", "string" } }
-implement { name = "xmlfilterlist", actions = lxml.filterlist, arguments = { "string", "string" } }
-implement { name = "xmlfirst", actions = lxml.first, arguments = { "string", "string" } }
+implement { name = "xmlelement", actions = lxml.element, arguments = "2 strings" } -- could be integer but now we can alias
+implement { name = "xmlfilter", actions = lxml.filter, arguments = "2 strings" }
+implement { name = "xmlfilterlist", actions = lxml.filterlist, arguments = "2 strings" }
+implement { name = "xmlfirst", actions = lxml.first, arguments = "2 strings" }
implement { name = "xmlflush", actions = lxml.flush, arguments = "string" }
implement { name = "xmlflushcontext", actions = lxml.context, arguments = "string" }
implement { name = "xmlflushlinewise", actions = lxml.flushlinewise, arguments = "string" }
implement { name = "xmlflushpure", actions = lxml.pure, arguments = "string" }
implement { name = "xmlflushspacewise", actions = lxml.flushspacewise, arguments = "string" }
implement { name = "xmlflushtext", actions = lxml.text, arguments = "string" }
-implement { name = "xmlfunction", actions = lxml.applyfunction, arguments = { "string", "string" } }
+implement { name = "xmlfunction", actions = lxml.applyfunction, arguments = "2 strings" }
implement { name = "xmlinclude", actions = lxml.include, arguments = { "string", "string", "string", true } }
-implement { name = "xmlincludeoptions", actions = lxml.include, arguments = { "string", "string", "string", "string" } }
+implement { name = "xmlincludeoptions", actions = lxml.include, arguments = "4 strings" }
implement { name = "xmlinclusion", actions = lxml.inclusion, arguments = "string" }
implement { name = "xmlinclusionbase", actions = lxml.inclusion, arguments = { "string", false, true } }
implement { name = "xmlinclusions", actions = lxml.inclusions, arguments = "string" }
-implement { name = "xmlindex", actions = lxml.index, arguments = { "string", "string", "string" } } -- can be integer but now we can alias
+implement { name = "xmlindex", actions = lxml.index, arguments = "3 strings" } -- can be integer but now we can alias
implement { name = "xmlinlineverbatim", actions = lxml.inlineverbatim, arguments = "string" }
-implement { name = "xmllast", actions = lxml.last, arguments = { "string", "string" } }
+implement { name = "xmllast", actions = lxml.last, arguments = "2 strings" }
implement { name = "xmllastatt", actions = lxml.lastatt }
implement { name = "xmllastmatch", actions = lxml.lastmatch }
implement { name = "xmllastpar", actions = lxml.lastpar }
-implement { name = "xmlload", actions = lxml.load, arguments = { "string", "string", "string" } }
-implement { name = "xmlloadbuffer", actions = lxml.loadbuffer, arguments = { "string", "string", "string" } }
-implement { name = "xmlloaddata", actions = lxml.loaddata, arguments = { "string", "string", "string" } }
+implement { name = "xmlload", actions = lxml.load, arguments = "3 strings" }
+implement { name = "xmlloadbuffer", actions = lxml.loadbuffer, arguments = "3 strings" }
+implement { name = "xmlloaddata", actions = lxml.loaddata, arguments = "3 strings" }
implement { name = "xmlloaddirectives", actions = lxml.directives.load, arguments = "string" }
implement { name = "xmlmain", actions = lxml.main, arguments = "string" }
implement { name = "xmlmatch", actions = lxml.match, arguments = "string" }
implement { name = "xmlname", actions = lxml.name, arguments = "string" }
implement { name = "xmlnamespace", actions = lxml.namespace, arguments = "string" }
-implement { name = "xmlnonspace", actions = lxml.nonspace, arguments = { "string", "string" } }
-implement { name = "xmlpar", actions = lxml.par, arguments = { "string", "string" } }
-implement { name = "xmlparam", actions = lxml.param, arguments = { "string", "string", "string" } }
+implement { name = "xmlnonspace", actions = lxml.nonspace, arguments = "2 strings" }
+implement { name = "xmlpar", actions = lxml.par, arguments = "2 strings" }
+implement { name = "xmlparam", actions = lxml.param, arguments = "3 strings" }
implement { name = "xmlpath", actions = lxml.path, arguments = { "string", "'/'" } }
implement { name = "xmlpopmatch", actions = lxml.popmatch }
implement { name = "xmlpos", actions = lxml.pos, arguments = "string" }
-implement { name = "xmlpure", actions = lxml.pure, arguments = { "string", "string" } }
+implement { name = "xmlpure", actions = lxml.pure, arguments = "2 strings" }
implement { name = "xmlpushmatch", actions = lxml.pushmatch }
-implement { name = "xmlraw", actions = lxml.raw, arguments = { "string", "string" } }
-implement { name = "xmlrawtex", actions = lxml.rawtex, arguments = { "string", "string" } }
-implement { name = "xmlrefatt", actions = lxml.refatt, arguments = { "string", "string" } }
-implement { name = "xmlregisterns", actions = xml.registerns, arguments = { "string", "string" } }
+implement { name = "xmlraw", actions = lxml.raw, arguments = "2 strings" }
+implement { name = "xmlrawtex", actions = lxml.rawtex, arguments = "2 strings" }
+implement { name = "xmlrefatt", actions = lxml.refatt, arguments = "2 strings" }
+implement { name = "xmlregisterns", actions = xml.registerns, arguments = "2 strings" }
implement { name = "xmlremapname", actions = xml.remapname, arguments = { "lxmlid", "string","string","string" } }
implement { name = "xmlremapnamespace", actions = xml.renamespace, arguments = { "lxmlid", "string", "string" } }
-implement { name = "xmlsave", actions = lxml.save, arguments = { "string", "string" } }
-implement { name = "xmlsetatt", actions = lxml.setatt, arguments = { "string", "string", "string" } }
-implement { name = "xmlsetattribute", actions = lxml.setattribute, arguments = { "string", "string", "string", "string" } }
-implement { name = "xmlsetpar", actions = lxml.setpar, arguments = { "string", "string", "string" } }
-implement { name = "xmlsetparam", actions = lxml.setparam, arguments = { "string", "string", "string", "string" } }
-implement { name = "xmlsetsetup", actions = lxml.setsetup, arguments = { "string", "string", "string" } }
-implement { name = "xmlsnippet", actions = lxml.snippet, arguments = { "string", "string" } }
-implement { name = "xmlstrip", actions = lxml.strip, arguments = { "string", "string" } }
+implement { name = "xmlsave", actions = lxml.save, arguments = "2 strings" }
+implement { name = "xmlsetatt", actions = lxml.setatt, arguments = "3 strings" }
+implement { name = "xmlsetattribute", actions = lxml.setattribute, arguments = "4 strings" }
+implement { name = "xmlsetpar", actions = lxml.setpar, arguments = "3 strings" }
+implement { name = "xmlsetparam", actions = lxml.setparam, arguments = "4 strings" }
+implement { name = "xmlsetsetup", actions = lxml.setsetup, arguments = "3 strings" }
+implement { name = "xmlsnippet", actions = lxml.snippet, arguments = "2 strings" }
+implement { name = "xmlstrip", actions = lxml.strip, arguments = "2 strings" }
implement { name = "xmlstripanywhere", actions = lxml.strip, arguments = { "string", "string", true, true } }
implement { name = "xmlstripnolines", actions = lxml.strip, arguments = { "string", "string", true } }
-implement { name = "xmlstripped", actions = lxml.stripped, arguments = { "string", "string" } }
+implement { name = "xmlstripped", actions = lxml.stripped, arguments = "2 strings" }
implement { name = "xmlstrippednolines", actions = lxml.stripped, arguments = { "string", "string", true } }
implement { name = "xmltag", actions = lxml.tag, arguments = "string" }
-implement { name = "xmltext", actions = lxml.text, arguments = { "string", "string" } }
-implement { name = "xmltobuffer", actions = lxml.tobuffer, arguments = { "string", "string", "string" } }
+implement { name = "xmltext", actions = lxml.text, arguments = "2 strings" }
+implement { name = "xmltobuffer", actions = lxml.tobuffer, arguments = "3 strings" }
implement { name = "xmltobuffertextonly", actions = lxml.tobuffer, arguments = { "string", "string", "string", false } }
implement { name = "xmltobufferverbose", actions = lxml.tobuffer, arguments = { "string", "string", "string", true, true } }
-implement { name = "xmltofile", actions = lxml.tofile, arguments = { "string", "string", "string" } }
+implement { name = "xmltofile", actions = lxml.tofile, arguments = "3 strings" }
implement { name = "xmltoparameters", actions = lxml.toparameters, arguments = "string" }
implement { name = "xmlverbatim", actions = lxml.verbatim, arguments = "string" }
@@ -132,15 +132,15 @@ implement { name = "xmlprependsetup", actions = lxml.installsetup, arg
implement { name = "xmlappendsetup", actions = lxml.installsetup, arguments = { 2, "string", "string" } } -- 2:*
implement { name = "xmlbeforesetup", actions = lxml.installsetup, arguments = { 3, "string", "string", "string" } } -- 2:*
implement { name = "xmlaftersetup", actions = lxml.installsetup, arguments = { 4, "string", "string", "string" } } -- 2:*
-implement { name = "xmlremovesetup", actions = lxml.removesetup, arguments = { "string", "string" } } -- 1:*
-implement { name = "xmlflushsetups", actions = lxml.flushsetups, arguments = { "string", "string", "string" } } -- 2:*
+implement { name = "xmlremovesetup", actions = lxml.removesetup, arguments = "2 strings" } -- 1:*
+implement { name = "xmlflushsetups", actions = lxml.flushsetups, arguments = "3 strings" } -- 2:*
implement { name = "xmlresetsetups", actions = lxml.resetsetups, arguments = "string" }
-implement { name = "xmlgetindex", actions = lxml.getindex, arguments = { "string", "string" } }
-implement { name = "xmlwithindex", actions = lxml.withindex, arguments = { "string", "string", "string" } }
+implement { name = "xmlgetindex", actions = lxml.getindex, arguments = "2 strings" }
+implement { name = "xmlwithindex", actions = lxml.withindex, arguments = "3 strings" }
-implement { name = "xmlsetentity", actions = xml.registerentity, arguments = { "string", "string" } }
-implement { name = "xmltexentity", actions = lxml.registerentity, arguments = { "string", "string" } }
+implement { name = "xmlsetentity", actions = xml.registerentity, arguments = "2 strings" }
+implement { name = "xmltexentity", actions = lxml.registerentity, arguments = "2 strings" }
implement { name = "xmlsetcommandtotext", actions = lxml.setcommandtotext, arguments = "string" }
implement { name = "xmlsetcommandtonone", actions = lxml.setcommandtonone, arguments = "string" }
diff --git a/tex/context/base/mkiv/lxml-ini.mkiv b/tex/context/base/mkiv/lxml-ini.mkiv
index 6f64e545b..7c97ffb2c 100644
--- a/tex/context/base/mkiv/lxml-ini.mkiv
+++ b/tex/context/base/mkiv/lxml-ini.mkiv
@@ -187,6 +187,10 @@
\let\xmldoifnottext \clf_xmldoifnottext
\let\xmldoifelsetext \clf_xmldoifelsetext
+\let\xmldoifatt \clf_xmldoifatt
+\let\xmldoifnotatt \clf_xmldoifnotatt
+\let\xmldoifelseatt \clf_xmldoifelseatt
+
\let\xmldoifempty \clf_xmldoifempty
\let\xmldoifnotempty \clf_xmldoifnotempty
\let\xmldoifelseempty \clf_xmldoifelseempty
diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua
index f1abab9e7..b8280ba9c 100644
--- a/tex/context/base/mkiv/lxml-tex.lua
+++ b/tex/context/base/mkiv/lxml-tex.lua
@@ -64,10 +64,11 @@ local xmlrename = xml.rename
local variables = interfaces and interfaces.variables or { }
-local settings_to_hash = utilities.parsers.settings_to_hash
-local settings_to_set = utilities.parsers.settings_to_set
-local options_to_hash = utilities.parsers.options_to_hash
-local options_to_array = utilities.parsers.options_to_array
+local parsers = utilities.parsers
+local settings_to_hash = parsers.settings_to_hash
+local settings_to_set = parsers.settings_to_set
+local options_to_hash = parsers.options_to_hash
+local options_to_array = parsers.options_to_array
local insertbeforevalue = utilities.tables.insertbeforevalue
local insertaftervalue = utilities.tables.insertaftervalue
@@ -468,7 +469,7 @@ lxml.addindex = addindex
implement {
name = "xmladdindex",
- arguments = { "string" },
+ arguments = "string",
actions = addindex,
}
@@ -820,7 +821,7 @@ local k_parser = class * spaces * key * spaces * rest --value
implement {
name = "xmlinstalldirective",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(name,csname)
if csname then
local keyvalueparser = k_parser / context[csname]
@@ -1989,6 +1990,37 @@ do
contextsprint(notcatcodes,att)
end
+ local ctx_doif = commands.doif
+ local ctx_doifnot = commands.doifnot
+ local ctx_doifelse = commands.doifelse
+
+ implement {
+ name = "xmldoifatt",
+ arguments = "3 strings",
+ actions = function(id,l,v)
+ local e = getid(id)
+ ctx_doif(e and e.at[k] == v or false)
+ end
+ }
+
+ implement {
+ name = "xmldoifnotatt",
+ arguments = "3 strings",
+ actions = function(id,l,v)
+ local e = getid(id)
+ ctx_doifnot(e and e.at[k] == v or false)
+ end
+ }
+
+ implement {
+ name = "xmldoifelseatt",
+ arguments = "3 strings",
+ actions = function(id,l,v)
+ local e = getid(id)
+ ctx_doifelse(e and e.at[k] == v or false)
+ end
+ }
+
end
do
diff --git a/tex/context/base/mkiv/lxml-xml.lua b/tex/context/base/mkiv/lxml-xml.lua
index d1520800f..47a6e8c85 100644
--- a/tex/context/base/mkiv/lxml-xml.lua
+++ b/tex/context/base/mkiv/lxml-xml.lua
@@ -19,6 +19,10 @@ local xmlserialize = xml.serialize
local xmlcollected = xml.collected
local xmlnewhandlers = xml.newhandlers
+local reparsedentity = xml.reparsedentitylpeg -- \Ux{...}
+local unescapedentity = xml.unescapedentitylpeg
+local parsedentity = reparsedentity
+
local function first(collected) -- wrong ?
return collected and collected[1]
end
@@ -355,6 +359,25 @@ function xml.text(id,pattern) -- brrr either content or element (when cdata)
end
end
+function xml.pure(id,pattern)
+ if pattern then
+ local collected = xmlfilter(id,pattern)
+ if collected and #collected > 0 then
+ parsedentity = unescapedentity
+ local s = collected and #collected > 0 and xmltotext(collected[1]) or ""
+ parsedentity = reparsedentity
+ return s
+ else
+ return ""
+ end
+ else
+ parsedentity = unescapedentity
+ local s = xmltotext(id) or ""
+ parsedentity = reparsedentity
+ return s
+ end
+end
+
xml.content = text
--
diff --git a/tex/context/base/mkiv/math-map.lua b/tex/context/base/mkiv/math-map.lua
index 47e5cda0b..2233722a0 100644
--- a/tex/context/base/mkiv/math-map.lua
+++ b/tex/context/base/mkiv/math-map.lua
@@ -651,7 +651,7 @@ end
implement {
name = "setmathattribute",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(alphabet,style)
local data = alphabets[alphabet] or regular
data = data[style] or data.tf
diff --git a/tex/context/base/mkiv/math-noa.lua b/tex/context/base/mkiv/math-noa.lua
index 4c1997a64..529837cfa 100644
--- a/tex/context/base/mkiv/math-noa.lua
+++ b/tex/context/base/mkiv/math-noa.lua
@@ -100,6 +100,7 @@ local setchar = nuts.setchar
local setfam = nuts.setfam
local setsubtype = nuts.setsubtype
local setattr = nuts.setattr
+local setattrlist = nuts.setattrlist
local getfield = nuts.getfield
local getnext = nuts.getnext
@@ -809,6 +810,8 @@ do
setfield(d,"small_fam",fam)
flush_node(sym)
end
+ setattrlist(d,char)
+ setattrlist(f,char)
setsubtype(f,what)
setfield(f,"delim",d)
setfield(f,"class",-1) -- tex itself does this, so not fenceclasses[what]
diff --git a/tex/context/base/mkiv/meta-grd.mkiv b/tex/context/base/mkiv/meta-grd.mkiv
index 8b1a934d6..15a4471e7 100644
--- a/tex/context/base/mkiv/meta-grd.mkiv
+++ b/tex/context/base/mkiv/meta-grd.mkiv
@@ -13,6 +13,8 @@
\writestatus{loading}{MetaPost Graphics / Grids}
+\unprotect
+
%D This used to be a \TEX\ method, and a rather old one too. We keep it around but
%D in a more modern way.
%D
@@ -31,85 +33,177 @@
%D {An example of a grid.}
%D {\getbuffer}
-\startuseMPgraphic{grid}{nx,ny,dx,dy,factor,scale,xstep,ystep,xoffset,yoffset,align}
+% \startuseMPgraphic{grid}{nx,ny,dx,dy,factor,scale,xstep,ystep,xoffset,yoffset,align,s:textcolor,s:rulecolor,rulethickness}
+% begingroup ;
+% save dx, dy, wd, ht, ox, oy, ax, ay ;
+%
+% (dx,dy) = (\MPvar{dx},\MPvar{dy})*\MPvar{factor}*\MPvar{scale} ;
+% (wd,ht) = (\MPvar{nx}*dx,\MPvar{ny}*dy) ;
+% (ox,oy) = (\MPvar{xoffset},\MPvar{yoffset}) ;
+% (ax,ay) = if \MPvar{align} = 1 : (dx,dy)/2 else : origin fi ;
+%
+% draw image (
+% for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
+% for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
+% )
+% withpen pencircle scaled \MPvar{rulethickness}
+% withcolor "\MPvar{rulecolor}" ;
+% draw image (
+% if \MPvar{xstep} > 0 :
+% for i=1 step \MPvar{xstep} until \MPvar{nx} :
+% draw thetextext.bot(decimal i,(i*dx-ax,-ox));
+% endfor ;
+% fi ;
+% if \MPvar{ystep} > 0 :
+% for i=1 step \MPvar{ystep} until \MPvar{ny} :
+% draw thetextext.lft(decimal i,(-oy,i*dy-ay)) ;
+% endfor ;
+% fi ;
+% )
+% withcolor "\MPvar{color}" ;
+% endgroup ;
+% \stopuseMPgraphic
+%
+% less tokens (not used often):
+%
+% \startuseMPgraphic{grid}{\c!nx,\c!ny,\c!dx,\c!dy,\c!factor,\c!scale,\c!xstep,\c!ystep,\c!xoffset,\c!yoffset,\c!align,s:\c!textcolor,s:\c!rulecolor,\c!rulethickness}
+% begingroup ;
+% save dx, dy, wd, ht, ox, oy, ax, ay ;
+%
+% (dx,dy) = (\MPvar\c!dx,\MPvar\c!dy)*\MPvar\c!factor*\MPvar\c!scale ;
+% (wd,ht) = (\MPvar\c!nx*dx,\MPvar\c!ny*dy) ;
+% (ox,oy) = (\MPvar\c!xoffset,\MPvar\c!yoffset) ;
+% (ax,ay) = if \MPvar\c!align = 1 : (\c!dx,\c!dy)/2 else : origin fi ;
+%
+% draw image (
+% for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
+% for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
+% )
+% withpen pencircle scaled \MPvar\c!rulethickness\space
+% withcolor "\MPvar\c!rulecolor" ;
+% draw image (
+% if \MPvar\c!xstep > 0 :
+% for i=1 step \MPvar\c!xstep until \MPvar\c!nx :
+% draw thetextext.bot(decimal i,(i*dx-ax,-ox));
+% endfor ;
+% fi ;
+% if \MPvar\c!ystep > 0 :
+% for i=1 step \MPvar\c!ystep until \MPvar\c!ny :
+% draw thetextext.lft(decimal i,(-oy,i*dy-ay)) ;
+% endfor ;
+% fi ;
+% )
+% withcolor "\MPvar\c!color" ;
+% endgroup ;
+% \stopuseMPgraphic
+%
+% \def\typo_grid_base[#1]%
+% {\dontleavehmode
+% \hbox\bgroup
+% \getdummyparameters
+% [\c!nx=10,\c!ny=10,\c!dx=.5,\c!dy=.5,\c!xstep=0,\c!ystep=0,%
+% \c!unit=\s!cm,\c!scale=1,\c!factor=1,%
+% \c!offset=.25ex,%
+% \c!xoffset=\directdummyparameter\c!offset,%
+% \c!yoffset=\directdummyparameter\c!offset,%
+% \c!align=,%
+% \c!color=\currentcolorname,%
+% \c!rulecolor=\currentcolorname,%
+% \c!rulethickness=\linewidth,%
+% #1]%
+% \usedummystyleandcolor\c!style\c!color
+% \edef\p_align{\directdummyparameter\c!align}%
+% \edef\p_unit {\directdummyparameter\c!unit}%
+% \useMPgraphic
+% {grid}%
+% {nx=\directdummyparameter\c!nx,%
+% ny=\directdummyparameter\c!ny,%
+% dx=\directdummyparameter\c!dx\p_unit,%
+% dy=\directdummyparameter\c!dy\p_unit,%
+% factor=\directdummyparameter\c!factor,%
+% scale=\directdummyparameter\c!scale,%
+% xstep=\directdummyparameter\c!xstep,%
+% ystep=\directdummyparameter\c!ystep,%
+% xoffset=\directdummyparameter\c!xoffset,%
+% yoffset=\directdummyparameter\c!yoffset,%
+% color=\directdummyparameter\c!color,%
+% rulecolor=\directdummyparameter\c!rulecolor,%
+% rulethickness=\directdummyparameter\c!rulethickness,%
+% align=\ifx\p_align\v!middle\!!plusone\else\!!zerocount\fi}%
+% \egroup}
+%
+% even less tokens wasted (no need to clog the core with hardly
+% used code):
+
+\startuseMPgraphic{meta:grd:basegrid}
begingroup ;
- save nx, ny, dx, dy, wd, ht, xstep, ystep, xoffset, yoffset, align, xalign, yalign ;
+ save sc, dx, dy, wd, ht, ox, oy, ax, ay ;
- numeric nx ; nx := \MPvar{nx} ;
- numeric ny ; ny := \MPvar{ny} ;
- numeric dx ; dx := \MPvar{factor} * \MPvar{scale} * \MPvar{dx} ;
- numeric dy ; dy := \MPvar{factor} * \MPvar{scale} * \MPvar{dy} ;
- numeric wd ; wd := nx * dx ;
- numeric ht ; ht := ny * dy ;
- numeric xstep ; xstep := \MPvar{xstep} ;
- numeric ystep ; ystep := \MPvar{ystep} ;
- numeric xoffset ; xoffset := \MPvar{xoffset} ;
- numeric yoffset ; yoffset := \MPvar{yoffset} ;
- numeric align ; align := \MPvar{align} ;
- numeric xalign ; xalign := 0 ;
- numeric yalign ; yalign := 0 ;
+ sc = \directdummyparameter\c!factor*\directdummyparameter\c!scale ;
+ dx = \MPdpar\directdummyparameter\c!dx*sc ;
+ dy = \MPdpar\directdummyparameter\c!dy*sc ;
+ wd = \directdummyparameter\c!nx*dx ;
+ ht = \directdummyparameter\c!ny*dy ;
+ ox = \MPdpar\directdummyparameter\c!xoffset\relax ;
+ oy = \MPdpar\directdummyparameter\c!yoffset\relax ;
- if align = 1 :
- xalign := dx/2 ;
- yalign := dy/2 ;
+ if "\directdummyparameter\c!align" = "\v!middle" :
+ ax = \MPdpar\directdummyparameter\c!dx/2
+ ay = \MPdpar\directdummyparameter\c!dy/2
+ else :
+ ax = 0 ;
+ ay = 0 ;
fi ;
- for i=0 step dx until wd :
- draw (i,0) -- (i,ht) ;
- endfor ;
- for i=0 step dy until ht :
- draw (0,i) -- (wd,i) ;
- endfor ;
+ draw image (
+ for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
+ for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
+ )
+ withpen pencircle scaled \MPdpar\directdummyparameter\c!rulethickness\space
+ withcolor "\directdummyparameter\c!rulecolor" ;
- if xstep > 0 :
- for i=1 step xstep until nx :
- draw thetextext.bot(decimal i,(i*dx-xalign,-xoffset)) ;
- endfor ;
- fi ;
- if ystep > 0 :
- for i=1 step ystep until ny :
- draw thetextext.lft(decimal i,(-yoffset,i*dy-yalign)) ;
- endfor ;
- fi ;
+ draw image (
+ if \directdummyparameter\c!xstep > 0 :
+ for i=1 step \directdummyparameter\c!xstep until \directdummyparameter\c!nx :
+ draw thetextext.bot(decimal i,(i*dx-ax,oy));
+ endfor ;
+ fi ;
+ if \directdummyparameter\c!ystep > 0 :
+ for i=1 step \directdummyparameter\c!ystep until \directdummyparameter\c!ny :
+ draw thetextext.lft(decimal i,(ox,i*dy-ay)) ;
+ endfor ;
+ fi ;
+ )
+ withcolor "\directdummyparameter\c!color" ;
endgroup ;
\stopuseMPgraphic
-\unprotect
-
-\unexpanded\def\basegrid
- {\dosingleempty\typo_grid_base}
-
\def\typo_grid_base[#1]%
- {\hbox\bgroup
+ {\dontleavehmode
+ \hbox\bgroup
\getdummyparameters
- [\c!nx=10,\c!ny=10,\c!dx=.5,\c!dy=.5,\c!xstep=0,\c!ystep=0,%
+ [\c!nx=10,\c!ny=10,%
+ \c!dx=.5,\c!dy=.5,%
+ \c!xstep=0,\c!ystep=0,%
\c!unit=\s!cm,\c!scale=1,\c!factor=1,%
- \c!offset=.25ex,\c!xoffset=\directdummyparameter\c!offset,\c!yoffset=\directdummyparameter\c!offset,%
- \c!align=,
+ \c!offset=.25\exheight,%
+ \c!xoffset=\directdummyparameter\c!offset,%
+ \c!yoffset=\directdummyparameter\c!offset,%
+ \c!align=,%
+ \c!color=\currentcolorname,%
+ \c!rulecolor=\currentcolorname,%
+ \c!rulethickness=\linewidth,%
#1]%
\usedummystyleandcolor\c!style\c!color
- \edef\p_align{\directdummyparameter\c!align}%
- \ifx\p_align\v!middle
- \let\p_align\!!plusone
- \else
- \let\p_align\!!zerocount
- \fi
- \useMPgraphic
- {grid}%
- {nx=\directdummyparameter\c!nx,%
- ny=\directdummyparameter\c!ny,%
- dx=\directdummyparameter\c!dx\directdummyparameter\c!unit,%
- dy=\directdummyparameter\c!dy\directdummyparameter\c!unit,%
- factor=\directdummyparameter\c!factor,%
- scale=\directdummyparameter\c!scale,%
- xstep=\directdummyparameter\c!xstep,%
- ystep=\directdummyparameter\c!ystep,%
- xoffset=\directdummyparameter\c!xoffset,%
- yoffset=\directdummyparameter\c!yoffset,%
- align=\p_align}%
- \egroup}
+ \setexpandeddummyparameter\c!dx{\directdummyparameter\c!dx\directdummyparameter\c!unit}%
+ \setexpandeddummyparameter\c!dy{\directdummyparameter\c!dy\directdummyparameter\c!unit}%
+ \useMPgraphic{meta:grd:basegrid}%
+ \egroup}
+
+\unexpanded\def\basegrid
+ {\dosingleempty\typo_grid_base}
\let\grid\basegrid
diff --git a/tex/context/base/mkiv/meta-imp-mat.mkiv b/tex/context/base/mkiv/meta-imp-mat.mkiv
index 11a9ded34..19a5ba385 100644
--- a/tex/context/base/mkiv/meta-imp-mat.mkiv
+++ b/tex/context/base/mkiv/meta-imp-mat.mkiv
@@ -11,78 +11,74 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This is just an example library not meant for production.
-
% A few accents:
-
+%
% / for cambria
\startMPextensions
- vardef math_stacker_overbracket_shape =
+ vardef math_stacker_bracket_shape(expr delta, rotate) =
image (
draw
(0,OverlayOffset) --
- (0,OverlayHeight-OverlayOffset) --
- (OverlayWidth,OverlayHeight-OverlayOffset) --
+ (0,delta-OverlayOffset) --
+ (OverlayWidth,delta-OverlayOffset) --
(OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underbracket_shape =
- math_stacker_overbracket_shape rotated 180
- enddef ;
- vardef math_stacker_overparent_shape =
+ vardef math_stacker_parent_shape(expr delta, rotate) =
image (
draw
(0,OverlayOffset) ...
- (OverlayWidth/2,OverlayHeight-OverlayOffset) ...
+ (OverlayWidth/2,delta-OverlayOffset) ...
(OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underparent_shape =
- math_stacker_overparent_shape rotated 180
- enddef ;
- vardef math_stacker_overbrace_shape =
+ vardef math_stacker_brace_shape(expr delta, rotate) =
image (
draw
(0,OverlayOffset) ...
- (OverlayWidth/4-OverlayOffset,OverlayHeight-OverlayOffset) ...
- (OverlayWidth/2-OverlayOffset,OverlayHeight-OverlayOffset) ...
- (OverlayWidth/2,OverlayHeight) &
- (OverlayWidth/2,OverlayHeight) ...
- (OverlayWidth/2+OverlayOffset,OverlayHeight-OverlayOffset) ...
- (3OverlayWidth/4+OverlayOffset,OverlayHeight-OverlayOffset) ...
+ (OverlayWidth/4-OverlayOffset,delta-OverlayOffset) ...
+ (OverlayWidth/2-OverlayOffset,delta-OverlayOffset) ...
+ (OverlayWidth/2,delta) &
+ (OverlayWidth/2,delta) ...
+ (OverlayWidth/2+OverlayOffset,delta-OverlayOffset) ...
+ (3OverlayWidth/4+OverlayOffset,delta-OverlayOffset) ...
(OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underbrace_shape =
- math_stacker_overbrace_shape rotated 180
- enddef ;
- vardef math_stacker_overbar_shape =
+ vardef math_stacker_bar_shape(expr rotate) =
image (
draw
(0,OverlayOffset) -- (OverlayWidth,OverlayOffset)
withcolor
OverlayLineColor ;
setbounds currentpicture to boundingbox currentpicture bottomenlarged OverlayOffset ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_underbar_shape =
- math_stacker_overbar_shape rotated 180
- enddef ;
-
% arrows
-
- vardef math_stacker_arrow_shape(expr axis, ex, em) =
+ vardef math_stacker_arrow_shape(expr axis, ex, em, rotate) =
image (
interim ahlength := ex/2;
drawarrow
@@ -90,9 +86,12 @@
withcolor
OverlayLineColor ;
setbounds currentpicture to unitsquare xysized(OverlayWidth,ex) ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_leftrightarrow_shape(expr axis, ex, em) =
+ vardef math_stacker_leftrightarrow_shape(expr axis, ex, em, rotate) =
image (
interim ahlength := ex/2;
drawdblarrow
@@ -100,9 +99,12 @@
withcolor
OverlayLineColor ;
setbounds currentpicture to unitsquare xysized(OverlayWidth,ex) ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_rightoverleftarrow_shape(expr axis, ex, em) =
+ vardef math_stacker_rightoverleftarrow_shape(expr axis, ex, em, rotate) =
image (
interim ahlength := ex/2;
drawdoublearrows
@@ -110,14 +112,11 @@
withcolor
OverlayLineColor ;
setbounds currentpicture to unitsquare xysized(OverlayWidth,ex) ;
+ if rotate :
+ currentpicture := currentpicture rotated 180 ;
+ fi ;
)
enddef ;
- vardef math_stacker_leftarrow_shape(expr axis, ex, em) =
- math_stacker_arrow_shape(axis,ex,em)
- enddef ;
- vardef math_stacker_rightarrow_shape(expr axis, ex, em) =
- math_stacker_arrow_shape(axis,ex,em) rotated 180
- enddef ;
% main handler
@@ -131,55 +130,55 @@
\stopMPextensions
\startuniqueMPgraphic{math:stacker:\number"FE3B4}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overbracket_shape) ;
+ math_stacker_draw_accent(math_stacker_bracket_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3B5}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underbracket_shape) ;
+ math_stacker_draw_accent(math_stacker_bracket_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DC}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overparent_shape) ;
+ math_stacker_draw_accent(math_stacker_parent_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DD}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underparent_shape) ;
+ math_stacker_draw_accent(math_stacker_parent_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DE}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overbrace_shape) ;
+ math_stacker_draw_accent(math_stacker_brace_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE3DF}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underbrace_shape) ;
+ math_stacker_draw_accent(math_stacker_brace_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE33E}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_overbar_shape) ;
+ math_stacker_draw_accent(math_stacker_bar_shape(false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"FE33F}{axis,ex,em}
- math_stacker_draw_accent(math_stacker_underbar_shape) ;
+ math_stacker_draw_accent(math_stacker_bar_shape(true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"2190}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_leftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_arrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"2192}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_rightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_arrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},true)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"2194}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"27F7}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_leftrightarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
\startuniqueMPgraphic{math:stacker:\number"21C4}{axis,ex,em}
- math_stacker_draw_arrow(math_stacker_rightoverleftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em})) ;
+ math_stacker_draw_arrow(math_stacker_rightoverleftarrow_shape(\MPvar{axis},\MPvar{ex},\MPvar{em},false)) ;
\stopuniqueMPgraphic
%D Radicals:
@@ -202,9 +201,46 @@
withcolor OverlayLineColor ;
\stopuniqueMPgraphic
-% \setupmathstackers
-% [vfenced]
-% [color=darkred,
-% alternative=mp]
-
-\endinput
+\continueifinputfile{meta-imp-mat.mkiv}
+
+\setupmathstackers [both] [color=darkred,alternative=mp]
+\setupmathstackers [top] [color=darkred,alternative=mp]
+\setupmathstackers [bottom] [color=darkred,alternative=mp]
+
+\startTEXpage[offset=10pt]
+
+$
+ \overbracket {a+b+c+d} \quad
+ \underbracket {a+b+c+d} \quad
+ \doublebracket {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overparent {a+b+c+d} \quad
+ \underparent {a+b+c+d} \quad
+ \doubleparent {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overbrace {a+b+c+d} \quad
+ \underbrace {a+b+c+d} \quad
+ \doublebrace {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overbar {a+b+c+d} \quad
+ \underbar {a+b+c+d} \quad
+ \doublebar {a+b+c+d}
+$
+\blank[2*big]
+$
+ \overleftarrow {a+b+c+d} \quad
+ \overrightarrow {a+b+c+d}
+$
+\blank[2*big]
+$
+ \underleftarrow {a+b+c+d} \quad
+ \underrightarrow {a+b+c+d}
+$
+
+\stopTEXpage
diff --git a/tex/context/base/mkiv/meta-ini.mkiv b/tex/context/base/mkiv/meta-ini.mkiv
index 5fc89e2f6..61e3523e6 100644
--- a/tex/context/base/mkiv/meta-ini.mkiv
+++ b/tex/context/base/mkiv/meta-ini.mkiv
@@ -1481,6 +1481,12 @@
\fi
\to \everysetupMPgraphics
+%D Some more helpers (see \type {meta-grd.mkiv} for an example of usage):
+
+\def\MPdpar#1#2{\the\dimexpr#1#2\relax\empty}
+\def\MPnpar#1#2{\the\numexpr#1#2\relax\empty}
+\def\MPspar#1#2{"#1#2"}
+
%D Done.
\protect \endinput
diff --git a/tex/context/base/mkiv/meta-tex.lua b/tex/context/base/mkiv/meta-tex.lua
index d66eab069..fdf118424 100644
--- a/tex/context/base/mkiv/meta-tex.lua
+++ b/tex/context/base/mkiv/meta-tex.lua
@@ -117,13 +117,13 @@ do
implement {
name = "metapostformatted",
actions = metapost.svformat,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "metapostgraphformat",
actions = metapost.nvformat,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
if LUAVERSION < 5.2 then
diff --git a/tex/context/base/mkiv/mlib-ctx.lua b/tex/context/base/mkiv/mlib-ctx.lua
index 0ff28c1c4..c568b92a3 100644
--- a/tex/context/base/mkiv/mlib-ctx.lua
+++ b/tex/context/base/mkiv/mlib-ctx.lua
@@ -87,7 +87,7 @@ end
implement {
name = "setmpextensions",
actions = metapost.setextensions,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -172,7 +172,7 @@ implement {
implement {
name = "mprunset",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(name,connector)
local value = metapost.variables[name]
if value ~= nil then
diff --git a/tex/context/base/mkiv/mlib-lua.lua b/tex/context/base/mkiv/mlib-lua.lua
index 5e6be614b..19e731b85 100644
--- a/tex/context/base/mkiv/mlib-lua.lua
+++ b/tex/context/base/mkiv/mlib-lua.lua
@@ -696,7 +696,7 @@ do
interfaces.implement {
name = "getMPstored",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(name,key)
context(stores[name][key])
end
diff --git a/tex/context/base/mkiv/mult-aux.lua b/tex/context/base/mkiv/mult-aux.lua
index bcd5ae5be..96cc056ac 100644
--- a/tex/context/base/mkiv/mult-aux.lua
+++ b/tex/context/base/mkiv/mult-aux.lua
@@ -159,7 +159,7 @@ end
interfaces.implement {
name = "definenamespace",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = namespaces.define
}
diff --git a/tex/context/base/mkiv/mult-aux.mkiv b/tex/context/base/mkiv/mult-aux.mkiv
index 96609c4f0..a1aecc354 100644
--- a/tex/context/base/mkiv/mult-aux.mkiv
+++ b/tex/context/base/mkiv/mult-aux.mkiv
@@ -802,10 +802,11 @@
\letvalue\??dummy\empty
- \def\dummyparameter #1{\begincsname\??dummy#1\endcsname}
- \def\directdummyparameter#1{\begincsname\??dummy#1\endcsname}
-\unexpanded\def\setdummyparameter #1{\expandafter\def\csname\??dummy#1\endcsname}
-\unexpanded\def\letdummyparameter #1{\expandafter\let\csname\??dummy#1\endcsname}
+ \def\dummyparameter #1{\begincsname\??dummy#1\endcsname}
+ \def\directdummyparameter #1{\begincsname\??dummy#1\endcsname}
+\unexpanded\def\setdummyparameter #1{\expandafter\def\csname\??dummy#1\endcsname}
+\unexpanded\def\setexpandeddummyparameter#1{\expandafter\edef\csname\??dummy#1\endcsname}
+\unexpanded\def\letdummyparameter #1{\expandafter\let\csname\??dummy#1\endcsname}
% \unexpanded\def\getdummyparameters
% {\mult_interfaces_get_parameters\??dummy}
diff --git a/tex/context/base/mkiv/mult-chk.lua b/tex/context/base/mkiv/mult-chk.lua
index 44a9f739f..712d91f81 100644
--- a/tex/context/base/mkiv/mult-chk.lua
+++ b/tex/context/base/mkiv/mult-chk.lua
@@ -52,13 +52,13 @@ end
implement {
name = "setvalidinterfacekeys",
actions = interfaces.setvalidkeys,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
implement {
name = "addvalidinterfacekeys",
actions = interfaces.addvalidkeys,
- arguments = { "string", "string" }
+ arguments = "2 strings"
}
-- weird code, looks incomplete ... probably an experiment
@@ -89,5 +89,5 @@ end
implement {
name = "getcheckedinterfaceparameters",
actions = interfaces.getcheckedparameters,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings"
}
diff --git a/tex/context/base/mkiv/mult-ini.lua b/tex/context/base/mkiv/mult-ini.lua
index b899d25f2..3f320bf7f 100644
--- a/tex/context/base/mkiv/mult-ini.lua
+++ b/tex/context/base/mkiv/mult-ini.lua
@@ -346,7 +346,7 @@ end
interfaces.implement {
name = "setuserinterface",
actions = interfaces.setuserinterface,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
interfaces.cachedsetups = interfaces.cachedsetups or { }
@@ -387,30 +387,30 @@ function interfaces.message(str)
end
implement { name = "registernamespace", actions = interfaces.registernamespace, arguments = { "integer", "string" } }
-implement { name = "setinterfaceconstant", actions = interfaces.setconstant, arguments = { "string", "string" } }
-implement { name = "setinterfacevariable", actions = interfaces.setvariable, arguments = { "string", "string" } }
-implement { name = "setinterfaceelement", actions = interfaces.setelement, arguments = { "string", "string" } }
-implement { name = "setinterfacemessage", actions = interfaces.setmessage, arguments = { "string", "string", "string" } }
-implement { name = "setinterfacemessages", actions = interfaces.setmessages, arguments = { "string", "string" } }
-implement { name = "showmessage", actions = interfaces.showmessage, arguments = { "string", "string", "string" } }
+implement { name = "setinterfaceconstant", actions = interfaces.setconstant, arguments = "2 strings" }
+implement { name = "setinterfacevariable", actions = interfaces.setvariable, arguments = "2 strings" }
+implement { name = "setinterfaceelement", actions = interfaces.setelement, arguments = "2 strings" }
+implement { name = "setinterfacemessage", actions = interfaces.setmessage, arguments = "3 strings" }
+implement { name = "setinterfacemessages", actions = interfaces.setmessages, arguments = "2 strings" }
+implement { name = "showmessage", actions = interfaces.showmessage, arguments = "3 strings" }
implement {
name = "doifelsemessage",
actions = { interfaces.doifelsemessage, commands.doifelse },
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "getmessage",
actions = { interfaces.getmessage, context },
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
}
implement {
name = "writestatus",
overload = true,
actions = interfaces.writestatus,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index 84b4189dc..0acba3b87 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -294,7 +294,7 @@ return {
--
"getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters",
--
- "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter",
+ "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter",
"usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter",
--
"processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist",
@@ -402,7 +402,12 @@ return {
"obeylualines", "obeyluatokens",
"startluacode", "stopluacode", "startlua", "stoplua",
"startctxfunction","stopctxfunction","ctxfunction",
- "startctxfunctiondefinition","stopctxfunctiondefinition", "installctxfunction",
+ "startctxfunctiondefinition","stopctxfunctiondefinition",
+ "installctxfunction", "installctxfunctioncall",
+ "installprotectedctxfunction", "installprotectedctxfunctioncall",
+ "installctxscanner", "installctxscannercall",
+ "resetctxscanner",
+ "installprotectedctxscanner", "installprotectedctxscannercall",
"cldprocessfile", "cldloadfile", "cldcontext", "cldcommand",
--
"carryoverpar",
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 601a615a0..1cd5f5810 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -282,6 +282,7 @@ return {
"lpcode",
"luaescapestring",
"luafunction",
+ "luafunctioncall",
"luatexbanner",
"luatexrevision",
"luatexversion",
diff --git a/tex/context/base/mkiv/pack-obj.lua b/tex/context/base/mkiv/pack-obj.lua
index f68c1ba0c..3f2b2edfe 100644
--- a/tex/context/base/mkiv/pack-obj.lua
+++ b/tex/context/base/mkiv/pack-obj.lua
@@ -96,13 +96,13 @@ jobobjects.page = getobjectpage
-- implement {
-- name = "objectnumber",
-- actions = { getobjectnumber, context },
--- arguments = { "string", "string" },
+-- arguments = "2 strings",
-- }
--
-- implement {
-- name = "objectpage",
-- actions = { getobjectpage, context },
--- arguments = { "string", "string" },
+-- arguments = "2 strings",
-- }
--
-- implement {
@@ -212,13 +212,13 @@ implement {
implement {
name = "restoreobject",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = objects.restore,
}
implement {
name = "doifelseobject",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(ns,id)
ctx_doifelse(data[ns][id])
-- ctx_doifelse(objects.reference(ns,id))
@@ -227,7 +227,7 @@ implement {
implement {
name = "doifelseobjectreference",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(ns,id)
-- ctx_doifelse(data[ns][id])
ctx_doifelse(objects.reference(ns,id))
@@ -252,7 +252,7 @@ implement {
implement {
name = "getobjectdimensions",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(ns,id)
local object = data[ns][id]
local w, h, d, o = 0, 0, 0, 0
diff --git a/tex/context/base/mkiv/page-cst.lua b/tex/context/base/mkiv/page-cst.lua
index 8b8214ab3..155d6e8b0 100644
--- a/tex/context/base/mkiv/page-cst.lua
+++ b/tex/context/base/mkiv/page-cst.lua
@@ -1271,13 +1271,13 @@ interfaces.implement {
interfaces.implement {
name = "preparecolumnsetflush",
actions = columnsets.prepareflush,
- arguments = { "string" },
+ arguments = "string",
}
interfaces.implement {
name = "finishcolumnsetflush",
actions = columnsets.finishflush,
- arguments = { "string" },
+ arguments = "string",
}
interfaces.implement {
@@ -1289,13 +1289,13 @@ interfaces.implement {
interfaces.implement {
name = "setvsizecolumnset",
actions = columnsets.setvsize,
- arguments = { "string" },
+ arguments = "string",
}
interfaces.implement {
name = "sethsizecolumnset",
actions = columnsets.sethsize,
- arguments = { "string" },
+ arguments = "string",
}
interfaces.implement {
@@ -1423,7 +1423,7 @@ interfaces.implement {
interfaces.implement {
name = "columnsetgoto",
actions = columnsets["goto"],
- arguments = { "string" , "string" },
+ arguments = "2 strings",
}
interfaces.implement {
diff --git a/tex/context/base/mkiv/page-ini.lua b/tex/context/base/mkiv/page-ini.lua
index 6325e1d39..5b73c9729 100644
--- a/tex/context/base/mkiv/page-ini.lua
+++ b/tex/context/base/mkiv/page-ini.lua
@@ -164,7 +164,7 @@ end)
interfaces.implement {
name = "markpage",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = pages.mark
}
diff --git a/tex/context/base/mkiv/page-inj.mkvi b/tex/context/base/mkiv/page-inj.mkvi
index e03569f23..cabd07bac 100644
--- a/tex/context/base/mkiv/page-inj.mkvi
+++ b/tex/context/base/mkiv/page-inj.mkvi
@@ -32,6 +32,11 @@
\let\page_boxes_flush_before\clf_flushpageinjectionsbefore
\let\page_boxes_flush_after \clf_flushpageinjectionsafter
+\def\page_injections_flush_indeed
+ {\scrn_canvas_synchronize_set{\pageinjectionparameter\c!width}{\pageinjectionparameter\c!height}%
+ \invokepagehandler\v!normal{\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ \scrn_canvas_synchronize_reset}
+
\def\page_injections_flush_saved#name#parameters%
{\begingroup
\edef\currentpageinjection{#name}%
@@ -39,7 +44,7 @@
\edef\currentpageinjectionalternative {\pageinjectionparameter \c!alternative }%
\edef\p_page_injectionalternative_rederingsetup{\pageinjectionalternativeparameter\c!renderingsetup}%
\page_injections_nextpage
- \invokepagehandler\v!normal{\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ \page_injections_flush_indeed
\endgroup}
\unexpanded\def\pageinjection
@@ -104,12 +109,23 @@
\page_injections_place
\endgroup}
+% \def\page_injections_place
+% {\edef\currentpageinjectionalternative {\pageinjectionparameter \c!alternative }%
+% \edef\p_page_injectionalternative_rederingsetup{\pageinjectionalternativeparameter\c!renderingsetup}%
+% \page_injections_nextpage
+% \ifx\currentpageinjectionalternative\v!none \else % increment counter but don’t generate output
+% \invokepagehandler\v!normal{\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+% \fi}
+
\def\page_injections_place
{\edef\currentpageinjectionalternative {\pageinjectionparameter \c!alternative }%
\edef\p_page_injectionalternative_rederingsetup{\pageinjectionalternativeparameter\c!renderingsetup}%
\page_injections_nextpage
\ifx\currentpageinjectionalternative\v!none \else % increment counter but don’t generate output
- \invokepagehandler\v!normal{\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ \forgetparindent
+ \dontcomplain
+ \setconstant\shipoutfinalizemethod\zerocount
+ \page_injections_flush_indeed
\fi}
\def\page_injections_nextpage
diff --git a/tex/context/base/mkiv/page-ins.lua b/tex/context/base/mkiv/page-ins.lua
index 4791bc69b..0323952d0 100644
--- a/tex/context/base/mkiv/page-ins.lua
+++ b/tex/context/base/mkiv/page-ins.lua
@@ -102,7 +102,7 @@ implement {
implement {
name = "setinsertionlocation",
actions = inserts.setlocation,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/page-sid.mkiv b/tex/context/base/mkiv/page-sid.mkiv
index 5742ce8c4..a0fb63ca2 100644
--- a/tex/context/base/mkiv/page-sid.mkiv
+++ b/tex/context/base/mkiv/page-sid.mkiv
@@ -737,8 +737,9 @@
\def\page_sides_wrapup
{% we need to do this aftergroup
- \ignoreparskip \aftergroup\ignoreparskip
- \ignorespaces \aftergroup\ignorespaces
+ \aftergroup\par
+ \aftergroup\ignoreparskip
+ \aftergroup\ignorespaces
}
\def\page_sides_check_floats_indeed
diff --git a/tex/context/base/mkiv/phys-dim.lua b/tex/context/base/mkiv/phys-dim.lua
index 71c9b0bd4..363b4a79c 100644
--- a/tex/context/base/mkiv/phys-dim.lua
+++ b/tex/context/base/mkiv/phys-dim.lua
@@ -966,4 +966,4 @@ implement { name = "digits_normal", actions = makedigits, arguments = "string
implement { name = "digits_reverse", actions = makedigits, arguments = { "string", true } }
implement { name = "unit_normal", actions = makeunit, arguments = "string"}
implement { name = "unit_reverse", actions = makeunit, arguments = { "string", true } }
-implement { name = "registerunit", actions = registerunit, arguments = { "string", "string" } }
+implement { name = "registerunit", actions = registerunit, arguments = "2 strings" }
diff --git a/tex/context/base/mkiv/publ-aut.lua b/tex/context/base/mkiv/publ-aut.lua
index 91d38a8d9..be0c771a3 100644
--- a/tex/context/base/mkiv/publ-aut.lua
+++ b/tex/context/base/mkiv/publ-aut.lua
@@ -975,7 +975,7 @@ publications.sortmethods.authoryear = {
implement {
name = "btxremapauthor",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(k,v)
local a = { splitauthor(k,true) }
local s1 = sequentialhash(a)
diff --git a/tex/context/base/mkiv/publ-ini.lua b/tex/context/base/mkiv/publ-ini.lua
index 038a15d5a..8497b190f 100644
--- a/tex/context/base/mkiv/publ-ini.lua
+++ b/tex/context/base/mkiv/publ-ini.lua
@@ -648,7 +648,7 @@ local findallused do
implement {
name = "btxdoifelsematches",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = function(dataset,tag,expression)
local find = publications.finder(dataset,expression)
local okay = false
@@ -1009,30 +1009,28 @@ function publications.lastofrange(dataset,tag,name)
end
end
-local three_strings = { "string", "string", "string" }
-
implement {
name = "btxsingularorplural",
actions = { publications.singularorplural, ctx_doifelse },
- arguments = three_strings
+ arguments = "3 strings"
}
implement {
name = "btxoneorrange",
actions = { publications.oneorrange, function(b) if b == nil then ctx_gobbletwoarguments() else ctx_doifelse(b) end end },
- arguments = three_strings
+ arguments = "3 strings"
}
implement {
name = "btxfirstofrange",
actions = { publications.firstofrange, context },
- arguments = three_strings
+ arguments = "3 strings"
}
implement {
name = "btxlastofrange",
actions = { publications.lastofrange, context },
- arguments = three_strings
+ arguments = "3 strings"
}
-- basic loading
@@ -1237,13 +1235,13 @@ end
implement {
name = "btxaddentry",
+ arguments = "3 strings",
actions = function(name,settings,content)
local dataset = datasets[name]
if dataset then
publications.addtexentry(dataset,settings,content)
end
end,
- arguments = { "string", "string", "string" }
}
function publications.checkeddataset(name,default)
@@ -1260,12 +1258,13 @@ end
implement {
name = "btxsetdataset",
+ arguments = "2 strings",
actions = { publications.checkeddataset, context },
- arguments = { "string", "string"}
}
implement {
name = "btxsetentry",
+ arguments = "2 strings",
actions = function(name,tag)
local dataset = rawget(datasets,name)
if dataset then
@@ -1278,7 +1277,6 @@ implement {
report("unknown dataset %a",name)
end
end,
- arguments = { "string", "string" },
}
-- rendering of fields
@@ -1558,19 +1556,19 @@ do
publications.okay = okay
- implement { name = "btxfield", actions = btxfield, arguments = { "string", "string", "string" } }
- implement { name = "btxdetail", actions = btxdetail, arguments = { "string", "string", "string" } }
- implement { name = "btxflush", actions = btxflush, arguments = { "string", "string", "string" } }
- implement { name = "btxdirect", actions = btxdirect, arguments = { "string", "string", "string" } }
+ implement { name = "btxfield", actions = btxfield, arguments = "3 strings" }
+ implement { name = "btxdetail", actions = btxdetail, arguments = "3 strings" }
+ implement { name = "btxflush", actions = btxflush, arguments = "3 strings" }
+ implement { name = "btxdirect", actions = btxdirect, arguments = "3 strings" }
implement { name = "btxfieldname", actions = { get, context }, arguments = { "string", "string", "string", false, false } }
implement { name = "btxfieldtype", actions = { get, context }, arguments = { "string", "string", "string", true, false } }
implement { name = "btxfoundname", actions = { get, context }, arguments = { "string", "string", "string", false, true } }
implement { name = "btxfoundtype", actions = { get, context }, arguments = { "string", "string", "string", true, true } }
- implement { name = "btxdoifelse", actions = { okay, ctx_doifelse }, arguments = { "string", "string", "string" } }
- implement { name = "btxdoif", actions = { okay, ctx_doif }, arguments = { "string", "string", "string" } }
- implement { name = "btxdoifnot", actions = { okay, ctx_doifnot }, arguments = { "string", "string", "string" } }
+ implement { name = "btxdoifelse", actions = { okay, ctx_doifelse }, arguments = "3 strings" }
+ implement { name = "btxdoif", actions = { okay, ctx_doif }, arguments = "3 strings" }
+ implement { name = "btxdoifnot", actions = { okay, ctx_doifnot }, arguments = "3 strings" }
end
@@ -2041,8 +2039,8 @@ do
implement {
name = "btxflushpages",
+ arguments = "2 strings",
actions = btxflushpages,
- arguments = { "string", "string" }
}
local function identical(a,b)
@@ -2277,20 +2275,20 @@ do
implement {
name = "btxuservariable",
+ arguments = "2 strings",
actions = { getuserdata, context },
- arguments = { "string", "string" }
}
implement {
name = "btxdoifelseuservariable",
+ arguments = "2 strings",
actions = { getuserdata, ctx_doifelse },
- arguments = { "string", "string" }
}
-- implement {
-- name = "btxresolvelistreference",
+ -- arguments = "2 strings",
-- actions = lists.resolve,
- -- arguments = { "string", "string" }
-- }
implement {
@@ -2315,32 +2313,32 @@ do
implement {
name = "btxpreparelistentries",
+ arguments = "string",
actions = lists.prepareentries,
- arguments = { "string" },
}
implement {
name = "btxfetchlistentries",
+ arguments = "string",
actions = lists.fetchentries,
- arguments = { "string" },
}
implement {
name = "btxflushlistentry",
+ arguments = "2 strings",
actions = lists.flushentry,
- arguments = { "string", "integer" }
}
implement {
name = "btxflushlisttag",
+ arguments = "2 strings",
actions = lists.flushtag,
- arguments = { "string", "integer" }
}
implement {
name = "btxflushlistcombi",
+ arguments = "2 strings",
actions = lists.flushcombi,
- arguments = { "string", "string" }
}
implement {
@@ -2351,8 +2349,8 @@ do
implement {
name = "btxdoifelsecombiinlist",
+ arguments = "2 strings",
actions = { lists.combiinlist, ctx_doifelse },
- arguments = { "string", "string" }
}
end
@@ -3374,8 +3372,8 @@ do
implement {
name = "btxlistvariant",
+ arguments = "5 strings",
actions = btxlistvariant,
- arguments = { "string", "string", "string", "string", "string" } -- not integer here
}
function listvariants.default(dataset,block,tag,variant)
@@ -3440,7 +3438,7 @@ do
implement {
name = "checkinterfacechain",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(str,command)
local chain = lpegmatch(splitter,str)
if #chain > 0 then
diff --git a/tex/context/base/mkiv/publ-jrn.lua b/tex/context/base/mkiv/publ-jrn.lua
index 0cc41862f..fba994466 100644
--- a/tex/context/base/mkiv/publ-jrn.lua
+++ b/tex/context/base/mkiv/publ-jrn.lua
@@ -156,7 +156,7 @@ if implement then
implement {
name = "btxaddjournal",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = { journals.add, context }
}
diff --git a/tex/context/base/mkiv/publ-reg.lua b/tex/context/base/mkiv/publ-reg.lua
index b40fbc80a..9ee574929 100644
--- a/tex/context/base/mkiv/publ-reg.lua
+++ b/tex/context/base/mkiv/publ-reg.lua
@@ -121,7 +121,7 @@ implement {
implement {
name = "btxtoregister",
actions = btxtoregister,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
-- context.setregisterentry (
@@ -221,5 +221,5 @@ publications.authortoregister = authortoregister
implement {
name = "btxauthortoregister",
actions = authortoregister,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/scrn-but.lua b/tex/context/base/mkiv/scrn-but.lua
index c791f9718..da0d5e9f4 100644
--- a/tex/context/base/mkiv/scrn-but.lua
+++ b/tex/context/base/mkiv/scrn-but.lua
@@ -22,5 +22,5 @@ end
interfaces.implement {
name = "registerbuttons",
actions = registerbuttons,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
diff --git a/tex/context/base/mkiv/scrn-fld.lua b/tex/context/base/mkiv/scrn-fld.lua
index f68cc039d..046b7864f 100644
--- a/tex/context/base/mkiv/scrn-fld.lua
+++ b/tex/context/base/mkiv/scrn-fld.lua
@@ -66,7 +66,7 @@ implement {
implement {
name = "definefieldset",
actions = defineset,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/scrn-fld.mkvi b/tex/context/base/mkiv/scrn-fld.mkvi
index 38c4e1461..dec334209 100644
--- a/tex/context/base/mkiv/scrn-fld.mkvi
+++ b/tex/context/base/mkiv/scrn-fld.mkvi
@@ -47,7 +47,7 @@
%D A definition can refer to this category:
%D
%D \starttyping
-%D \definefieldbody [email] [type=line,category=all-email,default=pragma@wxs.nl]
+%D \definefieldbody [email] [type=line,category=all-email,default=pragma@xs4all.nl]
%D \stoptyping
%D
%D A copy of a field is made as follows:
diff --git a/tex/context/base/mkiv/scrn-pag.mkvi b/tex/context/base/mkiv/scrn-pag.mkvi
index d96d8d3c1..7695443ad 100644
--- a/tex/context/base/mkiv/scrn-pag.mkvi
+++ b/tex/context/base/mkiv/scrn-pag.mkvi
@@ -203,11 +203,16 @@
paperheight \printpaperheight
\relax}
-\def\scrn_canvas_synchronize_simple_indeed
+\def\scrn_canvas_synchronize_set#1#2%
{\clf_setupcanvas
- paperwidth \printpaperwidth
- paperheight \printpaperheight
- \relax
+ paperwidth \dimexpr#1\relax
+ paperheight \dimexpr#2\relax
+ \relax}
+
+\let\scrn_canvas_synchronize_reset\scrn_canvas_synchronize_only
+
+\def\scrn_canvas_synchronize_simple_indeed
+ {\scrn_canvas_synchronize_only
%\global\let\scrn_canvas_synchronize_simple \relax
\global\let\scrn_canvas_synchronize_complex\relax}
diff --git a/tex/context/base/mkiv/scrn-wid.lua b/tex/context/base/mkiv/scrn-wid.lua
index 636d547da..5b70bec75 100644
--- a/tex/context/base/mkiv/scrn-wid.lua
+++ b/tex/context/base/mkiv/scrn-wid.lua
@@ -288,7 +288,7 @@ end
implement {
name = "renderingvar",
actions = { renderings.var, context },
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/scrp-ini.lua b/tex/context/base/mkiv/scrp-ini.lua
index d5cad643f..9bd70e30a 100644
--- a/tex/context/base/mkiv/scrp-ini.lua
+++ b/tex/context/base/mkiv/scrp-ini.lua
@@ -973,7 +973,7 @@ implement {
implement {
name = "setscript",
actions = scripts.set,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
implement {
diff --git a/tex/context/base/mkiv/sort-ini.lua b/tex/context/base/mkiv/sort-ini.lua
index 7cd28d08f..f90b70be5 100644
--- a/tex/context/base/mkiv/sort-ini.lua
+++ b/tex/context/base/mkiv/sort-ini.lua
@@ -53,14 +53,15 @@ have language etc properties that then can be used.</p>
local gsub, find, rep, sub, sort, concat, tohash, format = string.gsub, string.find, string.rep, string.sub, table.sort, table.concat, table.tohash, string.format
local utfbyte, utfchar, utfcharacters, utfvalues = utf.byte, utf.char, utf.characters, utf.values
local next, type, tonumber, rawget, rawset = next, type, tonumber, rawget, rawset
-local P, Cs, R, S, lpegmatch = lpeg.P, lpeg.Cs, lpeg.R, lpeg.S, lpeg.match
+local P, Cs, R, S, lpegmatch, lpegpatterns = lpeg.P, lpeg.Cs, lpeg.R, lpeg.S, lpeg.match, lpeg.patterns
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
-local trace_tests = false trackers.register("sorters.tests", function(v) trace_tests = v end)
-local trace_methods = false trackers.register("sorters.methods", function(v) trace_methods = v end)
-local trace_orders = false trackers.register("sorters.orders", function(v) trace_orders = v end)
+local trace_tests = false trackers.register("sorters.tests", function(v) trace_tests = v end)
+local trace_methods = false trackers.register("sorters.methods", function(v) trace_methods = v end)
+local trace_orders = false trackers.register("sorters.orders", function(v) trace_orders = v end)
+local trace_replacements= false trackers.register("sorters.replacements", function(v) trace_replacements = v end)
local report_sorters = logs.reporter("languages","sorters")
@@ -523,7 +524,7 @@ local function prepare() -- todo: test \Ux{hex}
return pattern
end
-function sorters.strip(str) -- todo: only letters and such
+local function strip(str) -- todo: only letters and such
if str and str ~= "" then
return lpegmatch(pattern or prepare(),str)
else
@@ -531,6 +532,8 @@ function sorters.strip(str) -- todo: only letters and such
end
end
+sorters.strip = strip
+
local function firstofsplit(entry)
-- numbers are left padded by spaces
local split = entry.split
@@ -553,15 +556,35 @@ sorters.firstofsplit = firstofsplit
-- we know what combinations make sense we can optimize this
function splitters.utf(str,checked) -- we could append m and u but this is cleaner, s is for tracing
- if #replacements > 0 then
+ local nofreplacements = #replacements
+ if nofreplacements > 0 then
-- todo make an lpeg for this
- for k=1,#replacements do
- local v = replacements[k]
- local s = v[1]
- if find(str,s) then
- str = gsub(str,s,v[2])
+ local replacer = replacements.replacer
+ if not replacer then
+ local rep = { }
+ for i=1,nofreplacements do
+ local r = replacements[i]
+ rep[strip(r[1])] = strip(r[2])
+ end
+ replacer = lpeg.utfchartabletopattern(rep)
+ replacer = Cs((replacer/rep + lpegpatterns.utf8character)^0)
+ replacements.replacer = replacer
+ end
+ local rep = lpegmatch(replacer,str)
+ if rep and rep ~= str then
+ if trace_replacements then
+ report_sorters("original : %s",str)
+ report_sorters("replacement: %s",rep)
end
+ str = rep
end
+ -- for k=1,#replacements do
+ -- local v = replacements[k]
+ -- local s = v[1]
+ -- if find(str,s) then
+ -- str = gsub(str,s,v[2])
+ -- end
+ -- end
end
local m_case, z_case, p_case, m_mapping, z_mapping, p_mapping, char, byte, n = { }, { }, { }, { }, { }, { }, { }, { }, 0
local nm, nz, np = 0, 0, 0
@@ -797,3 +820,16 @@ function sorters.sort(entries,cmp)
end)
end
end
+
+-- helper
+
+function sorters.replacementlist(list)
+ local replacements = { }
+ for i=1,#list do
+ replacements[i] = {
+ list[i],
+ utfchar(replacementoffset+i),
+ }
+ end
+ return replacements
+end
diff --git a/tex/context/base/mkiv/spac-ver.lua b/tex/context/base/mkiv/spac-ver.lua
index 288630a5d..969a195e1 100644
--- a/tex/context/base/mkiv/spac-ver.lua
+++ b/tex/context/base/mkiv/spac-ver.lua
@@ -2180,7 +2180,7 @@ do
name = "vspacingdefine",
actions = vspacing.setmap,
scope = "private",
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -2208,7 +2208,7 @@ do
name = "definesnapmethod",
actions = vspacing.definesnapmethod,
scope = "private",
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
-- local remove_node = nodes.remove
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 531068f8a..aa6ed92ea 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 22eee2a81..70204080a 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-bkm.lua b/tex/context/base/mkiv/strc-bkm.lua
index e30a91820..ee9233a9a 100644
--- a/tex/context/base/mkiv/strc-bkm.lua
+++ b/tex/context/base/mkiv/strc-bkm.lua
@@ -523,5 +523,5 @@ implement {
implement {
name = "overloadbookmark",
actions = bookmarks.overload,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
diff --git a/tex/context/base/mkiv/strc-blk.lua b/tex/context/base/mkiv/strc-blk.lua
index 492abc768..703d36379 100644
--- a/tex/context/base/mkiv/strc-blk.lua
+++ b/tex/context/base/mkiv/strc-blk.lua
@@ -157,6 +157,6 @@ end
-- interface
implement { name = "definestructureblock", actions = blocks.define, arguments = "string" }
-implement { name = "savestructureblock", actions = blocks.save, arguments = { "string", "string" ,"string" } }
-implement { name = "selectstructureblock", actions = blocks.select, arguments = { "string", "string" ,"string", "string" } }
-implement { name = "setstructureblockstate", actions = blocks.setstate, arguments = { "string", "string" ,"string" } }
+implement { name = "savestructureblock", actions = blocks.save, arguments = "3 strings" }
+implement { name = "selectstructureblock", actions = blocks.select, arguments = "4 strings" }
+implement { name = "setstructureblockstate", actions = blocks.setstate, arguments = "3 strings" }
diff --git a/tex/context/base/mkiv/strc-doc.lua b/tex/context/base/mkiv/strc-doc.lua
index 93d8db56b..2de26ac64 100644
--- a/tex/context/base/mkiv/strc-doc.lua
+++ b/tex/context/base/mkiv/strc-doc.lua
@@ -1029,11 +1029,11 @@ implement { name = "structurecatcodedget", actions = sections.structuredat
implement { name = "structuregivencatcodedget", actions = sections.structuredata, arguments = { false, "string", false, "integer" } }
implement { name = "structureautocatcodedget", actions = sections.structuredata, arguments = { false, "string", false, "string" } }
-implement { name = "namedstructurevariable", actions = sections.structuredata, arguments = { "string", "string" } }
-implement { name = "namedstructureuservariable", actions = sections.userdata, arguments = { "string", "string" } }
+implement { name = "namedstructurevariable", actions = sections.structuredata, arguments = "2 strings" }
+implement { name = "namedstructureuservariable", actions = sections.userdata, arguments = "2 strings" }
-implement { name = "setstructurelevel", actions = sections.setlevel, arguments = { "string", "string" } }
-implement { name = "getstructurelevel", actions = sections.getcurrentlevel, arguments = { "string" } }
+implement { name = "setstructurelevel", actions = sections.setlevel, arguments = "2 strings" }
+implement { name = "getstructurelevel", actions = sections.getcurrentlevel, arguments = "string" }
implement { name = "setstructurenumber", actions = sections.setnumber, arguments = { "integer", "string" } } -- string as we support +-
implement { name = "getstructurenumber", actions = sections.getnumber, arguments = { "integer" } }
implement { name = "getsomestructurenumber", actions = sections.getnumber, arguments = { "integer", "string" } }
diff --git a/tex/context/base/mkiv/strc-lev.lua b/tex/context/base/mkiv/strc-lev.lua
index c06e209f6..74b64a09c 100644
--- a/tex/context/base/mkiv/strc-lev.lua
+++ b/tex/context/base/mkiv/strc-lev.lua
@@ -83,7 +83,7 @@ end
implement {
name = "definesectionlevels",
actions = definesectionlevels,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/strc-lst.lua b/tex/context/base/mkiv/strc-lst.lua
index a235fac75..13bdf7786 100644
--- a/tex/context/base/mkiv/strc-lst.lua
+++ b/tex/context/base/mkiv/strc-lst.lua
@@ -1159,7 +1159,7 @@ implement { name = "listsize", actions = { lists.size, context } }
implement { name = "listlocation", actions = { lists.location, context }, arguments = "integer" }
implement { name = "listlabel", actions = { lists.label, context }, arguments = { "integer", "string" } }
implement { name = "listrealpage", actions = { lists.realpage, context }, arguments = { "string", "integer" } }
-implement { name = "listgroupindex", actions = { lists.groupindex, context }, arguments = { "string", "string" } }
+implement { name = "listgroupindex", actions = { lists.groupindex, context }, arguments = "2 strings", }
implement {
name = "currentsectiontolist",
diff --git a/tex/context/base/mkiv/strc-mar.lua b/tex/context/base/mkiv/strc-mar.lua
index 80fcf126a..24a7fd491 100644
--- a/tex/context/base/mkiv/strc-mar.lua
+++ b/tex/context/base/mkiv/strc-mar.lua
@@ -714,17 +714,17 @@ end
-- interface
-implement { name = "markingtitle", actions = marks.title, arguments = { "string", "string" } }
-implement { name = "markingnumber", actions = marks.number, arguments = { "string", "string" } }
+implement { name = "markingtitle", actions = marks.title, arguments = "2 strings" }
+implement { name = "markingnumber", actions = marks.number, arguments = "2 strings" }
-implement { name = "definemarking", actions = marks.define, arguments = { "string", "string" } }
-implement { name = "relatemarking", actions = marks.relate, arguments = { "string", "string" } }
-implement { name = "setmarking", actions = marks.set, arguments = { "string", "string" } }
-implement { name = "resetmarking", actions = marks.reset, arguments = { "string" } }
+implement { name = "definemarking", actions = marks.define, arguments = "2 strings" }
+implement { name = "relatemarking", actions = marks.relate, arguments = "2 strings" }
+implement { name = "setmarking", actions = marks.set, arguments = "2 strings" }
+implement { name = "resetmarking", actions = marks.reset, arguments = "string" }
implement { name = "synchronizemarking", actions = marks.synchronize, arguments = { "string", "integer", "string" } }
-implement { name = "getmarking", actions = marks.fetch, arguments = { "string", "string", "string" } }
-implement { name = "fetchonemark", actions = marks.fetchonemark, arguments = { "string", "string", "string" } }
-implement { name = "fetchtwomarks", actions = marks.fetchtwomarks, arguments = { "string", "string" } }
-implement { name = "fetchallmarks", actions = marks.fetchallmarks, arguments = { "string", "string" } }
+implement { name = "getmarking", actions = marks.fetch, arguments = "3 strings" }
+implement { name = "fetchonemark", actions = marks.fetchonemark, arguments = "3 strings" }
+implement { name = "fetchtwomarks", actions = marks.fetchtwomarks, arguments = "2 strings" }
+implement { name = "fetchallmarks", actions = marks.fetchallmarks, arguments = "2 strings" }
implement { name = "doifelsemarking", actions = { marks.exists, commands.doifelse }, arguments = "string" }
diff --git a/tex/context/base/mkiv/strc-not.lua b/tex/context/base/mkiv/strc-not.lua
index eff357eea..bb9d64beb 100644
--- a/tex/context/base/mkiv/strc-not.lua
+++ b/tex/context/base/mkiv/strc-not.lua
@@ -151,7 +151,7 @@ notes.getstate = getstate
implement {
name = "setnotestate",
actions = setstate,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -199,8 +199,8 @@ function notes.restore(tag,forcedstate)
end
end
-implement { name = "savenote", actions = notes.save, arguments = { "string", "string" } }
-implement { name = "restorenote", actions = notes.restore, arguments = { "string", "string" } }
+implement { name = "savenote", actions = notes.save, arguments = "2 strings" }
+implement { name = "restorenote", actions = notes.restore, arguments = "2 strings" }
local function hascontent(tag)
local ok = notestates[tag]
@@ -420,7 +420,7 @@ implement {
implement {
name = "flushnotes",
actions = flushnotes,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
function notes.resetpostponed()
diff --git a/tex/context/base/mkiv/strc-ref.lua b/tex/context/base/mkiv/strc-ref.lua
index 73f1ca886..f20d93161 100644
--- a/tex/context/base/mkiv/strc-ref.lua
+++ b/tex/context/base/mkiv/strc-ref.lua
@@ -355,19 +355,19 @@ references.setcomponent = setcomponent
implement {
name = "setnextreferenceorder",
actions = setnextorder,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "setnextinternalreference",
actions = setnextinternal,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "currentreferenceorder",
actions = { currentorder, context },
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
function references.set(data)
@@ -432,7 +432,7 @@ end
implement {
name = "enhancereference",
actions = references.enhance,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
-- -- -- related to strc-ini.lua -- -- --
@@ -633,7 +633,7 @@ implement {
implement {
name = "useurl",
actions = urls.define,
- arguments = { "string", "string", "string", "string" }
+ arguments = "4 strings",
}
implement {
@@ -684,7 +684,7 @@ implement {
implement {
name = "usefile",
actions = files.define,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings"
}
implement {
@@ -774,7 +774,7 @@ end
implement {
name = "defineprogram",
actions = programs.define,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
local function getprogram(name)
@@ -863,13 +863,13 @@ end
implement {
name = "definereference",
actions = references.define,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
implement {
name = "resetreference",
actions = references.reset,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
setmetatableindex(defined,"table")
diff --git a/tex/context/base/mkiv/strc-reg.lua b/tex/context/base/mkiv/strc-reg.lua
index 51771e3b8..2c667fba3 100644
--- a/tex/context/base/mkiv/strc-reg.lua
+++ b/tex/context/base/mkiv/strc-reg.lua
@@ -428,13 +428,13 @@ registers.setmethod = defineregister -- and we might have a difference so
implement {
name = "defineregister",
actions = defineregister,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "setregistermethod",
actions = defineregister, -- duplicate use
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
@@ -643,13 +643,13 @@ end
implement {
name = "enhanceregister",
actions = registers.enhance,
- arguments = { "string", "integer" }
+ arguments = { "string", "integer" },
}
implement {
name = "extendregister",
actions = registers.extend,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/strc-syn.lua b/tex/context/base/mkiv/strc-syn.lua
index ecc5e19ae..eec025593 100644
--- a/tex/context/base/mkiv/strc-syn.lua
+++ b/tex/context/base/mkiv/strc-syn.lua
@@ -259,23 +259,23 @@ end
-- todo: local higher up
-implement { name = "registerusedsynonym", actions = synonyms.registerused, arguments = { "string", "string" } }
-implement { name = "registershownsynonym", actions = synonyms.registershown, arguments = { "string", "string" } }
-implement { name = "synonymmeaning", actions = synonyms.meaning, arguments = { "string", "string" } }
-implement { name = "synonymname", actions = synonyms.synonym, arguments = { "string", "string" } }
+implement { name = "registerusedsynonym", actions = synonyms.registerused, arguments = "2 strings" }
+implement { name = "registershownsynonym", actions = synonyms.registershown, arguments = "2 strings" }
+implement { name = "synonymmeaning", actions = synonyms.meaning, arguments = "2 strings" }
+implement { name = "synonymname", actions = synonyms.synonym, arguments = "2 strings" }
implement { name = "resetusedsynonyms", actions = synonyms.resetused, arguments = "string" }
implement { name = "resetshownsynonyms", actions = synonyms.resetshown, arguments = "string" }
implement {
name = "doifelsesynonymused",
actions = { synonyms.isused, commands.doifelse },
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "doifelsesynonymshown",
actions = { synonyms.isshown, commands.doifelse },
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
diff --git a/tex/context/base/mkiv/strc-tag.lua b/tex/context/base/mkiv/strc-tag.lua
index 1be44821e..649465a6a 100644
--- a/tex/context/base/mkiv/strc-tag.lua
+++ b/tex/context/base/mkiv/strc-tag.lua
@@ -464,7 +464,7 @@ local starttag = tags.start
implement {
name = "starttag",
actions = starttag,
- arguments = { "string" }
+ arguments = "string",
}
implement {
@@ -476,26 +476,25 @@ implement {
name = "starttag_u",
scope = "private",
actions = function(tag,userdata) starttag(tag,{ userdata = userdata }) end,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "starttag_d",
scope = "private",
actions = function(tag,detail) starttag(tag,{ detail = detail }) end,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
name = "starttag_c",
scope = "private",
actions = function(tag,detail,parents) starttag(tag,{ detail = detail, parents = parents }) end,
- arguments = { "string", "string", "string" }
+ arguments = "3 strings",
}
-implement { name = "settagaspect", actions = tags.setaspect, arguments = { "string", "string" } }
-
-implement { name = "settagproperty", actions = tags.setproperty, arguments = { "string", "string", "string" } }
+implement { name = "settagaspect", actions = tags.setaspect, arguments = "2 strings" }
+implement { name = "settagproperty", actions = tags.setproperty, arguments = "3 strings" }
implement { name = "settagproperty_b", actions = tags.setproperty, arguments = { "string", "'backend'", "string" }, scope = "private" }
implement { name = "settagproperty_n", actions = tags.setproperty, arguments = { "string", "'nature'", "string" }, scope = "private" }
@@ -505,7 +504,7 @@ implement {
name = "setelementuserproperties",
scope = "private",
actions = tags.setuserproperties,
- arguments = { "string", "string" }
+ arguments = "2 strings",
}
implement {
@@ -517,5 +516,5 @@ implement {
implement {
name = "settaggedmetadata",
actions = tags.registermetadata,
- arguments = "string"
+ arguments = "string",
}
diff --git a/tex/context/base/mkiv/supp-box.lua b/tex/context/base/mkiv/supp-box.lua
index 664477cfc..40047167c 100644
--- a/tex/context/base/mkiv/supp-box.lua
+++ b/tex/context/base/mkiv/supp-box.lua
@@ -562,7 +562,7 @@ do
implement {
name = "directboxfromcache",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = { boxes.direct, context },
-- actions = function(category,name) local b = boxes.direct(category,name) if b then context(b) end end,
}
@@ -582,13 +582,13 @@ do
implement {
name = "doifelseboxincache",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = { boxes.found, doifelse },
}
implement {
name = "resetboxesincache",
- arguments = { "string" },
+ arguments = "string",
actions = boxes.reset,
}
diff --git a/tex/context/base/mkiv/syst-aux.lua b/tex/context/base/mkiv/syst-aux.lua
index 06f6176b1..f9d8505f1 100644
--- a/tex/context/base/mkiv/syst-aux.lua
+++ b/tex/context/base/mkiv/syst-aux.lua
@@ -61,7 +61,7 @@ local ctx_doifelse = commands.doifelse
implement {
name = "doifelsefirstchar",
- arguments = { "string", "string" },
+ arguments = "2 strings",
actions = function(str,chr)
ctx_doifelse(lpegmatch(pattern,str) == chr)
end
@@ -69,7 +69,7 @@ implement {
implement {
name = "getsubstring",
- arguments = { "string", "string", "string" },
+ arguments = "3 strings",
actions = function(str,first,last)
context(utfsub(str,tonumber(first),tonumber(last)))
end
@@ -581,42 +581,42 @@ end
implement {
name = "doifelsecommon",
actions = doifelsecommon,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "doifcommon",
actions = doifcommon,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "doifnotcommon",
actions = doifnotcommon,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "doifelseinset",
actions = doifelseinset,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "doifinset",
actions = doifinset,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
implement {
name = "doifnotinset",
actions = doifnotinset,
- arguments = { "string", "string" },
+ arguments = "2 strings",
}
-- implement {
-- name = "stringcompare",
--- arguments = { "string", "string" },
+-- arguments = "2 strings",
-- actions = function(a,b)
-- context((a == b and 0) or (a > b and 1) or -1)
-- end
@@ -624,7 +624,7 @@ implement {
--
-- implement {
-- name = "doifelsestringafter",
--- arguments = { "string", "string" },
+-- arguments = "2 strings",
-- actions = function(a,b)
-- ctx_doifelse((a == b and 0) or (a > b and 1) or -1)
-- end
@@ -632,7 +632,7 @@ implement {
--
-- implement {
-- name = "doifelsestringbefore",
--- arguments = { "string", "string" },
+-- arguments = "2 strings",
-- actions = function(a,b)
-- ctx_doifelse((a == b and 0) or (a < b and -1) or 1)
-- end
@@ -640,7 +640,7 @@ implement {
-- implement { -- not faster than addtocommalist
-- name = "additemtolist", -- unique
--- arguments = { "string", "string" },
+-- arguments = "2 strings",
-- actions = function(l,s)
-- if l == "" or s == l then
-- -- s = s
diff --git a/tex/context/base/mkiv/toks-ini.lua b/tex/context/base/mkiv/toks-ini.lua
index 8f95f6692..15e5df267 100644
--- a/tex/context/base/mkiv/toks-ini.lua
+++ b/tex/context/base/mkiv/toks-ini.lua
@@ -58,6 +58,7 @@ end
local scan_toks = token.scan_toks
local scan_string = token.scan_string
+local scan_argument = token.scan_argument
local scan_int = token.scan_int
local scan_code = token.scan_code
local scan_dimen = token.scan_dimen
@@ -241,6 +242,7 @@ tokens.scanners = { -- these expand
integer = scan_int,
count = scan_int,
string = scan_string,
+ argument = scan_argument,
code = scan_code,
word = scan_word,
number = scan_number,
diff --git a/tex/context/base/mkiv/toks-scn.lua b/tex/context/base/mkiv/toks-scn.lua
index f3781d022..fe32a1de4 100644
--- a/tex/context/base/mkiv/toks-scn.lua
+++ b/tex/context/base/mkiv/toks-scn.lua
@@ -21,6 +21,7 @@ local scanners = tokens.scanners
local tokenbits = tokens.bits
local scanstring = scanners.string
+local scanargument = scanners.argument
local scaninteger = scanners.integer
local scannumber = scanners.number
local scankeyword = scanners.keyword
@@ -240,6 +241,19 @@ local f_check = formatters[ [[
end
]] ]
+-- using these shortcuts saves temporary small tables (okay, it looks uglier)
+
+local presets = {
+ ["1 string" ] = { "string" },
+ ["2 strings"] = { "string", "string" },
+ ["3 strings"] = { "string", "string", "string" },
+ ["4 strings"] = { "string", "string", "string", "string" },
+ ["5 strings"] = { "string", "string", "string", "string", "string" },
+ ["6 strings"] = { "string", "string", "string", "string", "string", "string" },
+ ["7 strings"] = { "string", "string", "string", "string", "string", "string", "string" },
+ ["8 strings"] = { "string", "string", "string", "string", "string", "string", "string", "string" },
+}
+
function tokens.compile(specification)
local f = { }
local n = 0
@@ -305,6 +319,10 @@ function tokens.compile(specification)
return c
end
end
+ local p = t and presets[t]
+ if p then
+ t = p
+ end
local tt = type(t)
if tt == "string" then
if a then
diff --git a/tex/context/base/mkiv/trac-ctx.lua b/tex/context/base/mkiv/trac-ctx.lua
index 29159d130..33637fd66 100644
--- a/tex/context/base/mkiv/trac-ctx.lua
+++ b/tex/context/base/mkiv/trac-ctx.lua
@@ -57,16 +57,16 @@ implement {
implement {
name = "installtextracker",
+ arguments = "3 strings",
actions = function(tag,enable,disable)
install(textrackers,trackers.register,tag,enable,disable)
end,
- arguments = { "string", "string", "string" }
}
implement {
name = "installtexdirective",
+ arguments = "3 strings",
actions = function(tag,enable,disable)
install(texdirectives,directives.register,tag,enable,disable)
end,
- arguments = { "string", "string", "string" }
}
diff --git a/tex/context/base/mkiv/trac-inf.lua b/tex/context/base/mkiv/trac-inf.lua
index 5810e2059..439e8b2dc 100644
--- a/tex/context/base/mkiv/trac-inf.lua
+++ b/tex/context/base/mkiv/trac-inf.lua
@@ -177,10 +177,7 @@ function statistics.show()
register("control sequences", function()
return format("%s of %s + %s", status.cs_count, status.hash_size,status.hash_extra)
end)
- register("callbacks", function()
- local total, indirect = status.callbacks or 0, status.indirect_callbacks or 0
- return format("%s direct, %s indirect, %s total", total-indirect, indirect, total)
- end)
+ register("callbacks", statistics.callbacks)
if TEXENGINE == "luajittex" and JITSUPPORTED then
local jitstatus = jit.status
if jitstatus then
diff --git a/tex/context/base/mkiv/trac-log.lua b/tex/context/base/mkiv/trac-log.lua
index c7b6f6d2d..1471bd4c7 100644
--- a/tex/context/base/mkiv/trac-log.lua
+++ b/tex/context/base/mkiv/trac-log.lua
@@ -10,7 +10,6 @@ if not modules then modules = { } end modules ['trac-log'] = {
-- terminal handler in lua then. Ok, maybe it's slower then, so a no-go.
local next, type, select, print = next, type, select, print
-local write_nl, write = texio and texio.write_nl or print, texio and texio.write or io.write
local format, gmatch, find = string.format, string.gmatch, string.find
local concat, insert, remove = table.concat, table.insert, table.remove
local topattern = string.topattern
@@ -18,6 +17,13 @@ local utfchar = utf.char
local datetime = os.date
local openfile = io.open
+local runningtex = tex and (tex.jobname or tex.formatname)
+-- local write_nl = texio and texio.write_nl or print
+-- local write = texio and texio.write or io.write
+
+local write_nl = runningtex and texio and texio.write_nl or print
+local write = runningtex and texio and texio.write or io.write
+
local setmetatableindex = table.setmetatableindex
local formatters = string.formatters
local settings_to_hash = utilities.parsers.settings_to_hash
@@ -108,7 +114,7 @@ local direct, subdirect, writer, pushtarget, poptarget, setlogfile, settimedlog,
-- we don't want this overhead for single messages (not that there are that
-- many; we could have a special weak table)
-if tex and (tex.jobname or tex.formatname) then
+if runningtex then
if texio.setescape then
texio.setescape(0) -- or (false)
diff --git a/tex/context/base/mkiv/typo-inj.lua b/tex/context/base/mkiv/typo-inj.lua
index 786c3c287..44b6c0a14 100644
--- a/tex/context/base/mkiv/typo-inj.lua
+++ b/tex/context/base/mkiv/typo-inj.lua
@@ -91,8 +91,8 @@ end
implement { name = "resetinjector", actions = injectors.reset, arguments = "string" }
implement { name = "showinjector", actions = injectors.show, arguments = "string" }
-implement { name = "setinjector", actions = injectors.set, arguments = { "string", "string", "string" } }
+implement { name = "setinjector", actions = injectors.set, arguments = "3 strings" }
implement { name = "markinjector", actions = injectors.mark, arguments = "string" }
-implement { name = "checkinjector", actions = injectors.check, arguments = { "string", "string" } }
+implement { name = "checkinjector", actions = injectors.check, arguments = "2 strings" }
--------- { name = "checkpreviousinjector", actions = injectors.check, arguments = { "string", tokens.constant(v_previous) } }
--------- { name = "checknextinjector", actions = injectors.check, arguments = { "string", tokens.constant(v_next) } }
diff --git a/tex/context/base/mkiv/util-lua.lua b/tex/context/base/mkiv/util-lua.lua
index bd74d0843..b7de11936 100644
--- a/tex/context/base/mkiv/util-lua.lua
+++ b/tex/context/base/mkiv/util-lua.lua
@@ -42,7 +42,7 @@ luautilities.suffixes = {
-- environment.loadpreprocessedfile can be set to a preprocessor
-local function register(name)
+local function register(name) -- makes no sense runtime
if tracestripping then
report_lua("stripped bytecode from %a",name or "unknown")
end
@@ -75,18 +75,12 @@ end
function luautilities.loadedluacode(fullname,forcestrip,name,macros)
-- quite subtle ... doing this wrong incidentally can give more bytes
name = name or fullname
- local code, message
if macros then
macros = lua.macros
end
- if macros and macros.enabled then
- -- local c = io.loaddata(fullname) -- not yet available
- local f = io.open(fullname,"rb") local c = f:read("*a") f:close()
- local n = c and macros.resolvestring("--[["..fullname.."]] "..c)
- if n and #n ~= #c then
- report_lua("preprocessed file %a: %i => %i bytes",fullname,#c,#n)
- end
- code, message = load(n or c)
+ local code, message
+ if macros then
+ code, message = macros.loaded(fullname,true,false)
else
code, message = loadfile(fullname)
end
diff --git a/tex/context/base/mkiv/util-sql-imp-ffi.lua b/tex/context/base/mkiv/util-sql-imp-ffi.lua
index 07c4752cd..2a2bc6569 100644
--- a/tex/context/base/mkiv/util-sql-imp-ffi.lua
+++ b/tex/context/base/mkiv/util-sql-imp-ffi.lua
@@ -365,10 +365,10 @@ local function connect(session,specification)
end
local function error_in_connection(specification,action)
- report_state("error in connection: [%s] %s@%s to %s:%s",
+ report_state("error in connection: [%s] user %s into %s at %s:%s",
action or "unknown",
- specification.database or "no database",
specification.username or "no username",
+ specification.database or "no database",
specification.host or "no host",
specification.port or "no port"
)
diff --git a/tex/context/base/mkiv/util-str.lua b/tex/context/base/mkiv/util-str.lua
index 9da0c6a2f..f76895aaf 100644
--- a/tex/context/base/mkiv/util-str.lua
+++ b/tex/context/base/mkiv/util-str.lua
@@ -12,7 +12,8 @@ local strings = utilities.strings
local format, gsub, rep, sub, find = string.format, string.gsub, string.rep, string.sub, string.find
local load, dump = load, string.dump
-local tonumber, type, tostring, next = tonumber, type, tostring, next
+local tonumber, type, tostring, next, setmetatable = tonumber, type, tostring, next, setmetatable
+local unpack, concat = table.unpack, table.concat
local unpack, concat = table.unpack, table.concat
local P, V, C, S, R, Ct, Cs, Cp, Carg, Cc = lpeg.P, lpeg.V, lpeg.C, lpeg.S, lpeg.R, lpeg.Ct, lpeg.Cs, lpeg.Cp, lpeg.Carg, lpeg.Cc
local patterns, lpegmatch = lpeg.patterns, lpeg.match
@@ -22,8 +23,9 @@ local utfchar, utfbyte, utflen = utf.char, utf.byte, utf.len
----- setmetatableindex = table.setmetatableindex
local loadstripped = nil
+local oldfashioned = LUAVERSION < 5.2
-if LUAVERSION < 5.2 then
+if oldfashioned then
loadstripped = function(str,shortcuts)
return load(str)
@@ -296,7 +298,7 @@ end
--
-- integer %...i number
-- integer %...d number
--- unsigned %...u number -- no tused
+-- unsigned %...u number -- not used
-- character %...c number
-- hexadecimal %...x number
-- HEXADECIMAL %...X number
@@ -524,7 +526,7 @@ return function(%s) return %s end
local preamble, environment = "", { }
-if LUAVERSION < 5.2 then
+if oldfashioned then
preamble = [[
local lpeg=lpeg
@@ -574,7 +576,7 @@ else
sequenced = table.sequenced,
formattednumber = number.formatted,
sparseexponent = number.sparseexponent,
- formattedfloat = number.formattedfloat
+ formattedfloat = number.formattedfloat,
}
end
@@ -1044,42 +1046,31 @@ local builder = Cs { "start",
["!"] = Carg(2) * prefix_any * P("!") * C((1-P("!"))^1) * P("!") / format_extension,
}
--- we can be clever and only alias what is needed
-
--- local direct = Cs (
--- P("%")/""
--- * Cc([[local format = string.format return function(str) return format("%]])
--- * (S("+- .") + R("09"))^0
--- * S("sqidfgGeExXo")
--- * Cc([[",str) end]])
--- * P(-1)
--- )
-
-local direct = Cs (
- P("%")
- * (S("+- .") + R("09"))^0
- * S("sqidfgGeExXo")
- * P(-1) / [[local format = string.format return function(str) return format("%0",str) end]]
-)
+-- We can be clever and only alias what is needed:
+
+local xx = setmetatable({ }, { __index = function(t,k) local v = format("%02x",k) t[k] = v return v end })
+local XX = setmetatable({ }, { __index = function(t,k) local v = format("%02X",k) t[k] = v return v end })
--- local direct = Cs (
--- P("%")
--- * (S("+- .") + R("09"))^0
--- * S("sqidfgGeExXo")
--- * (1-P("%"))^0
--- * P(-1) / [[local format = string.format return function(str) return format([==[%0]==],str) end]]
--- )
+local preset = {
+ ["%02x"] = function(n) return xx[n] end,
+ ["%02X"] = function(n) return XX[n] end,
+}
+
+local direct =
+ P("%") * (S("+- .") + R("09"))^0 * S("sqidfgGeExXo") * P(-1)
+ / [[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
- local f
- local p
+ local f = preset[str]
+ if f then
+ return f
+ end
local p = lpegmatch(direct,str)
if p then
- -- f = loadstripped(p)()
-- print("builder 1 >",p)
f = loadstripped(p)()
else
- n = 0
+ n = 0 -- used in patterns
-- p = lpegmatch(builder,str,1,"..",t._extensions_) -- after this we know n
p = lpegmatch(builder,str,1,t._connector_,t._extensions_) -- after this we know n
if n > 0 then
@@ -1142,7 +1133,7 @@ strings.formatters = { }
-- _connector_ is an experiment
-if LUAVERSION < 5.2 then
+if oldfashioned then
function strings.formatters.new(noconcat)
local t = { _type_ = "formatter", _connector_ = noconcat and "," or "..", _extensions_ = { }, _preamble_ = preamble, _environment_ = { } }
@@ -1202,7 +1193,7 @@ patterns.luaquoted = Cs(Cc('"') * ((1-S('"\n'))^1 + P('"')/'\\"' + P('\n')/'\\n"
-- escaping by lpeg is faster for strings without quotes, slower on a string with quotes, but
-- faster again when other q-escapables are found (the ones we don't need to escape)
-if LUAVERSION < 5.2 then
+if oldfashioned then
add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
diff --git a/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv b/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
new file mode 100644
index 000000000..a3f4762f1
--- /dev/null
+++ b/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
@@ -0,0 +1,69 @@
+%D \module
+%D [ file=type-imp-modernlatin,
+%D version=2018.03.25,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Modern Latin Modern,
+%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.
+
+\starttypescriptcollection[modernlatin]
+
+ \definefontfeature[lm-rm-regular][effect={width=0.15,delta=1.00}]
+ \definefontfeature[lm-rm-bold] [effect={width=0.30,delta=1.00}]
+ \definefontfeature[lm-ss-regular][effect={width=0.10,delta=1.00}]
+ \definefontfeature[lm-ss-bold] [effect={width=0.20,delta=1.00}]
+ \definefontfeature[lm-tt-regular][effect={width=0.20,delta=1.00}]
+ \definefontfeature[lm-tt-bold] [effect={width=0.30,delta=1.00}]
+
+ \starttypescript [\s!serif] [modern-latin]
+ % \loadfontgoodies[lm]
+ \definefontsynonym [Serif] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-rm-regular}]
+ \definefontsynonym [SerifItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-rm-regular}]
+ \definefontsynonym [SerifSlanted] [\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-rm-regular}]
+ \definefontsynonym [SerifBold] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-rm-bold}]
+ \definefontsynonym [SerifBoldItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-rm-bold}]
+ \definefontsynonym [SerifBoldSlanted][\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-rm-bold}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [modern-latin]
+ % \loadfontgoodies[lm]
+ \definefontsynonym [Sans] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-ss-regular}]
+ \definefontsynonym [SansItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-regular}]
+ \definefontsynonym [SansSlanted] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-regular}]
+ \definefontsynonym [SansBold] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-ss-bold}]
+ \definefontsynonym [SansBoldItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-bold}]
+ \definefontsynonym [SansBoldSlanted][\s!file:lmsans10-oblique] [\s!features={\s!default,lm-ss-bold}]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [modern-latin]
+ % \loadfontgoodies[lm]
+ \definefontsynonym [Mono] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-tt-regular}]
+ \definefontsynonym [MonoItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-tt-regular}]
+ \definefontsynonym [MonoSlanted] [\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-tt-regular}]
+ \definefontsynonym [MonoBold] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-tt-bold}]
+ \definefontsynonym [MonoBoldItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-tt-bold}]
+ \definefontsynonym [MonoBoldSlanted][\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-tt-bold}]
+ \stoptypescript
+
+ \starttypescript [\s!math] [modern-latin]
+ \loadfontgoodies[lm]
+ \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
+ \stoptypescript
+
+ \starttypescript [modern-latin]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern-latin] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern-latin] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern-latin] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [modern-latin] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 7b808f8da..6ff801846 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index aad96f1a7..f86da332a 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/modules/common/s-faq-01.tex b/tex/context/modules/common/s-faq-01.tex
index f6ee3ce06..e031d79d5 100644
--- a/tex/context/modules/common/s-faq-01.tex
+++ b/tex/context/modules/common/s-faq-01.tex
@@ -8,8 +8,8 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\usemodule[faq-00]
@@ -25,7 +25,7 @@
width=fit,
footer=0pt,
bottomdistance=12pt,
- bottom=18pt]
+ bottom=18pt]
\setupinteractionscreen
[width=fit,
@@ -152,7 +152,7 @@
\blank[3*big]
\midaligned{\tta \ListOfFAQ}
\vfill
- \midaligned{\tta pragma@wxs.nl}
+ \midaligned{\tta pragma@xs4all.nl}
\blank[3*big]
\stopstandardmakeup}
@@ -187,7 +187,7 @@
\def\EndFAQ
{\stopframedtext
- \egroup
+ \egroup
\button
[color=,contrastcolor=,frame=overlay,offset=overlay]
{\copy0}
@@ -205,7 +205,7 @@
\startuniqueMPgraphic{Frame}
path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
- pickup pencircle scaled 2pt ;
+ pickup pencircle scaled 2pt ;
fill p withcolor \MPcolor{\overlaycolor} ;
draw p withcolor \MPcolor{\overlaylinecolor} ;
\stopuniqueMPgraphic
diff --git a/tex/context/modules/common/s-faq-02.tex b/tex/context/modules/common/s-faq-02.tex
index 92aa1eca2..c39ae1046 100644
--- a/tex/context/modules/common/s-faq-02.tex
+++ b/tex/context/modules/common/s-faq-02.tex
@@ -8,8 +8,8 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\usemodule[faq-00]
@@ -37,7 +37,7 @@
\blank[3*big]
\midaligned{\tta \ListOfFAQ}
\vfill
- \midaligned{\tta pragma@wxs.nl}
+ \midaligned{\tta pragma@xs4all.nl}
\blank[3*big]
\stopstandardmakeup}
diff --git a/tex/context/modules/mkiv/m-punk.mkiv b/tex/context/modules/mkiv/m-punk.mkiv
index b72abd64d..08a066359 100644
--- a/tex/context/modules/mkiv/m-punk.mkiv
+++ b/tex/context/modules/mkiv/m-punk.mkiv
@@ -11,6 +11,12 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D You can actually turn a punk font into music (wintergatan):
+%D
+%D \starttyping
+%D https://www.youtube.com/watch?v=g5c2Htj8Vtw
+%D \stoptyping
+
\startluacode
local concat = table.concat
local round = math.round
diff --git a/tex/context/modules/mkiv/s-fonts-basics.mkiv b/tex/context/modules/mkiv/s-fonts-basics.mkiv
new file mode 100644
index 000000000..e9d0a21a2
--- /dev/null
+++ b/tex/context/modules/mkiv/s-fonts-basics.mkiv
@@ -0,0 +1,175 @@
+%D \module
+%D [ file=s-fnt-01,
+%D version=2006.10.10, % guess
+%D title=\CONTEXT\ Style File,
+%D subtitle=Listing Glyphs in Large Fonts,
+%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 module is just a check for \type {luatex-basics-prepare}.
+
+\usemodule[article]
+
+\setupbodyfont[9pt]
+
+\starttext
+
+\definefontfeature
+ [boundingbox]
+ [boundingbox=yes]
+
+\definefont
+ [TestFont]
+ [file:arialuni.ttf*boundingbox]
+
+\startluacode
+
+local data = characters.data
+
+local indicscripts = table.sorted {
+ "devanagari",
+ "kannada",
+ "malayalam",
+ "tamil",
+ "bengali",
+ "gurmukhi",
+ "gujarati",
+ "oriya",
+ "telugu",
+}
+
+local arabicscripts = table.sorted {
+ "arabic",
+ "syriac",
+ "mandiac",
+ "nko",
+}
+
+local allindic = true
+local allarabic = true
+local dotted = utf.char(0x25CC)
+
+local left = table.setmetatableindex (
+ { r = dotted, b = dotted, t = dotted, s = dotted },
+ function(t,k) local v = "" if k then t[k] = v end return v end
+)
+
+local right = table.setmetatableindex (
+ { l = dotted },
+ function(t,k) local v = "" if k then t[k] = v end return v end
+)
+
+for i=1,#indicscripts do
+ local script = indicscripts[i]
+ local first, last = characters.blockrange(script)
+ context.starttitle { title = script }
+ context.starttabulate { "|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tp|" }
+ context.FL()
+ context.BC() context("unicode")
+ context.BC() context("glyph")
+ context.BC() context("category")
+ context.BC() context("indic")
+ context.BC() context("mark")
+ context.BC() context("class")
+ context.BC() context("order")
+ context.BC() context("description")
+ context.NC() context.NR()
+ context.ML()
+ for i=first,last do
+ local d = data[i]
+ if d and d.unicodeslot then
+ local indic = d.indic
+ local category = d.category or "?"
+ local description = d.description
+ if not indic then
+ context.NC() context("\\red %U",i)
+ context.NC() context("\\red\\showstruts\\strut\\TestFont %c",i)
+ context.NC() context("\\red %s",category)
+ context.NC()
+ context.NC()
+ context.NC()
+ context.NC()
+ context.NC() context(description)
+ context.NC() context.NR()
+ else
+ local indicclass = d.indicclass
+ local indicmark = d.indicmark
+ local indicorder = d.indicorder
+ if allindic or indic == "d" or indicmark or indicclass or indicorder then
+ local l = left [indicmark]
+ local r = right[indicmark]
+ context.NC() context("%U",i)
+ context.NC() context("\\showstruts\\strut\\TestFont %s%c%s",l,i,r)
+ context.NC() context(category)
+ context.NC() context(indic or "?")
+ context.NC() context(indicmark or "")
+ context.NC() context(indicclass or "")
+ context.NC() context(indicorder or "")
+ context.NC() context(description)
+ context.NC() context.NR()
+ end
+ end
+ end
+ end
+ context.LL()
+ context.stoptabulate()
+ context.stoptitle()
+end
+
+for i=1,#arabicscripts do
+ local script = arabicscripts[i]
+ local first, last = characters.blockrange(script)
+ context.starttitle { title = script }
+ context.starttabulate { "|Tc|Tc|Tc|Tc|Tp|" }
+ context.FL()
+ context.BC() context("unicode")
+ context.BC() context("glyph")
+ context.BC() context("category")
+ context.BC() context("arabic")
+ context.BC() context("description")
+ context.NC() context.NR()
+ context.ML()
+ for i=first,last do
+ local d = data[i]
+ if d and d.unicodeslot then
+ local arabic = d.arabic
+ local category = d.category or ""
+ local description = d.description or ""
+ if arabic then
+ context.NC() context("%U",i)
+ context.NC() context("\\showstruts\\strut\\TestFont %c",i)
+ context.NC() context(category)
+ context.NC() context(arabic)
+ context.NC() context(description)
+ context.NC() context.NR()
+ elseif allarabic then
+ context.NC() context("\\red %U",i)
+ context.NC() context("\\red\\showstruts\\strut\\TestFont %c",i)
+ context.NC() context("\\red %s",category)
+ context.NC()
+ context.NC() context("\\red %s",description)
+ context.NC() context.NR()
+ end
+ end
+ end
+ context.LL()
+ context.stoptabulate()
+ context.stoptitle()
+end
+
+-- local olddata = io.loaddata("char-def.lua")
+-- local preamble = string.gsub(olddata,"characters%.data%s*=%s*%{.*","")
+
+-- local newdata = table.serialize(data,"characters.data", { hexify = true, noquotes = true })
+-- local newdata = string.gsub(newdata,"%{%s+%[0xFE0E%]=\"text style\",%s+%[0xFE0F%]=\"emoji style\",%s+%}","variants_emoji")
+
+-- io.savedata("char-def-new.lua",newdata)
+
+\stopluacode
+
+\stoptext
diff --git a/tex/context/modules/mkiv/s-fonts-overlay.mkiv b/tex/context/modules/mkiv/s-fonts-overlay.mkiv
new file mode 100644
index 000000000..fccc977d4
--- /dev/null
+++ b/tex/context/modules/mkiv/s-fonts-overlay.mkiv
@@ -0,0 +1,107 @@
+%D \module
+%D [ file=s-fonts-overlay,
+%D version=2018.03.25,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Show Glyph Similarity,
+%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.
+
+% begin info
+%
+% title : overlay glyphs in fonts
+%
+% comment : show glyphs in two fonts
+% status : experimental, used for font feature development
+%
+% end info
+
+%D This module is for Luigi/Idris as part of the Husayni development where the
+%D gpos pair, single, mark and cursive features are just linear transformations.
+
+\startmodule[fonts-coverage]
+
+\unprotect
+
+\definecolor[ColorOne][r=1,t=.5,a=1]
+\definecolor[ColorTwo][b=1,t=.5,a=1]
+
+\startluacode
+ moduledata.fonts = moduledata.fonts or { }
+ moduledata.fonts.overlay = moduledata.fonts.overlay or { }
+
+ function moduledata.fonts.overlay(id)
+ for k, v in table.sortedhash(fonts.hashes.identifiers[id or true].characters) do
+ context.showoverlayedglyphs(k)
+ end
+ end
+\stopluacode
+
+\starttexdefinition unexpanded showoverlayedglyphs#1
+ \startTEXpage[offset=.25\scratchdimentwo,height=10\scratchdimentwo,width=4\scratchdimenone]
+ \ruledhbox to \hsize\bgroup
+ \hss
+ \FontOne\setstrut\strut\showglyphs
+ \startoverlay
+ {\ColorOne\ruledhbox{\FontOne\char#1}}
+ {\ColorTwo\ruledhbox{\FontTwo\char#1}}
+ \stopoverlay
+ \hss
+ \egroup
+ \vfill
+ \dontleavehmode
+ \hbox to \hsize\bgroup
+ \hss
+ \infofont0x\uchexnumbers{#1}
+ \hss
+ \egroup
+ \stopTEXpage
+\stoptexdefinition
+
+\starttexdefinition unexpanded showoverlayedfonts[#1]
+ \start
+ \getdummyparameters[\c!list=,#1]
+ \doifsomething {\dummyparameter\c!list} {
+ \page
+ \getfromcommacommand[\dummyparameter\c!list][1]\let\NameOne\commalistelement
+ \getfromcommacommand[\dummyparameter\c!list][2]\let\NameTwo\commalistelement
+ \definefont[FontOne][\NameOne]
+ \definefont[FontTwo][\NameTwo]
+ \FontOne\expandafter\edef\expandafter\OneID\expandafter{\number\fontid\font}%
+ \FontTwo\expandafter\edef\expandafter\TwoID\expandafter{\number\fontid\font}%
+ \scratchdimenone\emwidth
+ \scratchdimentwo\exheight
+ \ctxlua{moduledata.fonts.overlay(\OneID)}%
+ \page
+ % \startTEXpage[offset=.25\scratchdimentwo,height=10\scratchdimentwo,width=4\scratchdimenone]
+ % \vfill
+ % \hbox to \hsize{\ColorOne\infofont\hss\OneN\hss}
+ % \vfill
+ % \hbox to \hsize{\ColorTwo\infofont\hss\TwoN\hss}
+ % \vfill
+ % \stopTEXpage
+ % \page
+ }
+ \stop
+\stoptexdefinition
+
+\protect
+
+\stopmodule
+
+\continueifinputfile{s-fonts-overlay.mkiv}
+
+\starttext
+
+% \showoverlayedfonts
+% [list={file:husayni-script-regular.ttf @ 48.0pt,
+% file:husayni-note-bold.ttf @ 34.2pt}] % 34.18726pt
+
+ \showoverlayedfonts
+ [list={Serif,SerifBold}]
+
+\stoptext
diff --git a/tex/context/modules/mkiv/s-fonts-shapes.lua b/tex/context/modules/mkiv/s-fonts-shapes.lua
index ebdf04c22..748c5a92a 100644
--- a/tex/context/modules/mkiv/s-fonts-shapes.lua
+++ b/tex/context/modules/mkiv/s-fonts-shapes.lua
@@ -109,12 +109,9 @@ local characters = nil
local function showglyphshape(specification)
specification = interfaces.checkedspecification(specification)
- local id, cs = fonts.definers.internal(specification,"<module:fonts:shapes:font>")
+ local id, cs = fonts.definers.internal(specification,"<module:fonts:shapes:font>")
local tfmdata = fontdata[id]
- local charnum = tonumber(specification.character)
- if not charnum then
- charnum = fonts.helpers.nametoslot(specification.character)
- end
+ local charnum = tonumber(specification.character) or fonts.helpers.nametoslot(specification.character)
local characters = tfmdata.characters
local descriptions = tfmdata.descriptions
local parameters = tfmdata.parameters
@@ -133,64 +130,75 @@ local function showglyphshape(specification)
context.startMPcode()
context("numeric lw ; lw := .125bp ;")
context("pickup pencircle scaled lw ;")
- context('picture p ; p := image(draw textext.drt("\\getuvalue{%s}\\gray\\char%s");); draw p ;',cs,charnum)
+ if width < 0.01 then
+ -- catches zero width marks
+ context('picture p ; p := textext.drt("\\hskip5sp\\getuvalue{%s}\\gray\\char%s"); draw p ;',cs,charnum)
+ else
+ context('picture p ; p := textext.drt("\\getuvalue{%s}\\gray\\char%s"); draw p ;',cs,charnum)
+ end
context('draw (%s,%s)--(%s,%s)--(%s,%s)--(%s,%s)--cycle withcolor green ;',llx,lly,urx,lly,urx,ury,llx,ury)
context('draw (%s,%s)--(%s,%s) withcolor green ;',llx,0,urx,0)
context('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
context("defaultscale := 0.05 ; ")
-- inefficient but non critical
- local function slant_1(v,dx,dy,txt,xsign,ysign,loc,labloc)
- if #v > 0 then
- local l = { }
- for kk, vv in ipairs(v) do
- local h, k = vv.height or 0, vv.kern or 0
- if h and k then
- l[#l+1] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
+ local slant = {
+ function(v,dx,dy,txt,xsign,ysign,loc,labloc)
+ local n = #v
+ if n > 0 then
+ local l = { }
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or 0
+ local k = c.kern or 0
+ l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
end
- end
- context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[1].kern*factor,lly,dx,dy,l[1])
- context("draw laddered (%s) withcolor .5white ;",table.concat(l,".."))
- context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[#v].kern*factor,ury,dx,dy,l[#l])
- for k, v in ipairs(l) do
- context("draw %s withcolor blue withpen pencircle scaled 2lw ;",v)
- end
- end
- end
- local function slant_2(v,dx,dy,txt,xsign,ysign,loc,labloc)
- if #v > 0 then
- local l = { }
- for kk, vv in ipairs(v) do
- local h, k = vv.height or 0, vv.kern or 0
- if h and k then
- l[#l+1] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
+ context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[1].kern*factor,lly,dx,dy,l[1])
+-- context("draw laddered (%s) withcolor .5white ;",table.concat(l,".."))
+ context("draw laddered (%..t) withcolor .5white ;",l)
+ context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[#v].kern*factor,ury,dx,dy,l[#l])
+ for i=1,n do
+ context("draw %s withcolor blue withpen pencircle scaled 2lw ;",l[i])
end
end
- if loc == "top" then
- context('label.%s("\\type{%s}",%s shifted (0,-1bp)) ;',loc,txt,l[#l])
- else
- context('label.%s("\\type{%s}",%s shifted (0,2bp)) ;',loc,txt,l[1])
- end
- for kk, vv in ipairs(v) do
- local h, k = vv.height or 0, vv.kern or 0
- if h and k then
- context('label.top("(%s,%s)",%s shifted (0,-2bp));',k,h,l[kk])
+ end,
+ function(v,dx,dy,txt,xsign,ysign,loc,labloc)
+ local n = #v
+ if n > 0 then
+ local l = { }
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or 0
+ local k = c.kern or 0
+ l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
+ end
+ if loc == "top" then
+ context('label.%s("\\type{%s}",%s shifted (0,-1bp)) ;',loc,txt,l[n])
+ else
+ context('label.%s("\\type{%s}",%s shifted (0,2bp)) ;',loc,txt,l[1])
+ end
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or 0
+ local k = c.kern or 0
+ context('label.top("(%s,%s)",%s shifted (0,-2bp));',k,h,l[i])
end
end
- end
- end
+ end,
+ }
if math then
local kerns = math.kerns
if kerns then
- for _, slant in ipairs { slant_1, slant_2 } do
- for k,v in pairs(kerns) do
+ for i=1,#slant do
+ local s = slant[i]
+ for k, v in next, kerns do
if k == "topright" then
- slant(v,width+italic,0,k,1,1,"top","ulft")
+ s(v,width+italic,0,k,1,1,"top","ulft")
elseif k == "bottomright" then
- slant(v,width,0,k,1,1,"bot","lrt")
+ s(v,width,0,k,1,1,"bot","lrt")
elseif k == "topleft" then
- slant(v,0,0,k,-1,1,"top","ulft")
+ s(v,0,0,k,-1,1,"top","ulft")
elseif k == "bottomleft" then
- slant(v,0,0,k,-1,1,"bot","lrt")
+ s(v,0,0,k,-1,1,"bot","lrt")
end
end
end
@@ -205,33 +213,34 @@ local function showglyphshape(specification)
if anchors then
local a = anchors.baselig
if a then
- for k, v in pairs(a) do
- for kk, vv in ipairs(v) do
- show(vv[1],vv[2],k .. ":" .. kk)
+ for k, v in next, a do
+ for i=1,#v do
+ local p = v[i]
+ show(p[1],p[2],k .. ":" .. i)
end
end
end
local a = anchors.mark
if a then
- for k, v in pairs(a) do
+ for k, v in next, a do
show(v[1],v[2],k)
end
end
local a = anchors.basechar
if a then
- for k, v in pairs(a) do
+ for k, v in next, a do
show(v[1],v[2],k)
end
end
local ba = anchors.centry
if a then
- for k, v in pairs(a) do
+ for k, v in next, a do
show(v[1],v[2],k)
end
end
local a = anchors.cexit
if a then
- for k, v in pairs(a) do
+ for k, v in next, a do
show(v[1],v[2],k)
end
end
diff --git a/tex/context/modules/mkiv/s-fonts-shapes.mkiv b/tex/context/modules/mkiv/s-fonts-shapes.mkiv
index 4a0377ada..53ed1b426 100644
--- a/tex/context/modules/mkiv/s-fonts-shapes.mkiv
+++ b/tex/context/modules/mkiv/s-fonts-shapes.mkiv
@@ -109,7 +109,11 @@
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{50bp}{0x1D45D}\stopTEXpage
% \page
-\showallglyphshapes[name=name:cambria-math,size=100bp]
+\startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0xF034A}\stopTEXpage
+\startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0x006DD}\stopTEXpage
+
+% \showallglyphshapes[name=name:cambria-math,size=100bp]
+% \showallglyphshapes[name=file:husayninotebold.ttf,size=100bp]
% \showallglyphshapes[name=name:dejavuserif,size=100bp]
% \showallglyphshapes[name=file:brill.otf,size=100bp]
diff --git a/tex/context/modules/mkiv/s-tugboat.mkiv b/tex/context/modules/mkiv/s-tugboat.mkiv
index 2b3b07d11..d3d15c3e7 100644
--- a/tex/context/modules/mkiv/s-tugboat.mkiv
+++ b/tex/context/modules/mkiv/s-tugboat.mkiv
@@ -23,8 +23,7 @@
[tugboat]
[type=article,
columns=no,
- grid=yes
- ]
+ grid=yes]
\setvariables
[tugboat]
@@ -45,7 +44,7 @@
email={tugboat@tug.org}]
%D \section Font Setup %<<<1
-%D
+%D
%D \TUGBOAT\ uses slightly different interline space than the default.
%D So we change the interline space.
@@ -121,7 +120,7 @@
\setupdescriptions [indentnext=no]
-%D \section Itemize
+%D \section Itemize
%D
%D And these. We typeset itemizations ragged right.
@@ -158,7 +157,7 @@
subject, subsubject, subsubsubject]
[style=bold,
align=right,
- before={\blank[8pt]},
+ before={\blank[8pt]},
after={\blank[4pt]}]
%D \section Spacing <<<1
@@ -173,8 +172,8 @@
\setupitemize[1][before={\blank[tugblank]},after={\blank[tugblank]},
inbetween={\blank[tugblank]}]
-\setuplines[before={\blank[tugblank]},after={\blank[tugblank]},
- inbetween={\blank[tugblank]}]
+\setuplines[before={\blank[tugblank]},after={\blank[tugblank]},
+ inbetween={\blank[tugblank]}]
%D \section Typing %<<<1
%D
@@ -232,7 +231,7 @@
\definereferenceformat[cite][left={[},right={]}]
\defineitemgroup [bibliography] [levels=1]
-\setupitemgroup [bibliography]
+\setupitemgroup [bibliography]
[symbol=n,
left={[},
right={]},
diff --git a/tex/context/modules/mkiv/x-asciimath.lua b/tex/context/modules/mkiv/x-asciimath.lua
index 7785d5587..b0d45659e 100644
--- a/tex/context/modules/mkiv/x-asciimath.lua
+++ b/tex/context/modules/mkiv/x-asciimath.lua
@@ -50,9 +50,12 @@ local formatters = string.formatters
local entities = characters.entities or { }
local xmltext = xml.text
+local xmlpure = xml.pure
local xmlinclusion = xml.inclusion
local xmlcollected = xml.collected
+local lxmlgetid = lxml.getid
+
-- todo: use private unicodes as temporary slots ... easier to compare
local s_lparent = "\\left\\lparent"
@@ -2089,6 +2092,14 @@ interfaces.implement {
arguments = { "string", true },
}
+interfaces.implement {
+ name = "xmlasciimath",
+ actions = function(id)
+ convert(xmlpure(lxmlgetid(id)))
+ end,
+ arguments = "string"
+}
+
local ctx_typebuffer = context.typebuffer
local ctx_mathematics = context.mathematics
local ctx_color = context.color
@@ -2192,7 +2203,7 @@ end
function show.filter(id,element)
collected, indexed, ignored = { }, { }, { }
- asciimath.filter(lxml.getid(id),element or "am",collected,indexed)
+ asciimath.filter(lxmlgetid(id),element or "am",collected,indexed)
end
function show.max()
diff --git a/tex/context/modules/mkiv/x-asciimath.mkiv b/tex/context/modules/mkiv/x-asciimath.mkiv
index 1b0567dbd..32eaf2af2 100644
--- a/tex/context/modules/mkiv/x-asciimath.mkiv
+++ b/tex/context/modules/mkiv/x-asciimath.mkiv
@@ -182,6 +182,23 @@
{\the\everyasciimath
\clf_justasciimath{\detokenize\expandafter{\normalexpanded{#1}}}}}
+% \unexpanded\def\xmlasciimath
+% {\clf_xmlasciimath}
+
+\unexpanded\def\xmlasciimath
+ {\doifnextoptionalelse\xmlasciimath_yes\xmlasciimath_nop}
+
+\def\xmlasciimath_yes[#1]#2%
+ {\mathematics
+ [#1]%
+ {\the\everyasciimath%
+ \clf_xmlasciimath{#2}}}
+
+\def\xmlasciimath_nop#1%
+ {\mathematics
+ {\the\everyasciimath
+ \clf_xmlasciimath{#1}}}
+
\unexpanded\def\ctxmoduleasciimath#1%
{\ctxlua{moduledata.asciimath.#1}}
diff --git a/tex/generic/context/luatex/luatex-basics-chr.lua b/tex/generic/context/luatex/luatex-basics-chr.lua
index 75dffd192..14a55d7b0 100644
--- a/tex/generic/context/luatex/luatex-basics-chr.lua
+++ b/tex/generic/context/luatex/luatex-basics-chr.lua
@@ -676,6 +676,17 @@ characters.classifiers={
[2137]=5,
[2138]=5,
[2139]=5,
+ [2144]=2,
+ [2145]=4,
+ [2146]=2,
+ [2147]=2,
+ [2148]=2,
+ [2149]=2,
+ [2150]=4,
+ [2151]=3,
+ [2152]=2,
+ [2153]=3,
+ [2154]=3,
[2208]=2,
[2209]=2,
[2210]=2,
@@ -808,6 +819,12 @@ characters.classifiers={
[2765]=5,
[2786]=5,
[2787]=5,
+ [2810]=5,
+ [2811]=5,
+ [2812]=5,
+ [2813]=5,
+ [2814]=5,
+ [2815]=5,
[2817]=5,
[2876]=5,
[2879]=5,
@@ -845,7 +862,10 @@ characters.classifiers={
[3277]=5,
[3298]=5,
[3299]=5,
+ [3328]=5,
[3329]=5,
+ [3387]=5,
+ [3388]=5,
[3393]=5,
[3394]=5,
[3395]=5,
@@ -1342,6 +1362,10 @@ characters.classifiers={
[7667]=5,
[7668]=5,
[7669]=5,
+ [7670]=5,
+ [7671]=5,
+ [7672]=5,
+ [7673]=5,
[7675]=5,
[7676]=5,
[7677]=5,
@@ -1831,6 +1855,49 @@ characters.classifiers={
[71465]=5,
[71466]=5,
[71467]=5,
+ [72193]=5,
+ [72194]=5,
+ [72195]=5,
+ [72196]=5,
+ [72197]=5,
+ [72198]=5,
+ [72201]=5,
+ [72202]=5,
+ [72243]=5,
+ [72244]=5,
+ [72245]=5,
+ [72246]=5,
+ [72247]=5,
+ [72248]=5,
+ [72251]=5,
+ [72252]=5,
+ [72253]=5,
+ [72254]=5,
+ [72263]=5,
+ [72273]=5,
+ [72274]=5,
+ [72275]=5,
+ [72276]=5,
+ [72277]=5,
+ [72278]=5,
+ [72281]=5,
+ [72282]=5,
+ [72283]=5,
+ [72330]=5,
+ [72331]=5,
+ [72332]=5,
+ [72333]=5,
+ [72334]=5,
+ [72335]=5,
+ [72336]=5,
+ [72337]=5,
+ [72338]=5,
+ [72339]=5,
+ [72340]=5,
+ [72341]=5,
+ [72342]=5,
+ [72344]=5,
+ [72345]=5,
[72752]=5,
[72753]=5,
[72754]=5,
@@ -1878,6 +1945,23 @@ characters.classifiers={
[72883]=5,
[72885]=5,
[72886]=5,
+ [73009]=5,
+ [73010]=5,
+ [73011]=5,
+ [73012]=5,
+ [73013]=5,
+ [73014]=5,
+ [73018]=5,
+ [73020]=5,
+ [73021]=5,
+ [73023]=5,
+ [73024]=5,
+ [73025]=5,
+ [73026]=5,
+ [73027]=5,
+ [73028]=5,
+ [73029]=5,
+ [73031]=5,
[92912]=5,
[92913]=5,
[92914]=5,
@@ -2171,4 +2255,992 @@ characters.classifiers={
[1042752]=5,
}
+characters.indicgroups={
+ ["above_mark"]={
+ [2304]=true,
+ [2305]=true,
+ [2306]=true,
+ [2362]=true,
+ [2373]=true,
+ [2374]=true,
+ [2375]=true,
+ [2376]=true,
+ [2385]=true,
+ [2387]=true,
+ [2388]=true,
+ [2389]=true,
+ [2631]=true,
+ [2632]=true,
+ [2635]=true,
+ [2636]=true,
+ [2757]=true,
+ [2759]=true,
+ [2760]=true,
+ [2879]=true,
+ [3008]=true,
+ [3021]=true,
+ [3134]=true,
+ [3135]=true,
+ [3136]=true,
+ [3142]=true,
+ [3143]=true,
+ [3144]=true,
+ [3146]=true,
+ [3147]=true,
+ [3148]=true,
+ [3149]=true,
+ [3263]=true,
+ [3270]=true,
+ [3406]=true,
+ [43232]=true,
+ [43233]=true,
+ [43234]=true,
+ [43235]=true,
+ [43236]=true,
+ [43237]=true,
+ [43238]=true,
+ [43239]=true,
+ [43240]=true,
+ [43241]=true,
+ [43242]=true,
+ [43243]=true,
+ [43244]=true,
+ [43245]=true,
+ [43246]=true,
+ [43247]=true,
+ [43248]=true,
+ [43249]=true,
+ },
+ ["after_half"]={},
+ ["after_main"]={
+ [2864]=true,
+ [2879]=true,
+ [2902]=true,
+ [3376]=true,
+ },
+ ["after_postscript"]={
+ [2433]=true,
+ [2494]=true,
+ [2496]=true,
+ [2519]=true,
+ [2561]=true,
+ [2562]=true,
+ [2622]=true,
+ [2624]=true,
+ [2625]=true,
+ [2626]=true,
+ [2672]=true,
+ [2673]=true,
+ [2750]=true,
+ [2752]=true,
+ [2753]=true,
+ [2754]=true,
+ [2755]=true,
+ [2756]=true,
+ [2761]=true,
+ [2763]=true,
+ [2764]=true,
+ [2786]=true,
+ [2787]=true,
+ [2878]=true,
+ [2880]=true,
+ [2903]=true,
+ [2992]=true,
+ [3006]=true,
+ [3007]=true,
+ [3009]=true,
+ [3010]=true,
+ [3031]=true,
+ [3120]=true,
+ [3248]=true,
+ [3390]=true,
+ [3391]=true,
+ [3392]=true,
+ [3393]=true,
+ [3394]=true,
+ [3395]=true,
+ [3415]=true,
+ },
+ ["after_subscript"]={
+ [2366]=true,
+ [2368]=true,
+ [2369]=true,
+ [2370]=true,
+ [2371]=true,
+ [2372]=true,
+ [2373]=true,
+ [2374]=true,
+ [2375]=true,
+ [2376]=true,
+ [2377]=true,
+ [2378]=true,
+ [2379]=true,
+ [2380]=true,
+ [2402]=true,
+ [2403]=true,
+ [2480]=true,
+ [2497]=true,
+ [2498]=true,
+ [2499]=true,
+ [2500]=true,
+ [2530]=true,
+ [2531]=true,
+ [2544]=true,
+ [2631]=true,
+ [2632]=true,
+ [2635]=true,
+ [2636]=true,
+ [2757]=true,
+ [2759]=true,
+ [2760]=true,
+ [2881]=true,
+ [2882]=true,
+ [2883]=true,
+ [3008]=true,
+ [3139]=true,
+ [3140]=true,
+ [3267]=true,
+ [3268]=true,
+ [3285]=true,
+ [3286]=true,
+ },
+ ["anudatta"]={
+ [2386]=true,
+ },
+ ["before_half"]={
+ [2367]=true,
+ [2382]=true,
+ [2495]=true,
+ [2503]=true,
+ [2504]=true,
+ [2623]=true,
+ [2751]=true,
+ [2887]=true,
+ },
+ ["before_main"]={
+ [3014]=true,
+ [3015]=true,
+ [3016]=true,
+ [3398]=true,
+ [3399]=true,
+ [3400]=true,
+ },
+ ["before_postscript"]={
+ [2352]=true,
+ [2736]=true,
+ },
+ ["before_subscript"]={
+ [2608]=true,
+ [2817]=true,
+ [3134]=true,
+ [3135]=true,
+ [3136]=true,
+ [3137]=true,
+ [3138]=true,
+ [3142]=true,
+ [3143]=true,
+ [3146]=true,
+ [3147]=true,
+ [3148]=true,
+ [3157]=true,
+ [3158]=true,
+ [3262]=true,
+ [3263]=true,
+ [3265]=true,
+ [3266]=true,
+ [3270]=true,
+ [3276]=true,
+ [3298]=true,
+ [3299]=true,
+ },
+ ["below_mark"]={
+ [2364]=true,
+ [2369]=true,
+ [2370]=true,
+ [2371]=true,
+ [2372]=true,
+ [2381]=true,
+ [2386]=true,
+ [2390]=true,
+ [2391]=true,
+ [2402]=true,
+ [2403]=true,
+ [2492]=true,
+ [2497]=true,
+ [2498]=true,
+ [2499]=true,
+ [2500]=true,
+ [2509]=true,
+ [2620]=true,
+ [2625]=true,
+ [2626]=true,
+ [2637]=true,
+ [2748]=true,
+ [2753]=true,
+ [2754]=true,
+ [2755]=true,
+ [2756]=true,
+ [2765]=true,
+ [2876]=true,
+ [2881]=true,
+ [2882]=true,
+ [2883]=true,
+ [2884]=true,
+ [2893]=true,
+ [2914]=true,
+ [2915]=true,
+ [3009]=true,
+ [3010]=true,
+ [3170]=true,
+ [3171]=true,
+ [3260]=true,
+ [3298]=true,
+ [3299]=true,
+ [3426]=true,
+ [3427]=true,
+ },
+ ["consonant"]={
+ [2325]=true,
+ [2326]=true,
+ [2327]=true,
+ [2328]=true,
+ [2329]=true,
+ [2330]=true,
+ [2331]=true,
+ [2332]=true,
+ [2333]=true,
+ [2334]=true,
+ [2335]=true,
+ [2336]=true,
+ [2337]=true,
+ [2338]=true,
+ [2339]=true,
+ [2340]=true,
+ [2341]=true,
+ [2342]=true,
+ [2343]=true,
+ [2344]=true,
+ [2345]=true,
+ [2346]=true,
+ [2347]=true,
+ [2348]=true,
+ [2349]=true,
+ [2350]=true,
+ [2351]=true,
+ [2352]=true,
+ [2353]=true,
+ [2354]=true,
+ [2355]=true,
+ [2356]=true,
+ [2357]=true,
+ [2358]=true,
+ [2359]=true,
+ [2360]=true,
+ [2361]=true,
+ [2392]=true,
+ [2393]=true,
+ [2394]=true,
+ [2395]=true,
+ [2396]=true,
+ [2397]=true,
+ [2398]=true,
+ [2399]=true,
+ [2424]=true,
+ [2425]=true,
+ [2426]=true,
+ [2453]=true,
+ [2454]=true,
+ [2455]=true,
+ [2456]=true,
+ [2457]=true,
+ [2458]=true,
+ [2459]=true,
+ [2460]=true,
+ [2461]=true,
+ [2462]=true,
+ [2463]=true,
+ [2464]=true,
+ [2465]=true,
+ [2466]=true,
+ [2467]=true,
+ [2468]=true,
+ [2469]=true,
+ [2470]=true,
+ [2471]=true,
+ [2472]=true,
+ [2474]=true,
+ [2475]=true,
+ [2476]=true,
+ [2477]=true,
+ [2478]=true,
+ [2479]=true,
+ [2480]=true,
+ [2482]=true,
+ [2486]=true,
+ [2487]=true,
+ [2488]=true,
+ [2489]=true,
+ [2510]=true,
+ [2524]=true,
+ [2525]=true,
+ [2527]=true,
+ [2581]=true,
+ [2582]=true,
+ [2583]=true,
+ [2584]=true,
+ [2585]=true,
+ [2586]=true,
+ [2587]=true,
+ [2588]=true,
+ [2589]=true,
+ [2590]=true,
+ [2591]=true,
+ [2592]=true,
+ [2593]=true,
+ [2594]=true,
+ [2595]=true,
+ [2596]=true,
+ [2597]=true,
+ [2598]=true,
+ [2599]=true,
+ [2600]=true,
+ [2602]=true,
+ [2603]=true,
+ [2604]=true,
+ [2605]=true,
+ [2606]=true,
+ [2607]=true,
+ [2608]=true,
+ [2610]=true,
+ [2611]=true,
+ [2613]=true,
+ [2614]=true,
+ [2616]=true,
+ [2617]=true,
+ [2649]=true,
+ [2650]=true,
+ [2651]=true,
+ [2652]=true,
+ [2654]=true,
+ [2709]=true,
+ [2710]=true,
+ [2711]=true,
+ [2712]=true,
+ [2713]=true,
+ [2714]=true,
+ [2715]=true,
+ [2716]=true,
+ [2717]=true,
+ [2718]=true,
+ [2719]=true,
+ [2720]=true,
+ [2721]=true,
+ [2722]=true,
+ [2723]=true,
+ [2724]=true,
+ [2725]=true,
+ [2726]=true,
+ [2727]=true,
+ [2728]=true,
+ [2730]=true,
+ [2731]=true,
+ [2732]=true,
+ [2733]=true,
+ [2734]=true,
+ [2735]=true,
+ [2736]=true,
+ [2738]=true,
+ [2739]=true,
+ [2741]=true,
+ [2742]=true,
+ [2743]=true,
+ [2744]=true,
+ [2745]=true,
+ [2837]=true,
+ [2838]=true,
+ [2839]=true,
+ [2840]=true,
+ [2841]=true,
+ [2842]=true,
+ [2843]=true,
+ [2844]=true,
+ [2845]=true,
+ [2846]=true,
+ [2847]=true,
+ [2848]=true,
+ [2849]=true,
+ [2850]=true,
+ [2851]=true,
+ [2852]=true,
+ [2853]=true,
+ [2854]=true,
+ [2855]=true,
+ [2856]=true,
+ [2858]=true,
+ [2859]=true,
+ [2860]=true,
+ [2861]=true,
+ [2862]=true,
+ [2863]=true,
+ [2864]=true,
+ [2866]=true,
+ [2867]=true,
+ [2869]=true,
+ [2870]=true,
+ [2871]=true,
+ [2872]=true,
+ [2873]=true,
+ [2908]=true,
+ [2909]=true,
+ [2929]=true,
+ [2965]=true,
+ [2969]=true,
+ [2970]=true,
+ [2972]=true,
+ [2974]=true,
+ [2975]=true,
+ [2979]=true,
+ [2980]=true,
+ [2984]=true,
+ [2985]=true,
+ [2986]=true,
+ [2990]=true,
+ [2991]=true,
+ [2992]=true,
+ [2993]=true,
+ [2994]=true,
+ [2995]=true,
+ [2996]=true,
+ [2997]=true,
+ [2998]=true,
+ [2999]=true,
+ [3000]=true,
+ [3001]=true,
+ [3093]=true,
+ [3094]=true,
+ [3095]=true,
+ [3096]=true,
+ [3097]=true,
+ [3098]=true,
+ [3099]=true,
+ [3100]=true,
+ [3101]=true,
+ [3102]=true,
+ [3103]=true,
+ [3104]=true,
+ [3105]=true,
+ [3106]=true,
+ [3107]=true,
+ [3108]=true,
+ [3109]=true,
+ [3110]=true,
+ [3111]=true,
+ [3112]=true,
+ [3114]=true,
+ [3115]=true,
+ [3116]=true,
+ [3117]=true,
+ [3118]=true,
+ [3119]=true,
+ [3120]=true,
+ [3121]=true,
+ [3122]=true,
+ [3123]=true,
+ [3124]=true,
+ [3125]=true,
+ [3126]=true,
+ [3127]=true,
+ [3128]=true,
+ [3129]=true,
+ [3133]=true,
+ [3221]=true,
+ [3222]=true,
+ [3223]=true,
+ [3224]=true,
+ [3225]=true,
+ [3226]=true,
+ [3227]=true,
+ [3228]=true,
+ [3229]=true,
+ [3230]=true,
+ [3231]=true,
+ [3232]=true,
+ [3233]=true,
+ [3234]=true,
+ [3235]=true,
+ [3236]=true,
+ [3237]=true,
+ [3238]=true,
+ [3239]=true,
+ [3240]=true,
+ [3242]=true,
+ [3243]=true,
+ [3244]=true,
+ [3245]=true,
+ [3246]=true,
+ [3247]=true,
+ [3248]=true,
+ [3249]=true,
+ [3250]=true,
+ [3251]=true,
+ [3253]=true,
+ [3254]=true,
+ [3255]=true,
+ [3256]=true,
+ [3257]=true,
+ [3294]=true,
+ [3349]=true,
+ [3350]=true,
+ [3351]=true,
+ [3352]=true,
+ [3353]=true,
+ [3354]=true,
+ [3355]=true,
+ [3356]=true,
+ [3357]=true,
+ [3358]=true,
+ [3359]=true,
+ [3360]=true,
+ [3361]=true,
+ [3362]=true,
+ [3363]=true,
+ [3364]=true,
+ [3365]=true,
+ [3366]=true,
+ [3367]=true,
+ [3368]=true,
+ [3369]=true,
+ [3370]=true,
+ [3371]=true,
+ [3372]=true,
+ [3373]=true,
+ [3374]=true,
+ [3375]=true,
+ [3376]=true,
+ [3377]=true,
+ [3378]=true,
+ [3379]=true,
+ [3380]=true,
+ [3381]=true,
+ [3382]=true,
+ [3383]=true,
+ [3384]=true,
+ [3385]=true,
+ [3386]=true,
+ },
+ ["dependent_vowel"]={
+ [2362]=true,
+ [2363]=true,
+ [2366]=true,
+ [2367]=true,
+ [2368]=true,
+ [2369]=true,
+ [2370]=true,
+ [2371]=true,
+ [2372]=true,
+ [2373]=true,
+ [2374]=true,
+ [2375]=true,
+ [2376]=true,
+ [2377]=true,
+ [2378]=true,
+ [2379]=true,
+ [2380]=true,
+ [2382]=true,
+ [2383]=true,
+ [2389]=true,
+ [2390]=true,
+ [2391]=true,
+ [2402]=true,
+ [2403]=true,
+ [2494]=true,
+ [2495]=true,
+ [2496]=true,
+ [2497]=true,
+ [2498]=true,
+ [2499]=true,
+ [2500]=true,
+ [2503]=true,
+ [2504]=true,
+ [2622]=true,
+ [2623]=true,
+ [2624]=true,
+ [2625]=true,
+ [2626]=true,
+ [2631]=true,
+ [2632]=true,
+ [2635]=true,
+ [2636]=true,
+ [2750]=true,
+ [2751]=true,
+ [2752]=true,
+ [2753]=true,
+ [2754]=true,
+ [2755]=true,
+ [2756]=true,
+ [2757]=true,
+ [2759]=true,
+ [2760]=true,
+ [2761]=true,
+ [2763]=true,
+ [2764]=true,
+ [2878]=true,
+ [2879]=true,
+ [2880]=true,
+ [2881]=true,
+ [2882]=true,
+ [2883]=true,
+ [2884]=true,
+ [2887]=true,
+ [2888]=true,
+ [2891]=true,
+ [2892]=true,
+ [2914]=true,
+ [2915]=true,
+ [3006]=true,
+ [3007]=true,
+ [3008]=true,
+ [3009]=true,
+ [3010]=true,
+ [3014]=true,
+ [3015]=true,
+ [3016]=true,
+ [3018]=true,
+ [3019]=true,
+ [3020]=true,
+ [3134]=true,
+ [3135]=true,
+ [3136]=true,
+ [3137]=true,
+ [3138]=true,
+ [3139]=true,
+ [3140]=true,
+ [3142]=true,
+ [3143]=true,
+ [3144]=true,
+ [3146]=true,
+ [3147]=true,
+ [3148]=true,
+ [3170]=true,
+ [3171]=true,
+ [3262]=true,
+ [3263]=true,
+ [3264]=true,
+ [3265]=true,
+ [3266]=true,
+ [3267]=true,
+ [3268]=true,
+ [3270]=true,
+ [3271]=true,
+ [3272]=true,
+ [3274]=true,
+ [3275]=true,
+ [3276]=true,
+ [3298]=true,
+ [3299]=true,
+ [3390]=true,
+ [3391]=true,
+ [3392]=true,
+ [3393]=true,
+ [3394]=true,
+ [3395]=true,
+ [3396]=true,
+ [3398]=true,
+ [3399]=true,
+ [3400]=true,
+ [3402]=true,
+ [3403]=true,
+ [3404]=true,
+ [3415]=true,
+ [3426]=true,
+ [3427]=true,
+ },
+ ["halant"]={
+ [2381]=true,
+ [2509]=true,
+ [2637]=true,
+ [2765]=true,
+ [2893]=true,
+ [3021]=true,
+ [3149]=true,
+ [3277]=true,
+ [3405]=true,
+ },
+ ["independent_vowel"]={
+ [2308]=true,
+ [2309]=true,
+ [2310]=true,
+ [2311]=true,
+ [2312]=true,
+ [2313]=true,
+ [2314]=true,
+ [2315]=true,
+ [2316]=true,
+ [2317]=true,
+ [2318]=true,
+ [2319]=true,
+ [2320]=true,
+ [2321]=true,
+ [2322]=true,
+ [2323]=true,
+ [2324]=true,
+ [2400]=true,
+ [2401]=true,
+ [2418]=true,
+ [2419]=true,
+ [2420]=true,
+ [2421]=true,
+ [2422]=true,
+ [2423]=true,
+ [2437]=true,
+ [2438]=true,
+ [2439]=true,
+ [2440]=true,
+ [2441]=true,
+ [2442]=true,
+ [2443]=true,
+ [2444]=true,
+ [2447]=true,
+ [2448]=true,
+ [2451]=true,
+ [2452]=true,
+ [2528]=true,
+ [2529]=true,
+ [2530]=true,
+ [2531]=true,
+ [2565]=true,
+ [2566]=true,
+ [2567]=true,
+ [2568]=true,
+ [2569]=true,
+ [2570]=true,
+ [2575]=true,
+ [2576]=true,
+ [2579]=true,
+ [2580]=true,
+ [2693]=true,
+ [2694]=true,
+ [2695]=true,
+ [2696]=true,
+ [2697]=true,
+ [2698]=true,
+ [2699]=true,
+ [2700]=true,
+ [2701]=true,
+ [2703]=true,
+ [2704]=true,
+ [2705]=true,
+ [2707]=true,
+ [2708]=true,
+ [2784]=true,
+ [2785]=true,
+ [2786]=true,
+ [2787]=true,
+ [2821]=true,
+ [2822]=true,
+ [2823]=true,
+ [2824]=true,
+ [2825]=true,
+ [2826]=true,
+ [2827]=true,
+ [2828]=true,
+ [2831]=true,
+ [2832]=true,
+ [2835]=true,
+ [2836]=true,
+ [2912]=true,
+ [2913]=true,
+ [2949]=true,
+ [2950]=true,
+ [2951]=true,
+ [2952]=true,
+ [2953]=true,
+ [2954]=true,
+ [2958]=true,
+ [2959]=true,
+ [2960]=true,
+ [2962]=true,
+ [2963]=true,
+ [2964]=true,
+ [3077]=true,
+ [3078]=true,
+ [3079]=true,
+ [3080]=true,
+ [3081]=true,
+ [3082]=true,
+ [3083]=true,
+ [3084]=true,
+ [3086]=true,
+ [3087]=true,
+ [3088]=true,
+ [3090]=true,
+ [3091]=true,
+ [3092]=true,
+ [3168]=true,
+ [3169]=true,
+ [3205]=true,
+ [3206]=true,
+ [3207]=true,
+ [3208]=true,
+ [3209]=true,
+ [3210]=true,
+ [3211]=true,
+ [3212]=true,
+ [3214]=true,
+ [3215]=true,
+ [3216]=true,
+ [3218]=true,
+ [3219]=true,
+ [3220]=true,
+ [3296]=true,
+ [3297]=true,
+ [3333]=true,
+ [3334]=true,
+ [3335]=true,
+ [3336]=true,
+ [3337]=true,
+ [3338]=true,
+ [3339]=true,
+ [3340]=true,
+ [3342]=true,
+ [3343]=true,
+ [3344]=true,
+ [3346]=true,
+ [3347]=true,
+ [3348]=true,
+ [3423]=true,
+ [3424]=true,
+ [3425]=true,
+ },
+ ["nukta"]={
+ [2364]=true,
+ [2492]=true,
+ [2620]=true,
+ [2748]=true,
+ [2876]=true,
+ [3260]=true,
+ },
+ ["post_mark"]={
+ [2307]=true,
+ [2363]=true,
+ [2366]=true,
+ [2368]=true,
+ [2377]=true,
+ [2378]=true,
+ [2379]=true,
+ [2380]=true,
+ [2383]=true,
+ [2494]=true,
+ [2496]=true,
+ [2503]=true,
+ [2504]=true,
+ [2622]=true,
+ [2624]=true,
+ [2750]=true,
+ [2752]=true,
+ [2761]=true,
+ [2763]=true,
+ [2764]=true,
+ [2878]=true,
+ [2880]=true,
+ [3006]=true,
+ [3007]=true,
+ [3137]=true,
+ [3138]=true,
+ [3139]=true,
+ [3140]=true,
+ [3262]=true,
+ [3264]=true,
+ [3265]=true,
+ [3266]=true,
+ [3267]=true,
+ [3268]=true,
+ [3271]=true,
+ [3272]=true,
+ [3274]=true,
+ [3275]=true,
+ [3276]=true,
+ [3390]=true,
+ [3391]=true,
+ [3392]=true,
+ [3393]=true,
+ [3394]=true,
+ [3395]=true,
+ [3396]=true,
+ [3415]=true,
+ },
+ ["pre_mark"]={
+ [2367]=true,
+ [2382]=true,
+ [2495]=true,
+ [2623]=true,
+ [2751]=true,
+ [2887]=true,
+ [2888]=true,
+ [3014]=true,
+ [3015]=true,
+ [3016]=true,
+ [3398]=true,
+ [3399]=true,
+ [3400]=true,
+ },
+ ["ra"]={
+ [2352]=true,
+ [2480]=true,
+ [2608]=true,
+ [2736]=true,
+ [2864]=true,
+ [2992]=true,
+ [3120]=true,
+ [3248]=true,
+ [3376]=true,
+ },
+ ["stress_tone_mark"]={
+ [2385]=true,
+ [2386]=true,
+ [2387]=true,
+ [2388]=true,
+ [2507]=true,
+ [2508]=true,
+ [3277]=true,
+ [3405]=true,
+ },
+ ["twopart_mark"]={
+ [2891]={ 2887, 2878 },
+ [2892]={ 2887, 2903 },
+ [3018]={ 3014, 3006 },
+ [3019]={ 3015, 3006 },
+ [3020]={ 3014, 3031 },
+ [3402]={ 3398, 3390 },
+ [3403]={ 3399, 3390 },
+ [3404]={ 3398, 3415 },
+ },
+ ["vowel_modifier"]={
+ [2304]=true,
+ [2305]=true,
+ [2306]=true,
+ [2307]=true,
+ [3330]=true,
+ [3331]=true,
+ [43232]=true,
+ [43233]=true,
+ [43234]=true,
+ [43235]=true,
+ [43236]=true,
+ [43237]=true,
+ [43238]=true,
+ [43239]=true,
+ [43240]=true,
+ [43241]=true,
+ [43242]=true,
+ [43243]=true,
+ [43244]=true,
+ [43245]=true,
+ [43246]=true,
+ [43247]=true,
+ [43248]=true,
+ [43249]=true,
+ },
+}
+
-- done
diff --git a/tex/generic/context/luatex/luatex-basics-prepare.tex b/tex/generic/context/luatex/luatex-basics-prepare.tex
index 76a35cc94..47eaa7341 100644
--- a/tex/generic/context/luatex/luatex-basics-prepare.tex
+++ b/tex/generic/context/luatex/luatex-basics-prepare.tex
@@ -15,6 +15,8 @@
%D is needed because we don't want to load the (mostly not used in generic) data
%D files.
+%D Indicorder is not yet filled in completely.
+
\startluacode
-- dofile("t:/sources/char-ini.lua")
@@ -43,6 +45,7 @@ local first_mandiac, last_mandiac = characters.blockrange("mandiac")
local first_nko, last_nko = characters.blockrange("nko")
local classifiers = { }
+local indicgroups = characters.indicgroups
for k, c in next, chardata do
if k > 0 then
@@ -78,11 +81,14 @@ characters.blockrange = { }
%s
+%s
+
-- done
]] ]
io.savedata("luatex-basics-chr.lua",template(
- table.serialize(classifiers,"characters.classifiers")
+ table.serialize(classifiers,"characters.classifiers"),
+ table.serialize(indicgroups,"characters.indicgroups")
))
\stopluacode
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index e91fdbd93..97503d8a7 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 : 03/16/18 22:20:58
+-- merge date : 04/02/18 15:43:20
do -- begin closure to overcome local limits and interference
@@ -1976,10 +1976,10 @@ function table.reversed(t)
return tt
end
end
-function table.reverse(t)
+function table.reverse(t)
if t then
local n=#t
- for i=1,floor(n/2) do
+ for i=1,floor(n/2) do
local j=n-i+1
t[i],t[j]=t[j],t[i]
end
@@ -3745,13 +3745,15 @@ utilities.strings=utilities.strings or {}
local strings=utilities.strings
local format,gsub,rep,sub,find=string.format,string.gsub,string.rep,string.sub,string.find
local load,dump=load,string.dump
-local tonumber,type,tostring,next=tonumber,type,tostring,next
+local tonumber,type,tostring,next,setmetatable=tonumber,type,tostring,next,setmetatable
+local unpack,concat=table.unpack,table.concat
local unpack,concat=table.unpack,table.concat
local P,V,C,S,R,Ct,Cs,Cp,Carg,Cc=lpeg.P,lpeg.V,lpeg.C,lpeg.S,lpeg.R,lpeg.Ct,lpeg.Cs,lpeg.Cp,lpeg.Carg,lpeg.Cc
local patterns,lpegmatch=lpeg.patterns,lpeg.match
local utfchar,utfbyte,utflen=utf.char,utf.byte,utf.len
local loadstripped=nil
-if LUAVERSION<5.2 then
+local oldfashioned=LUAVERSION<5.2
+if oldfashioned then
loadstripped=function(str,shortcuts)
return load(str)
end
@@ -4023,7 +4025,7 @@ local template=[[
return function(%s) return %s end
]]
local preamble,environment="",{}
-if LUAVERSION<5.2 then
+if oldfashioned then
preamble=[[
local lpeg=lpeg
local type=type
@@ -4070,7 +4072,7 @@ else
sequenced=table.sequenced,
formattednumber=number.formatted,
sparseexponent=number.sparseexponent,
- formattedfloat=number.formattedfloat
+ formattedfloat=number.formattedfloat,
}
end
local arguments={ "a1" }
@@ -4427,12 +4429,18 @@ local builder=Cs { "start",
["?"]=Cs(((1-P("%"))^1 )^1)/format_rest,
["!"]=Carg(2)*prefix_any*P("!")*C((1-P("!"))^1)*P("!")/format_extension,
}
-local direct=Cs (
- P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
-)
+local xx=setmetatable({},{ __index=function(t,k) local v=format("%02x",k) t[k]=v return v end })
+local XX=setmetatable({},{ __index=function(t,k) local v=format("%02X",k) t[k]=v return v end })
+local preset={
+ ["%02x"]=function(n) return xx[n] end,
+ ["%02X"]=function(n) return XX[n] end,
+}
+local direct=P("%")*(S("+- .")+R("09"))^0*S("sqidfgGeExXo")*P(-1)/[[local format = string.format return function(str) return format("%0",str) end]]
local function make(t,str)
- local f
- local p
+ local f=preset[str]
+ if f then
+ return f
+ end
local p=lpegmatch(direct,str)
if p then
f=loadstripped(p)()
@@ -4453,7 +4461,7 @@ local function use(t,fmt,...)
return t[fmt](...)
end
strings.formatters={}
-if LUAVERSION<5.2 then
+if oldfashioned then
function strings.formatters.new(noconcat)
local t={ _type_="formatter",_connector_=noconcat and "," or "..",_extensions_={},_preamble_=preamble,_environment_={} }
setmetatable(t,{ __index=make,__call=use })
@@ -4490,7 +4498,7 @@ patterns.xmlescape=Cs((P("<")/"&lt;"+P(">")/"&gt;"+P("&")/"&amp;"+P('"')/"&quot;
patterns.texescape=Cs((C(S("#$%\\{}"))/"\\%1"+P(1))^0)
patterns.luaescape=Cs(((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0)
patterns.luaquoted=Cs(Cc('"')*((1-S('"\n'))^1+P('"')/'\\"'+P('\n')/'\\n"')^0*Cc('"'))
-if LUAVERSION<5.2 then
+if oldfashioned then
add(formatters,"xml",[[lpegmatch(xmlescape,%s)]],"local xmlescape = lpeg.patterns.xmlescape")
add(formatters,"tex",[[lpegmatch(texescape,%s)]],"local texescape = lpeg.patterns.texescape")
add(formatters,"lua",[[lpegmatch(luaescape,%s)]],"local luaescape = lpeg.patterns.luaescape")
@@ -6274,6 +6282,17 @@ characters.classifiers={
[2137]=5,
[2138]=5,
[2139]=5,
+ [2144]=2,
+ [2145]=4,
+ [2146]=2,
+ [2147]=2,
+ [2148]=2,
+ [2149]=2,
+ [2150]=4,
+ [2151]=3,
+ [2152]=2,
+ [2153]=3,
+ [2154]=3,
[2208]=2,
[2209]=2,
[2210]=2,
@@ -6406,6 +6425,12 @@ characters.classifiers={
[2765]=5,
[2786]=5,
[2787]=5,
+ [2810]=5,
+ [2811]=5,
+ [2812]=5,
+ [2813]=5,
+ [2814]=5,
+ [2815]=5,
[2817]=5,
[2876]=5,
[2879]=5,
@@ -6443,7 +6468,10 @@ characters.classifiers={
[3277]=5,
[3298]=5,
[3299]=5,
+ [3328]=5,
[3329]=5,
+ [3387]=5,
+ [3388]=5,
[3393]=5,
[3394]=5,
[3395]=5,
@@ -6940,6 +6968,10 @@ characters.classifiers={
[7667]=5,
[7668]=5,
[7669]=5,
+ [7670]=5,
+ [7671]=5,
+ [7672]=5,
+ [7673]=5,
[7675]=5,
[7676]=5,
[7677]=5,
@@ -7429,6 +7461,49 @@ characters.classifiers={
[71465]=5,
[71466]=5,
[71467]=5,
+ [72193]=5,
+ [72194]=5,
+ [72195]=5,
+ [72196]=5,
+ [72197]=5,
+ [72198]=5,
+ [72201]=5,
+ [72202]=5,
+ [72243]=5,
+ [72244]=5,
+ [72245]=5,
+ [72246]=5,
+ [72247]=5,
+ [72248]=5,
+ [72251]=5,
+ [72252]=5,
+ [72253]=5,
+ [72254]=5,
+ [72263]=5,
+ [72273]=5,
+ [72274]=5,
+ [72275]=5,
+ [72276]=5,
+ [72277]=5,
+ [72278]=5,
+ [72281]=5,
+ [72282]=5,
+ [72283]=5,
+ [72330]=5,
+ [72331]=5,
+ [72332]=5,
+ [72333]=5,
+ [72334]=5,
+ [72335]=5,
+ [72336]=5,
+ [72337]=5,
+ [72338]=5,
+ [72339]=5,
+ [72340]=5,
+ [72341]=5,
+ [72342]=5,
+ [72344]=5,
+ [72345]=5,
[72752]=5,
[72753]=5,
[72754]=5,
@@ -7476,6 +7551,23 @@ characters.classifiers={
[72883]=5,
[72885]=5,
[72886]=5,
+ [73009]=5,
+ [73010]=5,
+ [73011]=5,
+ [73012]=5,
+ [73013]=5,
+ [73014]=5,
+ [73018]=5,
+ [73020]=5,
+ [73021]=5,
+ [73023]=5,
+ [73024]=5,
+ [73025]=5,
+ [73026]=5,
+ [73027]=5,
+ [73028]=5,
+ [73029]=5,
+ [73031]=5,
[92912]=5,
[92913]=5,
[92914]=5,
@@ -7768,6 +7860,993 @@ characters.classifiers={
[125258]=5,
[1042752]=5,
}
+characters.indicgroups={
+ ["above_mark"]={
+ [2304]=true,
+ [2305]=true,
+ [2306]=true,
+ [2362]=true,
+ [2373]=true,
+ [2374]=true,
+ [2375]=true,
+ [2376]=true,
+ [2385]=true,
+ [2387]=true,
+ [2388]=true,
+ [2389]=true,
+ [2631]=true,
+ [2632]=true,
+ [2635]=true,
+ [2636]=true,
+ [2757]=true,
+ [2759]=true,
+ [2760]=true,
+ [2879]=true,
+ [3008]=true,
+ [3021]=true,
+ [3134]=true,
+ [3135]=true,
+ [3136]=true,
+ [3142]=true,
+ [3143]=true,
+ [3144]=true,
+ [3146]=true,
+ [3147]=true,
+ [3148]=true,
+ [3149]=true,
+ [3263]=true,
+ [3270]=true,
+ [3406]=true,
+ [43232]=true,
+ [43233]=true,
+ [43234]=true,
+ [43235]=true,
+ [43236]=true,
+ [43237]=true,
+ [43238]=true,
+ [43239]=true,
+ [43240]=true,
+ [43241]=true,
+ [43242]=true,
+ [43243]=true,
+ [43244]=true,
+ [43245]=true,
+ [43246]=true,
+ [43247]=true,
+ [43248]=true,
+ [43249]=true,
+ },
+ ["after_half"]={},
+ ["after_main"]={
+ [2864]=true,
+ [2879]=true,
+ [2902]=true,
+ [3376]=true,
+ },
+ ["after_postscript"]={
+ [2433]=true,
+ [2494]=true,
+ [2496]=true,
+ [2519]=true,
+ [2561]=true,
+ [2562]=true,
+ [2622]=true,
+ [2624]=true,
+ [2625]=true,
+ [2626]=true,
+ [2672]=true,
+ [2673]=true,
+ [2750]=true,
+ [2752]=true,
+ [2753]=true,
+ [2754]=true,
+ [2755]=true,
+ [2756]=true,
+ [2761]=true,
+ [2763]=true,
+ [2764]=true,
+ [2786]=true,
+ [2787]=true,
+ [2878]=true,
+ [2880]=true,
+ [2903]=true,
+ [2992]=true,
+ [3006]=true,
+ [3007]=true,
+ [3009]=true,
+ [3010]=true,
+ [3031]=true,
+ [3120]=true,
+ [3248]=true,
+ [3390]=true,
+ [3391]=true,
+ [3392]=true,
+ [3393]=true,
+ [3394]=true,
+ [3395]=true,
+ [3415]=true,
+ },
+ ["after_subscript"]={
+ [2366]=true,
+ [2368]=true,
+ [2369]=true,
+ [2370]=true,
+ [2371]=true,
+ [2372]=true,
+ [2373]=true,
+ [2374]=true,
+ [2375]=true,
+ [2376]=true,
+ [2377]=true,
+ [2378]=true,
+ [2379]=true,
+ [2380]=true,
+ [2402]=true,
+ [2403]=true,
+ [2480]=true,
+ [2497]=true,
+ [2498]=true,
+ [2499]=true,
+ [2500]=true,
+ [2530]=true,
+ [2531]=true,
+ [2544]=true,
+ [2631]=true,
+ [2632]=true,
+ [2635]=true,
+ [2636]=true,
+ [2757]=true,
+ [2759]=true,
+ [2760]=true,
+ [2881]=true,
+ [2882]=true,
+ [2883]=true,
+ [3008]=true,
+ [3139]=true,
+ [3140]=true,
+ [3267]=true,
+ [3268]=true,
+ [3285]=true,
+ [3286]=true,
+ },
+ ["anudatta"]={
+ [2386]=true,
+ },
+ ["before_half"]={
+ [2367]=true,
+ [2382]=true,
+ [2495]=true,
+ [2503]=true,
+ [2504]=true,
+ [2623]=true,
+ [2751]=true,
+ [2887]=true,
+ },
+ ["before_main"]={
+ [3014]=true,
+ [3015]=true,
+ [3016]=true,
+ [3398]=true,
+ [3399]=true,
+ [3400]=true,
+ },
+ ["before_postscript"]={
+ [2352]=true,
+ [2736]=true,
+ },
+ ["before_subscript"]={
+ [2608]=true,
+ [2817]=true,
+ [3134]=true,
+ [3135]=true,
+ [3136]=true,
+ [3137]=true,
+ [3138]=true,
+ [3142]=true,
+ [3143]=true,
+ [3146]=true,
+ [3147]=true,
+ [3148]=true,
+ [3157]=true,
+ [3158]=true,
+ [3262]=true,
+ [3263]=true,
+ [3265]=true,
+ [3266]=true,
+ [3270]=true,
+ [3276]=true,
+ [3298]=true,
+ [3299]=true,
+ },
+ ["below_mark"]={
+ [2364]=true,
+ [2369]=true,
+ [2370]=true,
+ [2371]=true,
+ [2372]=true,
+ [2381]=true,
+ [2386]=true,
+ [2390]=true,
+ [2391]=true,
+ [2402]=true,
+ [2403]=true,
+ [2492]=true,
+ [2497]=true,
+ [2498]=true,
+ [2499]=true,
+ [2500]=true,
+ [2509]=true,
+ [2620]=true,
+ [2625]=true,
+ [2626]=true,
+ [2637]=true,
+ [2748]=true,
+ [2753]=true,
+ [2754]=true,
+ [2755]=true,
+ [2756]=true,
+ [2765]=true,
+ [2876]=true,
+ [2881]=true,
+ [2882]=true,
+ [2883]=true,
+ [2884]=true,
+ [2893]=true,
+ [2914]=true,
+ [2915]=true,
+ [3009]=true,
+ [3010]=true,
+ [3170]=true,
+ [3171]=true,
+ [3260]=true,
+ [3298]=true,
+ [3299]=true,
+ [3426]=true,
+ [3427]=true,
+ },
+ ["consonant"]={
+ [2325]=true,
+ [2326]=true,
+ [2327]=true,
+ [2328]=true,
+ [2329]=true,
+ [2330]=true,
+ [2331]=true,
+ [2332]=true,
+ [2333]=true,
+ [2334]=true,
+ [2335]=true,
+ [2336]=true,
+ [2337]=true,
+ [2338]=true,
+ [2339]=true,
+ [2340]=true,
+ [2341]=true,
+ [2342]=true,
+ [2343]=true,
+ [2344]=true,
+ [2345]=true,
+ [2346]=true,
+ [2347]=true,
+ [2348]=true,
+ [2349]=true,
+ [2350]=true,
+ [2351]=true,
+ [2352]=true,
+ [2353]=true,
+ [2354]=true,
+ [2355]=true,
+ [2356]=true,
+ [2357]=true,
+ [2358]=true,
+ [2359]=true,
+ [2360]=true,
+ [2361]=true,
+ [2392]=true,
+ [2393]=true,
+ [2394]=true,
+ [2395]=true,
+ [2396]=true,
+ [2397]=true,
+ [2398]=true,
+ [2399]=true,
+ [2424]=true,
+ [2425]=true,
+ [2426]=true,
+ [2453]=true,
+ [2454]=true,
+ [2455]=true,
+ [2456]=true,
+ [2457]=true,
+ [2458]=true,
+ [2459]=true,
+ [2460]=true,
+ [2461]=true,
+ [2462]=true,
+ [2463]=true,
+ [2464]=true,
+ [2465]=true,
+ [2466]=true,
+ [2467]=true,
+ [2468]=true,
+ [2469]=true,
+ [2470]=true,
+ [2471]=true,
+ [2472]=true,
+ [2474]=true,
+ [2475]=true,
+ [2476]=true,
+ [2477]=true,
+ [2478]=true,
+ [2479]=true,
+ [2480]=true,
+ [2482]=true,
+ [2486]=true,
+ [2487]=true,
+ [2488]=true,
+ [2489]=true,
+ [2510]=true,
+ [2524]=true,
+ [2525]=true,
+ [2527]=true,
+ [2581]=true,
+ [2582]=true,
+ [2583]=true,
+ [2584]=true,
+ [2585]=true,
+ [2586]=true,
+ [2587]=true,
+ [2588]=true,
+ [2589]=true,
+ [2590]=true,
+ [2591]=true,
+ [2592]=true,
+ [2593]=true,
+ [2594]=true,
+ [2595]=true,
+ [2596]=true,
+ [2597]=true,
+ [2598]=true,
+ [2599]=true,
+ [2600]=true,
+ [2602]=true,
+ [2603]=true,
+ [2604]=true,
+ [2605]=true,
+ [2606]=true,
+ [2607]=true,
+ [2608]=true,
+ [2610]=true,
+ [2611]=true,
+ [2613]=true,
+ [2614]=true,
+ [2616]=true,
+ [2617]=true,
+ [2649]=true,
+ [2650]=true,
+ [2651]=true,
+ [2652]=true,
+ [2654]=true,
+ [2709]=true,
+ [2710]=true,
+ [2711]=true,
+ [2712]=true,
+ [2713]=true,
+ [2714]=true,
+ [2715]=true,
+ [2716]=true,
+ [2717]=true,
+ [2718]=true,
+ [2719]=true,
+ [2720]=true,
+ [2721]=true,
+ [2722]=true,
+ [2723]=true,
+ [2724]=true,
+ [2725]=true,
+ [2726]=true,
+ [2727]=true,
+ [2728]=true,
+ [2730]=true,
+ [2731]=true,
+ [2732]=true,
+ [2733]=true,
+ [2734]=true,
+ [2735]=true,
+ [2736]=true,
+ [2738]=true,
+ [2739]=true,
+ [2741]=true,
+ [2742]=true,
+ [2743]=true,
+ [2744]=true,
+ [2745]=true,
+ [2837]=true,
+ [2838]=true,
+ [2839]=true,
+ [2840]=true,
+ [2841]=true,
+ [2842]=true,
+ [2843]=true,
+ [2844]=true,
+ [2845]=true,
+ [2846]=true,
+ [2847]=true,
+ [2848]=true,
+ [2849]=true,
+ [2850]=true,
+ [2851]=true,
+ [2852]=true,
+ [2853]=true,
+ [2854]=true,
+ [2855]=true,
+ [2856]=true,
+ [2858]=true,
+ [2859]=true,
+ [2860]=true,
+ [2861]=true,
+ [2862]=true,
+ [2863]=true,
+ [2864]=true,
+ [2866]=true,
+ [2867]=true,
+ [2869]=true,
+ [2870]=true,
+ [2871]=true,
+ [2872]=true,
+ [2873]=true,
+ [2908]=true,
+ [2909]=true,
+ [2929]=true,
+ [2965]=true,
+ [2969]=true,
+ [2970]=true,
+ [2972]=true,
+ [2974]=true,
+ [2975]=true,
+ [2979]=true,
+ [2980]=true,
+ [2984]=true,
+ [2985]=true,
+ [2986]=true,
+ [2990]=true,
+ [2991]=true,
+ [2992]=true,
+ [2993]=true,
+ [2994]=true,
+ [2995]=true,
+ [2996]=true,
+ [2997]=true,
+ [2998]=true,
+ [2999]=true,
+ [3000]=true,
+ [3001]=true,
+ [3093]=true,
+ [3094]=true,
+ [3095]=true,
+ [3096]=true,
+ [3097]=true,
+ [3098]=true,
+ [3099]=true,
+ [3100]=true,
+ [3101]=true,
+ [3102]=true,
+ [3103]=true,
+ [3104]=true,
+ [3105]=true,
+ [3106]=true,
+ [3107]=true,
+ [3108]=true,
+ [3109]=true,
+ [3110]=true,
+ [3111]=true,
+ [3112]=true,
+ [3114]=true,
+ [3115]=true,
+ [3116]=true,
+ [3117]=true,
+ [3118]=true,
+ [3119]=true,
+ [3120]=true,
+ [3121]=true,
+ [3122]=true,
+ [3123]=true,
+ [3124]=true,
+ [3125]=true,
+ [3126]=true,
+ [3127]=true,
+ [3128]=true,
+ [3129]=true,
+ [3133]=true,
+ [3221]=true,
+ [3222]=true,
+ [3223]=true,
+ [3224]=true,
+ [3225]=true,
+ [3226]=true,
+ [3227]=true,
+ [3228]=true,
+ [3229]=true,
+ [3230]=true,
+ [3231]=true,
+ [3232]=true,
+ [3233]=true,
+ [3234]=true,
+ [3235]=true,
+ [3236]=true,
+ [3237]=true,
+ [3238]=true,
+ [3239]=true,
+ [3240]=true,
+ [3242]=true,
+ [3243]=true,
+ [3244]=true,
+ [3245]=true,
+ [3246]=true,
+ [3247]=true,
+ [3248]=true,
+ [3249]=true,
+ [3250]=true,
+ [3251]=true,
+ [3253]=true,
+ [3254]=true,
+ [3255]=true,
+ [3256]=true,
+ [3257]=true,
+ [3294]=true,
+ [3349]=true,
+ [3350]=true,
+ [3351]=true,
+ [3352]=true,
+ [3353]=true,
+ [3354]=true,
+ [3355]=true,
+ [3356]=true,
+ [3357]=true,
+ [3358]=true,
+ [3359]=true,
+ [3360]=true,
+ [3361]=true,
+ [3362]=true,
+ [3363]=true,
+ [3364]=true,
+ [3365]=true,
+ [3366]=true,
+ [3367]=true,
+ [3368]=true,
+ [3369]=true,
+ [3370]=true,
+ [3371]=true,
+ [3372]=true,
+ [3373]=true,
+ [3374]=true,
+ [3375]=true,
+ [3376]=true,
+ [3377]=true,
+ [3378]=true,
+ [3379]=true,
+ [3380]=true,
+ [3381]=true,
+ [3382]=true,
+ [3383]=true,
+ [3384]=true,
+ [3385]=true,
+ [3386]=true,
+ },
+ ["dependent_vowel"]={
+ [2362]=true,
+ [2363]=true,
+ [2366]=true,
+ [2367]=true,
+ [2368]=true,
+ [2369]=true,
+ [2370]=true,
+ [2371]=true,
+ [2372]=true,
+ [2373]=true,
+ [2374]=true,
+ [2375]=true,
+ [2376]=true,
+ [2377]=true,
+ [2378]=true,
+ [2379]=true,
+ [2380]=true,
+ [2382]=true,
+ [2383]=true,
+ [2389]=true,
+ [2390]=true,
+ [2391]=true,
+ [2402]=true,
+ [2403]=true,
+ [2494]=true,
+ [2495]=true,
+ [2496]=true,
+ [2497]=true,
+ [2498]=true,
+ [2499]=true,
+ [2500]=true,
+ [2503]=true,
+ [2504]=true,
+ [2622]=true,
+ [2623]=true,
+ [2624]=true,
+ [2625]=true,
+ [2626]=true,
+ [2631]=true,
+ [2632]=true,
+ [2635]=true,
+ [2636]=true,
+ [2750]=true,
+ [2751]=true,
+ [2752]=true,
+ [2753]=true,
+ [2754]=true,
+ [2755]=true,
+ [2756]=true,
+ [2757]=true,
+ [2759]=true,
+ [2760]=true,
+ [2761]=true,
+ [2763]=true,
+ [2764]=true,
+ [2878]=true,
+ [2879]=true,
+ [2880]=true,
+ [2881]=true,
+ [2882]=true,
+ [2883]=true,
+ [2884]=true,
+ [2887]=true,
+ [2888]=true,
+ [2891]=true,
+ [2892]=true,
+ [2914]=true,
+ [2915]=true,
+ [3006]=true,
+ [3007]=true,
+ [3008]=true,
+ [3009]=true,
+ [3010]=true,
+ [3014]=true,
+ [3015]=true,
+ [3016]=true,
+ [3018]=true,
+ [3019]=true,
+ [3020]=true,
+ [3134]=true,
+ [3135]=true,
+ [3136]=true,
+ [3137]=true,
+ [3138]=true,
+ [3139]=true,
+ [3140]=true,
+ [3142]=true,
+ [3143]=true,
+ [3144]=true,
+ [3146]=true,
+ [3147]=true,
+ [3148]=true,
+ [3170]=true,
+ [3171]=true,
+ [3262]=true,
+ [3263]=true,
+ [3264]=true,
+ [3265]=true,
+ [3266]=true,
+ [3267]=true,
+ [3268]=true,
+ [3270]=true,
+ [3271]=true,
+ [3272]=true,
+ [3274]=true,
+ [3275]=true,
+ [3276]=true,
+ [3298]=true,
+ [3299]=true,
+ [3390]=true,
+ [3391]=true,
+ [3392]=true,
+ [3393]=true,
+ [3394]=true,
+ [3395]=true,
+ [3396]=true,
+ [3398]=true,
+ [3399]=true,
+ [3400]=true,
+ [3402]=true,
+ [3403]=true,
+ [3404]=true,
+ [3415]=true,
+ [3426]=true,
+ [3427]=true,
+ },
+ ["halant"]={
+ [2381]=true,
+ [2509]=true,
+ [2637]=true,
+ [2765]=true,
+ [2893]=true,
+ [3021]=true,
+ [3149]=true,
+ [3277]=true,
+ [3405]=true,
+ },
+ ["independent_vowel"]={
+ [2308]=true,
+ [2309]=true,
+ [2310]=true,
+ [2311]=true,
+ [2312]=true,
+ [2313]=true,
+ [2314]=true,
+ [2315]=true,
+ [2316]=true,
+ [2317]=true,
+ [2318]=true,
+ [2319]=true,
+ [2320]=true,
+ [2321]=true,
+ [2322]=true,
+ [2323]=true,
+ [2324]=true,
+ [2400]=true,
+ [2401]=true,
+ [2418]=true,
+ [2419]=true,
+ [2420]=true,
+ [2421]=true,
+ [2422]=true,
+ [2423]=true,
+ [2437]=true,
+ [2438]=true,
+ [2439]=true,
+ [2440]=true,
+ [2441]=true,
+ [2442]=true,
+ [2443]=true,
+ [2444]=true,
+ [2447]=true,
+ [2448]=true,
+ [2451]=true,
+ [2452]=true,
+ [2528]=true,
+ [2529]=true,
+ [2530]=true,
+ [2531]=true,
+ [2565]=true,
+ [2566]=true,
+ [2567]=true,
+ [2568]=true,
+ [2569]=true,
+ [2570]=true,
+ [2575]=true,
+ [2576]=true,
+ [2579]=true,
+ [2580]=true,
+ [2693]=true,
+ [2694]=true,
+ [2695]=true,
+ [2696]=true,
+ [2697]=true,
+ [2698]=true,
+ [2699]=true,
+ [2700]=true,
+ [2701]=true,
+ [2703]=true,
+ [2704]=true,
+ [2705]=true,
+ [2707]=true,
+ [2708]=true,
+ [2784]=true,
+ [2785]=true,
+ [2786]=true,
+ [2787]=true,
+ [2821]=true,
+ [2822]=true,
+ [2823]=true,
+ [2824]=true,
+ [2825]=true,
+ [2826]=true,
+ [2827]=true,
+ [2828]=true,
+ [2831]=true,
+ [2832]=true,
+ [2835]=true,
+ [2836]=true,
+ [2912]=true,
+ [2913]=true,
+ [2949]=true,
+ [2950]=true,
+ [2951]=true,
+ [2952]=true,
+ [2953]=true,
+ [2954]=true,
+ [2958]=true,
+ [2959]=true,
+ [2960]=true,
+ [2962]=true,
+ [2963]=true,
+ [2964]=true,
+ [3077]=true,
+ [3078]=true,
+ [3079]=true,
+ [3080]=true,
+ [3081]=true,
+ [3082]=true,
+ [3083]=true,
+ [3084]=true,
+ [3086]=true,
+ [3087]=true,
+ [3088]=true,
+ [3090]=true,
+ [3091]=true,
+ [3092]=true,
+ [3168]=true,
+ [3169]=true,
+ [3205]=true,
+ [3206]=true,
+ [3207]=true,
+ [3208]=true,
+ [3209]=true,
+ [3210]=true,
+ [3211]=true,
+ [3212]=true,
+ [3214]=true,
+ [3215]=true,
+ [3216]=true,
+ [3218]=true,
+ [3219]=true,
+ [3220]=true,
+ [3296]=true,
+ [3297]=true,
+ [3333]=true,
+ [3334]=true,
+ [3335]=true,
+ [3336]=true,
+ [3337]=true,
+ [3338]=true,
+ [3339]=true,
+ [3340]=true,
+ [3342]=true,
+ [3343]=true,
+ [3344]=true,
+ [3346]=true,
+ [3347]=true,
+ [3348]=true,
+ [3423]=true,
+ [3424]=true,
+ [3425]=true,
+ },
+ ["nukta"]={
+ [2364]=true,
+ [2492]=true,
+ [2620]=true,
+ [2748]=true,
+ [2876]=true,
+ [3260]=true,
+ },
+ ["post_mark"]={
+ [2307]=true,
+ [2363]=true,
+ [2366]=true,
+ [2368]=true,
+ [2377]=true,
+ [2378]=true,
+ [2379]=true,
+ [2380]=true,
+ [2383]=true,
+ [2494]=true,
+ [2496]=true,
+ [2503]=true,
+ [2504]=true,
+ [2622]=true,
+ [2624]=true,
+ [2750]=true,
+ [2752]=true,
+ [2761]=true,
+ [2763]=true,
+ [2764]=true,
+ [2878]=true,
+ [2880]=true,
+ [3006]=true,
+ [3007]=true,
+ [3137]=true,
+ [3138]=true,
+ [3139]=true,
+ [3140]=true,
+ [3262]=true,
+ [3264]=true,
+ [3265]=true,
+ [3266]=true,
+ [3267]=true,
+ [3268]=true,
+ [3271]=true,
+ [3272]=true,
+ [3274]=true,
+ [3275]=true,
+ [3276]=true,
+ [3390]=true,
+ [3391]=true,
+ [3392]=true,
+ [3393]=true,
+ [3394]=true,
+ [3395]=true,
+ [3396]=true,
+ [3415]=true,
+ },
+ ["pre_mark"]={
+ [2367]=true,
+ [2382]=true,
+ [2495]=true,
+ [2623]=true,
+ [2751]=true,
+ [2887]=true,
+ [2888]=true,
+ [3014]=true,
+ [3015]=true,
+ [3016]=true,
+ [3398]=true,
+ [3399]=true,
+ [3400]=true,
+ },
+ ["ra"]={
+ [2352]=true,
+ [2480]=true,
+ [2608]=true,
+ [2736]=true,
+ [2864]=true,
+ [2992]=true,
+ [3120]=true,
+ [3248]=true,
+ [3376]=true,
+ },
+ ["stress_tone_mark"]={
+ [2385]=true,
+ [2386]=true,
+ [2387]=true,
+ [2388]=true,
+ [2507]=true,
+ [2508]=true,
+ [3277]=true,
+ [3405]=true,
+ },
+ ["twopart_mark"]={
+ [2891]={ 2887,2878 },
+ [2892]={ 2887,2903 },
+ [3018]={ 3014,3006 },
+ [3019]={ 3015,3006 },
+ [3020]={ 3014,3031 },
+ [3402]={ 3398,3390 },
+ [3403]={ 3399,3390 },
+ [3404]={ 3398,3415 },
+ },
+ ["vowel_modifier"]={
+ [2304]=true,
+ [2305]=true,
+ [2306]=true,
+ [2307]=true,
+ [3330]=true,
+ [3331]=true,
+ [43232]=true,
+ [43233]=true,
+ [43234]=true,
+ [43235]=true,
+ [43236]=true,
+ [43237]=true,
+ [43238]=true,
+ [43239]=true,
+ [43240]=true,
+ [43241]=true,
+ [43242]=true,
+ [43243]=true,
+ [43244]=true,
+ [43245]=true,
+ [43246]=true,
+ [43247]=true,
+ [43248]=true,
+ [43249]=true,
+ },
+}
end -- closure
@@ -8167,12 +9246,22 @@ function constructors.scale(tfmdata,specification)
else
target.slant=0
end
+ local mode=parameters.mode or 0
+ if mode~=0 then
+ target.mode=mode
+ end
+ local width=parameters.width or 0
+ if width~=0 then
+ target.width=width
+ end
targetparameters.factor=delta
targetparameters.hfactor=hdelta
targetparameters.vfactor=vdelta
targetparameters.size=scaledpoints
targetparameters.units=units
targetparameters.scaledpoints=askedscaledpoints
+ targetparameters.mode=mode
+ targetparameters.width=width
local isvirtual=properties.virtualized or tfmdata.type=="virtual"
local hasquality=parameters.expansion or parameters.protrusion
local hasitalics=properties.hasitalics
@@ -8508,7 +9597,9 @@ function constructors.scale(tfmdata,specification)
constructors.aftercopyingcharacters(target,tfmdata)
constructors.trytosharefont(target,tfmdata)
local vfonts=target.fonts
- if isvirtual then
+if isvirtual or target.type=="virtual" or properties.virtualized then
+ properties.virtualized=true
+target.type="virtual"
if not vfonts or #vfonts==0 then
target.fonts={ { id=0 } }
end
@@ -8545,6 +9636,12 @@ function constructors.finalize(tfmdata)
if not parameters.size then
parameters.size=tfmdata.size
end
+ if not parameters.mode then
+ parameters.mode=0
+ end
+ if not parameters.width then
+ parameters.width=0
+ end
if not parameters.extendfactor then
parameters.extendfactor=tfmdata.extend or 0
end
@@ -8627,6 +9724,8 @@ function constructors.finalize(tfmdata)
tfmdata.step=nil
tfmdata.extend=nil
tfmdata.slant=nil
+ tfmdata.mode=nil
+ tfmdata.width=nil
tfmdata.units=nil
tfmdata.units_per_em=nil
tfmdata.cache=nil
@@ -23720,7 +24819,7 @@ function handlers.gpos_pair(head,start,dataset,sequence,kerns,rlmode,skiphash,st
elseif b then
local x,y,w,h=setposition(2,snext,factor,rlmode,b,injection)
if trace_kerns then
- local startchar=getchar(snext)
+ local startchar=getchar(start)
logprocess("%s: shifting second of pair %s and %s by xy (%p,%p) and wh (%p,%p) as %s",pref(dataset,sequence),gref(startchar),gref(nextchar),x,y,w,h,injection or "injections")
end
start=snext
@@ -26618,7 +27717,7 @@ if not modules then modules={} end modules ['font-osd']={
}
local insert,imerge,copy=table.insert,table.imerge,table.copy
local next,type=next,type
-local report_devanagari=logs.reporter("otf","devanagari")
+local report=logs.reporter("otf","devanagari")
fonts=fonts or {}
fonts.analyzers=fonts.analyzers or {}
fonts.analyzers.methods=fonts.analyzers.methods or { node={ otf={} } }
@@ -26655,6 +27754,9 @@ local fontdata=fonts.hashes.identifiers
local a_state=attributes.private('state')
local a_syllabe=attributes.private('syllabe')
local dotted_circle=0x25CC
+local c_nbsp=0x00A0
+local c_zwnj=0x200C
+local c_zwj=0x200D
local states=fonts.analyzers.states
local s_rphf=states.rphf
local s_half=states.half
@@ -26683,199 +27785,144 @@ end
local function processcharacters(head,font)
return tonut(xprocesscharacters(tonode(head)))
end
-local consonant={
- [0x0915]=true,[0x0916]=true,[0x0917]=true,[0x0918]=true,
- [0x0919]=true,[0x091A]=true,[0x091B]=true,[0x091C]=true,
- [0x091D]=true,[0x091E]=true,[0x091F]=true,[0x0920]=true,
- [0x0921]=true,[0x0922]=true,[0x0923]=true,[0x0924]=true,
- [0x0925]=true,[0x0926]=true,[0x0927]=true,[0x0928]=true,
- [0x0929]=true,[0x092A]=true,[0x092B]=true,[0x092C]=true,
- [0x092D]=true,[0x092E]=true,[0x092F]=true,[0x0930]=true,
- [0x0931]=true,[0x0932]=true,[0x0933]=true,[0x0934]=true,
- [0x0935]=true,[0x0936]=true,[0x0937]=true,[0x0938]=true,
- [0x0939]=true,[0x0958]=true,[0x0959]=true,[0x095A]=true,
- [0x095B]=true,[0x095C]=true,[0x095D]=true,[0x095E]=true,
- [0x095F]=true,[0x0979]=true,[0x097A]=true,
- [0x0C95]=true,[0x0C96]=true,[0x0C97]=true,[0x0C98]=true,
- [0x0C99]=true,[0x0C9A]=true,[0x0C9B]=true,[0x0C9C]=true,
- [0x0C9D]=true,[0x0C9E]=true,[0x0C9F]=true,[0x0CA0]=true,
- [0x0CA1]=true,[0x0CA2]=true,[0x0CA3]=true,[0x0CA4]=true,
- [0x0CA5]=true,[0x0CA6]=true,[0x0CA7]=true,[0x0CA8]=true,
- [0x0CA9]=true,[0x0CAA]=true,[0x0CAB]=true,[0x0CAC]=true,
- [0x0CAD]=true,[0x0CAE]=true,[0x0CAF]=true,[0x0CB0]=true,
- [0x0CB1]=true,[0x0CB2]=true,[0x0CB3]=true,[0x0CB4]=true,
- [0x0CB5]=true,[0x0CB6]=true,[0x0CB7]=true,[0x0CB8]=true,
- [0x0CB9]=true,
- [0x0CDE]=true,
- [0x0D15]=true,[0x0D16]=true,[0x0D17]=true,[0x0D18]=true,
- [0x0D19]=true,[0x0D1A]=true,[0x0D1B]=true,[0x0D1C]=true,
- [0x0D1D]=true,[0x0D1E]=true,[0x0D1F]=true,[0x0D20]=true,
- [0x0D21]=true,[0x0D22]=true,[0x0D23]=true,[0x0D24]=true,
- [0x0D25]=true,[0x0D26]=true,[0x0D27]=true,[0x0D28]=true,
- [0x0D29]=true,[0x0D2A]=true,[0x0D2B]=true,[0x0D2C]=true,
- [0x0D2D]=true,[0x0D2E]=true,[0x0D2F]=true,[0x0D30]=true,
- [0x0D31]=true,[0x0D32]=true,[0x0D33]=true,[0x0D34]=true,
- [0x0D35]=true,[0x0D36]=true,[0x0D37]=true,[0x0D38]=true,
- [0x0D39]=true,[0x0D3A]=true,
-}
-local independent_vowel={
- [0x0904]=true,[0x0905]=true,[0x0906]=true,[0x0907]=true,
- [0x0908]=true,[0x0909]=true,[0x090A]=true,[0x090B]=true,
- [0x090C]=true,[0x090D]=true,[0x090E]=true,[0x090F]=true,
- [0x0910]=true,[0x0911]=true,[0x0912]=true,[0x0913]=true,
- [0x0914]=true,[0x0960]=true,[0x0961]=true,[0x0972]=true,
- [0x0973]=true,[0x0974]=true,[0x0975]=true,[0x0976]=true,
- [0x0977]=true,
- [0x0C85]=true,[0x0C86]=true,[0x0C87]=true,[0x0C88]=true,
- [0x0C89]=true,[0x0C8A]=true,[0x0C8B]=true,[0x0C8C]=true,
- [0x0C8D]=true,[0x0C8E]=true,[0x0C8F]=true,[0x0C90]=true,
- [0x0C91]=true,[0x0C92]=true,[0x0C93]=true,[0x0C94]=true,
- [0x0D05]=true,[0x0D06]=true,[0x0D07]=true,[0x0D08]=true,
- [0x0D09]=true,[0x0D0A]=true,[0x0D0B]=true,[0x0D0C]=true,
- [0x0D0E]=true,[0x0D0F]=true,[0x0D10]=true,[0x0D12]=true,
- [0x0D13]=true,[0x0D14]=true,
-}
-local dependent_vowel={
- [0x093A]=true,[0x093B]=true,[0x093E]=true,[0x093F]=true,
- [0x0940]=true,[0x0941]=true,[0x0942]=true,[0x0943]=true,
- [0x0944]=true,[0x0945]=true,[0x0946]=true,[0x0947]=true,
- [0x0948]=true,[0x0949]=true,[0x094A]=true,[0x094B]=true,
- [0x094C]=true,[0x094E]=true,[0x094F]=true,[0x0955]=true,
- [0x0956]=true,[0x0957]=true,[0x0962]=true,[0x0963]=true,
- [0x0CBE]=true,[0x0CBF]=true,[0x0CC0]=true,[0x0CC1]=true,
- [0x0CC2]=true,[0x0CC3]=true,[0x0CC4]=true,[0x0CC5]=true,
- [0x0CC6]=true,[0x0CC7]=true,[0x0CC8]=true,[0x0CC9]=true,
- [0x0CCA]=true,[0x0CCB]=true,[0x0CCC]=true,
- [0x0D3E]=true,[0x0D3F]=true,[0x0D40]=true,[0x0D41]=true,
- [0x0D42]=true,[0x0D43]=true,[0x0D44]=true,[0x0D46]=true,
- [0x0D47]=true,[0x0D48]=true,[0x0D4A]=true,[0x0D4B]=true,
- [0x0D4C]=true,[0x0D57]=true,
-}
-local vowel_modifier={
- [0x0900]=true,[0x0901]=true,[0x0902]=true,[0x0903]=true,
- [0xA8E0]=true,[0xA8E1]=true,[0xA8E2]=true,[0xA8E3]=true,
- [0xA8E4]=true,[0xA8E5]=true,[0xA8E6]=true,[0xA8E7]=true,
- [0xA8E8]=true,[0xA8E9]=true,[0xA8EA]=true,[0xA8EB]=true,
- [0xA8EC]=true,[0xA8ED]=true,[0xA8EE]=true,[0xA8EF]=true,
- [0xA8F0]=true,[0xA8F1]=true,
- [0x0D02]=true,[0x0D03]=true,
-}
-local stress_tone_mark={
- [0x0951]=true,[0x0952]=true,[0x0953]=true,[0x0954]=true,
- [0x0CCD]=true,
- [0x0D4D]=true,
-}
-local nukta={
- [0x093C]=true,
- [0x0CBC]=true,
-}
-local halant={
- [0x094D]=true,
- [0x0CCD]=true,
- [0x0D4D]=true,
-}
-local ra={
- [0x0930]=true,
- [0x0CB0]=true,
- [0x0D30]=true,
-}
-local c_anudatta=0x0952
-local c_nbsp=0x00A0
-local c_zwnj=0x200C
-local c_zwj=0x200D
+local indicgroups=characters and characters.indicgroups
+if not indicgroups and characters then
+ local indic={
+ c={},
+ i={},
+ d={},
+ m={},
+ s={},
+ o={},
+ }
+ local indicmarks={
+ l={},
+ t={},
+ b={},
+ r={},
+ s={},
+ }
+ local indicclasses={
+ nukta={},
+ halant={},
+ ra={},
+ anudatta={},
+ }
+ local indicorders={
+ bp={},
+ ap={},
+ bs={},
+ as={},
+ bh={},
+ ah={},
+ bm={},
+ am={},
+ }
+ for k,v in next,characters.data do
+ local i=v.indic
+ if i then
+ indic[i][k]=true
+ i=v.indicmark
+ if i then
+ if i=="s" then
+ local s=v.specials
+ indicmarks[i][k]={ s[2],s[3] }
+ else
+ indicmarks[i][k]=true
+ end
+ end
+ i=v.indicclass
+ if i then
+ indicclasses[i][k]=true
+ end
+ i=v.indicorder
+ if i then
+ indicorders[i][k]=true
+ end
+ end
+ end
+ indicgroups={
+ consonant=indic.c,
+ independent_vowel=indic.i,
+ dependent_vowel=indic.d,
+ vowel_modifier=indic.m,
+ stress_tone_mark=indic.s,
+ pre_mark=indicmarks.l,
+ above_mark=indicmarks.t,
+ below_mark=indicmarks.b,
+ post_mark=indicmarks.r,
+ twopart_mark=indicmarks.s,
+ nukta=indicclasses.nukta,
+ halant=indicclasses.halant,
+ ra=indicclasses.ra,
+ anudatta=indicclasses.anudatta,
+ before_postscript=indicorders.bp,
+ after_postscript=indicorders.ap,
+ before_half=indicorders.bh,
+ after_half=indicorders.ah,
+ before_subscript=indicorders.bs,
+ after_subscript=indicorders.as,
+ before_main=indicorders.bm,
+ after_main=indicorders.am,
+ }
+ indic=nil
+ indicmarks=nil
+ indicclasses=nil
+ indicorders=nil
+ characters.indicgroups=indicgroups
+else
+ indicgroups=table.setmetatableindex("table")
+end
+local consonant=indicgroups.consonant
+local independent_vowel=indicgroups.independent_vowel
+local dependent_vowel=indicgroups.dependent_vowel
+local vowel_modifier=indicgroups.vowel_modifier
+local stress_tone_mark=indicgroups.stress_tone_mark
+local pre_mark=indicgroups.pre_mark
+local above_mark=indicgroups.above_mark
+local below_mark=indicgroups.below_mark
+local post_mark=indicgroups.post_mark
+local twopart_mark=indicgroups.twopart_mark
+local nukta=indicgroups.nukta
+local halant=indicgroups.halant
+local ra=indicgroups.ra
+local anudatta=indicgroups.anudatta
+local before_postscript=indicgroups.before_postscript
+local after_postscript=indicgroups.after_postscript
+local before_half=indicgroups.before_half
+local after_half=indicgroups.after_half
+local before_subscript=indicgroups.before_subscript
+local after_subscript=indicgroups.after_subscript
+local before_main=indicgroups.before_main
+local after_main=indicgroups.after_main
+local mark_four=table.merged (
+ pre_mark,
+ above_mark,
+ below_mark,
+ post_mark
+)
+local mark_above_below_post=table.merged (
+ above_mark,
+ below_mark,
+ post_mark
+)
local zw_char={
- [0x200C]=true,
- [0x200D]=true,
-}
-local pre_mark={
- [0x093F]=true,[0x094E]=true,
- [0x0D46]=true,[0x0D47]=true,[0x0D48]=true,
-}
-local above_mark={
- [0x0900]=true,[0x0901]=true,[0x0902]=true,[0x093A]=true,
- [0x0945]=true,[0x0946]=true,[0x0947]=true,[0x0948]=true,
- [0x0951]=true,[0x0953]=true,[0x0954]=true,[0x0955]=true,
- [0xA8E0]=true,[0xA8E1]=true,[0xA8E2]=true,[0xA8E3]=true,
- [0xA8E4]=true,[0xA8E5]=true,[0xA8E6]=true,[0xA8E7]=true,
- [0xA8E8]=true,[0xA8E9]=true,[0xA8EA]=true,[0xA8EB]=true,
- [0xA8EC]=true,[0xA8ED]=true,[0xA8EE]=true,[0xA8EF]=true,
- [0xA8F0]=true,[0xA8F1]=true,
- [0x0D4E]=true,
-}
-local below_mark={
- [0x093C]=true,[0x0941]=true,[0x0942]=true,[0x0943]=true,
- [0x0944]=true,[0x094D]=true,[0x0952]=true,[0x0956]=true,
- [0x0957]=true,[0x0962]=true,[0x0963]=true,
-}
-local post_mark={
- [0x0903]=true,[0x093B]=true,[0x093E]=true,[0x0940]=true,
- [0x0949]=true,[0x094A]=true,[0x094B]=true,[0x094C]=true,
- [0x094F]=true,
-}
-local twopart_mark={
- [0x0D4A]={ 0x0D46,0x0D3E,},
- [0x0D4B]={ 0x0D47,0x0D3E,},
- [0x0D4C]={ 0x0D46,0x0D57,},
-}
-local mark_four={}
-for k,v in next,pre_mark do mark_four[k]=pre_mark end
-for k,v in next,above_mark do mark_four[k]=above_mark end
-for k,v in next,below_mark do mark_four[k]=below_mark end
-for k,v in next,post_mark do mark_four[k]=post_mark end
-local mark_above_below_post={}
-for k,v in next,above_mark do mark_above_below_post[k]=above_mark end
-for k,v in next,below_mark do mark_above_below_post[k]=below_mark end
-for k,v in next,post_mark do mark_above_below_post[k]=post_mark end
-local reorder_class={
- [0x0930]="before postscript",
- [0x093F]="before half",
- [0x0940]="after subscript",
- [0x0941]="after subscript",
- [0x0942]="after subscript",
- [0x0943]="after subscript",
- [0x0944]="after subscript",
- [0x0945]="after subscript",
- [0x0946]="after subscript",
- [0x0947]="after subscript",
- [0x0948]="after subscript",
- [0x0949]="after subscript",
- [0x094A]="after subscript",
- [0x094B]="after subscript",
- [0x094C]="after subscript",
- [0x0962]="after subscript",
- [0x0963]="after subscript",
- [0x093E]="after subscript",
- [0x0CB0]="after postscript",
- [0x0CBF]="before subscript",
- [0x0CC6]="before subscript",
- [0x0CCC]="before subscript",
- [0x0CBE]="before subscript",
- [0x0CE2]="before subscript",
- [0x0CE3]="before subscript",
- [0x0CC1]="before subscript",
- [0x0CC2]="before subscript",
- [0x0CC3]="after subscript",
- [0x0CC4]="after subscript",
- [0x0CD5]="after subscript",
- [0x0CD6]="after subscript",
+ [c_zwnj]=true,
+ [c_zwj ]=true,
}
local dflt_true={
dflt=true
}
-local dev2_defaults={
+local two_defaults={
dev2=dflt_true,
}
-local deva_defaults={
+local one_defaults={
dev2=dflt_true,
deva=dflt_true,
}
local false_flags={ false,false,false,false }
-local both_joiners_true={
- [0x200C]=true,
- [0x200D]=true,
-}
local sequence_reorder_matras={
- features={ dv01=dev2_defaults },
+ features={ dv01=two_defaults },
flags=false_flags,
name="dv01_reorder_matras",
order={ "dv01" },
@@ -26888,7 +27935,7 @@ local sequence_reorder_matras={
}
}
local sequence_reorder_reph={
- features={ dv02=dev2_defaults },
+ features={ dv02=two_defaults },
flags=false_flags,
name="dv02_reorder_reph",
order={ "dv02" },
@@ -26901,7 +27948,7 @@ local sequence_reorder_reph={
}
}
local sequence_reorder_pre_base_reordering_consonants={
- features={ dv03=dev2_defaults },
+ features={ dv03=two_defaults },
flags=false_flags,
name="dv03_reorder_pre_base_reordering_consonants",
order={ "dv03" },
@@ -26914,7 +27961,7 @@ local sequence_reorder_pre_base_reordering_consonants={
}
}
local sequence_remove_joiners={
- features={ dv04=deva_defaults },
+ features={ dv04=one_defaults },
flags=false_flags,
name="dv04_remove_joiners",
order={ "dv04" },
@@ -26922,40 +27969,73 @@ local sequence_remove_joiners={
nofsteps=1,
steps={
{
- coverage=both_joiners_true,
+ coverage=zw_char,
},
}
}
local basic_shaping_forms={
- nukt=true,
+ init=true,
+ abvs=true,
akhn=true,
- rphf=true,
- pref=true,
- rkrf=true,
blwf=true,
+ calt=true,
+ cjct=true,
half=true,
+ haln=true,
+ nukt=true,
+ pref=true,
+ pres=true,
pstf=true,
+ psts=true,
+ rkrf=true,
+ rphf=true,
vatu=true,
- cjct=true,
}
local valid={
+ abvs=true,
akhn=true,
- rphf=true,
- pref=true,
- half=true,
blwf=true,
+ calt=true,
+ cjct=true,
+ half=true,
+ haln=true,
+ nukt=true,
+ pref=true,
+ pres=true,
pstf=true,
+ psts=true,
+ rkrf=true,
+ rphf=true,
+ vatu=true,
pres=true,
+ abvs=true,
blws=true,
psts=true,
+ haln=true,
+ calt=true,
}
+local scripts={}
+local scripts_one={ "deva","mlym","beng","gujr","guru","knda","orya","taml","telu" }
+local scripts_two={ "dev2","mlm2","bng2","gjr2","gur2","knd2","ory2","tml2","tel2" }
+local nofscripts=#scripts_one
+for i=1,nofscripts do
+ local one=scripts_one[i]
+ local two=scripts_two[i]
+ scripts[one]=true
+ scripts[two]=true
+ two_defaults[one]=dflt_true
+ one_defaults[one]=dflt_true
+ one_defaults[two]=dflt_true
+end
+local function valid_one(s) for i=1,nofscripts do if s[scripts_one[i]] then return true end end end
+local function valid_two(s) for i=1,nofscripts do if s[scripts_two[i]] then return true end end end
local function initializedevanagi(tfmdata)
local script,language=otf.scriptandlanguage(tfmdata,attr)
- if script=="deva" or script=="dev2" or script=="mlym" or script=="mlm2" then
+ if scripts[script] then
local resources=tfmdata.resources
local devanagari=resources.devanagari
if not devanagari then
- report_devanagari("adding devanagari features to font")
+ report("adding devanagari features to font")
local gsubfeatures=resources.features.gsub
local sequences=resources.sequences
local sharedfeatures=tfmdata.shared.features
@@ -26971,10 +28051,10 @@ local function initializedevanagi(tfmdata)
end
end
local insertindex=lastmatch+1
- gsubfeatures["dv01"]=dev2_defaults
- gsubfeatures["dv02"]=dev2_defaults
- gsubfeatures["dv03"]=dev2_defaults
- gsubfeatures["dv04"]=deva_defaults
+ gsubfeatures["dv01"]=two_defaults
+ gsubfeatures["dv02"]=two_defaults
+ gsubfeatures["dv03"]=two_defaults
+ gsubfeatures["dv04"]=one_defaults
local reorder_pre_base_reordering_consonants=copy(sequence_reorder_pre_base_reordering_consonants)
local reorder_reph=copy(sequence_reorder_reph)
local reorder_matras=copy(sequence_reorder_matras)
@@ -27022,8 +28102,8 @@ local function initializedevanagi(tfmdata)
end
end
end
- for kind,spec in next,features do
- if spec.dev2 and valid[kind] then
+ for kind,spec in next,features do
+ if valid[kind] and valid_two(spec)then
for i=1,nofsteps do
local step=steps[i]
local coverage=step.coverage
@@ -27047,7 +28127,9 @@ local function initializedevanagi(tfmdata)
end
end
end
- seqsubset[#seqsubset+1]={ kind,coverage,reph }
+if reph then
+ seqsubset[#seqsubset+1]={ kind,coverage,reph }
+end
end
end
end
@@ -27092,8 +28174,14 @@ local function initializedevanagi(tfmdata)
sharedfeatures["pstf"]=true
sharedfeatures["pref"]=true
sharedfeatures["dv03"]=true
- gsubfeatures ["dv03"]=dev2_defaults
+ gsubfeatures ["dv03"]=two_defaults
insert(sequences,insertindex,sequence_reorder_pre_base_reordering_consonants)
+ elseif script=="taml" then
+ sharedfeatures["dv04"]=true
+sharedfeatures["pstf"]=true
+ elseif script=="tml2" then
+ else
+ report("todo: enable the right features for script %a",script)
end
end
end
@@ -27106,7 +28194,7 @@ registerotffeature {
node=initializedevanagi,
},
}
-local function deva_initialize(font,attr)
+local function initialize_one(font,attr)
local tfmdata=fontdata[font]
local datasets=otf.dataset(tfmdata,font,attr)
local devanagaridata=datasets.devanagari
@@ -27134,8 +28222,8 @@ local function deva_initialize(font,attr)
end
return devanagaridata.reph,devanagaridata.vattu,devanagaridata.blwfcache
end
-local function deva_reorder(head,start,stop,font,attr,nbspaces)
- local reph,vattu,blwfcache=deva_initialize(font,attr)
+local function reorder_one(head,start,stop,font,attr,nbspaces)
+ local reph,vattu,blwfcache=initialize_one(font,attr)
local current=start
local n=getnext(start)
local base=nil
@@ -27166,40 +28254,40 @@ local function deva_reorder(head,start,stop,font,attr,nbspaces)
lastcons=current
current=getnext(current)
if current~=stop then
- if nukta[getchar(current)] then
+ local char=getchar(current)
+ if nukta[char] then
current=getnext(current)
+ char=getchar(current)
end
- if getchar(current)==c_zwj then
- if current~=stop then
- local next=getnext(current)
- if next~=stop and halant[getchar(next)] then
- current=next
- next=getnext(current)
- local tmp=next and getnext(next) or nil
- local changestop=next==stop
- local tempcurrent=copy_node(next)
- copyinjection(tempcurrent,next)
- local nextcurrent=copy_node(current)
- copyinjection(nextcurrent,current)
- setlink(tempcurrent,nextcurrent)
- setprop(tempcurrent,a_state,s_blwf)
- tempcurrent=processcharacters(tempcurrent,font)
- setprop(tempcurrent,a_state,unsetvalue)
- if getchar(next)==getchar(tempcurrent) then
- flush_list(tempcurrent)
- local n=copy_node(current)
- copyinjection(n,current)
- setchar(current,dotted_circle)
- head=insert_node_after(head,current,n)
- else
- setchar(current,getchar(tempcurrent))
- local freenode=getnext(current)
- setlink(current,tmp)
- flush_node(freenode)
- flush_list(tempcurrent)
- if changestop then
- stop=current
- end
+ if char==c_zwj and current~=stop then
+ local next=getnext(current)
+ if next~=stop and halant[getchar(next)] then
+ current=next
+ next=getnext(current)
+ local tmp=next and getnext(next) or nil
+ local changestop=next==stop
+ local tempcurrent=copy_node(next)
+ copyinjection(tempcurrent,next)
+ local nextcurrent=copy_node(current)
+ copyinjection(nextcurrent,current)
+ setlink(tempcurrent,nextcurrent)
+ setprop(tempcurrent,a_state,s_blwf)
+ tempcurrent=processcharacters(tempcurrent,font)
+ setprop(tempcurrent,a_state,unsetvalue)
+ if getchar(next)==getchar(tempcurrent) then
+ flush_list(tempcurrent)
+ local n=copy_node(current)
+ copyinjection(n,current)
+ setchar(current,dotted_circle)
+ head=insert_node_after(head,current,n)
+ else
+ setchar(current,getchar(tempcurrent))
+ local freenode=getnext(current)
+ setlink(current,tmp)
+ flush_node(freenode)
+ flush_list(tempcurrent)
+ if changestop then
+ stop=current
end
end
end
@@ -27472,9 +28560,11 @@ function handlers.devanagari_reorder_reph(head,start)
local startprev=nil
local startfont=getfont(start)
local startattr=getprop(start,a_syllabe)
+ ::step_1::
+ ::step_2::
while current do
local char=ischar(current,startfont)
- if char and getprop(current,a_syllabe)==startattr then
+ if char and getprop(current,a_syllabe)==startattr then
if halant[char] and not getprop(current,a_state) then
local next=getnext(current)
if next then
@@ -27497,11 +28587,13 @@ function handlers.devanagari_reorder_reph(head,start)
break
end
end
+ ::step_3::
+ ::step_4::
if not startnext then
current=getnext(start)
while current do
local char=ischar(current,startfont)
- if char and getprop(current,a_syllabe)==startattr then
+ if char and getprop(current,a_syllabe)==startattr then
if getprop(current,a_state)==s_pstf then
startnext=getnext(start)
head=remove_node(head,start)
@@ -27517,13 +28609,14 @@ function handlers.devanagari_reorder_reph(head,start)
end
end
end
+ ::step_5::
if not startnext then
current=getnext(start)
local c=nil
while current do
local char=ischar(current,startfont)
- if char and getprop(current,a_syllabe)==startattr then
- if not c and mark_above_below_post[char] and reorder_class[char]~="after subscript" then
+ if char and getprop(current,a_syllabe)==startattr then
+ if not c and mark_above_below_post[char] and after_subscript[char] then
c=current
end
current=getnext(current)
@@ -27540,12 +28633,13 @@ function handlers.devanagari_reorder_reph(head,start)
startattr=getprop(start,a_syllabe)
end
end
+ ::step_6::
if not startnext then
current=start
local next=getnext(current)
while next do
local nextchar=ischar(next,startfont)
- if nextchar and getprop(next,a_syllabe)==startattr then
+ if nextchar and getprop(next,a_syllabe)==startattr then
current=next
next=getnext(current)
else
@@ -27637,12 +28731,12 @@ function handlers.devanagari_remove_joiners(head,start,kind,lookupname,replaceme
setnext(prev)
end
if head==start then
- head=stop
+ head=stop
end
flush_list(start)
return head,stop,true
end
-local function dev2_initialize(font,attr)
+local function initialize_two(font,attr)
local devanagari=fontdata[font].resources.devanagari
if devanagari then
return devanagari.seqsubset or {},devanagari.reorderreph or {}
@@ -27650,8 +28744,8 @@ local function dev2_initialize(font,attr)
return {},{}
end
end
-local function dev2_reorder(head,start,stop,font,attr,nbspaces)
- local seqsubset,reorderreph=dev2_initialize(font,attr)
+local function reorder_two(head,start,stop,font,attr,nbspaces)
+ local seqsubset,reorderreph=initialize_two(font,attr)
local reph=false
local halfpos=nil
local basepos=nil
@@ -27676,8 +28770,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces)
if found[n] then
local afternext=next~=stop and getnext(next)
if afternext and zw_char[getchar(afternext)] then
- current=next
- current=getnext(current)
+ current=afternext
elseif current==start then
setprop(current,a_state,s_rphf)
current=next
@@ -27814,7 +28907,7 @@ local function dev2_reorder(head,start,stop,font,attr,nbspaces)
if halant[getchar(current)] then
setnext(getnext(current),tmp)
local nc=copy_node(current)
- copyinjection(nc,current)
+ copyinjection(nc,current)
setchar(current,dotted_circle)
head=insert_node_after(head,current,nc)
else
@@ -28185,7 +29278,7 @@ local function analyze_next_chars_two(c,font)
if not v then
return c
end
- if v==c_anudatta then
+ if anudatta[v] then
c=n
n=getnext(c)
if not n then
@@ -28280,31 +29373,32 @@ local function analyze_next_chars_two(c,font)
return c
end
end
-local function inject_syntax_error(head,current,mark)
+local show_syntax_errors=false
+local function inject_syntax_error(head,current,char)
local signal=copy_node(current)
- copyinjection(signal,current)
- if mark==pre_mark then
+ copyinjection(signal,current)
+ if pre_mark[char] then
setchar(signal,dotted_circle)
else
setchar(current,dotted_circle)
end
return insert_node_after(head,current,signal)
end
-function methods.deva(head,font,attr)
+local function method_one(head,font,attr)
head=tonut(head)
local current=head
local start=true
local done=false
local nbspaces=0
while current do
- local char=ischar(current,font)
+ local char=ischar(current,font)
if char then
done=true
local syllablestart=current
local syllableend=nil
local c=current
local n=getnext(c)
- local first=char
+ local first=char
if n and ra[first] then
local second=ischar(n,font)
if second and halant[second] then
@@ -28332,10 +29426,10 @@ function methods.deva(head,font,attr)
end
end
if standalone then
- local syllableend=analyze_next_chars_one(c,font,2)
- current=getnext(syllableend)
+ local syllableend=analyze_next_chars_one(c,font,2)
+ current=getnext(syllableend)
if syllablestart~=syllableend then
- head,current,nbspaces=deva_reorder(head,syllablestart,syllableend,font,attr,nbspaces)
+ head,current,nbspaces=reorder_one(head,syllablestart,syllableend,font,attr,nbspaces)
current=getnext(current)
end
else
@@ -28432,7 +29526,7 @@ function methods.deva(head,font,attr)
end
end
if syllablestart~=syllableend then
- head,current,nbspaces=deva_reorder(head,syllablestart,syllableend,font,attr,nbspaces)
+ head,current,nbspaces=reorder_one(head,syllablestart,syllableend,font,attr,nbspaces)
current=getnext(current)
end
elseif independent_vowel[char] then
@@ -28453,9 +29547,11 @@ function methods.deva(head,font,attr)
end
end
else
- local mark=mark_four[char]
- if mark then
- head,current=inject_syntax_error(head,current,mark)
+ if show_syntax_errors then
+ local mark=mark_four[char]
+ if mark then
+ head,current=inject_syntax_error(head,current,char)
+ end
end
current=getnext(current)
end
@@ -28468,10 +29564,9 @@ function methods.deva(head,font,attr)
if nbspaces>0 then
head=replace_all_nbsp(head)
end
- head=tonode(head)
- return head,done
+ return tonode(head),done
end
-function methods.dev2(head,font,attr)
+local function method_two(head,font,attr)
head=tonut(head)
local current=head
local start=true
@@ -28495,7 +29590,7 @@ function methods.dev2(head,font,attr)
local nextnextchar=ischar(n,font)
if nextnextchar then
c=n
- char=nextnextchar
+ char=nextnextchar
end
end
end
@@ -28534,14 +29629,14 @@ function methods.dev2(head,font,attr)
end
end
if syllableend and syllablestart~=syllableend then
- head,current,nbspaces=dev2_reorder(head,syllablestart,syllableend,font,attr,nbspaces)
+ head,current,nbspaces=reorder_two(head,syllablestart,syllableend,font,attr,nbspaces)
end
- if not syllableend then
+ if not syllableend and show_syntax_errors then
local char=ischar(current,font)
if char and not getprop(current,a_state) then
local mark=mark_four[char]
if mark then
- head,current=inject_syntax_error(head,current,mark)
+ head,current=inject_syntax_error(head,current,char)
end
end
end
@@ -28551,11 +29646,12 @@ function methods.dev2(head,font,attr)
if nbspaces>0 then
head=replace_all_nbsp(head)
end
- head=tonode(head)
- return head,done
+ return tonode(head),done
+end
+for i=1,nofscripts do
+ methods[scripts_one[i]]=method_one
+ methods[scripts_two[i]]=method_two
end
-methods.mlym=methods.deva
-methods.mlm2=methods.dev2
end -- closure
diff --git a/tex/generic/context/luatex/luatex-fonts.lua b/tex/generic/context/luatex/luatex-fonts.lua
index ef3bb74dc..5806debd2 100644
--- a/tex/generic/context/luatex/luatex-fonts.lua
+++ b/tex/generic/context/luatex/luatex-fonts.lua
@@ -226,7 +226,7 @@ if non_generic_context.luatex_fonts.skip_loading ~= true then
loadmodule('font-map.lua') -- for loading lum file (will be stripped)
-- We use a bit simpler database because using the context one demands loading more helper
- -- code and although it is more flexible (more wauys to resolve and so) it will never be
+ -- code and although it is more flexible (more ways to resolve and so) it will never be
-- uses in plain/latex anyway, so let's stick to a simple approach.
loadmodule('luatex-fonts-syn.lua')