summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2013-04-29 20:30:00 +0200
committerHans Hagen <pragma@wxs.nl>2013-04-29 20:30:00 +0200
commit06db4d2bb4c188d9c745f0c1dea839f9241655a7 (patch)
tree1b240edeab858171f5e61fd7bbeaabfb837d3f7b
parent400a3bb7075143299daab377ce433c5c28390ddb (diff)
downloadcontext-06db4d2bb4c188d9c745f0c1dea839f9241655a7.tar.gz
beta 2013.04.29 20:30
-rw-r--r--context/data/scite/lexers/data/scite-context-data-context.lua2
-rw-r--r--context/data/scite/scite-context-data-context.properties209
-rw-r--r--scripts/context/lua/mtx-plain.lua8
-rw-r--r--scripts/context/ruby/base/switch.rb2
-rw-r--r--scripts/context/ruby/base/tex.rb2
-rw-r--r--tex/context/base/context-version.pdfbin4134 -> 4130 bytes
-rw-r--r--tex/context/base/context-version.pngbin40110 -> 40403 bytes
-rw-r--r--tex/context/base/math-ini.lua11
-rw-r--r--tex/context/base/math-map.lua2
-rw-r--r--tex/context/base/mult-low.lua1
-rw-r--r--tex/context/base/status-files.pdfbin24736 -> 24725 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin211419 -> 211561 bytes
-rw-r--r--tex/context/base/syst-ini.mkiv251
-rw-r--r--tex/generic/context/luatex/luatex-basics-gen.lua2
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua4
-rw-r--r--tex/generic/context/luatex/luatex-math.lua53
-rw-r--r--tex/generic/context/luatex/luatex-math.tex1841
-rw-r--r--tex/generic/context/luatex/luatex-plain.tex1
-rw-r--r--tex/generic/context/luatex/luatex-test.tex8
19 files changed, 2145 insertions, 252 deletions
diff --git a/context/data/scite/lexers/data/scite-context-data-context.lua b/context/data/scite/lexers/data/scite-context-data-context.lua
index fd64fe61e..08188f985 100644
--- a/context/data/scite/lexers/data/scite-context-data-context.lua
+++ b/context/data/scite/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", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "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", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "etexversion", "pdftexversion", "xetexversion", "xetexrevision", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "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", "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", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifmodeelse", "doifnotmode", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "setupdocument", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "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" },
- ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "doifelsecommandhandler", "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", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "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", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "scratchdimen", "globalscratchdimen", "scratchskip", "globalscratchskip", "scratchmuskip", "globalscratchmuskip", "scratchtoks", "globalscratchtoks", "scratchbox", "globalscratchbox", "availablehsize", "localhsize", "setlocalhsize", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "doifinset", "doifnotinset", "doifinsetelse", "doifnextcharelse", "doifnextoptionalelse", "doifnextbgroupelse", "doifnextparenthesiselse", "doiffastoptionalcheckelse", "doifundefinedelse", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifdimensionelse", "doifnumberelse", "doifnumber", "doifnotnumber", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifinstringelse", "doifassignmentelse", "docheckassignment", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "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", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant", "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", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "strut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "begstrut", "endstrut", "lineheight", "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", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expdoifelse", "expdoif", "expdoifnot", "expdoifcommonelse", "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", "carryoverpar", "Umathbotaccent" },
+ ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "doifelsecommandhandler", "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", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "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", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "scratchdimen", "globalscratchdimen", "scratchskip", "globalscratchskip", "scratchmuskip", "globalscratchmuskip", "scratchtoks", "globalscratchtoks", "scratchbox", "globalscratchbox", "availablehsize", "localhsize", "setlocalhsize", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "doifinset", "doifnotinset", "doifinsetelse", "doifnextcharelse", "doifnextoptionalelse", "doifnextbgroupelse", "doifnextparenthesiselse", "doiffastoptionalcheckelse", "doifundefinedelse", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifdimensionelse", "doifnumberelse", "doifnumber", "doifnotnumber", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifinstringelse", "doifassignmentelse", "docheckassignment", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "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", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant", "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", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "strut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "begstrut", "endstrut", "lineheight", "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", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expdoifelse", "expdoif", "expdoifnot", "expdoifcommonelse", "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", "carryoverpar", "Umathbotaccent" },
} \ No newline at end of file
diff --git a/context/data/scite/scite-context-data-context.properties b/context/data/scite/scite-context-data-context.properties
index 3792d4eeb..65e7887c6 100644
--- a/context/data/scite/scite-context-data-context.properties
+++ b/context/data/scite/scite-context-data-context.properties
@@ -71,108 +71,109 @@ setsystemmode resetsystemmode pushsystemmode popsystemmode booleanmodevalue \
newcount newdimen newskip newmuskip newbox \
newtoks newread newwrite newmarks newinsert \
newattribute newif newlanguage newfamily newfam \
-newhelp then firstargumentfalse firstargumenttrue secondargumentfalse \
-secondargumenttrue thirdargumentfalse thirdargumenttrue fourthargumentfalse fourthargumenttrue \
-fifthargumentfalse fifthsargumenttrue sixthargumentfalse sixtsargumenttrue doglobal \
-dodoglobal redoglobal resetglobal donothing dontcomplain \
-forgetall donetrue donefalse 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 ruledhskip \
-ruledvskip ruledkern ruledmskip ruledmkern ruledhglue \
-ruledvglue normalhglue normalvglue ruledpenalty filledhboxb \
-filledhboxr filledhboxg filledhboxc filledhboxm filledhboxy \
-filledhboxk scratchcounter globalscratchcounter scratchdimen globalscratchdimen \
-scratchskip globalscratchskip scratchmuskip globalscratchmuskip scratchtoks \
-globalscratchtoks scratchbox globalscratchbox availablehsize localhsize \
-setlocalhsize nextbox dowithnextbox dowithnextboxcs dowithnextboxcontent \
-dowithnextboxcontentcs scratchwidth scratchheight scratchdepth scratchoffset \
-scratchdistance scratchhsize scratchvsize scratchxoffset scratchyoffset \
-scratchhoffset scratchvoffset scratchxposition scratchyposition scratchtopoffset \
-scratchbottomoffset scratchleftoffset scratchrightoffset scratchcounterone scratchcountertwo \
-scratchcounterthree scratchdimenone scratchdimentwo scratchdimenthree scratchskipone \
-scratchskiptwo scratchskipthree scratchmuskipone scratchmuskiptwo scratchmuskipthree \
-scratchtoksone scratchtokstwo scratchtoksthree scratchboxone scratchboxtwo \
-scratchboxthree scratchnx scratchny scratchmx scratchmy \
-scratchunicode scratchleftskip scratchrightskip scratchtopskip scratchbottomskip \
-doif doifnot doifelse doifinset doifnotinset \
-doifinsetelse doifnextcharelse doifnextoptionalelse doifnextbgroupelse doifnextparenthesiselse \
-doiffastoptionalcheckelse doifundefinedelse doifdefinedelse doifundefined doifdefined \
-doifelsevalue doifvalue doifnotvalue doifnothing doifsomething \
-doifelsenothing doifsomethingelse doifvaluenothing doifvaluesomething doifelsevaluenothing \
-doifdimensionelse doifnumberelse doifnumber doifnotnumber doifcommonelse \
-doifcommon doifnotcommon doifinstring doifnotinstring doifinstringelse \
-doifassignmentelse docheckassignment tracingall tracingnone loggingall \
-removetoks appendtoks prependtoks appendtotoks prependtotoks \
-to endgraf endpar everyendpar reseteverypar \
-finishpar empty null space quad \
-enspace obeyspaces obeylines obeyedspace obeyedline \
-normalspace executeifdefined singleexpandafter doubleexpandafter tripleexpandafter \
-dontleavehmode removelastspace removeunwantedspaces keepunwantedspaces wait \
-writestatus define defineexpandable redefine setmeasure \
-setemeasure setgmeasure setxmeasure definemeasure freezemeasure \
-measure measured installcorenamespace getvalue 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 gobbleoneargument gobbletwoarguments gobblethreearguments gobblefourarguments \
-gobblefivearguments gobblesixarguments gobblesevenarguments gobbleeightarguments gobbleninearguments \
-gobbletenarguments gobbleoneoptional gobbletwooptionals gobblethreeoptionals gobblefouroptionals \
-gobblefiveoptionals dorecurse doloop exitloop dostepwiserecurse \
-recurselevel recursedepth dofastloopcs newconstant setnewconstant \
-newconditional settrue setfalse setconstant 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 \
-doiffirstcharelse startnointerference stopnointerference twodigits threedigits \
-strut setstrut strutbox strutht strutdp \
-strutwd struthtdp begstrut endstrut lineheight \
-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 uncramped cramped \
-triggermathstyle mathstylefont mathsmallstylefont mathstyleface mathsmallstyleface \
-mathstylecommand mathpalette mathstylehbox mathstylevbox mathstylevcenter \
-mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox setmathtextbox \
-triggerdisplaystyle triggertextstyle triggerscriptstyle triggerscriptscriptstyle triggeruncrampedstyle \
-triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle triggercrampedsmallstyle triggerbigstyle \
-triggeruncrampedbigstyle triggercrampedbigstyle luaexpr expdoifelse expdoif \
-expdoifnot expdoifcommonelse 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 carryoverpar Umathbotaccent
+newhelp then begcsname firstargumentfalse firstargumenttrue \
+secondargumentfalse secondargumenttrue thirdargumentfalse thirdargumenttrue fourthargumentfalse \
+fourthargumenttrue fifthargumentfalse fifthsargumenttrue sixthargumentfalse sixtsargumenttrue \
+doglobal dodoglobal redoglobal resetglobal donothing \
+dontcomplain forgetall donetrue donefalse 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 \
+ruledhskip ruledvskip ruledkern ruledmskip ruledmkern \
+ruledhglue ruledvglue normalhglue normalvglue ruledpenalty \
+filledhboxb filledhboxr filledhboxg filledhboxc filledhboxm \
+filledhboxy filledhboxk scratchcounter globalscratchcounter scratchdimen \
+globalscratchdimen scratchskip globalscratchskip scratchmuskip globalscratchmuskip \
+scratchtoks globalscratchtoks scratchbox globalscratchbox availablehsize \
+localhsize setlocalhsize nextbox dowithnextbox dowithnextboxcs \
+dowithnextboxcontent dowithnextboxcontentcs scratchwidth scratchheight scratchdepth \
+scratchoffset scratchdistance scratchhsize scratchvsize scratchxoffset \
+scratchyoffset scratchhoffset scratchvoffset scratchxposition scratchyposition \
+scratchtopoffset scratchbottomoffset scratchleftoffset scratchrightoffset scratchcounterone \
+scratchcountertwo scratchcounterthree scratchdimenone scratchdimentwo scratchdimenthree \
+scratchskipone scratchskiptwo scratchskipthree scratchmuskipone scratchmuskiptwo \
+scratchmuskipthree scratchtoksone scratchtokstwo scratchtoksthree scratchboxone \
+scratchboxtwo scratchboxthree scratchnx scratchny scratchmx \
+scratchmy scratchunicode scratchleftskip scratchrightskip scratchtopskip \
+scratchbottomskip doif doifnot doifelse doifinset \
+doifnotinset doifinsetelse doifnextcharelse doifnextoptionalelse doifnextbgroupelse \
+doifnextparenthesiselse doiffastoptionalcheckelse doifundefinedelse doifdefinedelse doifundefined \
+doifdefined doifelsevalue doifvalue doifnotvalue doifnothing \
+doifsomething doifelsenothing doifsomethingelse doifvaluenothing doifvaluesomething \
+doifelsevaluenothing doifdimensionelse doifnumberelse doifnumber doifnotnumber \
+doifcommonelse doifcommon doifnotcommon doifinstring doifnotinstring \
+doifinstringelse doifassignmentelse docheckassignment tracingall tracingnone \
+loggingall removetoks appendtoks prependtoks appendtotoks \
+prependtotoks to endgraf endpar everyendpar \
+reseteverypar finishpar empty null space \
+quad enspace obeyspaces obeylines obeyedspace \
+obeyedline normalspace executeifdefined singleexpandafter doubleexpandafter \
+tripleexpandafter dontleavehmode removelastspace removeunwantedspaces keepunwantedspaces \
+wait writestatus define defineexpandable redefine \
+setmeasure setemeasure setgmeasure setxmeasure definemeasure \
+freezemeasure measure measured installcorenamespace getvalue \
+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 gobbleoneargument gobbletwoarguments gobblethreearguments \
+gobblefourarguments gobblefivearguments gobblesixarguments gobblesevenarguments gobbleeightarguments \
+gobbleninearguments gobbletenarguments gobbleoneoptional gobbletwooptionals gobblethreeoptionals \
+gobblefouroptionals gobblefiveoptionals dorecurse doloop exitloop \
+dostepwiserecurse recurselevel recursedepth dofastloopcs newconstant \
+setnewconstant newconditional settrue setfalse setconstant \
+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 doiffirstcharelse startnointerference stopnointerference twodigits \
+threedigits strut setstrut strutbox strutht \
+strutdp strutwd struthtdp begstrut endstrut \
+lineheight 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 uncramped \
+cramped triggermathstyle mathstylefont mathsmallstylefont mathstyleface \
+mathsmallstyleface mathstylecommand mathpalette mathstylehbox mathstylevbox \
+mathstylevcenter mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox \
+setmathtextbox triggerdisplaystyle triggertextstyle triggerscriptstyle triggerscriptscriptstyle \
+triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle triggercrampedsmallstyle \
+triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr expdoifelse \
+expdoif expdoifnot expdoifcommonelse 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 carryoverpar \
+Umathbotaccent
diff --git a/scripts/context/lua/mtx-plain.lua b/scripts/context/lua/mtx-plain.lua
index f7fe60483..f43dcdeaf 100644
--- a/scripts/context/lua/mtx-plain.lua
+++ b/scripts/context/lua/mtx-plain.lua
@@ -47,10 +47,8 @@ scripts.plain = scripts.plain or { }
local function execute(...)
local command = string.format(...)
- report("running command %a",command)
- report()
+ report("running command %a\n",command)
os.execute(command)
- report()
end
local function resultof(...)
@@ -97,10 +95,10 @@ function scripts.plain.make(texengine,texformat)
else
lfs.chdir(fmtpath)
end
- execute('%s --ini %s',texengine,file.addsuffix(texformat,"tex"))
+ execute('%s --ini %s \\dump',texengine,file.addsuffix(texformat,"tex"))
report("generating kpse file database")
execute("mktexlsr")
- report("format saved on path %a",fmtpath)
+ report("format %a saved on path %a",texformat,fmtpath)
end
function scripts.plain.run(texengine,texformat,filename)
diff --git a/scripts/context/ruby/base/switch.rb b/scripts/context/ruby/base/switch.rb
index 79613dcd0..e38752018 100644
--- a/scripts/context/ruby/base/switch.rb
+++ b/scripts/context/ruby/base/switch.rb
@@ -1,3 +1,5 @@
+#encoding: ASCII-8BIT
+
# module : base/switch
# copyright : PRAGMA Advanced Document Engineering
# version : 2002-2005
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index 9ba842501..77d61b4db 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -1,3 +1,5 @@
+#encoding: ASCII-8BIT
+
# module : base/tex
# copyright : PRAGMA Advanced Document Engineering
# version : 2005
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index e8644fe66..2d4d055da 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 7f6f184d4..e19c0350c 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/math-ini.lua b/tex/context/base/math-ini.lua
index 530e68568..a06fc3552 100644
--- a/tex/context/base/math-ini.lua
+++ b/tex/context/base/math-ini.lua
@@ -10,6 +10,8 @@ if not modules then modules = { } end modules ['math-ini'] = {
-- the "8000 hackery influences direct characters (utf) as indirect \char's
--
-- isn't characters.data loaded already ... shortcut it here
+--
+-- replace code 7 by 0 as we don't use it anyway
local formatters = string.formatters
local utfchar, utfbyte = utf.char, utf.byte
@@ -41,6 +43,8 @@ local families = allocate {
mb = 1,
}
+--- to be checked .. afew defaults in char-def that should be alpha
+
local classes = allocate {
ord = 0, -- mathordcomm mathord
op = 1, -- mathopcomm mathop
@@ -173,6 +177,9 @@ local escapes = characters.filters.utf.private.escapes
-- not that many so no need to reuse tables
+local xxx = setdelcode function setdelcode (a,b,c) report_math('\\Udelcode "%05X = "%X"%04X"%X"%X',b,unpack(c)) xxx(a,b,c) end
+local yyy = setmathcode function setmathcode(a,b,c) report_math('\\Umathcode "%05X = "%X"%X"%04X', b,unpack(c)) yyy(a,b,c) end
+
local setmathcharacter = function(class,family,slot,unicode,mset,dset)
if mset and codes[class] then -- regular codes < 7
setmathcode("global",slot,{class,family,unicode})
@@ -197,10 +204,10 @@ local setmathsymbol = function(name,class,family,slot) -- hex is nicer for traci
elseif class == classes.under then
contextsprint(formatters[ [[\ugdef\%s{\Udelimiterunder "%X "%X }]] ](name,family,slot))
elseif class == open_class or class == close_class or class == middle_class then
- setdelcode(slot,{family,slot,0,0})
+ setdelcode("global",slot,{family,slot,0,0})
contextsprint(formatters[ [[\ugdef\%s{\Udelimiter "%X "%X "%X }]] ](name,class,family,slot))
elseif class == classes.delimiter then
- setdelcode(slot,{family,slot,0,0})
+ setdelcode("global",slot,{family,slot,0,0})
contextsprint(formatters[ [[\ugdef\%s{\Udelimiter 0 "%X "%X }]] ](name,family,slot))
elseif class == classes.radical then
contextsprint(formatters[ [[\ugdef\%s{\Uradical "%X "%X }]] ](name,family,slot))
diff --git a/tex/context/base/math-map.lua b/tex/context/base/math-map.lua
index 9a8c8a69c..a0d7457d1 100644
--- a/tex/context/base/math-map.lua
+++ b/tex/context/base/math-map.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['math-map'] = {
license = "see context related readme files"
}
+-- todo: make sparse .. if self
+
--[[ldx--
<p>Remapping mathematics alphabets.</p>
--ldx]]--
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index de2c69da2..05124bc78 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -140,6 +140,7 @@ return {
"newlanguage", "newfamily", "newfam", "newhelp", -- not used
--
"then",
+ "begcsname",
--
"firstargumentfalse", "firstargumenttrue",
"secondargumentfalse", "secondargumenttrue",
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 6c7209d4c..9e1441c22 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 9ef35c271..ce753f4ef 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/syst-ini.mkiv b/tex/context/base/syst-ini.mkiv
index 59313ba49..318756101 100644
--- a/tex/context/base/syst-ini.mkiv
+++ b/tex/context/base/syst-ini.mkiv
@@ -87,37 +87,42 @@
\expandafter\end
\fi
-\ifnum\texengine=\luatexengine
- \directlua 0 { % this info is stored in the format
- lua.name[0] = "main ctx instance"
- local extraprimitives = tex.extraprimitives
- local enableprimitives = tex.enableprimitives
- local core = extraprimitives('core')
- local btex = extraprimitives('tex')
- local etex = extraprimitives('etex')
- local pdftex = extraprimitives('pdftex')
- local luatex = extraprimitives('luatex')
- local omega = {
- "textdir", "pagedir", "mathdir", "pardir", "bodydir",
- "leftghost", "rightghost", "localleftbox", "localrightbox",
- "localinterlinepenalty", "localbrokenpenalty",
- }
- local aleph = {
- "boxdir", "pagebottomoffset", "pagerightoffset",
- }
- for _, subset in next, { etex, pdftex, luatex, omega, aleph } do
- enableprimitives('',subset)
- end
- for _, subset in next, { core, btex, etex, pdftex, luatex, omega, aleph } do
- enableprimitives('normal',subset)
- end
+%D Initialization of primitives.
+
+\directlua 0 { % this info is stored in the format
+ lua.name[0] = "main ctx instance"
+ local extraprimitives = tex.extraprimitives
+ local enableprimitives = tex.enableprimitives
+ local core = extraprimitives("core")
+ local btex = extraprimitives("tex")
+ local etex = extraprimitives("etex")
+ local pdftex = extraprimitives("pdftex")
+ local luatex = extraprimitives("luatex")
+ local omega = {
+ "textdir", "pagedir", "mathdir", "pardir", "bodydir",
+ "leftghost", "rightghost", "localleftbox", "localrightbox",
+ "localinterlinepenalty", "localbrokenpenalty",
}
-\fi
+ local aleph = {
+ "boxdir", "pagebottomoffset", "pagerightoffset",
+ }
+ for _, subset in next, { etex, pdftex, luatex, omega, aleph } do
+ enableprimitives("",subset)
+ end
+ for _, subset in next, { core, btex, etex, pdftex, luatex, omega, aleph } do
+ enableprimitives("normal",subset)
+ end
+}
+
+%D Handy.
+
+\suppresslongerror = 1
+\suppressoutererror = 1
%D \ETEX\ has a not so handy way of telling you the version number, i.e. the revision
%D number has a period in it:
-\long\def\gobbleoneargument#1{} % will be defined later on anyway
+\def\gobbleoneargument#1{} % will be defined later on anyway
\mathchardef\etexversion = \numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
@@ -286,20 +291,16 @@
%D Since the number of chars exceed 256 now, we can use \type {\chardef} instead of
%D the more limited \type {\mathchardef}.
-\ifnum\texengine>\pdftexengine
- \normalprotected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \chardef\c_syst_max_allocated_register}
- \normalprotected\def\newmarks{\syst_basics_allocate\c_syst_last_allocated_marks\marks\chardef\c_syst_max_allocated_register}
-\fi
+\normalprotected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \chardef\c_syst_max_allocated_register}
+\normalprotected\def\newmarks{\syst_basics_allocate\c_syst_last_allocated_marks\marks\chardef\c_syst_max_allocated_register}
%D Attributes are something very \LUATEX. In \CONTEXT\ you are not supposed to use
%D the attributes directly but always allocate then first. For instance attribute~0
%D is reserved for special purposes (this might change). Attributes in the range
%D 128-1023 are private and should not be touched.
-\ifnum\texengine=\luatexengine
- \let\attributeunsetvalue\c_syst_min_counter_value % used to be \minusone
- \normalprotected\def\newattribute{\syst_basics_allocate\c_syst_min_allocated_attribute\attribute\attributedef\c_syst_max_allocated_register}
-\fi
+\let\attributeunsetvalue\c_syst_min_counter_value % used to be \minusone
+\normalprotected\def\newattribute{\syst_basics_allocate\c_syst_min_allocated_attribute\attribute\attributedef\c_syst_max_allocated_register}
%D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a trick to force
%D strings instead of tokens that take more memory. It's a trick to trick to force
@@ -409,22 +410,12 @@
\chardef \pluscxxvii = 127
\chardef \pluscxxviii = 128
\chardef \pluscclv = 255
-
-\ifnum\texengine=\luatexengine
- \chardef \pluscclvi = 256
- \chardef \plusthousand = 1000
- \chardef \plustenthousand = 10000
- \chardef \plustwentythousand = 20000
- \chardef \medcard = 32768
- \chardef \maxcard = 65536 % pdftex has less mathchars
-\else
- \mathchardef\pluscclvi = 256
- \mathchardef\plusthousand = 1000
- \mathchardef\plustenthousand = 10000
- \mathchardef\plustwentythousand = 20000
- \newcount \medcard \medcard = 32768 % pdftex has less mathchars
- \newcount \maxcard \maxcard = 65536 % pdftex has less mathchars
-\fi
+\chardef \pluscclvi = 256
+\chardef \plusthousand = 1000
+\chardef \plustenthousand = 10000
+\chardef \plustwentythousand = 20000
+\chardef \medcard = 32768
+\chardef \maxcard = 65536 % pdftex has less mathchars
%D \macros
%D {doubleexpandafter,tripleexpandafter,expanded,startexpanded}
@@ -875,7 +866,7 @@
%D get. Beware: this macro does not support nested loops. We use a namespace
%D prefix \type {@@pln}.
-\long\def\loop#1\repeat{\long\def\@@plnbody{#1}\@@plniterate} % might go
+\def\loop#1\repeat{\def\@@plnbody{#1}\@@plniterate} % might go
%D The following makes \type {\loop} \unknown\ \type {\if} \unknown\ \type
%D {\repeat} skippable (clever trick):
@@ -905,7 +896,7 @@
%D Although we don't add pagenumbers yet we alias the default register used
%D for counting pages:
-\countdef\pageno=0 \pageno=1 % first page is number 1
+\countdef\pageno\zerocount \pageno\plusone % first page is number 1
%D Beside the raw counter \type {\pageno} the \type {\folio} macro provides
%D the value.
@@ -923,7 +914,8 @@
\lineskip = 1pt
\lineskiplimit = 0pt
-%D Again a few kind-of-extensions the core: (might go away)
+%D Again a few kind-of-extensions the core. These come from plain \TEX\ but
+%D are probably not used in \CONTEXT.
\newskip \hideskip \hideskip = -1000pt plus 1fill
\newskip \centering \centering = 0pt plus 1000pt minus 1000pt
@@ -948,37 +940,37 @@
\spanomit \advance\mscount\minusone
\repeat}
-%D The next section deals with selective definitions in later modules. One can of
-%D course use the \type {\texengine} number that we defined earlier instead.
-
-\bgroup \obeylines
- \gdef\pickupSOMETEX#1%
- {\expandafter\gdef\csname begin#1\endcsname{\bgroup\obeylines\dopickupSOMETEX{#1}}}
- \gdef\dopickupSOMETEX#1#2
- % {\egroup\immediate\write16{special code for #1 -> [line \the\inputlineno] \detokenize{#2}}}
- {\egroup}
-\egroup
-
-\let\endTEX \relax \long\def\beginTEX #1\endTEX {}
-\let\endETEX \relax \long\def\beginETEX #1\endETEX {}
-\let\endXETEX \relax \long\def\beginXETEX #1\endXETEX {}
-\let\endLUATEX\relax \long\def\beginLUATEX#1\endLUATEX{}
-\let\endOLDTEX\relax \long\def\beginOLDTEX#1\endOLDTEX{}
-\let\endNEWTEX\relax \long\def\beginNEWTEX#1\endNEWTEX{}
-
-\pickupSOMETEX{ETEX}
-
-\ifnum\texengine=\xetexengine
- \pickupSOMETEX{XETEX}
-\fi
-\ifnum\texengine=\luatexengine
- \pickupSOMETEX{LUATEX}
-\fi
-\ifnum\texengine<\xetexengine
- \pickupSOMETEX{OLDTEX}
-\else
- \pickupSOMETEX{NEWTEX}
-\fi
+% %D The next section deals with selective definitions in later modules. One can of
+% %D course use the \type {\texengine} number that we defined earlier instead.
+%
+% \bgroup \obeylines
+% \gdef\pickupSOMETEX#1%
+% {\expandafter\gdef\csname begin#1\endcsname{\bgroup\obeylines\dopickupSOMETEX{#1}}}
+% \gdef\dopickupSOMETEX#1#2
+% % {\egroup\immediate\write16{special code for #1 -> [line \the\inputlineno] \detokenize{#2}}}
+% {\egroup}
+% \egroup
+%
+% \let\endTEX \relax \def\beginTEX #1\endTEX {}
+% \let\endETEX \relax \def\beginETEX #1\endETEX {}
+% \let\endXETEX \relax \def\beginXETEX #1\endXETEX {}
+% \let\endLUATEX\relax \def\beginLUATEX#1\endLUATEX{}
+% \let\endOLDTEX\relax \def\beginOLDTEX#1\endOLDTEX{}
+% \let\endNEWTEX\relax \def\beginNEWTEX#1\endNEWTEX{}
+%
+% \pickupSOMETEX{ETEX}
+%
+% \ifnum\texengine=\xetexengine
+% \pickupSOMETEX{XETEX}
+% \fi
+% \ifnum\texengine=\luatexengine
+% \pickupSOMETEX{LUATEX}
+% \fi
+% \ifnum\texengine<\xetexengine
+% \pickupSOMETEX{OLDTEX}
+% \else
+% \pickupSOMETEX{NEWTEX}
+% \fi
%D \macros
%D {bindprimitive}
@@ -1019,76 +1011,61 @@
% \bindprimitive ifabsdim ifpdfabsdim
% \bindprimitive ifabsnum ifpdfabsnum
-\ifnum\texengine=\xetexengine \else % this test might disappear some day
-
- \pdfminorversion \plusfive
-
- \ifdefined\pdfcompresslevel \else \newcount\pdfcompresslevel \fi
- \ifdefined\pdfobjcompresslevel \else \newcount\pdfobjcompresslevel \fi
- \ifdefined\pdfgentounicode \else \newcount\pdfgentounicode \fi \pdfgentounicode \plusone
- \ifdefined\pdfinclusioncopyfonts\else \newcount\pdfinclusioncopyfonts \fi \pdfinclusioncopyfonts\plusone
-
- \normalprotected\def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
- \normalprotected\def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine }
- \normalprotected\def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree}
-
- \normalpdfcompression
+%D We need to make sure that we start up in \DVI\ mode, so, after testing for running
+%D \PDFTEX, we default to \DVI.
- \let\normalsetrandomseed \setrandomseed
- \let\normaluniformdeviate\uniformdeviate
+\pdfoutput \zerocount
+\pdfminorversion \plusfive
+\pdfgentounicode \plusone
+\pdfinclusioncopyfonts\plusone
-\fi
+\normalprotected\def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
+\normalprotected\def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine }
+\normalprotected\def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree}
-%D Handy.
+\normalpdfcompression
-\ifnum\texengine=\luatexengine
- \ifdefined\suppresslongerror % for the moment test
- \suppresslongerror\plusone
- \fi
-\fi
+\let\normalsetrandomseed \setrandomseed
+\let\normaluniformdeviate\uniformdeviate
%D Basic status stuff.
\newif\ifproductionrun
-%D We need to make sure that we start up in \DVI\ mode, so, after testing for running
-%D \PDFTEX, we default to \DVI.
-
-\ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0
-
%D For those who expect this \unknown
-\ifx\fmtname \undefined \def\fmtname {ConTeXt Minimized Plain TeX} \fi
-\ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi
-
-\let\normalfmtversion\fmtversion % still needed ?
+\ifx\fmtname \undefined \def\fmtname {ConTeXt Initial TeX} \fi
+\ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi
%D A few bonus macros:
\def\modulonumber#1#2{\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
\def\dividenumber#1#2{\the\numexpr(#2-(#1/2))/#1\relax}
-\ifnum\texengine=\xetexengine
- \edef\xetexversion {\numexpr\XeTeXversion*100+(\expandafter\gobbleoneargument\XeTeXrevision-5)/10\relax}
- \edef\xetexrevision {\the\numexpr(\expandafter\gobbleoneargument\XeTeXrevision-50)/100\relax}
-\fi
-
-\ifcase\texengine
- \def \texenginename {impossible}
- \edef\texengineversion{0}
-\or
- \def \texenginename {pdfTeX}
- \edef\texengineversion{\dividenumber{100}\pdftexversion.\modulonumber{100}\pdftexversion.\pdftexrevision}
-\or
- \def \texenginename {XeTeX}
- \edef\texengineversion{\dividenumber{100}\xetexversion .\modulonumber{100}\xetexversion .\xetexrevision}
-\or
- \def \texenginename {LuaTeX}
- \edef\texengineversion{\dividenumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
-\else
- \def \texenginename {impossible}
- \edef\texengineversion{0}
-\fi
+% \ifnum\texengine=\xetexengine
+% \edef\xetexversion {\numexpr\XeTeXversion*100+(\expandafter\gobbleoneargument\XeTeXrevision-5)/10\relax}
+% \edef\xetexrevision {\the\numexpr(\expandafter\gobbleoneargument\XeTeXrevision-50)/100\relax}
+% \fi
+%
+% \ifcase\texengine
+% \def \texenginename {impossible}
+% \edef\texengineversion{0}
+% \or
+% \def \texenginename {pdfTeX}
+% \edef\texengineversion{\dividenumber{100}\pdftexversion.\modulonumber{100}\pdftexversion.\pdftexrevision}
+% \or
+% \def \texenginename {XeTeX}
+% \edef\texengineversion{\dividenumber{100}\xetexversion .\modulonumber{100}\xetexversion .\xetexrevision}
+% \or
+% \def \texenginename {LuaTeX}
+% \edef\texengineversion{\dividenumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
+% \else
+% \def \texenginename {impossible}
+% \edef\texengineversion{0}
+% \fi
+
+\def \texenginename {LuaTeX}
+\edef\texengineversion{\dividenumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
%D We have no reason not to enable this:
diff --git a/tex/generic/context/luatex/luatex-basics-gen.lua b/tex/generic/context/luatex/luatex-basics-gen.lua
index 590b538fa..0b7232b76 100644
--- a/tex/generic/context/luatex/luatex-basics-gen.lua
+++ b/tex/generic/context/luatex/luatex-basics-gen.lua
@@ -289,7 +289,7 @@ function caches.compile(data,luaname,lucname)
d = table.serialize(data,true) -- slow
end
if d and d ~= "" then
- local f = io.open(lucname,'w')
+ local f = io.open(lucname,'wb')
if f then
local s = loadstring(d)
if s then
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 040571f6b..bf22bac29 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 : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 04/28/13 19:05:28
+-- merge date : 04/29/13 20:30:03
do -- begin closure to overcome local limits and interference
@@ -3092,7 +3092,7 @@ function caches.compile(data,luaname,lucname)
d=table.serialize(data,true)
end
if d and d~="" then
- local f=io.open(lucname,'w')
+ local f=io.open(lucname,'wb')
if f then
local s=loadstring(d)
if s then
diff --git a/tex/generic/context/luatex/luatex-math.lua b/tex/generic/context/luatex/luatex-math.lua
new file mode 100644
index 000000000..0e9bab69e
--- /dev/null
+++ b/tex/generic/context/luatex/luatex-math.lua
@@ -0,0 +1,53 @@
+if not modules then modules = { } end modules ['luatex-math'] = {
+ version = 1.001,
+ comment = "companion to luatex-math.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local gaps = {
+ [0x1D455] = 0x0210E,
+ [0x1D49D] = 0x0212C,
+ [0x1D4A0] = 0x02130,
+ [0x1D4A1] = 0x02131,
+ [0x1D4A3] = 0x0210B,
+ [0x1D4A4] = 0x02110,
+ [0x1D4A7] = 0x02112,
+ [0x1D4A8] = 0x02133,
+ [0x1D4AD] = 0x0211B,
+ [0x1D4BA] = 0x0212F,
+ [0x1D4BC] = 0x0210A,
+ [0x1D4C4] = 0x02134,
+ [0x1D506] = 0x0212D,
+ [0x1D50B] = 0x0210C,
+ [0x1D50C] = 0x02111,
+ [0x1D515] = 0x0211C,
+ [0x1D51D] = 0x02128,
+ [0x1D53A] = 0x02102,
+ [0x1D53F] = 0x0210D,
+ [0x1D545] = 0x02115,
+ [0x1D547] = 0x02119,
+ [0x1D548] = 0x0211A,
+ [0x1D549] = 0x0211D,
+ [0x1D551] = 0x02124,
+}
+
+
+local function fixmath(tfmdata,key,value)
+ if value then
+ local characters = tfmdata.characters
+ for gap, mess in pairs(gaps) do
+ characters[gap] = characters[mess]
+ end
+ end
+end
+
+fonts.handlers.otf.features.register {
+ name = "fixmath",
+ description = "math font fixing",
+ manipulators = {
+ base = fixmath,
+ node = fixmath,
+ }
+}
diff --git a/tex/generic/context/luatex/luatex-math.tex b/tex/generic/context/luatex/luatex-math.tex
new file mode 100644
index 000000000..3b19939bd
--- /dev/null
+++ b/tex/generic/context/luatex/luatex-math.tex
@@ -0,0 +1,1841 @@
+%D \module
+%D [ file=luatex-math,
+%D version=2013.04.29,
+%D title=\LUATEX\ Support Macros,
+%D subtitle=An exmaple of math,
+%D author=Hans Hagen,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+
+%D This module is in no way a complete plain math implementation. I made this file
+%D because I needed it for a tutorial for (mostly) plain \TEX\ users. There are
+%D several ways to support math in \LUATEX, and this is just one of them. It was the
+%D quickest hack I could come up with and it stays somewhat close to the traditional
+%D approach (and thereby far from the \CONTEXT\ way). This file is mainly meant for
+%D Boguslaw Jackowski.
+
+% we provide a remap feature
+
+\directlua{dofile(kpse.find_file('luatex-math.lua'))}
+
+% a bunch of fonts:
+
+\font\tenrm = file:lmroman10-regular.otf:+liga;+kern;+tlig;+trep at 10pt
+\font\sevenrm = file:lmroman7-regular.otf:+liga;+kern;+tlig;+trep at 7pt
+\font\fiverm = file:lmroman5-regular.otf:+liga;+kern;+tlig;+trep at 5pt
+
+\font\tentt = file:lmmono10-regular.otf at 10pt
+\font\tensl = file:lmromanslant10-regular.otf:+liga;+kern;+tlig;+trep at 10pt
+\font\tenit = file:lmroman10-italic.otf:+liga;+kern;+tlig;+trep at 10pt
+\font\tenbi = file:lmroman10-bolditalic.otf:+liga;+kern;+tlig;+trep at 10pt
+
+\let \teni = \relax
+\let \seveni = \relax
+\let \fivei = \relax
+\let \tensy = \relax
+\let \sevensy = \relax
+\let \fivesy = \relax
+\let \tenex = \relax
+\let \tenbf = \relax
+\let \sevenbf = \relax
+\let \fivebf = \relax
+
+\font\mathfonttextupright = file:latinmodern-math.otf:ssty=0;fixmath=yes at 10pt
+\font\mathfontscriptupright = file:latinmodern-math.otf:ssty=1;fixmath=yes at 7pt
+\font\mathfontscriptscriptupright = file:latinmodern-math.otf:ssty=2;fixmath=yes at 5pt
+
+\textfont 0 = \mathfonttextupright
+\scriptfont 0 = \mathfontscriptupright
+\scriptscriptfont 0 = \mathfontscriptscriptupright
+
+\newtoks\everymathrm
+\newtoks\everymathmit
+\newtoks\everymathcal
+\newtoks\everymathit
+\newtoks\everymathsl
+\newtoks\everymathbf
+\newtoks\everymathbi
+\newtoks\everymathtt
+
+\def\rm {\fam0\relax\the\everymathmrm\relax\tenrm\relax}
+\def\it {\fam0\relax\the\everymathit \relax\tenit\relax}
+\def\sl {\fam0\relax\the\everymathsl \relax\tensl\relax}
+\def\bf {\fam0\relax\the\everymathbf \relax\tenbf\relax}
+\def\bi {\fam0\relax\the\everymathbi \relax\tenbi\relax}
+\def\tt {\fam0\relax\the\everymathtt \relax\tentt\relax}
+
+\let\mit \relax % use names or \Uchar or define a vector
+\let\cal \relax % idem, i'm not in the mood for this now
+\let\oldstyle\relax % no longer misuse of math mode
+
+% tex is fast enough for this kind of assignments:
+
+\everymathrm {%
+ \Umathcode"0041="0"0"0041%
+ \Umathcode"0042="0"0"0042%
+ \Umathcode"0043="0"0"0043%
+ \Umathcode"0044="0"0"0044%
+ \Umathcode"0045="0"0"0045%
+ \Umathcode"0046="0"0"0046%
+ \Umathcode"0047="0"0"0047%
+ \Umathcode"0048="0"0"0048%
+ \Umathcode"0049="0"0"0049%
+ \Umathcode"004A="0"0"004A%
+ \Umathcode"004B="0"0"004B%
+ \Umathcode"004C="0"0"004C%
+ \Umathcode"004D="0"0"004D%
+ \Umathcode"004E="0"0"004E%
+ \Umathcode"004F="0"0"004F%
+ \Umathcode"0050="0"0"0050%
+ \Umathcode"0051="0"0"0051%
+ \Umathcode"0052="0"0"0052%
+ \Umathcode"0053="0"0"0053%
+ \Umathcode"0054="0"0"0054%
+ \Umathcode"0055="0"0"0055%
+ \Umathcode"0056="0"0"0056%
+ \Umathcode"0057="0"0"0057%
+ \Umathcode"0058="0"0"0058%
+ \Umathcode"0059="0"0"0059%
+ \Umathcode"005A="0"0"005A%
+ \Umathcode"0061="0"0"0061%
+ \Umathcode"0062="0"0"0062%
+ \Umathcode"0063="0"0"0063%
+ \Umathcode"0064="0"0"0064%
+ \Umathcode"0065="0"0"0065%
+ \Umathcode"0066="0"0"0066%
+ \Umathcode"0067="0"0"0067%
+ \Umathcode"0068="0"0"0068%
+ \Umathcode"0069="0"0"0069%
+ \Umathcode"006A="0"0"006A%
+ \Umathcode"006B="0"0"006B%
+ \Umathcode"006C="0"0"006C%
+ \Umathcode"006D="0"0"006D%
+ \Umathcode"006E="0"0"006E%
+ \Umathcode"006F="0"0"006F%
+ \Umathcode"0070="0"0"0070%
+ \Umathcode"0071="0"0"0071%
+ \Umathcode"0072="0"0"0072%
+ \Umathcode"0073="0"0"0073%
+ \Umathcode"0074="0"0"0074%
+ \Umathcode"0075="0"0"0075%
+ \Umathcode"0076="0"0"0076%
+ \Umathcode"0077="0"0"0077%
+ \Umathcode"0078="0"0"0078%
+ \Umathcode"0079="0"0"0079%
+ \Umathcode"007A="0"0"007A%
+ \Umathcode"0391="0"0"0391%
+ \Umathcode"0392="0"0"0392%
+ \Umathcode"0393="0"0"0393%
+ \Umathcode"0394="0"0"0394%
+ \Umathcode"0395="0"0"0395%
+ \Umathcode"0396="0"0"0396%
+ \Umathcode"0397="0"0"0397%
+ \Umathcode"0398="0"0"0398%
+ \Umathcode"0399="0"0"0399%
+ \Umathcode"039A="0"0"039A%
+ \Umathcode"039B="0"0"039B%
+ \Umathcode"039C="0"0"039C%
+ \Umathcode"039D="0"0"039D%
+ \Umathcode"039E="0"0"039E%
+ \Umathcode"039F="0"0"039F%
+ \Umathcode"03A0="0"0"03A0%
+ \Umathcode"03A1="0"0"03A1%
+ \Umathcode"03A3="0"0"03A3%
+ \Umathcode"03A4="0"0"03A4%
+ \Umathcode"03A5="0"0"03A5%
+ \Umathcode"03A6="0"0"03A6%
+ \Umathcode"03A7="0"0"03A7%
+ \Umathcode"03A8="0"0"03A8%
+ \Umathcode"03A9="0"0"03A9%
+ \Umathcode"03B1="0"0"03B1%
+ \Umathcode"03B2="0"0"03B2%
+ \Umathcode"03B3="0"0"03B3%
+ \Umathcode"03B4="0"0"03B4%
+ \Umathcode"03B5="0"0"03B5%
+ \Umathcode"03B6="0"0"03B6%
+ \Umathcode"03B7="0"0"03B7%
+ \Umathcode"03B8="0"0"03B8%
+ \Umathcode"03B9="0"0"03B9%
+ \Umathcode"03BA="0"0"03BA%
+ \Umathcode"03BB="0"0"03BB%
+ \Umathcode"03BC="0"0"03BC%
+ \Umathcode"03BD="0"0"03BD%
+ \Umathcode"03BE="0"0"03BE%
+ \Umathcode"03BF="0"0"03BF%
+ \Umathcode"03C0="0"0"03C0%
+ \Umathcode"03C1="0"0"03C1%
+ \Umathcode"03C2="0"0"03C2%
+ \Umathcode"03C3="0"0"03C3%
+ \Umathcode"03C4="0"0"03C4%
+ \Umathcode"03C5="0"0"03C5%
+ \Umathcode"03C6="0"0"03C6%
+ \Umathcode"03C7="0"0"03C7%
+ \Umathcode"03C8="0"0"03C8%
+ \Umathcode"03C9="0"0"03C9%
+ \Umathcode"03D1="0"0"03D1%
+ \Umathcode"03D5="0"0"03D5%
+ \Umathcode"03D6="0"0"03D6%
+ \Umathcode"03F0="0"0"03F0%
+ \Umathcode"03F1="0"0"03F1%
+ \Umathcode"03F4="0"0"03F4%
+ \Umathcode"03F5="0"0"03F5%
+ \Umathcode"2202="0"0"2202%
+ \Umathcode"2207="0"0"2207%
+ \relax
+}
+
+\everymathmit {%
+ % not done
+}
+
+\everymathcal {%
+ % not done
+}
+
+\everymathit {%
+ \Umathcode"0041="0"0"1D434%
+ \Umathcode"0042="0"0"1D435%
+ \Umathcode"0043="0"0"1D436%
+ \Umathcode"0044="0"0"1D437%
+ \Umathcode"0045="0"0"1D438%
+ \Umathcode"0046="0"0"1D439%
+ \Umathcode"0047="0"0"1D43A%
+ \Umathcode"0048="0"0"1D43B%
+ \Umathcode"0049="0"0"1D43C%
+ \Umathcode"004A="0"0"1D43D%
+ \Umathcode"004B="0"0"1D43E%
+ \Umathcode"004C="0"0"1D43F%
+ \Umathcode"004D="0"0"1D440%
+ \Umathcode"004E="0"0"1D441%
+ \Umathcode"004F="0"0"1D442%
+ \Umathcode"0050="0"0"1D443%
+ \Umathcode"0051="0"0"1D444%
+ \Umathcode"0052="0"0"1D445%
+ \Umathcode"0053="0"0"1D446%
+ \Umathcode"0054="0"0"1D447%
+ \Umathcode"0055="0"0"1D448%
+ \Umathcode"0056="0"0"1D449%
+ \Umathcode"0057="0"0"1D44A%
+ \Umathcode"0058="0"0"1D44B%
+ \Umathcode"0059="0"0"1D44C%
+ \Umathcode"005A="0"0"1D44D%
+ \Umathcode"0061="0"0"1D44E%
+ \Umathcode"0062="0"0"1D44F%
+ \Umathcode"0063="0"0"1D450%
+ \Umathcode"0064="0"0"1D451%
+ \Umathcode"0065="0"0"1D452%
+ \Umathcode"0066="0"0"1D453%
+ \Umathcode"0067="0"0"1D454%
+ \Umathcode"0068="0"0"0210E%
+ \Umathcode"0069="0"0"1D456%
+ \Umathcode"006A="0"0"1D457%
+ \Umathcode"006B="0"0"1D458%
+ \Umathcode"006C="0"0"1D459%
+ \Umathcode"006D="0"0"1D45A%
+ \Umathcode"006E="0"0"1D45B%
+ \Umathcode"006F="0"0"1D45C%
+ \Umathcode"0070="0"0"1D45D%
+ \Umathcode"0071="0"0"1D45E%
+ \Umathcode"0072="0"0"1D45F%
+ \Umathcode"0073="0"0"1D460%
+ \Umathcode"0074="0"0"1D461%
+ \Umathcode"0075="0"0"1D462%
+ \Umathcode"0076="0"0"1D463%
+ \Umathcode"0077="0"0"1D464%
+ \Umathcode"0078="0"0"1D465%
+ \Umathcode"0079="0"0"1D466%
+ \Umathcode"007A="0"0"1D467%
+ \Umathcode"0391="0"0"1D6E2%
+ \Umathcode"0392="0"0"1D6E3%
+ \Umathcode"0393="0"0"1D6E4%
+ \Umathcode"0394="0"0"1D6E5%
+ \Umathcode"0395="0"0"1D6E6%
+ \Umathcode"0396="0"0"1D6E7%
+ \Umathcode"0397="0"0"1D6E8%
+ \Umathcode"0398="0"0"1D6E9%
+ \Umathcode"0399="0"0"1D6EA%
+ \Umathcode"039A="0"0"1D6EB%
+ \Umathcode"039B="0"0"1D6EC%
+ \Umathcode"039C="0"0"1D6ED%
+ \Umathcode"039D="0"0"1D6EE%
+ \Umathcode"039E="0"0"1D6EF%
+ \Umathcode"039F="0"0"1D6F0%
+ \Umathcode"03A0="0"0"1D6F1%
+ \Umathcode"03A1="0"0"1D6F2%
+ \Umathcode"03A3="0"0"1D6F4%
+ \Umathcode"03A4="0"0"1D6F5%
+ \Umathcode"03A5="0"0"1D6F6%
+ \Umathcode"03A6="0"0"1D6F7%
+ \Umathcode"03A7="0"0"1D6F8%
+ \Umathcode"03A8="0"0"1D6F9%
+ \Umathcode"03A9="0"0"1D6FA%
+ \Umathcode"03B1="0"0"1D6FC%
+ \Umathcode"03B2="0"0"1D6FD%
+ \Umathcode"03B3="0"0"1D6FE%
+ \Umathcode"03B4="0"0"1D6FF%
+ \Umathcode"03B5="0"0"1D700%
+ \Umathcode"03B6="0"0"1D701%
+ \Umathcode"03B7="0"0"1D702%
+ \Umathcode"03B8="0"0"1D703%
+ \Umathcode"03B9="0"0"1D704%
+ \Umathcode"03BA="0"0"1D705%
+ \Umathcode"03BB="0"0"1D706%
+ \Umathcode"03BC="0"0"1D707%
+ \Umathcode"03BD="0"0"1D708%
+ \Umathcode"03BE="0"0"1D709%
+ \Umathcode"03BF="0"0"1D70A%
+ \Umathcode"03C0="0"0"1D70B%
+ \Umathcode"03C1="0"0"1D70C%
+ \Umathcode"03C2="0"0"1D70D%
+ \Umathcode"03C3="0"0"1D70E%
+ \Umathcode"03C4="0"0"1D70F%
+ \Umathcode"03C5="0"0"1D710%
+ \Umathcode"03C6="0"0"1D711%
+ \Umathcode"03C7="0"0"1D712%
+ \Umathcode"03C8="0"0"1D713%
+ \Umathcode"03C9="0"0"1D714%
+ \Umathcode"03D1="0"0"1D717%
+ \Umathcode"03D5="0"0"1D719%
+ \Umathcode"03D6="0"0"1D71B%
+ \Umathcode"03F0="0"0"1D718%
+ \Umathcode"03F1="0"0"1D71A%
+ \Umathcode"03F4="0"0"1D6F3%
+ \Umathcode"03F5="0"0"1D716%
+ \Umathcode"2202="0"0"1D715%
+ \Umathcode"2207="0"0"1D6FB%
+ \relax
+}
+
+\everymathsl {%
+ \the\everymathit
+}
+
+\everymathbf {%
+ \Umathcode"0030="0"0"1D7CE%
+ \Umathcode"0031="0"0"1D7CF%
+ \Umathcode"0032="0"0"1D7D0%
+ \Umathcode"0033="0"0"1D7D1%
+ \Umathcode"0034="0"0"1D7D2%
+ \Umathcode"0035="0"0"1D7D3%
+ \Umathcode"0036="0"0"1D7D4%
+ \Umathcode"0037="0"0"1D7D5%
+ \Umathcode"0038="0"0"1D7D6%
+ \Umathcode"0039="0"0"1D7D7%
+ \Umathcode"0041="0"0"1D400%
+ \Umathcode"0042="0"0"1D401%
+ \Umathcode"0043="0"0"1D402%
+ \Umathcode"0044="0"0"1D403%
+ \Umathcode"0045="0"0"1D404%
+ \Umathcode"0046="0"0"1D405%
+ \Umathcode"0047="0"0"1D406%
+ \Umathcode"0048="0"0"1D407%
+ \Umathcode"0049="0"0"1D408%
+ \Umathcode"004A="0"0"1D409%
+ \Umathcode"004B="0"0"1D40A%
+ \Umathcode"004C="0"0"1D40B%
+ \Umathcode"004D="0"0"1D40C%
+ \Umathcode"004E="0"0"1D40D%
+ \Umathcode"004F="0"0"1D40E%
+ \Umathcode"0050="0"0"1D40F%
+ \Umathcode"0051="0"0"1D410%
+ \Umathcode"0052="0"0"1D411%
+ \Umathcode"0053="0"0"1D412%
+ \Umathcode"0054="0"0"1D413%
+ \Umathcode"0055="0"0"1D414%
+ \Umathcode"0056="0"0"1D415%
+ \Umathcode"0057="0"0"1D416%
+ \Umathcode"0058="0"0"1D417%
+ \Umathcode"0059="0"0"1D418%
+ \Umathcode"005A="0"0"1D419%
+ \Umathcode"0061="0"0"1D41A%
+ \Umathcode"0062="0"0"1D41B%
+ \Umathcode"0063="0"0"1D41C%
+ \Umathcode"0064="0"0"1D41D%
+ \Umathcode"0065="0"0"1D41E%
+ \Umathcode"0066="0"0"1D41F%
+ \Umathcode"0067="0"0"1D420%
+ \Umathcode"0068="0"0"1D421%
+ \Umathcode"0069="0"0"1D422%
+ \Umathcode"006A="0"0"1D423%
+ \Umathcode"006B="0"0"1D424%
+ \Umathcode"006C="0"0"1D425%
+ \Umathcode"006D="0"0"1D426%
+ \Umathcode"006E="0"0"1D427%
+ \Umathcode"006F="0"0"1D428%
+ \Umathcode"0070="0"0"1D429%
+ \Umathcode"0071="0"0"1D42A%
+ \Umathcode"0072="0"0"1D42B%
+ \Umathcode"0073="0"0"1D42C%
+ \Umathcode"0074="0"0"1D42D%
+ \Umathcode"0075="0"0"1D42E%
+ \Umathcode"0076="0"0"1D42F%
+ \Umathcode"0077="0"0"1D430%
+ \Umathcode"0078="0"0"1D431%
+ \Umathcode"0079="0"0"1D432%
+ \Umathcode"007A="0"0"1D433%
+ \Umathcode"0391="0"0"1D6A8%
+ \Umathcode"0392="0"0"1D6A9%
+ \Umathcode"0393="0"0"1D6AA%
+ \Umathcode"0394="0"0"1D6AB%
+ \Umathcode"0395="0"0"1D6AC%
+ \Umathcode"0396="0"0"1D6AD%
+ \Umathcode"0397="0"0"1D6AE%
+ \Umathcode"0398="0"0"1D6AF%
+ \Umathcode"0399="0"0"1D6B0%
+ \Umathcode"039A="0"0"1D6B1%
+ \Umathcode"039B="0"0"1D6B2%
+ \Umathcode"039C="0"0"1D6B3%
+ \Umathcode"039D="0"0"1D6B4%
+ \Umathcode"039E="0"0"1D6B5%
+ \Umathcode"039F="0"0"1D6B6%
+ \Umathcode"03A0="0"0"1D6B7%
+ \Umathcode"03A1="0"0"1D6B8%
+ \Umathcode"03A3="0"0"1D6BA%
+ \Umathcode"03A4="0"0"1D6BB%
+ \Umathcode"03A5="0"0"1D6BC%
+ \Umathcode"03A6="0"0"1D6BD%
+ \Umathcode"03A7="0"0"1D6BE%
+ \Umathcode"03A8="0"0"1D6BF%
+ \Umathcode"03A9="0"0"1D6C0%
+ \Umathcode"03B1="0"0"1D6C2%
+ \Umathcode"03B2="0"0"1D6C3%
+ \Umathcode"03B3="0"0"1D6C4%
+ \Umathcode"03B4="0"0"1D6C5%
+ \Umathcode"03B5="0"0"1D6C6%
+ \Umathcode"03B6="0"0"1D6C7%
+ \Umathcode"03B7="0"0"1D6C8%
+ \Umathcode"03B8="0"0"1D6C9%
+ \Umathcode"03B9="0"0"1D6CA%
+ \Umathcode"03BA="0"0"1D6CB%
+ \Umathcode"03BB="0"0"1D6CC%
+ \Umathcode"03BC="0"0"1D6CD%
+ \Umathcode"03BD="0"0"1D6CE%
+ \Umathcode"03BE="0"0"1D6CF%
+ \Umathcode"03BF="0"0"1D6D0%
+ \Umathcode"03C0="0"0"1D6D1%
+ \Umathcode"03C1="0"0"1D6D2%
+ \Umathcode"03C2="0"0"1D6D3%
+ \Umathcode"03C3="0"0"1D6D4%
+ \Umathcode"03C4="0"0"1D6D5%
+ \Umathcode"03C5="0"0"1D6D6%
+ \Umathcode"03C6="0"0"1D6D7%
+ \Umathcode"03C7="0"0"1D6D8%
+ \Umathcode"03C8="0"0"1D6D9%
+ \Umathcode"03C9="0"0"1D6DA%
+ \Umathcode"03D1="0"0"1D6DD%
+ \Umathcode"03D5="0"0"1D6DF%
+ \Umathcode"03D6="0"0"1D6E1%
+ \Umathcode"03F0="0"0"1D6DE%
+ \Umathcode"03F1="0"0"1D6E0%
+ \Umathcode"03F4="0"0"1D6B9%
+ \Umathcode"03F5="0"0"1D6DC%
+ \Umathcode"2202="0"0"1D6DB%
+ \Umathcode"2207="0"0"1D6C1%
+ \relax
+}
+
+\everymathbi {%
+ \Umathcode"0030="0"0"1D7CE%
+ \Umathcode"0031="0"0"1D7CF%
+ \Umathcode"0032="0"0"1D7D0%
+ \Umathcode"0033="0"0"1D7D1%
+ \Umathcode"0034="0"0"1D7D2%
+ \Umathcode"0035="0"0"1D7D3%
+ \Umathcode"0036="0"0"1D7D4%
+ \Umathcode"0037="0"0"1D7D5%
+ \Umathcode"0038="0"0"1D7D6%
+ \Umathcode"0039="0"0"1D7D7%
+ \Umathcode"0041="0"0"1D468%
+ \Umathcode"0042="0"0"1D469%
+ \Umathcode"0043="0"0"1D46A%
+ \Umathcode"0044="0"0"1D46B%
+ \Umathcode"0045="0"0"1D46C%
+ \Umathcode"0046="0"0"1D46D%
+ \Umathcode"0047="0"0"1D46E%
+ \Umathcode"0048="0"0"1D46F%
+ \Umathcode"0049="0"0"1D470%
+ \Umathcode"004A="0"0"1D471%
+ \Umathcode"004B="0"0"1D472%
+ \Umathcode"004C="0"0"1D473%
+ \Umathcode"004D="0"0"1D474%
+ \Umathcode"004E="0"0"1D475%
+ \Umathcode"004F="0"0"1D476%
+ \Umathcode"0050="0"0"1D477%
+ \Umathcode"0051="0"0"1D478%
+ \Umathcode"0052="0"0"1D479%
+ \Umathcode"0053="0"0"1D47A%
+ \Umathcode"0054="0"0"1D47B%
+ \Umathcode"0055="0"0"1D47C%
+ \Umathcode"0056="0"0"1D47D%
+ \Umathcode"0057="0"0"1D47E%
+ \Umathcode"0058="0"0"1D47F%
+ \Umathcode"0059="0"0"1D480%
+ \Umathcode"005A="0"0"1D481%
+ \Umathcode"0061="0"0"1D482%
+ \Umathcode"0062="0"0"1D483%
+ \Umathcode"0063="0"0"1D484%
+ \Umathcode"0064="0"0"1D485%
+ \Umathcode"0065="0"0"1D486%
+ \Umathcode"0066="0"0"1D487%
+ \Umathcode"0067="0"0"1D488%
+ \Umathcode"0068="0"0"1D489%
+ \Umathcode"0069="0"0"1D48A%
+ \Umathcode"006A="0"0"1D48B%
+ \Umathcode"006B="0"0"1D48C%
+ \Umathcode"006C="0"0"1D48D%
+ \Umathcode"006D="0"0"1D48E%
+ \Umathcode"006E="0"0"1D48F%
+ \Umathcode"006F="0"0"1D490%
+ \Umathcode"0070="0"0"1D491%
+ \Umathcode"0071="0"0"1D492%
+ \Umathcode"0072="0"0"1D493%
+ \Umathcode"0073="0"0"1D494%
+ \Umathcode"0074="0"0"1D495%
+ \Umathcode"0075="0"0"1D496%
+ \Umathcode"0076="0"0"1D497%
+ \Umathcode"0077="0"0"1D498%
+ \Umathcode"0078="0"0"1D499%
+ \Umathcode"0079="0"0"1D49A%
+ \Umathcode"007A="0"0"1D49B%
+ \Umathcode"0391="0"0"1D71C%
+ \Umathcode"0392="0"0"1D71D%
+ \Umathcode"0393="0"0"1D71E%
+ \Umathcode"0394="0"0"1D71F%
+ \Umathcode"0395="0"0"1D720%
+ \Umathcode"0396="0"0"1D721%
+ \Umathcode"0397="0"0"1D722%
+ \Umathcode"0398="0"0"1D723%
+ \Umathcode"0399="0"0"1D724%
+ \Umathcode"039A="0"0"1D725%
+ \Umathcode"039B="0"0"1D726%
+ \Umathcode"039C="0"0"1D727%
+ \Umathcode"039D="0"0"1D728%
+ \Umathcode"039E="0"0"1D729%
+ \Umathcode"039F="0"0"1D72A%
+ \Umathcode"03A0="0"0"1D72B%
+ \Umathcode"03A1="0"0"1D72C%
+ \Umathcode"03A3="0"0"1D72E%
+ \Umathcode"03A4="0"0"1D72F%
+ \Umathcode"03A5="0"0"1D730%
+ \Umathcode"03A6="0"0"1D731%
+ \Umathcode"03A7="0"0"1D732%
+ \Umathcode"03A8="0"0"1D733%
+ \Umathcode"03A9="0"0"1D734%
+ \Umathcode"03B1="0"0"1D736%
+ \Umathcode"03B2="0"0"1D737%
+ \Umathcode"03B3="0"0"1D738%
+ \Umathcode"03B4="0"0"1D739%
+ \Umathcode"03B5="0"0"1D73A%
+ \Umathcode"03B6="0"0"1D73B%
+ \Umathcode"03B7="0"0"1D73C%
+ \Umathcode"03B8="0"0"1D73D%
+ \Umathcode"03B9="0"0"1D73E%
+ \Umathcode"03BA="0"0"1D73F%
+ \Umathcode"03BB="0"0"1D740%
+ \Umathcode"03BC="0"0"1D741%
+ \Umathcode"03BD="0"0"1D742%
+ \Umathcode"03BE="0"0"1D743%
+ \Umathcode"03BF="0"0"1D744%
+ \Umathcode"03C0="0"0"1D745%
+ \Umathcode"03C1="0"0"1D746%
+ \Umathcode"03C2="0"0"1D747%
+ \Umathcode"03C3="0"0"1D748%
+ \Umathcode"03C4="0"0"1D749%
+ \Umathcode"03C5="0"0"1D74A%
+ \Umathcode"03C6="0"0"1D74B%
+ \Umathcode"03C7="0"0"1D74C%
+ \Umathcode"03C8="0"0"1D74D%
+ \Umathcode"03C9="0"0"1D74E%
+ \Umathcode"03D1="0"0"1D751%
+ \Umathcode"03D5="0"0"1D753%
+ \Umathcode"03D6="0"0"1D755%
+ \Umathcode"03F0="0"0"1D752%
+ \Umathcode"03F1="0"0"1D754%
+ \Umathcode"03F4="0"0"1D72D%
+ \Umathcode"03F5="0"0"1D750%
+ \Umathcode"2202="0"0"1D74F%
+ \Umathcode"2207="0"0"1D735%
+ \relax
+}
+
+\everymathtt {%
+ % not done
+}
+
+\Udelcode "00021 = "0 "00021
+\Udelcode "00028 = "0 "00028
+\Udelcode "00028 = "0 "00028
+\Udelcode "00029 = "0 "00029
+\Udelcode "00029 = "0 "00029
+\Udelcode "0002F = "0 "0002F
+\Udelcode "0002F = "0 "0002F
+\Udelcode "0002F = "0 "02044
+\Udelcode "0003F = "0 "0003F
+\Udelcode "0005B = "0 "0005B
+\Udelcode "0005B = "0 "0005B
+\Udelcode "0005D = "0 "0005D
+\Udelcode "0005D = "0 "0005D
+\Udelcode "0007B = "0 "0007B
+\Udelcode "0007B = "0 "0007B
+\Udelcode "0007C = "0 "0007C
+\Udelcode "0007C = "0 "0007C
+\Udelcode "0007C = "0 "0007C
+\Udelcode "0007C = "0 "0007C
+\Udelcode "0007C = "0 "0007C
+\Udelcode "0007D = "0 "0007D
+\Udelcode "0007D = "0 "0007D
+\Udelcode "02016 = "0 "02016
+\Udelcode "02016 = "0 "02016
+\Udelcode "02016 = "0 "02016
+\Udelcode "02016 = "0 "02016
+\Udelcode "02016 = "0 "02016
+\Udelcode "02044 = "0 "02044
+\Udelcode "02044 = "0 "02044
+\Udelcode "02308 = "0 "02308
+\Udelcode "02308 = "0 "02308
+\Udelcode "02308 = "0 "02308
+\Udelcode "02308 = "0 "02308
+\Udelcode "02308 = "0 "02308
+\Udelcode "02309 = "0 "02309
+\Udelcode "02309 = "0 "02309
+\Udelcode "02309 = "0 "02309
+\Udelcode "02309 = "0 "02309
+\Udelcode "02309 = "0 "02309
+\Udelcode "0230A = "0 "0230A
+\Udelcode "0230A = "0 "0230A
+\Udelcode "0230B = "0 "0230B
+\Udelcode "0230B = "0 "0230B
+\Udelcode "0231C = "0 "0231C
+\Udelcode "0231C = "0 "0231C
+\Udelcode "0231D = "0 "0231D
+\Udelcode "0231D = "0 "0231D
+\Udelcode "0231E = "0 "0231E
+\Udelcode "0231E = "0 "0231E
+\Udelcode "0231F = "0 "0231F
+\Udelcode "0231F = "0 "0231F
+\Udelcode "023B0 = "0 "023B0
+\Udelcode "023B0 = "0 "023B0
+\Udelcode "023B1 = "0 "023B1
+\Udelcode "023B1 = "0 "023B1
+\Udelcode "027E6 = "0 "027E6
+\Udelcode "027E6 = "0 "027E6
+\Udelcode "027E7 = "0 "027E7
+\Udelcode "027E7 = "0 "027E7
+\Udelcode "027E8 = "0 "027E8
+\Udelcode "027E8 = "0 "027E8
+\Udelcode "027E9 = "0 "027E9
+\Udelcode "027E9 = "0 "027E9
+\Udelcode "027EA = "0 "027EA
+\Udelcode "027EA = "0 "027EA
+\Udelcode "027EB = "0 "027EB
+\Udelcode "027EB = "0 "027EB
+\Udelcode "027EE = "0 "027EE
+\Udelcode "027EE = "0 "027EE
+\Udelcode "027EF = "0 "027EF
+\Udelcode "027EF = "0 "027EF
+
+\Umathcode "00021 = "5 "0 "00021
+\Umathcode "00022 = "0 "0 "00022
+\Umathcode "00027 = "0 "0 "00027
+\Umathcode "00028 = "4 "0 "00028
+\Umathcode "00029 = "5 "0 "00029
+\Umathcode "0002A = "2 "0 "02217
+\Umathcode "0002B = "2 "0 "0002B
+\Umathcode "0002C = "6 "0 "0002C
+\Umathcode "0002D = "2 "0 "02212
+\Umathcode "0002E = "6 "0 "0002E
+\Umathcode "0002F = "4 "0 "02044
+\Umathcode "0003A = "3 "0 "0003A
+\Umathcode "0003B = "6 "0 "0003B
+\Umathcode "0003C = "3 "0 "0003C
+\Umathcode "0003D = "3 "0 "0003D
+\Umathcode "0003E = "3 "0 "0003E
+\Umathcode "0003F = "5 "0 "0003F
+\Umathcode "0005B = "4 "0 "0005B
+\Umathcode "0005C = "0 "0 "0005C
+\Umathcode "0005D = "5 "0 "0005D
+\Umathcode "0007B = "4 "0 "0007B
+\Umathcode "0007C = "0 "0 "0007C
+\Umathcode "0007D = "5 "0 "0007D
+\Umathcode "000A5 = "0 "0 "000A5
+\Umathcode "000A7 = "0 "0 "000A7
+\Umathcode "000AC = "0 "0 "000AC
+\Umathcode "000B1 = "2 "0 "000B1
+\Umathcode "000B6 = "0 "0 "000B6
+\Umathcode "000B7 = "2 "0 "000B7
+\Umathcode "000D7 = "2 "0 "000D7
+\Umathcode "000F0 = "0 "0 "000F0
+\Umathcode "000F7 = "2 "0 "000F7
+\Umathcode "00338 = "3 "0 "00338
+\Umathcode "003F0 = "0 "0 "003F0
+\Umathcode "02016 = "0 "0 "02016
+\Umathcode "02020 = "2 "0 "02020
+\Umathcode "02021 = "2 "0 "02021
+\Umathcode "02022 = "2 "0 "02022
+\Umathcode "02026 = "0 "0 "02026
+\Umathcode "02032 = "0 "0 "02032
+\Umathcode "02033 = "0 "0 "02033
+\Umathcode "02034 = "0 "0 "02034
+\Umathcode "02044 = "0 "0 "02044
+\Umathcode "0207A = "2 "0 "0207A
+\Umathcode "0207B = "2 "0 "0207B
+\Umathcode "020DD = "0 "0 "020DD
+\Umathcode "020DE = "0 "0 "020DE
+\Umathcode "020DF = "0 "0 "020DF
+\Umathcode "02111 = "0 "0 "02111
+\Umathcode "02113 = "0 "0 "02113
+\Umathcode "02118 = "0 "0 "02118
+\Umathcode "0211C = "0 "0 "0211C
+\Umathcode "02132 = "0 "0 "02132
+\Umathcode "02135 = "0 "0 "02135
+\Umathcode "02136 = "0 "0 "02136
+\Umathcode "02137 = "0 "0 "02137
+\Umathcode "02138 = "0 "0 "02138
+\Umathcode "02141 = "0 "0 "02141
+\Umathcode "02142 = "0 "0 "02142
+\Umathcode "02143 = "0 "0 "02143
+\Umathcode "02144 = "0 "0 "02144
+\Umathcode "02145 = "0 "0 "02145
+\Umathcode "02146 = "0 "0 "02146
+\Umathcode "02147 = "0 "0 "02147
+\Umathcode "02148 = "0 "0 "02148
+\Umathcode "02149 = "0 "0 "02149
+\Umathcode "0214A = "0 "0 "0214A
+\Umathcode "0214B = "2 "0 "0214B
+\Umathcode "02190 = "3 "0 "02190
+\Umathcode "02191 = "3 "0 "02191
+\Umathcode "02192 = "3 "0 "02192
+\Umathcode "02193 = "3 "0 "02193
+\Umathcode "02194 = "3 "0 "02194
+\Umathcode "02195 = "3 "0 "02195
+\Umathcode "02196 = "3 "0 "02196
+\Umathcode "02197 = "3 "0 "02197
+\Umathcode "02198 = "3 "0 "02198
+\Umathcode "02199 = "3 "0 "02199
+\Umathcode "0219A = "3 "0 "0219A
+\Umathcode "0219B = "3 "0 "0219B
+\Umathcode "0219C = "3 "0 "0219C
+\Umathcode "0219D = "3 "0 "0219D
+\Umathcode "0219E = "3 "0 "0219E
+\Umathcode "0219F = "3 "0 "0219F
+\Umathcode "021A0 = "3 "0 "021A0
+\Umathcode "021A1 = "3 "0 "021A1
+\Umathcode "021A2 = "3 "0 "021A2
+\Umathcode "021A3 = "3 "0 "021A3
+\Umathcode "021A4 = "3 "0 "021A4
+\Umathcode "021A5 = "3 "0 "021A5
+\Umathcode "021A6 = "3 "0 "021A6
+\Umathcode "021A7 = "3 "0 "021A7
+\Umathcode "021A8 = "0 "0 "021A8
+\Umathcode "021A9 = "3 "0 "021A9
+\Umathcode "021AA = "3 "0 "021AA
+\Umathcode "021AB = "3 "0 "021AB
+\Umathcode "021AC = "3 "0 "021AC
+\Umathcode "021AD = "3 "0 "021AD
+\Umathcode "021AE = "3 "0 "021AE
+\Umathcode "021AF = "3 "0 "021AF
+\Umathcode "021B0 = "3 "0 "021B0
+\Umathcode "021B1 = "3 "0 "021B1
+\Umathcode "021B2 = "3 "0 "021B2
+\Umathcode "021B3 = "3 "0 "021B3
+\Umathcode "021B4 = "0 "0 "021B4
+\Umathcode "021B5 = "0 "0 "021B5
+\Umathcode "021B6 = "3 "0 "021B6
+\Umathcode "021B7 = "3 "0 "021B7
+\Umathcode "021B8 = "3 "0 "021B8
+\Umathcode "021B9 = "3 "0 "021B9
+\Umathcode "021BA = "3 "0 "021BA
+\Umathcode "021BB = "3 "0 "021BB
+\Umathcode "021BC = "3 "0 "021BC
+\Umathcode "021BD = "3 "0 "021BD
+\Umathcode "021BE = "3 "0 "021BE
+\Umathcode "021BF = "3 "0 "021BF
+\Umathcode "021C0 = "3 "0 "021C0
+\Umathcode "021C1 = "3 "0 "021C1
+\Umathcode "021C2 = "3 "0 "021C2
+\Umathcode "021C3 = "3 "0 "021C3
+\Umathcode "021C4 = "3 "0 "021C4
+\Umathcode "021C5 = "3 "0 "021C5
+\Umathcode "021C6 = "3 "0 "021C6
+\Umathcode "021C7 = "3 "0 "021C7
+\Umathcode "021C8 = "3 "0 "021C8
+\Umathcode "021C9 = "3 "0 "021C9
+\Umathcode "021CA = "3 "0 "021CA
+\Umathcode "021CB = "3 "0 "021CB
+\Umathcode "021CC = "3 "0 "021CC
+\Umathcode "021CD = "3 "0 "021CD
+\Umathcode "021CE = "3 "0 "021CE
+\Umathcode "021CF = "3 "0 "021CF
+\Umathcode "021D0 = "3 "0 "021D0
+\Umathcode "021D1 = "3 "0 "021D1
+\Umathcode "021D2 = "3 "0 "021D2
+\Umathcode "021D3 = "3 "0 "021D3
+\Umathcode "021D4 = "3 "0 "021D4
+\Umathcode "021D5 = "3 "0 "021D5
+\Umathcode "021D6 = "3 "0 "021D6
+\Umathcode "021D7 = "3 "0 "021D7
+\Umathcode "021D8 = "3 "0 "021D8
+\Umathcode "021D9 = "3 "0 "021D9
+\Umathcode "021DA = "3 "0 "021DA
+\Umathcode "021DB = "3 "0 "021DB
+\Umathcode "021DC = "3 "0 "021DC
+\Umathcode "021DD = "3 "0 "021DD
+\Umathcode "021DE = "3 "0 "021DE
+\Umathcode "021DF = "3 "0 "021DF
+\Umathcode "021E0 = "3 "0 "021E0
+\Umathcode "021E1 = "3 "0 "021E1
+\Umathcode "021E2 = "3 "0 "021E2
+\Umathcode "021E3 = "3 "0 "021E3
+\Umathcode "021E4 = "3 "0 "021E4
+\Umathcode "021E5 = "3 "0 "021E5
+\Umathcode "021E6 = "0 "0 "021E6
+\Umathcode "021E7 = "0 "0 "021E7
+\Umathcode "021E8 = "0 "0 "021E8
+\Umathcode "021E9 = "0 "0 "021E9
+\Umathcode "021EB = "0 "0 "021EB
+\Umathcode "021F4 = "3 "0 "021F4
+\Umathcode "021F5 = "3 "0 "021F5
+\Umathcode "021F6 = "3 "0 "021F6
+\Umathcode "021F7 = "3 "0 "021F7
+\Umathcode "021F8 = "3 "0 "021F8
+\Umathcode "021F9 = "3 "0 "021F9
+\Umathcode "021FA = "3 "0 "021FA
+\Umathcode "021FB = "3 "0 "021FB
+\Umathcode "021FC = "3 "0 "021FC
+\Umathcode "021FD = "3 "0 "021FD
+\Umathcode "021FE = "3 "0 "021FE
+\Umathcode "021FF = "3 "0 "021FF
+\Umathcode "02200 = "0 "0 "02200
+\Umathcode "02201 = "0 "0 "02201
+\Umathcode "02202 = "0 "0 "02202
+\Umathcode "02203 = "0 "0 "02203
+\Umathcode "02204 = "0 "0 "02204
+\Umathcode "02205 = "0 "0 "02205
+\Umathcode "02208 = "3 "0 "02208
+\Umathcode "02209 = "3 "0 "02209
+\Umathcode "0220B = "3 "0 "0220B
+\Umathcode "0220C = "3 "0 "0220C
+\Umathcode "0220F = "1 "0 "0220F
+\Umathcode "02210 = "1 "0 "02210
+\Umathcode "02211 = "1 "0 "02211
+\Umathcode "02212 = "2 "0 "02212
+\Umathcode "02213 = "2 "0 "02213
+\Umathcode "02214 = "2 "0 "02214
+\Umathcode "02216 = "2 "0 "02216
+\Umathcode "02217 = "2 "0 "02217
+\Umathcode "02218 = "2 "0 "02218
+\Umathcode "02219 = "2 "0 "02219
+\Umathcode "0221D = "3 "0 "0221D
+\Umathcode "0221E = "0 "0 "0221E
+\Umathcode "0221F = "0 "0 "0221F
+\Umathcode "02220 = "0 "0 "02220
+\Umathcode "02221 = "0 "0 "02221
+\Umathcode "02222 = "0 "0 "02222
+\Umathcode "02223 = "2 "0 "02223
+\Umathcode "02224 = "2 "0 "02224
+\Umathcode "02225 = "3 "0 "02225
+\Umathcode "02226 = "3 "0 "02226
+\Umathcode "02227 = "2 "0 "02227
+\Umathcode "02228 = "2 "0 "02228
+\Umathcode "02229 = "2 "0 "02229
+\Umathcode "0222A = "2 "0 "0222A
+\Umathcode "0222B = "1 "0 "0222B
+\Umathcode "0222C = "1 "0 "0222C
+\Umathcode "0222D = "1 "0 "0222D
+\Umathcode "0222E = "1 "0 "0222E
+\Umathcode "0222F = "1 "0 "0222F
+\Umathcode "02230 = "1 "0 "02230
+\Umathcode "02231 = "1 "0 "02231
+\Umathcode "02232 = "1 "0 "02232
+\Umathcode "02233 = "1 "0 "02233
+\Umathcode "02234 = "3 "0 "02234
+\Umathcode "02235 = "3 "0 "02235
+\Umathcode "02236 = "6 "0 "02236
+\Umathcode "02237 = "3 "0 "02237
+\Umathcode "02238 = "2 "0 "02238
+\Umathcode "02239 = "3 "0 "02239
+\Umathcode "0223C = "3 "0 "0223C
+\Umathcode "0223D = "3 "0 "0223D
+\Umathcode "02240 = "2 "0 "02240
+\Umathcode "02241 = "3 "0 "02241
+\Umathcode "02242 = "3 "0 "02242
+\Umathcode "02243 = "3 "0 "02243
+\Umathcode "02244 = "3 "0 "02244
+\Umathcode "02245 = "3 "0 "02245
+\Umathcode "02246 = "3 "0 "02246
+\Umathcode "02247 = "3 "0 "02247
+\Umathcode "02248 = "3 "0 "02248
+\Umathcode "02249 = "3 "0 "02249
+\Umathcode "0224A = "3 "0 "0224A
+\Umathcode "0224C = "3 "0 "0224C
+\Umathcode "0224D = "3 "0 "0224D
+\Umathcode "0224E = "3 "0 "0224E
+\Umathcode "02250 = "3 "0 "02250
+\Umathcode "02251 = "3 "0 "02251
+\Umathcode "02252 = "3 "0 "02252
+\Umathcode "02253 = "3 "0 "02253
+\Umathcode "02254 = "3 "0 "02254
+\Umathcode "02255 = "3 "0 "02255
+\Umathcode "02256 = "3 "0 "02256
+\Umathcode "02257 = "3 "0 "02257
+\Umathcode "02259 = "3 "0 "02259
+\Umathcode "0225A = "3 "0 "0225A
+\Umathcode "0225B = "3 "0 "0225B
+\Umathcode "0225C = "3 "0 "0225C
+\Umathcode "0225D = "3 "0 "0225D
+\Umathcode "0225E = "3 "0 "0225E
+\Umathcode "0225F = "3 "0 "0225F
+\Umathcode "02260 = "3 "0 "02260
+\Umathcode "02261 = "3 "0 "02261
+\Umathcode "02262 = "3 "0 "02262
+\Umathcode "02263 = "3 "0 "02263
+\Umathcode "02264 = "3 "0 "02264
+\Umathcode "02265 = "3 "0 "02265
+\Umathcode "02266 = "3 "0 "02266
+\Umathcode "02267 = "3 "0 "02267
+\Umathcode "02268 = "3 "0 "02268
+\Umathcode "02269 = "3 "0 "02269
+\Umathcode "0226A = "3 "0 "0226A
+\Umathcode "0226B = "3 "0 "0226B
+\Umathcode "0226C = "3 "0 "0226C
+\Umathcode "0226D = "3 "0 "0226D
+\Umathcode "0226E = "3 "0 "0226E
+\Umathcode "0226F = "3 "0 "0226F
+\Umathcode "02270 = "3 "0 "02270
+\Umathcode "02271 = "3 "0 "02271
+\Umathcode "02272 = "3 "0 "02272
+\Umathcode "02273 = "3 "0 "02273
+\Umathcode "02274 = "3 "0 "02274
+\Umathcode "02275 = "3 "0 "02275
+\Umathcode "02276 = "3 "0 "02276
+\Umathcode "02277 = "3 "0 "02277
+\Umathcode "02278 = "3 "0 "02278
+\Umathcode "02279 = "3 "0 "02279
+\Umathcode "0227A = "3 "0 "0227A
+\Umathcode "0227B = "3 "0 "0227B
+\Umathcode "0227C = "3 "0 "0227C
+\Umathcode "0227D = "3 "0 "0227D
+\Umathcode "0227E = "3 "0 "0227E
+\Umathcode "0227F = "3 "0 "0227F
+\Umathcode "02280 = "3 "0 "02280
+\Umathcode "02281 = "3 "0 "02281
+\Umathcode "02282 = "3 "0 "02282
+\Umathcode "02283 = "3 "0 "02283
+\Umathcode "02284 = "3 "0 "02284
+\Umathcode "02285 = "3 "0 "02285
+\Umathcode "02286 = "3 "0 "02286
+\Umathcode "02287 = "3 "0 "02287
+\Umathcode "02288 = "3 "0 "02288
+\Umathcode "02289 = "3 "0 "02289
+\Umathcode "0228A = "3 "0 "0228A
+\Umathcode "0228B = "3 "0 "0228B
+\Umathcode "0228E = "2 "0 "0228E
+\Umathcode "0228F = "3 "0 "0228F
+\Umathcode "02290 = "3 "0 "02290
+\Umathcode "02291 = "2 "0 "02291
+\Umathcode "02292 = "2 "0 "02292
+\Umathcode "02293 = "2 "0 "02293
+\Umathcode "02294 = "2 "0 "02294
+\Umathcode "02295 = "2 "0 "02295
+\Umathcode "02296 = "2 "0 "02296
+\Umathcode "02297 = "2 "0 "02297
+\Umathcode "02298 = "2 "0 "02298
+\Umathcode "02299 = "2 "0 "02299
+\Umathcode "0229A = "2 "0 "0229A
+\Umathcode "0229B = "2 "0 "0229B
+\Umathcode "0229C = "2 "0 "0229C
+\Umathcode "0229D = "2 "0 "0229D
+\Umathcode "0229E = "2 "0 "0229E
+\Umathcode "0229F = "2 "0 "0229F
+\Umathcode "022A0 = "2 "0 "022A0
+\Umathcode "022A1 = "2 "0 "022A1
+\Umathcode "022A2 = "3 "0 "022A2
+\Umathcode "022A3 = "3 "0 "022A3
+\Umathcode "022A4 = "0 "0 "022A4
+\Umathcode "022A5 = "0 "0 "022A5
+\Umathcode "022A7 = "3 "0 "022A7
+\Umathcode "022A8 = "3 "0 "022A8
+\Umathcode "022A9 = "3 "0 "022A9
+\Umathcode "022AA = "3 "0 "022AA
+\Umathcode "022AB = "3 "0 "022AB
+\Umathcode "022AC = "3 "0 "022AC
+\Umathcode "022AD = "3 "0 "022AD
+\Umathcode "022AE = "3 "0 "022AE
+\Umathcode "022AF = "3 "0 "022AF
+\Umathcode "022B2 = "2 "0 "022B2
+\Umathcode "022B3 = "2 "0 "022B3
+\Umathcode "022B8 = "3 "0 "022B8
+\Umathcode "022BA = "2 "0 "022BA
+\Umathcode "022BB = "2 "0 "022BB
+\Umathcode "022BC = "2 "0 "022BC
+\Umathcode "022C0 = "1 "0 "022C0
+\Umathcode "022C1 = "1 "0 "022C1
+\Umathcode "022C2 = "1 "0 "022C2
+\Umathcode "022C3 = "1 "0 "022C3
+\Umathcode "022C4 = "2 "0 "022C4
+\Umathcode "022C5 = "2 "0 "022C5
+\Umathcode "022C6 = "2 "0 "022C6
+\Umathcode "022C7 = "2 "0 "022C7
+\Umathcode "022C8 = "3 "0 "022C8
+\Umathcode "022C9 = "2 "0 "022C9
+\Umathcode "022CA = "2 "0 "022CA
+\Umathcode "022CB = "2 "0 "022CB
+\Umathcode "022CC = "2 "0 "022CC
+\Umathcode "022CE = "2 "0 "022CE
+\Umathcode "022CF = "2 "0 "022CF
+\Umathcode "022D0 = "3 "0 "022D0
+\Umathcode "022D1 = "3 "0 "022D1
+\Umathcode "022D2 = "2 "0 "022D2
+\Umathcode "022D3 = "2 "0 "022D3
+\Umathcode "022D4 = "3 "0 "022D4
+\Umathcode "022D6 = "2 "0 "022D6
+\Umathcode "022D7 = "2 "0 "022D7
+\Umathcode "022D8 = "3 "0 "022D8
+\Umathcode "022D9 = "3 "0 "022D9
+\Umathcode "022DA = "3 "0 "022DA
+\Umathcode "022DB = "3 "0 "022DB
+\Umathcode "022DC = "3 "0 "022DC
+\Umathcode "022DD = "3 "0 "022DD
+\Umathcode "022DE = "3 "0 "022DE
+\Umathcode "022DF = "3 "0 "022DF
+\Umathcode "022E0 = "3 "0 "022E0
+\Umathcode "022E1 = "3 "0 "022E1
+\Umathcode "022E2 = "3 "0 "022E2
+\Umathcode "022E3 = "3 "0 "022E3
+\Umathcode "022E4 = "3 "0 "022E4
+\Umathcode "022E5 = "3 "0 "022E5
+\Umathcode "022E6 = "3 "0 "022E6
+\Umathcode "022E7 = "3 "0 "022E7
+\Umathcode "022E8 = "3 "0 "022E8
+\Umathcode "022E9 = "3 "0 "022E9
+\Umathcode "022EA = "3 "0 "022EA
+\Umathcode "022EB = "3 "0 "022EB
+\Umathcode "022EC = "3 "0 "022EC
+\Umathcode "022ED = "3 "0 "022ED
+\Umathcode "022EE = "0 "0 "022EE
+\Umathcode "022EF = "0 "0 "022EF
+\Umathcode "022F0 = "0 "0 "022F0
+\Umathcode "022F1 = "0 "0 "022F1
+\Umathcode "02300 = "0 "0 "02300
+\Umathcode "02308 = "4 "0 "02308
+\Umathcode "02309 = "5 "0 "02309
+\Umathcode "0230A = "4 "0 "0230A
+\Umathcode "0230B = "5 "0 "0230B
+\Umathcode "0231C = "4 "0 "0231C
+\Umathcode "0231D = "5 "0 "0231D
+\Umathcode "0231E = "4 "0 "0231E
+\Umathcode "0231F = "5 "0 "0231F
+\Umathcode "02322 = "3 "0 "02322
+\Umathcode "02323 = "3 "0 "02323
+\Umathcode "023B0 = "4 "0 "023B0
+\Umathcode "023B1 = "5 "0 "023B1
+\Umathcode "024C7 = "0 "0 "024C7
+\Umathcode "024C8 = "0 "0 "024C8
+\Umathcode "025A0 = "0 "0 "025A0
+\Umathcode "025A1 = "0 "0 "025A1
+\Umathcode "025A2 = "0 "0 "025A2
+\Umathcode "025B2 = "2 "0 "025B2
+\Umathcode "025B3 = "0 "0 "025B3
+\Umathcode "025B6 = "2 "0 "025B6
+\Umathcode "025B7 = "2 "0 "025B7
+\Umathcode "025BC = "2 "0 "025BC
+\Umathcode "025BD = "2 "0 "025BD
+\Umathcode "025C0 = "2 "0 "025C0
+\Umathcode "025C1 = "2 "0 "025C1
+\Umathcode "025CA = "0 "0 "025CA
+\Umathcode "025EF = "2 "0 "025EF
+\Umathcode "02605 = "0 "0 "02605
+\Umathcode "02660 = "0 "0 "02660
+\Umathcode "02661 = "0 "0 "02661
+\Umathcode "02662 = "0 "0 "02662
+\Umathcode "02663 = "0 "0 "02663
+\Umathcode "02666 = "0 "0 "02666
+\Umathcode "0266D = "0 "0 "0266D
+\Umathcode "0266E = "0 "0 "0266E
+\Umathcode "0266F = "0 "0 "0266F
+\Umathcode "02713 = "0 "0 "02713
+\Umathcode "02720 = "0 "0 "02720
+\Umathcode "027E6 = "4 "0 "027E6
+\Umathcode "027E7 = "5 "0 "027E7
+\Umathcode "027E8 = "4 "0 "027E8
+\Umathcode "027E9 = "5 "0 "027E9
+\Umathcode "027EA = "4 "0 "027EA
+\Umathcode "027EB = "5 "0 "027EB
+\Umathcode "027EE = "4 "0 "027EE
+\Umathcode "027EF = "5 "0 "027EF
+\Umathcode "027F5 = "3 "0 "027F5
+\Umathcode "027F6 = "3 "0 "027F6
+\Umathcode "027F7 = "3 "0 "027F7
+\Umathcode "027F8 = "3 "0 "027F8
+\Umathcode "027F9 = "3 "0 "027F9
+\Umathcode "027FA = "3 "0 "027FA
+\Umathcode "027FB = "3 "0 "027FB
+\Umathcode "027FC = "3 "0 "027FC
+\Umathcode "027FD = "3 "0 "027FD
+\Umathcode "027FE = "3 "0 "027FE
+\Umathcode "027FF = "3 "0 "027FF
+\Umathcode "02906 = "3 "0 "02906
+\Umathcode "02907 = "3 "0 "02907
+\Umathcode "0290A = "3 "0 "0290A
+\Umathcode "0290B = "3 "0 "0290B
+\Umathcode "0290C = "3 "0 "0290C
+\Umathcode "0290D = "3 "0 "0290D
+\Umathcode "02911 = "3 "0 "02911
+\Umathcode "02916 = "3 "0 "02916
+\Umathcode "02917 = "3 "0 "02917
+\Umathcode "02921 = "3 "0 "02921
+\Umathcode "02922 = "3 "0 "02922
+\Umathcode "02923 = "3 "0 "02923
+\Umathcode "02924 = "3 "0 "02924
+\Umathcode "02925 = "3 "0 "02925
+\Umathcode "02926 = "3 "0 "02926
+\Umathcode "02A00 = "1 "0 "02A00
+\Umathcode "02A01 = "1 "0 "02A01
+\Umathcode "02A02 = "1 "0 "02A02
+\Umathcode "02A03 = "1 "0 "02A03
+\Umathcode "02A04 = "1 "0 "02A04
+\Umathcode "02A05 = "1 "0 "02A05
+\Umathcode "02A06 = "1 "0 "02A06
+\Umathcode "02A09 = "1 "0 "02A09
+\Umathcode "02A3F = "2 "0 "02A3F
+\Umathcode "02A7D = "3 "0 "02A7D
+\Umathcode "02A7E = "3 "0 "02A7E
+\Umathcode "02A85 = "3 "0 "02A85
+\Umathcode "02A86 = "3 "0 "02A86
+\Umathcode "02A87 = "3 "0 "02A87
+\Umathcode "02A88 = "3 "0 "02A88
+\Umathcode "02A89 = "3 "0 "02A89
+\Umathcode "02A8A = "3 "0 "02A8A
+\Umathcode "02A8B = "3 "0 "02A8B
+\Umathcode "02A8C = "3 "0 "02A8C
+\Umathcode "02A95 = "3 "0 "02A95
+\Umathcode "02A96 = "3 "0 "02A96
+\Umathcode "02AAF = "3 "0 "02AAF
+\Umathcode "02AB0 = "3 "0 "02AB0
+\Umathcode "02AB1 = "3 "0 "02AB1
+\Umathcode "02AB2 = "3 "0 "02AB2
+\Umathcode "02AB3 = "3 "0 "02AB3
+\Umathcode "02AB4 = "3 "0 "02AB4
+\Umathcode "02AB5 = "3 "0 "02AB5
+\Umathcode "02AB6 = "3 "0 "02AB6
+\Umathcode "02AB7 = "3 "0 "02AB7
+\Umathcode "02AB8 = "3 "0 "02AB8
+\Umathcode "02AB9 = "3 "0 "02AB9
+\Umathcode "02ABA = "3 "0 "02ABA
+\Umathcode "02AC5 = "3 "0 "02AC5
+\Umathcode "02AC6 = "3 "0 "02AC6
+\Umathcode "02ACB = "3 "0 "02ACB
+\Umathcode "02ACC = "3 "0 "02ACC
+\Umathcode "12035 = "0 "0 "12035
+\Umathcode "1D6A4 = "0 "0 "1D6A4
+\Umathcode "1D6A5 = "0 "0 "1D6A5
+\Umathcode "1D6FB = "0 "0 "1D6FB
+\Umathcode "1D717 = "0 "0 "1D717
+\Umathcode "1D718 = "0 "0 "1D718
+
+% gaps .. done in lua (as example)
+
+% \Umathcode "1D455 = "0 "0 "0210E
+% \Umathcode "1D49D = "0 "0 "0212C
+% \Umathcode "1D4A0 = "0 "0 "02130
+% \Umathcode "1D4A1 = "0 "0 "02131
+% \Umathcode "1D4A3 = "0 "0 "0210B
+% \Umathcode "1D4A4 = "0 "0 "02110
+% \Umathcode "1D4A7 = "0 "0 "02112
+% \Umathcode "1D4A8 = "0 "0 "02133
+% \Umathcode "1D4AD = "0 "0 "0211B
+% \Umathcode "1D4BA = "0 "0 "0212F
+% \Umathcode "1D4BC = "0 "0 "0210A
+% \Umathcode "1D4C4 = "0 "0 "02134
+% \Umathcode "1D506 = "0 "0 "0212D
+% \Umathcode "1D50B = "0 "0 "0210C
+% \Umathcode "1D50C = "0 "0 "02111
+% \Umathcode "1D515 = "0 "0 "0211C
+% \Umathcode "1D51D = "0 "0 "02128
+% \Umathcode "1D53A = "0 "0 "02102
+% \Umathcode "1D53F = "0 "0 "0210D
+% \Umathcode "1D545 = "0 "0 "02115
+% \Umathcode "1D547 = "0 "0 "02119
+% \Umathcode "1D548 = "0 "0 "0211A
+% \Umathcode "1D549 = "0 "0 "0211D
+% \Umathcode "1D551 = "0 "0 "02124
+
+% initialization
+
+\the\everymathit
+
+% a couple of definitions:
+
+\def\acute {\Umathaccent"0"0"0000B4 }
+\def\acwopencirclearrow {\Umathchar "3"0"0021BA }
+\def\aleph {\Umathchar "0"0"002135 }
+\def\Alpha {\Umathchar "0"0"000391 }
+\def\alpha {\Umathchar "0"0"0003B1 }
+\def\amalg {\Umathchar "2"0"002A3F }
+\def\angle {\Umathchar "0"0"002220 }
+\def\Angstrom {\Umathchar "0"0"00212B }
+\def\approx {\Umathchar "3"0"002248 }
+\def\approxEq {\Umathchar "3"0"002245 }
+\def\approxeq {\Umathchar "3"0"00224A }
+\def\approxnEq {\Umathchar "3"0"002247 }
+\def\arrowvert {\Umathchar "0"0"00007C }
+\def\Arrowvert {\Umathchar "0"0"002016 }
+\def\ast {\Umathchar "2"0"002217 }
+\def\ast {\Umathchar "2"0"002217 }
+\def\asymp {\Umathchar "3"0"00224D }
+\def\backepsilon {\Umathchar "0"0"0003F6 }
+\def\backprime {\Umathchar "0"0"012035 }
+\def\backsim {\Umathchar "3"0"00223D }
+\def\backslash {\Umathchar "0"0"00005C }
+\def\bar {\Umathaccent"0"0"0000AF }
+\def\barleftarrow {\Umathchar "3"0"0021E4 }
+\def\barleftarrowrightarrowbar {\Umathchar "3"0"0021B9 }
+\def\barovernorthwestarrow {\Umathchar "3"0"0021B8 }
+\def\barwedge {\Umathchar "2"0"0022BC }
+\def\because {\Umathchar "3"0"002235 }
+\def\Beta {\Umathchar "0"0"000392 }
+\def\beta {\Umathchar "0"0"0003B2 }
+\def\beth {\Umathchar "0"0"002136 }
+\def\between {\Umathchar "3"0"00226C }
+\def\bigcap {\Umathchar "1"0"0022C2 }
+\def\bigcirc {\Umathchar "2"0"0025EF }
+\def\bigcircle {\Umathchar "2"0"0020DD }
+\def\bigcircle {\Umathchar "2"0"0020DD }
+\def\bigcup {\Umathchar "1"0"0022C3 }
+\def\bigdiamond {\Umathchar "0"0"0020DF }
+\def\bigodot {\Umathchar "1"0"002A00 }
+\def\bigoplus {\Umathchar "1"0"002A01 }
+\def\bigotimes {\Umathchar "1"0"002A02 }
+\def\bigsqcap {\Umathchar "1"0"002A05 }
+\def\bigsqcup {\Umathchar "1"0"002A06 }
+\def\bigsquare {\Umathchar "0"0"0020DE }
+\def\bigstar {\Umathchar "0"0"002605 }
+\def\bigtimes {\Umathchar "1"0"002A09 }
+\def\bigtriangledown {\Umathchar "2"0"0025BD }
+\def\bigtriangleup {\Umathchar "2"0"0025B3 }
+\def\bigudot {\Umathchar "1"0"002A03 }
+\def\biguplus {\Umathchar "1"0"002A04 }
+\def\bigvee {\Umathchar "1"0"0022C1 }
+\def\bigwedge {\Umathchar "1"0"0022C0 }
+\def\blacklozenge {\Umathchar "0"0"002666 }
+\def\blacksquare {\Umathchar "0"0"0025A0 }
+\def\blacktriangle {\Umathchar "2"0"0025B2 }
+\def\blacktriangledown {\Umathchar "2"0"0025BC }
+\def\blacktriangleleft {\Umathchar "2"0"0025C0 }
+\def\blacktriangleright {\Umathchar "2"0"0025B6 }
+\def\bot {\Umathchar "0"0"0022A5 }
+\def\bowtie {\Umathchar "3"0"0022C8 }
+\def\Box {\Umathchar "0"0"0025A1 }
+\def\boxdot {\Umathchar "2"0"0022A1 }
+\def\boxminus {\Umathchar "2"0"00229F }
+\def\boxplus {\Umathchar "2"0"00229E }
+\def\boxtimes {\Umathchar "2"0"0022A0 }
+%def\braceld {\Umathchar "0"0"000000 }
+%def\bracerd {\Umathchar "0"0"000000 }
+%def\bracelu {\Umathchar "0"0"000000 }
+%def\braceru {\Umathchar "0"0"000000 }
+\def\breve {\Umathaccent"0"0"0002D8 }
+\def\bullet {\Umathchar "2"0"002022 }
+\def\bullet {\Umathchar "2"0"002022 }
+\def\Bumpeq {\Umathchar "3"0"00224E }
+\def\cap {\Umathchar "2"0"002229 }
+\def\Cap {\Umathchar "2"0"0022D2 }
+\def\carriagereturn {\Umathchar "0"0"0021B5 }
+\def\cdot {\Umathchar "2"0"0022C5 }
+\def\cdotp {\Umathchar "6"0"0022C5 }
+\def\cdots {\Umathchar "0"0"0022EF }
+\def\centerdot {\Umathchar "2"0"0000B7 }
+\def\check {\Umathaccent"0"0"0002C7 }
+\def\checkmark {\Umathchar "0"0"002713 }
+\def\Chi {\Umathchar "0"0"0003A7 }
+\def\chi {\Umathchar "0"0"0003C7 }
+\def\circ {\Umathchar "2"0"002218 }
+\def\circeq {\Umathchar "3"0"002257 }
+\def\circlearrowleft {\Umathchar "3"0"0021BB }
+\def\circlearrowright {\Umathchar "3"0"0021BA }
+\def\circledast {\Umathchar "2"0"00229B }
+\def\circledcirc {\Umathchar "2"0"00229A }
+\def\circleddash {\Umathchar "2"0"00229D }
+\def\circledequals {\Umathchar "2"0"00229C }
+\def\circledR {\Umathchar "0"0"0024C7 }
+\def\circledS {\Umathchar "0"0"0024C8 }
+\def\circleonrightarrow {\Umathchar "3"0"0021F4 }
+\def\clubsuit {\Umathchar "0"0"002663 }
+\def\colon {\Umathchar "6"0"002236 }
+\def\colonequals {\Umathchar "3"0"002254 }
+\def\complement {\Umathchar "0"0"002201 }
+\def\complexes {\Umathchar "0"0"002102 }
+\def\cong {\Umathchar "3"0"002245 }
+\def\coprod {\Umathchar "1"0"002210 }
+\def\cup {\Umathchar "2"0"00222A }
+\def\Cup {\Umathchar "2"0"0022D3 }
+\def\curlyeqprec {\Umathchar "3"0"0022DE }
+\def\curlyeqsucc {\Umathchar "3"0"0022DF }
+\def\curlyvee {\Umathchar "2"0"0022CE }
+\def\curlywedge {\Umathchar "2"0"0022CF }
+\def\curvearrowleft {\Umathchar "3"0"0021B6 }
+\def\curvearrowright {\Umathchar "3"0"0021B7 }
+\def\cwopencirclearrow {\Umathchar "3"0"0021BB }
+\def\dag {\Umathchar "0"0"002020 }
+\def\dagger {\Umathchar "2"0"002020 }
+\def\daleth {\Umathchar "0"0"002138 }
+\def\dasharrow {\Umathchar "3"0"0021E2 }
+\def\dashedleftarrow {\Umathchar "3"0"00290C }
+\def\dashedrightarrow {\Umathchar "3"0"00290D }
+\def\dashv {\Umathchar "3"0"0022A3 }
+\def\ddag {\Umathchar "0"0"002021 }
+\def\ddagger {\Umathchar "2"0"002021 }
+\def\dddot {\Umathaccent"0"0"0020DB }
+\def\ddot {\Umathaccent"0"0"0000A8 }
+\def\ddots {\Umathchar "0"0"0022F1 }
+\def\Ddownarrow {\Umathchar "3"0"00290B }
+\def\definedeq {\Umathchar "3"0"00225D }
+\def\Delta {\Umathchar "0"0"000394 }
+\def\delta {\Umathchar "0"0"0003B4 }
+\def\diamond {\Umathchar "2"0"0022C4 }
+\def\diamondsuit {\Umathchar "0"0"002662 }
+\def\differentialD {\Umathchar "0"0"002145 }
+\def\differentiald {\Umathchar "0"0"002146 }
+\def\digamma {\Umathchar "0"0"0003DC }
+\def\div {\Umathchar "2"0"0000F7 }
+\def\divideontimes {\Umathchar "2"0"0022C7 }
+\def\divides {\Umathchar "2"0"002223 }
+\def\dot {\Umathaccent"0"0"0002D9 }
+\def\doteq {\Umathchar "3"0"002250 }
+\def\Doteq {\Umathchar "3"0"002251 }
+\def\doteqdot {\Umathchar "3"0"002251 }
+\def\dotminus {\Umathchar "2"0"002238 }
+\def\dotplus {\Umathchar "2"0"002214 }
+\def\dots {\Umathchar "0"0"002026 }
+\def\dottedrightarrow {\Umathchar "3"0"002911 }
+\def\doublecap {\Umathchar "2"0"0022D2 }
+\def\doublecup {\Umathchar "2"0"0022D3 }
+\def\doubleprime {\Umathchar "0"0"002033 }
+\def\downarrow {\Umathchar "3"0"002193 }
+\def\Downarrow {\Umathchar "3"0"0021D3 }
+\def\downdasharrow {\Umathchar "3"0"0021E3 }
+\def\downdownarrows {\Umathchar "3"0"0021CA }
+\def\downharpoonleft {\Umathchar "3"0"0021C3 }
+\def\downharpoonright {\Umathchar "3"0"0021C2 }
+\def\downuparrows {\Umathchar "3"0"0021F5 }
+\def\downwhitearrow {\Umathchar "0"0"0021E9 }
+\def\downzigzagarrow {\Umathchar "3"0"0021AF }
+\def\ell {\Umathchar "0"0"002113 }
+\def\emptyset {\Umathchar "0"0"002205 }
+\def\Epsilon {\Umathchar "0"0"000395 }
+\def\epsilon {\Umathchar "0"0"0003F5 }
+\def\eq {\Umathchar "3"0"00003D }
+\def\eqcirc {\Umathchar "3"0"002256 }
+\def\eqgtr {\Umathchar "3"0"0022DD }
+\def\eqless {\Umathchar "3"0"0022DC }
+\def\eqsim {\Umathchar "3"0"002242 }
+\def\eqslantgtr {\Umathchar "3"0"002A96 }
+\def\eqslantless {\Umathchar "3"0"002A95 }
+\def\equalscolon {\Umathchar "3"0"002255 }
+\def\equiv {\Umathchar "3"0"002261 }
+\def\Eta {\Umathchar "0"0"000397 }
+\def\eta {\Umathchar "0"0"0003B7 }
+\def\eth {\Umathchar "0"0"0000F0 }
+\def\Eulerconst {\Umathchar "0"0"002107 }
+\def\exists {\Umathchar "0"0"002203 }
+\def\exponentiale {\Umathchar "0"0"002147 }
+\def\fallingdotseq {\Umathchar "3"0"002252 }
+\def\Finv {\Umathchar "0"0"002132 }
+\def\flat {\Umathchar "0"0"00266D }
+\def\forall {\Umathchar "0"0"002200 }
+\def\frown {\Umathchar "3"0"002322 }
+\def\Game {\Umathchar "0"0"002141 }
+\def\Gamma {\Umathchar "0"0"000393 }
+\def\gamma {\Umathchar "0"0"0003B3 }
+\def\ge {\Umathchar "3"0"002265 }
+\def\geq {\Umathchar "3"0"002265 }
+\def\geqq {\Umathchar "3"0"002267 }
+\def\geqslant {\Umathchar "3"0"002A7E }
+\def\gets {\Umathchar "3"0"002190 }
+\def\gg {\Umathchar "3"0"00226B }
+\def\ggg {\Umathchar "3"0"0022D9 }
+\def\gggtr {\Umathchar "3"0"0022D9 }
+\def\gimel {\Umathchar "0"0"002137 }
+\def\gnapprox {\Umathchar "3"0"002A8A }
+\def\gneqq {\Umathchar "3"0"002269 }
+\def\gnsim {\Umathchar "3"0"0022E7 }
+\def\grave {\Umathaccent"0"0"000060 }
+\def\gt {\Umathchar "3"0"00003E }
+\def\gtrapprox {\Umathchar "3"0"002A86 }
+\def\gtrdot {\Umathchar "2"0"0022D7 }
+\def\gtreqless {\Umathchar "3"0"0022DB }
+\def\gtreqqless {\Umathchar "3"0"002A8C }
+\def\gtrless {\Umathchar "3"0"002277 }
+\def\gtrsim {\Umathchar "3"0"002273 }
+\def\hat {\Umathaccent"0"0"0002C6 }
+\def\hbar {\Umathchar "0"0"00210F }
+\def\heartsuit {\Umathchar "0"0"002661 }
+\def\hookleftarrow {\Umathchar "3"0"0021A9 }
+\def\hookrightarrow {\Umathchar "3"0"0021AA }
+\def\hslash {\Umathchar "0"0"00210F }
+\def\iiint {\Umathchar "1"0"00222D }
+\def\iiintop {\Umathchar "0"0"00222D }
+\def\iint {\Umathchar "1"0"00222C }
+\def\iintop {\Umathchar "0"0"00222C }
+\def\Im {\Umathchar "0"0"002111 }
+\def\imaginaryi {\Umathchar "0"0"002148 }
+\def\imaginaryj {\Umathchar "0"0"002149 }
+\def\imath {\Umathchar "0"0"01D6A4 }
+\def\imply {\Umathchar "3"0"0021D2 }
+\def\in {\Umathchar "0"0"002208 }
+\def\infty {\Umathchar "0"0"00221E }
+\def\int {\Umathchar "1"0"00222B }
+\def\intclockwise {\Umathchar "1"0"002231 }
+\def\integers {\Umathchar "0"0"002124 }
+\def\intercal {\Umathchar "2"0"0022BA }
+\def\intop {\Umathchar "0"0"00222B }
+\def\Iota {\Umathchar "0"0"000399 }
+\def\iota {\Umathchar "0"0"0003B9 }
+\def\jmath {\Umathchar "0"0"01D6A5 }
+\def\Join {\Umathchar "3"0"0022C8 }
+\def\Kappa {\Umathchar "0"0"00039A }
+\def\kappa {\Umathchar "0"0"0003BA }
+\def\Lambda {\Umathchar "0"0"00039B }
+\def\lambda {\Umathchar "0"0"0003BB }
+\def\land {\Umathchar "2"0"002227 }
+\def\langle {\Udelimiter "4"0"0027E8 }
+\def\lbrace {\Udelimiter "4"0"00007B }
+\def\lbrack {\Udelimiter "4"0"00005B }
+\def\lceil {\Udelimiter "4"0"002308 }
+\def\lceiling {\Udelimiter "4"0"002308 }
+\def\ldotp {\Umathchar "6"0"00002E }
+\def\ldots {\Umathchar "0"0"002026 }
+\def\Ldsh {\Umathchar "3"0"0021B2 }
+\def\le {\Umathchar "3"0"002264 }
+\def\leadsto {\Umathchar "3"0"0021DD }
+\def\leftarrow {\Umathchar "3"0"002190 }
+\def\Leftarrow {\Umathchar "3"0"0021D0 }
+\def\leftarrowtail {\Umathchar "3"0"0021A2 }
+\def\leftarrowtriangle {\Umathchar "3"0"0021FD }
+\def\leftdasharrow {\Umathchar "3"0"0021E0 }
+\def\leftharpoondown {\Umathchar "3"0"0021BD }
+\def\leftharpoonup {\Umathchar "3"0"0021BC }
+\def\leftleftarrows {\Umathchar "3"0"0021C7 }
+\def\leftrightarrow {\Umathchar "3"0"002194 }
+\def\Leftrightarrow {\Umathchar "3"0"0021D4 }
+\def\leftrightarrows {\Umathchar "3"0"0021C6 }
+\def\leftrightarrowtriangle {\Umathchar "3"0"0021FF }
+\def\leftrightharpoons {\Umathchar "3"0"0021CB }
+\def\leftrightsquigarrow {\Umathchar "3"0"0021AD }
+\def\leftsquigarrow {\Umathchar "3"0"0021DC }
+\def\leftthreetimes {\Umathchar "2"0"0022CB }
+\def\leftwavearrow {\Umathchar "3"0"00219C }
+\def\leftwhitearrow {\Umathchar "0"0"0021E6 }
+\def\leq {\Umathchar "3"0"002264 }
+\def\leqq {\Umathchar "3"0"002266 }
+\def\leqslant {\Umathchar "3"0"002A7D }
+\def\lessapprox {\Umathchar "3"0"002A85 }
+\def\lessdot {\Umathchar "2"0"0022D6 }
+\def\lesseqgtr {\Umathchar "3"0"0022DA }
+\def\lesseqqgtr {\Umathchar "3"0"002A8B }
+\def\lessgtr {\Umathchar "3"0"002276 }
+\def\lesssim {\Umathchar "3"0"002272 }
+\def\lfloor {\Udelimiter "4"0"00230A }
+\def\lgroup {\Udelimiter "4"0"0027EE }
+\def\lhook {\Umathchar "3"0"0FE322 }
+\def\lhooknwarrow {\Umathchar "3"0"002923 }
+\def\lhooksearrow {\Umathchar "3"0"002925 }
+\def\linefeed {\Umathchar "0"0"0021B4 }
+\def\ll {\Umathchar "3"0"00226A }
+\def\llangle {\Udelimiter "4"0"0027EA }
+\def\llbracket {\Udelimiter "4"0"0027E6 }
+\def\llcorner {\Udelimiter "4"0"00231E }
+\def\Lleftarrow {\Umathchar "3"0"0021DA }
+\def\lll {\Umathchar "3"0"0022D8 }
+\def\llless {\Umathchar "3"0"0022D8 }
+\def\lmoustache {\Udelimiter "4"0"0023B0 }
+\def\lnapprox {\Umathchar "3"0"002A89 }
+\def\lneq {\Umathchar "3"0"002A87 }
+\def\lneqq {\Umathchar "3"0"002268 }
+\def\lnot {\Umathchar "0"0"0000AC }
+\def\lnsim {\Umathchar "3"0"0022E6 }
+\def\longleftarrow {\Umathchar "3"0"0027F5 }
+\def\Longleftarrow {\Umathchar "3"0"0027F8 }
+\def\longleftrightarrow {\Umathchar "3"0"0027F7 }
+\def\Longleftrightarrow {\Umathchar "3"0"0027FA }
+\def\longmapsfrom {\Umathchar "3"0"0027FB }
+\def\Longmapsfrom {\Umathchar "3"0"0027FD }
+\def\longmapsto {\Umathchar "3"0"0027FC }
+\def\Longmapsto {\Umathchar "3"0"0027FE }
+\def\longrightarrow {\Umathchar "3"0"0027F6 }
+\def\Longrightarrow {\Umathchar "3"0"0027F9 }
+\def\longrightsquigarrow {\Umathchar "3"0"0027FF }
+\def\looparrowleft {\Umathchar "3"0"0021AB }
+\def\looparrowright {\Umathchar "3"0"0021AC }
+\def\lor {\Umathchar "2"0"002228 }
+\def\lozenge {\Umathchar "0"0"0025CA }
+\def\lparent {\Udelimiter "4"0"000028 }
+\def\lrcorner {\Udelimiter "5"0"00231F }
+\def\Lsh {\Umathchar "3"0"0021B0 }
+\def\lt {\Umathchar "3"0"00003C }
+\def\ltimes {\Umathchar "2"0"0022C9 }
+\def\lvert {\Udelimiter "4"0"00007C }
+\def\lVert {\Udelimiter "4"0"002016 }
+\def\maltese {\Umathchar "0"0"002720 }
+\def\mapsdown {\Umathchar "3"0"0021A7 }
+\def\mapsfrom {\Umathchar "3"0"0021A4 }
+\def\Mapsfrom {\Umathchar "3"0"002906 }
+\def\mapsfromchar {\Umathchar "3"0"0FE324 }
+\def\mapsto {\Umathchar "3"0"0021A6 }
+\def\Mapsto {\Umathchar "3"0"002907 }
+\def\mapstochar {\Umathchar "3"0"0FE321 }
+\def\mapsup {\Umathchar "3"0"0021A5 }
+\def\mathring {\Umathaccent"0"0"0002DA }
+\def\measuredangle {\Umathchar "0"0"002221 }
+\def\measuredeq {\Umathchar "3"0"00225E }
+\def\mho {\Umathchar "0"0"002127 }
+\def\mid {\Umathchar "3"0"00007C }
+\def\minus {\Umathchar "2"0"002212 }
+\def\minuscolon {\Umathchar "2"0"002239 }
+\def\models {\Umathchar "3"0"0022A7 }
+\def\mp {\Umathchar "2"0"002213 }
+\def\Mu {\Umathchar "0"0"00039C }
+\def\mu {\Umathchar "0"0"0003BC }
+\def\multimap {\Umathchar "3"0"0022B8 }
+\def\napprox {\Umathchar "3"0"002249 }
+\def\napproxEq {\Umathchar "3"0"002246 }
+\def\nasymp {\Umathchar "3"0"00226D }
+\def\natural {\Umathchar "0"0"00266E }
+\def\naturalnumbers {\Umathchar "0"0"002115 }
+\def\ncong {\Umathchar "3"0"002246 }
+\def\ndivides {\Umathchar "2"0"002224 }
+\def\ne {\Umathchar "3"0"002260 }
+\def\nearrow {\Umathchar "3"0"002197 }
+\def\Nearrow {\Umathchar "3"0"0021D7 }
+\def\neg {\Umathchar "0"0"0000AC }
+\def\negativesign {\Umathchar "2"0"00207B }
+\def\neq {\Umathchar "3"0"002260 }
+\def\nequiv {\Umathchar "3"0"002262 }
+\def\neswarrow {\Umathchar "3"0"002922 }
+\def\nexists {\Umathchar "0"0"002204 }
+\def\ngeq {\Umathchar "3"0"002271 }
+\def\ngtr {\Umathchar "3"0"00226F }
+\def\ngtrless {\Umathchar "3"0"002279 }
+\def\ngtrsim {\Umathchar "3"0"002275 }
+\def\nHdownarrow {\Umathchar "3"0"0021DF }
+\def\nHuparrow {\Umathchar "3"0"0021DE }
+\def\ni {\Umathchar "3"0"00220B }
+\def\nin {\Umathchar "3"0"002209 }
+\def\nleftarrow {\Umathchar "3"0"00219A }
+\def\nLeftarrow {\Umathchar "3"0"0021CD }
+\def\nleftrightarrow {\Umathchar "3"0"0021AE }
+\def\nLeftrightarrow {\Umathchar "3"0"0021CE }
+\def\nleq {\Umathchar "3"0"002270 }
+\def\nless {\Umathchar "3"0"00226E }
+\def\nlessgtr {\Umathchar "3"0"002278 }
+\def\nlesssim {\Umathchar "3"0"002274 }
+\def\nmid {\Umathchar "3"0"002224 }
+\def\nni {\Umathchar "3"0"00220C }
+\def\not {\Umathchar "3"0"000338 }
+\def\notin {\Umathchar "3"0"002209 }
+\def\nowns {\Umathchar "3"0"00220C }
+\def\nparallel {\Umathchar "3"0"002226 }
+\def\nprec {\Umathchar "3"0"002280 }
+\def\npreccurlyeq {\Umathchar "3"0"0022E0 }
+\def\nrightarrow {\Umathchar "3"0"00219B }
+\def\nRightarrow {\Umathchar "3"0"0021CF }
+\def\nsim {\Umathchar "3"0"002241 }
+\def\nsimeq {\Umathchar "3"0"002244 }
+\def\nsqsubseteq {\Umathchar "3"0"0022E2 }
+\def\nsqsupseteq {\Umathchar "3"0"0022E3 }
+\def\nsubset {\Umathchar "3"0"002284 }
+\def\nsubseteq {\Umathchar "3"0"002288 }
+\def\nsucc {\Umathchar "3"0"002281 }
+\def\nsucccurlyeq {\Umathchar "3"0"0022E1 }
+\def\nsupset {\Umathchar "3"0"002285 }
+\def\nsupseteq {\Umathchar "3"0"002289 }
+\def\ntriangleleft {\Umathchar "3"0"0022EB }
+\def\ntrianglelefteq {\Umathchar "3"0"0022EC }
+\def\ntriangleright {\Umathchar "3"0"0022EA }
+\def\ntrianglerighteq {\Umathchar "3"0"0022ED }
+\def\Nu {\Umathchar "0"0"00039D }
+\def\nu {\Umathchar "0"0"0003BD }
+\def\nvdash {\Umathchar "3"0"0022AC }
+\def\nvDash {\Umathchar "3"0"0022AD }
+\def\nVdash {\Umathchar "3"0"0022AE }
+\def\nVDash {\Umathchar "3"0"0022AF }
+\def\nvleftarrow {\Umathchar "3"0"0021F7 }
+\def\nVleftarrow {\Umathchar "3"0"0021FA }
+\def\nvleftrightarrow {\Umathchar "3"0"0021F9 }
+\def\nVleftrightarrow {\Umathchar "3"0"0021FC }
+\def\nvrightarrow {\Umathchar "3"0"0021F8 }
+\def\nVrightarrow {\Umathchar "3"0"0021FB }
+\def\nwarrow {\Umathchar "3"0"002196 }
+\def\Nwarrow {\Umathchar "3"0"0021D6 }
+\def\nwsearrow {\Umathchar "3"0"002921 }
+\def\odot {\Umathchar "2"0"002299 }
+\def\ohm {\Umathchar "0"0"002126 }
+\def\oiiint {\Umathchar "1"0"002230 }
+\def\oiint {\Umathchar "1"0"00222F }
+\def\oint {\Umathchar "1"0"00222E }
+\def\ointclockwise {\Umathchar "1"0"002232 }
+\def\ointctrclockwise {\Umathchar "1"0"002233 }
+\def\Omega {\Umathchar "0"0"0003A9 }
+\def\omega {\Umathchar "0"0"0003C9 }
+\def\Omicron {\Umathchar "0"0"00039F }
+\def\omicron {\Umathchar "0"0"0003BF }
+\def\ominus {\Umathchar "2"0"002296 }
+\def\oplus {\Umathchar "2"0"002295 }
+\def\oslash {\Umathchar "2"0"002298 }
+\def\otimes {\Umathchar "2"0"002297 }
+\def\overbar {\Umathaccent"0"0"00203E }
+\def\overbrace {\Umathaccent"0"0"0023DE }
+\def\overbracket {\Umathaccent"0"0"0023B4 }
+\def\overparent {\Umathaccent"0"0"0023DC }
+\def\owns {\Umathchar "3"0"00220B }
+\def\P {\Umathchar "0"0"0000B6 }
+\def\parallel {\Umathchar "3"0"002225 }
+\def\partial {\Umathchar "0"0"002202 }
+\def\perp {\Umathchar "3"0"0022A5 }
+\def\Phi {\Umathchar "0"0"0003A6 }
+\def\phi {\Umathchar "0"0"0003D5 }
+\def\Pi {\Umathchar "0"0"0003A0 }
+\def\pi {\Umathchar "0"0"0003C0 }
+\def\pitchfork {\Umathchar "3"0"0022D4 }
+\def\Plankconst {\Umathchar "0"0"00210E }
+\def\pm {\Umathchar "2"0"0000B1 }
+\def\positivesign {\Umathchar "2"0"00207A }
+\def\prec {\Umathchar "3"0"00227A }
+\def\precapprox {\Umathchar "3"0"002AB7 }
+\def\preccurlyeq {\Umathchar "3"0"00227C }
+\def\preceq {\Umathchar "3"0"002AAF }
+\def\preceqq {\Umathchar "3"0"002AB3 }
+\def\precnapprox {\Umathchar "3"0"002AB9 }
+\def\precneq {\Umathchar "3"0"002AB1 }
+\def\precneqq {\Umathchar "3"0"002AB5 }
+\def\precnsim {\Umathchar "3"0"0022E8 }
+\def\precsim {\Umathchar "3"0"00227E }
+\def\prime {\Umathchar "0"0"002032 }
+\def\primes {\Umathchar "0"0"002119 }
+\def\prod {\Umathchar "1"0"00220F }
+\def\PropertyLine {\Umathchar "0"0"00214A }
+\def\propto {\Umathchar "3"0"00221D }
+\def\Psi {\Umathchar "0"0"0003A8 }
+\def\psi {\Umathchar "0"0"0003C8 }
+\def\questionedeq {\Umathchar "3"0"00225F }
+\def\rangle {\Udelimiter "5"0"0027E9 }
+\def\rationals {\Umathchar "0"0"00211A }
+\def\rbrace {\Udelimiter "5"0"00007D }
+\def\rbrack {\Udelimiter "5"0"00005D }
+\def\rceil {\Udelimiter "5"0"002309 }
+\def\rceiling {\Udelimiter "5"0"002309 }
+\def\Rdsh {\Umathchar "3"0"0021B3 }
+\def\Re {\Umathchar "0"0"00211C }
+\def\reals {\Umathchar "0"0"00211D }
+\def\Relbar {\Umathchar "3"0"00003D }
+\def\relbar {\Umathchar "3"0"002212 }
+\def\restriction {\Umathchar "3"0"0021BE }
+\def\rfloor {\Udelimiter "5"0"00230B }
+\def\rgroup {\Udelimiter "5"0"0027EF }
+\def\Rho {\Umathchar "0"0"0003A1 }
+\def\rho {\Umathchar "0"0"0003C1 }
+\def\rhook {\Umathchar "3"0"0FE323 }
+\def\rhooknearrow {\Umathchar "3"0"002924 }
+\def\rhookswarrow {\Umathchar "3"0"002926 }
+\def\rightangle {\Umathchar "0"0"00221F }
+\def\rightarrow {\Umathchar "3"0"002192 }
+\def\Rightarrow {\Umathchar "3"0"0021D2 }
+\def\rightarrowbar {\Umathchar "3"0"0021E5 }
+\def\rightarrowtail {\Umathchar "3"0"0021A3 }
+\def\rightarrowtriangle {\Umathchar "3"0"0021FE }
+\def\rightdasharrow {\Umathchar "3"0"0021E2 }
+\def\rightharpoondown {\Umathchar "3"0"0021C1 }
+\def\rightharpoonup {\Umathchar "3"0"0021C0 }
+\def\rightleftarrows {\Umathchar "3"0"0021C4 }
+\def\rightleftharpoons {\Umathchar "3"0"0021CC }
+\def\rightrightarrows {\Umathchar "3"0"0021C9 }
+\def\rightsquigarrow {\Umathchar "3"0"0021DD }
+\def\rightthreearrows {\Umathchar "3"0"0021F6 }
+\def\rightthreetimes {\Umathchar "2"0"0022CC }
+\def\rightwavearrow {\Umathchar "3"0"00219D }
+\def\rightwhitearrow {\Umathchar "0"0"0021E8 }
+\def\risingdotseq {\Umathchar "3"0"002253 }
+\def\rmoustache {\Udelimiter "5"0"0023B1 }
+\def\rneq {\Umathchar "3"0"002A88 }
+\def\rparent {\Udelimiter "5"0"000029 }
+\def\rrangle {\Udelimiter "5"0"0027EB }
+\def\rrbracket {\Udelimiter "5"0"0027E7 }
+\def\Rrightarrow {\Umathchar "3"0"0021DB }
+\def\Rsh {\Umathchar "3"0"0021B1 }
+\def\rtimes {\Umathchar "2"0"0022CA }
+\def\rvert {\Udelimiter "5"0"00007C }
+\def\rVert {\Udelimiter "5"0"002016 }
+\def\S {\Umathchar "0"0"0000A7 }
+\def\searrow {\Umathchar "3"0"002198 }
+\def\Searrow {\Umathchar "3"0"0021D8 }
+\def\setminus {\Umathchar "2"0"002216 }
+\def\sharp {\Umathchar "0"0"00266F }
+\def\Sigma {\Umathchar "0"0"0003A3 }
+\def\sigma {\Umathchar "0"0"0003C3 }
+\def\sim {\Umathchar "3"0"00223C }
+\def\simeq {\Umathchar "3"0"002243 }
+\def\slash {\Umathchar "0"0"002044 }
+\def\smile {\Umathchar "3"0"002323 }
+\def\solidus {\Udelimiter "5"0"002044 }
+\def\spadesuit {\Umathchar "0"0"002660 }
+\def\sphericalangle {\Umathchar "0"0"002222 }
+\def\sqcap {\Umathchar "2"0"002293 }
+\def\sqcup {\Umathchar "2"0"002294 }
+\def\sqsubset {\Umathchar "3"0"00228F }
+\def\sqsubseteq {\Umathchar "2"0"002291 }
+\def\sqsubsetneq {\Umathchar "3"0"0022E4 }
+\def\sqsupset {\Umathchar "3"0"002290 }
+\def\sqsupseteq {\Umathchar "2"0"002292 }
+\def\sqsupsetneq {\Umathchar "3"0"0022E5 }
+\def\square {\Umathchar "0"0"0025A1 }
+\def\squaredots {\Umathchar "3"0"002237 }
+\def\star {\Umathchar "2"0"0022C6 }
+\def\stareq {\Umathchar "3"0"00225B }
+\def\subset {\Umathchar "3"0"002282 }
+\def\Subset {\Umathchar "3"0"0022D0 }
+\def\subseteq {\Umathchar "3"0"002286 }
+\def\subseteqq {\Umathchar "3"0"002AC5 }
+\def\subsetneq {\Umathchar "3"0"00228A }
+\def\subsetneqq {\Umathchar "3"0"002ACB }
+\def\succ {\Umathchar "3"0"00227B }
+\def\succapprox {\Umathchar "3"0"002AB8 }
+\def\succcurlyeq {\Umathchar "3"0"00227D }
+\def\succeq {\Umathchar "3"0"002AB0 }
+\def\succeqq {\Umathchar "3"0"002AB4 }
+\def\succnapprox {\Umathchar "3"0"002ABA }
+\def\succneq {\Umathchar "3"0"002AB2 }
+\def\succneqq {\Umathchar "3"0"002AB6 }
+\def\succnsim {\Umathchar "3"0"0022E9 }
+\def\succsim {\Umathchar "3"0"00227F }
+\def\sum {\Umathchar "1"0"002211 }
+\def\supset {\Umathchar "3"0"002283 }
+\def\Supset {\Umathchar "3"0"0022D1 }
+\def\supseteq {\Umathchar "3"0"002287 }
+\def\supseteqq {\Umathchar "3"0"002AC6 }
+\def\supsetneq {\Umathchar "3"0"00228B }
+\def\supsetneqq {\Umathchar "3"0"002ACC }
+\def\surd {\Umathchar "2"0"00221A }
+\def\swarrow {\Umathchar "3"0"002199 }
+\def\Swarrow {\Umathchar "3"0"0021D9 }
+\def\Tau {\Umathchar "0"0"0003A4 }
+\def\tau {\Umathchar "0"0"0003C4 }
+\def\therefore {\Umathchar "3"0"002234 }
+\def\Theta {\Umathchar "0"0"000398 }
+\def\theta {\Umathchar "0"0"0003B8 }
+\def\tilde {\Umathaccent"0"0"0002DC }
+\def\times {\Umathchar "2"0"0000D7 }
+\def\to {\Umathchar "3"0"002192 }
+\def\top {\Umathchar "0"0"0022A4 }
+\def\triangle {\Umathchar "0"0"0025B3 }
+\def\triangledown {\Umathchar "2"0"0025BD }
+\def\triangleleft {\Umathchar "2"0"0025C1 }
+\def\triangleq {\Umathchar "3"0"00225C }
+\def\triangleright {\Umathchar "2"0"0025B7 }
+\def\tripleprime {\Umathchar "0"0"002034 }
+\def\turnediota {\Umathchar "0"0"002129 }
+\def\twoheaddownarrow {\Umathchar "3"0"0021A1 }
+\def\twoheadleftarrow {\Umathchar "3"0"00219E }
+\def\twoheadrightarrow {\Umathchar "3"0"0021A0 }
+\def\twoheadrightarrowtail {\Umathchar "3"0"002916 }
+\def\twoheaduparrow {\Umathchar "3"0"00219F }
+\def\udots {\Umathchar "0"0"0022F0 }
+\def\ulcorner {\Udelimiter "4"0"00231C }
+\def\underbar {\Umathaccent bottom "0"0"00203E }
+\def\underbrace {\Umathaccent bottom "0"0"0023DF }
+\def\underbracket {\Umathaccent bottom "0"0"0023B5 }
+\def\underparent {\Umathaccent bottom "0"0"0023DD }
+\def\upand {\Umathchar "2"0"00214B }
+\def\uparrow {\Umathchar "3"0"002191 }
+\def\Uparrow {\Umathchar "3"0"0021D1 }
+\def\updasharrow {\Umathchar "3"0"0021E1 }
+\def\updownarrow {\Umathchar "3"0"002195 }
+\def\Updownarrow {\Umathchar "3"0"0021D5 }
+\def\updownarrowbar {\Umathchar "0"0"0021A8 }
+\def\updownarrows {\Umathchar "3"0"0021C5 }
+\def\upharpoonleft {\Umathchar "3"0"0021BF }
+\def\upharpoonright {\Umathchar "3"0"0021BE }
+\def\uplus {\Umathchar "2"0"00228E }
+\def\Upsilon {\Umathchar "0"0"0003A5 }
+\def\upsilon {\Umathchar "0"0"0003C5 }
+\def\upuparrows {\Umathchar "3"0"0021C8 }
+\def\upwhitearrow {\Umathchar "0"0"0021E7 }
+\def\urcorner {\Udelimiter "5"0"00231D }
+\def\Uuparrow {\Umathchar "3"0"00290A }
+\def\varepsilon {\Umathchar "0"0"0003B5 }
+\def\varkappa {\Umathchar "0"0"0003F0 }
+\def\varkappa {\Umathchar "0"0"0003F0 }
+\def\varnothing {\Umathchar "0"0"002300 }
+\def\varphi {\Umathchar "0"0"0003C6 }
+\def\varpi {\Umathchar "0"0"0003D6 }
+\def\varrho {\Umathchar "0"0"01D71A }
+\def\varsigma {\Umathchar "0"0"0003C2 }
+\def\vartheta {\Umathchar "0"0"01D717 }
+\def\varTheta {\Umathchar "0"0"0003D1 }
+\def\vdash {\Umathchar "3"0"0022A2 }
+\def\vDash {\Umathchar "3"0"0022A8 }
+\def\Vdash {\Umathchar "3"0"0022A9 }
+\def\VDash {\Umathchar "3"0"0022AB }
+\def\vdots {\Umathchar "0"0"0022EE }
+\def\vec {\Umathaccent"0"0"0020D7 }
+\def\vee {\Umathchar "2"0"002228 }
+\def\veebar {\Umathchar "2"0"0022BB }
+\def\veeeq {\Umathchar "3"0"00225A }
+\def\vert {\Udelimiter "0"0"00007C }
+\def\Vert {\Udelimiter "0"0"002016 }
+\def\Vvdash {\Umathchar "3"0"0022AA }
+\def\wedge {\Umathchar "2"0"002227 }
+\def\wedgeeq {\Umathchar "3"0"002259 }
+\def\whitearrowupfrombar {\Umathchar "0"0"0021EB }
+\def\widehat {\Umathaccent"0"0"000302 }
+\def\widetilde {\Umathaccent"0"0"000303 }
+\def\wp {\Umathchar "0"0"002118 }
+\def\wr {\Umathchar "2"0"002240 }
+\def\Xi {\Umathchar "0"0"00039E }
+\def\xi {\Umathchar "0"0"0003BE }
+\def\yen {\Umathchar "0"0"0000A5 }
+\def\Zeta {\Umathchar "0"0"000396 }
+\def\zeta {\Umathchar "0"0"0003B6 }
+
+% a few definitions:
+
+\def\sqrt{\Uroot "0 "221A }
+
+% \skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
+% \skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60
+
+\chardef\% = "25
+\chardef\& = "26
+\chardef\# = "23
+\chardef\$ = "24
+\chardef\_ = "5F
+
+\let\ss ß
+\let\ae æ
+\let\oe œ
+\let\o ø
+\let\AE Æ
+\let\OE Œ
+\let\O Ø
+\let\i ı
+\let\aa å
+\let\l ł
+\let\L Ł
+\let\AA Å
+\let\copyright ©
+
+% just use utf
+
+\def\`#1{\string\`\string{#1\string}}
+\def\'#1{\string\'\string{#1\string}}
+\def\v#1{\string\v\string{#1\string}}
+\def\u#1{\string\u\string{#1\string}}
+\def\=#1{\string\=\string{#1\string}}
+\def\^#1{\string\^\string{#1\string}}
+\def\.#1{\string\.\string{#1\string}}
+\def\H#1{\string\H\string{#1\string}}
+\def\~#1{\string\~\string{#1\string}}
+\def\"#1{\string\"\string{#1\string}}
+\def\d#1{\string\d\string{#1\string}}
+\def\b#1{\string\b\string{#1\string}}
+\def\c#1{\string\c\string{#1\string}}
+
+\endinput
diff --git a/tex/generic/context/luatex/luatex-plain.tex b/tex/generic/context/luatex/luatex-plain.tex
index 028d4ab0e..1ea8558e9 100644
--- a/tex/generic/context/luatex/luatex-plain.tex
+++ b/tex/generic/context/luatex/luatex-plain.tex
@@ -17,6 +17,7 @@
\the\everyjob
\input {luatex-basics}%
\input {luatex-fonts}%
+ \input {luatex-math}%
\input {luatex-languages}%
\input {luatex-mplib}%
}
diff --git a/tex/generic/context/luatex/luatex-test.tex b/tex/generic/context/luatex/luatex-test.tex
index e11106e20..fcc837e70 100644
--- a/tex/generic/context/luatex/luatex-test.tex
+++ b/tex/generic/context/luatex/luatex-test.tex
@@ -72,4 +72,12 @@
\noindent Циолковский
+a bit of math
+
+$\it e=mc^2 \bf e=mc^2 \Uchar"1D49D$
+
+$$\left( { {1} \over { {1} \over {x} } } \right) $$
+
+$$\sqrt {2} { { {1} \over { {1} \over {x} } } } $$
+
\end