From e3a0d092848f3f128742ffe478334651ab18e8dc Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 7 Jun 2021 08:17:45 +0200 Subject: 2021-06-07 08:07:00 --- .../lexers/data/scite-context-data-context.lua | 2 +- .../context/lexers/data/scite-context-data-tex.lua | 2 +- .../context/scite-context-data-context.properties | 355 +- .../context/scite-context-data-tex.properties | 69 +- .../context/data/scite-context-data-context.lua | 2 +- .../context/data/scite-context-data-tex.lua | 2 +- .../context/syntaxes/context-syntax-tex.json | 4 +- .../documents/general/manuals/luametatex.pdf | Bin 1218464 -> 1162546 bytes .../manuals/luametatex/luametatex-style.tex | 3 +- scripts/context/lua/mtx-context.lua | 25 +- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-nl.mkii | 1 + tex/context/base/mkiv/cldf-ini.lua | 8 - tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context-todo.tex | 5 + tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/grph-pat.lua | 3 +- tex/context/base/mkiv/mult-low.lua | 2 +- tex/context/base/mkiv/mult-prm.lua | 2 + tex/context/base/mkiv/s-inf-01-pdf-keep.pdf | Bin 23890 -> 0 bytes tex/context/base/mkiv/s-inf-03-pdf-keep.pdf | Bin 230077 -> 0 bytes tex/context/base/mkiv/status-files.pdf | Bin 23890 -> 23893 bytes tex/context/base/mkiv/status-lua.pdf | Bin 230077 -> 230133 bytes tex/context/base/mkxl/anch-pos.mkxl | 2 +- tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 2 +- tex/context/base/mkxl/driv-ini.lmt | 2 +- tex/context/base/mkxl/font-fmp.lmt | 14 +- tex/context/base/mkxl/node-ref.lmt | 6 +- tex/context/base/mkxl/page-par.mkxl | 12 +- tex/context/base/mkxl/spac-par.mkxl | 20 +- tex/context/base/mkxl/spac-ver.mkxl | 4 +- tex/context/base/mkxl/strc-not.mklx | 16 +- tex/context/base/mkxl/syst-aux.mkxl | 12 +- tex/context/base/mkxl/syst-ini.mkxl | 4 +- tex/context/base/mkxl/typo-cap.mkxl | 5 +- tex/context/base/mkxl/typo-del.mkxl | 16 +- tex/context/base/mkxl/typo-drp.mkxl | 8 +- tex/context/base/mkxl/typo-fln.mkxl | 4 +- tex/context/interface/mkii/keys-nl.xml | 1 + tex/context/modules/mkiv/m-system-readers.mkxl | 148 - tex/context/modules/mkiv/m-timing.mkxl | 113 - tex/context/modules/mkiv/s-languages-goodies.lmt | 99 - tex/context/modules/mkiv/s-languages-goodies.mkxl | 144 - tex/context/modules/mkiv/s-system-macros.mkxl | 330 -- tex/context/modules/mkiv/s-system-tokens.mkxl | 84 - tex/context/modules/mkiv/x-asciimath.mkiv | 4 +- tex/context/modules/mkxl/m-system-readers.mkxl | 148 + tex/context/modules/mkxl/m-timing.mkxl | 113 + tex/context/modules/mkxl/s-languages-goodies.lmt | 99 + tex/context/modules/mkxl/s-languages-goodies.mkxl | 144 + tex/context/modules/mkxl/s-system-macros.mkxl | 330 ++ tex/context/modules/mkxl/s-system-tokens.mkxl | 84 + tex/context/modules/mkxl/x-mathml.lmt | 910 +++++ tex/context/modules/mkxl/x-mathml.mkxl | 2448 ++++++++++++ tex/context/patterns/lmtx/lang-de.llg | 4010 -------------------- tex/context/patterns/lmtx/lang-en.llg | 453 --- tex/context/patterns/mkxl/lang-de.llg | 4010 ++++++++++++++++++++ tex/context/patterns/mkxl/lang-en.llg | 453 +++ tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 61 files changed, 9069 insertions(+), 5680 deletions(-) delete mode 100644 tex/context/base/mkiv/s-inf-01-pdf-keep.pdf delete mode 100644 tex/context/base/mkiv/s-inf-03-pdf-keep.pdf delete mode 100644 tex/context/modules/mkiv/m-system-readers.mkxl delete mode 100644 tex/context/modules/mkiv/m-timing.mkxl delete mode 100644 tex/context/modules/mkiv/s-languages-goodies.lmt delete mode 100644 tex/context/modules/mkiv/s-languages-goodies.mkxl delete mode 100644 tex/context/modules/mkiv/s-system-macros.mkxl delete mode 100644 tex/context/modules/mkiv/s-system-tokens.mkxl create mode 100644 tex/context/modules/mkxl/m-system-readers.mkxl create mode 100644 tex/context/modules/mkxl/m-timing.mkxl create mode 100644 tex/context/modules/mkxl/s-languages-goodies.lmt create mode 100644 tex/context/modules/mkxl/s-languages-goodies.mkxl create mode 100644 tex/context/modules/mkxl/s-system-macros.mkxl create mode 100644 tex/context/modules/mkxl/s-system-tokens.mkxl create mode 100644 tex/context/modules/mkxl/x-mathml.lmt create mode 100644 tex/context/modules/mkxl/x-mathml.mkxl delete mode 100644 tex/context/patterns/lmtx/lang-de.llg delete mode 100644 tex/context/patterns/lmtx/lang-en.llg create mode 100644 tex/context/patterns/mkxl/lang-de.llg create mode 100644 tex/context/patterns/mkxl/lang-en.llg diff --git a/context/data/scite/context/lexers/data/scite-context-data-context.lua b/context/data/scite/context/lexers/data/scite-context-data-context.lua index 3f4ed3a49..4d724d26c 100644 --- a/context/data/scite/context/lexers/data/scite-context-data-context.lua +++ b/context/data/scite/context/lexers/data/scite-context-data-context.lua @@ -1,4 +1,4 @@ return { ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "frozenhsizecode", "frozenskipcode", "frozenhangcode", "frozenindentcode", "frozenparfillcode", "frozenadjustcode", "frozenprotrudecode", "frozentolerancecode", "frozenstretchcode", "frozenloosenesscode", "frozenlastlinecode", "frozenlinepenaltycode", "frozenclubpenaltycode", "frozenwidowpenaltycode", "frozendisplaypenaltycode", "frozenbrokenpenaltycode", "frozendemeritscode", "frozenshapecode", "frozenlinecode", "frozenhyphenationcode", "frozenallcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationmodecode", "automatichyphenationmodecode", "explicithyphenationmodecode", "syllablehyphenationmodecode", "uppercasehyphenationmodecode", "collapsehyphenationmodecode", "compoundhyphenationmodecode", "strictstarthyphenationmodecode", "strictendhyphenationmodecode", "automaticpenaltyhyphenationmodecode", "explicitpenaltyhyphenationmodecode", "permitgluehyphenationmodecode", "permitallhyphenationmodecode", "permitmathreplacehyphenationmodecode", "forcecheckhyphenationmodecode", "lazyligatureshyphenationmodecode", "forcehandlerhyphenationmodecode", "feedbackcompoundhyphenationmodecode", "ignoreboundshyphenationmodecode", "partialhyphenationmodecode", "completehyphenationmodecode", "normalizelinecode", "parindentskipcode", "swaphangindentcode", "swapparsshapecode", "breakafterdircode", "removemarginkernscode", "clipwidthcode", "flattendiscretionariescode", "noligaturingcode", "nokerningcode", "noleftligaturecode", "noleftkerncode", "norightligaturecode", "norightkerncode", "noexpansioncode", "noprotrusioncode", "noitaliccorrectioncode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "prewordcode", "postwordcode", "continuewhenlmtxmode" }, - ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox" }, + ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox" }, } \ No newline at end of file diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua index 444a71b8b..482223569 100644 --- a/context/data/scite/context/lexers/data/scite-context-data-tex.lua +++ b/context/data/scite/context/lexers/data/scite-context-data-tex.lua @@ -1,7 +1,7 @@ return { ["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" }, ["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastchkdim", "lastchknum", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numericscale", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingalignments", "tracingassigns", "tracinggroups", "tracingifs", "tracinglevels", "tracingnesting", "unexpanded", "unless", "widowpenalties" }, - ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontspecifiedsize", "formatname", "frozen", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "ifflags", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmode", "insertmultiplier", "insertprogress", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "linedirection", "linepar", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parattr", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "snapshotpar", "supmarkmode", "swapcsvalues", "textdirection", "thewithoutunit", "thewithproperty", "tokenized", "toksapp", "tokspre", "tolerant", "tpack", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" }, + ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontspecifiedsize", "formatname", "frozen", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "ifflags", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmode", "insertmultiplier", "insertprogress", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "linepar", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parattr", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "snapshotpar", "supmarkmode", "swapcsvalues", "textdirection", "thewithoutunit", "thewithproperty", "tokenized", "toksapp", "tokspre", "tolerant", "tpack", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" }, ["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" }, ["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" }, ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "beginsimplegroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "endsimplegroup", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "fontspecifiedname", "futurelet", "gdef", "global", "globaldefs", "glyph", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "meaningfull", "meaningless", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "ordlimits", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overshoot", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scaledfontdimen", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "todimension", "tointeger", "toks", "toksdef", "tolerance", "topmark", "topskip", "toscaled", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unhpack", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "unvpack", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" }, diff --git a/context/data/scite/context/scite-context-data-context.properties b/context/data/scite/context/scite-context-data-context.properties index 37e4591ac..ab9eb0619 100644 --- a/context/data/scite/context/scite-context-data-context.properties +++ b/context/data/scite/context/scite-context-data-context.properties @@ -112,181 +112,182 @@ firstargumenttrue secondargumentfalse secondargumenttrue thirdargumentfalse thir fourthargumentfalse fourthargumenttrue fifthargumentfalse fifthargumenttrue sixthargumentfalse \ sixthargumenttrue seventhargumentfalse seventhargumenttrue vkern hkern \ vpenalty hpenalty doglobal dodoglobal redoglobal \ -resetglobal donothing dontcomplain forgetall donetrue \ -donefalse foundtrue foundfalse inlineordisplaymath indisplaymath \ -forcedisplaymath startforceddisplaymath stopforceddisplaymath startpickupmath stoppickupmath \ -reqno mathortext thebox htdp unvoidbox \ -hfilll vfilll mathbox mathlimop mathnolop \ -mathnothing mathalpha currentcatcodetable defaultcatcodetable catcodetablename \ -newcatcodetable startcatcodetable stopcatcodetable startextendcatcodetable stopextendcatcodetable \ -pushcatcodetable popcatcodetable restorecatcodes setcatcodetable letcatcodecommand \ -defcatcodecommand uedcatcodecommand hglue vglue hfillneg \ -vfillneg hfilllneg vfilllneg ruledhss ruledhfil \ -ruledhfill ruledhfilll ruledhfilneg ruledhfillneg normalhfillneg \ -normalhfilllneg ruledvss ruledvfil ruledvfill ruledvfilll \ -ruledvfilneg ruledvfillneg normalvfillneg normalvfilllneg ruledhbox \ -ruledvbox ruledvtop ruledvcenter ruledmbox ruledhpack \ -ruledvpack ruledtpack ruledhskip ruledvskip ruledkern \ -ruledmskip ruledmkern ruledhglue ruledvglue normalhglue \ -normalvglue ruledpenalty filledhboxb filledhboxr filledhboxg \ -filledhboxc filledhboxm filledhboxy filledhboxk scratchstring \ -scratchstringone scratchstringtwo tempstring scratchcounter globalscratchcounter \ -privatescratchcounter scratchdimen globalscratchdimen privatescratchdimen scratchskip \ -globalscratchskip privatescratchskip scratchmuskip globalscratchmuskip privatescratchmuskip \ -scratchtoks globalscratchtoks privatescratchtoks scratchbox globalscratchbox \ -privatescratchbox scratchmacro scratchmacroone scratchmacrotwo scratchconditiontrue \ -scratchconditionfalse ifscratchcondition scratchconditiononetrue scratchconditiononefalse ifscratchconditionone \ -scratchconditiontwotrue scratchconditiontwofalse ifscratchconditiontwo globalscratchcounterone globalscratchcountertwo \ -globalscratchcounterthree groupedcommand groupedcommandcs triggergroupedcommand triggergroupedcommandcs \ -simplegroupedcommand simplegroupedcommandcs pickupgroupedcommand pickupgroupedcommandcs usedbaselineskip \ -usedlineskip usedlineskiplimit availablehsize localhsize setlocalhsize \ -distributedhsize hsizefraction next nexttoken nextbox \ -dowithnextbox dowithnextboxcs dowithnextboxcontent dowithnextboxcontentcs flushnextbox \ -boxisempty boxtostring contentostring prerolltostring givenwidth \ -givenheight givendepth scangivendimensions scratchwidth scratchheight \ -scratchdepth scratchoffset scratchdistance scratchtotal scratchhsize \ -scratchvsize scratchxoffset scratchyoffset scratchhoffset scratchvoffset \ -scratchxposition scratchyposition scratchtopoffset scratchbottomoffset scratchleftoffset \ -scratchrightoffset scratchcounterone scratchcountertwo scratchcounterthree scratchcounterfour \ -scratchcounterfive scratchcountersix scratchdimenone scratchdimentwo scratchdimenthree \ -scratchdimenfour scratchdimenfive scratchdimensix scratchskipone scratchskiptwo \ -scratchskipthree scratchskipfour scratchskipfive scratchskipsix scratchmuskipone \ -scratchmuskiptwo scratchmuskipthree scratchmuskipfour scratchmuskipfive scratchmuskipsix \ -scratchtoksone scratchtokstwo scratchtoksthree scratchtoksfour scratchtoksfive \ -scratchtokssix scratchboxone scratchboxtwo scratchboxthree scratchboxfour \ -scratchboxfive scratchboxsix scratchnx scratchny scratchmx \ -scratchmy scratchunicode scratchmin scratchmax scratchleftskip \ -scratchrightskip scratchtopskip scratchbottomskip doif doifnot \ -doifelse firstinset doifinset doifnotinset doifelseinset \ -doifinsetelse doifelsenextchar doifnextcharelse doifelsenextcharcs doifnextcharcselse \ -doifelsenextoptional doifnextoptionalelse doifelsenextoptionalcs doifnextoptionalcselse doifelsefastoptionalcheck \ -doiffastoptionalcheckelse doifelsefastoptionalcheckcs doiffastoptionalcheckcselse doifelsenextbgroup doifnextbgroupelse \ -doifelsenextbgroupcs doifnextbgroupcselse doifelsenextparenthesis doifnextparenthesiselse doifelseundefined \ -doifundefinedelse doifelsedefined doifdefinedelse doifundefined doifdefined \ -doifelsevalue doifvalue doifnotvalue doifnothing doifsomething \ -doifelsenothing doifnothingelse doifelsesomething doifsomethingelse doifvaluenothing \ -doifvaluesomething doifelsevaluenothing doifvaluenothingelse doifelsedimension doifdimensionelse \ -doifelsenumber doifnumberelse doifnumber doifnotnumber doifelsecommon \ -doifcommonelse doifcommon doifnotcommon doifinstring doifnotinstring \ -doifelseinstring doifinstringelse doifelseassignment doifassignmentelse docheckassignment \ -doifelseassignmentcs doifassignmentelsecs validassignment novalidassignment doiftext \ -doifelsetext doiftextelse doifnottext quitcondition truecondition \ -falsecondition tracingall tracingnone loggingall showluatokens \ -aliasmacro removetoks appendtoks prependtoks appendtotoks \ -prependtotoks to endgraf endpar reseteverypar \ -finishpar empty null space quad \ -enspace emspace charspace nbsp crlf \ -obeyspaces obeylines obeytabs obeypages obeyedspace \ -obeyedline obeyedtab obeyedpage normalspace naturalspace \ -controlspace normalspaces ignoretabs ignorelines ignorepages \ -ignoreeofs setcontrolspaces executeifdefined singleexpandafter doubleexpandafter \ -tripleexpandafter dontleavehmode removelastspace removeunwantedspaces keepunwantedspaces \ -removepunctuation ignoreparskip forcestrutdepth onlynonbreakablespace wait \ -writestatus define defineexpandable redefine setmeasure \ -setemeasure setgmeasure setxmeasure definemeasure freezemeasure \ -measure measured directmeasure setquantity setequantity \ -setgquantity setxquantity definequantity freezequantity quantity \ -quantitied directquantity installcorenamespace getvalue getuvalue \ -setvalue setevalue setgvalue setxvalue letvalue \ -letgvalue resetvalue undefinevalue ignorevalue setuvalue \ -setuevalue setugvalue setuxvalue globallet udef \ -ugdef uedef uxdef checked unique \ -getparameters geteparameters getgparameters getxparameters forgetparameters \ -copyparameters getdummyparameters dummyparameter directdummyparameter setdummyparameter \ -letdummyparameter setexpandeddummyparameter usedummystyleandcolor usedummystyleparameter usedummycolorparameter \ -processcommalist processcommacommand quitcommalist quitprevcommalist processaction \ -processallactions processfirstactioninset processallactionsinset unexpanded expanded \ -startexpanded stopexpanded protect unprotect firstofoneargument \ -firstoftwoarguments secondoftwoarguments firstofthreearguments secondofthreearguments thirdofthreearguments \ -firstoffourarguments secondoffourarguments thirdoffourarguments fourthoffourarguments firstoffivearguments \ -secondoffivearguments thirdoffivearguments fourthoffivearguments fifthoffivearguments firstofsixarguments \ -secondofsixarguments thirdofsixarguments fourthofsixarguments fifthofsixarguments sixthofsixarguments \ -firstofoneunexpanded firstoftwounexpanded secondoftwounexpanded firstofthreeunexpanded secondofthreeunexpanded \ -thirdofthreeunexpanded gobbleoneargument gobbletwoarguments gobblethreearguments gobblefourarguments \ -gobblefivearguments gobblesixarguments gobblesevenarguments gobbleeightarguments gobbleninearguments \ -gobbletenarguments gobbleoneoptional gobbletwooptionals gobblethreeoptionals gobblefouroptionals \ -gobblefiveoptionals dorecurse doloop exitloop dostepwiserecurse \ -recurselevel recursedepth dofastloopcs fastloopindex fastloopfinal \ -dowith doloopovermatch doloopovermatched doloopoverlist newconstant \ -setnewconstant setconstant setconstantvalue newconditional settrue \ -setfalse settruevalue setfalsevalue setconditional newmacro \ -setnewmacro newfraction newsignal dosingleempty dodoubleempty \ -dotripleempty doquadrupleempty doquintupleempty dosixtupleempty doseventupleempty \ -dosingleargument dodoubleargument dotripleargument doquadrupleargument doquintupleargument \ -dosixtupleargument doseventupleargument dosinglegroupempty dodoublegroupempty dotriplegroupempty \ -doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups dontpermitspacesbetweengroups nopdfcompression \ -maximumpdfcompression normalpdfcompression onlypdfobjectcompression nopdfobjectcompression modulonumber \ -dividenumber getfirstcharacter doifelsefirstchar doiffirstcharelse startnointerference \ -stopnointerference twodigits threedigits leftorright offinterlineskip \ -oninterlineskip nointerlineskip strut halfstrut quarterstrut \ -depthstrut halflinestrut noheightstrut setstrut strutbox \ -strutht strutdp strutwd struthtdp strutgap \ -begstrut endstrut lineheight leftboundary rightboundary \ -signalcharacter shiftbox vpackbox hpackbox vpackedbox \ -hpackedbox ordordspacing ordopspacing ordbinspacing ordrelspacing \ -ordopenspacing ordclosespacing ordpunctspacing ordinnerspacing opordspacing \ -opopspacing opbinspacing oprelspacing opopenspacing opclosespacing \ -oppunctspacing opinnerspacing binordspacing binopspacing binbinspacing \ -binrelspacing binopenspacing binclosespacing binpunctspacing bininnerspacing \ -relordspacing relopspacing relbinspacing relrelspacing relopenspacing \ -relclosespacing relpunctspacing relinnerspacing openordspacing openopspacing \ -openbinspacing openrelspacing openopenspacing openclosespacing openpunctspacing \ -openinnerspacing closeordspacing closeopspacing closebinspacing closerelspacing \ -closeopenspacing closeclosespacing closepunctspacing closeinnerspacing punctordspacing \ -punctopspacing punctbinspacing punctrelspacing punctopenspacing punctclosespacing \ -punctpunctspacing punctinnerspacing innerordspacing inneropspacing innerbinspacing \ -innerrelspacing inneropenspacing innerclosespacing innerpunctspacing innerinnerspacing \ -normalreqno startimath stopimath normalstartimath normalstopimath \ -startdmath stopdmath normalstartdmath normalstopdmath normalsuperscript \ -normalsubscript normalnosuperscript normalnosubscript superscript subscript \ -nosuperscript nosubscript superprescript subprescript nosuperprescript \ -nosubsprecript uncramped cramped mathstyletrigger triggermathstyle \ -mathstylefont mathsmallstylefont mathstyleface mathsmallstyleface mathstylecommand \ -mathpalette mathstylehbox mathstylevbox mathstylevcenter mathstylevcenteredhbox \ -mathstylevcenteredvbox mathtext setmathsmalltextbox setmathtextbox pushmathstyle \ -popmathstyle triggerdisplaystyle triggertextstyle triggerscriptstyle triggerscriptscriptstyle \ -triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle triggercrampedsmallstyle \ -triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr expelsedoif \ -expdoif expdoifnot expdoifelsecommon expdoifcommonelse expdoifelseinset \ -expdoifinsetelse ctxdirectlua ctxlatelua ctxsprint ctxwrite \ -ctxcommand ctxdirectcommand ctxlatecommand ctxreport ctxlua \ -luacode lateluacode directluacode registerctxluafile ctxloadluafile \ -luaversion luamajorversion luaminorversion ctxluacode luaconditional \ -luaexpanded ctxluamatch startluaparameterset stopluaparameterset luaparameterset \ -definenamedlua obeylualines obeyluatokens startluacode stopluacode \ -startlua stoplua startctxfunction stopctxfunction ctxfunction \ -startctxfunctiondefinition stopctxfunctiondefinition installctxfunction installprotectedctxfunction installprotectedctxscanner \ -installctxscanner resetctxscanner cldprocessfile cldloadfile cldloadviafile \ -cldcontext cldcommand carryoverpar freezeparagraphproperties defrostparagraphproperties \ -setparagraphfreezing forgetparagraphfreezing updateparagraphproperties updateparagraphpenalties updateparagraphdemerits \ -updateparagraphshapes updateparagraphlines lastlinewidth assumelongusagecs Umathbotaccent \ -Umathtopaccent righttolefthbox lefttorighthbox righttoleftvbox lefttorightvbox \ -righttoleftvtop lefttorightvtop rtlhbox ltrhbox rtlvbox \ -ltrvbox rtlvtop ltrvtop autodirhbox autodirvbox \ -autodirvtop leftorrighthbox leftorrightvbox leftorrightvtop lefttoright \ -righttoleft checkedlefttoright checkedrighttoleft synchronizelayoutdirection synchronizedisplaydirection \ -synchronizeinlinedirection dirlre dirrle dirlro dirrlo \ -lesshyphens morehyphens nohyphens dohyphens dohyphencollapsing \ -nohyphencollapsing compounddiscretionary Ucheckedstartdisplaymath Ucheckedstopdisplaymath break \ -nobreak allowbreak goodbreak nospace nospacing \ -dospacing naturalhbox naturalvbox naturalvtop naturalhpack \ -naturalvpack naturaltpack reversehbox reversevbox reversevtop \ -reversehpack reversevpack reversetpack hcontainer vcontainer \ -tcontainer frule compoundhyphenpenalty start stop \ -unsupportedcs openout closeout write openin \ -closein read readline readfromterminal boxlines \ -boxline setboxline copyboxline boxlinewd boxlineht \ -boxlinedp boxlinenw boxlinenh boxlinend boxlinels \ -boxliners boxlinelh boxlinerh boxlinelp boxlinerp \ -boxlinein boxrangewd boxrangeht boxrangedp bitwiseset \ -bitwiseand bitwiseor bitwisexor bitwisenot bitwisenil \ -ifbitwiseand bitwise bitwiseshift bitwiseflip textdir \ -linedir pardir boxdir prelistbox postlistbox \ -prelistcopy postlistcopy setprelistbox setpostlistbox noligaturing \ -nokerning noexpansion noprotrusion noleftkerning noleftligaturing \ -norightkerning norightligaturing noitaliccorrection futureletnexttoken defbackslashbreak \ -letbackslashbreak pushoverloadmode popoverloadmode pushrunstate poprunstate \ -suggestedalias newlocalcount newlocaldimen newlocalskip newlocalmuskip \ -newlocaltoks newlocalbox newlocalwrite newlocalread setnewlocalcount \ -setnewlocaldimen setnewlocalskip setnewlocalmuskip setnewlocaltoks setnewlocalbox +resetglobal donothing untraceddonothing dontcomplain forgetall \ +donetrue donefalse foundtrue foundfalse inlineordisplaymath \ +indisplaymath forcedisplaymath startforceddisplaymath stopforceddisplaymath startpickupmath \ +stoppickupmath reqno mathortext thebox htdp \ +unvoidbox hfilll vfilll mathbox mathlimop \ +mathnolop mathnothing mathalpha currentcatcodetable defaultcatcodetable \ +catcodetablename newcatcodetable startcatcodetable stopcatcodetable startextendcatcodetable \ +stopextendcatcodetable pushcatcodetable popcatcodetable restorecatcodes setcatcodetable \ +letcatcodecommand defcatcodecommand uedcatcodecommand hglue vglue \ +hfillneg vfillneg hfilllneg vfilllneg ruledhss \ +ruledhfil ruledhfill ruledhfilll ruledhfilneg ruledhfillneg \ +normalhfillneg normalhfilllneg ruledvss ruledvfil ruledvfill \ +ruledvfilll ruledvfilneg ruledvfillneg normalvfillneg normalvfilllneg \ +ruledhbox ruledvbox ruledvtop ruledvcenter ruledmbox \ +ruledhpack ruledvpack ruledtpack ruledhskip ruledvskip \ +ruledkern ruledmskip ruledmkern ruledhglue ruledvglue \ +normalhglue normalvglue ruledpenalty filledhboxb filledhboxr \ +filledhboxg filledhboxc filledhboxm filledhboxy filledhboxk \ +scratchstring scratchstringone scratchstringtwo tempstring scratchcounter \ +globalscratchcounter privatescratchcounter scratchdimen globalscratchdimen privatescratchdimen \ +scratchskip globalscratchskip privatescratchskip scratchmuskip globalscratchmuskip \ +privatescratchmuskip scratchtoks globalscratchtoks privatescratchtoks scratchbox \ +globalscratchbox privatescratchbox scratchmacro scratchmacroone scratchmacrotwo \ +scratchconditiontrue scratchconditionfalse ifscratchcondition scratchconditiononetrue scratchconditiononefalse \ +ifscratchconditionone scratchconditiontwotrue scratchconditiontwofalse ifscratchconditiontwo globalscratchcounterone \ +globalscratchcountertwo globalscratchcounterthree groupedcommand groupedcommandcs triggergroupedcommand \ +triggergroupedcommandcs simplegroupedcommand simplegroupedcommandcs pickupgroupedcommand pickupgroupedcommandcs \ +usedbaselineskip usedlineskip usedlineskiplimit availablehsize localhsize \ +setlocalhsize distributedhsize hsizefraction next nexttoken \ +nextbox dowithnextbox dowithnextboxcs dowithnextboxcontent dowithnextboxcontentcs \ +flushnextbox boxisempty boxtostring contentostring prerolltostring \ +givenwidth givenheight givendepth scangivendimensions scratchwidth \ +scratchheight scratchdepth scratchoffset scratchdistance scratchtotal \ +scratchhsize scratchvsize scratchxoffset scratchyoffset scratchhoffset \ +scratchvoffset scratchxposition scratchyposition scratchtopoffset scratchbottomoffset \ +scratchleftoffset scratchrightoffset scratchcounterone scratchcountertwo scratchcounterthree \ +scratchcounterfour scratchcounterfive scratchcountersix scratchdimenone scratchdimentwo \ +scratchdimenthree scratchdimenfour scratchdimenfive scratchdimensix scratchskipone \ +scratchskiptwo scratchskipthree scratchskipfour scratchskipfive scratchskipsix \ +scratchmuskipone scratchmuskiptwo scratchmuskipthree scratchmuskipfour scratchmuskipfive \ +scratchmuskipsix scratchtoksone scratchtokstwo scratchtoksthree scratchtoksfour \ +scratchtoksfive scratchtokssix scratchboxone scratchboxtwo scratchboxthree \ +scratchboxfour scratchboxfive scratchboxsix scratchnx scratchny \ +scratchmx scratchmy scratchunicode scratchmin scratchmax \ +scratchleftskip scratchrightskip scratchtopskip scratchbottomskip doif \ +doifnot doifelse firstinset doifinset doifnotinset \ +doifelseinset doifinsetelse doifelsenextchar doifnextcharelse doifelsenextcharcs \ +doifnextcharcselse doifelsenextoptional doifnextoptionalelse doifelsenextoptionalcs doifnextoptionalcselse \ +doifelsefastoptionalcheck doiffastoptionalcheckelse doifelsefastoptionalcheckcs doiffastoptionalcheckcselse doifelsenextbgroup \ +doifnextbgroupelse doifelsenextbgroupcs doifnextbgroupcselse doifelsenextparenthesis doifnextparenthesiselse \ +doifelseundefined doifundefinedelse doifelsedefined doifdefinedelse doifundefined \ +doifdefined doifelsevalue doifvalue doifnotvalue doifnothing \ +doifsomething doifelsenothing doifnothingelse doifelsesomething doifsomethingelse \ +doifvaluenothing doifvaluesomething doifelsevaluenothing doifvaluenothingelse doifelsedimension \ +doifdimensionelse doifelsenumber doifnumberelse doifnumber doifnotnumber \ +doifelsecommon doifcommonelse doifcommon doifnotcommon doifinstring \ +doifnotinstring doifelseinstring doifinstringelse doifelseassignment doifassignmentelse \ +docheckassignment doifelseassignmentcs doifassignmentelsecs validassignment novalidassignment \ +doiftext doifelsetext doiftextelse doifnottext quitcondition \ +truecondition falsecondition tracingall tracingnone loggingall \ +showluatokens aliasmacro removetoks appendtoks prependtoks \ +appendtotoks prependtotoks to endgraf endpar \ +reseteverypar finishpar empty null space \ +quad enspace emspace charspace nbsp \ +crlf obeyspaces obeylines obeytabs obeypages \ +obeyedspace obeyedline obeyedtab obeyedpage normalspace \ +naturalspace controlspace normalspaces ignoretabs ignorelines \ +ignorepages ignoreeofs setcontrolspaces executeifdefined singleexpandafter \ +doubleexpandafter tripleexpandafter dontleavehmode removelastspace removeunwantedspaces \ +keepunwantedspaces removepunctuation ignoreparskip forcestrutdepth onlynonbreakablespace \ +wait writestatus define defineexpandable redefine \ +setmeasure setemeasure setgmeasure setxmeasure definemeasure \ +freezemeasure measure measured directmeasure setquantity \ +setequantity setgquantity setxquantity definequantity freezequantity \ +quantity quantitied directquantity installcorenamespace getvalue \ +getuvalue setvalue setevalue setgvalue setxvalue \ +letvalue letgvalue resetvalue undefinevalue ignorevalue \ +setuvalue setuevalue setugvalue setuxvalue globallet \ +udef ugdef uedef uxdef checked \ +unique getparameters geteparameters getgparameters getxparameters \ +forgetparameters copyparameters getdummyparameters dummyparameter directdummyparameter \ +setdummyparameter letdummyparameter setexpandeddummyparameter usedummystyleandcolor usedummystyleparameter \ +usedummycolorparameter processcommalist processcommacommand quitcommalist quitprevcommalist \ +processaction processallactions processfirstactioninset processallactionsinset unexpanded \ +expanded startexpanded stopexpanded protect unprotect \ +firstofoneargument firstoftwoarguments secondoftwoarguments firstofthreearguments secondofthreearguments \ +thirdofthreearguments firstoffourarguments secondoffourarguments thirdoffourarguments fourthoffourarguments \ +firstoffivearguments secondoffivearguments thirdoffivearguments fourthoffivearguments fifthoffivearguments \ +firstofsixarguments secondofsixarguments thirdofsixarguments fourthofsixarguments fifthofsixarguments \ +sixthofsixarguments firstofoneunexpanded firstoftwounexpanded secondoftwounexpanded firstofthreeunexpanded \ +secondofthreeunexpanded thirdofthreeunexpanded gobbleoneargument gobbletwoarguments gobblethreearguments \ +gobblefourarguments gobblefivearguments gobblesixarguments gobblesevenarguments gobbleeightarguments \ +gobbleninearguments gobbletenarguments gobbleoneoptional gobbletwooptionals gobblethreeoptionals \ +gobblefouroptionals gobblefiveoptionals dorecurse doloop exitloop \ +dostepwiserecurse recurselevel recursedepth dofastloopcs fastloopindex \ +fastloopfinal dowith doloopovermatch doloopovermatched doloopoverlist \ +newconstant setnewconstant setconstant setconstantvalue newconditional \ +settrue setfalse settruevalue setfalsevalue setconditional \ +newmacro setnewmacro newfraction newsignal dosingleempty \ +dodoubleempty dotripleempty doquadrupleempty doquintupleempty dosixtupleempty \ +doseventupleempty dosingleargument dodoubleargument dotripleargument doquadrupleargument \ +doquintupleargument dosixtupleargument doseventupleargument dosinglegroupempty dodoublegroupempty \ +dotriplegroupempty doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups dontpermitspacesbetweengroups \ +nopdfcompression maximumpdfcompression normalpdfcompression onlypdfobjectcompression nopdfobjectcompression \ +modulonumber dividenumber getfirstcharacter doifelsefirstchar doiffirstcharelse \ +startnointerference stopnointerference twodigits threedigits leftorright \ +offinterlineskip oninterlineskip nointerlineskip strut halfstrut \ +quarterstrut depthstrut halflinestrut noheightstrut setstrut \ +strutbox strutht strutdp strutwd struthtdp \ +strutgap begstrut endstrut lineheight leftboundary \ +rightboundary signalcharacter shiftbox vpackbox hpackbox \ +vpackedbox hpackedbox ordordspacing ordopspacing ordbinspacing \ +ordrelspacing ordopenspacing ordclosespacing ordpunctspacing ordinnerspacing \ +opordspacing opopspacing opbinspacing oprelspacing opopenspacing \ +opclosespacing oppunctspacing opinnerspacing binordspacing binopspacing \ +binbinspacing binrelspacing binopenspacing binclosespacing binpunctspacing \ +bininnerspacing relordspacing relopspacing relbinspacing relrelspacing \ +relopenspacing relclosespacing relpunctspacing relinnerspacing openordspacing \ +openopspacing openbinspacing openrelspacing openopenspacing openclosespacing \ +openpunctspacing openinnerspacing closeordspacing closeopspacing closebinspacing \ +closerelspacing closeopenspacing closeclosespacing closepunctspacing closeinnerspacing \ +punctordspacing punctopspacing punctbinspacing punctrelspacing punctopenspacing \ +punctclosespacing punctpunctspacing punctinnerspacing innerordspacing inneropspacing \ +innerbinspacing innerrelspacing inneropenspacing innerclosespacing innerpunctspacing \ +innerinnerspacing normalreqno startimath stopimath normalstartimath \ +normalstopimath startdmath stopdmath normalstartdmath normalstopdmath \ +normalsuperscript normalsubscript normalnosuperscript normalnosubscript superscript \ +subscript nosuperscript nosubscript superprescript subprescript \ +nosuperprescript nosubsprecript uncramped cramped mathstyletrigger \ +triggermathstyle mathstylefont mathsmallstylefont mathstyleface mathsmallstyleface \ +mathstylecommand mathpalette mathstylehbox mathstylevbox mathstylevcenter \ +mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox setmathtextbox \ +pushmathstyle popmathstyle triggerdisplaystyle triggertextstyle triggerscriptstyle \ +triggerscriptscriptstyle triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle \ +triggercrampedsmallstyle triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr \ +expelsedoif expdoif expdoifnot expdoifelsecommon expdoifcommonelse \ +expdoifelseinset expdoifinsetelse ctxdirectlua ctxlatelua ctxsprint \ +ctxwrite ctxcommand ctxdirectcommand ctxlatecommand ctxreport \ +ctxlua luacode lateluacode directluacode registerctxluafile \ +ctxloadluafile luaversion luamajorversion luaminorversion ctxluacode \ +luaconditional luaexpanded ctxluamatch startluaparameterset stopluaparameterset \ +luaparameterset definenamedlua obeylualines obeyluatokens startluacode \ +stopluacode startlua stoplua startctxfunction stopctxfunction \ +ctxfunction startctxfunctiondefinition stopctxfunctiondefinition installctxfunction installprotectedctxfunction \ +installprotectedctxscanner installctxscanner resetctxscanner cldprocessfile cldloadfile \ +cldloadviafile cldcontext cldcommand carryoverpar freezeparagraphproperties \ +defrostparagraphproperties setparagraphfreezing forgetparagraphfreezing updateparagraphproperties updateparagraphpenalties \ +updateparagraphdemerits updateparagraphshapes updateparagraphlines lastlinewidth assumelongusagecs \ +Umathbotaccent Umathtopaccent righttolefthbox lefttorighthbox righttoleftvbox \ +lefttorightvbox righttoleftvtop lefttorightvtop rtlhbox ltrhbox \ +rtlvbox ltrvbox rtlvtop ltrvtop autodirhbox \ +autodirvbox autodirvtop leftorrighthbox leftorrightvbox leftorrightvtop \ +lefttoright righttoleft checkedlefttoright checkedrighttoleft synchronizelayoutdirection \ +synchronizedisplaydirection synchronizeinlinedirection dirlre dirrle dirlro \ +dirrlo lesshyphens morehyphens nohyphens dohyphens \ +dohyphencollapsing nohyphencollapsing compounddiscretionary Ucheckedstartdisplaymath Ucheckedstopdisplaymath \ +break nobreak allowbreak goodbreak nospace \ +nospacing dospacing naturalhbox naturalvbox naturalvtop \ +naturalhpack naturalvpack naturaltpack reversehbox reversevbox \ +reversevtop reversehpack reversevpack reversetpack hcontainer \ +vcontainer tcontainer frule compoundhyphenpenalty start \ +stop unsupportedcs openout closeout write \ +openin closein read readline readfromterminal \ +boxlines boxline setboxline copyboxline boxlinewd \ +boxlineht boxlinedp boxlinenw boxlinenh boxlinend \ +boxlinels boxliners boxlinelh boxlinerh boxlinelp \ +boxlinerp boxlinein boxrangewd boxrangeht boxrangedp \ +bitwiseset bitwiseand bitwiseor bitwisexor bitwisenot \ +bitwisenil ifbitwiseand bitwise bitwiseshift bitwiseflip \ +textdir linedir pardir boxdir prelistbox \ +postlistbox prelistcopy postlistcopy setprelistbox setpostlistbox \ +noligaturing nokerning noexpansion noprotrusion noleftkerning \ +noleftligaturing norightkerning norightligaturing noitaliccorrection futureletnexttoken \ +defbackslashbreak letbackslashbreak pushoverloadmode popoverloadmode pushrunstate \ +poprunstate suggestedalias newlocalcount newlocaldimen newlocalskip \ +newlocalmuskip newlocaltoks newlocalbox newlocalwrite newlocalread \ +setnewlocalcount setnewlocaldimen setnewlocalskip setnewlocalmuskip setnewlocaltoks \ +setnewlocalbox diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties index 06ec3910d..54f32818b 100644 --- a/context/data/scite/context/scite-context-data-tex.properties +++ b/context/data/scite/context/scite-context-data-tex.properties @@ -67,40 +67,41 @@ exceptionpenalty expand expandafterpars expandafterspaces expandcstoken \ expanded expandtoken explicitdiscretionary explicithyphenpenalty firstvalidlanguage \ fontid fontspecifiedsize formatname frozen futuredef \ futureexpand futureexpandis futureexpandisap gdefcsname gleaders \ -glet gletcsname gluespecdef glyphdatafield glyphoptions \ -glyphscale glyphscriptfield glyphscriptscale glyphscriptscriptscale glyphstatefield \ -glyphtextscale glyphxoffset glyphxscale glyphyoffset glyphyscale \ -gtoksapp gtokspre hccode hjcode hpack \ -hyphenationmin hyphenationmode ifabsdim ifabsnum ifarguments \ -ifboolean ifchkdim ifchknum ifcmpdim ifcmpnum \ -ifcondition ifcstok ifdimval ifempty ifflags \ -ifhastok ifhastoks ifhasxtoks ifincsname ifinsert \ -ifmathparameter ifmathstyle ifnumval ifparameter ifparameters \ -ifrelax iftok ignorearguments ignorepars immediate \ -immutable initcatcodetable insertbox insertcopy insertdepth \ -insertdistance insertheight insertheights insertlimit insertmode \ -insertmultiplier insertprogress insertunbox insertuncopy insertwidth \ -instance integerdef lastarguments lastnamedcs lastnodesubtype \ -leftmarginkern letcharcode letcsname letfrozen letprotected \ -linedirection linepar localbrokenpenalty localcontrol localcontrolled \ -localinterlinepenalty localleftbox localrightbox lpcode luabytecode \ -luabytecodecall luacopyinputnodes luadef luaescapestring luafunction \ -luafunctioncall luatexbanner luatexrevision luatexversion mathdelimitersmode \ -mathdirection mathdisplayskipmode matheqnogapstep mathflattenmode mathitalicsmode \ -mathnolimitsmode mathpenaltiesmode mathrulesfam mathrulesmode mathrulethicknessmode \ -mathscale mathscriptboxmode mathscriptcharmode mathscriptsmode mathstyle \ -mathsurroundmode mathsurroundskip mugluespecdef mutable noaligned \ -noboundary nohrule norelax normalizelinemode nospaces \ -novrule orelse orunless outputbox overloaded \ -overloadmode parametercount parattr pardirection permanent \ -postexhyphenchar posthyphenchar prebinoppenalty predisplaygapfactor preexhyphenchar \ -prehyphenchar prerelpenalty protrudechars protrusionboundary pxdimen \ -quitvmode rightmarginkern rpcode savecatcodetable scantextokens \ -setfontid snapshotpar supmarkmode swapcsvalues textdirection \ -thewithoutunit thewithproperty tokenized toksapp tokspre \ -tolerant tpack tracingfonts tracinghyphenation tracingmath \ -undent unletfrozen unletprotected vpack wordboundary \ -wrapuppar xdefcsname xtoksapp xtokspre +glet gletcsname glettonothing gluespecdef glyphdatafield \ +glyphoptions glyphscale glyphscriptfield glyphscriptscale glyphscriptscriptscale \ +glyphstatefield glyphtextscale glyphxoffset glyphxscale glyphyoffset \ +glyphyscale gtoksapp gtokspre hccode hjcode \ +hpack hyphenationmin hyphenationmode ifabsdim ifabsnum \ +ifarguments ifboolean ifchkdim ifchknum ifcmpdim \ +ifcmpnum ifcondition ifcstok ifdimval ifempty \ +ifflags ifhastok ifhastoks ifhasxtoks ifincsname \ +ifinsert ifmathparameter ifmathstyle ifnumval ifparameter \ +ifparameters ifrelax iftok ignorearguments ignorepars \ +immediate immutable initcatcodetable insertbox insertcopy \ +insertdepth insertdistance insertheight insertheights insertlimit \ +insertmode insertmultiplier insertprogress insertunbox insertuncopy \ +insertwidth instance integerdef lastarguments lastnamedcs \ +lastnodesubtype leftmarginkern letcharcode letcsname letfrozen \ +letprotected lettonothing linedirection linepar localbrokenpenalty \ +localcontrol localcontrolled localinterlinepenalty localleftbox localrightbox \ +lpcode luabytecode luabytecodecall luacopyinputnodes luadef \ +luaescapestring luafunction luafunctioncall luatexbanner luatexrevision \ +luatexversion mathdelimitersmode mathdirection mathdisplayskipmode matheqnogapstep \ +mathflattenmode mathitalicsmode mathnolimitsmode mathpenaltiesmode mathrulesfam \ +mathrulesmode mathrulethicknessmode mathscale mathscriptboxmode mathscriptcharmode \ +mathscriptsmode mathstyle mathsurroundmode mathsurroundskip mugluespecdef \ +mutable noaligned noboundary nohrule norelax \ +normalizelinemode nospaces novrule orelse orunless \ +outputbox overloaded overloadmode parametercount parattr \ +pardirection permanent postexhyphenchar posthyphenchar prebinoppenalty \ +predisplaygapfactor preexhyphenchar prehyphenchar prerelpenalty protrudechars \ +protrusionboundary pxdimen quitvmode rightmarginkern rpcode \ +savecatcodetable scantextokens setfontid snapshotpar supmarkmode \ +swapcsvalues textdirection thewithoutunit thewithproperty tokenized \ +toksapp tokspre tolerant tpack tracingfonts \ +tracinghyphenation tracingmath undent unletfrozen unletprotected \ +vpack wordboundary wrapuppar xdefcsname xtoksapp \ +xtokspre keywordclass.tex.omega=\ Omegaminorversion Omegarevision Omegaversion diff --git a/context/data/textadept/context/data/scite-context-data-context.lua b/context/data/textadept/context/data/scite-context-data-context.lua index 3f4ed3a49..4d724d26c 100644 --- a/context/data/textadept/context/data/scite-context-data-context.lua +++ b/context/data/textadept/context/data/scite-context-data-context.lua @@ -1,4 +1,4 @@ return { ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "frozenhsizecode", "frozenskipcode", "frozenhangcode", "frozenindentcode", "frozenparfillcode", "frozenadjustcode", "frozenprotrudecode", "frozentolerancecode", "frozenstretchcode", "frozenloosenesscode", "frozenlastlinecode", "frozenlinepenaltycode", "frozenclubpenaltycode", "frozenwidowpenaltycode", "frozendisplaypenaltycode", "frozenbrokenpenaltycode", "frozendemeritscode", "frozenshapecode", "frozenlinecode", "frozenhyphenationcode", "frozenallcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationmodecode", "automatichyphenationmodecode", "explicithyphenationmodecode", "syllablehyphenationmodecode", "uppercasehyphenationmodecode", "collapsehyphenationmodecode", "compoundhyphenationmodecode", "strictstarthyphenationmodecode", "strictendhyphenationmodecode", "automaticpenaltyhyphenationmodecode", "explicitpenaltyhyphenationmodecode", "permitgluehyphenationmodecode", "permitallhyphenationmodecode", "permitmathreplacehyphenationmodecode", "forcecheckhyphenationmodecode", "lazyligatureshyphenationmodecode", "forcehandlerhyphenationmodecode", "feedbackcompoundhyphenationmodecode", "ignoreboundshyphenationmodecode", "partialhyphenationmodecode", "completehyphenationmodecode", "normalizelinecode", "parindentskipcode", "swaphangindentcode", "swapparsshapecode", "breakafterdircode", "removemarginkernscode", "clipwidthcode", "flattendiscretionariescode", "noligaturingcode", "nokerningcode", "noleftligaturecode", "noleftkerncode", "norightligaturecode", "norightkerncode", "noexpansioncode", "noprotrusioncode", "noitaliccorrectioncode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "prewordcode", "postwordcode", "continuewhenlmtxmode" }, - ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox" }, + ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox" }, } \ No newline at end of file diff --git a/context/data/textadept/context/data/scite-context-data-tex.lua b/context/data/textadept/context/data/scite-context-data-tex.lua index 444a71b8b..482223569 100644 --- a/context/data/textadept/context/data/scite-context-data-tex.lua +++ b/context/data/textadept/context/data/scite-context-data-tex.lua @@ -1,7 +1,7 @@ return { ["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" }, ["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastchkdim", "lastchknum", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numericscale", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingalignments", "tracingassigns", "tracinggroups", "tracingifs", "tracinglevels", "tracingnesting", "unexpanded", "unless", "widowpenalties" }, - ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontspecifiedsize", "formatname", "frozen", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "ifflags", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmode", "insertmultiplier", "insertprogress", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "linedirection", "linepar", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parattr", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "snapshotpar", "supmarkmode", "swapcsvalues", "textdirection", "thewithoutunit", "thewithproperty", "tokenized", "toksapp", "tokspre", "tolerant", "tpack", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" }, + ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontspecifiedsize", "formatname", "frozen", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "ifflags", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmode", "insertmultiplier", "insertprogress", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "linepar", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parattr", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "snapshotpar", "supmarkmode", "swapcsvalues", "textdirection", "thewithoutunit", "thewithproperty", "tokenized", "toksapp", "tokspre", "tolerant", "tpack", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" }, ["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" }, ["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" }, ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "beginsimplegroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "endsimplegroup", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "fontspecifiedname", "futurelet", "gdef", "global", "globaldefs", "glyph", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "meaningfull", "meaningless", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "ordlimits", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overshoot", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scaledfontdimen", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "todimension", "tointeger", "toks", "toksdef", "tolerance", "topmark", "topskip", "toscaled", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unhpack", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "unvpack", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" }, diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json index f0fbf25c3..e89cb6438 100644 --- a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json @@ -89,7 +89,7 @@ "name" : "context.grouping.symbols.groups.tex" }, "helper" : { - "match" : "\u005C\u005C(xmlsetup|writestatus|write|wait|vpenalty|vpackedbox|vpackbox|vkern|vglue|vfillneg|vfilllneg|vfilll|vcontainer|validassignment|uxdef|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedlineskiplimit|usedlineskip|usedbaselineskip|updateparagraphshapes|updateparagraphproperties|updateparagraphpenalties|updateparagraphlines|updateparagraphdemerits|unvoidbox|unsupportedcs|unprotect|unique|unexpanded|undefinevalue|uncramped|ugdef|uedef|uedcatcodecommand|udef|twodigits|truecondition|tripleexpandafter|triggeruncrampedstyle|triggeruncrampedsmallstyle|triggeruncrampedbigstyle|triggertextstyle|triggersmallstyle|triggerscriptstyle|triggerscriptscriptstyle|triggermathstyle|triggergroupedcommandcs|triggergroupedcommand|triggerdisplaystyle|triggercrampedstyle|triggercrampedsmallstyle|triggercrampedbigstyle|triggerbigstyle|tracingnone|tracingall|to|threedigits|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thirdargumenttrue|thirdargumentfalse|then|thebox|textdir|texsetup|texdefinition|tempstring|tcontainer|synchronizelayoutdirection|synchronizeinlinedirection|synchronizedisplaydirection|superscript|superprescript|suggestedalias|subscript|subprescript|strutwd|struthtdp|strutht|strutgap|strutdp|strutbox|strut|strippedcsname|stopxmlsetups|stoptexsetups|stoptexdefinition|stoptexcode|stopsetups|stoprawsetups|stoppickupmath|stopnointerference|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stopimath|stopforceddisplaymath|stopextendcatcodetable|stopexpanded|stopdmath|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcatcodetable|stop|startxmlsetups|starttexsetups|starttexdefinition|starttexcode|startsetups|startrawsetups|startpickupmath|startnointerference|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startimath|startforceddisplaymath|startextendcatcodetable|startexpanded|startdmath|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcatcodetable|start|space|sixthofsixarguments|sixthargumenttrue|sixthargumentfalse|singleexpandafter|simplegroupedcommandcs|simplegroupedcommand|signalcharacter|showluatokens|shiftbox|seventhargumenttrue|seventhargumentfalse|setxvalue|setxquantity|setxmeasure|setvalue|setuxvalue|setuvalue|setups|setup|setugvalue|setuevalue|settruevalue|settrue|setsystemmode|setstrut|setquantity|setprelistbox|setpostlistbox|setparagraphfreezing|setnewmacro|setnewlocaltoks|setnewlocalskip|setnewlocalmuskip|setnewlocaldimen|setnewlocalcount|setnewlocalbox|setnewconstant|setmode|setmeasure|setmathtextbox|setmathsmalltextbox|setlocalhsize|setgvalue|setgquantity|setgmeasure|setfalsevalue|setfalse|setexpandeddummyparameter|setevalue|setequantity|setemeasure|setdummyparameter|setcontrolspaces|setconstantvalue|setconstant|setconditional|setcatcodetable|setboxline|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|secondargumenttrue|secondargumentfalse|scratchyposition|scratchyoffset|scratchxposition|scratchxoffset|scratchwidth|scratchvsize|scratchvoffset|scratchunicode|scratchtotal|scratchtopskip|scratchtopoffset|scratchtokstwo|scratchtoksthree|scratchtokssix|scratchtoksone|scratchtoksfour|scratchtoksfive|scratchtoks|scratchstringtwo|scratchstringone|scratchstring|scratchskiptwo|scratchskipthree|scratchskipsix|scratchskipone|scratchskipfour|scratchskipfive|scratchskip|scratchrightskip|scratchrightoffset|scratchoffset|scratchny|scratchnx|scratchmy|scratchmx|scratchmuskiptwo|scratchmuskipthree|scratchmuskipsix|scratchmuskipone|scratchmuskipfour|scratchmuskipfive|scratchmuskip|scratchmin|scratchmax|scratchmacrotwo|scratchmacroone|scratchmacro|scratchleftskip|scratchleftoffset|scratchhsize|scratchhoffset|scratchheight|scratchdistance|scratchdimentwo|scratchdimenthree|scratchdimensix|scratchdimenone|scratchdimenfour|scratchdimenfive|scratchdimen|scratchdepth|scratchcountertwo|scratchcounterthree|scratchcountersix|scratchcounterone|scratchcounterfour|scratchcounterfive|scratchcounter|scratchconditiontwotrue|scratchconditiontwofalse|scratchconditiontrue|scratchconditiononetrue|scratchconditiononefalse|scratchconditionfalse|scratchboxtwo|scratchboxthree|scratchboxsix|scratchboxone|scratchboxfour|scratchboxfive|scratchbox|scratchbottomskip|scratchbottomoffset|scangivendimensions|ruledvtop|ruledvss|ruledvskip|ruledvpack|ruledvglue|ruledvfilneg|ruledvfillneg|ruledvfilll|ruledvfill|ruledvfil|ruledvcenter|ruledvbox|ruledtpack|ruledpenalty|ruledmskip|ruledmkern|ruledmbox|ruledkern|ruledhss|ruledhskip|ruledhpack|ruledhglue|ruledhfilneg|ruledhfillneg|ruledhfilll|ruledhfill|ruledhfil|ruledhbox|rtlvtop|rtlvbox|rtlhbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightboundary|reversevtop|reversevpack|reversevbox|reversetpack|reversehpack|reversehbox|restorecatcodes|resetvalue|resetsystemmode|resetsetups|resetmode|resetglobal|reseteverypar|resetctxscanner|reqno|removeunwantedspaces|removetoks|removepunctuation|removelastspace|relrelspacing|relpunctspacing|relordspacing|relopspacing|relopenspacing|relinnerspacing|relclosespacing|relbinspacing|registerctxluafile|redoglobal|redefine|recurselevel|recursedepth|readline|readfromterminal|read|quitprevcommalist|quitcondition|quitcommalist|quarterstrut|quantity|quantitied|quad|pushsystemmode|pushrunstate|pushoverloadmode|pushmathstyle|pushcatcodetable|punctrelspacing|punctpunctspacing|punctordspacing|punctopspacing|punctopenspacing|punctinnerspacing|punctclosespacing|punctbinspacing|protect|processfirstactioninset|processcommalist|processcommacommand|processallactionsinset|processallactions|processaction|privatescratchtoks|privatescratchskip|privatescratchmuskip|privatescratchdimen|privatescratchcounter|privatescratchbox|prerolltostring|prependtotoks|prependtoks|prelistcopy|prelistbox|postlistcopy|postlistbox|popsystemmode|poprunstate|popoverloadmode|popmathstyle|popcatcodetable|pickupgroupedcommandcs|pickupgroupedcommand|permitspacesbetweengroups|pardir|ordrelspacing|ordpunctspacing|ordordspacing|ordopspacing|ordopenspacing|ordinnerspacing|ordclosespacing|ordbinspacing|oprelspacing|oppunctspacing|opordspacing|opopspacing|opopenspacing|opinnerspacing|openrelspacing|openpunctspacing|openout|openordspacing|openopspacing|openopenspacing|openinnerspacing|openin|openclosespacing|openbinspacing|opclosespacing|opbinspacing|onlypdfobjectcompression|onlynonbreakablespace|oninterlineskip|offinterlineskip|obeytabs|obeyspaces|obeypages|obeyluatokens|obeylualines|obeylines|obeyedtab|obeyedspace|obeyedpage|obeyedline|null|novalidassignment|nosuperscript|nosuperprescript|nosubsprecript|nosubscript|nospacing|nospace|normalvglue|normalvfillneg|normalvfilllneg|normalsuperscript|normalsubscript|normalstopimath|normalstopdmath|normalstartimath|normalstartdmath|normalspaces|normalspace|normalreqno|normalpdfcompression|normalnosuperscript|normalnosubscript|normalhglue|normalhfillneg|normalhfilllneg|norightligaturing|norightkerning|noprotrusion|nopdfobjectcompression|nopdfcompression|noligaturing|noleftligaturing|noleftkerning|nokerning|noitaliccorrection|nointerlineskip|nohyphens|nohyphencollapsing|noheightstrut|nofarguments|noexpansion|nobreak|nexttoken|nextbox|next|newwrite|newtoks|newsystemmode|newskip|newsignal|newread|newmuskip|newmode|newmarks|newmacro|newlocalwrite|newlocaltoks|newlocalskip|newlocalread|newlocalmuskip|newlocaldimen|newlocalcount|newlocalbox|newlanguage|newinsert|newif|newhelp|newfraction|newfamily|newfam|newdimen|newcount|newconstant|newconditional|newcatcodetable|newbox|newattribute|nbsp|naturalvtop|naturalvpack|naturalvbox|naturaltpack|naturalspace|naturalhpack|naturalhbox|morehyphens|modulonumber|measured|measure|maximumpdfcompression|mathtext|mathstylevcenteredvbox|mathstylevcenteredhbox|mathstylevcenter|mathstylevbox|mathstyletrigger|mathstylehbox|mathstylefont|mathstyleface|mathstylecommand|mathsmallstylefont|mathsmallstyleface|mathpalette|mathortext|mathnothing|mathnolop|mathlimop|mathbox|mathalpha|luaversion|luasetup|luaparameterset|luaminorversion|luamajorversion|luaexpr|luaexpanded|luaconditional|luacode|ltrvtop|ltrvbox|ltrhbox|loggingall|localhsize|lineheight|linedir|letvalue|letgvalue|letdummyparameter|letcatcodecommand|letbackslashbreak|lesshyphens|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftorright|leftboundary|lateluacode|lastlinewidth|keepunwantedspaces|installprotectedctxscanner|installprotectedctxfunction|installctxscanner|installctxfunction|installcorenamespace|innerrelspacing|innerpunctspacing|innerordspacing|inneropspacing|inneropenspacing|innerinnerspacing|innerclosespacing|innerbinspacing|inlineordisplaymath|indisplaymath|ignorevalue|ignoretabs|ignoreparskip|ignorepages|ignorelines|ignoreeofs|ifscratchconditiontwo|ifscratchconditionone|ifscratchcondition|ifbitwiseand|htdp|hsizefraction|hpenalty|hpackedbox|hpackbox|hkern|hglue|hfillneg|hfilllneg|hfilll|hcontainer|halfstrut|halflinestrut|groupedcommandcs|groupedcommand|goodbreak|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblesixarguments|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|globalsetsystemmode|globalsetmode|globalscratchtoks|globalscratchskip|globalscratchmuskip|globalscratchdimen|globalscratchcountertwo|globalscratchcounterthree|globalscratchcounterone|globalscratchcounter|globalscratchbox|globalresetsystemmode|globalresetmode|globallet|givenwidth|givenheight|givendepth|getxparameters|getvalue|getuvalue|getparameters|getgparameters|getfirstcharacter|geteparameters|getdummyparameters|futureletnexttoken|frule|freezequantity|freezeparagraphproperties|freezemeasure|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourthargumenttrue|fourthargumentfalse|foundtrue|foundfalse|forgetparameters|forgetparagraphfreezing|forgetall|forcestrutdepth|forcedisplaymath|flushnextbox|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinset|firstargumenttrue|firstargumentfalse|finishpar|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|fifthofsixarguments|fifthoffivearguments|fifthargumenttrue|fifthargumentfalse|fastsetup|fastloopindex|fastloopfinal|falsecondition|expelsedoif|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifcommonelse|expdoif|expanded|exitloop|executeifdefined|enspace|endstrut|endpar|endgraf|emspace|empty|dummyparameter|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleexpandafter|dotriplegroupempty|dotripleempty|dotripleargument|dostepwiserecurse|dospacing|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dorecurse|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|dontpermitspacesbetweengroups|dontleavehmode|dontcomplain|donothing|donetrue|donefalse|doloopovermatched|doloopovermatch|doloopoverlist|doloop|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalue|doifundefinedelse|doifundefined|doiftextelse|doiftext|doifsomethingelse|doifsomething|doifsetupselse|doifsetups|doifnumberelse|doifnumber|doifnotvalue|doifnottext|doifnotsetups|doifnotnumber|doifnotinstring|doifnotinset|doifnothingelse|doifnothing|doifnotcommon|doifnotcommandhandler|doifnot|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextcharcselse|doifnextbgroupelse|doifnextbgroupcselse|doifinstringelse|doifinstring|doifinsetelse|doifinset|doiffirstcharelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifelsevaluenothing|doifelsevalue|doifelseundefined|doifelsetext|doifelsesomething|doifelsesetups|doifelsenumber|doifelsenothing|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextcharcs|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelseinstring|doifelseinset|doifelsefirstchar|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelsedimension|doifelsedefined|doifelsecommon|doifelsecommandhandler|doifelseassignmentcs|doifelseassignment|doifelse|doifdimensionelse|doifdefinedelse|doifdefined|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifassignmentelsecs|doifassignmentelse|doif|dohyphens|dohyphencollapsing|doglobal|dofastloopcs|dodoublegroupempty|dodoubleempty|dodoubleargument|dodoglobal|docheckassignment|dividenumber|distributedhsize|dirrlo|dirrle|dirlro|dirlre|directsetup|directquantity|directmeasure|directluacode|directdummyparameter|depthstrut|defrostparagraphproperties|definequantity|definenamedlua|definemeasure|defineexpandable|define|defcatcodecommand|defbackslashbreak|defaultcatcodetable|currentcatcodetable|ctxwrite|ctxsprint|ctxreport|ctxluamatch|ctxluacode|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|crlf|cramped|copysetups|copyparameters|copyboxline|controlspace|contentostring|compoundhyphenpenalty|compounddiscretionary|closerelspacing|closepunctspacing|closeout|closeordspacing|closeopspacing|closeopenspacing|closeinnerspacing|closein|closeclosespacing|closebinspacing|cldprocessfile|cldloadviafile|cldloadfile|cldcontext|cldcommand|checkedstrippedcsname|checkedrighttoleft|checkedlefttoright|checked|charspace|catcodetablename|carryoverpar|break|boxtostring|boxrangewd|boxrangeht|boxrangedp|boxlinewd|boxlines|boxliners|boxlinerp|boxlinerh|boxlinenw|boxlinenh|boxlinend|boxlinels|boxlinelp|boxlinelh|boxlinein|boxlineht|boxlinedp|boxline|boxisempty|boxdir|booleanmodevalue|bitwisexor|bitwiseshift|bitwiseset|bitwiseor|bitwisenot|bitwisenil|bitwiseflip|bitwiseand|bitwise|binrelspacing|binpunctspacing|binordspacing|binopspacing|binopenspacing|bininnerspacing|binclosespacing|binbinspacing|begstrut|begcsname|availablehsize|autorule|autodirvtop|autodirvbox|autodirhbox|assumelongusagecs|appendtotoks|appendtoks|allowbreak|aliasmacro|Umathtopaccent|Umathbotaccent|Ucheckedstopdisplaymath|Ucheckedstartdisplaymath)(?=[^a-zA-Z])", + "match" : "\u005C\u005C(xmlsetup|writestatus|write|wait|vpenalty|vpackedbox|vpackbox|vkern|vglue|vfillneg|vfilllneg|vfilll|vcontainer|validassignment|uxdef|usedummystyleparameter|usedummystyleandcolor|usedummycolorparameter|usedlineskiplimit|usedlineskip|usedbaselineskip|updateparagraphshapes|updateparagraphproperties|updateparagraphpenalties|updateparagraphlines|updateparagraphdemerits|unvoidbox|untraceddonothing|unsupportedcs|unprotect|unique|unexpanded|undefinevalue|uncramped|ugdef|uedef|uedcatcodecommand|udef|twodigits|truecondition|tripleexpandafter|triggeruncrampedstyle|triggeruncrampedsmallstyle|triggeruncrampedbigstyle|triggertextstyle|triggersmallstyle|triggerscriptstyle|triggerscriptscriptstyle|triggermathstyle|triggergroupedcommandcs|triggergroupedcommand|triggerdisplaystyle|triggercrampedstyle|triggercrampedsmallstyle|triggercrampedbigstyle|triggerbigstyle|tracingnone|tracingall|to|threedigits|thirdofthreeunexpanded|thirdofthreearguments|thirdofsixarguments|thirdoffourarguments|thirdoffivearguments|thirdargumenttrue|thirdargumentfalse|then|thebox|textdir|texsetup|texdefinition|tempstring|tcontainer|synchronizelayoutdirection|synchronizeinlinedirection|synchronizedisplaydirection|superscript|superprescript|suggestedalias|subscript|subprescript|strutwd|struthtdp|strutht|strutgap|strutdp|strutbox|strut|strippedcsname|stopxmlsetups|stoptexsetups|stoptexdefinition|stoptexcode|stopsetups|stoprawsetups|stoppickupmath|stopnointerference|stopluasetups|stopluaparameterset|stopluacode|stoplua|stoplocalsetups|stopimath|stopforceddisplaymath|stopextendcatcodetable|stopexpanded|stopdmath|stopctxfunctiondefinition|stopctxfunction|stopcontextdefinitioncode|stopcontextcode|stopcatcodetable|stop|startxmlsetups|starttexsetups|starttexdefinition|starttexcode|startsetups|startrawsetups|startpickupmath|startnointerference|startluasetups|startluaparameterset|startluacode|startlua|startlocalsetups|startimath|startforceddisplaymath|startextendcatcodetable|startexpanded|startdmath|startctxfunctiondefinition|startctxfunction|startcontextdefinitioncode|startcontextcode|startcatcodetable|start|space|sixthofsixarguments|sixthargumenttrue|sixthargumentfalse|singleexpandafter|simplegroupedcommandcs|simplegroupedcommand|signalcharacter|showluatokens|shiftbox|seventhargumenttrue|seventhargumentfalse|setxvalue|setxquantity|setxmeasure|setvalue|setuxvalue|setuvalue|setups|setup|setugvalue|setuevalue|settruevalue|settrue|setsystemmode|setstrut|setquantity|setprelistbox|setpostlistbox|setparagraphfreezing|setnewmacro|setnewlocaltoks|setnewlocalskip|setnewlocalmuskip|setnewlocaldimen|setnewlocalcount|setnewlocalbox|setnewconstant|setmode|setmeasure|setmathtextbox|setmathsmalltextbox|setlocalhsize|setgvalue|setgquantity|setgmeasure|setfalsevalue|setfalse|setexpandeddummyparameter|setevalue|setequantity|setemeasure|setdummyparameter|setcontrolspaces|setconstantvalue|setconstant|setconditional|setcatcodetable|setboxline|secondoftwounexpanded|secondoftwoarguments|secondofthreeunexpanded|secondofthreearguments|secondofsixarguments|secondoffourarguments|secondoffivearguments|secondargumenttrue|secondargumentfalse|scratchyposition|scratchyoffset|scratchxposition|scratchxoffset|scratchwidth|scratchvsize|scratchvoffset|scratchunicode|scratchtotal|scratchtopskip|scratchtopoffset|scratchtokstwo|scratchtoksthree|scratchtokssix|scratchtoksone|scratchtoksfour|scratchtoksfive|scratchtoks|scratchstringtwo|scratchstringone|scratchstring|scratchskiptwo|scratchskipthree|scratchskipsix|scratchskipone|scratchskipfour|scratchskipfive|scratchskip|scratchrightskip|scratchrightoffset|scratchoffset|scratchny|scratchnx|scratchmy|scratchmx|scratchmuskiptwo|scratchmuskipthree|scratchmuskipsix|scratchmuskipone|scratchmuskipfour|scratchmuskipfive|scratchmuskip|scratchmin|scratchmax|scratchmacrotwo|scratchmacroone|scratchmacro|scratchleftskip|scratchleftoffset|scratchhsize|scratchhoffset|scratchheight|scratchdistance|scratchdimentwo|scratchdimenthree|scratchdimensix|scratchdimenone|scratchdimenfour|scratchdimenfive|scratchdimen|scratchdepth|scratchcountertwo|scratchcounterthree|scratchcountersix|scratchcounterone|scratchcounterfour|scratchcounterfive|scratchcounter|scratchconditiontwotrue|scratchconditiontwofalse|scratchconditiontrue|scratchconditiononetrue|scratchconditiononefalse|scratchconditionfalse|scratchboxtwo|scratchboxthree|scratchboxsix|scratchboxone|scratchboxfour|scratchboxfive|scratchbox|scratchbottomskip|scratchbottomoffset|scangivendimensions|ruledvtop|ruledvss|ruledvskip|ruledvpack|ruledvglue|ruledvfilneg|ruledvfillneg|ruledvfilll|ruledvfill|ruledvfil|ruledvcenter|ruledvbox|ruledtpack|ruledpenalty|ruledmskip|ruledmkern|ruledmbox|ruledkern|ruledhss|ruledhskip|ruledhpack|ruledhglue|ruledhfilneg|ruledhfillneg|ruledhfilll|ruledhfill|ruledhfil|ruledhbox|rtlvtop|rtlvbox|rtlhbox|righttoleftvtop|righttoleftvbox|righttolefthbox|righttoleft|rightboundary|reversevtop|reversevpack|reversevbox|reversetpack|reversehpack|reversehbox|restorecatcodes|resetvalue|resetsystemmode|resetsetups|resetmode|resetglobal|reseteverypar|resetctxscanner|reqno|removeunwantedspaces|removetoks|removepunctuation|removelastspace|relrelspacing|relpunctspacing|relordspacing|relopspacing|relopenspacing|relinnerspacing|relclosespacing|relbinspacing|registerctxluafile|redoglobal|redefine|recurselevel|recursedepth|readline|readfromterminal|read|quitprevcommalist|quitcondition|quitcommalist|quarterstrut|quantity|quantitied|quad|pushsystemmode|pushrunstate|pushoverloadmode|pushmathstyle|pushcatcodetable|punctrelspacing|punctpunctspacing|punctordspacing|punctopspacing|punctopenspacing|punctinnerspacing|punctclosespacing|punctbinspacing|protect|processfirstactioninset|processcommalist|processcommacommand|processallactionsinset|processallactions|processaction|privatescratchtoks|privatescratchskip|privatescratchmuskip|privatescratchdimen|privatescratchcounter|privatescratchbox|prerolltostring|prependtotoks|prependtoks|prelistcopy|prelistbox|postlistcopy|postlistbox|popsystemmode|poprunstate|popoverloadmode|popmathstyle|popcatcodetable|pickupgroupedcommandcs|pickupgroupedcommand|permitspacesbetweengroups|pardir|ordrelspacing|ordpunctspacing|ordordspacing|ordopspacing|ordopenspacing|ordinnerspacing|ordclosespacing|ordbinspacing|oprelspacing|oppunctspacing|opordspacing|opopspacing|opopenspacing|opinnerspacing|openrelspacing|openpunctspacing|openout|openordspacing|openopspacing|openopenspacing|openinnerspacing|openin|openclosespacing|openbinspacing|opclosespacing|opbinspacing|onlypdfobjectcompression|onlynonbreakablespace|oninterlineskip|offinterlineskip|obeytabs|obeyspaces|obeypages|obeyluatokens|obeylualines|obeylines|obeyedtab|obeyedspace|obeyedpage|obeyedline|null|novalidassignment|nosuperscript|nosuperprescript|nosubsprecript|nosubscript|nospacing|nospace|normalvglue|normalvfillneg|normalvfilllneg|normalsuperscript|normalsubscript|normalstopimath|normalstopdmath|normalstartimath|normalstartdmath|normalspaces|normalspace|normalreqno|normalpdfcompression|normalnosuperscript|normalnosubscript|normalhglue|normalhfillneg|normalhfilllneg|norightligaturing|norightkerning|noprotrusion|nopdfobjectcompression|nopdfcompression|noligaturing|noleftligaturing|noleftkerning|nokerning|noitaliccorrection|nointerlineskip|nohyphens|nohyphencollapsing|noheightstrut|nofarguments|noexpansion|nobreak|nexttoken|nextbox|next|newwrite|newtoks|newsystemmode|newskip|newsignal|newread|newmuskip|newmode|newmarks|newmacro|newlocalwrite|newlocaltoks|newlocalskip|newlocalread|newlocalmuskip|newlocaldimen|newlocalcount|newlocalbox|newlanguage|newinsert|newif|newhelp|newfraction|newfamily|newfam|newdimen|newcount|newconstant|newconditional|newcatcodetable|newbox|newattribute|nbsp|naturalvtop|naturalvpack|naturalvbox|naturaltpack|naturalspace|naturalhpack|naturalhbox|morehyphens|modulonumber|measured|measure|maximumpdfcompression|mathtext|mathstylevcenteredvbox|mathstylevcenteredhbox|mathstylevcenter|mathstylevbox|mathstyletrigger|mathstylehbox|mathstylefont|mathstyleface|mathstylecommand|mathsmallstylefont|mathsmallstyleface|mathpalette|mathortext|mathnothing|mathnolop|mathlimop|mathbox|mathalpha|luaversion|luasetup|luaparameterset|luaminorversion|luamajorversion|luaexpr|luaexpanded|luaconditional|luacode|ltrvtop|ltrvbox|ltrhbox|loggingall|localhsize|lineheight|linedir|letvalue|letgvalue|letdummyparameter|letcatcodecommand|letbackslashbreak|lesshyphens|lefttorightvtop|lefttorightvbox|lefttorighthbox|lefttoright|leftorrightvtop|leftorrightvbox|leftorrighthbox|leftorright|leftboundary|lateluacode|lastlinewidth|keepunwantedspaces|installprotectedctxscanner|installprotectedctxfunction|installctxscanner|installctxfunction|installcorenamespace|innerrelspacing|innerpunctspacing|innerordspacing|inneropspacing|inneropenspacing|innerinnerspacing|innerclosespacing|innerbinspacing|inlineordisplaymath|indisplaymath|ignorevalue|ignoretabs|ignoreparskip|ignorepages|ignorelines|ignoreeofs|ifscratchconditiontwo|ifscratchconditionone|ifscratchcondition|ifbitwiseand|htdp|hsizefraction|hpenalty|hpackedbox|hpackbox|hkern|hglue|hfillneg|hfilllneg|hfilll|hcontainer|halfstrut|halflinestrut|groupedcommandcs|groupedcommand|goodbreak|gobbletwooptionals|gobbletwoarguments|gobblethreeoptionals|gobblethreearguments|gobbletenarguments|gobblesixarguments|gobblesevenarguments|gobbleoneoptional|gobbleoneargument|gobbleninearguments|gobblefouroptionals|gobblefourarguments|gobblefiveoptionals|gobblefivearguments|gobbleeightarguments|globalsetsystemmode|globalsetmode|globalscratchtoks|globalscratchskip|globalscratchmuskip|globalscratchdimen|globalscratchcountertwo|globalscratchcounterthree|globalscratchcounterone|globalscratchcounter|globalscratchbox|globalresetsystemmode|globalresetmode|globallet|givenwidth|givenheight|givendepth|getxparameters|getvalue|getuvalue|getparameters|getgparameters|getfirstcharacter|geteparameters|getdummyparameters|futureletnexttoken|frule|freezequantity|freezeparagraphproperties|freezemeasure|fourthofsixarguments|fourthoffourarguments|fourthoffivearguments|fourthargumenttrue|fourthargumentfalse|foundtrue|foundfalse|forgetparameters|forgetparagraphfreezing|forgetall|forcestrutdepth|forcedisplaymath|flushnextbox|firstoftwounexpanded|firstoftwoarguments|firstofthreeunexpanded|firstofthreearguments|firstofsixarguments|firstofoneunexpanded|firstofoneargument|firstoffourarguments|firstoffivearguments|firstinset|firstargumenttrue|firstargumentfalse|finishpar|filledhboxy|filledhboxr|filledhboxm|filledhboxk|filledhboxg|filledhboxc|filledhboxb|fifthofsixarguments|fifthoffivearguments|fifthargumenttrue|fifthargumentfalse|fastsetup|fastloopindex|fastloopfinal|falsecondition|expelsedoif|expdoifnot|expdoifinsetelse|expdoifelseinset|expdoifelsecommon|expdoifcommonelse|expdoif|expanded|exitloop|executeifdefined|enspace|endstrut|endpar|endgraf|emspace|empty|dummyparameter|dowithnextboxcs|dowithnextboxcontentcs|dowithnextboxcontent|dowithnextbox|dowith|doubleexpandafter|dotriplegroupempty|dotripleempty|dotripleargument|dostepwiserecurse|dospacing|dosixtupleempty|dosixtupleargument|dosinglegroupempty|dosingleempty|dosingleargument|doseventupleempty|doseventupleargument|dorecurse|doquintuplegroupempty|doquintupleempty|doquintupleargument|doquadruplegroupempty|doquadrupleempty|doquadrupleargument|dontpermitspacesbetweengroups|dontleavehmode|dontcomplain|donothing|donetrue|donefalse|doloopovermatched|doloopovermatch|doloopoverlist|doloop|doifvaluesomething|doifvaluenothingelse|doifvaluenothing|doifvalue|doifundefinedelse|doifundefined|doiftextelse|doiftext|doifsomethingelse|doifsomething|doifsetupselse|doifsetups|doifnumberelse|doifnumber|doifnotvalue|doifnottext|doifnotsetups|doifnotnumber|doifnotinstring|doifnotinset|doifnothingelse|doifnothing|doifnotcommon|doifnotcommandhandler|doifnot|doifnextparenthesiselse|doifnextoptionalelse|doifnextoptionalcselse|doifnextcharelse|doifnextcharcselse|doifnextbgroupelse|doifnextbgroupcselse|doifinstringelse|doifinstring|doifinsetelse|doifinset|doiffirstcharelse|doiffastoptionalcheckelse|doiffastoptionalcheckcselse|doifelsevaluenothing|doifelsevalue|doifelseundefined|doifelsetext|doifelsesomething|doifelsesetups|doifelsenumber|doifelsenothing|doifelsenextparenthesis|doifelsenextoptionalcs|doifelsenextoptional|doifelsenextcharcs|doifelsenextchar|doifelsenextbgroupcs|doifelsenextbgroup|doifelseinstring|doifelseinset|doifelsefirstchar|doifelsefastoptionalcheckcs|doifelsefastoptionalcheck|doifelsedimension|doifelsedefined|doifelsecommon|doifelsecommandhandler|doifelseassignmentcs|doifelseassignment|doifelse|doifdimensionelse|doifdefinedelse|doifdefined|doifcommonelse|doifcommon|doifcommandhandlerelse|doifcommandhandler|doifassignmentelsecs|doifassignmentelse|doif|dohyphens|dohyphencollapsing|doglobal|dofastloopcs|dodoublegroupempty|dodoubleempty|dodoubleargument|dodoglobal|docheckassignment|dividenumber|distributedhsize|dirrlo|dirrle|dirlro|dirlre|directsetup|directquantity|directmeasure|directluacode|directdummyparameter|depthstrut|defrostparagraphproperties|definequantity|definenamedlua|definemeasure|defineexpandable|define|defcatcodecommand|defbackslashbreak|defaultcatcodetable|currentcatcodetable|ctxwrite|ctxsprint|ctxreport|ctxluamatch|ctxluacode|ctxlua|ctxloadluafile|ctxlatelua|ctxlatecommand|ctxfunction|ctxdirectlua|ctxdirectcommand|ctxcommand|crlf|cramped|copysetups|copyparameters|copyboxline|controlspace|contentostring|compoundhyphenpenalty|compounddiscretionary|closerelspacing|closepunctspacing|closeout|closeordspacing|closeopspacing|closeopenspacing|closeinnerspacing|closein|closeclosespacing|closebinspacing|cldprocessfile|cldloadviafile|cldloadfile|cldcontext|cldcommand|checkedstrippedcsname|checkedrighttoleft|checkedlefttoright|checked|charspace|catcodetablename|carryoverpar|break|boxtostring|boxrangewd|boxrangeht|boxrangedp|boxlinewd|boxlines|boxliners|boxlinerp|boxlinerh|boxlinenw|boxlinenh|boxlinend|boxlinels|boxlinelp|boxlinelh|boxlinein|boxlineht|boxlinedp|boxline|boxisempty|boxdir|booleanmodevalue|bitwisexor|bitwiseshift|bitwiseset|bitwiseor|bitwisenot|bitwisenil|bitwiseflip|bitwiseand|bitwise|binrelspacing|binpunctspacing|binordspacing|binopspacing|binopenspacing|bininnerspacing|binclosespacing|binbinspacing|begstrut|begcsname|availablehsize|autorule|autodirvtop|autodirvbox|autodirhbox|assumelongusagecs|appendtotoks|appendtoks|allowbreak|aliasmacro|Umathtopaccent|Umathbotaccent|Ucheckedstopdisplaymath|Ucheckedstartdisplaymath)(?=[^a-zA-Z])", "name" : "context.plain.commands.plain.tex" }, "ifprimitive" : { @@ -216,7 +216,7 @@ ] }, "primitive" : { - "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|underline|undent|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmath|tracingmacros|tracinglostchars|tracinglevels|tracingifs|tracinghyphenation|tracinggroups|tracingfonts|tracingcommands|tracingassigns|tracingalignments|tpack|toscaled|topskip|topmarks|topmark|tolerant|tolerance|tokspre|toksdef|toksapp|toks|tokenized|tointeger|todimension|time|thinmuskip|thickmuskip|thewithproperty|thewithoutunit|the|textstyle|textfont|textdirection|tabskip|swapcsvalues|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|snapshotpar|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|sfcode|setlanguage|setfontid|setbox|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|scaledfontdimen|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|relpenalty|relax|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|protected|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|permanent|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|parattr|parametercount|par|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orelse|ordlimits|or|omit|numexpr|numericscale|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdefcsname|normalxdef|normalwrapuppar|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvpack|normalunvcopy|normalunvbox|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhpack|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normalundent|normaluchyph|normaluccode|normaltracingstats|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmath|normaltracingmacros|normaltracinglostchars|normaltracinglevels|normaltracingifs|normaltracinghyphenation|normaltracinggroups|normaltracingfonts|normaltracingcommands|normaltracingassigns|normaltracingalignments|normaltpack|normaltoscaled|normaltopskip|normaltopmarks|normaltopmark|normaltolerant|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltokenized|normaltointeger|normaltodimension|normaltime|normalthinmuskip|normalthickmuskip|normalthewithproperty|normalthewithoutunit|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normalswapcsvalues|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalsnapshotpar|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalscaledfontdimen|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalrelpenalty|normalrelax|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpermanent|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalparfillleftskip|normalpardirection|normalparattr|normalparametercount|normalpar|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorelse|normalordlimits|normalor|normalomit|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinepar|normallinedirection|normallimits|normalletprotected|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|normalinsertprogress|normalinsertpenalties|normalinsertmultiplier|normalinsertmode|normalinsertlimit|normalinsertheights|normalinsertheight|normalinsertdistance|normalinsertdepth|normalinsertcopy|normalinsertbox|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmutable|normalimmediate|normalignorespaces|normalignorepars|normalignorearguments|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normaliftok|normalifrelax|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifparameters|normalifparameter|normalifodd|normalifnumval|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfrozen|normalformatname|normalfontspecifiedsize|normalfontspecifiedname|normalfontname|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalfloatingpenalty|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandtoken|normalexpanded|normalexpandcstoken|normalexpandafterspaces|normalexpandafterpars|normalexpandafter|normalexpand|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalenforced|normalendsimplegroup|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledefcsname|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpr|normaldimensiondef|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefcsname|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalclubpenalty|normalclubpenalties|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxorientation|normalboxmaxdepth|normalboxdirection|normalboxattribute|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginsimplegroup|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbaselineskip|normalbadness|normalautomigrationmode|normalautomatichyphenpenalty|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalaligntab|normalalignmark|normalaliased|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathdenominatorvariant|normalUmathdelimiterundervariant|normalUmathdelimiterovervariant|normalUmathdegreevariant|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbotaccentvariant|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathitalicsmode|mathinner|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightbox|localleftbox|localinterlinepenalty|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linepar|linedirection|limits|letprotected|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|insertprogress|insertpenalties|insertmultiplier|insertmode|insertlimit|insertheights|insertheight|insertdistance|insertdepth|insertcopy|insertbox|insert|inputlineno|input|initcatcodetable|indent|immutable|immediate|ignorespaces|ignorepars|ignorearguments|ifx|ifvoid|ifvmode|ifvbox|iftrue|iftok|ifrelax|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifparameters|ifparameter|ifodd|ifnumval|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|frozen|formatname|fontspecifiedsize|fontspecifiedname|fontname|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|floatingpenalty|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandtoken|expandcstoken|expandafterspaces|expandafterpars|expandafter|expand|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|enforced|endsimplegroup|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edefcsname|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpr|dimensiondef|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defcsname|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|clubpenalty|clubpenalties|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxorientation|boxmaxdepth|boxdirection|boxattribute|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginsimplegroup|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|automigrationmode|automatichyphenpenalty|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|aligntab|alignmark|aliased|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathdenominatorvariant|Umathdelimiterundervariant|Umathdelimiterovervariant|Umathdegreevariant|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbotaccentvariant|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])", + "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|underline|undent|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmath|tracingmacros|tracinglostchars|tracinglevels|tracingifs|tracinghyphenation|tracinggroups|tracingfonts|tracingcommands|tracingassigns|tracingalignments|tpack|toscaled|topskip|topmarks|topmark|tolerant|tolerance|tokspre|toksdef|toksapp|toks|tokenized|tointeger|todimension|time|thinmuskip|thickmuskip|thewithproperty|thewithoutunit|the|textstyle|textfont|textdirection|tabskip|swapcsvalues|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|snapshotpar|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|sfcode|setlanguage|setfontid|setbox|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|scaledfontdimen|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|relpenalty|relax|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|protected|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|permanent|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|parattr|parametercount|par|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orelse|ordlimits|or|omit|numexpr|numericscale|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdefcsname|normalxdef|normalwrapuppar|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvpack|normalunvcopy|normalunvbox|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhpack|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normalundent|normaluchyph|normaluccode|normaltracingstats|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmath|normaltracingmacros|normaltracinglostchars|normaltracinglevels|normaltracingifs|normaltracinghyphenation|normaltracinggroups|normaltracingfonts|normaltracingcommands|normaltracingassigns|normaltracingalignments|normaltpack|normaltoscaled|normaltopskip|normaltopmarks|normaltopmark|normaltolerant|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltokenized|normaltointeger|normaltodimension|normaltime|normalthinmuskip|normalthickmuskip|normalthewithproperty|normalthewithoutunit|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normalswapcsvalues|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalsnapshotpar|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalscaledfontdimen|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalrelpenalty|normalrelax|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpermanent|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalparfillleftskip|normalpardirection|normalparattr|normalparametercount|normalpar|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorelse|normalordlimits|normalor|normalomit|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinepar|normallinedirection|normallimits|normallettonothing|normalletprotected|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|normalinsertprogress|normalinsertpenalties|normalinsertmultiplier|normalinsertmode|normalinsertlimit|normalinsertheights|normalinsertheight|normalinsertdistance|normalinsertdepth|normalinsertcopy|normalinsertbox|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmutable|normalimmediate|normalignorespaces|normalignorepars|normalignorearguments|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normaliftok|normalifrelax|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifparameters|normalifparameter|normalifodd|normalifnumval|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglettonothing|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfrozen|normalformatname|normalfontspecifiedsize|normalfontspecifiedname|normalfontname|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalfloatingpenalty|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandtoken|normalexpanded|normalexpandcstoken|normalexpandafterspaces|normalexpandafterpars|normalexpandafter|normalexpand|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalenforced|normalendsimplegroup|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledefcsname|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpr|normaldimensiondef|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefcsname|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalclubpenalty|normalclubpenalties|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxorientation|normalboxmaxdepth|normalboxdirection|normalboxattribute|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginsimplegroup|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbaselineskip|normalbadness|normalautomigrationmode|normalautomatichyphenpenalty|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalaligntab|normalalignmark|normalaliased|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathdenominatorvariant|normalUmathdelimiterundervariant|normalUmathdelimiterovervariant|normalUmathdegreevariant|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbotaccentvariant|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathitalicsmode|mathinner|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightbox|localleftbox|localinterlinepenalty|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linepar|linedirection|limits|lettonothing|letprotected|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|insertprogress|insertpenalties|insertmultiplier|insertmode|insertlimit|insertheights|insertheight|insertdistance|insertdepth|insertcopy|insertbox|insert|inputlineno|input|initcatcodetable|indent|immutable|immediate|ignorespaces|ignorepars|ignorearguments|ifx|ifvoid|ifvmode|ifvbox|iftrue|iftok|ifrelax|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifparameters|ifparameter|ifodd|ifnumval|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|glettonothing|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|frozen|formatname|fontspecifiedsize|fontspecifiedname|fontname|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|floatingpenalty|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandtoken|expandcstoken|expandafterspaces|expandafterpars|expandafter|expand|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|enforced|endsimplegroup|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edefcsname|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpr|dimensiondef|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defcsname|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|clubpenalty|clubpenalties|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxorientation|boxmaxdepth|boxdirection|boxattribute|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginsimplegroup|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|automigrationmode|automatichyphenpenalty|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|aligntab|alignmark|aliased|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathdenominatorvariant|Umathdelimiterundervariant|Umathdelimiterovervariant|Umathdegreevariant|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbotaccentvariant|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])", "name" : "context.primitive.commands.primitive.tex" }, "reserved" : { diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf index 5aabe7cd5..d20243d11 100644 Binary files a/doc/context/documents/general/manuals/luametatex.pdf and b/doc/context/documents/general/manuals/luametatex.pdf differ diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex index 231e15ca1..b859eaeb0 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex @@ -425,7 +425,8 @@ \dontcomplain -\usemodule[abbreviations-mixed] +%usemodule[abbreviations-mixed] +\usemodule[abbreviations-logos] \defineregister[topicindex] \defineregister[primitiveindex] diff --git a/scripts/context/lua/mtx-context.lua b/scripts/context/lua/mtx-context.lua index f5971e15c..72d20d384 100644 --- a/scripts/context/lua/mtx-context.lua +++ b/scripts/context/lua/mtx-context.lua @@ -405,17 +405,19 @@ local function multipass_copyluafile(jobname,run) end local function multipass_copypdffile(jobname,run) - local pdfname = jobname..".pdf" - if validfile(pdfname) then - backup(jobname,false,"pdf",pdfname) - report() + if run then + local pdfname = jobname..".pdf" + if validfile(pdfname) then + backup(jobname,false,"pdf",pdfname) + report() + end end end local function multipass_copylogfile(jobname,run) - local logname = jobname..".log" - if validfile(logname) then - if run then + if run then + local logname = jobname..".log" + if validfile(logname) then backup(jobname,run,"log",logname) report() end @@ -751,8 +753,8 @@ function scripts.context.run(ctxdata,filename) return flag or plus -- flag wins end end - local a_trackers = analysis.trackers - local a_experiments = analysis.experiments + ----- a_trackers = analysis.trackers + ----- a_experiments = analysis.experiments local directives = combine("directives") local trackers = combine("trackers") local experiments = combine("experiments") @@ -877,6 +879,10 @@ function scripts.context.run(ctxdata,filename) mainfile = "" -- we don't need that end -- + -- can be used to include pages from a previous run, --keeppdf or "% keeppdf" on first-line + -- + multipass_copypdffile(jobname,a_keeppdf or analysis.keeppdf) + -- for currentrun=1,maxnofruns do -- c_flags.final = false @@ -908,7 +914,6 @@ function scripts.context.run(ctxdata,filename) elseif returncode == 0 then multipass_copyluafile(jobname,a_keeptuc and currentrun) multipass_copylogfile(jobname,a_keeplog and currentrun) - multipass_copypdffile(jobname,a_keeppdf and currentrun) if not multipass_forcedruns then newhash = multipass_hashfiles(jobname) if multipass_changed(oldhash,newhash) then diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index aac7ad364..6671dcdd1 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2021.06.04 17:20} +\newcontextversion{2021.06.07 08:05} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index b0041b657..f22901bf5 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2021.06.04 17:20} +\edef\contextversion{2021.06.07 08:05} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-nl.mkii b/tex/context/base/mkii/mult-nl.mkii index ce87e0b93..78445f695 100644 --- a/tex/context/base/mkii/mult-nl.mkii +++ b/tex/context/base/mkii/mult-nl.mkii @@ -1265,6 +1265,7 @@ \setinterfaceconstant{symbolset}{symboolset} \setinterfaceconstant{symcolor}{symkleur} \setinterfaceconstant{symstyle}{symletter} +\setinterfaceconstant{synchronize}{synchronize} \setinterfaceconstant{synonym}{synoniem} \setinterfaceconstant{synonymcolor}{synoniemkleur} \setinterfaceconstant{synonymcommand}{synoniemcommando} diff --git a/tex/context/base/mkiv/cldf-ini.lua b/tex/context/base/mkiv/cldf-ini.lua index 10d87e139..f95ac301c 100644 --- a/tex/context/base/mkiv/cldf-ini.lua +++ b/tex/context/base/mkiv/cldf-ini.lua @@ -20,16 +20,8 @@ if not modules then modules = { } end modules ['cldf-ini'] = { -- more efficient approach is stable enough to move the original code to the obsolete -- module. -- --- to be considered: --- --- 0.528 local foo = tex.ctxcatcodes --- 0.651 local foo = getcount("ctxcatcodes") --- 0.408 local foo = getcount(ctxcatcodes) -- local ctxcatcodes = tex.iscount("ctxcatcodes") - -- maybe:  (escape) or 0x2061 (apply function) or 0x2394 (software function ⎔) (old) -- note : tex.print == line with endlinechar appended --- todo : context("%bold{total: }%s",total) --- todo : context.documentvariable("title") -- -- During the crited project we ran into the situation that luajittex was 10-20 times -- slower that luatex ... after 3 days of testing and probing we finally figured out that diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index d4815dd08..2b0da3435 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2021.06.04 17:20} +\newcontextversion{2021.06.07 08:05} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkiv/context-todo.tex b/tex/context/base/mkiv/context-todo.tex index 6aa5bca08..e9345c409 100644 --- a/tex/context/base/mkiv/context-todo.tex +++ b/tex/context/base/mkiv/context-todo.tex @@ -169,6 +169,11 @@ concern \LUATEX\ have been removed from the agenda but some improvements in \stopitem \stopitemize +% should be in lpdf namespace: +% +% ./grph-pat.lua 69: local l = new_literal(lpdf.patternstream(p,width,height)) + + \stopsubject \stoptext diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index ac9434b86..b6e4c672d 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2021.06.04 17:20} +\edef\contextversion{2021.06.07 08:05} %D Kind of special: diff --git a/tex/context/base/mkiv/grph-pat.lua b/tex/context/base/mkiv/grph-pat.lua index 4310af672..7954e9fee 100644 --- a/tex/context/base/mkiv/grph-pat.lua +++ b/tex/context/base/mkiv/grph-pat.lua @@ -9,7 +9,8 @@ if not modules then modules = { } end modules ['grph-pat'] = { -- This is just a proof of concept. Viewers behave different (offsets) and Acrobat doesn't -- show xform based patterns. -- --- This module will be cleaned up and use codeinjections and such. +-- This module will be cleaned up and use codeinjections and such. It should be in the lpdf +-- namespace. local texsetbox = tex.setbox local texgetbox = tex.getbox diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index 2745fb52a..13ebb8fcb 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -227,7 +227,7 @@ return { -- "doglobal", "dodoglobal", "redoglobal", "resetglobal", -- - "donothing", "dontcomplain", "forgetall", + "donothing", "untraceddonothing", "dontcomplain", "forgetall", -- "donetrue", "donefalse", "foundtrue", "foundfalse", -- diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua index e7eb8dde4..a3e2f2115 100644 --- a/tex/context/base/mkiv/mult-prm.lua +++ b/tex/context/base/mkiv/mult-prm.lua @@ -319,6 +319,7 @@ return { "gleaders", "glet", "gletcsname", + "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", @@ -392,6 +393,7 @@ return { "letcsname", "letfrozen", "letprotected", + "lettonothing", "linedirection", "linepar", "localbrokenpenalty", diff --git a/tex/context/base/mkiv/s-inf-01-pdf-keep.pdf b/tex/context/base/mkiv/s-inf-01-pdf-keep.pdf deleted file mode 100644 index 0002d614e..000000000 Binary files a/tex/context/base/mkiv/s-inf-01-pdf-keep.pdf and /dev/null differ diff --git a/tex/context/base/mkiv/s-inf-03-pdf-keep.pdf b/tex/context/base/mkiv/s-inf-03-pdf-keep.pdf deleted file mode 100644 index b037b49ab..000000000 Binary files a/tex/context/base/mkiv/s-inf-03-pdf-keep.pdf and /dev/null differ diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index 0002d614e..ce6002720 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index b037b49ab..bc07c3a2b 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkxl/anch-pos.mkxl b/tex/context/base/mkxl/anch-pos.mkxl index d217f2cac..6b482dc05 100644 --- a/tex/context/base/mkxl/anch-pos.mkxl +++ b/tex/context/base/mkxl/anch-pos.mkxl @@ -406,7 +406,7 @@ \permanent\let\disableparpositions\relax -\aliased\let\registerparoptions\relax +\permanent\lettonothing\registerparoptions % hooks into everypar \permanent\protected\def\doregisterparoptions {\iftrialtypesetting \orelse\ifinpagebody \orelse\ifmmode \orelse\ifinformula \else diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl index 05c0fc8b2..79bb909ab 100644 --- a/tex/context/base/mkxl/cont-new.mkxl +++ b/tex/context/base/mkxl/cont-new.mkxl @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2021.06.04 17:20} +\newcontextversion{2021.06.07 08:05} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl index bbd67d48b..ccd340d28 100644 --- a/tex/context/base/mkxl/context.mkxl +++ b/tex/context/base/mkxl/context.mkxl @@ -29,7 +29,7 @@ %D {YYYY.MM.DD HH:MM} format. \immutable\edef\contextformat {\jobname} -\immutable\edef\contextversion{2021.06.04 17:20} +\immutable\edef\contextversion{2021.06.07 08:05} %overloadmode 1 % check frozen / warning %overloadmode 2 % check frozen / error diff --git a/tex/context/base/mkxl/driv-ini.lmt b/tex/context/base/mkxl/driv-ini.lmt index 729196e87..40b351d84 100644 --- a/tex/context/base/mkxl/driv-ini.lmt +++ b/tex/context/base/mkxl/driv-ini.lmt @@ -316,7 +316,7 @@ do local filename = nil drivers.install { - name = "default", + name = "default", -- "pdf" actions = { convert = drivers.converters.engine, outputfilename = function(driver) diff --git a/tex/context/base/mkxl/font-fmp.lmt b/tex/context/base/mkxl/font-fmp.lmt index f35c96f49..dc70a70e8 100644 --- a/tex/context/base/mkxl/font-fmp.lmt +++ b/tex/context/base/mkxl/font-fmp.lmt @@ -8,8 +8,13 @@ if not modules then modules = { } end modules ['font-fmp'] = { -- We only need to pick up the filename and optionally the enc file as we only use -- them for old school virtual math fonts. We might as well drop this completely. --- This used to be a backend module but the code is rather generic so we just put it --- here now. +-- This used to be a backend module but the code is rather generic so for now we +-- just put it here. +-- +-- As Type 1 is kind of obsolete I don't expect usage of those fonts in ways that +-- are not yet covered. Actually, we don't need map files at all because we read the +-- afm files. Maybe for math but there at some point we'll ditch the virtual old +-- school variants because afaik ConTeXt users are not using these any longer. local find, match, splitlines = string.find, string.match, string.splitlines @@ -99,7 +104,10 @@ function mappings.loadline(how,line) end function mappings.reset() - lpdf.setmapfile("") -- tricky ... backend related + local setmapfile = lpdf and lpdf.setmapfile + if setmapfile then + setmapfile("") -- tricky ... backend related + end end mappings.getentry = getentry diff --git a/tex/context/base/mkxl/node-ref.lmt b/tex/context/base/mkxl/node-ref.lmt index 78ff824c9..a7b624591 100644 --- a/tex/context/base/mkxl/node-ref.lmt +++ b/tex/context/base/mkxl/node-ref.lmt @@ -100,7 +100,9 @@ local dir_code = nodecodes.dir local par_code = nodecodes.par local leftskip_code = gluecodes.leftskip +local lefthang_code = gluecodes.lefthangskip local rightskip_code = gluecodes.rightskip +local righthang_code = gluecodes.righthangskip local parfillleftskip_code = gluecodes.parfillleftskip local parfillskip_code = gluecodes.parfillskip @@ -359,9 +361,9 @@ local inject_areas do goto NEXT elseif id == glue_code then local subtype = getsubtype(current) - if subtype == leftskip_code or subtype == parfillleftskip_code then + if subtype == leftskip_code or subtype == lefthang_code or subtype == parfillleftskip_code then goto NEXT - elseif subtype == rightskip_code or subtype == parfillskip_code then + elseif subtype == rightskip_code or subtype == righthang_code or subtype == parfillskip_code then if reference and (done[reference] or 0) == 0 then head, current = inject_range(head,first,last,reference,parent,pardir,firstdir) reference = nil diff --git a/tex/context/base/mkxl/page-par.mkxl b/tex/context/base/mkxl/page-par.mkxl index c198784dc..4cfc3f9bf 100644 --- a/tex/context/base/mkxl/page-par.mkxl +++ b/tex/context/base/mkxl/page-par.mkxl @@ -22,7 +22,7 @@ \definecounter[\v!paragraph] -\permanent\let\showparagraphnumber\relax +\permanent\lettonothing\showparagraphnumber \appendtoks \page_par_check_state @@ -36,16 +36,16 @@ \lastnamedcs \fi} -\setvalue{\??paragraphnumberingvariants\v!start}% +\defcsname\??paragraphnumberingvariants\v!start\endcsname {\enforced\let\showparagraphnumber\page_par_show_number_normal} -\setvalue{\??paragraphnumberingvariants\v!stop}% - {\enforced\let\showparagraphnumber\relax} +\defcsname\??paragraphnumberingvariants\v!stop\endcsname + {\enforced\lettonothing\showparagraphnumber} -\setvalue{\??paragraphnumberingvariants\v!line}% +\defcsname\??paragraphnumberingvariants\v!line\endcsname {\enforced\let\showparagraphnumber\page_par_show_number_lines} -\setvalue{\??paragraphnumberingvariants\v!reset}% +\defcsname\??paragraphnumberingvariants\v!reset\endcsname {\strc_counters_reset\v!paragraph \enforced\let\showparagraphnumber\page_par_show_number_normal} diff --git a/tex/context/base/mkxl/spac-par.mkxl b/tex/context/base/mkxl/spac-par.mkxl index 66b08633d..6c3927861 100644 --- a/tex/context/base/mkxl/spac-par.mkxl +++ b/tex/context/base/mkxl/spac-par.mkxl @@ -104,7 +104,7 @@ \installcorenamespace {parwrapafter} \installcorenamespace {parwrapcount} -\let\spac_paragraph_wrap\relax +\lettonothing\spac_paragraph_wrap \newcount\c_spac_paragraph_group_level @@ -147,7 +147,7 @@ \clf_setparwrapper{#3}#4}% #2\csname\??parwrapafter #3\endcsname{#5}% \clf_newparwrapper{#3}% - \enforced\let\spac_paragraph_wrap\spac_paragraph_update} + \let\spac_paragraph_wrap\spac_paragraph_update} \def\spac_register_par_wrapper_nop#1#2#3#4#5% {\ifcsname\??parwrapcount#3\endcsname \else @@ -212,7 +212,7 @@ \setparagraphfreezing -\appendtoks\enforced\let\spac_paragraph_wrap\relax\to\everyforgetall +\appendtoks\lettonothing\spac_paragraph_wrap\to\everyforgetall %D In due time, the code below will be upgraded using the above mechanisms. @@ -250,8 +250,6 @@ \installcorenamespace{paragraphintro} -\let\spac_paragraphs_flush_intro\relax % hook into everypar - \newtoks\t_spac_paragraphs_intro_first \newtoks\t_spac_paragraphs_intro_next \newtoks\t_spac_paragraphs_intro_each @@ -260,8 +258,8 @@ \newconditional\c_spac_paragraphs_intro_next \newconditional\c_spac_paragraphs_intro_each -\let\spac_paragraphs_flush_intro\relax -\let\spac_paragraphs_intro_step \relax +\lettonothing\spac_paragraphs_flush_intro +\lettonothing\spac_paragraphs_intro_step \permanent\protected\tolerant\def\setupparagraphintro[#1]#*[#2]% {\def\spac_paragraphs_intro_step##1% @@ -277,7 +275,7 @@ \global\t_spac_paragraphs_intro_first\emptytoks \global\t_spac_paragraphs_intro_next \emptytoks \global\t_spac_paragraphs_intro_each \emptytoks - \glet\spac_paragraphs_flush_intro\relax} + \glettonothing\spac_paragraphs_flush_intro} \defcsname\??paragraphintro\v!first\endcsname#1% {\global\settrue\c_spac_paragraphs_intro_first @@ -372,7 +370,7 @@ \the\t_spac_paragraphs_intro_next \the\t_spac_paragraphs_intro_each \else - \glet\spac_paragraphs_flush_intro\relax + \glettonothing\spac_paragraphs_flush_intro \the\t_spac_paragraphs_intro_next \fi}} @@ -385,7 +383,7 @@ %D This macro collects data that will be flushed at the next paragraph. By using %D this macro you can avoid interfering nodes (writes, etc). -\aliased\let\flushpostponednodedata\relax % hook into everypar +\lettonothing\flushpostponednodedata % hook into everypar \newbox \b_spac_postponed_data %newcount\c_spac_postponed_data @@ -453,7 +451,7 @@ \ifvoid\b_spac_postponed_data\else \hpack{\smashedbox\b_spac_postponed_data}% \box\b_spac_postponed_data \fi - \enforced\glet\flushpostponednodedata\relax + \enforced\glettonothing\flushpostponednodedata }%\fi} \permanent\protected\def\doflushatpar % might be renamed diff --git a/tex/context/base/mkxl/spac-ver.mkxl b/tex/context/base/mkxl/spac-ver.mkxl index d11611339..1e630c5bf 100644 --- a/tex/context/base/mkxl/spac-ver.mkxl +++ b/tex/context/base/mkxl/spac-ver.mkxl @@ -1356,10 +1356,10 @@ \newcount\c_spac_keep_lines_together -\aliased\let\restoreinterlinepenalty\relax +\permanent\lettonothing\restoreinterlinepenalty \protected\def\spac_penalties_restore - {\global\enforced\let\restoreinterlinepenalty\relax + {\enforced\glettonothing\restoreinterlinepenalty \overloaded\global\resetpenalties\interlinepenalties \global\c_spac_keep_lines_together\zerocount} diff --git a/tex/context/base/mkxl/strc-not.mklx b/tex/context/base/mkxl/strc-not.mklx index 3faf7135b..a0691d9f1 100644 --- a/tex/context/base/mkxl/strc-not.mklx +++ b/tex/context/base/mkxl/strc-not.mklx @@ -1287,8 +1287,8 @@ \fi} \appendtoks - \enforced\let\flushnotes \relax - \enforced\let\postponenotes\relax + \enforced\lettonothing\flushnotes + \enforced\lettonothing\postponenotes \forgetall \resetallattributes % new, we don't want color bleed into notes \inheritmaintextcolor % but we do want to obey the textcolor @@ -1517,7 +1517,7 @@ \fi \fi} -\aliased\let\flushnotes\relax +\permanent\lettonothing\flushnotes % also \ifcase\insertionmigrationmode here, needs testing: @@ -1534,8 +1534,8 @@ \permanent\protected\def\doflushnotes {\ifconditional\postponingnotes \begingroup - \enforced\let\flushnotes \relax - \enforced\let\postponenotes\relax + \enforced\lettonothing\flushnotes + \enforced\lettonothing\postponenotes \ifconditional\postponednote \ifhmode % needed for tagging ... otherwise we get some weird node free error @@ -1545,7 +1545,7 @@ \clf_flushpostponednotes% this also resets the states ! \global\setfalse\postponednote \global\setfalse\postponingnotes - \enforced\glet\flushnotes\relax + \enforced\glettonothing\flushnotes \endgroup \fi} @@ -1563,8 +1563,8 @@ \newtoks\everyplacelocalnotes \appendtoks - \enforced\let\flushnotes \relax - \enforced\let\postponenotes\relax + \enforced\lettonothing\flushnotes + \enforced\lettonothing\postponenotes \to \everyplacelocalnotes \newconditional\inlocalnotes diff --git a/tex/context/base/mkxl/syst-aux.mkxl b/tex/context/base/mkxl/syst-aux.mkxl index 21b1a66ef..fea524bee 100644 --- a/tex/context/base/mkxl/syst-aux.mkxl +++ b/tex/context/base/mkxl/syst-aux.mkxl @@ -216,7 +216,17 @@ %D Reserved macros for tests: -\aliased\let\donothing\empty +%D A \type \type {\let} is more efficient than a \type {\def} so we often let something +%D to relax or do nothing. However, we then loose the name in tracing. For that we now +%D have \type {\lettonothing \foo} which is efficient but also keeps the name. Of course +%D this is no solution for commands that take arguments but at least it helps tracing a +%D bit. We keep of course \type {\donothing}. + +%D Maybe even nicer is a let that aliases but keeps the name. + +% \aliased\let\donothing\empty + \immutable\def\donothing {} % better in tracing +%untraced\immutable\def\untraceddonothing{} \let\m_syst_string_one \empty \let\m_syst_string_two \empty diff --git a/tex/context/base/mkxl/syst-ini.mkxl b/tex/context/base/mkxl/syst-ini.mkxl index d147e07aa..d87277657 100644 --- a/tex/context/base/mkxl/syst-ini.mkxl +++ b/tex/context/base/mkxl/syst-ini.mkxl @@ -681,8 +681,8 @@ \permanent\protected\def\tracingall {\tracingonline \plusone - \tracingcommands \plusthree - \tracingmacros \plustwo + \tracingcommands \plusfour % > 3: show mode change independent + \tracingmacros \plusthree % > 2: obey \untraced \tracingoutput \plusone \tracingpages \plusone \tracingparagraphs\plusone diff --git a/tex/context/base/mkxl/typo-cap.mkxl b/tex/context/base/mkxl/typo-cap.mkxl index afdefe923..744b09a47 100644 --- a/tex/context/base/mkxl/typo-cap.mkxl +++ b/tex/context/base/mkxl/typo-cap.mkxl @@ -249,8 +249,9 @@ \definefont [MixedCaps] -% [CurrentFont*default cp 1.2\exheight] - [CurrentFont*default sa .8] % better adaptation to slanted + [CurrentFont*default cp 1.2\exheight] +% [CurrentFont*default at 1.5\exheight] % better adaptation to slanted but still not nice +% [CurrentFont*default ht 1.2\exheight] % maybe this is better indeed \setupcapitals [\v!mixed] diff --git a/tex/context/base/mkxl/typo-del.mkxl b/tex/context/base/mkxl/typo-del.mkxl index 8e17ea82b..4b8540368 100644 --- a/tex/context/base/mkxl/typo-del.mkxl +++ b/tex/context/base/mkxl/typo-del.mkxl @@ -379,9 +379,9 @@ \appendtoks \expandafter\newcount\csname\??delimitedtextlevel\currentdelimitedtext\endcsname - \frozen\instance\setuevalue{\currentdelimitedtext }{\delimitedtext[\currentdelimitedtext]}% - \frozen\instance\setuevalue{\e!start\currentdelimitedtext}{\startdelimitedtext[\currentdelimitedtext]}% - \frozen\instance\setuevalue{\e!stop \currentdelimitedtext}{\stopdelimitedtext}% + \frozen\instance\protected\edefcsname\currentdelimitedtext \endcsname{\delimitedtext[\currentdelimitedtext]}% + \frozen\instance\protected\edefcsname\e!start\currentdelimitedtext\endcsname{\startdelimitedtext[\currentdelimitedtext]}% + \frozen\instance\protected\edefcsname\e!stop \currentdelimitedtext\endcsname{\stopdelimitedtext}% \to \everydefinedelimitedtext \setupdelimitedtext @@ -407,7 +407,7 @@ \typo_delimited_handle_middle\c!middle \fi} -\let\typo_delimited_repeat\relax +\lettonothing\typo_delimited_repeat \permanent\tolerant\protected\def\startdelimitedtext[#1]#*[#2]% {\begingroup @@ -437,7 +437,7 @@ \ifx\p_delimited_repeat\v!yes \let\typo_delimited_repeat\typo_delimited_repeat_indeed \else - \let\typo_delimited_repeat\relax + \lettonothing\typo_delimited_repeat \fi \setfalse\c_typo_delimited_repeating \edef\p_delimited_location{\delimitedtextparameter\c!location}% @@ -847,7 +847,8 @@ {\dontleavehmode \begingroup \dostarttaggedchained\t!delimited\currentdelimitedtext\??delimitedtext - \usedlanguageparameter{\c!left\currentparentdelimitedtext}% was: \currentdelimitedtext + % \usedlanguageparameter{\c!left\currentparentdelimitedtext}% was: \currentdelimitedtext + \usedlanguageparameter{\c!left\currentparentdelimitedtextparent}% was: \currentdelimitedtext \usedelimitedtextstyleandcolor\c!style\c!color \typo_delimited_start_content \bgroup @@ -856,7 +857,8 @@ \def\typo_delimited_fontdriven_e {\typo_delimited_stop_content - \usedlanguageparameter{\c!right\currentparentdelimitedtext}% was: \currentdelimitedtext + % \usedlanguageparameter{\c!right\currentparentdelimitedtext}% was: \currentdelimitedtext + \usedlanguageparameter{\c!right\currendelimitedtextparent}% was: \currentdelimitedtext \dostoptagged \typo_delimited_pop \endgroup} diff --git a/tex/context/base/mkxl/typo-drp.mkxl b/tex/context/base/mkxl/typo-drp.mkxl index 35bbbca8c..da11f76e7 100644 --- a/tex/context/base/mkxl/typo-drp.mkxl +++ b/tex/context/base/mkxl/typo-drp.mkxl @@ -71,10 +71,10 @@ \permanent\tolerant\protected\def\placeinitial[#1]% old command {\par \namedinitialparameter{#1}\c!before - \edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{}}} + \enforced\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{}}} \permanent\tolerant\protected\def\setinitial[#1]#*[#2]% - {\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{#2}}} + {\enforced\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{#2}}} \permanent\tolerant\protected\def\flushinitial % when used inside a mechanism that forgets {\typo_initial_handle} @@ -110,9 +110,9 @@ \c_attr_initial\plusone \initialparameter\c!text \endgroup - \glet\typo_initial_handle\relax} + \enforced\glettonothing\typo_initial_handle} -\let\typo_initial_handle\relax +\lettonothing\typo_initial_handle % hook into everypar % \setupbodyfont[dejavu,9pt] % diff --git a/tex/context/base/mkxl/typo-fln.mkxl b/tex/context/base/mkxl/typo-fln.mkxl index 3ef688bb5..a62646fff 100644 --- a/tex/context/base/mkxl/typo-fln.mkxl +++ b/tex/context/base/mkxl/typo-fln.mkxl @@ -88,9 +88,9 @@ % \kern\zeropoint % we need a node % \hskip\zeropoint\s!plus\emwidth\relax % can be an option \endgroup - \glet\typo_firstline_handle\relax} + \glettonothing\typo_firstline_handle} -\let\typo_firstline_handle\relax +\lettonothing\typo_firstline_handle % goodie, question on list % diff --git a/tex/context/interface/mkii/keys-nl.xml b/tex/context/interface/mkii/keys-nl.xml index a0da8b763..2312b7675 100644 --- a/tex/context/interface/mkii/keys-nl.xml +++ b/tex/context/interface/mkii/keys-nl.xml @@ -1271,6 +1271,7 @@ + diff --git a/tex/context/modules/mkiv/m-system-readers.mkxl b/tex/context/modules/mkiv/m-system-readers.mkxl deleted file mode 100644 index 0f2d3275e..000000000 --- a/tex/context/modules/mkiv/m-system-readers.mkxl +++ /dev/null @@ -1,148 +0,0 @@ -%D \module -%D [ file=m-system-readers, -%D version=2021.02.13, -%D title=\CONTEXT\ Modules, -%D subtitle=Reading from files, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] - -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -\startmodule[system-readers] - -% \unprotect -% -% \installcorenamespace {markedlines} -% -% \permanent\protected\def\startmarkedlines[#1]% -% {\edef\scratchstring{#1}% -% \scratchcounter\numexpr\inputlineno+\plusone\relax -% \gobbleuntilandfinalize\stopmarkedlines} -% -% \permanent\protected\def\stopmarkedlines -% {\edefcsname\??markedlines\scratchstring\endcsname -% {{\the\scratchcounter}{\the\numexpr\inputlineno+\minusone\relax}}} -% -% \protected\def\firstmarkedline#1% -% {\numexpr -% \ifcsname\??markedlines#1\endcsname -% \normalexpanded{\noexpand\firstoftwoarguments\lastnamedcs}% -% \else -% \zerocount -% \fi -% \relax} -% -% \protected\def\lastmarkedline#1% -% {\numexpr -% \ifcsname\??markedlines#1\endcsname -% \normalexpanded{\noexpand\secondoftwoarguments\lastnamedcs}% -% \else -% \zerocount -% \fi -% \relax} -% -% \protected\def\markedlines#1% -% {\ifcsname\??markedlines\scratchstring\endcsname\lastnamedcs\else{0}{0}\fi} -% -% \protect - -\startluacode - - local createtoken = tokens.create - local gobbletoken = tokens.gobble - local integer_value = tokens.values.integer - - local marked = { } - - interfaces.implement { - name = "startmarkedlines", - public = true, - protected = true, - arguments = "optional", - actions = function(tag) - local start = status.readstate.linenumber + 1 - gobbletoken(createtoken("startmarkedlines"),createtoken("stopmarkedlines")) - local state = status.readstate - marked[tag] = { state.filename, start, state.linenumber - 1 } - end - } - - - interfaces.implement { - name = "markedfilename", - public = true, - -- usage = "value", - arguments = "string", - actions = function(tag) - local m = marked[tag] - -- return m and m[1] or "" - context(m and m[1] or "") - end - } - - interfaces.implement { - name = "firstmarkedline", - public = true, - usage = "value", - arguments = "string", - actions = function(tag) - local m = marked[tag] - return integer_value, m and m[2] or 0 - end - } - - interfaces.implement { - name = "lastmarkedline", - public = true, - usage = "value", - arguments = "string", - actions = function(tag) - local m = marked[tag] - return integer_value, m and m[3] or 0 - end - } - -\stopluacode - -\continueifinputfile{m-system-readers.mkxl} - -\starttext - -\startmarkedlines[test] -SOME LINE 1 -SOME LINE 2 -SOME LINE 3 -SOME LINE 4 -\stopmarkedlines - -\startmarkedlines[more] -SOME MORE 1 -SOME MORE 2 -SOME MORE 3 -SOME MORE 4 -\stopmarkedlines - -\begingroup - \newlocalread\myreada - \immediate\openin\myreada {\markedfilename{test}} - \dostepwiserecurse{\lastmarkedline{test}}{\firstmarkedline{test}}{-1}{ - \readline\myreada line #1 to \scratchstring #1 : \scratchstring \par - } - \immediate\closein\myreada -\endgroup - -\blank - -\begingroup - \newlocalread\myreada - \immediate\openin\myreada {\markedfilename{more}} - \dostepwiserecurse{\firstmarkedline{more}}{\lastmarkedline{more}}{1}{ - \read \myreada line #1 to \scratchstring #1 : \scratchstring \par - } - \immediate\closein\myreada -\endgroup - -\stoptext diff --git a/tex/context/modules/mkiv/m-timing.mkxl b/tex/context/modules/mkiv/m-timing.mkxl deleted file mode 100644 index 3edfd14e2..000000000 --- a/tex/context/modules/mkiv/m-timing.mkxl +++ /dev/null @@ -1,113 +0,0 @@ -%D \module -%D [ file=m-timing, -%D version=2007.12.23, -%D title=\CONTEXT\ Modules, -%D subtitle=Timing, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -%D Todo: adapt to latest metafun magic. - -\ifdefined\ShowNamedUsage \endinput \fi - -%D Written at the end of 2007, this module is dedicated to Taco. Reaching this -%D point in \LUATEX\ was a non trivial effort. By visualizing a bit what happens -%D when pages come out of \LUATEX, you may get an idea what is involved. It took -%D much time an dedication to reach this point in the development. Add to that -%D those daily Skype intense discussion, testing and debugging moments. Time flies -%D but progress is impressive. The motto of this module could be: what you see -%D is what you get. An there is much more to come \unknown. - -% \usemodule[timing] -% \setupcolors[state=start] -% \starttext -% \dorecurse{200}{\input tufte \par} \ShowUsage{} -% \stoptext - -\definecolor[usage:line] [darkred] -\definecolor[usage:time] [darkblue] -\definecolor[usage:frame][darkgray] - -\ctxloadluafile{trac-tim.lmt} - -\startluacode -local progress = moduledata.progress - -function progress.show(filename,names,other) - if not filename or filename == "" then - filename = progress.defaultfilename or "" - end - for n, name in pairs(progress.names(filename)) do - if string.find(name,names) and name ~= other and name ~= "variables: lasttime" then - context.ShowNamedUsage(filename,name or "",other or "") - end - end -end -\stopluacode - -\startnotmode[no-timing] - \appendtoks\ctxlua{moduledata.progress.store()}\to\everystarttext - \appendtoks\ctxlua{moduledata.progress.store()}\to\everyshipout - \ctxlua{luatex.registerstopactions(function() moduledata.progress.save() end)} -\stopnotmode - -\permanent\protected\def\ShowNamedUsage#1#2#3% - {\setbox\scratchbox\vbox\bgroup - \startMPcode{doublefun} - begingroup ; save p, q, b, h, w ; - path p, q, b ; numeric h, w ; - p := \cldcontext{moduledata.progress.path("#1","#2")} ; - % p := p shifted -llcorner p ; - if bbwidth(p) > 0 : - h := 100 ; w := 2 * h ; - w := \the\textwidth-3pt ; % correct for pen - p := p xstretched w ; - b := boundingbox (llcorner p -- llcorner p shifted (w,h)) ; - pickup pencircle scaled 3pt ; linecap := butt ; - draw b withcolor \MPcolor{usage:frame} ; - draw p withcolor \MPcolor{usage:line} ; - if ("#3" <> "") and ("#3" <> "#2") : - q := \cldcontext{moduledata.progress.path("#1","#3")} ; - % q := q shifted -llcorner q ; - if bbwidth(q) > 1 : - q := q xstretched w ; - pickup pencircle scaled 1.5pt ; linecap := butt ; - draw q withcolor \MPcolor{usage:time} ; - fi ; - fi ; - fi ; - endgroup ; - \stopMPcode - \egroup - \scratchdimen\wd\scratchbox - \ifdim\scratchdimen>\zeropoint - \startlinecorrection[blank] - \box\scratchbox \endgraf - \hbox to \scratchdimen\bgroup - \tttf\strut\detokenize{#2}\hss - \scratchcounter =\cldcontext{moduledata.progress.set("#1","\detokenize{#2}")}\relax - \scratchcounterone =\cldcontext{moduledata.progress.bot("#1","\detokenize{#2}")}\relax - \scratchcountertwo =\cldcontext{moduledata.progress.top("#1","\detokenize{#2}")}\relax - \scratchcounterthree=\numexpr\scratchcountertwo-\scratchcounterone\relax - \ifnum\scratchcounter >\zerocount set:\the\scratchcounter \quad\fi - \ifnum\scratchcounterthree>\zerocount inc:\the\scratchcounterthree\quad\fi - \ifnum\scratchcounterone >\zerocount min:\the\scratchcounterone \quad\fi - \ifnum\scratchcountertwo >\zerocount max:\the\scratchcountertwo \quad\fi - pages:\cldcontext{moduledata.progress.pages("#1")}% - \egroup - \stoplinecorrection - \fi} - -\permanent\protected\def\LoadUsage #1{\ctxlua{moduledata.progress.convert("#1")}} -\permanent\protected\def\ShowUsage #1{\ctxlua{moduledata.progress.show("#1",".*", "variables: elapsed")}} -\permanent\protected\def\ShowMemoryUsage #1{\ctxlua{moduledata.progress.show("#1","memory:.*","variables: elapsed")}} -\permanent\protected\def\ShowNodeUsage #1{\ctxlua{moduledata.progress.show("#1","nodes:.*", "variables: elapsed")}} -\permanent\protected\def\ShowFilteredUsage#1#2{\ctxlua{moduledata.progress.show("#1","#2", "variables: elapsed")}} -\permanent\protected\def\ShowSimpleUsage #1#2{\ctxlua{moduledata.progress.show("#1","#2")}} - -\endinput diff --git a/tex/context/modules/mkiv/s-languages-goodies.lmt b/tex/context/modules/mkiv/s-languages-goodies.lmt deleted file mode 100644 index 7256fd35d..000000000 --- a/tex/context/modules/mkiv/s-languages-goodies.lmt +++ /dev/null @@ -1,99 +0,0 @@ -if not modules then modules = { } end modules ['s-languages-goodies'] = { - version = 1.001, - comment = "companion to s-languages-goodies.mkxl", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -moduledata.languages = moduledata.languages or { } -moduledata.languages.goodies = moduledata.languages.goodies or { } - -function moduledata.languages.goodies.show(specification) - specification = interfaces.checkedspecification(specification) - local filename = specification.file - if filename and filename ~= "" then - local list = table.load(resolvers.findfile(filename)) - if list then - list = list.options - if list then - for i=1,#list do - local l = list[i] - local w = l.words - if w then - local pre = l.prefixes - local suf = l.suffixes - context.startsubject { title = table.concat(table.sortedkeys(l.patterns)," ") } - context(languages.strippedgoodiewords(w)) - if pre then - context.blank() - context.bold("prefixes: ") - context(languages.strippedgoodiewords(pre)) - end - if suf then - context.blank() - context.bold("suffixes: ") - context(languages.strippedgoodiewords(suf)) - end - context.stopsubject() - end - end - end - end - end -end - -local lpegmatch = lpeg.match - -moduledata.languages.goodies.ligaturehandlers = { } - -function moduledata.languages.goodies.ligatures(specification) - - specification = interfaces.checkedspecification(specification) - local language = specification.language - local filename = specification.file - - if not language then - elseif moduledata.languages.goodies.ligaturehandlers[language] then - else - -- fb ff ffb fff ffh ffi ffj ffk ffl fft fi fk fl ft - local list = specification.list or "ff fi fl ffi fff ffl" - local hash = table.tohash(lpeg.split(" ",list)) -- also strip - local pattern = (1-lpeg.utfchartabletopattern(hash))^1 * lpeg.P(-1) - local checked = { } - - moduledata.languages.goodies.ligaturehandlers[language] = function(original) - if not checked[original] and not lpegmatch(pattern,original) then - checked[original] = true - end - return original - end - - languages.installhandler(language,"moduledata.languages.goodies.ligaturehandlers." .. language .. "") - - statistics.register(string.formatters["'% t' ligatures checked for language %a"](table.sortedkeys(hash), language), function() - return next(checked) and table.concat(table.sortedkeys(checked)," ") or nil - end) - - local applied = languages.appliedoptions[language] - - trackers.enable("languages.applied") - - if applied then - statistics.register(string.formatters["options applied for language %a"](language), function() - return next(applied) and table.concat(table.sortedkeys(applied)," ") or nil - end) - statistics.register(string.formatters["missed ligatures for language %a"](language), function() - for k, v in next, applied do - checked[k] = nil - end - for k, v in next, hash do - checked[k] = nil - end - return next(checked) and table.concat(table.sortedkeys(checked)," ") or nil - end) - end - - end - -end diff --git a/tex/context/modules/mkiv/s-languages-goodies.mkxl b/tex/context/modules/mkiv/s-languages-goodies.mkxl deleted file mode 100644 index 3ced071be..000000000 --- a/tex/context/modules/mkiv/s-languages-goodies.mkxl +++ /dev/null @@ -1,144 +0,0 @@ -%D \module -%D [ file=s-languages-goodies, -%D version=2021.25.03, -%D title=\CONTEXT\ Style File, -%D subtitle=Language Goodies, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -\startmodule[languages-goodies] - -\registerctxluafile{s-languages-goodies}{autosuffix} - -\installmodulecommandluasingle \showlanguagegoodies {moduledata.languages.goodies.show} -\installmodulecommandluasingle \showlanguageligatures {moduledata.languages.goodies.ligatures} - -\stopmodule - -\continueifinputfile{s-languages-goodies.mkxl} - -% Beware, for now this file is a playground so what gets rendered -% can differ per upload. - -\usemodule[art-01] - -% \setupbodyfont[libertine] - -\setuplanguage[de][goodies={lang-de.llg}] -\setuplanguage[en][goodies={lang-en.llg}] - -\mainlanguage[de] - -% \setupalign[stretch,verytolerant,flushleft] \dontcomplain - -% \startlanguageoptions[de] -% Zapf|innovation -% \stoplanguageoptions - -% \tracinghyphenation3 \tracingonline2 - -\starttext - - \start -% \setupalign[stretch,verytolerant,flushleft,nothyphenated] \dontcomplain - -% \showlanguageligatures[language=de,list=ff fi fl fk ft fb ffi ffl fff ffk fft ffb ffh ffj] -% \showlanguageligatures[language=en,list=ff fi fl fk ft fb ffi ffl fff ffk fft ffb ffh ffj] - -% \starttitle[title={DE}] -% \start \de \showlanguagegoodies [file={lang-de.llg}] \stop -% \stoptitle - -% \starttitle[title={EN}] -% \start \en \showlanguagegoodies[file={lang-en.llg}] \stop -% \stoptitle - - \page - - \stop - - % oeps effe - % nonexistentffitestcase - % nonexistentffltestcase - - \enabletrackers[languages.goodies,languages.applied] - - \start \de \dontcomplain - -% general - -% 0 : ignore -% 1 : invisible % {}{}{} -% 2 : no break % {}{}{}[9] -% 3 : pre % {-}{}{} -% 4 : pre replace % {-}{}{-} -% 5 : post % {}{-}{} -% 6 : post replace % {}{-}{-} -% 7 : pre post % {-}{-}{} -% 8 : pre post replace % {-}{-}{-} - -% \codedef\hccode -% \codedef\hycode - -% \hccode"002D = "2010 \hycode"002D = "0 % hyphen minus -% \hccode"00AD = "0000 \hycode"00AD = "1 % soft hyphen -% \hccode"2010 = "2010 \hycode"2010 = "0 % hyphen -% \hccode"2011 = "2010 \hycode"2011 = "2 % non breaking hyphen -% \hccode"2012 = "2012 \hycode"2012 = "0 % figure dash -% \hccode"2013 = "2013 \hycode"2013 = "0 % en dash -% \hccode"2014 = "2014 \hycode"2014 = "0 % em dash - - -% \permanent\protected\def\cwm{\discretionary preword postword{-}{}{-}} -% \tracingonline2 \tracinghyphenation2 - -% One can map to exhyphenchar and use a pre/post for that one but if -% really needed \hbcode (before=pre) and \hacode (after=post) can be -% introduced. Maybe only settable runtime via lua. - -\hccode"002D = "002D -\hccode"2010 = "2010 -\hccode"2013 = "2013 -\hccode"2014 = "2014 - -% Offline\cwm Anwendungen\par -% {\hsize 1mm Offline\cwm Anwendungen\par} -% Offline-Anwendungen\par -% Offline{\char"2010}Anwendungen\par -% {\hsize 1mm Offline-Anwendungen\par} -% {\hsize 1mm Offline{\char"2010}Anwendungen\par} -% {\hsize 1mm Offline{\endash}Anwendungen\par} -% {\hsize 1mm Offline{\emdash}Anwendungen\par} - {\hsize 3mm \emdash Offline-Anwendungen\emdash\par} - {\hsize 3mm \emdash\wordboundary Offline-Anwendungen\wordboundary\emdash\par} - {\hsize 3mm \quotation{Offline-Anwendungen}\par} - {\hsize 3mm „Offline-Anwendungen“\par} - {\hsize 3mm -Offline-Anwendungen-\par} - -% OfflineAnwendungen\par -% {\hsize 1mm OfflineAnwendungen\par} -% Offline\par -% {\hsize 1mm Offline\par} - - -% \hyphenationmode\bitwiseflip\hyphenationmode-\forcehandlerhyphenationmodecode - -% \de \dontcomplain - -% \startexceptions[de] -% multi-cul-ti{-}{}{-}word{-}{}{-}boun-daries -% \stopexceptions - -% {multiculti-word-boundaries\par} -% {multicultiwordboundaries\par} -% {\hsize 1mm multicultiwordboundaries\par} -% {\hsize 1mm multiculti-word-boundaries\par} -% {\hsize 1mm multiwordboundaries\par} - - \stop -\stoptext diff --git a/tex/context/modules/mkiv/s-system-macros.mkxl b/tex/context/modules/mkiv/s-system-macros.mkxl deleted file mode 100644 index 605859000..000000000 --- a/tex/context/modules/mkiv/s-system-macros.mkxl +++ /dev/null @@ -1,330 +0,0 @@ -%D \module -%D [ file=s-system-tokens.mkxl, -%D version=2020.06.02, -%D title=\CONTEXT\ Style File, -%D subtitle=System Tokens Checking, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -%D This file is for Wolfgang and Hans and it's used in the transition from \MKIV\ -%D to the more robust \LMTX. - -% todo: \permanent\protected\let\select\directselect : same value (add ref) -% -% todo: when mutable, remove immutable, decide on how immutable it really is -% -% todo: just for the fun of it we can compare the table generated here to mkiv but it -% needs the same hash exposure as we use in luametatex so i'll do that after all lmtx -% macros are checked (maybe i need to backport some more but it has a low priority) -% -% todo: do we need something similar for lua functions etc (problem: performance hit) -% -% todo: and how about metapost ... i need a mp.hashtokens in order to do that and I also -% need to think about protection there (tricky as we use an avl hash there) -% -% public undefined : SmallCaps scitebuffer sciteinlinebuffer -% single todos : \ \- \\ \_ - -\enablemode[texmacros] -\enablemode[metapostmacros] -% \enablemode[notmarked] -\enablemode[everything] - -\startmodule[system-macros] - -\continueifinputfile{s-system-macros.mkxl} - -% \usemodule[article-basic] \setuplayout[tight] \setupbodyfont[7pt,tt] -\usemodule[article-basic] \setuplayout[tight] \setupbodyfont[5pt,tt] - -\setupbackgrounds[page][background=color,backgroundcolor=darkgray] \setupcolors[textcolor=white] - -\setuppapersize - [A4,landscape] - [A4,landscape] - -\starttext - -\startluacode - - if tex.modes.texmacros then - - local context = context - local ctx_NC = context.NC - local ctx_NR = context.NR - local ctx_bold = context.bold - local ctx_verb = context.verbatim - - local find = string.find - local gsub = string.gsub - local create = tokens.create - - local crap = "[$>%|%&%#" .. string.char(0xEF) .. "]" - - local basefile = resolvers.findfile("context.mkxl") - local swapnames = { } - - local pattern = file.join(file.pathpart(basefile),"/*.mk*") - local filenames = dir.glob(pattern) - for i=1,#filenames do - swapnames[file.basename(filenames[i])] = true - end - - local pattern = file.join(file.pathpart(basefile),"/*.l**") - local filenames = dir.glob(pattern) - for i=1,#filenames do - swapnames[file.basename(filenames[i])] = true - end - - local hashnames = table.setmetatableindex(function(t,k) - local s = file.suffix(k) - local v = k - if s == "mkiv" then - local n = file.replacesuffix(k,"mkxl") - if swapnames[n] then - v = n - end - elseif s == "mkvi" then - local n = file.replacesuffix(k,"mklx") - if swapnames[n] then - v = n - end - elseif s == "lua" then - local n = file.replacesuffix(k,"lmt") - if swapnames[n] then - v = n - end - end - t[k] = v - return v - end) - - require("mtx-interface") - - local data = scripts.interface.editor("data") - local files = data and data.common and data.common.filenames or { } - local macros = { } - local flagged = 0 - local total = 0 - local list = tex.hashtokens() - local all = not tex.modes.notmarked - local everything = tex.modes.everything - - local fmtname = resolvers.locateformat("cont-en.fmt") - if fmtname then - local logname = file.replacesuffix(fmtname,"log") - for filename in string.gmatch(io.loaddata(logname),"fullname=(%S+)") do - local s = file.suffix(filename) - local b = file.basename(filename) - if s ~= "lua" and s ~= "lmt" then - local d = io.loaddata(filename) - for m in string.gmatch(d,"\n[\\a-z]*[exg]*def\\([a-zA-Z_]+)") do - macros[m] = b - end - for m in string.gmatch(d,"\n[\\a-z]*[g]*let\\([a-zA-Z_]+)") do - macros[m] = b - end - end - end - end - - table.sort(list) - - local function show(visible, check) - -- context.starttabulate { "|l|l|l|lj2|l|l|l|l|l|l|l|l|" } - context.starttabulate { "|l|l|l|lj2|l|l|l|l|l|l|l|l|" } - for i=1,#list do - local k = list[i] - if check(k) then - local v = create(k) - local mutable = v.mutable and "mutable" - local immutable = v.immutable and "immutable" - local frozen = v.frozen and "frozen" - local permanent = v.permanent and "permanent" - local primitive = v.primitive and "primitive" - local instance = v.instance and "instance" - local dealtwith = mutable or immutable or mutable or frozen or permanent or primitive -- beware: we can have combinations - local whatever = find(k,"^[a-z][a-z][a-z]+_") - local cscommand = gsub(v.cmdname or "","_"," ") - local undefined = cscommand == "undefined cs" - local marked = (dealtwith and "+") or (whatever and "-") or (instance and "!") - if everything or ((all or not marked) and not find(k,"^[pvm]_") and not find(k,"^![tT]")) then - local parameters = v.parameters - local noaligned = v.noaligned and "noaligned" - local filename = files[k] or macros[k] - local csname = context.escape(k) - if undefined then - marked = "?" - end - ctx_NC() if marked then context(marked) end - ctx_NC() if primitive then ctx_bold(csname) else - ctx_verb(csname) end - ctx_NC() if parameters then context(parameters > 0 and parameters or "-") end - ctx_NC() if undefined then context.red(false) end - context(cscommand) - ctx_NC() if primitive then context(primitive) end - ctx_NC() if permanent then context(permanent) end - ctx_NC() if immutable then context(immutable) end - ctx_NC() if frozen then context(frozen) end - ctx_NC() if mutable then context(mutable) end - ctx_NC() if instance then context(instance) end - ctx_NC() if noaligned then context(noaligned) end - ctx_NC() if filename then context(hashnames[filename]) end - ctx_NC() ctx_NR() - end - if visible then - total = total + 1 - if dealtwith then - flagged = flagged + 1 - end - end - end - end - context.stoptabulate() - end - - context.starttitle { title = "Public \\TEX\\ commands" } - show(true, function(k) return find(k,"^[a-zA-Z]+$") end) - context.stoptitle() - - context.starttitle { title = "Private \\TEX\\ commands" } - show(false, function(k) return not find(k,"^[a-zA-Z]+$") and not find(k,crap) end) - context.stoptitle() - - tokens.setters.macro("NumberOfVisible", total) - tokens.setters.macro("NumberOfFlagged", flagged) - - end - -\stopluacode - -\startmode[texmacros] - - \page - - \starttabulate[|c|l|] - \HL - \NC \type {+} \NC mutable, immutable, frozen, permanent, primitive \NC \NR - \NC \type {-} \NC protected by obscurity (underscores) \NC \NR - \NC \type {!} \NC instance (can be frozen) \NC \NR - \NC \type {0-9} \NC the number of arguments (argument grabbing can be delegated) \NC \NR - \HL - \stoptabulate - - \start \hsize 15cm \veryraggedright - Often frozen commands are redefined on demand and they can be overloaded. Mutable - doesn't mean that a user can change it without consequences, for instance the - \type {\current...} ones. Primitives come with the engine, permanent macros are - the core of \CONTEXT. Noaligned macros are special and dealt deep down when - scanning for alignment specific primitives. - \par \stop - - \starttabulate[||r|] - \BC number of visible macros \NC \NumberOfVisible \NC \NR - \BC number of flagged macros \NC \NumberOfFlagged \NC \NR - \stoptabulate - -\stopmode - -\page - -\startluacode - - if tex.modes.metapostmacros then - - local context = context - -- local ctx_NC = context.NC - -- local ctx_NR = context.NR - -- local ctx_bold = context.bold - - local find = string.find - local gsub = string.gsub - local create = tokens.create - - context.starttitle { title = "\\METAFUN\\ commands" } - - metapost.simple("prestine") - - local mptotal = 0 - local codes = metapost.codes - local types = metapost.types - local parameters = metapost.knownparameters - local procodes = mplib.propertycodes - local everything = tex.modes.everything - - context.startcolumns { n = 5, distance = "1em" } - context.nohyphens(false) - context.obeyspaces(false) - local t = metapost.gethashentries("prestine",true) -- prestine:1 - if t then - table.sort(t,function(a,b) return a[3] < b[3] end) - mptotal = #t - for i=1,mptotal do - local ti = t[i] - local code = codes[ti[1]] - local property = procodes[ti[2]] - local name = ti[3] - local vtype = ti[4] - local vardef = vtype and types[vtype] == "unsuffixedmacro" - context.bgroup() - -- context("%-15s\\quad",vardef and "(vardef) tag" or code) - context("%s %-15s\\quad",parameters[name] and "+" or "\\nbsp",vardef and "(vardef) tag" or code) - if property == "primitive" then - context.bf(false) - context.blue(false) - elseif property == "permanent" then - context.bf(false) - context.lightgreen(false) - elseif property == "immutable" then - context.bf(false) - context.lightcyan(false) - elseif property == "mutable" then - context.bf(false) - context.lightmagenta(false) - elseif everything or not find(name,"^%a+_") then - -- todo: - if vardef then - context.bf(false) - context.lightred(false) - end - end - context.verbatim(name) - context.egroup() - context.par() - end - end - context.stopcolumns() - - context.stoptitle() - - tokens.setters.macro("NumberOfMetafun", mptotal) - - end -\stopluacode - -\startmode [metapostmacros] - - \page - - \starttabulate[|c|l|] - \HL - \NC \type {-3} \NC \bf \lightmagenta mutable \NC \NR - \NC \type {1} \NC \bf \blue primitive \NC \NR - \NC \type {2} \NC \bf \lightgreen permanent \NC \NR - \NC \type {3} \NC \bf \lightcyan immutable \NC \NR - \NC \type {+} \NC \bf (also) used as key \NC \NR - \HL - \stoptabulate - - \starttabulate[||r|] - \BC number of metafun entries \NC \NumberOfMetafun \NC \NR - \stoptabulate - -\stopmode - -\stopmodule diff --git a/tex/context/modules/mkiv/s-system-tokens.mkxl b/tex/context/modules/mkiv/s-system-tokens.mkxl deleted file mode 100644 index b83a4f47b..000000000 --- a/tex/context/modules/mkiv/s-system-tokens.mkxl +++ /dev/null @@ -1,84 +0,0 @@ -%D \module -%D [ file=s-system-tokens.mkxl, -%D version=2020.06.02, -%D title=\CONTEXT\ Style File, -%D subtitle=System Tokens Checking, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -\startmodule[system-tokens] - -\registerctxluafile{s-system-tokens}{} - -\permanent\protected\def\showsystemtokens{\ctxlua{moduledata.system.tokens.showlist()}} % can be public implementor - -\stopmodule - -\continueifinputfile{s-system-tokens.mkxl} - -\usemodule[article-basic] - -\setuppapersize[A4,landscape] - -\setuplayout[tight] - -\setupbodyfont[8pt] - -\starttext - - \showsystemtokens - - Some tokens cannot be created yet because they are more complex but eventually the creator will - deal with them. The indices are sometimes the same as internal but in most cases nicely start - at zero. When they start at another value, then there is an internal token or state that is not - user accessible. You always need to use symbolic constants as the numbers can change. - - The first column is a classifier (which is experimental and categories might change when we feel - the need). - - \startcolumns[n=5] - \starttabulate[|T||] - \NC 0 \NC unused \NC \NR - \NC 1 \NC regular \NC \NR - \NC 2 \NC character \NC \NR - \NC 3 \NC register \NC \NR - \NC 4 \NC internal \NC \NR - \NC 5 \NC reference \NC \NR - \NC 6 \NC data \NC \NR - \NC 7 \NC token \NC \NR - \NC 8 \NC node \NC \NR - \stoptabulate - \stopcolumns - - \page - - Here is a typeset table of \type {\startframed} using \type {\luatokentable\startframed}: - - \luatokentable\startframed - - which calls \type {\pack_framed_start_framed} where \type {\luatokentable\pack_framed_start_framed} gives: - - - \unprotect - \luatokentable\pack_framed_start_framed - \protect - - So you can guess what generates this: - - \unprotect - \luatokentable\pack_framed_start_framed_nop - \protect - - And this: - - \unprotect - \luatokentable\pack_framed_start_framed_yes - \protect - -\stoptext - diff --git a/tex/context/modules/mkiv/x-asciimath.mkiv b/tex/context/modules/mkiv/x-asciimath.mkiv index 32eaf2af2..bd9b847d9 100644 --- a/tex/context/modules/mkiv/x-asciimath.mkiv +++ b/tex/context/modules/mkiv/x-asciimath.mkiv @@ -174,7 +174,7 @@ \def\asciimath_yes[#1]#2% {\mathematics [#1]% - {\the\everyasciimath% + {\the\everyasciimath \clf_justasciimath{\detokenize\expandafter{\normalexpanded{#2}}}}} \def\asciimath_nop#1% @@ -191,7 +191,7 @@ \def\xmlasciimath_yes[#1]#2% {\mathematics [#1]% - {\the\everyasciimath% + {\the\everyasciimath \clf_xmlasciimath{#2}}} \def\xmlasciimath_nop#1% diff --git a/tex/context/modules/mkxl/m-system-readers.mkxl b/tex/context/modules/mkxl/m-system-readers.mkxl new file mode 100644 index 000000000..0f2d3275e --- /dev/null +++ b/tex/context/modules/mkxl/m-system-readers.mkxl @@ -0,0 +1,148 @@ +%D \module +%D [ file=m-system-readers, +%D version=2021.02.13, +%D title=\CONTEXT\ Modules, +%D subtitle=Reading from files, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] + +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\startmodule[system-readers] + +% \unprotect +% +% \installcorenamespace {markedlines} +% +% \permanent\protected\def\startmarkedlines[#1]% +% {\edef\scratchstring{#1}% +% \scratchcounter\numexpr\inputlineno+\plusone\relax +% \gobbleuntilandfinalize\stopmarkedlines} +% +% \permanent\protected\def\stopmarkedlines +% {\edefcsname\??markedlines\scratchstring\endcsname +% {{\the\scratchcounter}{\the\numexpr\inputlineno+\minusone\relax}}} +% +% \protected\def\firstmarkedline#1% +% {\numexpr +% \ifcsname\??markedlines#1\endcsname +% \normalexpanded{\noexpand\firstoftwoarguments\lastnamedcs}% +% \else +% \zerocount +% \fi +% \relax} +% +% \protected\def\lastmarkedline#1% +% {\numexpr +% \ifcsname\??markedlines#1\endcsname +% \normalexpanded{\noexpand\secondoftwoarguments\lastnamedcs}% +% \else +% \zerocount +% \fi +% \relax} +% +% \protected\def\markedlines#1% +% {\ifcsname\??markedlines\scratchstring\endcsname\lastnamedcs\else{0}{0}\fi} +% +% \protect + +\startluacode + + local createtoken = tokens.create + local gobbletoken = tokens.gobble + local integer_value = tokens.values.integer + + local marked = { } + + interfaces.implement { + name = "startmarkedlines", + public = true, + protected = true, + arguments = "optional", + actions = function(tag) + local start = status.readstate.linenumber + 1 + gobbletoken(createtoken("startmarkedlines"),createtoken("stopmarkedlines")) + local state = status.readstate + marked[tag] = { state.filename, start, state.linenumber - 1 } + end + } + + + interfaces.implement { + name = "markedfilename", + public = true, + -- usage = "value", + arguments = "string", + actions = function(tag) + local m = marked[tag] + -- return m and m[1] or "" + context(m and m[1] or "") + end + } + + interfaces.implement { + name = "firstmarkedline", + public = true, + usage = "value", + arguments = "string", + actions = function(tag) + local m = marked[tag] + return integer_value, m and m[2] or 0 + end + } + + interfaces.implement { + name = "lastmarkedline", + public = true, + usage = "value", + arguments = "string", + actions = function(tag) + local m = marked[tag] + return integer_value, m and m[3] or 0 + end + } + +\stopluacode + +\continueifinputfile{m-system-readers.mkxl} + +\starttext + +\startmarkedlines[test] +SOME LINE 1 +SOME LINE 2 +SOME LINE 3 +SOME LINE 4 +\stopmarkedlines + +\startmarkedlines[more] +SOME MORE 1 +SOME MORE 2 +SOME MORE 3 +SOME MORE 4 +\stopmarkedlines + +\begingroup + \newlocalread\myreada + \immediate\openin\myreada {\markedfilename{test}} + \dostepwiserecurse{\lastmarkedline{test}}{\firstmarkedline{test}}{-1}{ + \readline\myreada line #1 to \scratchstring #1 : \scratchstring \par + } + \immediate\closein\myreada +\endgroup + +\blank + +\begingroup + \newlocalread\myreada + \immediate\openin\myreada {\markedfilename{more}} + \dostepwiserecurse{\firstmarkedline{more}}{\lastmarkedline{more}}{1}{ + \read \myreada line #1 to \scratchstring #1 : \scratchstring \par + } + \immediate\closein\myreada +\endgroup + +\stoptext diff --git a/tex/context/modules/mkxl/m-timing.mkxl b/tex/context/modules/mkxl/m-timing.mkxl new file mode 100644 index 000000000..3edfd14e2 --- /dev/null +++ b/tex/context/modules/mkxl/m-timing.mkxl @@ -0,0 +1,113 @@ +%D \module +%D [ file=m-timing, +%D version=2007.12.23, +%D title=\CONTEXT\ Modules, +%D subtitle=Timing, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D Todo: adapt to latest metafun magic. + +\ifdefined\ShowNamedUsage \endinput \fi + +%D Written at the end of 2007, this module is dedicated to Taco. Reaching this +%D point in \LUATEX\ was a non trivial effort. By visualizing a bit what happens +%D when pages come out of \LUATEX, you may get an idea what is involved. It took +%D much time an dedication to reach this point in the development. Add to that +%D those daily Skype intense discussion, testing and debugging moments. Time flies +%D but progress is impressive. The motto of this module could be: what you see +%D is what you get. An there is much more to come \unknown. + +% \usemodule[timing] +% \setupcolors[state=start] +% \starttext +% \dorecurse{200}{\input tufte \par} \ShowUsage{} +% \stoptext + +\definecolor[usage:line] [darkred] +\definecolor[usage:time] [darkblue] +\definecolor[usage:frame][darkgray] + +\ctxloadluafile{trac-tim.lmt} + +\startluacode +local progress = moduledata.progress + +function progress.show(filename,names,other) + if not filename or filename == "" then + filename = progress.defaultfilename or "" + end + for n, name in pairs(progress.names(filename)) do + if string.find(name,names) and name ~= other and name ~= "variables: lasttime" then + context.ShowNamedUsage(filename,name or "",other or "") + end + end +end +\stopluacode + +\startnotmode[no-timing] + \appendtoks\ctxlua{moduledata.progress.store()}\to\everystarttext + \appendtoks\ctxlua{moduledata.progress.store()}\to\everyshipout + \ctxlua{luatex.registerstopactions(function() moduledata.progress.save() end)} +\stopnotmode + +\permanent\protected\def\ShowNamedUsage#1#2#3% + {\setbox\scratchbox\vbox\bgroup + \startMPcode{doublefun} + begingroup ; save p, q, b, h, w ; + path p, q, b ; numeric h, w ; + p := \cldcontext{moduledata.progress.path("#1","#2")} ; + % p := p shifted -llcorner p ; + if bbwidth(p) > 0 : + h := 100 ; w := 2 * h ; + w := \the\textwidth-3pt ; % correct for pen + p := p xstretched w ; + b := boundingbox (llcorner p -- llcorner p shifted (w,h)) ; + pickup pencircle scaled 3pt ; linecap := butt ; + draw b withcolor \MPcolor{usage:frame} ; + draw p withcolor \MPcolor{usage:line} ; + if ("#3" <> "") and ("#3" <> "#2") : + q := \cldcontext{moduledata.progress.path("#1","#3")} ; + % q := q shifted -llcorner q ; + if bbwidth(q) > 1 : + q := q xstretched w ; + pickup pencircle scaled 1.5pt ; linecap := butt ; + draw q withcolor \MPcolor{usage:time} ; + fi ; + fi ; + fi ; + endgroup ; + \stopMPcode + \egroup + \scratchdimen\wd\scratchbox + \ifdim\scratchdimen>\zeropoint + \startlinecorrection[blank] + \box\scratchbox \endgraf + \hbox to \scratchdimen\bgroup + \tttf\strut\detokenize{#2}\hss + \scratchcounter =\cldcontext{moduledata.progress.set("#1","\detokenize{#2}")}\relax + \scratchcounterone =\cldcontext{moduledata.progress.bot("#1","\detokenize{#2}")}\relax + \scratchcountertwo =\cldcontext{moduledata.progress.top("#1","\detokenize{#2}")}\relax + \scratchcounterthree=\numexpr\scratchcountertwo-\scratchcounterone\relax + \ifnum\scratchcounter >\zerocount set:\the\scratchcounter \quad\fi + \ifnum\scratchcounterthree>\zerocount inc:\the\scratchcounterthree\quad\fi + \ifnum\scratchcounterone >\zerocount min:\the\scratchcounterone \quad\fi + \ifnum\scratchcountertwo >\zerocount max:\the\scratchcountertwo \quad\fi + pages:\cldcontext{moduledata.progress.pages("#1")}% + \egroup + \stoplinecorrection + \fi} + +\permanent\protected\def\LoadUsage #1{\ctxlua{moduledata.progress.convert("#1")}} +\permanent\protected\def\ShowUsage #1{\ctxlua{moduledata.progress.show("#1",".*", "variables: elapsed")}} +\permanent\protected\def\ShowMemoryUsage #1{\ctxlua{moduledata.progress.show("#1","memory:.*","variables: elapsed")}} +\permanent\protected\def\ShowNodeUsage #1{\ctxlua{moduledata.progress.show("#1","nodes:.*", "variables: elapsed")}} +\permanent\protected\def\ShowFilteredUsage#1#2{\ctxlua{moduledata.progress.show("#1","#2", "variables: elapsed")}} +\permanent\protected\def\ShowSimpleUsage #1#2{\ctxlua{moduledata.progress.show("#1","#2")}} + +\endinput diff --git a/tex/context/modules/mkxl/s-languages-goodies.lmt b/tex/context/modules/mkxl/s-languages-goodies.lmt new file mode 100644 index 000000000..7256fd35d --- /dev/null +++ b/tex/context/modules/mkxl/s-languages-goodies.lmt @@ -0,0 +1,99 @@ +if not modules then modules = { } end modules ['s-languages-goodies'] = { + version = 1.001, + comment = "companion to s-languages-goodies.mkxl", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +moduledata.languages = moduledata.languages or { } +moduledata.languages.goodies = moduledata.languages.goodies or { } + +function moduledata.languages.goodies.show(specification) + specification = interfaces.checkedspecification(specification) + local filename = specification.file + if filename and filename ~= "" then + local list = table.load(resolvers.findfile(filename)) + if list then + list = list.options + if list then + for i=1,#list do + local l = list[i] + local w = l.words + if w then + local pre = l.prefixes + local suf = l.suffixes + context.startsubject { title = table.concat(table.sortedkeys(l.patterns)," ") } + context(languages.strippedgoodiewords(w)) + if pre then + context.blank() + context.bold("prefixes: ") + context(languages.strippedgoodiewords(pre)) + end + if suf then + context.blank() + context.bold("suffixes: ") + context(languages.strippedgoodiewords(suf)) + end + context.stopsubject() + end + end + end + end + end +end + +local lpegmatch = lpeg.match + +moduledata.languages.goodies.ligaturehandlers = { } + +function moduledata.languages.goodies.ligatures(specification) + + specification = interfaces.checkedspecification(specification) + local language = specification.language + local filename = specification.file + + if not language then + elseif moduledata.languages.goodies.ligaturehandlers[language] then + else + -- fb ff ffb fff ffh ffi ffj ffk ffl fft fi fk fl ft + local list = specification.list or "ff fi fl ffi fff ffl" + local hash = table.tohash(lpeg.split(" ",list)) -- also strip + local pattern = (1-lpeg.utfchartabletopattern(hash))^1 * lpeg.P(-1) + local checked = { } + + moduledata.languages.goodies.ligaturehandlers[language] = function(original) + if not checked[original] and not lpegmatch(pattern,original) then + checked[original] = true + end + return original + end + + languages.installhandler(language,"moduledata.languages.goodies.ligaturehandlers." .. language .. "") + + statistics.register(string.formatters["'% t' ligatures checked for language %a"](table.sortedkeys(hash), language), function() + return next(checked) and table.concat(table.sortedkeys(checked)," ") or nil + end) + + local applied = languages.appliedoptions[language] + + trackers.enable("languages.applied") + + if applied then + statistics.register(string.formatters["options applied for language %a"](language), function() + return next(applied) and table.concat(table.sortedkeys(applied)," ") or nil + end) + statistics.register(string.formatters["missed ligatures for language %a"](language), function() + for k, v in next, applied do + checked[k] = nil + end + for k, v in next, hash do + checked[k] = nil + end + return next(checked) and table.concat(table.sortedkeys(checked)," ") or nil + end) + end + + end + +end diff --git a/tex/context/modules/mkxl/s-languages-goodies.mkxl b/tex/context/modules/mkxl/s-languages-goodies.mkxl new file mode 100644 index 000000000..3ced071be --- /dev/null +++ b/tex/context/modules/mkxl/s-languages-goodies.mkxl @@ -0,0 +1,144 @@ +%D \module +%D [ file=s-languages-goodies, +%D version=2021.25.03, +%D title=\CONTEXT\ Style File, +%D subtitle=Language Goodies, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\startmodule[languages-goodies] + +\registerctxluafile{s-languages-goodies}{autosuffix} + +\installmodulecommandluasingle \showlanguagegoodies {moduledata.languages.goodies.show} +\installmodulecommandluasingle \showlanguageligatures {moduledata.languages.goodies.ligatures} + +\stopmodule + +\continueifinputfile{s-languages-goodies.mkxl} + +% Beware, for now this file is a playground so what gets rendered +% can differ per upload. + +\usemodule[art-01] + +% \setupbodyfont[libertine] + +\setuplanguage[de][goodies={lang-de.llg}] +\setuplanguage[en][goodies={lang-en.llg}] + +\mainlanguage[de] + +% \setupalign[stretch,verytolerant,flushleft] \dontcomplain + +% \startlanguageoptions[de] +% Zapf|innovation +% \stoplanguageoptions + +% \tracinghyphenation3 \tracingonline2 + +\starttext + + \start +% \setupalign[stretch,verytolerant,flushleft,nothyphenated] \dontcomplain + +% \showlanguageligatures[language=de,list=ff fi fl fk ft fb ffi ffl fff ffk fft ffb ffh ffj] +% \showlanguageligatures[language=en,list=ff fi fl fk ft fb ffi ffl fff ffk fft ffb ffh ffj] + +% \starttitle[title={DE}] +% \start \de \showlanguagegoodies [file={lang-de.llg}] \stop +% \stoptitle + +% \starttitle[title={EN}] +% \start \en \showlanguagegoodies[file={lang-en.llg}] \stop +% \stoptitle + + \page + + \stop + + % oeps effe + % nonexistentffitestcase + % nonexistentffltestcase + + \enabletrackers[languages.goodies,languages.applied] + + \start \de \dontcomplain + +% general + +% 0 : ignore +% 1 : invisible % {}{}{} +% 2 : no break % {}{}{}[9] +% 3 : pre % {-}{}{} +% 4 : pre replace % {-}{}{-} +% 5 : post % {}{-}{} +% 6 : post replace % {}{-}{-} +% 7 : pre post % {-}{-}{} +% 8 : pre post replace % {-}{-}{-} + +% \codedef\hccode +% \codedef\hycode + +% \hccode"002D = "2010 \hycode"002D = "0 % hyphen minus +% \hccode"00AD = "0000 \hycode"00AD = "1 % soft hyphen +% \hccode"2010 = "2010 \hycode"2010 = "0 % hyphen +% \hccode"2011 = "2010 \hycode"2011 = "2 % non breaking hyphen +% \hccode"2012 = "2012 \hycode"2012 = "0 % figure dash +% \hccode"2013 = "2013 \hycode"2013 = "0 % en dash +% \hccode"2014 = "2014 \hycode"2014 = "0 % em dash + + +% \permanent\protected\def\cwm{\discretionary preword postword{-}{}{-}} +% \tracingonline2 \tracinghyphenation2 + +% One can map to exhyphenchar and use a pre/post for that one but if +% really needed \hbcode (before=pre) and \hacode (after=post) can be +% introduced. Maybe only settable runtime via lua. + +\hccode"002D = "002D +\hccode"2010 = "2010 +\hccode"2013 = "2013 +\hccode"2014 = "2014 + +% Offline\cwm Anwendungen\par +% {\hsize 1mm Offline\cwm Anwendungen\par} +% Offline-Anwendungen\par +% Offline{\char"2010}Anwendungen\par +% {\hsize 1mm Offline-Anwendungen\par} +% {\hsize 1mm Offline{\char"2010}Anwendungen\par} +% {\hsize 1mm Offline{\endash}Anwendungen\par} +% {\hsize 1mm Offline{\emdash}Anwendungen\par} + {\hsize 3mm \emdash Offline-Anwendungen\emdash\par} + {\hsize 3mm \emdash\wordboundary Offline-Anwendungen\wordboundary\emdash\par} + {\hsize 3mm \quotation{Offline-Anwendungen}\par} + {\hsize 3mm „Offline-Anwendungen“\par} + {\hsize 3mm -Offline-Anwendungen-\par} + +% OfflineAnwendungen\par +% {\hsize 1mm OfflineAnwendungen\par} +% Offline\par +% {\hsize 1mm Offline\par} + + +% \hyphenationmode\bitwiseflip\hyphenationmode-\forcehandlerhyphenationmodecode + +% \de \dontcomplain + +% \startexceptions[de] +% multi-cul-ti{-}{}{-}word{-}{}{-}boun-daries +% \stopexceptions + +% {multiculti-word-boundaries\par} +% {multicultiwordboundaries\par} +% {\hsize 1mm multicultiwordboundaries\par} +% {\hsize 1mm multiculti-word-boundaries\par} +% {\hsize 1mm multiwordboundaries\par} + + \stop +\stoptext diff --git a/tex/context/modules/mkxl/s-system-macros.mkxl b/tex/context/modules/mkxl/s-system-macros.mkxl new file mode 100644 index 000000000..605859000 --- /dev/null +++ b/tex/context/modules/mkxl/s-system-macros.mkxl @@ -0,0 +1,330 @@ +%D \module +%D [ file=s-system-tokens.mkxl, +%D version=2020.06.02, +%D title=\CONTEXT\ Style File, +%D subtitle=System Tokens Checking, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D This file is for Wolfgang and Hans and it's used in the transition from \MKIV\ +%D to the more robust \LMTX. + +% todo: \permanent\protected\let\select\directselect : same value (add ref) +% +% todo: when mutable, remove immutable, decide on how immutable it really is +% +% todo: just for the fun of it we can compare the table generated here to mkiv but it +% needs the same hash exposure as we use in luametatex so i'll do that after all lmtx +% macros are checked (maybe i need to backport some more but it has a low priority) +% +% todo: do we need something similar for lua functions etc (problem: performance hit) +% +% todo: and how about metapost ... i need a mp.hashtokens in order to do that and I also +% need to think about protection there (tricky as we use an avl hash there) +% +% public undefined : SmallCaps scitebuffer sciteinlinebuffer +% single todos : \ \- \\ \_ + +\enablemode[texmacros] +\enablemode[metapostmacros] +% \enablemode[notmarked] +\enablemode[everything] + +\startmodule[system-macros] + +\continueifinputfile{s-system-macros.mkxl} + +% \usemodule[article-basic] \setuplayout[tight] \setupbodyfont[7pt,tt] +\usemodule[article-basic] \setuplayout[tight] \setupbodyfont[5pt,tt] + +\setupbackgrounds[page][background=color,backgroundcolor=darkgray] \setupcolors[textcolor=white] + +\setuppapersize + [A4,landscape] + [A4,landscape] + +\starttext + +\startluacode + + if tex.modes.texmacros then + + local context = context + local ctx_NC = context.NC + local ctx_NR = context.NR + local ctx_bold = context.bold + local ctx_verb = context.verbatim + + local find = string.find + local gsub = string.gsub + local create = tokens.create + + local crap = "[$>%|%&%#" .. string.char(0xEF) .. "]" + + local basefile = resolvers.findfile("context.mkxl") + local swapnames = { } + + local pattern = file.join(file.pathpart(basefile),"/*.mk*") + local filenames = dir.glob(pattern) + for i=1,#filenames do + swapnames[file.basename(filenames[i])] = true + end + + local pattern = file.join(file.pathpart(basefile),"/*.l**") + local filenames = dir.glob(pattern) + for i=1,#filenames do + swapnames[file.basename(filenames[i])] = true + end + + local hashnames = table.setmetatableindex(function(t,k) + local s = file.suffix(k) + local v = k + if s == "mkiv" then + local n = file.replacesuffix(k,"mkxl") + if swapnames[n] then + v = n + end + elseif s == "mkvi" then + local n = file.replacesuffix(k,"mklx") + if swapnames[n] then + v = n + end + elseif s == "lua" then + local n = file.replacesuffix(k,"lmt") + if swapnames[n] then + v = n + end + end + t[k] = v + return v + end) + + require("mtx-interface") + + local data = scripts.interface.editor("data") + local files = data and data.common and data.common.filenames or { } + local macros = { } + local flagged = 0 + local total = 0 + local list = tex.hashtokens() + local all = not tex.modes.notmarked + local everything = tex.modes.everything + + local fmtname = resolvers.locateformat("cont-en.fmt") + if fmtname then + local logname = file.replacesuffix(fmtname,"log") + for filename in string.gmatch(io.loaddata(logname),"fullname=(%S+)") do + local s = file.suffix(filename) + local b = file.basename(filename) + if s ~= "lua" and s ~= "lmt" then + local d = io.loaddata(filename) + for m in string.gmatch(d,"\n[\\a-z]*[exg]*def\\([a-zA-Z_]+)") do + macros[m] = b + end + for m in string.gmatch(d,"\n[\\a-z]*[g]*let\\([a-zA-Z_]+)") do + macros[m] = b + end + end + end + end + + table.sort(list) + + local function show(visible, check) + -- context.starttabulate { "|l|l|l|lj2|l|l|l|l|l|l|l|l|" } + context.starttabulate { "|l|l|l|lj2|l|l|l|l|l|l|l|l|" } + for i=1,#list do + local k = list[i] + if check(k) then + local v = create(k) + local mutable = v.mutable and "mutable" + local immutable = v.immutable and "immutable" + local frozen = v.frozen and "frozen" + local permanent = v.permanent and "permanent" + local primitive = v.primitive and "primitive" + local instance = v.instance and "instance" + local dealtwith = mutable or immutable or mutable or frozen or permanent or primitive -- beware: we can have combinations + local whatever = find(k,"^[a-z][a-z][a-z]+_") + local cscommand = gsub(v.cmdname or "","_"," ") + local undefined = cscommand == "undefined cs" + local marked = (dealtwith and "+") or (whatever and "-") or (instance and "!") + if everything or ((all or not marked) and not find(k,"^[pvm]_") and not find(k,"^![tT]")) then + local parameters = v.parameters + local noaligned = v.noaligned and "noaligned" + local filename = files[k] or macros[k] + local csname = context.escape(k) + if undefined then + marked = "?" + end + ctx_NC() if marked then context(marked) end + ctx_NC() if primitive then ctx_bold(csname) else + ctx_verb(csname) end + ctx_NC() if parameters then context(parameters > 0 and parameters or "-") end + ctx_NC() if undefined then context.red(false) end + context(cscommand) + ctx_NC() if primitive then context(primitive) end + ctx_NC() if permanent then context(permanent) end + ctx_NC() if immutable then context(immutable) end + ctx_NC() if frozen then context(frozen) end + ctx_NC() if mutable then context(mutable) end + ctx_NC() if instance then context(instance) end + ctx_NC() if noaligned then context(noaligned) end + ctx_NC() if filename then context(hashnames[filename]) end + ctx_NC() ctx_NR() + end + if visible then + total = total + 1 + if dealtwith then + flagged = flagged + 1 + end + end + end + end + context.stoptabulate() + end + + context.starttitle { title = "Public \\TEX\\ commands" } + show(true, function(k) return find(k,"^[a-zA-Z]+$") end) + context.stoptitle() + + context.starttitle { title = "Private \\TEX\\ commands" } + show(false, function(k) return not find(k,"^[a-zA-Z]+$") and not find(k,crap) end) + context.stoptitle() + + tokens.setters.macro("NumberOfVisible", total) + tokens.setters.macro("NumberOfFlagged", flagged) + + end + +\stopluacode + +\startmode[texmacros] + + \page + + \starttabulate[|c|l|] + \HL + \NC \type {+} \NC mutable, immutable, frozen, permanent, primitive \NC \NR + \NC \type {-} \NC protected by obscurity (underscores) \NC \NR + \NC \type {!} \NC instance (can be frozen) \NC \NR + \NC \type {0-9} \NC the number of arguments (argument grabbing can be delegated) \NC \NR + \HL + \stoptabulate + + \start \hsize 15cm \veryraggedright + Often frozen commands are redefined on demand and they can be overloaded. Mutable + doesn't mean that a user can change it without consequences, for instance the + \type {\current...} ones. Primitives come with the engine, permanent macros are + the core of \CONTEXT. Noaligned macros are special and dealt deep down when + scanning for alignment specific primitives. + \par \stop + + \starttabulate[||r|] + \BC number of visible macros \NC \NumberOfVisible \NC \NR + \BC number of flagged macros \NC \NumberOfFlagged \NC \NR + \stoptabulate + +\stopmode + +\page + +\startluacode + + if tex.modes.metapostmacros then + + local context = context + -- local ctx_NC = context.NC + -- local ctx_NR = context.NR + -- local ctx_bold = context.bold + + local find = string.find + local gsub = string.gsub + local create = tokens.create + + context.starttitle { title = "\\METAFUN\\ commands" } + + metapost.simple("prestine") + + local mptotal = 0 + local codes = metapost.codes + local types = metapost.types + local parameters = metapost.knownparameters + local procodes = mplib.propertycodes + local everything = tex.modes.everything + + context.startcolumns { n = 5, distance = "1em" } + context.nohyphens(false) + context.obeyspaces(false) + local t = metapost.gethashentries("prestine",true) -- prestine:1 + if t then + table.sort(t,function(a,b) return a[3] < b[3] end) + mptotal = #t + for i=1,mptotal do + local ti = t[i] + local code = codes[ti[1]] + local property = procodes[ti[2]] + local name = ti[3] + local vtype = ti[4] + local vardef = vtype and types[vtype] == "unsuffixedmacro" + context.bgroup() + -- context("%-15s\\quad",vardef and "(vardef) tag" or code) + context("%s %-15s\\quad",parameters[name] and "+" or "\\nbsp",vardef and "(vardef) tag" or code) + if property == "primitive" then + context.bf(false) + context.blue(false) + elseif property == "permanent" then + context.bf(false) + context.lightgreen(false) + elseif property == "immutable" then + context.bf(false) + context.lightcyan(false) + elseif property == "mutable" then + context.bf(false) + context.lightmagenta(false) + elseif everything or not find(name,"^%a+_") then + -- todo: + if vardef then + context.bf(false) + context.lightred(false) + end + end + context.verbatim(name) + context.egroup() + context.par() + end + end + context.stopcolumns() + + context.stoptitle() + + tokens.setters.macro("NumberOfMetafun", mptotal) + + end +\stopluacode + +\startmode [metapostmacros] + + \page + + \starttabulate[|c|l|] + \HL + \NC \type {-3} \NC \bf \lightmagenta mutable \NC \NR + \NC \type {1} \NC \bf \blue primitive \NC \NR + \NC \type {2} \NC \bf \lightgreen permanent \NC \NR + \NC \type {3} \NC \bf \lightcyan immutable \NC \NR + \NC \type {+} \NC \bf (also) used as key \NC \NR + \HL + \stoptabulate + + \starttabulate[||r|] + \BC number of metafun entries \NC \NumberOfMetafun \NC \NR + \stoptabulate + +\stopmode + +\stopmodule diff --git a/tex/context/modules/mkxl/s-system-tokens.mkxl b/tex/context/modules/mkxl/s-system-tokens.mkxl new file mode 100644 index 000000000..b83a4f47b --- /dev/null +++ b/tex/context/modules/mkxl/s-system-tokens.mkxl @@ -0,0 +1,84 @@ +%D \module +%D [ file=s-system-tokens.mkxl, +%D version=2020.06.02, +%D title=\CONTEXT\ Style File, +%D subtitle=System Tokens Checking, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\startmodule[system-tokens] + +\registerctxluafile{s-system-tokens}{} + +\permanent\protected\def\showsystemtokens{\ctxlua{moduledata.system.tokens.showlist()}} % can be public implementor + +\stopmodule + +\continueifinputfile{s-system-tokens.mkxl} + +\usemodule[article-basic] + +\setuppapersize[A4,landscape] + +\setuplayout[tight] + +\setupbodyfont[8pt] + +\starttext + + \showsystemtokens + + Some tokens cannot be created yet because they are more complex but eventually the creator will + deal with them. The indices are sometimes the same as internal but in most cases nicely start + at zero. When they start at another value, then there is an internal token or state that is not + user accessible. You always need to use symbolic constants as the numbers can change. + + The first column is a classifier (which is experimental and categories might change when we feel + the need). + + \startcolumns[n=5] + \starttabulate[|T||] + \NC 0 \NC unused \NC \NR + \NC 1 \NC regular \NC \NR + \NC 2 \NC character \NC \NR + \NC 3 \NC register \NC \NR + \NC 4 \NC internal \NC \NR + \NC 5 \NC reference \NC \NR + \NC 6 \NC data \NC \NR + \NC 7 \NC token \NC \NR + \NC 8 \NC node \NC \NR + \stoptabulate + \stopcolumns + + \page + + Here is a typeset table of \type {\startframed} using \type {\luatokentable\startframed}: + + \luatokentable\startframed + + which calls \type {\pack_framed_start_framed} where \type {\luatokentable\pack_framed_start_framed} gives: + + + \unprotect + \luatokentable\pack_framed_start_framed + \protect + + So you can guess what generates this: + + \unprotect + \luatokentable\pack_framed_start_framed_nop + \protect + + And this: + + \unprotect + \luatokentable\pack_framed_start_framed_yes + \protect + +\stoptext + diff --git a/tex/context/modules/mkxl/x-mathml.lmt b/tex/context/modules/mkxl/x-mathml.lmt new file mode 100644 index 000000000..ba05c002e --- /dev/null +++ b/tex/context/modules/mkxl/x-mathml.lmt @@ -0,0 +1,910 @@ +if not modules then modules = { } end modules ['x-mathml'] = { + version = 1.001, + comment = "companion to x-mathml.mkiv", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +-- This needs an upgrade to the latest greatest mechanisms. But ... it +-- probably doesn't pay back as no mathml support ever did. + +local type, next = type, next +local formatters, lower, find, gsub, match = string.formatters, string.lower, string.find, string.gsub, string.match +local strip = string.strip +local xmlsprint, xmlcprint, xmltext, xmlcontent, xmlempty = xml.sprint, xml.cprint, xml.text, xml.content, xml.empty +local lxmlcollected, lxmlfilter = lxml.collected, lxml.filter +local getid = lxml.getid +local utfchar, utfcharacters, utfsplit, utflen = utf.char, utf.characters, utf.split, utf.len +local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns +local P, Cs = lpeg.P, lpeg.Cs + +local mathml = { } +moduledata.mathml = mathml +lxml.mathml = mathml -- for the moment + +local context = context + +local ctx_enabledelimiter = context.enabledelimiter +local ctx_disabledelimiter = context.disabledelimiter +local ctx_xmlflush = context.xmlflush -- better xmlsprint + +local ctx_halign = context.halign +local ctx_noalign = context.noalign +local ctx_bgroup = context.bgroup +local ctx_egroup = context.egroup +local ctx_crcr = context.crcr + +local ctx_bTABLE = context.bTABLE +local ctx_eTABLE = context.eTABLE +local ctx_bTR = context.bTR +local ctx_eTR = context.eTR +local ctx_bTD = context.bTD +local ctx_eTD = context.eTD + +local ctx_mn = context.mn +local ctx_mi = context.mi +local ctx_mo = context.mo +local ctx_startimath = context.startimath +local ctx_ignorespaces = context.ignorespaces +local ctx_removeunwantedspaces = context.removeunwantedspaces +local ctx_stopimath = context.stopimath + +local ctx_mmlapplycsymbol = context.mmlapplycsymbol + +local ctx_mathopnolimits = context.mathopnolimits +local ctx_left = context.left +local ctx_right = context.right + +-- an alternative is to remap to private codes, where we can have +-- different properties .. to be done; this will move and become +-- generic; we can then make the private ones active in math mode + +-- todo: handle opening/closing mo's here ... presentation mml is such a mess ... + +-- characters.registerentities() + +local doublebar = utfchar(0x2016) + +local n_replacements = { +-- [" "] = utfchar(0x2002), -- "&textspace;" -> tricky, no &; in mkiv + ["."] = "{.}", + [","] = "{,}", + [" "] = "", +} + +local l_replacements = { -- in main table + ["|"] = "\\mmlleftdelimiter\\vert", + ["{"] = "\\mmlleftdelimiter\\lbrace", + ["("] = "\\mmlleftdelimiter(", + ["["] = "\\mmlleftdelimiter[", + ["<"] = "\\mmlleftdelimiter<", + [doublebar] = "\\mmlleftdelimiter\\Vert", +} +local r_replacements = { -- in main table + ["|"] = "\\mmlrightdelimiter\\vert", + ["}"] = "\\mmlrightdelimiter\\rbrace", + [")"] = "\\mmlrightdelimiter)", + ["]"] = "\\mmlrightdelimiter]", + [">"] = "\\mmlrightdelimiter>", + [doublebar] = "\\mmlrightdelimiter\\Vert", +} + +-- todo: play with asciimode and avoid mmlchar + +-- we can use the proper names now! todo + +local o_replacements = { -- in main table + ["@l"] = "\\mmlleftdelimiter.", + ["@r"] = "\\mmlrightdelimiter.", + ["{"] = "\\mmlleftdelimiter \\lbrace", + ["}"] = "\\mmlrightdelimiter\\rbrace", + ["|"] = "\\mmlleftorrightdelimiter\\vert", + -- ["."] = "\\mmlleftorrightdelimiter.", + ["/"] = "\\mmlleftorrightdelimiter\\solidus", + [doublebar] = "\\mmlleftorrightdelimiter\\Vert", + ["("] = "\\mmlleftdelimiter(", + [")"] = "\\mmlrightdelimiter)", + ["["] = "\\mmlleftdelimiter[", + ["]"] = "\\mmlrightdelimiter]", + -- ["<"] = "\\mmlleftdelimiter<", + -- [">"] = "\\mmlrightdelimiter>", + ["#"] = "\\mmlchar{35}", + ["$"] = "\\mmlchar{36}", -- $ + ["%"] = "\\mmlchar{37}", + ["&"] = "\\mmlchar{38}", + ["^"] = "\\mmlchar{94}{}", -- strange, sometimes luatex math sees the char instead of \char so we + ["_"] = "\\mmlchar{95}{}", -- need the {} ... has to do with active mess feedback into scanner + ["~"] = "\\mmlchar{126}", + [" "] = "", + ["°"] = "^\\circ", -- hack + + -- [utfchar(0xF103C)] = "\\mmlleftdelimiter<", + [utfchar(0xF1026)] = "\\mmlchar{38}", + [utfchar(0x02061)] = "", -- function applicator sometimes shows up in font + -- [utfchar(0xF103E)] = "\\mmlleftdelimiter>", + -- [utfchar(0x000AF)] = '\\mmlchar{"203E}', -- 0x203E +} + +local simpleoperatorremapper = utf.remapper(o_replacements) + +--~ languages.data.labels.functions + +local i_replacements = { + ["sin"] = "\\sin", + ["cos"] = "\\cos", + ["abs"] = "\\abs", + ["arg"] = "\\arg", + ["codomain"] = "\\codomain", + ["curl"] = "\\curl", + ["determinant"] = "\\det", + ["divergence"] = "\\div", + ["domain"] = "\\domain", + ["gcd"] = "\\gcd", + ["grad"] = "\\grad", + ["identity"] = "\\id", + ["image"] = "\\image", + ["lcm"] = "\\lcm", + ["lim"] = "\\lim", + ["max"] = "\\max", + ["median"] = "\\median", + ["min"] = "\\min", + ["mode"] = "\\mode", + ["mod"] = "\\mod", + ["polar"] = "\\Polar", + ["exp"] = "\\exp", + ["ln"] = "\\ln", + ["log"] = "\\log", + ["sin"] = "\\sin", + ["arcsin"] = "\\arcsin", + ["sinh"] = "\\sinh", + ["arcsinh"] = "\\arcsinh", + ["cos"] = "\\cos", + ["arccos"] = "\\arccos", + ["cosh"] = "\\cosh", + ["arccosh"] = "\\arccosh", + ["tan"] = "\\tan", + ["arctan"] = "\\arctan", + ["tanh"] = "\\tanh", + ["arctanh"] = "\\arctanh", + ["cot"] = "\\cot", + ["arccot"] = "\\arccot", + ["coth"] = "\\coth", + ["arccoth"] = "\\arccoth", + ["csc"] = "\\csc", + ["arccsc"] = "\\arccsc", + ["csch"] = "\\csch", + ["arccsch"] = "\\arccsch", + ["sec"] = "\\sec", + ["arcsec"] = "\\arcsec", + ["sech"] = "\\sech", + ["arcsech"] = "\\arcsech", + [" "] = "", + + ["false"] = "{\\mathrm false}", + ["notanumber"] = "{\\mathrm NaN}", + ["otherwise"] = "{\\mathrm otherwise}", + ["true"] = "{\\mathrm true}", + ["declare"] = "{\\mathrm declare}", + ["as"] = "{\\mathrm as}", + +} + +-- we could use a metatable or when accessing fallback on the +-- key but at least we now have an overview + +local csymbols = { + arith1 = { + lcm = "lcm", + big_lcm = "lcm", + gcd = "gcd", + big_gcd = "big_gcd", + plus = "plus", + unary_minus = "minus", + minus = "minus", + times = "times", + divide = "divide", + power = "power", + abs = "abs", + root = "root", + sum = "sum", + product = "product", + }, + fns = { + domain = "domain", + range = "codomain", + image = "image", + identity = "ident", + -- left_inverse = "", + -- right_inverse = "", + inverse = "inverse", + left_compose = "compose", + lambda = "labmda", + }, + linalg1 = { + vectorproduct = "vectorproduct", + scalarproduct = "scalarproduct", + outerproduct = "outerproduct", + transpose = "transpose", + determinant = "determinant", + vector_selector = "selector", + -- matrix_selector = "matrix_selector", + }, + logic1 = { + equivalent = "equivalent", + ["not"] = "not", + ["and"] = "and", + -- big_and = "", + ["xor"] = "xor", + -- big_xor = "", + ["or"] = "or", + -- big-or = "", + implies = "implies", + ["true"] = "true", + ["false"] = "false", + }, + nums1 = { + -- based_integer = "based_integer" + rational = "rational", + inifinity = "infinity", + e = "expenonentiale", + i = "imaginaryi", + pi = "pi", + gamma = "gamma", + NaN = "NaN", + }, + relation1 = { + eq = "eq", + lt = "lt", + gt = "gt", + neq = "neq", + leq = "leq", + geq = "geq", + approx = "approx", + }, + set1 = { + cartesian_product = "cartesianproduct", + empty_set = "emptyset", + map = "map", + size = "card", + -- suchthat = "suchthat", + set = "set", + intersect = "intersect", + -- big_intersect = "", + union = "union", + -- big_union = "", + setdiff = "setdiff", + subset = "subset", + ["in"] = "in", + notin = "notin", + prsubset = "prsubset", + notsubset = "notsubset", + notprsubset = "notprsubset", + }, + veccalc1 = { + divergence = "divergence", + grad = "grad", + curl = "curl", + laplacian = "laplacian", + Laplacian = "laplacian", + }, + calculus1 = { + diff = "diff", + -- nthdiff = "", + partialdiff = "partialdiff", + int = "int", + -- defint = "defint", + }, + integer1 = { + factorof = "factorof", + factorial = "factorial", + quotient = "quotient", + remainder = "rem", + }, + linalg2 = { + vector = "vector", + matrix = "matrix", + matrixrow = "matrixrow", + }, + mathmkeys = { + -- equiv = "", + -- contentequiv = "", + -- contentequiv_strict = "", + }, + rounding1 = { + ceiling = "ceiling", + floor = "floor", + -- trunc = "trunc", + -- round = "round", + }, + setname1 = { + P = "primes", + N = "naturalnumbers", + Z = "integers", + rationals = "rationals", + R = "reals", + complexes = "complexes", + }, + complex1 = { + -- complex_cartesian = "complex_cartesian", -- ci ? + real = "real", + imaginary = "imaginary", + -- complex_polar = "complex_polar", -- ci ? + argument = "arg", + conjugate = "conjugate", + }, + interval1 = { -- not an apply + -- integer_interval = "integer_interval", + interval = "interval", + interval_oo = { tag = "interval", closure = "open" }, + interval_cc = { tag = "interval", closure = "closed" }, + interval_oc = { tag = "interval", closure = "open-closed" }, + interval_co = { tag = "interval", closure = "closed-open" }, + }, + linalg3 = { + -- vector = "vector.column", + -- matrixcolumn = "matrixcolumn", + -- matrix = "matrix.column", + }, + minmax1 = { + min = "min", + -- big_min = "", + max = "max", + -- big_max = "", + }, + piece1 = { + piecewise = "piecewise", + piece = "piece", + otherwise = "otherwise", + }, + error1 = { + -- unhandled_symbol = "", + -- unexpected_symbol = "", + -- unsupported_CD = "", + }, + limit1 = { + -- limit = "limit", + -- both_sides = "both_sides", + -- above = "above", + -- below = "below", + -- null = "null", + tendsto = "tendsto", + }, + list1 = { + -- map = "", + -- suchthat = "", + -- list = "list", + }, + multiset1 = { + size = { tag = "card", type = "multiset" }, + cartesian_product = { tag = "cartesianproduct", type = "multiset" }, + empty_set = { tag = "emptyset", type = "multiset" }, + -- multi_set = { tag = "multiset", type = "multiset" }, + intersect = { tag = "intersect", type = "multiset" }, + -- big_intersect = "", + union = { tag = "union", type = "multiset" }, + -- big_union = "", + setdiff = { tag = "setdiff", type = "multiset" }, + subset = { tag = "subset", type = "multiset" }, + ["in"] = { tag = "in", type = "multiset" }, + notin = { tag = "notin", type = "multiset" }, + prsubset = { tag = "prsubset", type = "multiset" }, + notsubset = { tag = "notsubset", type = "multiset" }, + notprsubset = { tag = "notprsubset", type = "multiset" }, + }, + quant1 = { + forall = "forall", + exists = "exists", + }, + s_dist = { + -- mean = "mean.dist", + -- sdev = "sdev.dist", + -- variance = "variance.dist", + -- moment = "moment.dist", + }, + s_data = { + mean = "mean", + sdev = "sdev", + variance = "vriance", + mode = "mode", + median = "median", + moment = "moment", + }, + transc1 = { + log = "log", + ln = "ln", + exp = "exp", + sin = "sin", + cos = "cos", + tan = "tan", + sec = "sec", + csc = "csc", + cot = "cot", + sinh = "sinh", + cosh = "cosh", + tanh = "tanh", + sech = "sech", + csch = "cscs", + coth = "coth", + arcsin = "arcsin", + arccos = "arccos", + arctan = "arctan", + arcsec = "arcsec", + arcscs = "arccsc", + arccot = "arccot", + arcsinh = "arcsinh", + arccosh = "arccosh", + arctanh = "arstanh", + arcsech = "arcsech", + arccsch = "arccsch", + arccoth = "arccoth", + }, +} + +function xml.functions.remapmmlcsymbol(e) + local at = e.at + local cd = at.cd + if cd then + cd = csymbols[cd] + if cd then + local tx = e.dt[1] + if tx and tx ~= "" then + local tg = cd[tx] + if tg then + at.cd = nil + at.cdbase = nil + e.dt = { } + if type(tg) == "table" then + for k, v in next, tg do + if k == "tag" then + e.tg = v + else + at[k] = v + end + end + else + e.tg = tg + end + end + end + end + end +end + +function xml.functions.remapmmlbind(e) + e.tg = "apply" +end + +function xml.functions.remapopenmath(e) + local tg = e.tg + if tg == "OMOBJ" then + e.tg = "math" + elseif tg == "OMA" then + e.tg = "apply" + elseif tg == "OMB" then + e.tg = "apply" + elseif tg == "OMS" then + local at = e.at + e.tg = "csymbol" + e.dt = { at.name or "unknown" } + at.name = nil + elseif tg == "OMV" then + local at = e.at + e.tg = "ci" + e.dt = { at.name or "unknown" } + at.name = nil + elseif tg == "OMI" then + e.tg = "ci" + end + e.rn = "mml" +end + +function mathml.checked_operator(str) + context(simpleoperatorremapper(str)) +end + +function mathml.stripped(str) + context(strip(str)) +end + +local p_entity = (P("&") * ((1-P(";"))^0) * P(";")) +local p_utfchar = lpegpatterns.utf8character +local p_spacing = lpegpatterns.whitespace^1 + +local p_mn = Cs((p_entity/"" + p_spacing/utfchar(0x205F) + p_utfchar/n_replacements)^0) +local p_strip = Cs((p_entity/"" + p_utfchar )^0) +local p_mi = Cs((p_entity/"" + p_utfchar/i_replacements)^0) + +function mathml.mn(id) + -- maybe at some point we need to interpret the number, but + -- currently we assume an upright font + ctx_mn(lpegmatch(p_mn,xmlcontent(getid(id)) or "")) +end + +function mathml.mo(id) + local str = lpegmatch(p_strip,xmlcontent(getid(id)) or "") + context(simpleoperatorremapper(str) or str) +end + +function mathml.mi(id) + -- we need to strip comments etc .. todo when reading in tree + local e = getid(id) + local str = e.dt + if type(str) == "table" then + local n = #str + if n == 0 then + -- nothing to do + elseif n == 1 then + local first = str[1] + if type(first) == "string" then + -- local str = gsub(first,"&.-;","") -- bah + -- local rep = i_replacements[str] + -- if not rep then + -- rep = gsub(str,".",i_replacements) + -- end + local str = lpegmatch(p_strip,first) + local rep = i_replacements[str] or lpegmatch(p_mi,str) + context(rep) + -- ctx_mi(rep) + else + ctx_xmlflush(id) -- xmlsprint or so + end + else + ctx_xmlflush(id) -- xmlsprint or so + end + else + ctx_xmlflush(id) -- xmlsprint or so + end +end + +function mathml.mfenced(id) -- multiple separators + id = getid(id) + local at = id.at + local left = at.open or "(" + local right = at.close or ")" + local separators = at.separators or "," + local l = l_replacements[left] + local r = r_replacements[right] + ctx_enabledelimiter() + if l then + context(l_replacements[left] or o_replacements[left] or "") + else + context(o_replacements["@l"]) + context(left) + end + ctx_disabledelimiter() + local collected = lxmlfilter(id,"/*") -- check the * + if collected then + local n = #collected + if n == 0 then + -- skip + elseif n == 1 then + xmlsprint(collected[1]) -- to be checked + else + local t = utfsplit(separators,true) + for i=1,n do + xmlsprint(collected[i]) -- to be checked + if i < n then + local m = t[i] or t[#t] or "" + if m == "|" then + m = "\\enabledelimiter\\middle|\\relax\\disabledelimiter" + elseif m == doublebar then + m = "\\enabledelimiter\\middle|\\relax\\disabledelimiter" + elseif m == "{" then + m = "\\{" + elseif m == "}" then + m = "\\}" + end + context(m) + end + end + end + end + ctx_enabledelimiter() + if r then + context(r_replacements[right] or o_replacements[right] or "") + else + context(right) + context(o_replacements["@r"]) + end + ctx_disabledelimiter() +end + +local function flush(e,tag,toggle) + if tag == "none" then + -- if not toggle then + context("{}") -- {} starts a new ^_ set + -- end + elseif toggle then + context("^{") + xmlsprint(e.dt) + context("}{}") -- {} starts a new ^_ set + else + context("_{") + xmlsprint(e.dt) + context("}") + end + return not toggle +end + +function mathml.mmultiscripts(id) + local done, toggle = false, false + for e in lxmlcollected(id,"/*") do + local tag = e.tg + if tag == "mprescripts" then + context("{}") + done = true + elseif done then + toggle = flush(e,tag,toggle) + end + end + local done, toggle = false, false + for e in lxmlcollected(id,"/*") do + local tag = e.tg + if tag == "mprescripts" then + break + elseif done then + toggle = flush(e,tag,toggle) + else + xmlsprint(e) + done = true + end + end +end + +local columnalignments = { + left = "flushleft", + right = "flushright", + center = "middle", +} + +local rowalignments = { + top = "high", + bottom = "low", + center = "lohi", + baseline = "top", + axis = "lohi", +} + +local frametypes = { + none = "off", + solid = "on", + dashed = "on", +} + +-- crazy element ... should be a proper structure instead of such a mess + +function mathml.mcolumn(root) + root = getid(root) + local matrix, numbers = { }, 0 + local function collect(m,e) + local tag = e.tg + if tag == "mi" or tag == "mn" or tag == "mo" or tag == "mtext" then + local str = xmltext(e) + str = lpegmatch(p_strip,str) + for s in utfcharacters(str) do + m[#m+1] = { tag, s } + end + if tag == "mn" then + local n = utflen(str) + if n > numbers then + numbers = n + end + end + elseif tag == "mspace" or tag == "mline" then + local str = e.at.spacing or "" + for s in utfcharacters(str) do + m[#m+1] = { tag, s } + end + -- elseif tag == "mline" then + -- m[#m+1] = { tag, e } + end + end + for e in lxmlcollected(root,"/*") do + local m = { } + matrix[#matrix+1] = m + if e.tg == "mrow" then + -- only one level + for e in lxmlcollected(e,"/*") do + collect(m,e) + end + else + collect(m,e) + end + end + ctx_halign() + ctx_bgroup() + context([[\hss\startimath\alignmark\stopimath\aligntab\startimath\alignmark\stopimath\cr]]) + for i=1,#matrix do + local m = matrix[i] + local mline = true + for j=1,#m do + if m[j][1] ~= "mline" then + mline = false + break + end + end + if mline then + ctx_noalign([[\obeydepth\nointerlineskip]]) + end + for j=1,#m do + local mm = m[j] + local tag, chr = mm[1], mm[2] + if tag == "mline" then + -- This code is under construction ... I need some real motivation + -- to deal with this kind of crap. +--~ local n, p = true, true +--~ for c=1,#matrix do +--~ local mc = matrix[c][j] +--~ if mc then +--~ mc = mc[2] +--~ if type(mc) ~= "string" then +--~ n, p = false, false +--~ break +--~ elseif find(mc,"^[%d ]$") then -- rangecheck is faster +--~ -- digit +--~ elseif not find(mc,"^[%.%,]$") then -- rangecheck is faster +--~ -- punctuation +--~ else +--~ n = false +--~ break +--~ end +--~ end +--~ end +--~ if n then +--~ chr = "\\mmlmcolumndigitrule" +--~ elseif p then +--~ chr = "\\mmlmcolumnpunctuationrule" +--~ else +--~ chr = "\\mmlmcolumnsymbolrule" -- should be widest char +--~ end + chr = "\\hrulefill" + elseif tag == "mspace" then + chr = "\\mmlmcolumndigitspace" -- utfchar(0x2007) + end + if j == numbers + 1 then + context("\\aligntab") + end + local nchr = n_replacements[chr] + context(nchr or chr) + end + ctx_crcr() + end + ctx_egroup() +end + +local spacesplitter = lpeg.tsplitat(" ") + +function mathml.mtable(root) + -- todo: align, rowspacing, columnspacing, rowlines, columnlines + root = getid(root) + local at = root.at + local rowalign = at.rowalign + local columnalign = at.columnalign + local frame = at.frame + local rowaligns = rowalign and lpegmatch(spacesplitter,rowalign) + local columnaligns = columnalign and lpegmatch(spacesplitter,columnalign) + local frames = frame and lpegmatch(spacesplitter,frame) + local framespacing = at.framespacing or "0pt" + local framespacing = at.framespacing or "-\\ruledlinewidth" -- make this an option + + ctx_bTABLE { frame = frametypes[frame or "none"] or "off", offset = framespacing, background = "" } -- todo: use xtables and definextable + for e in lxmlcollected(root,"/(mml:mtr|mml:mlabeledtr)") do + ctx_bTR() + local at = e.at + local col = 0 + local rfr = at.frame or (frames and frames [#frames]) + local rra = at.rowalign or (rowaligns and rowaligns [#rowaligns]) + local rca = at.columnalign or (columnaligns and columnaligns[#columnaligns]) + local ignorelabel = e.tg == "mlabeledtr" + for e in lxmlcollected(e,"/mml:mtd") do -- nested we can use xml.collected + col = col + 1 + if ignorelabel and col == 1 then + -- get rid of label, should happen at the document level + else + local at = e.at + local rowspan = at.rowspan or 1 + local columnspan = at.columnspan or 1 + local cra = rowalignments [at.rowalign or (rowaligns and rowaligns [col]) or rra or "center"] or "lohi" + local cca = columnalignments[at.columnalign or (columnaligns and columnaligns[col]) or rca or "center"] or "middle" + local cfr = frametypes [at.frame or (frames and frames [col]) or rfr or "none" ] or "off" + ctx_bTD { align = formatters["{%s,%s}"](cra,cca), frame = cfr, nx = columnspan, ny = rowspan } + if xmlempty(e,".") then + -- nothing, else hsize max + else + ctx_startimath() + -- ctx_ignorespaces() + xmlcprint(e) + -- ctx_removeunwantedspaces() + ctx_stopimath() + end + ctx_eTD() + end + end + -- if e.tg == "mlabeledtr" then + -- ctx_bTD() + -- xmlcprint(xml.first(e,"/!mml:mtd")) + -- ctx_eTD() + -- end + ctx_eTR() + end + ctx_eTABLE() +end + +function mathml.csymbol(root) + root = getid(root) + local at = root.at + local encoding = at.encoding or "" + local hash = url.hashed(lower(at.definitionUrl or "")) + local full = hash.original or "" + local base = hash.path or "" + local text = strip(xmltext(root) or "") + ctx_mmlapplycsymbol(full,base,encoding,text) +end + +local p = lpeg.Cs(((1-lpegpatterns.whitespace)^1 / "mml:enclose:%0" + (lpegpatterns.whitespace^1)/",")^1) + +function mathml.menclosepattern(root) + root = getid(root) + local a = root.at.notation + if a and a ~= "" then + context(lpegmatch(p,a)) + end +end + +function xml.is_element(e,name) + return type(e) == "table" and (not name or e.tg == name) +end + +function mathml.cpolar_a(root) + root = getid(root) + local dt = root.dt + ctx_mathopnolimits("Polar") + ctx_left(false,"(") + for k=1,#dt do + local dk = dt[k] + if xml.is_element(dk,"sep") then + context(",") + else + xmlsprint(dk) + end + end + ctx_right(false,")") +end + +-- crap .. maybe in char-def a mathml overload + +local mathmleq = { + [utfchar(0x00AF)] = utfchar(0x203E), +} + +function mathml.extensible(chr) + context(mathmleq[chr] or chr) +end + +-- + +local function install(name,action) + interfaces.implement { + name = name, + public = true, + -- protected = true, -- some definitely not ! + arguments = "argument", + actions = action, + } +end + +install("mathml_mi", mathml.mi) +install("mathml_mo", mathml.mo) +install("mathml_mn", mathml.mn) +install("mathml_mfenced", mathml.mfenced) +install("mathml_mmultiscripts", mathml.mmultiscripts) +install("mathml_menclosepattern", mathml.menclosepattern) +install("mathml_mtable", mathml.mtable) +install("mathml_mcolumn", mathml.mcolumn) +install("mathml_extensible", mathml.extensible) + +install("mathml_csymbol", mathml.csymbol) +install("mathml_cpolar_a", mathml.cpolar_a) + +install("mathml_cpolar_extensible", mathml.cpolar_extensible) diff --git a/tex/context/modules/mkxl/x-mathml.mkxl b/tex/context/modules/mkxl/x-mathml.mkxl new file mode 100644 index 000000000..fbfc17883 --- /dev/null +++ b/tex/context/modules/mkxl/x-mathml.mkxl @@ -0,0 +1,2448 @@ +%D \module +%D [ file=x-mathml, +%D version=2008.05.29, (evolved from pre 2000 code) +%D title=\CONTEXT\ XML Modules, +%D subtitle=\MATHML, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +% \xmlfilter{#1}{/*/name()} -> \xmltag + +% This implementation looks like a hack ... this is because we deal with all weird +% cases we ran into, including abuse that was supposed to render ok (even if it +% didn't in other renderers) .. it was simply expected to work that way. It is also +% the product of stepwise adaptation to what we run into. And that in turn is often +% determined by the tools that were used to produce the \XML. Even worse is the +% cycling between coding that happens in projects: from content\ \MATHML\ to +% OpenMath to asciimath to presentation \MATHML\ to \unknown\ which all depends on +% what tools are available to render in a browser (where first \MATHML\ was hardly +% supported, then became accepted, then was taken over by mathjax, then merged with +% other input methods and who knopws what comes next in these days where technologies +% are shortlived and the next best thing is already waiting around the corner. +% +% So, consider this module to be under constant construction and clean up. We still +% use a funny mix of xml, tex and lua. I could rewrite the lot but it also shows +% how context evolves. I might end up with a lua-only implementation some day, but +% I must find a real good reason to spend time on it as so far it never paid back. +% As far as I can tell, publishers have never shown much (real) interest anyway or +% at least I haven't met one who cared to invest in it. If they run into \MATHML\ +% they just expect it to be supported. +% +% This variant is adapted to \LMTX\ and might evolve with upcoming variations of +% the standard. As with \SVG\ and probably other \XML\ definitions that target a +% specific domain, \MATHML\ is now more just something for browsers and \HTML\ +% usage (although support fluctuates). It's getting less generic (or at least we +% see no more structural elements showing up) and with \CSS\ becoming the +% recomended way to control local optimizations it indeed looks like only browsers +% are the target, unless we can just ignore all that. Limitations of renderers, +% specific usage, application determined \XML\ ... where will it end. All we can do +% is follow and try to keep up, but maybe the more web it becomes, the less \TEX\ +% users need to care (read: can stick to \TEX\ coding). +% +% See the \MKII\ and \MKIV\ files for a history and the hacks we had to use in +% the past. + +\writestatus{loading}{ConTeXt XML Macros / MathML Renderer} + +\unprotect + +\usemodule[x][calcmath] +%usemodule[x][asciimath] + +\startmodule [mathml] + +\registerctxluafile{x-mathml}{autosuffix} + +\setupxml[\c!entities=\v!yes] % load big entities table + +\def\ctxmodulemathml#1{\ctxlua{moduledata.mathml.#1}} + +\startxmlsetups xml:mml:define + \xmlsetsetup{#1} {(formula|subformula)} {mml:formula} + \xmlfilter {#1} {omt:*/function(remapopenmath)} + \xmlfilter {#1} {mml:bind/function(remapmmlbind)} + \xmlfilter {#1} {mml:csymbol/function(remapmmlcsymbol)} + \xmlsetsetup{#1} {mml:*} {mml:*} + \xmlsetsetup{#1} {mml:apply/mml:apply/mml:inverse/../..} {mml:apply:inverse} + \xmlstrip {#1} {(mml:mi|mml:mo|mml:mn|mml:csymbol)} +\stopxmlsetups + +\xmlregisterns{omt}{openmath} +\xmlregisterns{mml}{mathml} + +\xmlregistersetup{xml:mml:define} + +\xmlmapvalue {mml:math:mode} {display} {\displaymathematics} % we had this already +\xmlmapvalue {mml:math:mode} {inline} {\inlinemathematics } + +\xmlmapvalue {mml:math:display} {block} {\displaymathematics} % before this showed up +\xmlmapvalue {mml:math:display} {inline} {\inlinemathematics } + +\xmlmapvalue {mml:math:dir} {ltr} {\setfalse\c_math_right_to_left\math_basics_synchronize_direction} +\xmlmapvalue {mml:math:dir} {rtl} {\settrue \c_math_right_to_left\math_basics_synchronize_direction} + +\edef\mmlconstantone {1} +\edef\mmlconstantfalse{false} + +\startxmlsetups mml:math + \begingroup + \enableautofences + \enableautofencemode + \xmlval {mml:math:dir} {\xmlatt{#1}{dir}} {} + \xmlval {mml:math:display} {\xmlatt{#1}{display}} { + \xmlval {mml:math:mode} {\xmlatt{#1}{mode}} { + \automathematics + } + } + { + \xmlflush{#1} + } + \endgroup +\stopxmlsetups + +\startxmlsetups mml:imath + \inlinemathematics { + \enableautofences + \enableautofencemode + \xmlflush{#1} + } +\stopxmlsetups + +\startxmlsetups mml:dmath + \displaymathematics { + \enableautofences + \enableautofencemode + \xmlflush{#1} + } +\stopxmlsetups + +%D First we define some general formula elements. + +\startxmlsetups mml:formula + \edef\mmlformulaid {\xmlatt{#1}{id}} + \edef\mmlformulalabel {\xmlatt{#1}{label}\mmlformulaid} + \edef\mmlformulasublabel{\xmlatt{#1}{sublabel}\mmlformulaid} + \doifsomething\mmlformulalabel{\placeformula[\mmlformulalabel]{\mmlformulasublabel}} + \startformula + \xmlfirst{#1}{/mml:math} + \stopformula +\stopxmlsetups + + +\setfalse\mmlignoredelimiter % alternatively we could turn it on/off inside the start/stop and ignore \left\right\middle otherwise + +\let\mmlleftdelimiter \autofenceopen +\let\mmlmiddledelimiter \autofencemiddle +\let\mmlrightdelimiter \autofenceclose +\let\mmlleftorrightdelimiter\autofenceboth + +\def\mmlchar#1{\char#1 } % used in lua code + +%D The rendering macros: + +\def\MMLrm{\mr} + +\def\MMLseparator#1{\removeunwantedspaces{#1}\ignorespaces} % nils space after separator +\def\MMLseparator#1{,} % todo, for europe we need to block the space + +%D Since I only had the draft of MathML 2 and later 3 as example of rendering, there +%D are probably a lot of omissions and misinterpretations. At least I learned some +%D bits and pieces of math rendering. +%D +%D The main complications were not so much the math, but to find the most efficient +%D way to handle elements without spacing beging messed up. The first implementation +%D was aimed at getting reasonable output, this second implementation is already +%D better in terms of handling nesting, and I will definitely need a third one that +%D has more efficient and less ugly code. +%D +%D The \TEX\ part is not that complicated and once the preprocessor was okay, the +%D rest way just a lot of keying and testing. It all comes down to gobbling, +%D redefining, and not so much to parsing. +%D +%D The second implementation expanded the whole math sequence into an internal \TEX\ +%D representation. This is a rather clean and fast process. Filtering and testing +%D takes place by redefining the internal representation macros. +%D +%D The third implementation may look a bit more messy in some respects. This is +%D because in \TEX\ it's not that trivial to implement a tree handler. We use a +%D stack for the \type {apply} element and other sequential content. Occasionally we +%D need to peek into child elements which involves messy code. This implementation +%D is closer to the normal \XML\ handling in \CONTEXT. +%D +%D This fourth variant just improves on the third. It uses some tricks available in +%D \LUAMETATEX\ where we have extended the math machinery. + +%D We start with the parent elements and the option handler. + +\protected\def\xmlmathmldirective#1{\dosetvalue{MML#1}} + +\xmlinstalldirective{mathml}{xmlmathmldirective} + +%D In the styles, options can be set with: + +\protected\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[MML#1]} % no @@ because passed to lua + +%D We will apply inner math to all bits and pieces made up by an \type {apply}. + +\def\MMLmathinner + {\ifinner + \expandafter\firstofoneargument + \else + \expandafter\mathinner + \fi} + +%D Auxiliary MathML macros: (to be generalized) + +\def\mmlfirst #1{\xmlelement{#1}{1}} % we can move these inline if needed +\def\mmlsecond #1{\xmlelement{#1}{2}} +\def\mmlthird #1{\xmlelement{#1}{3}} +\def\mmlprelast#1{\xmlelement{#1}{-2}} +\def\mmllast #1{\xmlelement{#1}{-1}} + +\starttexdefinition doifelsemmlfunction #1 + \xmldoifelse {#1} {/mml:fn} { + \firstoftwoarguments + } { + \xmldoifelse {#1} {/mml:apply/mml:fn} { + \firstoftwoarguments + } { + \xmldoifelse {#1} {/mml:ci[@type=='fn']} { + \firstoftwoarguments + } { + \secondoftwoarguments + } + } + } +\stoptexdefinition + +%D A couple of lists: + +\convertargument + mml:times|mml:divide|mml:power|% + mml:lt|mml:gt|mml:eq|mml:leq|mml:geq|% + mml:in|mml:inverse|% + mml:fn|% + mml:floor|mml:ceiling|% + mml:mean|% + mml:selector|% + mml:abs|mml:int|mml:limit|mml:sum|mml:product|% + mml:outerproduct|mml:innerproduct|mml:scalarproduct% +\to \MMLcmainresetlist + +\convertargument + mml:sin|mml:arcsin|mml:sinh|mml:arcsinh|% + mml:cos|mml:arccos|mml:cosh|mml:arccosh|% + mml:tan|mml:arctan|mml:tanh|mml:arctanh|% + mml:cot|mml:arccot|mml:coth|mml:arccoth|% + mml:csc|mml:arccsc|mml:csch|mml:arccsch|% + mml:sec|mml:arcsec|mml:sech|mml:arcsech|% + mml:ln|mml:exp|mml:log|% + mml:abs|mml:int|mml:limit|mml:sum|mml:product|% + mml:fn% +\to \MMLcfunctionlist + +\convertargument + mml:sin|mml:arcsin|mml:sinh|mml:arcsinh|% + mml:cos|mml:arccos|mml:cosh|mml:arccosh|% + mml:tan|mml:arctan|mml:tanh|mml:arctanh|% + mml:cot|mml:arccot|mml:coth|mml:arccoth|% + mml:csc|mml:arccsc|mml:csch|mml:arccsch|% + mml:sec|mml:arcsec|mml:sech|mml:arcsech|% + mml:ln|mml:exp|mml:log|% + mml:abs% +\to \MMLcpurefunctionlist + +\convertargument + mml:diff|mml:partialdiff|mml:root% +\to \MMLcconstructlist + +%D We use inner and grouping (begin/end and no b/e) else we get problems with +%D 1/2(1+2) and alike. The problem with apply is that we need to take care of +%D several situations, like: +%D +%D \starttyping +%D <.../> ... +%D ... +%D ... +%D ... +%D \stoptyping +%D +%D Because we translated version 2 of this renderer into version 3 the following +%D definitions may be sub optimal or more complex than actually needed. + +%D We will more more to lua ... + +% simple version + +\newcount\@MMLlevel \def\MMLcreset{\@MMLlevel\zerocount} + +\let\MMLctempresetlist\empty \def\setMMLcreset{\edef\MMLctempresetlist} + +\let\MMLdoL\donothing +\let\MMLdoR\donothing + +\newcount\mmlapplydepth \def\MMLcreset{\mmlapplydepth\zerocount} + +\startxmlsetups mml:apply + \MMLmathinner { + % \xmldoif {#1} {/(\MMLcmainresetlist\string|\MMLctempresetlist)} { + % \MMLcreset + % } + \edef\mmlapplyopentoken {\xmlatt{#1}{open}} + \edef\mmlapplyclosetoken{\xmlatt{#1}{close}} + \ifcase\mmlapplydepth + \orelse\ifempty\mmlapplyopentoken + \def\mmlapplyopentoken {(} + \def\mmlapplyclosetoken{)} + \fi + \advance\mmlapplydepth\plusone + \begingroup + \ifempty\mmlapplyopentoken + \let\MMLdoL\donothing + \let\MMLdoR\donothing + \else + \edef\MMLdoL{\noexpand\left \mmlapplyopentoken } + \edef\MMLdoR{\noexpand\right\mmlapplyclosetoken} + \fi + \let\MMLctempresetlist\empty + \xmldoifelse {#1} {/mml:apply} { +% % ... .. +% \xmldoifelse {#1} {/mml:apply(mml:plus|mml:minus)} {% [a] +% % yet incomplete and rather untested +% % x + } {% [b] +% \MMLcreset + } +% \MMLdoL +% \mmlfirst{#1} +% \ifconditional\somepostponedMMLactions +% \postponedMMLactions +% \else +% \left(\MMLcreset\mmlsecond{#1}\right) +% \fi +% \MMLdoR +% } { + \edef\mmlapplyaction{\xmlfilter{#1}{/*/tag()}} + \doifelsesetups {mml:apply:mml:\mmlapplyaction} { + \xmlsetup{#1}{mml:apply:mml:\mmlapplyaction} + } { +% \MMLdoL + \xmlsetup{#1}{mml:\mmlapplyaction} +% \MMLdoR + } +% } + \endgroup + \advance\mmlapplydepth\minusone + } +\stopxmlsetups + +\startxmlsetups mml:apply:mml:apply + \xmlflush{#1} + \xmlall{#1}{../[position()>1]} +\stopxmlsetups + +\startxmlsetups mml:apply:mml:fn + \xmldoifelse {#1} {/mml:fn/mml:ci} { + \edef\mmlfnci{\xmlstripped{#1}{/mml:fn/mml:ci}} + \doifelsesetups{mmc:fn:\mmlfnci} { + \xmlsetup{#1}{mmc:fn:\mmlfnci} + } { + \MMLcreset + \MMLdoL + \mmlfirst{#1} + \ifnum\xmlcount{#1}{/*}>\plusone + \negthinspace % not enough + \left(\MMLcreset\xmlconcatrange{#1}{/*}{2}{}{\MMLseparator,}\right) + \fi + \MMLdoR + } + } { + \MMLcreset + \MMLdoL + \xmlall{#1}{/*} + \MMLdoR + } +\stopxmlsetups + +\startxmlsetups mml:apply:mml:csymbol + \xmlsetup{#1}{mml:csymbol}% \MMLdoL/MMLdoR to be handled in plugin +\stopxmlsetups + +\startxmlsetups mml:apply:mml:ci + \xmlfirst{#1}{/mml:ci} + \ifnum\xmlcount{#1}{/*}>\plusone + \left(\MMLcreset\xmlconcatrange{#1}{/*}{2}{}{\MMLseparator,}\right) + \fi +\stopxmlsetups + +% reln + +\startxmlsetups mml:reln + \writestatus{XML}{MathML element "reln" is obsolete} +\stopxmlsetups + +% fn + +% plusminus ± + +\startxmlsetups mmc:fn:\utfchar{"00B1} + \MMLdoL + \xmlconcat{#1}{/[position()>1]}{\utfchar{"00B1}} + \MMLdoR +\stopxmlsetups + +% minusplus + +\startxmlsetups mmc:fn:\utfchar{"2213} + \MMLdoL + \xmlconcat{#1}{/[position()>1]}{\utfchar{"2213}} + \MMLdoR +\stopxmlsetups + +\startxmlsetups mmc:fn + \begingroup + \edef\mmlnoffn{\xmlcount{#1}{/*}} + \ifnum\mmlnoffn>\plustwo + \def\MMCfnleft {\left(} + \def\MMCfnright{\right)} + \else + \let\MMCfnleft \relax + \let\MMCfnright\relax + \fi + \xmldoifelse {#1} {/mml:ci} { + \edef\mmlfnci{\xmltext{#1}{/mml:ci}} + \doifelsesetups{mmc:fn:\mmlfnci} { + \xmlsetup{#1}{mmc:fn:\mmlfnci} + } { + \MMLcreset + \mmlfirst{#1} + } + } { + \xmldoifelse {#1} {/mml:apply} { + \xmldoifelse {#1} {/(mml:plus\string|mml:minus)} { + \left(\mmlfirst{#1}\right) + } { + \mmlfirst{#1} + } + \ifnum\mmlnoffn>\plusone + \left(\xmlall{#1}{/!mml:apply}\right) + \fi + } { + \MMLcreset + \negthinspace + \MMCfnleft + \ifnum\mmlnoffn=\plustwo,\fi + \xmlconcat{#1}{/*}{2}{}{\MMLseparator,} + \MMCfnright + } + } + \endgroup +\stopxmlsetups + +\startxmlsetups mmc:fn:apply % where used? + \xmldoifelse {#1} {/mml:ci} { + \edef\mmlfnci{\xmltext{#1}{/mml:ci}} + \doifelsesetups{mmc:fn:\mmlfnci} { + \xmlsetup{#1}{mmc:fn:\mmlfnci} + } { + \MMLcreset + \mmlfirst{#1} + \ifnum\xmlcount{#1}{/*}>\plusone + \negthinspace + \left(\MMLcreset\xmlconcat{#1}{2}{}{\MMLseparator,}\right) + \fi + } + } { + \endgroup + \MMLcreset + \mmlfirst{#1} + } +\stopxmlsetups + +%D The next definition provide a kind of plug-in mechanism (see the open math +%D extension module). + +% http://www.publishers.com/somename +% +% called at the lua end + +\starttexdefinition mmlapplycsymbol #1#2#3#4 + % #1=full url, #2=name, #3=encoding, #4=text + \doifelse {#3} {text} { + \text{#4} + } { + \doifelsesetups {mml:csymbol:#1} { + % full url + \fastsetup{mml:csymbol:#1} + } { + % somename (fallback) + \doifelsesetups {mml:csymbol:#2} { + \fastsetup{mml:csymbol:#2} + } { + \xmlval{mmc:cs}{#3}{}% todo + } + } + } +\stoptexdefinition + +\startxmlsetups mml:csymbol + \mathml_csymbol{#1} +\stopxmlsetups + +\startxmlsetups mml:csymbol:cdots + \cdots +\stopxmlsetups + +% \startxmlsetups mml:csymbol: \stopxmlsetups + +%D Alternative b will convert periods into comma's: + +\setupMMLappearance[cn] [\c!alternative=\v!a] +\setupMMLappearance[polar] [\c!alternative=\v!a] % a|b|c +\setupMMLappearance[float] [\c!symbol=\v!no] % \v!yes|dot +\setupMMLappearance[enotation][\c!symbol=\v!no] % \v!yes|dot +\setupMMLappearance[base] [\c!symbol=\v!numbers] % digits|characters|text|no + +\startxmlsetups mml:cs \xmlcommand{#1}{/}{mml:cs:\xmlattdef{#1}{type}{default}} \stopxmlsetups +\startxmlsetups mml:ci \xmlcommand{#1}{/}{mml:ci:\xmlattdef{#1}{type}{default}} \stopxmlsetups +\startxmlsetups mml:cn \xmlcommand{#1}{/}{mml:cn:\xmlattdef{#1}{type}{default}} \stopxmlsetups + +% helpers cn / todo: \mn{...} + +\startxmlsetups mml:cn:default + \mathopnolimits{\xmlflush{#1}} +\stopxmlsetups + +% helpers ci + +\startxmlsetups mml:ci:default + \xmlflush{#1} +\stopxmlsetups + +\startxmlsetups mml:ci:set + {\blackboard{\xmlflush{#1}}} % todo +\stopxmlsetups + +\startxmlsetups mml:ci:vector + \overrightarrow{\xmlflush{#1}} +\stopxmlsetups + +\startxmlsetups mml:ci:matrix + {\bi\xmlflush{#1}} +\stopxmlsetups + +\startxmlsetups mml:ci:function + \xmlflush{#1}% \negthinspace +\stopxmlsetups + +\startxmlsetups mml:ci:fn + \xmlsetup{#1}{mml:ci:function} +\stopxmlsetups + +\startxmlsetups mml:ci:complex-cartesian + \xmlsetup{#1}{mml:cn:complex} +\stopxmlsetups + +\startxmlsetups mml:ci:complex + \xmlsetup{#1}{mml:cn:complex} +\stopxmlsetups + +\startxmlsetups mml:ci:complex-polar + \xmlsetup{#1}{mml:cn:polar} +\stopxmlsetups + +\startxmlsetups mml:ci:polar + \xmlsetup{#1}{mml:cn:polar} +\stopxmlsetups + +% helpers ci + +\startxmlsetups mml:cn:default + \xmlflush{#1} +\stopxmlsetups + +\startxmlsetups mml:cn:integer + \edef\mmlintegerbase{\xmlattdef{#1}{base}{}} + \ifx\mmlintegerbase\empty + \xmlflush{#1} + \else + \doifelse \MMLbasesymbol \v!no { + \MMLcCNbasedata{\xmlflush{#1}} + } { + \MMLcCNbasedata{\xmlflush{#1}}\normalsubscript{ + \hbox {\startimath + \mr + \scriptscriptstyle + \processaction + [\MMLbasesymbol] + [\v!characters=>\MMLcCNbasestring BODH, + \v!text=>\MMLcCNbasestring{BIN}{OCT}{DEC}{HEX}, + \s!unknown=>\mmlintegerbase] + \stopimath} + } + } + \fi +\stopxmlsetups + +\def\MMLcCNbasedata#1% + {\ifnum\mmlintegerbase>10 \relax{\mr#1}\else#1\fi} + +\def\MMLcCNbasestring#1#2#3#4% + {\ifnum\mmlintegerbase= 2 #1\orelse + \ifnum\mmlintegerbase= 8 #2\orelse + \ifnum\mmlintegerbase=10 #3\orelse + \ifnum\mmlintegerbase=16 #4\else + \mmlintegerbase \fi} + +\startxmlsetups mml:cn:polar + \xmlsetup{#1}{mml:cn:polar:\MMLpolaralternative} +\stopxmlsetups + +\startxmlsetups mml:cn:polar:a + \mathml_cpolar_a{#1} +\stopxmlsetups + +\startxmlsetups mml:cn:polar:b + {\mr e}\normalsuperscript{\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\thinspace{\mr i}} +\stopxmlsetups + +\startxmlsetups mml:cn:polar:c + \exp\left(\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\thinspace{\mr i}\right) +\stopxmlsetups + +\startxmlsetups mml:cn:complex-polar + \xmlsetup{#1}{mml:cn:polar} +\stopxmlsetups + +\startxmlsetups mml:cn:complex % todo ( ) + \left(\xmlsnippet{#1}{1} + \xmlsnippet{#1}{3}\thinspace{\mr i}\right) +\stopxmlsetups + +\startxmlsetups mml:cn:complex-cartesian + \xmlsetup{#1}{mml:cn:complex} +\stopxmlsetups + +\startxmlsetups mml:cn:float + \doifelse \MMLfloatsymbol \v!no { + % make sure that e shows up ok + \mathopnolimits{\xmlflush{#1}} + } { + % we should ignore \entities ! + \edef\mmlfloatstring{\xmlflush{#1}} + \splitstring\mmlfloatstring\at e\to\first\and\last + \ifempty\first + \mmlfloatstring + \orelse\ifempty\last + \mmlfloatstring + \else + \first + \doifelse \MMLfloatsymbol {dot} \cdot \times + 10\normalsuperscript{\last} + \fi + } +\stopxmlsetups + +\startxmlsetups mml:cn:real + \xmlsetup{#1}{mml:cn:float} +\stopxmlsetups + +\startxmlsetups mml:cn:e-notation + \doifelse \MMLenotationsymbol \v!no { + \xmlsnippet{#1}{1} + \unskip\mathopnolimits{e}\ignorespaces + \xmlsnippet{#1}{3} + } { + \xmlsnippet{#1}{1} + \doifelse \MMLenotationsymbol {dot} \cdot + \times10\normalsuperscript{\xmlsnippet{#1}{3}} + } +\stopxmlsetups + +\startxmlsetups mml:cn:logical + \mathopnolimits{\xmlflush{#1}} +\stopxmlsetups + +\startxmlsetups mml:cn:rational + \xmldoifelse {#1} {/mml:sep} { + \mmlfrac + {\xmlsnippet{#1}{1}} + {\xmlsnippet{#1}{3}} + } { + \xmlflush{#1} + } +\stopxmlsetups + +% interval + +\setupMMLappearance[interval][\c!alternative=\v!a,\c!separator={,}] + +% when empty element, then it's an apply + +\startxmlsetups mml:interval + \doifelse {\xmltag{#1}} {apply} { + % #1 == apply + \let\mmlintervalfirst \mmlsecond + \let\mmlintervalsecond\mmlthird + \xmlsetup{#1}{mml:interval:\xmlattributedef{#1}{/mml:interval}{closure}{closed}} + } { + % #1 == interval + \let\mmlintervalfirst \mmlfirst + \let\mmlintervalsecond\mmlsecond + \xmlsetup{#1}{mml:interval:\xmlattdef{#1}{closure}{closed}} + } +\stopxmlsetups + +\startxmlsetups mml:interval:closed + \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right] +\stopxmlsetups + +\startxmlsetups mml:interval:open-closed + \doifelse \MMLintervalalternative \v!b { + \left<\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right] + } { + \left(\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right] + } +\stopxmlsetups + +\startxmlsetups mml:interval:closed-open + \doifelse \MMLintervalalternative \v!b { + \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right> + } { + \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right) + } +\stopxmlsetups + +\startxmlsetups mml:interval:open + \doifelse \MMLintervalalternative \v!b { + \left<\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right> + } { + \left(\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right) + } +\stopxmlsetups + +% inverse + +\setfalse\xmlinversefunction + +\startxmlsetups mml:apply:inverse + \settrue\xmlinversefunction + \xmlsetup{#1}{mml:\xmlfilter{#1}{/mml:apply/*[2]/tag()}} +\stopxmlsetups + +% condition + +% maybe a fast \xmlnonfirst + +% instead of the following we could do \xmlcontent{#1}{/mml:bvar} etc + +\startxmlsetups mml:bvar \xmlflush{#1} \stopxmlsetups +\startxmlsetups mml:lowlimit \xmlflush{#1} \stopxmlsetups +\startxmlsetups mml:uplimit \xmlflush{#1} \stopxmlsetups +\startxmlsetups mml:degree \xmlflush{#1} \stopxmlsetups +\startxmlsetups mml:logbase \xmlflush{#1} \stopxmlsetups +\startxmlsetups mml:fn \xmlflush{#1} \stopxmlsetups + +\startxmlsetups mml:condition +% \xmldoif {#1} {/mml:bvar} { +% \xmlfirst{#1}{/mml:bvar}\mid +% } + \xmlall{#1}{/!(mml:condition\string|mml:bvar)} +\stopxmlsetups + +% declare + +\setupMMLappearance[declare][\c!state=\v!start] + +\startxmlsetups mml:declare + \doif \MMLdeclarestate \v!start { + \mathopnolimits{declare} + \mmlfirst{#1} + \ifnum\xmlcount{#1}{/*}>\plusone + \thickspace + \mathopnolimits{as} + \thickspace + \fi + \mmlsecond{#1} + } +\stopxmlsetups + +% lambda + +\setupMMLappearance[lambda][\c!alternative=b] + +\startxmlsetups mml:lambda + \begingroup + \doifelse \MMLlambdaalternative \v!a { + \lambda\left(\xmlconcat{#1}{/!mml:lambda}{\MMLseparator,}\right) + } { + \ifnum\xmlcount{#1}{/mml:bvar}>\plusone + \left(\xmlconcat{#1}{/mml:bvar}{\MMLseparator,}\right) + \else + \xmlfirst{#1}{/mml:bvar} + \fi + \mapsto + \MMLcreset + \xmlall{#1}{/!(mml:bvar|mml:lambda)} + } + \endgroup +\stopxmlsetups + +% compose + +\startxmlsetups mml:compose + \begingroup + \MMLcreset +% \let\MMLcCIfunction\firstofoneargument % brrr ? ? ? + \doifelsemmlfunction {#1} { + \left(\xmlconcat{#1}{/!mml:compose}{\circ}\right) + } { + \xmlconcat{#1}{/!mml:compose}{\circ} + } + \endgroup +\stopxmlsetups + +\startxmlsetups mml:image + \mathopnolimits{image} \left( {\mr\xmlfilter{#1}{/!mml:image/tag()}} \right) +\stopxmlsetups + +\setupMMLappearance[piece][\c!separator=] + +\startxmlsetups mml:piecewise + \processaction + [\MMLpieceseparator] + [ \v!yes=>\def\theMMLpieceseparator{,&}, + \v!no=>\def\theMMLpieceseparator{&}, + \s!default=>\def\theMMLpieceseparator{&}, + \s!unknown=>\def\theMMLpieceseparator{\,\,\hbox{\MMLpieceseparator}\,\,}] + \cases{\xmlflush{#1}} +\stopxmlsetups + +\startxmlsetups mml:piece + \mmlfirst{#1}\theMMLpieceseparator\mathematics{\mmlsecond{#1}}\crcr +\stopxmlsetups + +\startxmlsetups mml:otherwise +% \xmlflush{#1}\MMLcPIECEseparator&{\mr otherwise}\crcr + \xmlflush{#1}&{\mr otherwise}\crcr +\stopxmlsetups + +% end of piece + +\startxmlsetups mml:quotient + \lfloor\mmlsecond{#1}/\mmlthird{#1}\rfloor +\stopxmlsetups + +\startxmlsetups mml:factorial + \xmlall{#1}{/!factorial}! +\stopxmlsetups + +\setupMMLappearance [divide] [\c!level=\!!maxcard,\c!alternative=\v!a] + +\newcount\mmldividelevel + +\startxmlsetups mml:divide + \advance\mmldividelevel\plusone + \doifelse \MMLdividealternative \v!b { + \mmlsecond{#1}/\mmlthird{#1} + } { + \ifnum \mmldividelevel > \MMLdividelevel \relax % threshold + \mmlsecond{#1}/\mmlthird{#1} + \else + \MMLcreset + \mmlfrac{\MMLcreset\mmlsecond{#1}}{\MMLcreset\mmlthird{#1}} + \fi + } + \advance\mmldividelevel\minusone +\stopxmlsetups + +% min max + +\startxmlsetups mml:min \mathopnolimits{min} \xmlsetup{#1}{mml:minmax} \stopxmlsetups +\startxmlsetups mml:max \mathopnolimits{max} \xmlsetup{#1}{mml:minmax} \stopxmlsetups + +\startxmlsetups mml:minmax + \xmldoif {#1} {/mml:bvar} { + {}\normalsubscript{\xmlfirst{#1}{/mml:bvar}} + } + \left\{ + \xmlconcat{#1}{/!(mml:bvar\string|mml:max\string|mml:min)}{\MMLseparator,} + \right\} +\stopxmlsetups + +% minus plus + +\setupMMLappearance [plus] [\c!alternative=\v!a] % b = no sign -> 3 1/4 +\setupMMLappearance [sign] [\c!reduction=\v!yes] + +% alternative b -> geen sign + +% branch needed, else (a-b) + (c-d) goes wrong +% reset check in case of (-x) + 37 +% reset check in case of (-x) + 37 + +\newcount\mmlpluscounter + +\startxmlsetups mml:plus + \doifelse \MMLsignreduction \v!yes { + \MMLdoL + \xmlsetup{#1}{mml:plus:reset} + \xmlcommand{#1}{/!mml:plus}{mml:plus:body} + \MMLdoR + } { + \ifnum\xmlcount{#1}{/!mml:plus}=\plusone + +\xmlfirst{#1}{/!mml:plus} + \else + \MMLdoL + \xmlconcat{#1}{/!mml:plus}{+} + \MMLdoR + \fi + } +\stopxmlsetups + +\startxmlsetups mml:plus:reset + \mmlpluscounter\zerocount +\stopxmlsetups + +\startxmlsetups mml:plus:body + \advance\mmlpluscounter\plusone + \ifnum\mmlpluscounter>\plusone + \xmldoifelse{#1}{/mml:minus} { + \ifnum\xmlcount{#1}{/!mml:minus}>\plusone + + + \fi + } { + \doifelse {\xmlatt{#1}{type}} {rational} { + % fraction + } { + + + } + } + \fi + \xmldirect{#1} +\stopxmlsetups + +\newcount\mmlminuscounter + +\startsetups mml:minus + \doifelse \MMLsignreduction \v!yes { + \ifnum\xmlcount{#1}{/!mml:minus}=\plusone + -\xmlfirst{#1}{/!mml:minus} + \else + \MMLdoL + \xmlsetup{#1}{mml:minus:reset} + \xmlcommand{#1}{/!mml:minus}{mml:minus:body} + \MMLdoR + \fi + } { + \left( % \MMLdoL + \ifnum\xmlcount{#1}{/!mml:minus}=\plusone + -\xmlfirst{#1}{/!mml:minus} + \else + \xmlsetup{#1}{mml:minus:reset} + \xmlcommand{#1}{/!mml:minus}{mml:minus:body} + \fi + \right) % \MMLdoR + } +\stopsetups + +\startxmlsetups mml:minus:reset + \mmlminuscounter\zerocount +\stopxmlsetups + +\startxmlsetups mml:minus:body + % we can also use concat here + \advance\mmlminuscounter\plusone + \ifnum\mmlminuscounter>\plusone + - + \fi + \xmldirect{#1} +\stopxmlsetups + +% power + +\setupMMLappearance[power][\c!reduction=\v!yes] + +\let\MMLpowerelement\empty + +\startxmlsetups mml:power + \xmldoifelse {#1} {/mml:apply} { + \doifelse \MMLpowerreduction \v!yes { + \xmldoifelse {#1} {/mml:apply/(\MMLcfunctionlist)} { + \gdef\MMLpowerelement{\mmlthird{#1}}% postpone, no xdef + \MMLcreset\mmlsecond{#1} + } { + \left(\MMLcreset\mmlsecond{#1}\right)\normalsuperscript{\MMLcreset\mmlthird{#1}} + } + } { + \left(\MMLcreset\mmlsecond{#1}\right)\normalsuperscript{\MMLcreset\mmlthird{#1}} + } + } { + \mmlsecond{#1}\normalsuperscript{\MMLcreset\mmlthird{#1}} + } +\stopxmlsetups + +% rem + +\startxmlsetups mml:rem + \xmlconcat{#1}{/!mml:rem}{\mathopnolimits{mod}} +\stopxmlsetups + +\setupMMLappearance [times] [\c!symbol=\v!no,\c!auto=\v!yes] % new, auto catches cn cn cn + +\startxmlsetups mml:times + \setMMLcreset{\MMLcfunctionlist\string|\MMLcconstructlist}% + \doifelse\MMLtimesauto\v!no { + \let\MMLtimes@@symbol\MMLtimessymbol + } { + \xmldoifelse {#1} {/mml:cn[name(1) == 'mml:cn']} {% name(1) is next one + \doifelseinset\MMLtimessymbol{\v!yes,\v!no} { + \let\MMLtimes@@symbol\v!yes + } { + \let\MMLtimes@@symbol\MMLtimessymbol + } + } { + \let\MMLtimes@@symbol\MMLtimessymbol + } + } + \doifelse\MMLtimes@@symbol\v!yes { + \xmlconcat{#1}{/!mml:times}{\times} + } { + \doifelse\MMLtimes@@symbol{dot} { + \xmlconcat{#1}{/!mml:times}{\cdot} + } { + \doifelse\MMLtimes@@symbol{times} { + \xmlconcat{#1}{/!mml:times}{\times} + } { + \xmlall{#1}{/!mml:times} + } + } + } +\stopxmlsetups + +\setupMMLappearance[root][\c!symbol=\v!yes] + +\startxmlsetups mml:root + \xmldoifelse {#1} {/mml:degree} { + \root + \doifnot\MMLrootsymbol\v!no{\MMLcreset\xmltext{#1}{/mml:degree}} + \of + } { + \sqrt + } + {\MMLcreset\xmlall{#1}{/!(mml:degree\string|mml:root)}} +\stopxmlsetups + +% gcd + +\startxmlsetups mml:gcd + \begingroup + \gcd\left(\MMLcreset\xmlconcat{#1}{/!mml:gcd}{\MMLseparator,}\right) + \endgroup +\stopxmlsetups + +% and or xor implies, not + +\startxmlsetups mml:and \xmlconcat{#1}{/!mml:and} {\wedge} \stopxmlsetups +\startxmlsetups mml:or \xmlconcat{#1}{/!mml:or} {\vee} \stopxmlsetups +\startxmlsetups mml:xor \xmlconcat{#1}{/!mml:xor} {\mathopnolimits{xor}} \stopxmlsetups +\startxmlsetups mml:implies \xmlconcat{#1}{/!mml:implies}{\Rightarrow} \stopxmlsetups +\startxmlsetups mml:not \neg \xmlall {#1}{/!mml:not} \stopxmlsetups + +% forall exists + +%D We need to shift left below rotated A. + +\startxmlsetups mml:forall + \forall \negthinspace \xmlsetup{#1}{mml:forallexists} +\stopxmlsetups + +\startxmlsetups mml:exists + \exists \xmlsetup{#1}{mml:forallexists} +\stopxmlsetups + +\def\mmlforallexistslist{mml:bvar\string|mml:forall\string|mml:exists\string|mml:condition} + +\startxmlsetups mml:forallexists + \normalsubscript{\xmlconcat{#1}{/mml:bvar}{\MMLseparator,}} + \xmldoifelse {#1} {/mml:condition} { + \thickspace + \begingroup + \xmlfirst{#1}{/mml:condition} + \endgroup + \ifcase\xmlcount{#1}{/!(\mmlforallexistslist)}\relax + % nothing + \or + % == snelle volgende + \left\vert + \MMLcreset \medspace \xmlconcat{#1}{/!(\mmlforallexistslist)}{} + \right. + \else + % special case + \left\vert + \matrix { + \xmlconcat{#1}{/!(\mmlforallexistslist)}{\hfill\crcr} + } + \right. + \fi + } { + :\xmlfirst{#1}{/!(\mmlforallexistslist)} + } +\stopxmlsetups + +\startxmlsetups mml:abs + \left\vert \MMLcreset\xmlall{#1}{/!mml:abs} \right\vert +\stopxmlsetups + +\startxmlsetups mml:conjugate % watch extra {} + {\overline{\MMLcreset\xmlall{#1}{/!mml:conjugate}}} +\stopxmlsetups + +\startxmlsetups mml:arg + \mathopnolimits{arg} \left( \MMLcreset\xmlall{#1}{/!mml:arg} \right) +\stopxmlsetups + +\startxmlsetups mml:real + \Re \left( \MMLcreset \xmlall{#1}{/!mml:real} \right) +\stopxmlsetups + +\startxmlsetups mml:imaginary + \Im \ left( \MMLcreset \xmlall{#1}{/!mml:imaginary} \right) +\stopxmlsetups + +\startxmlsetups mml:lcm + \mathopnolimits{lcm} \left( \xmlconcat{#1}{/!mml:lcm}{\MMLseparator,} \right) +\stopxmlsetups + +\startxmlsetups mml:floor + \lfloor \xmlall{#1}{/!mml:floor} \rfloor +\stopxmlsetups + +\startxmlsetups mml:ceiling + \lceiling \xmlall{#1}{/!mml:ceiling} \rceiling +\stopxmlsetups + +% relations + +% apply attr or eq + +\setupMMLappearance[relation][\c!align=\v!no] + +\xmlmapvalue {mml:relation} {eq} {=} +\xmlmapvalue {mml:relation} {neq} {\neq} +\xmlmapvalue {mml:relation} {gt} {>} +\xmlmapvalue {mml:relation} {lt} {<} +\xmlmapvalue {mml:relation} {geq} {\geq} +\xmlmapvalue {mml:relation} {leq} {\leq} +\xmlmapvalue {mml:relation} {equivalent} {\equiv} +\xmlmapvalue {mml:relation} {approx} {\approx} +\xmlmapvalue {mml:relation} {factorof} {\mid} + +\startxmlsetups mml:eq \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:neq \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:gt \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:lt \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:geq \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:leq \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:equivalent \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:approx \xmlsetup{#1}{mml:relation} \stopxmlsetups +\startxmlsetups mml:factorof \xmlsetup{#1}{mml:relation} \stopxmlsetups + +\startxmlsetups mml:relation + \edef\mmlapplyaction{\xmlfilter{#1}{/*/tag()}} + \MMLcreset \xmlsetup{#1}{mml:relation:\xmlattdef{#1}{align}{\MMLrelationalign}} +\stopxmlsetups + +\startxmlsetups mml:relation:default + \xmlconcatrange{#1}{/*}{2}{}{\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}} +\stopxmlsetups +\startxmlsetups mml:relation:last + \eqalign { + \xmlconcatrange{#1}{/*}{2}{-2}{&\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}\crcr} + \mmlprelast{#1}&\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}\mmllast{#1} + } +\stopxmlsetups +\startxmlsetups mml:relation:first + \eqalign { + \mmlsecond{#1}\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{} + &\xmlconcatrange{#1}{/*}{3}{}{\crcr\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}&} + } +\stopxmlsetups +\startxmlsetups mml:relation:left + \eqalign { + \xmlconcatrange{#1}{/*}{2}{}{&\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}\crcr} + } +\stopxmlsetups +\startxmlsetups mml:relation:right + \eqalign { + &\xmlconcatrange{#1}{/*}{2}{}{\crcr\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}&} + } +\stopxmlsetups +\startxmlsetups mml:relation:no + \xmlsetup{#1}{mml:relation:default} +\stopxmlsetups +\startxmlsetups mml:relation:yes + \xmlsetup{#1}{mml:relation:left} +\stopxmlsetups + +% personal goody: + +\edef\MMLcmainresetlist{\MMLcmainresetlist\string|becomes} + +\xmlmapvalue {mml:relation} {mml:becomes} {:=} + +\startxmlsetups mml:becomes \xmlsetup{#1}{mml:relation} \stopxmlsetups + +% calculus and vector calculus + +\startxmlsetups mml:domainofapplication + \xmlall{#1}{/!mml:domainofapplication} +\stopxmlsetups + +\setupMMLappearance[int][\c!location=\v!top] + +\def\doMMLlimits#1{\doifelsevalue{MML#1\c!location}\v!top\limits\nolimits} + +\startxmlsetups mml:int + \MMLcreset + \xmldoifelse {#1} {/mml:domainofapplication} { + \int \doMMLlimits{int}\normalsubscript{\xmlfirst{#1}{/mml:domainofapplication}}\relax + } { + \xmldoifelse {#1} {/mml:condition} { + \int \doMMLlimits{int}\normalsubscript{\xmlfirst{#1}{/mml:condition}}\relax + } { + \xmldoifelse {#1} {/mml:lowlimit} { + \int \doMMLlimits{int}\normalsubscript{\xmlfirst{#1}{/mml:lowlimit}}\normalsuperscript{\xmlfirst{#1}{/mml:uplimit}} + } { + % funny, why do we have lowlimit/uplimit then + \xmldoifelse {#1} {/mml:apply/mml:interval} { + \int \doMMLlimits{int}\normalsubscript{\xmlindex{#1}{/mml:apply}{2}}\normalsuperscript{\xmlindex{#1}{/mml:apply}{3}} + } { + \int + } + } + } + } + \MMLcreset + \xmldoifelse {#1} {/mml:apply} { + \doifelsemmlfunction {#1} { % todo test + \xmlfirst{#1}{/mml:apply} + } { + % if there are too many () now, we need to be more clever + \left( \xmlfirst{#1}{/mml:apply} \right) + } + } { + \xmlfirst{#1}{/mml:ci} + } + \xmldoifelse {#1} {/mml:bvar} { + \thinspace {\mr d} \xmlfirst{#1}{/mml:bvar} + } { + % nothing + } +\stopxmlsetups + +\setupMMLappearance[diff][\c!location=\v!top,\c!alternative=\v!a] + +\startxmlsetups mml:diff + \MMLcreset + \doifelse \MMLdiffalternative \v!a { + \xmldoifelse {#1} {/mml:lambda} { + % a special case (mathadore/openmath) + \mmlfrac { + d + \normalsuperscript + {\xmlfirst{#1}{/mml:bvar}\xmlfirst{#1}{/mml:cn}} + {\xmlfirst{#1}{/mml:lambda}\xmlfirst{#1}{/mml:ci}} + } { + d + {\xmlfirst{#1}{/mml:bvar}\xmlfirst{#1}{/mml:ci}} + \normalsuperscript + {\xmlfirst{#1}{/mml:bvar}\xmlfirst{#1}{/mml:cn}} + } + } { + \xmldoifelse {#1} {/mml:bvar} { + \mmlfrac { + {\mr d}{ + \xmldoifelse {#1} {/mml:degree} { + \normalsuperscript{\xmlconcat{#1}{/mml:degree}\empty} + } { + \xmldoif {#1} {/mml:bvar/mml:degree} { + \normalsuperscript{\xmlconcat{#1}{/mml:bvar/mml:degree}+} + } + } + } + \doif \MMLdifflocation \v!top { + \xmldoifelse {#1} {/mml:ci} { + \xmlfirst{#1}{/mml:ci} + } { + \MMLcreset + \ifnum\xmlcount{#1}{/mml:apply/*}>\plustwo % hack + \left(\xmlfirst{#1}{/mml:apply}\right) + \else + \xmlfirst{#1}{/mml:apply} + \fi + } + } + } { + {\mr d} + \xmlfirst{#1}{/mml:bvar/!mml:degree} + \xmldoif {#1} {/mml:bvar/mml:degree} { + \normalsuperscript{\xmlfirst{#1}{/mml:bvar/mml:degree}} + } + } + \doifnot \MMLdifflocation \v!top { + \left(\MMLcreset\xmlfirst{#1}{/(mml:apply\string|mml:ci)}\right) + } + } { + % beware, the second {} is needed for the superscript + \xmlconcatrange{#1}{/*}{2}{}{}\normalsuperscript\prime + } + } + } { + \MMLcreset + \xmlfirst{#1}{/(mml:apply\string|mml:ci)} + % there can be problems with nested diff's: \normalsuperscript\normalsuperscript{} error + % so we add an empty group here + {}\normalsuperscript + { + \xmldoifelse {#1} {/mml:degree} { + \edef\mmldegree{\xmlfirst{#1}{/mml:degree/mml:cn}} + \ifempty\mmldegree + % what to do here + \else + \dorecurse\mmldegree\prime + \fi + } { + \prime + } + } + } +\stopxmlsetups + +\startxmlsetups mml:partialdiff + \xmldoifelse {#1} {/mml:list} { + {\mr D}\normalsubscript{ + \begingroup + \setfalse\mmllistdelimiters + \xmlall{#1}{/mml:list} + \endgroup + } + \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)} + } { + \xmldoifelse {#1} {/mml:bvar} { + \mmlfrac { + {\mr d}\normalsuperscript{ + \xmldoifelse {#1} {/mml:degree} { + \xmlconcat{#1}{/mml:degree}\empty + } { + \xmlconcat{#1}{/mml:bvar/mml:degree}+ + } + } + \MMLcreset + \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)} + } { + \xmldoif {#1}{/mml:bvar/!mml:degree} { + \xmlfirst{#1}{/mml:bvar/!mml:degree} \, + } + {\mr d}\xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)} + \xmldoif {#1} {/mml:bvar/mml:degree} { + \normalsuperscript{\xmlfirst{#1}{/mml:bvar/mml:degree}} + } + } + } { + \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)} + } + } +\stopxmlsetups + +\startxmlsetups mml:divergence \mathopnolimits{div} \xmlall{#1}{/!mml:divergence} \stopxmlsetups +\startxmlsetups mml:grad \mathopnolimits{grad} \xmlall{#1}{/!mml:grad} \stopxmlsetups +\startxmlsetups mml:curl \mathopnolimits{curl} \xmlall{#1}{/!mml:curl} \stopxmlsetups +\startxmlsetups mml:laplacian \nabla\normalsuperscript2 \xmlall{#1}{/!mml:laplacian} \stopxmlsetups +\startxmlsetups mml:ident \mathopnolimits{identity} \xmlall{#1}{/!mml:ident} \stopxmlsetups + +\setupMMLappearance[domain] [symbol=] +\setupMMLappearance[codomain][symbol=] + +\startxmlsetups mml:domain + \doifelsenothing \MMLdomainsymbol { + \mathopnolimits{domain}\MMLcreset\xmlall{#1}{/!mml:domain} + } { + \MMLdomainsymbol\normalsubscript{\xmlall{#1}{/!mml:domain}} + } +\stopxmlsetups + +\startxmlsetups mml:codomain + \doifelsenothing \MMLcodomainsymbol { + \mathopnolimits{codomain}\MMLcreset\xmlall{#1}{/!mml:codomain} + } { + \MMLcodomainsymbol\normalsubscript{\xmlall{#1}{/!mml:codomain}} + } +\stopxmlsetups + +% theory of sets + +\startxmlsetups mml:set + \left\{ + \xmldoifelse {#1} {/mml:condition} { + \xmlfirst{#1}{/mml:bvar}\,\middle\vert\,\xmlfirst{#1}{/mml:condition} + } { + \xmlconcat{#1}{/!mml:set}{\MMLseparator,} + } + \right\} + \relax % needed +\stopxmlsetups + +\settrue\mmllistdelimiters + +\startxmlsetups mml:list + \begingroup + \ifconditional\mmllistdelimiters\left [\fi + \begingroup + \settrue\mmllistdelimiters + \xmlconcat{#1}{/!mml:list}{\MMLseparator,} + \endgroup + \ifconditional\mmllistdelimiters\right]\fi + \endgroup +\stopxmlsetups + +\startxmlsetups mml:union \mmlsecond{#1} \cup \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:intersect \mmlsecond{#1} \cap \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:in \mmlsecond{#1} \in \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:notin \mmlsecond{#1} {\not\in} \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:subset \mmlsecond{#1} \subset \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:prsubset \mmlsecond{#1} \subseteq \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:notsubset \mmlsecond{#1} {\not\subset} \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:notprsubset \mmlsecond{#1} {\not\subseteq} \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:setdiff \mmlsecond{#1} \setminus \mmlthird{#1} \stopxmlsetups + +\startxmlsetups mml:card + \left\vert \xmlall{#1}{/!mml:card} \right\vert +\stopxmlsetups + +\startxmlsetups mml:cartesianproduct + \xmlconcat{#1}{/!mml:cartesianproduct}{\times} +\stopxmlsetups + +% sequences and series + +\setupMMLappearance[sum] [\c!location=\v!top] +\setupMMLappearance[product][\c!location=\v!top] + +\xmlmapvalue {mml:sumprod} {sum} {\sum} +\xmlmapvalue {mml:sumprod} {product} {\prod} + +\startxmlsetups mml:sum \edef\mmlsumprodname{sum} \xmlsetup{#1}{mml:sumprod} \stopxmlsetups +\startxmlsetups mml:product \edef\mmlsumprodname{product} \xmlsetup{#1}{mml:sumprod} \stopxmlsetups + +\def\mmlstackedsubscripts#1% + {\vbox + {\baselineskip\zeropoint % hack, taco vragen + \halign{\startimath\scriptstyle\hss\alignmark\alignmark\hss\stopimath\cr#1\crcr}}} + +% unfinished + +\startxmlsetups mml:sumprod + \begingroup + \xmldoifelse {#1} {/(mml:condition\string|mml:bvar\string|mml:lowlimit)} { + \def\mmlsumprodlower{ + \normalsubscript{ + \xmldoifelse {#1} {/mml:condition} { + \mmlstackedsubscripts{\xmlconcat{#1}{/mml:condition}{\crcr}} + } { + \xmldoif {#1} {/mml:bvar} { + \xmlfirst{#1}{/mml:bvar} + \xmldoif{#1}{/mml:lowlimit}{=} + } + \xmlfirst{#1}{/mml:lowlimit} + } + } + } + } { + \let\mmlsumprodlower\empty + } + \xmldoifelse {#1} {/mml:uplimit} { + \def\mmlsumprodupper{\normalsuperscript{\xmlfirst{#1}{/mml:uplimit}}} + } { + \let\mmlsumprodupper\empty + } + \xmldoif {#1} {/mml:interval} { % open math converter gives this + \edef\mmlintervalfrom{\xmlindex{#1}{/mml:interval}{1}} + \edef\mmlintervalto {\xmlindex{#1}{/mml:interval}{2}} + \ifempty\mmlintervalfrom \else + \def\mmlsumprodlower{\normalsubscript{\xmldoif{#1}{/mml:bvar}{\xmlfirst{#1}{/mml:bvar}{=}}\mmlintervalfrom}} + \fi + \ifempty\mmlintervalto \else + \def\mmlsumprodupper{\normalsuperscript{\mmlintervalto}} + \fi + } + \MMLcreset + \xmlval{mml:sumprod}{\mmlsumprodname}{}\doMMLlimits\mmlsumprodname\mmlsumprodupper\mmlsumprodlower + \MMLcreset + \xmldoifelse {#1} {/mml:lambda/mml:apply} { + \xmlfirst{#1}{/mml:lambda/mml:apply}% a bit of open math conversion mess + } { + \xmlfirst{#1}{/(mml:apply\string|mml:lambda\string|mml:ci)}% + } + \endgroup +\stopxmlsetups + +\setupMMLappearance[limit][\c!location=\v!top] + +\startxmlsetups mml:limit + \MMLcreset \lim + \doMMLlimits {limit}\normalsubscript{ + \MMLcreset + \xmldoifelse {#1} {/mml:condition} { + \xmlfirst{#1}{/mml:condition} + } { + \xmldoif {#1} {/mml:bvar} { + \xmlfirst{#1}{/mml:bvar}\rightarrow + } + \xmlfirst{#1}{/mml:lowlimit} + } + } + \begingroup + % a bit of open math conversion mess, lambda needed for openmath, ok? + \MMLcreset + \xmlfirst{#1}{/mml:lambda/mml:apply} + \xmlfirst{#1}{/(mml:apply\string|mml:lambda)} + \endgroup +\stopxmlsetups + +% consider a faster index + +\startxmlsetups mml:tendsto + \MMLcreset \mmlsecond{#1} + \xmlval {mml:tendsto:type} {\xmlattdef{#1}{type}{default}} {\rightarrow} + \MMLcreset \mmlthird{#1} +\stopxmlsetups + +\xmlmapvalue {mml:tendsto:type} {above} {\downarrow} +\xmlmapvalue {mml:tendsto:type} {below} {\uparrow} +\xmlmapvalue {mml:tendsto:type} {default} {\rightarrow} + +% elementary classical functions + +\setupMMLappearance[log][\c!location=\v!right] + +\startxmlsetups mml:exp +% {\mr e}\normalsuperscript{\xmlfirst{#1}{/mml:apply\string|mml:reln\string|mml:ci\string|mml:cn}} + {\mr e}\normalsuperscript{\xmlfirst{#1}{/!mml:exp}} +\stopxmlsetups + +\startxmlsetups mml:log + \xmldoifelse {#1} {/mml:logbase} { + \doifelse \MMLloglocation \v!left { + \mathop { + {}\normalsuperscript{\xmlfirst{#1}{/mml:logbase}}\negthinspace\mathopnolimits{log} + } + } { + \mathopnolimits{log}\normalsubscript{\xmlfirst{#1}{/mml:logbase}} + } +% \MMLcreset + \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)} +% \xmlsetup{#1}{mml:function} % todo, we start elsewhere +% \mmlthird{#1} + } { + \mathopnolimits{log} +% \MMLcreset +% \xmlsetup{#1}{mml:function} % todo, we start elsewhere + \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)} +% \mmlsecond{#1} + } +\stopxmlsetups + +\startxmlsetups mml:ln + \mathopnolimits{ln} + \xmlsetup{#1}{mml:function} +\stopxmlsetups + +% statistics + +\startxmlsetups mml:mean \overline {\mmlsecond{#1}} \stopxmlsetups +\startxmlsetups mml:sdev \sigma \left(\MMLcreset\mmlsecond{#1}\right) \stopxmlsetups +\startxmlsetups mml:variance \sigma \left(\MMLcreset\mmlsecond{#1}\right)\normalsuperscript2 \stopxmlsetups +\startxmlsetups mml:median \mathopnolimits{median}\left(\MMLcreset\mmlsecond{#1}\right) \stopxmlsetups +\startxmlsetups mml:mode \mathopnolimits{mode} \left(\MMLcreset\mmlsecond{#1}\right) \stopxmlsetups + +% moments + +\startxmlsetups mml:moment + \left\langle + \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}\normalsuperscript{\xmlfirst{#1}{/mml:degree}} + \right\rangle + \xmldoif {#1} {mml:momentabout} { + \normalsubscript{\xmlfirst{#1}{mml:momentabout}} + } +\stopxmlsetups + +% linear algebra + +\setupMMLappearance [vector] [\c!direction=\v!horizontal,\c!separator={,}] + +\startxmlsetups mml:vector + \begingroup + \ifnum\xmlcount{#1}{/*}>\plusone + \doifelse\MMLvectordirection\v!horizontal { + \left(\xmlconcat{#1}{/*}{\MMLseparator\MMLvectorseparator}\right) + } { + \MMLcreset\left(\matrix{\xmlconcat{#1}{/*}{\MMLseparator\MMLvectorseparator}}\right) + } + \else + \overrightarrow{\charhtstrut\mmlfirst{#1}} + \fi + \endgroup +\stopxmlsetups + +\settrue\MMCdelmatrix % ( ) when true + +\startxmlsetups mml:matrix + \begingroup + \MMLcreset + \ifconditional\MMCdelmatrix + \left(\matrix{\xmlcommand{#1}{/mml:matrixrow}{mml:matrixrow:do}}\right) + \else + \settrue\MMCdelmatrix + \matrix{\xmlcommand{#1}{/mml:matrixrow}{mml:matrixrow:do}} + \fi + \endgroup +\stopxmlsetups + +\startxmlsetups mml:matrixrow + \begingroup + \MMLcreset + \left(\xmlsetup{#1}{mml:matrixrow:do}\right) + \endgroup +\stopxmlsetups + +\startxmlsetups mml:matrixrow:do + \xmlconcat{#1}{/*}{&}\crcr +\stopxmlsetups + +\startxmlsetups mml:determinant + \begingroup + \setfalse\MMCdelmatrix + \left|\mmlsecond{#1}\right| + \endgroup +\stopxmlsetups + +\startxmlsetups mml:transpose + \mmlsecond{#1}\normalsuperscript{\mathopnolimits{T}} +\stopxmlsetups + +\startxmlsetups mml:selector + \MMLmathinner{\mmlsecond{#1}\normalsubscript{\MMLcreset\xmlconcatrange{#1}{/*}{3}{}{\MMLseparator,}}} +\stopxmlsetups + +\startxmlsetups mml:vectorproduct \mmlsecond{#1}\times \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:scalarproduct \mmlsecond{#1}\cdot \mmlthird{#1} \stopxmlsetups +\startxmlsetups mml:outerproduct \mmlsecond{#1}\otimes\mmlthird{#1} \stopxmlsetups + +% semantic mapping elements + +\setupMMLappearance[semantics][\c!state=\v!start] + +\startxmlsetups mml:semantics + \doifelse\MMLsemanticsstate\v!start { + \xmlall{#1}{/mml:annotation} + } { + \xmlall{#1}{/!mml:annotation} + } +\stopxmlsetups + +\startxmlsetups mml:annotation + \xmldoifelse {#1} {.[oneof(@encoding,'TeX','tex','application/x-tex','TEX','ConTeXt','context','CONTEXT','ctx')]} { + \xmlflushcontext{#1} + } { + \xmldoifelse {#1} {.[oneof(@encoding,'calcmath','cm')]} { + \expanded{\calcmath{\xmlflush{#1}}} + } { + \xmldoifelse {#1} {.[oneof(@encoding,'asciimath','am')]} { + \ifdefined\asciimath + \expanded{\asciimath{\xmlflushpure{#1}}} + \else + \hbox{\tt no am loaded} + \fi + } { + \xmlall{#1}{../!mml:annotation} + } + } + } +\stopxmlsetups + +\startxmlsetups mml:annotation-xml + % maybe diagnostics +\stopxmlsetups + +% misc + +\startxmlsetups mml:integers \integers \stopxmlsetups +\startxmlsetups mml:reals \reals \stopxmlsetups +\startxmlsetups mml:rationals \rationals \stopxmlsetups +\startxmlsetups mml:naturalnumbers \naturalnumbers \stopxmlsetups +\startxmlsetups mml:complexes \complexes \stopxmlsetups +\startxmlsetups mml:primes \primes \stopxmlsetups +\startxmlsetups mml:exponentiale \mathopnolimits{e} \stopxmlsetups +\startxmlsetups mml:imaginaryi \mathopnolimits{i} \stopxmlsetups +\startxmlsetups mml:notanumber \mathopnolimits{NaN} \stopxmlsetups +\startxmlsetups mml:true \mathopnolimits{true} \stopxmlsetups +\startxmlsetups mml:false \mathopnolimits{false} \stopxmlsetups +\startxmlsetups mml:emptyset \mathopnolimits{Ø} \stopxmlsetups +\startxmlsetups mml:pi \pi \stopxmlsetups +\startxmlsetups mml:eulergamma \gamma \stopxmlsetups +\startxmlsetups mml:infinity \infty \stopxmlsetups + +% gonio functions + +\setupMMLappearance[function][\c!reduction=\v!yes] + +% todo: \mfunction which adapts itself when registered as command + +% todo: \def\mmlcfunction#1#2{\mathopnolimits{#2}\xmlsetup{#1}{mml:function}} + +\startxmlsetups mml:sin \mathcommand {sin}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:sinh \mathcommand {sinh}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:cos \mathcommand {cos}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:cosh \mathcommand {cosh}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:tan \mathcommand {tan}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:tanh \mathcommand {tanh}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:cot \mathcommand {cot}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:coth \mathcommand {coth}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:csc \mathcommand {csc}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:csch \mathcommand {csch}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:sec \mathcommand {sec}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:sech \mathcommand {sech}\xmlsetup{#1}{mml:function} \stopxmlsetups + +\startxmlsetups mml:arcsin \mathcommand {arcsin}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arcsinh \mathcommand{arcsinh}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arccos \mathcommand {arccos}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arccosh \mathcommand{arccosh}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arctan \mathcommand {arctan}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arctanh \mathcommand{arctanh}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arccot \mathcommand {arccot}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arccoth \mathcommand{arccoth}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arccsc \mathcommand {arccsc}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arccsch \mathcommand{arccsch}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arcsec \mathcommand {arcsec}\xmlsetup{#1}{mml:function} \stopxmlsetups +\startxmlsetups mml:arcsech \mathcommand{arcsech}\xmlsetup{#1}{mml:function} \stopxmlsetups + +\startxmlsetups mml:function + \ifempty\MMLpowerelement + \ifconditional\xmlinversefunction\normalsuperscript{-1}\fi + \setfalse\xmlinversefunction + \else + \normalsuperscript{\ifconditional\xmlinversefunction-\fi\MMLpowerelement} + \setfalse\xmlinversefunction + \glet\MMLpowerelement\empty + \fi + \xmlsetup{#1}{mml:function:argument} +\stopxmlsetups + +\startxmlsetups mml:function:argument + \doifelse \MMLfunctionreduction \v!yes { + \xmldoifelse {#1} {/mml:apply} { + \xmldoifelse {#1} {/mml:apply/(\MMLcfunctionlist\string|mml:divide)} + \donefalse + \donetrue + } { + \donefalse + } + } { + \donetrue + } + % beware, we still flush from 2 up + \ifdone + \left( + \MMLcreset + \xmlall{#1}{/[position()>1]}% \xmlconcatrange{#1}{/*}{2}{}\empty + \right) + \else + \MMLcreset + \xmlall{#1}{/[position()>1]} + \fi +\stopxmlsetups + +% PRESENTATION MATHML + +% helpers: maybe we can need a setting for the uprights + +\xmlmapvalue {mml:s} {normal} {\mathupright} % {\mathtf} +\xmlmapvalue {mml:s} {double-struck} {\mathblackboard} +\xmlmapvalue {mml:s} {italic} {\mathit} +\xmlmapvalue {mml:s} {fraktur} {\mathfraktur} +\xmlmapvalue {mml:s} {script} {\mathscript} +\xmlmapvalue {mml:s} {bold} {\mb} % {\mathbf} +\xmlmapvalue {mml:s} {bold-italic} {\mathbi} +\xmlmapvalue {mml:s} {bold-fraktur} {\mathfraktur\mathbf} +\xmlmapvalue {mml:s} {bold-script} {\mathscript\mathbf} +\xmlmapvalue {mml:s} {sans-serif} {\mathss} +\xmlmapvalue {mml:s} {bold-sans-serif} {\mathss\mathbf} +\xmlmapvalue {mml:s} {sans-serif-italic} {\mathss\mathit} +\xmlmapvalue {mml:s} {sans-serif-bold-italic} {\mathss\mathbi} +\xmlmapvalue {mml:s} {monospace} {\mathtt} + +\xmlmapvalue {mml:l} {-} {\let\mmlfrac\tfrac} + \let\mmlfrac\frac +\xmlmapvalue {mml:l} {+} {\let\mmlfrac\sfrac} + +\xmlmapvalue {mml:d} {true} {\displaystyle} +\xmlmapvalue {mml:d} {false} {\textstyle} % or whatever + +\starttexdefinition setmmlmathstyle #1 + \ifxmlattempty{#1}{displaystyle}\else + \xmlval{mml:d}\xmllastatt\empty + \fi + \ifxmlattempty{#1}{mathvariant}\else + \xmlval{mml:s}\xmllastatt\empty + \fi +\stoptexdefinition + +\starttexdefinition setmmlscriptlevel #1 + \ifxmlattempty{#1}{scriptlevel} + \let\mmlfrac\frac + \else + \xmlval{mml:l}\xmllastatt{\let\mmlfrac\frac} + \fi +\stoptexdefinition + +\starttexdefinition setmmlmathcolor #1 + \ifxmlattempty{#1}{mathcolor}\else + \directcolor[\xmllastatt] + \fi +\stoptexdefinition + +\starttexdefinition setmmlmathproperties #1 + % \ifxmlatt{#1}{displaystyle}\empty\else + \ifxmlattempty{#1}{displaystyle}\else + \xmlval{mml:d}\xmllastatt\empty + \fi + \ifxmlattempty{#1}{mathvariant}\else + \xmlval{mml:s}\xmllastatt\empty + \fi + \ifxmlattempty{#1}{scriptlevel} + \let\mmlfrac\frac + \else + \xmlval{mml:l}\xmllastatt{\let\mmlfrac\frac} + \fi + \ifxmlattempty{#1}{mathcolor}\else + \directcolor[\xmllastatt] + \fi +\stoptexdefinition + +% todo: textbackgrounds / todo: can be combined with new grouping + +\starttexdefinition applymmlmathbackground #1#2 + \ifxmlattempty{#1}{mathbackground} + #2 + \else + \backgroundline[\xmllastatt]{#2} + \fi +\stoptexdefinition + +\starttexdefinition applymmlsometext #1#2 + \begingroup + \applymmlmathbackground {#1} { + \setmmlmathcolor {#1} + \setmmlmathstyle {#1} + #2 + } + \endgroup +\stoptexdefinition + +% setups + +\startxmlsetups mml:mi % todo: mathsize (unlikely) mathcolor (easy) mathbackground (easy) + \begingroup + \pushmathstyle % still needed ? + \setmmlmathproperties{#1} + \mathml_mi{#1} + \popmathstyle % still needed ? + \endgroup +\stopxmlsetups + +\startxmlsetups mml:mn + \begingroup + \setmmlmathcolor{#1} + \mathml_mn{#1} + \endgroup +\stopxmlsetups + +% -2 and 1-2 +% +% spacing between - and 2 is taken care of by tex itself + +\startxmlsetups mml:mo + \begingroup + \setmmlmathcolor{#1} + \ifxmlatt{#1}{maxsize}{1} + \settrue\mmlignoredelimiter + \orelse\ifxmlatt{#1}{stretchy}{false} + \settrue\mmlignoredelimiter + \fi + \ifxmlattempty{#1}{lspace}\else + \hskip\xmllastatt\relax % todo: check for dimension + \fi + \mathml_mo{#1} + \ifxmlattempty{#1}{rspace}\else + \hskip\xmllastatt\relax % todo: check for dimension + \fi + \endgroup +\stopxmlsetups + +\startxmlsetups mml:mfenced % {} around separator is needed for spacing + \mathml_mfenced{#1} +\stopxmlsetups + +\defineoverlay [mml:enclose:box] [\useMPgraphic{mml:enclose:box}] +\defineoverlay [mml:enclose:roundedbox] [\useMPgraphic{mml:enclose:roundedbox}] +\defineoverlay [mml:enclose:circle] [\useMPgraphic{mml:enclose:circle}] +\defineoverlay [mml:enclose:left] [\useMPgraphic{mml:enclose:left}] +\defineoverlay [mml:enclose:right] [\useMPgraphic{mml:enclose:right}] +\defineoverlay [mml:enclose:top] [\useMPgraphic{mml:enclose:top}] +\defineoverlay [mml:enclose:bottom] [\useMPgraphic{mml:enclose:bottom}] +\defineoverlay [mml:enclose:updiagonalstrike] [\useMPgraphic{mml:enclose:updiagonalstrike}] +\defineoverlay [mml:enclose:downdiagonalstrike] [\useMPgraphic{mml:enclose:downdiagonalstrike}] +\defineoverlay [mml:enclose:horizontalstrike] [\useMPgraphic{mml:enclose:horizontalstrike}] +\defineoverlay [mml:enclose:verticalstrike] [\useMPgraphic{mml:enclose:verticalstrike}] + +\startuseMPgraphic{mml:enclose:box} + draw OverlayBox withpen pencircle scaled (ExHeight/10) ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:roundedbox} + draw OverlayBox cornered .5ExHeight withpen pencircle scaled (ExHeight/10) ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:circle} + draw fullcircle xysized(bbwidth(OverlayBox),bbheight(OverlayBox)) withpen pencircle scaled (ExHeight/10) ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:left} + draw leftboundary OverlayBox withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:right} + draw rightboundary OverlayBox withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:top} + draw topboundary OverlayBox withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:bottom} + draw bottomboundary OverlayBox withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:updiagonalstrike} + path p ; p := OverlayBox enlarged -.25ExHeight ; + draw llcorner p -- urcorner p withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:downdiagonalstrike} + path p ; p := OverlayBox enlarged -.25ExHeight ; + draw ulcorner p -- lrcorner p withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:horizontalstrike} + path p ; p := OverlayBox enlarged -.25ExHeight ; + draw .5[llcorner p,ulcorner p] -- .5[lrcorner p,urcorner p] withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic +\startuseMPgraphic{mml:enclose:verticalstrike} + path p ; p := OverlayBox enlarged -.25ExHeight ; + draw .5[llcorner p,lrcorner p] -- .5[ulcorner p,urcorner p] withpen pencircle scaled (ExHeight/10) ; + setbounds currentpicture to OverlayBox ; +\stopuseMPgraphic + +\startxmlsetups mml:menclose + \edef\mmlmenclosenotation{\mathml_menclosepattern{#1}} + \ifempty\mmlmenclosenotation + \xmlflush{#1} + \else + \doifelse \mmlmenclosenotation {mml:enclose:longdiv} { + \overline{\left)\strut\xmlflush{#1}\right.} + } { + \doifelse \mmlmenclosenotation {mml:enclose:actuarial} { + \overline{\left.\strut\xmlflush{#1}\right\vert} + } { + \doifelse \mmlmenclosenotation {mml:enclose:radical} { + \sqrt{\xmlflush{#1}} + } { + % todo: no framed when longdiv, actuarial or radical ? spec ? + \vcenter { + \framed + [frame=off,strut=no,background={\mmlmenclosenotation}] % offset is kind of undefined + { + \startpickupmath + \expanded{\doifelseinset {mml:enclose:longdiv} {\mmlmenclosenotation}} { + \overline{\left)\strut\xmlflush{#1}\right.} + } { + \expanded{\doifelseinset {mml:enclose:actuarial} {\mmlmenclosenotation}} { + \overline{\left.\strut\xmlflush{#1}\right\vert} + } { + \expanded{\doifelseinset {mml:enclose:radical} {\mmlmenclosenotation}} { + \sqrt{\xmlflush{#1}} + } { + \expanded{\doifelseinset {mml:enclose:rule} {\mmlmenclosenotation}} { + \overline{\strut\xmlflush{#1}} + } { + \xmlflush{#1} + } + } + } + } + \stoppickupmath + } + } + } + } + } + \fi +\stopxmlsetups + +\xmlmapvalue {mml:mfrac:linethickness} {thin} {.2pt} +\xmlmapvalue {mml:mfrac:linethickness} {medium} {.4pt} +\xmlmapvalue {mml:mfrac:linethickness} {thick} {.8pt} +\xmlmapvalue {mml:mfrac:linethickness} {0} {0pt} + +\startxmlsetups mml:mfrac % dodo: handle linethickness in lua + unit + \begingroup + \edef\mmlfraclinethickness{\xmlatt{#1}{linethickness}} + \ifempty\mmlfraclinethickness + \doifelse{\xmlatt{#1}{bevelled}}{true} { + \left.\mmlfirst{#1}\middle/\mmlsecond{#1}\right.% \thinspace\middle/\thinspace + } { + \mmlfrac{\mmlfirst{#1}}{\mmlsecond{#1}} + } + \else % use \ifchknum + \doifelse {\xmlval{mml:mfrac:linethickness}{\mmlfraclinethickness}{}} {} { + \scratchdimen\xmlval{mml:mfrac:linethickness}\mmlfraclinethickness{.4pt} + } { + % probably not yet ok + \setdimensionwithunit\scratchdimen\mmlfraclinethickness{pt} + } + { + {\mmlfirst{#1}} + \above\scratchdimen + {\mmlsecond{#1}} + } + \fi + \endgroup +\stopxmlsetups + +\startxmlsetups mml:ms + \hbox { + \tf % else encoding problems + \ifxmlattempty{#1}{lquote}\symbol[leftquotation]\else\xmllastatt\fi + \applymmlsometext{#1}{\xmlflush{#1}} + \ifxmlattempty{#1}{rquote}\symbol[rightquotation]\else\xmllastatt\fi + } +\stopxmlsetups + +\startxmlsetups mml:mstyle + \begingroup + \pushmathstyle + \setmmlmathstyle{#1} + \setmmlscriptlevel{#1} + \xmlflush{#1} + \popmathstyle + \endgroup +\stopxmlsetups + +\setupMMLappearance[text][\c!alternative=\v!b] % a=normal, b=keep spaces + +\startxmlsetups mml:mtext + \text { + \applymmlsometext{#1}{ + \ifcstok{\MMLtextalternative}\v!a + \ignorespaces + \xmlflush{#1} + \removeunwantedspaces + \else + \xmlflush{#1} + \fi + } + } +\stopxmlsetups + +\startxmlsetups mml:merror + \hbox{\startimath\displaystyle\xmlflush{#1}\stopimath} +\stopxmlsetups + +\startxmlsetups mml:mphantom + \phantom{\triggermathstyle\normalmathstyle\ignorespaces\xmlflush{#1}\removeunwantedspaces} +\stopxmlsetups + +\startxmlsetups mml:mpadded % todo + \xmlflush{#1} +\stopxmlsetups + +% mrow / option: no fenced + +\startxmlsetups mml:maction + \xmlflush{#1} +\stopxmlsetups + +\startxmlsetups mml:mrow + \begingroup + \xmlflush{#1} + \endgroup +\stopxmlsetups + +\startxmlsetups mml:msqrt + \sqrt{\xmlflush{#1}} +\stopxmlsetups + +\startxmlsetups mml:mroot + \root{\mmlsecond{#1}}\of{\mmlfirst{#1}} +\stopxmlsetups + +\setupMMLappearance[scripts][\c!alternative=\v!a] % {} rond base + +% brrr no { } when limop .. todo: better in lua +% speed up with ifx and setups or just in lua + +\let\mmlnucleus\relax + +% maybe make helper +% \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop} +% \ifcstok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}\s!limop + +\startxmlsetups mml:msub + \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop} + \mmlfirst{#1} + \normalsubscript{\mmlsecond{#1}} + \orelse\ifcstok{\MMLscriptsalternative}\v!a + {\mmlfirst{#1}} + \normalsubscript{\mmlsecond{#1}} + \else + \mmlfirst{#1} + \normalsubscript{\mmlsecond{#1}} + \fi +\stopxmlsetups + +\startxmlsetups mml:msup + \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop} + \mmlfirst{#1} + \normalsuperscript{\mmlsecond{#1}} + \orelse\ifcstok{\MMLscriptsalternative}\v!a + {\mmlfirst{#1}} + \normalsuperscript{\mmlsecond{#1}} + \else + \mmlfirst{#1} + \normalsuperscript{\mmlsecond{#1}} + \fi +\stopxmlsetups + +% use mathclass number + +\startxmlsetups mml:msubsup + \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop} + \mmlfirst{#1} + \normalsubscript{\mmlsecond{#1}} + \normalsuperscript{\mmlthird{#1}} + \orelse\ifcstok{\MMLscriptsalternative}\v!a + {\mmlfirst{#1}} + \normalsubscript{\mmlsecond{#1}} + \normalsuperscript{\mmlthird {#1}} + \else + \mmlfirst{#1} + \normalsubscript{\mmlsecond{#1}} + \normalsuperscript{\mmlthird {#1}} + \fi +\stopxmlsetups + +% helpers + +\protected\def\mmlexecutecommand#1% + {\ifcsname#1\endcsname + \expandafter\firstoftwoarguments + \else + \expandafter\secondoftwoarguments + \fi + \lastnamedcs} + +\let\mmlextensible\mathml_extensible + +\definemathtriplet [\v!mathematics] [mmlovertriplet] % or will we use a special instance +\definemathtriplet [\v!mathematics] [mmlundertriplet] % or will we use a special instance +\definemathtriplet [\v!mathematics] [mmldoubletriplet] % or will we use a special instance + +% common to munder/mover/munderover : will become core helper (speed up too) + +\starttexdefinition protected mmlfencedfirst #1 + \xmlelement{#1}{1} +\stoptexdefinition +\starttexdefinition protected mmlfencedsecond #1 + \xmlelement{#1}{2} +\stoptexdefinition +\starttexdefinition protected mmlfencedthird #1 + \xmlelement{#1}{3} +\stoptexdefinition + +% mover + +\starttexdefinition protected mmloverabove #1 + \mmlexecutecommand{\utfmathfiller\mmlovertoken} {\mmlfencedsecond{#1}} \relax +\stoptexdefinition +\starttexdefinition protected mmloverbase #1 + \mmlexecutecommand{\utfmathfiller\mmlbasetoken} {\mmlfencedfirst{#1}} \relax +\stoptexdefinition +\starttexdefinition protected mmloverbasefiller #1 + \mmlexecutecommand{e\utfmathcommandfiller\mmlbasetoken} \relax {\mmlfencedsecond{#1}} {} +\stoptexdefinition +\starttexdefinition protected mmloveraccent #1 + \mmlexecutecommand{\utfmathcommandabove\mmlovertoken} \relax {\mmlfencedfirst{#1}} +\stoptexdefinition + +\starttexdefinition protected mmlovertext #1 + \mmlovertriplet {\mmloverbase{#1}} {\mmloverabove{#1}} {} +\stoptexdefinition +\starttexdefinition protected mmloveraccentchecker #1 + \edef\mmlovertoken{\mmlextensible{\xmlraw{#1}{/mml:*[2]}}}% /text() + \doifelseutfmathabove\mmlovertoken \mmloveraccent \mmlovertext {#1} +\stoptexdefinition + +\startxmlsetups mml:mover + \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text() + \doifelseutfmathlimop\mmlbasetoken + {\mmllimopover{#1}} + {\doifelseutfmathfiller\mmlbasetoken \mmloverbasefiller \mmloveraccentchecker {#1}} +\stopxmlsetups + +\starttexdefinition mmllimopover #1 + \mmlbasetoken\normalsuperscript{\mmlfencedsecond{#1}} +\stoptexdefinition + +% munder + +\starttexdefinition protected mmlunderbelow #1 + \mmlexecutecommand{\utfmathfiller\mmlundertoken} {\mmlfencedsecond{#1}} \relax +\stoptexdefinition +\starttexdefinition protected mmlunderbase #1 + \mmlexecutecommand{\utfmathfiller\mmlbasetoken} {\mmlfencedfirst{#1}} \relax +\stoptexdefinition +\starttexdefinition protected mmlunderbasefiller #1 + \mmlexecutecommand{e\utfmathcommandfiller\mmlbasetoken} \relax {} {\mmlfencedsecond{#1}} +\stoptexdefinition +\starttexdefinition protected mmlunderaccent #1 + \mmlexecutecommand{\utfmathcommandbelow\mmlundertoken} \relax {\mmlfencedfirst{#1}} +\stoptexdefinition + +\starttexdefinition protected mmlundertext #1 + \mmlundertriplet {\mmlunderbase{#1}} {} {\mmlunderbelow{#1}} +\stoptexdefinition +\starttexdefinition protected mmlunderaccentchecker #1 + \edef\mmlundertoken{\mmlextensible{\xmlraw{#1}{/mml:*[2]}}}% /text() + \doifelseutfmathbelow\mmlundertoken \mmlunderaccent \mmlundertext {#1} +\stoptexdefinition + +\startxmlsetups mml:munder + \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text() + \doifelseutfmathlimop\mmlbasetoken + {\mmllimopunder{#1}} + {\doifelseutfmathfiller\mmlbasetoken \mmlunderbasefiller \mmlunderaccentchecker {#1}} +\stopxmlsetups + +\starttexdefinition mmllimopunder #1 + \mmlbasetoken\normalsubscript{\mmlfencedsecond{#1}} +\stoptexdefinition + +% munderover + +\starttexdefinition protected mmlunderoveraccentcheckerUO #1 + \edef\mmlundercommand{\utfmathcommandbelow\mmlundertoken} + \edef\mmlovercommand {\utfmathcommandabove\mmlovertoken} + \edef\mmlbasecommand {\mmlovercommand\mmlundercommand} + \ifcsname\mmlbasecommand\endcsname + \lastnamedcs {\mmlfencedfirst{#1}} + \orelse\ifcsname\mmlundercommand\endcsname + \ifcsname\mmlovercommand\endcsname + \lastnamedcs {\csname\mmlundercommand\endcsname{\mmlfencedfirst{#1}}} + \else + \mmldoubletriplet {\csname\mmlundercommand\endcsname{\mmlfencedfirst{#1}}} {\mmlfencedthird{#1}\mmlfencedthird{#1}} {} + \fi + \orelse\ifcsname\mmlovercommand\endcsname + \mmldoubletriplet {\csname\mmlovercommand\endcsname{\mmlfencedfirst{#1}}} {} {\mmlfencedsecond{#1}} + \else + \mmlunderoveraccentcheckerTT {#1} + \fi +\stoptexdefinition +\starttexdefinition protected mmlunderoveraccentcheckerUT #1 + \edef\mmlundercommand{\utfmathcommandbelow\mmlundertoken} + \edef\mmlbasecommand {\mmlundercommand text} + \ifcsname\mmlbasecommand\endcsname + \lastnamedcs {\mmlfencedfirst{#1}} {\mmlfencedthird{#1}} + \orelse\ifcsname\mmlundercommand\endcsname + \mmldoubletriplet {\csname\mmlundercommand\endcsname{\mmlfencedfirst{#1}}} {\mmlfencedthird{#1}} {} + \else + \mmlunderoveraccentcheckerTT {#1} + \fi +\stoptexdefinition +\starttexdefinition protected mmlunderoveraccentcheckerOT #1 + \edef\mmlovercommand{\utfmathcommandabove\mmlovertoken} + \edef\mmlbasecommand{\mmlovercommand text} + \ifcsname\mmlbasecommand\endcsname + \lastnamedcs {\mmlfencedfirst{#1}} {\mmlfencedsecond{#1}} + \orelse\ifcsname\mmlovercommand\endcsname + \mmldoubletriplet {\csname\mmlovercommand\endcsname{\mmlfencedfirst{#1}}} {} {\mmlfencedsecond{#1}} + \else + \mmlunderoveraccentcheckerTT {#1} + \fi +\stoptexdefinition +\starttexdefinition protected mmlunderoveraccentcheckerTT #1 + \mmldoubletriplet {\mmlfencedfirst{#1}} {\mmlfencedthird{#1}} {\mmlfencedsecond{#1}} \relax +\stoptexdefinition +\starttexdefinition protected mmlunderoveraccentchecker #1 + \edef\mmlundertoken{\mmlextensible{\xmlraw{#1}{/mml:*[2]}}}% /text() + \edef\mmlovertoken {\mmlextensible{\xmlraw{#1}{/mml:*[3]}}}% /text() + \doifelseutfmathbelow\mmlundertoken { + \doifelseutfmathabove\mmlovertoken \mmlunderoveraccentcheckerUO \mmlunderoveraccentcheckerUT {#1} + } { + \doifelseutfmathabove\mmlovertoken \mmlunderoveraccentcheckerOT \mmlunderoveraccentcheckerTT {#1} + } +\stoptexdefinition + +\starttexdefinition protected mmlunderoverbasefiller #1 + \mmlexecutecommand{e\utfmathcommandfiller\mmlbasetoken} \relax {\mmlfencedthird{#1}} {\mmlfencedsecond{#1}} +\stoptexdefinition + +\startxmlsetups mml:munderover + \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text() + \doifelseutfmathlimop\mmlbasetoken + {\mmllimopunderover{#1}} + {\doifelseutfmathfiller\mmlbasetoken \mmlunderoverbasefiller \mmlunderoveraccentchecker {#1}} +\stopxmlsetups + +\starttexdefinition mmllimopunderover #1 + \mmlbasetoken\normalsuperscript{\mmlfencedthird{#1}}\normalsubscript{\mmlfencedsecond{#1}} +\stoptexdefinition + +% tables (mml:mtable, mml:mtr, mml:mlabledtr, mml:mtd) + +\startxmlsetups mml:mtable % some more attributes need to be supported + \vcenter { + \hbox {% needed because otherwise positions make the vcenter wide + \mathml_mtable{#1} + } + } +\stopxmlsetups + +\startxmlsetups mml:mcolumn + \vbox{\mathml_mcolumn{#1}}% needs checking +\stopxmlsetups + +\def\mmlsetfakewidth#1{\setbox\scratchbox\hbox{#1}\scratchdimen\wd\scratchbox} + +\def\mmlmcolumndigitspace {\mmlsetfakewidth {0}\kern\scratchdimen} +\def\mmlmcolumndigitrule {\mmlsetfakewidth {0}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax} +\def\mmlmcolumnsymbolrule {\mmlsetfakewidth{\times}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax} +\def\mmlmcolumnpunctuationrule{\mmlsetfakewidth {.}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax} + +\setupMMLappearance[mspace][\c!option=] % \v!test + +\startxmlsetups mml:mspace + \begingroup + \edef\mmlspacetext{\xmlatt{#1}{spacing}} + \ifempty\mmlspacetext + \scratchwidth \xmlattdef{#1}{width} \!!zeropoint % must be string + \scratchheight\xmlattdef{#1}{height}\!!zeropoint + \scratchdepth \xmlattdef{#1}{depth} \!!zeropoint + \ifdim\scratchheight=\zeropoint + \ifdim\scratchdepth=\zeropoint\else + \novrule\s!depth\scratchdepth\s!height\zeropoint\s!width\zeropoint + \fi + \else + \novrule\s!depth\zeropoint\s!height\scratchheight\s!width\zeropoint + \fi + \ifdim\scratchwidth=\zeropoint + \orelse\ifx\MMLmspaceoption\v!test + \hbox to \scratchwidth{\showstruts\strut\hss\lower2\exheight\hbox{\infofont\xmlattdef{#1}{width}}\hss\strut} + \else + \hskip\scratchwidth + \fi + \orelse\ifx\MMLmspaceoption\v!test + \hbox{\showstruts\strut\phantom{\triggermathstyle\normalmathstyle\mmlspacetext}\strut} + \else + \phantom{\triggermathstyle\normalmathstyle\mmlspacetext} + \fi + \endgroup +\stopxmlsetups + +% later we can do a better job by manipulating node lists + +% \startxmlsetups mml:mline +% % new, rather undefined, we need to capture a few keywords +% \edef\mmllinewidth {\xmlatt{#1}{linethickness}} +% \edef\mmllinetext {\xmlatt{#1}{spacing}} +% \edef\mmllinelength{\xmlattdef{#1}{length}\!!zeropoint} +% \ifempty\mmllinewidth +% \!!deptha.5\linewidth +% \else +% \!!deptha.5\dimexpr\mmllinewidth\relax +% \fi +% \!!heighta\!!deptha +% \ifempty\mmllinetext +% \ifempty\mmllinelength +% \!!widtha\zeropoint +% \else +% \!!widtha\mmllinelength +% \fi +% \else +% \setbox\scratchbox\hbox{\mathematics{\mathstyle{\mmllinetext}}}% not ok +% \!!widtha\wd\scratchbox +% \fi +% \hbox{\vrule\s!width\!!widtha\s!depth\!!deptha\s!height\!!heighta} +% \stopxmlsetups + +\startxmlsetups mml:mglyph % probably never ok (hbox is needed in order to switch to normal font) + \begingroup + \edef\mmlglyphfontfamily{\xmlatt {#1}{fontfamily}} + \edef\mmlglyphalt {\xmlattdef{#1}{alt}{unknown}} + \edef\mmlglyphindex {\xmlatt {#1}{index}} + \ifempty\mmlglyphfontfamily + \hbox{\tttf[no fontfamily specified for \mmlglyphalt]} + \orelse\ifempty\mmlglyphindex + \hbox{\tttf[no index specified for \mmlglyphalt]} + \else + \hbox{\getglyph\mmlglyphfontfamily\mmlglyphindex} + \fi + \endgroup +\stopxmlsetups + +\startxmlsetups mml:maligngroup \stopxmlsetups % will be done when needed +\startxmlsetups mml:malignmark \stopxmlsetups % will be done when needed + +\startxmlsetups mml:none \stopxmlsetups +\startxmlsetups mml:mprescripts \stopxmlsetups + +\startxmlsetups mml:mmultiscripts + \mathml_mmultiscripts{#1} +\stopxmlsetups + +% goodie + +\definebuffer[mml] + +\permanent\protected\def\stopmml{\xmlprocessbuffer{@mml@}{\thedefinedbuffer{mml}}{}} + +\stopmodule + +\protect \endinput + +% TODO: +% +% +% +% b +% b +% a +% +% +% bb +% b +% a +% +% diff --git a/tex/context/patterns/lmtx/lang-de.llg b/tex/context/patterns/lmtx/lang-de.llg deleted file mode 100644 index 89b8eef1f..000000000 --- a/tex/context/patterns/lmtx/lang-de.llg +++ /dev/null @@ -1,4010 +0,0 @@ --- In ConTeXt we have several mechanisms to deal with compound words, ligatures etc. --- We have language features, font features, in-stream replacers etc. At some point --- Denis Maier played with all of this and in the process we decided to look at yet --- another variant. For that we also needed lists of words and he came with one at: --- --- https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wordlist.tex --- --- I'm not sure where that list originates (to be sorted out) and didn't look into --- how it is used (as we already followed different routes when we started with --- MKIV). So instead Denis started with some corpus and sdripted the lists instead. --- One reason is to deal with compound words (for which we have multiple mechanisms) --- in a more automates way, using modern LMTX features. So this is not for MKIV (at --- least not now). This mechanism can and will also deal with some other language --- issues. - --- Comment : this is a starting point, not de definitve list of words --- Todo : break down this list in more meaningfull categories (like 'matches') --- Todo : maybe make options into a tabel with named option sets (only if needed) --- Todo : check if we need more at the engine level - -return { - name = "german", - version = "1.00", - comment = "Goodies that complement german.", - author = "Denis Maier & Hans Hagen", - copyright = "ConTeXt development team & whoever made this list / corpus", - options = { - { - words = [[ - -- - Auf|lauf|bremse - Auf|lauf|bremsen - Auf|lauf|theorien - Auf|triebsrumpf|konzept - -- - Auf|fangfläche - Auf|fangversicherungspflicht - Auf|fangversicherungspflichtige - Auf|fangversicherungspflichtigen - Auf|fangversicherungspflichtiger - Auf|lageflaeche - Auf|lagefläche - Auf|lageflächen - Auf|lagenflut - Auf|lageziffer - Auf|lageziffern - Auf|lauffläche - Dampf|lokomotiventreffen - Schöpf|löffel - Schöpf|löffeln - Tief|fliegerangriff - Tief|fliegerangriffe - Tief|fliegerangriffen - Tief|flugangriffen - Tief|landfluss - Tief|landflüsse - Auf|lageflächen - Auf|lagenziffer - Auf|lagenziffern - Schöpf|löffels - Tief|löffel - Tief|löffelbagger - Tief|löffelbaggern - Tief|löffels - tief|löffeln - -- - Grafikauf|lösung - Grafikauf|lösungen - Grafikkartenauf|lösung - Grafikkartenauf|lösungen - -- - Auf|triebskraft - Auf|triebskräf|te - Auf|trifft - Brief|trägergewerkschaft - auf|trifft - auf|trumpft - auf|trumpf|te - ]], - }, - { - patterns = { - ff = "f|f", - fl = "f|l", - fi = "f|i", - ffi = "f|fi", - ffl = "f|fl", - }, - words = [[ - Auffahren - Auffahrende - Auffahrgefahr - Auffahrkollision - Auffahrkonvergenz - Auffahrrampe - Auffahrrampen - Auffahrt - Auffahrtrampe - Auffahrtrampen - Auffahrtsrampe - Auffahrtsrampen - Auffahrtsstraße - Auffahrtstag - Auffahrtswochenende - Auffahrung - Auffahrungen - Auffahrungslänge - Auffallen - Auffallend - Auffallende - Auffallendes - Auffallendstes - Auffalt-Smartphone - Auffaltung - Auffang - Auffangbehälter - Auffangbett - Auffangbeutel - Auffangbox - Auffangeinrichtung - Auffangeinrichtungen - Auffangen - Auffanggatter - Auffanggeräte - Auffanggesellschaft - Auffanggesellschaf|ten - Auffanggurt - Auffanghauses - Auffanglinie - Auffanglösung - Auffangnetz - Auffangnetze - Auffangorganisation - Auffangparkplätzen - Auffangposten - Auffangprogrammen - Auffangraum - Auffangregelungen - Auffangrinne - Auffangschale - Auffangschirm - Auffangschüsseln - Auffangsgesellschaft - Auffangsieb - Auffangstation - Auffangstationen - Auffangstelle - Auffangstellung - Auffangstruktur - Auffangsystem - Auffangtatbestand - Auffangtrichter - Auffangverein - Auffangvolumen - Auffangzentrum - Auffangziele - Auffangzuständigkeit - Auffarth - Auffarths - Auffassungsreichweite - Auffassungstests - Auffassungsunterschied - Auffassungsunterschiede - Auffassungsunterschieden - Auffassungsweise - Auffinden - Auffindens - Auffindeort - Auffindesituation - Auffindsituation - Auffindungschancen - Auffindungsort - Aufflackern - Aufflammen - Auffliegen - Auffliegende - Aufflutung - Auffordern - Auffordernd - Auffordernde - Aufforderungscharakter - Aufforderungsschreiben - Aufforderungssignal - Aufforderungssignale - Aufforstungsaktivitäten - Aufforstungsarbeiten - Aufforstungsbescheid - Aufforstungsgebiets - Aufforstungsmaßnahmen - Aufforstungsprogramm - Aufforstungsprojekt - Aufforstungsprojekten - Aufforstungsprojekts - Aufforstungsunternehmen - Auffressen - Auffrischen - Auffrischimpfung - Auffrischungsimpfung - Auffädeln - Auffäliig - Auffällig - Auffällige - Auffälligen - Auffälliger - Auffälligerweise - Auffälliges - Auffälligkeit - Auffälligkeiten - Auffälligkeitsgrad - Auffälligste - Auffälligsten - Auffälligster - Auffälligstes - Aufführen - Aufführung - Aufführungen - Aufführungen/Lesungen - Aufführungsabende - Aufführungsapparate - Aufführungsbedingungen - Aufführungsblöcken - Aufführungsdaten - Aufführungsdauer - Aufführungsformate - Aufführungsgeschichte - Aufführungskritik - Aufführungskünste - Aufführungslandes - Aufführungsmaterial - Aufführungsmateriale - Aufführungsort - Aufführungsorte - Aufführungsorten - Aufführungspause - Aufführungspraktiken - Aufführungspraxis - Aufführungsprotokollen - Aufführungsprozess - Aufführungsrecht - Aufführungsreihe - Aufführungsrepertoire - Aufführungsserien - Aufführungsstätte - Aufführungstermine - Aufführungsterminen - Aufführungstradition - Aufführungstraditionen - Aufführungsverbot - Aufführungsverbote - Aufführungsvollprivileg - Aufführungswoche - Aufführungswochen - Aufführungszahlen - Aufführungszeit - Auffüllarbeiten - Auffüllen - Auffüller - Auffüllgebühren - Auffüllkapazität - Auffüllmaterial - Auffütterung - Aufladbarkeit - Auflade-Codes - Aufladedauer - Aufladegeschwindigkeit - Aufladekabel - Aufladekarten - Auflademädchen - Auflademöglichkeiten - Aufladen - Aufladens - Aufladereglung - Aufladesteuerung - Aufladesystem - Auflage - Auflagebereich - Auflagebügel - Auflagedatum - Auflagedruck - Auflagefrist - Auflagehöhe - Auflagekante - Auflagekräf|te - Auflagemaß - Auflagemaßes - Auflagen - Auflagenbegrenzung - Auflagenbezeichnung - Auflagendruck - Auflagendruckprozess - Auflageneinbußen - Auflagenentwicklung - Auflagenerfüllung - Auflagenfolge - Auflagenhöhe - Auflagenhöhen - Auflagenkontrolle - Auflagenniedergang - Auflagenobjekte - Auflagenpolitik - Auflagenrückgang - Auflagensparte - Auflagenstatistik - Auflagensteigerung - Auflagenstärkste - Auflagenverfügung - Auflagenverlust - Auflagenverstöße - Auflageprojekt - Auflagepunkt - Auflagepunkte - Auflager - Auflagerbereich - Auflagerkräf|te - Auflagern - Auflagerreaktionen - Auflagers - Auflagerung - Auflagerungen - Auflageschützen - Auflagespülen - Auflagesteine - Auflageverfahren - Auflagezeit - Auflagezimmer - Auflandungen - Auflandungsteiche - Auflassungsvormerkung - Auflast - Auflasten - Auflauf-/Kuchenform - Auflauf-Alternative - Auflaufen - Auflaufrolle - Auflaufschäden - Auflaufunfall - Aufleben - Auflebstiftung - Auflege-Vibrator - Auflegekanten - Auflegen - Auflegen-Symbol - Aufleger - Auflegern - Auflegung - Aufleuchten - Aufleuchtenlassen - Aufleveln - Auflicht - Auflichtbildverarbeitung - Auflichtmikroskopie - Auflichtprojektoren - Auflieferung - Aufliegen - Auflieger - Aufliegern - Aufliegers - Aufliegezeit - Auflisten - Auflockern - Auflockerungsboden - Auflockerungsgebiete - Aufloesung - Auflösen - Auflöser - Auflösezeit - Auflösung - Auflösungs-Dreisatz - Auflösungs-Erscheinungen - Auflösungsantrag - Auflösungsarbeit - Auflösungsbeschluß - Auflösungsbeschlüsse - Auflösungsentscheidung - Auflösungsgrund - Auflösungsproezsses - Auflösungstendenzen - Auflösungsunabhängigkeit - Auflösungsverlust - Auflösungsverlusts - Auflösungsvermögen - Auflösungsvermögens - Auflösungsversammlung - Auflösungsvertrag - Auflösungsvertrages - Auflösungsverträge - Auflösungsvorgang - Auflösungszeichen - Auflösungszeitpunkt - Auflüge - Brieffassung - Briefformat - Brieffreund - Brieffreunde - Brieffreundin - Brieffreundschaft - Brieffreundschaf|ten - Briefinhalt - Briefinhalten - Brieflauf - Brieflieferungen - Brieflos - Cheffluglehrer - Chefforscherinnen - Chefideologen - Cheflektor - Cheflimousinen - Cheflobbyistin - Dampffahne - Dampffahrt - Dampffahrzeugen - Dampffeuerspritze - Dampffontäne - Dampffrachter - Dampffreunden - Dampffördermaschine - Dampffördermaschinen - Dampfladen - Dampflagerstätten - Dampfleck - Dampfleitung - Dampfleitungen - Dampfleitungsverbindung - Dampflock - Dampflockbetriebs - Dampflockzug - Dampflok - Dampflok-Nostalgie - Dampflokabschied - Dampflokbau - Dampflokbaureihe - Dampflokbehandlungsanlagen - Dampflokbestand - Dampflokbetrieb - Dampflokeinsatz - Dampflokeinsatzes - Dampflokeldorados - Dampflokentwicklung - Dampflokfahrten - Dampflokführer - Dampflokhalle - Dampflokheizer - Dampfloki-Verein - Dampflokklinik - Dampflokkonstruktion - Dampflokmuseum - Dampflokomobile - Dampflokomotiv-Betriebswerk - Dampflokomotiv-Museums - Dampflokomotiv-Produktion - Dampflokomotivbau - Dampflokomotivbaureihe - Dampflokomotive - Dampflokomotivendepot - Dampflokomotivgattung - Dampflokomotivreihe - Dampfloks - Dampflokwerk - Dampflokzeit - Dampflokzuschlag - Dampfluftbefeuchter - Dorffeiern - Dorffeld - Dorffeldes - Dorffest - Dorffest-Atmosphäre - Dorffest-Ausschuss - Dorffeste - Dorffesten - Dorffestes - Dorffestgemeinschaft - Dorffestmacher - Dorffestung - Dorffilialen - Dorfflohmarkt - Dorfflur - Dorffläche - Dorfform - Dorfformen - Dorffrauen - Dorffreunde - Dorffriedhof - Dorffriedhofes - Dorffußball - Dorfführungen - Dorfidyll - Dorfidylle - Dorfinnern - Dorfitter - Dorflada - Dorfladenboten - Dorfladenkonzepte - Dorfladens - Dorflage - Dorflagen - Dorflazaretten - Dorfleben - Dorflebens - Dorflehrer - Dorflehrerin - Dorflif|te - Dorflinde - Dorflinden - Dorfliste - Dorflädchen - Dorfläden - Fünfliber - Fünfligist - Fünfliter-V2 - Golffahrer - Golffahrerin - Golffahrers - Golffalte - Golfferien - Golflegende - Golflehrer - Golflehrerin - Golflektion - Golfliebhaber - Hanffabrik - Hanffaser - Hanffasern - Hanffaserproduktion - Hanffeld - Hanffreund - Hanffreunde - Hanfland-Ullrich - Hanfling - Hanfliteratur - Hoffahrt - Hoffaktor - Hoffaktoren - Hoffaktorin - Hoffaschen - Hoffassade - Hoffassaden - Hoffest - Hoffeste - Hoffesten - Hoffestes - Hoffilmer - Hoffilmerin - Hofflohmarkt - Hoffläche - Hofflächen - Hofflächenprogramm - Hofflügel - Hoffolgezeugnis - Hofform - Hofformen - Hoffotograf - Hoffotografen - Hoffrogge - Hoffront - Hoffräulein - Hoffung - Hoffungen - Hoffungsschimmer - Hoffungsträger - Hofi - Hofimmobilien - Hofinger - Hofinhaber - Hofinsel - Hofintendanten - Hofintrige - Hofintrigen - Hoflackierer - Hofladen-Hütte - Hofladen-Verkauf - Hofladens - Hoflader - Hoflager - Hofland - Hoflandwirtschaft - Hoflebens - Hoflehrer - Hofleitner - Hofleute - Hofleuten - Hoflicht - Hoflieferant - Hoflieferanten - Hoflieferantendiplom - Hoflieferantentitel - Hoflinger - Hoflingerin - Hoflingers - Hoflnung - Hoflädeli - Hofläden - Hoflößnitz - Hoflößnitzer - Huflederhaut - Impffachleute - Impffest - Impffrage - Impffragen - Impffrist - Impfleistung - Impflicht - Impfling - Impflinge - Impflingen - Impflings - Impfliste - Impflogistik - Impflösungen - Impflücken - Kampffahrzeug - Kampffahrzeuge - Kampffahrzeugen - Kampffahrzeugs - Kampffeld - Kampffeldes - Kampffelds - Kampffertigkeit - Kampffertigkeiten - Kampfform - Kampfformation - Kampfformationen - Kampfformen - Kampffrage - Kampffähigkeiten - Kampfinstrument - Kampflager - Kampfleistung - Kampflesben - Kampflinie - Kampflos - Kampflose - Kampfluren - Kampflustig - Kampfläufer - Kampfläufers - Kaufimpuls - Kaufimpulse - Kaufingerstraße - Kaufinteressent - Klopffestigkeit - Klopffestigkeitsgründen - Kopffalten - Kopffedern - Kopffeld - Kopfformen - Kopffraktion - Kopffreiheit - Kopffutter - Kopffärbung - Kopffüssler - Kopffüßer - Kopffüßer-Kamasutra - Kopffüßern - Kopffüßers - Kopffüßler - Kopffüßler-Wesen - Kopflehne - Kopfleidens - Kopflose - Kopflosen - Kopflosigkeit - Kopflänge - Kopfläuse - Köpfli - Laufinlay - Laufinnere - Pfeiflaute - Pfeifle - Prüffall - Prüffallbearbeitungen - Prüffassung - Prüffehler - Prüffelder - Prüfflug - Prüffrist - Prüffristen - Prüffällen - Prüflaboratorien - Prüflaboratorium - Prüflabors - Prüflager - Prüflauf - Prüfleiter - Prüflinges - Prüflingsanschluss - Prüflingslänge - Prüflizenzen - Prüfläufe - Reifland-Wünschendorf - Reifling-Formation - Relieflinie - Ruflaute - Rufli - Rufling - Rumpff - Rumpffamilien - Rumpfflächen - Rumpfform - Rumpfformen - Rumpfinneren - Schaffarmen - Schaflechner - Schaflerhofes - Schieflast - Schiefling - Schilff - Schilffläche - Schilfflächen - Schlaflabor - Schlaflabore - Schlaflaboren - Schlaflaborpersonal - Schlaflabors - Schlaflager - Schlaflagern - Schlaflandschaft - Schlafleben - Schlafliegen - Schlaflos - Schlaflose - Schlafly - Schlaflys - Schlaflähmungen - Schleiflack - Schleiflade - Schleifladen - Schleifladen-Instrument - Schleifladenorgel - Schleifladenorgeln - Schleifleiste - Schleifleisten - Schleifleistung - Schweiflänge - Senffabrik - Straflandesgericht - Straflandesgerichts - Strafleiden - Strafleistung - Straflingsinspektor - Straflingskolonie - Straflinie - Straflos - Straflosigkeit - Sumpffarngewächse - Sumpffieberepidemie - Sumpffläche - Sumpfflächen - Sumpflandschaft - Sumpflandschaf|ten - Sumpfloch - Sumpfläufer - Sumpflöcher - Surfleet - Surflegende - Surflehrer - Surflehrerbody - Surflehrerin - Surfliner - Tariffestsetzungen - Tarifflucht - Tarifforderungen - Tariffortschreibung - Tariffragen - Tariffuchs - Tarifindex - Tarifinformation - Tarifinformationen - Tarifinnovationen - Tariflandschaft - Tarifleistung - Tariflich - Tariflichen - Tarifliste - Tariflohnentwicklung - Tariflohnerhöhungen - Tariflohnsteigerung - Tieffeldverschiebung - Tieffenbach - Tieffenbrucker - Tieffliegende - Tieffliegererkennung - Tieffliegervernichtungsabzeichen - Tiefflugaktivitäten - Tiefflugeinsätze - Tieffluggebiete - Tiefflugschneisen - Tieffrieren - Tiefladeanhänger - Tiefladern - Tiefladers - Tiefladewagen - Tiefland - Tiefland-Plätzen - Tiefland-Regenwälder - Tiefland-Regenwäldern - Tiefland-Verlag - Tieflandbach - Tieflandbäche - Tieflandebene - Tieflandfarmern - Tieflandgebiete - Tieflandgebieten - Tieflandregenwald - Tieflandregenwald-Schutzgebietes - Tieflandregenwälder - Tieflandregionen - Tieflandsbucht - Tieflandstrecke - Tieflandwaldgürtel - Tieflandwälder - Tieflandwäldern - Tieflauter - Tieflegung - Tieflochbohren - Tieflohnbereich - Tieflohnjobs - Tieflöhne - Topflappen - Torflaute - Torflieferungen - Torflinse - Wurflanzen - auffaellig - auffaelliges - auffallend - auffasern - auffetten - auffinbar - aufflackernde - aufflackernden - aufflanschen - aufflog - auffraß - auffraßen - auffußen - auffällig - auffälligerweise - aufführungspraktische - aufführungspraktischem - aufführungsreif - auflag - auflagefreie - auflagen - auflagenbewehrte - auflagenfördernde - auflagenmäßig - auflagenstarke - auflagenstarken - auflagenstärkste - auflagenstärksten - auflagernden - auflastet - auflauert - auflauft - auflegen - aufleveln - auflevelt - auflief - aufliefen - aufliest - auflud - aufluden - auflässigen - auflösen - auflösenden - auflösung - auflösungen - auflösungsgerichteten - brieflich - dampffrei - dampflokbetriebene - dorffreie - fünflappig - fünflappige - fünflappigen - hanffarbenen - kampffertig - kampffrei - kampffreudige - kampflastig - klopffeste - klopffesten - kopfförmig - kopfförmige - laufintensiven - prüffähigen - schieflaufen - schieflief - schifflosen - schlaflose - senffarbenen - steifleinern - straflager - tariffremden - tariffähigen - tariflose - tieffrequenten - tieffrequenter - tiefinnere - Ablauffolge - Ablauffolgen - Ablauffähigkeit - Ablauffähigkeiten - Ablaufleitung - Ablaufleitungen - Ablaufliste - Ablauflisten - Abruffunktion - Abruffunktionen - Anruffalle - Anruffallen - Anruffunktion - Anruffunktionen - Anzweiflung - Anzweiflungen - Auffahrten - Auffahrtsweg - Auffahrunfall - Auffahrunfalls - Auffahrunfälle - Auffahrunfällen - Auffaltungen - Auffangbecken - Auffangbeckens - Auffanglager - Auffanglagern - Auffanglagers - Auffangregister - Auffangregistern - Auffangregisters - Auffangt - Auffangvorrichtung - Auffangvorrichtungen - Auffangwanne - Auffangwannen - Auffangweiche - Auffangweichen - Auffassbarkeit - Auffassbarkeiten - Auffassung - Auffassungen - Auffassungsgabe - Auffassungsgaben - Auffassungsvermögen - Auffassungsvermögens - Auffindbarkeit - Auffindbarkeiten - Auffindung - Auffindungen - Aufflackerns - Aufforderung - Aufforderungen - Aufforstung - Aufforstungen - Auffrischung - Auffrischungen - Auffächerung - Auffächerungen - Aufführung - Aufführungen - Aufführungsstatistik - Aufführungsstil - Aufführungsstile - Aufführungsstilen - Aufführungsstils - Auffüllung - Auffüllungen - Auflader - Aufladerin - Aufladerinnen - Aufladern - Aufladers - Aufladet - Aufladevorgang - Aufladevorgangs - Aufladung - Aufladungen - Auflage - Auflagen - Auflagenerhöhung - Auflagenerhöhungen - Auflagenstark - Auflagenstarke - Auflagenstarkem - Auflagenstarken - Auflagenstarker - Auflagenstarkes - Auflagenstärke - Auflagenzahl - Auflagenzahlen - Auflassung - Auflassungen - Auflauf - Auflaufform - Auflaufformen - Auflaufs - Auflehnung - Auflehnungen - Aufliegeschema - Auflistung - Auflistungen - Auflockerung - Auflockerungen - Auflockerungstendenz - Auflockerungstendenzen - Aufläufe - Aufläufen - Auflösung - Auflösungen - Auflösungsbeschluss - Auflösungsbeschlusses - Auflösungsbeschluß - Auflösungsbeschlüssen - Auflösungserscheinung - Auflösungserscheinungen - Auflösungsprozess - Auflösungsprozesse - Auflösungsprozessen - Auflösungsprozeß - Autobahnauffahrt - Bauauflage - Bauauflagen - Bettauflage - Bettauflagen - Bezweiflung - Bildschirmauflösung - Bildschirmauflösungen - Biohofladen - Bischoffinger - Brieffach - Briefform - Brieffächer - Briefintrige - Brieflaufzeiten - Chefflugleiter - Cheffunktion - Chefideologe - Dampfleistung - Dampflokomotiven - Darstellungsauffassung - Darstellungsauffassungen - Dauertropfflasche - Dorffeuerwehr - Dorfladen - Düsenkampfflugzeug - Eingabeaufforderung - Einwurffächer - Einzelhandelskaufleute - Einzelhandelskaufleuten - Erstaufführung - Erstauflage - Erstauflagen - Freiberufler - Freiberuflerin - Freiberuflerinnen - Freiberuflern - Freiberuflers - Freilichtaufführung - Freilichtaufführungen - Fünflinge - Fünflingen - Gastspielaufführung - Gebirgsauffaltung - Großkaufleute - Großkaufleuten -- Buddenbrooks - Grundauffassung - Grundauffassungen - Gugelhupfform - Handgreiflichkeit - Handgreiflichkeiten - Hofladen - Hofleben - Hufform - Häuflein - Häufleins - Impfflüssigkeit - Impffolgen - Impfforschung - Kampfflieger - Kampffliegers - Kampfflugzeug - Kampfflugzeuge - Kampfflugzeuges - Kampffront - Kampffähigkeit - Kampfführung - Kampflaune - Kampflied - Kampflieder - Kampfliedern - Kauffahrer - Kauffahrerin - Kauffahrerinnen - Kauffahrern - Kauffahrers - Kauffahrt - Kauffrau - Kauffrauen - Kaufindex - Kaufindizes - Kaufinteresse - Kaufinteressenten - Kaufladen - Kaufladens - Kauflaune - Kaufleidenschaft - Kaufleitung - Kaufleute - Kaufleuten - Kauflust - Kaufläden - Kettensträfling - Kettensträflinge - Kettensträflingen - Kettensträflings - Knopfloch - Knopflöcher - Kontoauflösung - Kopfform - Kopfleiste - Kreislauffunktion - Kreislaufleiden - Käuflichkeit - Köpflein - Lagerauffüllung - Lagerauflösung - Lauffeuer - Lauffeuern - Lauffeuers - Lauffolgen - Lauffähigkeit - Laufindex - Laufindexe - Laufindexen - Laufindexes - Laufindices - Laufleine - Laufleinen - Lauflernhilfen - Lebensauffassung - Lebensauffassungen - Liebhaberaufführung - Menschenkopfform - Mindestreserveauflagen - Monitorauflösung - Monitorauflösungen - Neuauflage - Neuauflagen - Oberstufler - Opernaufführung - Opernaufführungen - Parlamentsauflösung - Politikauffassung - Politikauffassungen - Produktionsauflagen - Prüffach - Prüffeld - Prüffächer - Prüfingenieur - Prüfling - Prüflinge - Prüflingen - Prüflings - Prüfliste - Prüflisten - Reichstagsauflösung - Restauflage - Restauflagen - Rinderkopffleisch - Schaffell - Schaffelle - Schaffellen - Schaffells - Schafleder - Schafledern - Schafleders - Scherflein - Scherfleins - Schieflage - Schieflagen - Schieflaufen - Schilffeld - Schilffelder - Schilfinsel - Schilfinseln - Schlafforscher - Schlafforschung - Schlaffrisur - Schlaflied - Schlaflieder - Schlafliedern - Schlafliedes - Schlaflieds - Schlaflosigkeit - Schlaflosigkeiten - Schlupfloch - Schlupfloches - Schlupflochs - Schlupflöcher - Schlupflöchern - Selbstauflösung - Serienbrieffunktion - Straffall - Straffalls - Strafforderung - Straffälle - Straflager - Straflagern - Straflagers - Streiflicht - Streiflichter - Streiflichtern - Streiflichts - Sträfling - Sträflinge - Sträflingen - Sträflings - Sturzkampfflugzeug - Sturzkampfflugzeuge - Sturzkampfflugzeugen - Sturzkampfflugzeugs - Sumpffieber - Sumpffliege - Sumpffliegen - Sumpfland - Sumpflandes - Sumpflands - Sumpflicht - Sumpflichter - Sumpfländer - Sumpfländern - Surfladen - Tariffalle - Tariffallen - Tarifforderung - Tariffront - Tariffähigkeit - Tariflohn - Tariflohns - Tariflöhne - Tariflöhnen - Theateraufführung - Theateraufführungen - Tiefflieger - Tieffliegern - Tieffliegers - Tiefflug - Tieffluges - Tiefflugs - Tiefflüge - Tiefflügen - Tiefladeprogramm - Tieflader - Tieflage - Tieflagen - Tiefland - Tieflandes - Tieflands - Tiefländer - Tiefländern - Torffeuer - Totenkopfflagge - Täufling - Täuflinge - Täuflingen - Täuflings - Tüpflischeißer - Tüpflischiesser - Umlauffähigkeit - Unauffindbarkeit - Unauffindbarkeiten - Unverkäuflichkeit - Uraufführung - Uraufführungen - Verkäuflichkeit - Verzweiflung - Verzweiflungsschritt - Verzweiflungstat - Voraufführung - Voraufführungen - Vorlaufindikator - Vorlaufindikatoren - Wahlkampffieber - Wahlkampfflamme - Wahlkampffloskeln - Wahlkampfflyer - Waldorflehrer - Waldorflehrerin - Waldorflehrerinnen - Waldorflehrern - Waldorflehrers - Wegwerfformat - Wettkampffieber - Wettkampfflair - Wettkampffläche - Wiederaufladung - Wirtschaftsauffassung - Wurflaune - Wölflein - Wölfling - Zahlungsaufforderung - Zahlungsaufforderungen - Zeitauflösung - Zupfinstrument - Zupfinstrumente - Zupfinstrumenten - Zupfinstrumentes - Zupfinstruments - Zweifler - Zweiflerin - Zweiflerinnen - Zweiflern - Zweiflers - Zweitauflage - Zweitauflagen - Zwölffingerdarm - Zwölffingerdarmes - Zwölffingerdarms - Zöpflein - ablauffähig - ablauffähige - ablauffähigem - ablauffähigen - ablauffähiger - ablauffähiges - arbeitskampffähig - auffahrbar - auffahrbare - auffahrbarem - auffahrbaren - auffahrbarer - auffahrbares - auffahre - auffahren - auffahrend - auffahrende - auffahrendem - auffahrenden - auffahrender - auffahrendes - auffahrt - auffalle - auffallen - auffallend - auffallende - auffallendem - auffallenden - auffallender - auffallendere - auffallenderem - auffallenderen - auffallenderer - auffallenderes - auffallenderweise - auffallendes - auffallendst - auffallendste - auffallendstem - auffallendsten - auffallendster - auffallendstes - auffallt - auffaltbar - auffand - auffanden - auffandest - auffandet - auffandst - auffangbar - auffangbare - auffangbarem - auffangbaren - auffangbarer - auffangbares - auffange - auffangen - auffangend - auffangende - auffangendem - auffangenden - auffangender - auffangendes - auffassbar - auffassbare - auffassbarem - auffassbaren - auffassbarer - auffassbares - auffasse - auffassen - auffassend - auffassende - auffassendem - auffassenden - auffassender - auffassendes - auffassens - auffassest - auffasst - auffasste - auffassten - auffasstest - auffasstet - auffaßt - auffaßte - auffaßten - auffaßtest - auffaßtet - auffiel - auffiele - auffielen - auffielst - auffielt - auffindbar - auffindbare - auffindbarem - auffindbaren - auffindbarer - auffindbares - auffinde - auffinden - auffindend - auffindende - auffindendem - auffindenden - auffindender - auffindendes - auffindens - auffindest - auffindet - auffing - auffinge - auffingen - auffingst - auffingt - auffische - auffischen - auffischend - auffischende - auffischendem - auffischenden - auffischender - auffischendes - auffischest - auffischst - auffischt - auffischte - auffischten - auffischtest - auffischtet - aufflackern - aufflamme - aufflammen - aufflammend - aufflammende - aufflammendem - aufflammenden - aufflammender - aufflammendes - aufflammst - aufflammt - aufflammte - aufflammten - aufflammtest - aufflammtet - auffliege - auffliegen - auffliegend - auffliegende - auffliegendem - auffliegenden - auffliegender - auffliegendes - auffliegst - auffliegt - auffloge - aufflogen - aufflogest - auffloget - aufflöge - aufflögen - aufflögest - aufflöget - auffordere - auffordern - auffordernd - auffordernde - aufforderndem - auffordernden - auffordernder - aufforderndes - aufforderns - aufforderst - auffordert - aufforderte - aufforderten - auffordertest - auffordertet - auffordre - aufforstbar - aufforstbare - aufforstbarem - aufforstbaren - aufforstbarer - aufforstbares - aufforste - aufforsten - aufforstend - aufforstende - aufforstendem - aufforstenden - aufforstender - aufforstendes - aufforstens - aufforstest - aufforstet - aufforstete - aufforsteten - aufforstetest - aufforstetet - auffrass - auffrassen - auffrassest - auffrasst - auffraß - auffraßest - auffraßt - auffresse - auffressen - auffressend - auffressende - auffressendem - auffressenden - auffressender - auffressendes - auffresst - auffreßt - auffrischbar - auffrischbare - auffrischbarem - auffrischbaren - auffrischbarer - auffrischbares - auffrische - auffrischen - auffrischend - auffrischende - auffrischendem - auffrischenden - auffrischender - auffrischendes - auffrischens - auffrischest - auffrischst - auffrischt - auffrischte - auffrischten - auffrischtest - auffrischtet - auffrisiere - auffrisieren - auffrisierend - auffrisierende - auffrisierendem - auffrisierenden - auffrisierender - auffrisierendes - auffrisierst - auffrisiert - auffrisierte - auffrisiertem - auffrisierten - auffrisierter - auffrisiertes - auffrisiertest - auffrisiertet - auffrisst - auffrißt - auffräse - auffräsen - auffräsest - auffräset - auffrässe - auffrässen - auffrässest - auffrässet - auffräße - auffräßen - auffräßest - auffräßet - auffuhr - auffuhren - auffuhrst - auffuhrt - auffächerbar - auffächerbare - auffächerbarem - auffächerbaren - auffächerbarer - auffächerbares - auffächere - auffächern - auffächernd - auffächernde - auffächerndem - auffächernden - auffächernder - auffächerndes - auffächerns - auffächerst - auffächert - auffächerte - auffächerten - auffächertest - auffächertet - auffächre - auffährst - auffährt - auffällig - auffällige - auffälligem - auffälligen - auffälliger - auffälligere - auffälligerem - auffälligeren - auffälligerer - auffälligeres - auffälliges - auffälligkeit - auffälligkeiten - auffälligst - auffälligste - auffälligstem - auffälligsten - auffälligster - auffälligstes - auffällst - auffällt - auffängst - auffängt - aufführbar - aufführbare - aufführbarem - aufführbaren - aufführbarer - aufführbares - aufführe - aufführen - aufführend - aufführende - aufführendem - aufführenden - aufführender - aufführendes - aufführens - aufführst - aufführt - aufführte - aufführten - aufführtest - aufführtet - auffüllbar - auffüllbare - auffüllbarem - auffüllbaren - auffüllbarer - auffüllbares - auffülle - auffüllen - auffüllend - auffüllende - auffüllendem - auffüllenden - auffüllender - auffüllendes - auffüllens - auffüllst - auffüllt - auffüllte - auffüllten - auffülltest - auffülltet - aufisst - auflache - auflachen - auflachend - auflachende - auflachendem - auflachenden - auflachender - auflachendes - auflachst - auflacht - auflachte - auflachten - auflachtest - auflachtet - aufladbar - aufladbare - aufladbarem - aufladbaren - aufladbarer - aufladbares - auflade - aufladen - aufladend - aufladende - aufladendem - aufladenden - aufladender - aufladendes - aufladens - auflandig - auflandige - auflandigem - auflandigen - auflandiger - auflandiges - auflasse - auflassen - auflassend - auflassende - auflassendem - auflassenden - auflassender - auflassendes - auflassens - auflasst - auflauere - auflauern - auflauernd - auflauernde - auflauerndem - auflauernden - auflauernder - auflauerndes - auflauerst - auflauert - auflauerte - auflauerten - auflauertest - auflauertet - auflaufe - auflaufen - auflaufend - auflaufende - auflaufendem - auflaufenden - auflaufender - auflaufendes - auflaure - auflaßt - auflebe - aufleben - auflebend - auflebende - auflebendem - auflebenden - auflebender - auflebendes - auflebst - auflebt - auflebte - auflebten - auflebtest - auflebtet - auflege - auflegen - auflegend - auflegende - auflegendem - auflegenden - auflegender - auflegendes - auflegst - auflegt - auflegte - auflegten - auflegtest - auflegtet - auflehne - auflehnen - auflehnend - auflehnende - auflehnendem - auflehnenden - auflehnender - auflehnendes - auflehnens - auflehnst - auflehnt - auflehnte - auflehnten - auflehntest - auflehntet - auflese - auflesen - auflesend - auflesende - auflesendem - auflesenden - auflesender - auflesendes - auflest - aufleuchte - aufleuchten - aufleuchtend - aufleuchtende - aufleuchtendem - aufleuchtenden - aufleuchtender - aufleuchtendes - aufleuchtest - aufleuchtet - aufleuchtete - aufleuchteten - aufleuchtetest - aufleuchtetet - aufliege - aufliegen - aufliegend - aufliegende - aufliegendem - aufliegenden - aufliegender - aufliegendes - aufliegst - aufliegt - aufliesse - aufliessen - aufliessest - aufliesset - aufließe - aufließen - aufließest - aufließet - auflistbar - auflistbare - auflistbarem - auflistbaren - auflistbarer - auflistbares - aufliste - auflisten - auflistend - auflistende - auflistendem - auflistenden - auflistender - auflistendes - auflistens - auflistest - auflistet - auflistete - auflisteten - auflistetest - auflistetet - auflockere - auflockern - auflockernd - auflockernde - auflockerndem - auflockernden - auflockernder - auflockerndes - auflockerns - auflockerst - auflockert - auflockerte - auflockerten - auflockertest - auflockertet - auflockre - auflodere - auflodern - auflodernd - auflodernde - aufloderndem - auflodernden - auflodernder - aufloderndes - aufloderns - aufloderst - auflodert - aufloderte - aufloderten - auflodertest - auflodertet - auflodre - auflädst - auflädt - aufläuft - auflösbar - auflösbare - auflösbarem - auflösbaren - auflösbarer - auflösbares - auflöse - auflösen - auflösend - auflösende - auflösendem - auflösenden - auflösender - auflösendes - auflösens - auflösest - auflöst - auflöste - auflösten - auflöstest - auflöstet - auflüde - auflüden - auflüdest - auflüdet - begreiflich - begreifliche - begreiflichem - begreiflichen - begreiflicher - begreiflichere - begreiflicherem - begreiflicheren - begreiflicherer - begreiflicheres - begreiflicherweise - begreifliches - begreiflichst - begreiflichste - begreiflichstem - begreiflichsten - begreiflichster - begreiflichstes - behilflich - behilfliche - behilflichem - behilflichen - behilflicher - behilfliches - beruflich - berufliche - beruflichem - beruflichen - beruflicher - berufliches - bezweifle - bezweiflete - bezweifleten - bischöflich - bischöfliche - bischöflichem - bischöflichen - bischöflicher - bischöfliches - brieflich - briefliche - brieflichem - brieflichen - brieflicher - briefliches - darauffolge - darauffolgen - darauffolgend - darauffolgende - darauffolgendem - darauffolgenden - darauffolgender - darauffolgendes - darauffolgst - darauffolgt - darauffolgte - darauffolgten - darauffolgtest - darauffolgtet - drauflege - drauflegen - drauflegend - drauflegende - drauflegendem - drauflegenden - drauflegender - drauflegendes - drauflegst - drauflegt - drauflegte - drauflegten - drauflegtest - drauflegtet - drauflos - drauflosgegangen - drauflosgegangene - drauflosgegangenem - drauflosgegangenen - drauflosgegangener - drauflosgegangenes - drauflosgehe - drauflosgehen - drauflosgehend - drauflosgehende - drauflosgehendem - drauflosgehenden - drauflosgehender - drauflosgehendes - drauflosgehst - drauflosgeht - drauflosging - drauflosginge - drauflosgingen - drauflosgingst - drauflosgingt - dörflich - dörfliche - dörflichem - dörflichen - dörflicher - dörfliches - elffach - elffache - elffachem - elffachen - elffacher - elffaches - elffingrig - elffingrige - erzbischöflich - erzbischöfliche - erzbischöflichem - erzbischöflichen - erzbischöflicher - erzbischöfliches - freiberuflich - freiberufliche - freiberuflichem - freiberuflichen - freiberuflicher - freiberufliches - fünffach - fünffache - fünffachem - fünffachen - fünffacher - fünffaches - fünffingerig - fünffingerige - fünffingerigem - fünffingerigen - fünffingeriger - fünffingeriges - glimpflich - glimpfliche - glimpflichem - glimpflichen - glimpflicher - glimpfliches - handgreiflich - handgreifliche - handgreiflichem - handgreiflichen - handgreiflicher - handgreifliches - hauptberuflich - hauptberufliche - hauptberuflichem - hauptberuflichen - hauptberuflicher - hauptberufliches - hilflos - hilflose - hilflosem - hilflosen - hilfloser - hilflosere - hilfloserem - hilfloseren - hilfloserer - hilfloseres - hilfloses - hilflosest - hilfloseste - hilflosestem - hilflosesten - hilflosester - hilflosestes - hinauffahre - hinauffahren - hinauffahrend - hinauffahrende - hinauffahrendem - hinauffahrenden - hinauffahrender - hinauffahrendes - hinauffahrt - hinauffuhr - hinauffuhren - hinauffuhrst - hinauffuhrt - hinauffährt - hinaufführe - hinaufführen - hinaufführend - hinaufführende - hinaufführendem - hinaufführenden - hinaufführender - hinaufführendes - hinaufführst - hinaufführt - hinaufführte - hinaufführten - hinaufführtest - hinaufführtet - hochauflösend - hochauflösende - hochauflösendem - hochauflösenden - hochauflösender - hochauflösendes - hoffähig - höflich - höfliche - höflichem - höflichen - höflicher - höflichere - höflicherem - höflicheren - höflicherer - höflicheres - höfliches - höflichkeit - höflichkeiten - höflichkeitsbesuche - höflichkeitsbesuches - höflichkeitsformeln - höflichst - höflichste - höflichstem - höflichsten - höflichster - höflichstes - kampffähig - kampffähige - kampffähigem - kampffähigen - kampffähiger - kampffähiges - kampflos - kampflose - kampflosem - kampflosen - kampfloser - kampfloses - kampflustig - kampflustige - kampflustigem - kampflustigen - kampflustiger - kampflustigere - kampflustigerem - kampflustigeren - kampflustigerer - kampflustigeres - kampflustiges - kampflustigst - kampflustigste - kampflustigstem - kampflustigsten - kampflustigster - kampflustigstes - kauflustig - kauflustige - kauflustiger - kauflustigste - kauflustigsten - kopflastig - kopflastige - kopflastigem - kopflastigen - kopflastiger - kopflastiges - kopflos - kopflose - kopflosem - kopflosen - kopfloser - kopflosere - kopfloserem - kopfloseren - kopfloserer - kopfloseres - kopfloses - kopflosest - kopfloseste - kopflosestem - kopflosesten - kopflosester - kopflosestes - käuflich - käufliche - käuflichem - käuflichen - käuflicher - käufliches - lauffähig - lauffähige - lauffähigem - lauffähigen - lauffähiger - lauffähiges - markgräflich - markgräfliche - markgräflichem - markgräflichen - markgräflicher - markgräfliches - nebenberuflich - nebenberufliche - nebenberuflichem - nebenberuflichen - nebenberuflicher - nebenberufliches - prüffähige - rauflustig - rauflustige - rauflustigem - rauflustigen - rauflustiger - rauflustiges - reiflich - reifliche - reiflichem - reiflichen - reiflicher - reiflichere - reiflicherem - reiflicheren - reiflicherer - reiflicheres - reifliches - reiflichst - reiflichste - reiflichstem - reiflichsten - reiflichster - reiflichstes - schieflache - schieflachen - schieflachend - schieflachende - schieflachendem - schieflachenden - schieflachender - schieflachendes - schieflachst - schieflacht - schieflachte - schieflachten - schieflachtest - schieflachtet - schieflag - schieflagst - schieflagt - schiefliege - schiefliegen - schiefliegend - schiefliegende - schiefliegendem - schiefliegenden - schiefliegender - schiefliegendes - schiefliegst - schiefliegt - schiefläuft - schimpflich - schimpfliche - schimpflichem - schimpflichen - schimpflicher - schimpfliches - schlaflos - schlaflose - schlaflosem - schlaflosen - schlafloser - schlafloses - schweflig - schweflige - schwefligem - schwefligen - schwefliger - schwefliges - selbstauffaltend - steckbrieflich - straffrisch - straffähig - straffällig - straffällige - straffälligem - straffälligen - straffälliger - straffälliges - straflos - straflose - straflosem - straflosen - strafloser - strafloses - sträflich - sträfliche - sträflichem - sträflichen - sträflicher - sträfliches - tariffähig - tariflich - tarifliche - tariflichem - tariflichen - tariflicher - tarifliches - teuflisch - teuflische - teuflischem - teuflischen - teuflischer - teuflischere - teuflischerem - teuflischeren - teuflischerer - teuflischeres - teuflisches - teuflischst - teuflischste - teuflischstem - teuflischsten - teuflischster - teuflischstes - tieffliege - tieffliegen - tieffliegend - tieffliegende - tieffliegendem - tieffliegenden - tieffliegender - tieffliegendes - tieffliegst - tieffliegt - tiefflog - tiefflogen - tiefflogst - tiefflogt - tiefladbar - tiefladbare - tiefladbarem - tiefladbaren - tiefladbarer - tiefladbares - tieflade - tiefladen - tiefliege - tiefliegen - tiefliegend - tiefliegende - tiefliegendem - tiefliegenden - tiefliegender - tiefliegendes - tiefliegst - tiefliegt - unauffindbar - unauffindbare - unauffindbarem - unauffindbaren - unauffindbarer - unauffindbares - unauffällig - unauffällige - unauffälligem - unauffälligen - unauffälliger - unauffälligere - unauffälligerem - unauffälligeren - unauffälligerer - unauffälligeres - unauffälliges - unauffälligkeit - unauffälligkeiten - unauffälligst - unauffälligste - unauffälligstem - unauffälligsten - unauffälligster - unauffälligstes - unauflösbar - unauflösbare - unauflösbarem - unauflösbaren - unauflösbarer - unauflösbares - unauflöslich - unauflösliche - unauflöslichem - unauflöslichen - unauflöslicher - unauflösliches - unbegreiflich - unbegreifliche - unbegreiflichem - unbegreiflichen - unbegreiflicher - unbegreiflichere - unbegreiflicherem - unbegreiflicheren - unbegreiflicherer - unbegreiflicheres - unbegreifliches - unbegreiflichkeit - unbegreiflichst - unbegreiflichste - unbegreiflichstem - unbegreiflichsten - unbegreiflichster - unbegreiflichstes - unerschöpflich - unerschöpfliche - unerschöpflichem - unerschöpflichen - unerschöpflicher - unerschöpflichere - unerschöpflicherem - unerschöpflicheren - unerschöpflicherer - unerschöpflicheres - unerschöpfliches - unerschöpflichst - unerschöpflichste - unerschöpflichstem - unerschöpflichsten - unerschöpflichster - unerschöpflichstes - unglimpflich - unglimpfliche - unglimpflichem - unglimpflichen - unglimpflicher - unglimpfliches - unhöflich - unhöfliche - unhöflichem - unhöflichen - unhöflicher - unhöflichere - unhöflicherem - unhöflicheren - unhöflicherer - unhöflicheres - unhöfliches - unhöflichkeit - unhöflichkeiten - unhöflichst - unhöflichste - unhöflichstem - unhöflichsten - unhöflichster - unhöflichstes - unverkäuflich - unverkäufliche - unverkäuflichem - unverkäuflichen - unverkäuflicher - unverkäufliches - unwiderruflich - unwiderrufliche - unwiderruflichem - unwiderruflichen - unwiderruflicher - unwiderrufliches - uraufführe - uraufführen - uraufführend - uraufführende - uraufführendem - uraufführenden - uraufführender - uraufführendes - uraufführst - uraufführt - uraufführte - uraufführten - uraufführtest - uraufführtet - verelffache - verelffachen - verelffachend - verelffachende - verelffachendem - verelffachenden - verelffachender - verelffachendes - verelffachst - verelffacht - verelffachte - verelffachtem - verelffachten - verelffachter - verelffachtes - verelffachtest - verelffachtet - verfünffache - verfünffachen - verfünffachend - verfünffachende - verfünffachendem - verfünffachenden - verfünffachender - verfünffachendes - verfünffachst - verfünffacht - verfünffachte - verfünffachtem - verfünffachten - verfünffachter - verfünffachtes - verfünffachtest - verfünffachtet - verkäuflich - verkäufliche - verkäuflichem - verkäuflichen - verkäuflicher - verkäufliches - verwerflich - verwerfliche - verwerflichem - verwerflichen - verwerflicher - verwerflichere - verwerflicherem - verwerflicheren - verwerflicherer - verwerflicheres - verwerfliches - verwerflichst - verwerflichste - verwerflichstem - verwerflichsten - verwerflichster - verwerflichstes - verzwölffache - verzwölffachen - verzwölffachend - verzwölffachende - verzwölffachendem - verzwölffachenden - verzwölffachender - verzwölffachendes - verzwölffachst - verzwölffacht - verzwölffachte - verzwölffachtem - verzwölffachten - verzwölffachter - verzwölffachtes - verzwölffachtest - verzwölffachtet - vorberuflich - vorberufliche - vorberuflichem - vorberuflichen - vorberuflicher - vorberufliches - wettkampffähiges - widerruflich - widerrufliche - widerruflichem - widerruflichen - widerruflicher - widerrufliches - wiederaufführung - wiederaufführungen - wiederaufladbar - wiederaufladbare - wiederaufladbarem - wiederaufladbaren - wiederaufladbarer - wiederaufladbares - wiederauflade - wiederaufladen - wiederaufladend - wiederaufladende - wiederaufladendem - wiederaufladenden - wiederaufladender - wiederaufladendes - wiederaufladet - wiederauflebe - wiederaufleben - wiederauflebend - wiederauflebende - wiederauflebendem - wiederauflebenden - wiederauflebender - wiederauflebendes - wiederauflebst - wiederauflebt - wiederauflebte - wiederauflebten - wiederauflebtest - wiederauflebtet - würflig - würflige - würfligem - würfligen - würfliger - würfliges - zweifle - zwölffach - zwölffache - zwölffachem - zwölffachen - zwölffacher - zwölffaches - übertariflich - übertarifliche - übertariflichem - übertariflichen - übertariflicher - übertarifliches - ]], - }, - { - patterns = { - ffi = "ff|i", - ffl = "ff|l", - fff = "ff|f", - }, - words = [[ - Griffleisten - Grifflochsysteme - Grifflänge - Grifflöcher - Grifflöchern - Grifflücke - Offline - -- Offline-Anwendungen - -- Offline-Archiv - -- Offline-Betrachtung - -- Offline-Betrieb - -- Offline-Browser - -- Offline-Challenge - -- Offline-Daten - -- Offline-Dating - -- Offline-Dienste - -- Offline-Download - -- Offline-Funktionalität - -- Offline-Funktionalitäten - -- Offline-Fähigkeit - -- Offline-Geschäft - -- Offline-Installer - -- Offline-Karten - -- Offline-Kompaktierung - -- Offline-Konsum - -- Offline-Kopien - -- Offline-Marketing - -- Offline-Multiplayer - -- Offline-Multiplayer-Modus - -- Offline-Netflix-Vergnügen - -- Offline-Nutzung - -- Offline-Optimierung - -- Offline-Phasen - -- Offline-Programmierung - -- Offline-Projektstart - -- Offline-Prüfung - -- Offline-Publikationen - -- Offline-Test - -- Offline-Trainingsgelände - -- Offline-Transaktionen - -- Offline-Umgebungen - -- Offline-Ungleichheit - -- Offline-Versammlungen - -- Offline-Version - -- Offline-Vertriebskanal - -- Offline-Wikipedia - Offlineversion - Offlinezeit - Offlinezugriff - Schifflange - Schifflinien - Schiffliste - Schifflände - Stoffideen - Stofflappen - Stofflehre - Stofflich - Stoffliche - Stofflichkeit - Stofflichkeiten - Stofflumpen - Stofflänge - Stofflöwen - offline-Lesen - offline-netflix-Filme - stofflich - stoffliche - stofflichen - stofflicher - Offlinezugriffe - Offlinezugriffs - Baustoffindustrie - Baustoffindustrien - Baustoffingenieur - Baustoffingenieure - Büffler - Büfflerin - Büfflerinnen - Kleiderstoffindustrie - Knoepffler - Kunststoffindustrie - Löffler - Rohstoffindex - Rohstoffindexe - Rohstoffindices - Rohstoffindustrie - Rohstoffingenieur - Rohstoffingenieure - Schifffahrt - Schnüffler - Schnüfflerin - Schnüfflerinnen - Schnüfflern - Schnüfflers - Sprengstofffallen - Steuerschnüffler - Steuerschnüfflern - Steuerschnüfflers - begrifflich - begriffliche - begrifflichem - begrifflichen - begrifflicher - begriffliches - grifffest - grifffeste - grifffestem - grifffesten - grifffester - grifffestes - inbegriffleitend - knifflig - knifflige - kniffligem - kniffligen - kniffliger - kniffligere - kniffligerem - kniffligeren - kniffligerer - kniffligeres - kniffliges - kniffligst - kniffligste - kniffligstem - kniffligsten - kniffligster - kniffligstes - offline - trefflich - treffliche - trefflichem - trefflichen - trefflicher - trefflichere - trefflicherem - trefflicheren - trefflicherer - trefflicheres - treffliches - trefflichkeit - trefflichst - trefflichste - trefflichstem - trefflichsten - trefflichster - trefflichstes - unübertrefflich - vortrefflich - vortreffliche - vortrefflichem - vortrefflichen - vortrefflicher - vortreffliches - ]], - }, - { - patterns = { - ft = "f|t", - fft = "ff|t", - }, - words = [[ - Auftakt - -- Auftakt-Aus - -- Auftakt-Ausscheiden - -- Auftakt-Durchgang - -- Auftakt-Event - -- Auftakt-Folge - -- Auftakt-Freilos - -- Auftakt-Gegnerin - -- Auftakt-Grand-Prix - -- Auftakt-Heldin - -- Auftakt-Hürde - -- Auftakt-Inszenierung - -- Auftakt-Niederlage - -- Auftakt-Pressekonferenz - -- Auftakt-Programm - -- Auftakt-Reise - -- Auftakt-Scharte - -- Auftakt-Seufzer - -- Auftakt-Sieg - -- Auftakt-Veranstaltung - -- Auftakt-Vorstellungen - -- Auftakt-Wochenende - -- Auftakt-Workshop - Auftaktabend - Auftaktaktion - Auftaktaktionen - Auftaktanlass - Auftaktbezwinger - Auftaktchores - Auftaktdrittel - Auftaktdrittels - Auftaktduell - Auftakte - Auftaktepisode - Auftakterfolg - Auftaktetappe - Auftaktfall - Auftaktfilm - Auftaktfolge - Auftaktgegner - Auftaktgeschichte - Auftaktgottesdienst - Auftakthürde - Auftaktkampf - Auftaktkundgebung - Auftaktlauf - Auftaktlos - Auftaktmarsch - Auftaktmatch - Auftaktmotiv - Auftaktniederlage - Auftaktniederlagen - Auftaktpartie - Auftaktpartien - Auftaktplädoyer - Auftaktplädoyers - Auftaktpointe - Auftaktpremiere - Auftaktproduktion - Auftaktprogramm - Auftaktquartal - Auftaktrede - Auftaktrennen - Auftaktrunde - Auftakts - Auftaktsaison - Auftaktsatz - Auftaktseminar - Auftaktsendung - Auftaktshow - Auftaktsieg - Auftaktsieger - Auftaktsitzung - Auftaktsong - Auftaktspiel - Auftaktspiele - Auftaktspiels - Auftaktspielt - Auftaktspieltages - Auftaktspot - Auftaktspringen - Auftaktsprint - Auftaktstaffel - Auftakttermin - Auftakttraining - Auftakttrainings - Auftakttreffen - Auftaktturnier - Auftaktveranstaltung - Auftaktveranstaltungen - Auftaktverluste - Auftaktvideos - Auftaktvorlesung - Auftaktweltcup - Auftaktwettbewerb - Auftaktzeichen - Auftaktzeitfahren - Auftaktzeremonie - Auftaktzeremoniell - Auftanken - Auftankens - Auftankterminal - Auftauboden - Auftaubodens - Auftauchen - Auftauchende - Auftauchgeschwindigkeit - Auftauchvorgang - Auftauen - Auftauflüssigkeit - Auftaufunktion - Auftaumittel - Auftauplatten - Auftauprozesses - Auftausalz - Auftauschicht - Auftauzeit - Auftischalternative - Auftraege - Auftrag - Auftragbestand - Auftrage - Auftrageber - Auftragemengen - Auftragen - Auftrages - Auftraggbeer - Auftraggeber - Auftraggeberin - Auftraggeberinnen - Auftraggebern - Auftraggeberrisikos - Auftraggebers - Auftragnehmer - Auftragnehmern - Auftragnehmers - Auftragnehmerseite - Auftrags - Auftrags-/Projektgröße - Auftrags-Revolverhelden - Auftragsabsprache - Auftragsabwicklung - Auftragsakquise - Auftragsakquisition - Auftragsangeboten - Auftragsangelegenheiten - Auftragsannahme - Auftragsanstieg - Auftragsanzahl - Auftragsarbeit - Auftragsarbeiten - Auftragsarten - Auftragsausfälle - Auftragsausfällen - Auftragsbaby - Auftragsbasis - Auftragsbearbeitung - Auftragsberatungsstellen - Auftragsbericht - Auftragsbeschaffung - Auftragsbeschreibung - Auftragsbestand - Auftragsbestandes - Auftragsbestands - Auftragsbestände - Auftragsbeständen - Auftragsbestätigung - Auftragsbestätigung/Lieferschein - Auftragsbestätigungen - Auftragsbohrungen - Auftragsboom - Auftragsbuch - Auftragsbudget - Auftragsbücher - Auftragsbüchern - Auftragsdaten - Auftragsdatenverarbeitungsvereinbarung - Auftragsdecke - Auftragsdiebin - Auftragsdurchlauf - Auftragsdurchlaufzeit - Auftragseinbruch - Auftragseinbruchs - Auftragseinbrüche - Auftragseinbrüchen - Auftragseinbußen - Auftragseingang - Auftragseingangs - Auftragseingänge - Auftragseingängen - Auftragseinheiten - Auftragsende - Auftragsentwicklung - Auftragserfüllung - Auftragserholung - Auftragserteilung - Auftragsfall - Auftragsfertiger - Auftragsfertigern - Auftragsfertigung - Auftragsfilme - Auftragsfirma - Auftragsfirmen - Auftragsflaute - Auftragsflauten - Auftragsflut - Auftragsfolge - Auftragsformular - Auftragsformulare - Auftragsforscher - Auftragsforschers - Auftragsforschung - Auftragsforschungsinstitut - Auftragsfotografien - Auftragsgebiete - Auftragsgebieten - Auftragsgegenstandes - Auftragsgemälde - Auftragsgeschwindigkeit - Auftragsgröße - Auftragshersteller - Auftragsherstellerin - Auftragshoch - Auftragshonoraren - Auftragshöhe - Auftragsindex - Auftragsinhalt - Auftragsinstitut - Auftragskanon - Auftragskapazität - Auftragskiller - Auftragskillerin - Auftragskillern - Auftragskomponisten - Auftragskomposition - Auftragskompositionen - Auftragskomödien - Auftragskostenpauschale - Auftragskunst - Auftragsköpfen - Auftragsküche - Auftragskünstler - Auftragskürzungen - Auftragslabor - Auftragslage - Auftragsleistungen - Auftragslimit - Auftragslücken - Auftragsmalereien - Auftragsmalerin - Auftragsmangel - Auftragsmangels - Auftragsmethode - Auftragsminus - Auftragsmontagen - Auftragsmord - Auftragsmorde - Auftragsmordes - Auftragsmords - Auftragsmörder - Auftragsmörderin - Auftragsmördern - Auftragsnamens - Auftragsnehmern - Auftragsnummer - Auftragsnummern - Auftragsoper - Auftragspalette - Auftragspauschale - Auftragsplus - Auftragspolster - Auftragspotential - Auftragspotenzial - Auftragsproduktion - Auftragsproduktionen - Auftragsproduzent - Auftragsprofil - Auftragsprojekte - Auftragsreichweite - Auftragsreichweiten - Auftragsreihe - Auftragsreihenfolge - Auftragsrückgang - Auftragsrückgänge - Auftragssachbearbeiter - Auftragsschub - Auftragsschwankungen - Auftragsschwämme - Auftragssituation - Auftragsspitzen - Auftragsstammsatz - Auftragsstopp - Auftragsstornierungen - Auftragsstornos - Auftragsstudien - Auftragsstunden - Auftragsstärke - Auftragssumme - Auftragssummen - Auftragssätze - Auftragstaktik - Auftragstalfahrt - Auftragstechniken - Auftragstexter - Auftragsumfang - Auftragsunternehmen - Auftragsunternehmer - Auftragsunternehmern - Auftragsverarbeiter - Auftragsverarbeitungsvertrag - Auftragsverdoppelung - Auftragsverfolgung - Auftragsvergabe - Auftragsvergaben - Auftragsvergabeprozess - Auftragsverhältnis - Auftragsverlust - Auftragsverwaltung - Auftragsvielfalt - Auftragsvolumen - Auftragsvolumens - Auftragsvolumina - Auftragswarteschlange - Auftragswechsel - Auftragswege - Auftragswelle - Auftragswerk - Auftragswerke - Auftragswerken - Auftragswert - Auftragswerten - Auftragswertes - Auftragswerts - Auftragswesens - Auftragszahlen - Auftragszugangsim - Auftragszunahme - Auftragszuwachses - Auftragszuwächse - Auftragt - Auftragung - Auftreffen - Auftreffgeschwindigkeit - Auftreffgeschwindigkeiten - Auftreffpunkt - Auftreffwinkel - Auftreiben - Auftreibung - Auftreibungen - Auftrennen - Auftrennung - Auftrennungsbereich - Auftreten - Auftretende - Auftretenden - Auftretens - Auftretenshäufigkeit - Auftretenswahrscheinlichkeit - Auftrieb - Auftriebe - Auftriebs - Auftriebsankern - Auftriebsasymmetrie - Auftriebsausgleich - Auftriebsbeiwert - Auftriebserhöhung - Auftriebsfläche - Auftriebsgürtel - Auftriebshilfe - Auftriebshilfen - Auftriebsklappen - Auftriebskoeffizient - Auftriebskoeffizienten - Auftriebskräf|te - Auftriebskörper - Auftriebskörpern - Auftriebsprinzip - Auftriebspunkt - Auftriebsschwerpunkt - Auftriebsschwert - Auftriebsverlust - Auftriebsverteilung - Auftriebsvolumen - Auftriebswassers - Auftriebswert - Auftriebszahlen - Auftriebszunahme - Auftriebszuwachs - Auftriebsübungen - Auftriebverliehen - Auftritt - Auftritte - Auftritten - Auftrittes - Auftrittmöglichkeiten - Auftritts - Auftritts-Reihenfolge - Auftritts-Spots - Auftritts-Stopp - Auftritts-Tätigkeit - Auftrittsabend - Auftrittsapplaus - Auftrittsbeschränkungen - Auftrittserfahrung - Auftrittserlaubnis - Auftrittsfläche - Auftrittsformen - Auftrittsgagen - Auftrittsgarantie - Auftrittsgenehmigung - Auftrittshonorare - Auftrittshöhen - Auftrittslied - Auftrittslieder - Auftrittsmarathon - Auftrittsmöglichkeit - Auftrittsmöglichkeiten - Auftrittsort - Auftrittsorte - Auftrittspause - Auftrittsraum - Auftrittsreihe - Auftrittsserie - Auftrittssperre - Auftrittsstätte - Auftrittsstätten - Auftrittstermin - Auftrittstermine - Auftrittstiefe - Auftrittstätigkeit - Auftrittsverbot - Auftrittsverbote - Auftrittsverbots - Auftrittsvorbereitung - Auftrittswahrscheinlichkeit - Auftrittsweise - Auftrittszeit - Auftritt… - Auftrocknung - Auftrumpfen - Auftrumpferei - Aufträgen - Auftuchen - Auftürmungen - Brieftaschen - Brieftauben - Brieftauben-Abteilungen - Brieftaubenausstellung - Brieftaubenfreund - Brieftaubenverein - Brieftaubenwart - Brieftaubenzuchtverein - Brieftaubenzuchtvereins - Brieftaubenzüchter - Brieftaxe - Brieftext - Brieftexte - Brieftitel - Briefträger - Briefträgerin - Briefträgerkissen - Briefträgern - Briefträgers - Cheftechniker - Cheftechnologin - Cheftexter - Cheftheologe - Cheftoilette - Cheftoxikologe - Cheftrainer - Cheftrainer-Position - Cheftrainer-Posten - Cheftrainer-Station - Cheftrainer-Stelle - Cheftrainer-Vertrag - Cheftraineramt - Cheftrainerin - Cheftrainern - Cheftrainerposten - Cheftrainers - Cheftrainerstelle - Cheftrainervertrag - Dorftaxi - Dorfteich - Dorfteiches - Dorfteil - Dorfteile - Dorfteilen - Dorfteils - Dorftempeln - Dorftore - Dorftreffpunkt - Dorfturnier - Elfte - Elften - Elfter - Fünftagegruppe - Fünftausend - Fünfte - Fünfteiler - Fünfteilige - Fünftel - Fünfteln - Fünftelregelung - Fünftels - Fünftem - Fünften - Fünftens - Fünfter - Fünftes - Fünftonner - Fünftonskalen - Golftag - Golftange - Golftouren - Golftrainer - Golftrainerin - Golftrolley - Golfturnier - Golfturniere - Golftümmler - Greiftechnik - Greiftier - Greiftiere - Hoftafeln - Hoftag - Hoftage - Hoftagen - Hoftags - Hoftaller - Hofteam - Hofteholder - Hofteilung - Hofterrasse - Hoftex - Hoftheater - Hoftheater-Kulissendepot - Hoftheaterdirektion - Hoftheaterintendanten - Hoftheatermaler - Hoftheatern - Hoftheaters - Hoftieren - Hoftohorn - Hoftor - Hoftoren - Hoftrac - Hoftracht - Hoftrakt - Hoftrauung - Hoftrompeter - Impftestreihen - Kauftest - Kopfteil - Kopfteils - Kopftemperatur - Kopftentakeln - Kopfthema - Kopftitel - Kopftransplantation - Kopftreffern - Kopftreffers - Kopftribüne - Kopftrommel - Kopfträger - Kopftuch - Kopftuch-Debatte - Kopftuch-Konferenzen - Kopftuch-Revolutionäre - Kopftuch-Urteil - Kopftuchdebatte - Kopftuches - Kopftuchfrage - Kopftuchgruppe - Kopftuchkränkung - Kopftuchmädchen - Kopftuchpflicht - Kopftuchs - Kopftuchstreit - Kopftuchverbot - Kopftuchverbots - Kopftuchverbots-Regelung - Kopftüchern - Laufteam - Laufteams - Lauftechnik - Laufteppiche - Lauftermine - Lauftest - Lauftext - Prüftiefe - Prüftransformatoren - Prüftransformators - Prüftruppe - Prüftätigkeit - Ruftasten - Ruftaxiunternehmen - Rufton-Listen - Ruftongenerator - Ruftonlautstärke - Schilfteich - Schlaftabletten - Schlaftabletten-Sucht - Schlaftaktik - Schlaftheater - Schlaftiefe - Schlaftracking - Schlaftraining - Schlaftrainings - Schlaftrakt - Schlaftrunk - Schlaftrunken - Schlaftrunkenheit - Schlaftyp - Senftenbach - Straftat - Straftatbegehung - Straftatbestand - Straftatbestandes - Straftatbestands - Straftatbestände - Straftatbeständen - Straftatbilanz - Straftaten - Straftatenbereich - Straftatenhäufung - Straftatenverfolgung - Straftatenverhütung - Straftatermittlungen - Straftatverdacht - Straftatverdachts - Straftheorie - Straftheorien - Straftraining - Straftreffer - Straftritt - Straftritte - Straftäter - Straftäterin - Straftäterinnen - Straftätern - Straftäters - Surftipp - Surftipps - Surftips - Tariftabelle - Tarifthemen - Tariftreue - Tariftreue-Erklärung - Tariftreuegesetz - Tariftreueregelung - Tieftanks - Tieftauch-Champion - Tieftauchen - Tieftauchgänge - Tieftauchtopf - Tieftauchversuch - Tieftauchversuche - Tieftauchweltrekord - Tieftemperaturen - Tieftemperaturform - Tieftemperaturforschung - Tieftemperaturkältemittel - Tieftemperaturphase - Tieftemperaturphysik - Tiefthal - Tiefton-Verstärkers - Tieftonbereich - Tieftons - Tieftöner - Tieftöners - Torftopf - Wurftaubenclub - Wurftaubenschießen - Wurftechnik - Wurftechniken - Wurftäuschungen - auftakeln - auftakt - auftaktig - auftaktigen - auftaten - auftauche - auftauchende - auftauchenden - auftauchender - auftaucht - auftauchten - auftaut - auftischt - auftoupierter - auftrag - auftrage - auftragend - auftragende - auftragender - auftraggebende - auftragnehmenden - auftragsarme - auftragsbezogen - auftragsbezogene - auftragsbezogener - auftragsgefertigten - auftragsgemäß - auftragslosen - auftragsneutral - auftragsorientiert - auftragsrelevanten - auftragsschwache - auftragsweise - auftrainieren - auftraten - auftreffende - auftreffenden - auftreibende - auftreibt - auftrennt - auftrennten - auftrete - auftreten - auftretend - auftretende - auftretendem - auftretenden - auftretender - auftretendes - auftretten - auftrieben - auftriebserzeugende - auftritt - auftritten - auftrittslose - auftrocknen - auftrocknet - auftrug - auftrumpfen - auftrumpfend - auftrumpfende - auftrumpfendem - auftrumpfender - auftrumpfendes - aufträgst - aufträgt - aufträte - aufträten - auftuende - auftuenden - auftupfen - auftut - auftürmende - auftürmenden - auftürmt - auftürmte - dorftypische - elfteilige - elfteiliger - elften - elftes - ftp - ftp-Applikationen - ftp-Server - fünftaktiges - fünfteilig - fünfteilige - fünfteiligen - fünfteiliger - fünfteiliges - fünftem - fünften - fünftenmal - fünftens - fünftes - fünftägige - fünftägigen - fünftägiger - fünftägiges - fünftätigen - schlaftrunkenen - schlaftrunkener - straftätern - tariftreue - tariftreuen - Auftakt - Aufteilung - Aufteilungen - Auftrag - Auftraggeber - Auftritt - Aufträge - Auspufftopf - Auspufftöpfe - Auswurftaste - Brieftasche - Brieftaube - Cheftestpilot - Cheftheoretiker - Cheftrainer - Dampftopf - Dorftourismus - Dorftradition - Dorftratsch - Dorftrottel - Dorftyrann - Dorftölpel - Dorftümpel - Eingreiftruppe - Elftonner - Freiwurftor - Freiwurftreffer - Fünftagewoche - Fünftausender - Golftasche - Golftheorie - Golftour - Herzklopftöne - Hoftyrann - Hoftür - Kampftaktik - Kampftheorien - Kampftruppe - Kampftänzer - Kampftätigkeit - Kopftreffer - Kopftuch - Kopftücher - Kopftüchlein - Kreislauftheorie - Kunststofftonne - Kunststofftonnen - Kunststofftopf - Kunststofftube - Kunststofftuben - Kunststofftöpfe - Kunststofftüte - Kunststofftüten - Lauftherapie - Lauftrainer - Mehrkampftitel - Nadelstreifträger - Pfeifton - Ruftaste - Ruftaxi - Rufton - Sauerstofftank - Sauftrottel - Schifftyp - Schimpftiraden - Schlaftablette - Schlafteddy - Schlaftee - Schlaftemperatur - Schlaftherapeut - Schlaftherapeutin - Schlaftherapie - Schlaftier - Schlaftod - Schlaftrank - Schnupftabak - Schnupftuch - Schnupftücher - Senftopf - Senftöpfchen - Senftüte - Stapftiefe - Stieftochter - Stieftöchter - Stofftapete - Stofftasche - Stofftheorie - Stofftier - Stofftiere - Stofftiger - Stofftischtuch - Stofftischtücher - Stofftradition - Stofftrennung - Stoffturnschuhe - Stofftyp - Stofftäschchen - Straftarif - Strafteam - Straftechnisch - Straftendenz - Straftermin - Straftheologisch - Straftilgung - Straftor - Straftribunal - Sumpftour - Surftalent - Surftour - Surftrip - Tauftag - Tiefton - Treibstofftank - Vorlauftaste - Wahlkampftöne - Wettkampftag - Wettkampftrubel - Wurftalent - Wurftraining - Wurftuch - Zopfträger - Zwölftonmusik - auftanken - auftasten - auftat - auftauchen - auftauchte - auftauen - auftaute - aufteilen - auftischen - auftischte - auftoupieren - auftraben - auftragen - auftrat - auftreiben - auftreten - auftun - auftürmen - elftausend - elfte - elfter - fünftausend - fünfte - fünfter - fünftürig - kauftüchtig - schlaftrunken - tieftönend - wahlkampftauglich - waldorftypisch - zwölftausend - zwölfte - zwölfter - zwölftönend - -- Hälfte - -- bestraft vorbestraft - -- fünft zu elft zu zwölft - -- klopfte schöpften - -- kämpfte schimpfte schrumpfte - -- schaffte hoffte klaffte verpuffte - ]], - }, - { - patterns = { - fb = "f|b", - ffb = "ff|b", - }, - words = [[ - Laufbereitschaft - (un)widerrufbar - Anrufbeantworter - Aufbauspieler - Aufblick - Aufbruch - Briefbeschwerer - Briefbogen - Briefbombe - Chefberater - Dampfbad - Dorfbevölkerung - Dorfbewohner - Dorfbewohnerin - Golfball - Griffbrett - Hofbräuhaus - Kaufbeleg - Kopfball - Kopfbedeckung - Kopfbewegung - Laufbahn - Laufband - Laufbursche - Raufbold - Regenüberlaufbecken - Rohstoffboom - Sauerstoffbedarf - Schadstoffbelastung - Scharfblick - Schiffbau - Schiffbruch - Schlafbedürfnis - Stiefbruder - Stoffbahnen - Strafbefehl - Strafbestimmungen - Surfbretter - Tarifbezirk - Tarifbindung - Tiefbau - Umlaufbahn - Wasserstoffbombe - Wiederaufbau - abrufbar - angreifbar - aufbahren - aufbauen - aufbefördern - aufbegehren - aufbereiten - aufbessern - aufbewahren - aufbieten - aufblasen - aufblicken - aufblitzen - aufblähen - aufblühen - aufbrauchen - aufbrausen - aufbrechen - aufbringen - aufbäumen - aufbürden - greifbar - griffbereit - kampfbetont - schiffbar - steifbeinig - strafbar - tiefbelustigt - tiefblau - tiefblaue - tiefblauer - unangreifbar - überprüfbar - ]], - }, - { - patterns = { - fh = "f|h", - ffh = "ff|h", - }, - words = [[ - Strafhaft - krampfhaft - krampfhaf|te - Chefhändler - Dorfhaus - Eislaufhalle - Hofherr - Impfstoffhersteller - Kampfhandlung - Kampfhubschrauber - Kampfhunde - Kampfhähne - Kaufhalle - Kaufhaus - Kaufherr - Kaufhold - Kopfhaar - Kopfhaltung - Kopfhaube - Kopfhaut - Kopfhörer - Luftschiffhafen - Pfaffhausen - Riffhai - Schaffhausen - Schafhaltung - Schafherde - Schafhirte - Schilfhütte - Schlaffheit - Steifheit - Stoffhändler - Strumpfhose - Stumpfheit - Topfhaarschnitt - Wahlkampfhelfer - Werkstoffhof - aufhaben - aufhacken - aufhalsen - aufhalten - aufhatte - aufheben - aufheitern - aufheizen - aufhelfen - aufhellen - aufhetzen - aufheulen - aufholen - aufhorchen - aufhängen - aufhören - aufhübschen - daraufhin - draufhat - draufhauen - fünfhundert - unaufhaltsam - unaufhörlich - ]], - }, - { - patterns = { - fj = "f|j", - ffj = "ff|j", - }, - words = [[ - Chefjurist - Chefjuristin - Dorfjubiläum - Dorfjugend - Dorfjunge - Dorfjustiz - Dorfjäger - Fünfjahresfeier - Fünfjahresplan - Golfjahr - Golfjunge - Golfjungen - Golfjunioren - Golfjuniorinnen - Hofjäger - Kampfjagd - Kampfjet - Kampfjodeln - Knefjahr - Kopfjagd - Kopfjucken - Kopfjäger - Laufjacke - Laufjahr - Laufjunge - Laufjungen - Stoffjacke - Strafjahr - Strafjurist - Strafjuristin - Strafjustiz - Tarifjahr - Wahlkampfjahr - Wahlkampfjahre - Wettkampfjahr - Wettkampfjahre - aufjagen - aufjauchzen - aufjaulen - aufjohlt - elfjährig - fünfjährig - zwölfjährig - -- Sognefjord Dovrefjell Prokofjew - ]], - }, - { - patterns = { - fk = "f|k", - ffk = "ff|k", - }, - words = [[ - Auspuffklang - Briefkasten - Briefkästen - Kaufkraft - Kehlkopfknoten - Kliffkante - Kliffkanten - Kopfkissen - Napfkuchen - Pfeifkonzert - Pfeifkonzerte - Stoffkatzen - Stoffkatze - Stoffkissen - Stopfkugel - Tarifkommissionen - Tarifkonflikte - Trumpfkarten - Tarifkommission - Tarifkonflikt - Treibstoffkosten - Trumpfkarte - aufkam - aufkaufen - aufkehren - aufkeimen - aufklaffen - aufklappen - aufklatschen - aufklauben - aufkleben - aufklingen - aufklopfen - aufkläffen - aufklären - aufknacken - aufknöpfen - aufknüpfen - aufkochen - aufkommen - aufkreischen - aufkrempeln - aufkreuzen - aufkriegen - aufkurbeln - aufkündigen - ]], - } - } -} diff --git a/tex/context/patterns/lmtx/lang-en.llg b/tex/context/patterns/lmtx/lang-en.llg deleted file mode 100644 index 5378e0aa9..000000000 --- a/tex/context/patterns/lmtx/lang-en.llg +++ /dev/null @@ -1,453 +0,0 @@ --- The starting point of this list is a post at: --- --- https://english.stackexchange.com/a/50957/22099 --- https://english.stackexchange.com/questions/50660/when-should-i-not-use-a-ligature-in-english-typesetting --- mentioned on the ConTeXt mailing list after some discussion --- about this mechanism. - -return { - name = "english", - version = "1.00", - comment = "English ligature suppression", - author = "Mico Loretan, Dave Jarvis, & Hans Hagen", - copyright = "Public domain", - options = { - { - patterns = { - fi = "f|i", - fl = "f|l", - }, - words = [[ - -- f|i - deafish - dwarfish - elfish - oafish - selfish - serfish - unselfish - wolfish - - -- f|l - beefless - briefless - hoofless - leafless - roofless - selfless - turfless - ]], - suffixes = [[ - ness - ly - ]], - }, - { - patterns = { - fi = "f|i", - }, - words = [[ - proofing - ]], - prefixes = [[ - air - child - fire - flame - moth - rust - sound - water - weather - ]], - }, - { - patterns = { - ff = "f|f", - fi = "f|i", - fl = "f|l", - ffi = "f|fi", - ffl = "f|fl", - }, - words = [[ - -- f|f - bookshelfful - mantelshelfful - shelfful - - -- f|i - elfin - - chafing - leafing - loafing - sheafing - strafing - vouchsafing - beefing - reefing - briefing - debriefing - coifing - fifing - jackknifing - knifing - midwifing - waifing - wifing - - goofing - hoofing - roofing - reroofing - spoofing - whoofing - woofing - - gulfing - begulfing - engulfing - ingulfing - golfing - gulfing - rolfing - selfing - wolfing - barfing - bedwarfing - dwarfing - enserfing - kerfing - scarfing - snarfing - surfing - windsurfing - turfing - wharfing - - beefier - comfier - goofier - gulfier - leafier - surfier - turfier - beefiest - comfiest - goofiest - gulfiest - leafiest - surfiest - turfiest - - beefily - goofily - goofiness - - -- f|l - aloofly - briefly - chiefly - deafly - liefly - - calflike - dwarflike - elflike - gulflike - hooflike - leaflike - rooflike - serflike - sheaflike - shelflike - surflike - turflike - waiflike - wolflike - - halflife - shelflife - halfline - roofline - - leaflet - leaflets - leafleted - leafleting - leafletting - leafletted - leafleteer - - pdflatex - - -- f|fi - chaffinch - wolffish - - -- f|fl - safflower - safflowers - ]], - }, - { - patterns = { - ffi = "ff|i", - }, - words = [[ - -- ff|i - cuffing - ]], - prefixes = [[ - hand - un - ]], - }, - { - patterns = { - ffi = "ff|i", - }, - words = [[ - -- ff|i - feoffing - ]], - prefixes = [[ - en - in - ]], - }, - { - patterns = { - ffi = "ff|i", - }, - words = [[ - -- ff|i - staffing - stuffing - ]], - prefixes = [[ - re - over - under - ]], - }, - { - patterns = { - ffi = "ff|i", - }, - words = [[ - -- ff|i - ruffing - ]], - prefixes = [[ - cross - over - under - ]], - }, - { - patterns = { - ffi = "ff|i", - ffl = "ff|l", - }, - words = [[ - -- ff|i - draffish - giraffish - gruffish - offish - raffish - sniffish - standoffish - stiffish - toffish - - -- ff|l - cuffless - stuffless - ]], - suffixes = [[ - ly - ]], - }, - { - patterns = { - ffl = "ff|l", - }, - words = [[ - -- ff|l - scofflaw - cufflink - offline - offload - ]], - suffixes = [[ - s - ed - ing - ]], - }, - { - patterns = { - ffi = "ff|i", - ffl = "ff|l", - }, - words = [[ - -- ff|i - baffing - biffing - boffing - bluffing - outbluffing - buffing - rebuffing - chaffing - cheffing - chuffing - coffing - coiffing - daffing - doffing - fluffing - gaffing - gruffing - huffing - luffing - miffing - muffing - offing - piaffing - puffing - quaffing - reffing - riffing - sclaffing - scoffing - scuffing - shroffing - sluffing - sniffing - snuffing - spiffing - stiffing - stuffing - tariffing - tiffing - waffing - whiffing - yaffing - - buffier - chaffier - chuffier - cliffier - daffier - fluffier - gruffier - huffier - iffier - miffier - puffier - scruffier - sniffier - snuffier - spiffier - stuffier - buffiest - chaffiest - chuffiest - cliffiest - daffiest - fluffiest - gruffiest - huffiest - iffiest - miffiest - puffiest - scruffiest - sniffiest - snuffiest - spiffiest - stuffiest - - daffily - fluffily - gruffily - huffily - puffily - scruffily - sniffily - snuffily - spiffily - stuffily - - fluffiness - huffiness - iffiness - puffiness - scruffiness - sniffiness - spiffiness - stuffiness - - baffies - biffies - jiffies - taffies - toffies - - waffie - - Pfaffian - Wolffian - Wulffian - - -- ff|l - bluffly - gruffly - ruffly - snuffly - stiffly - - rufflike - clifflike - ]], - }, - { - patterns = { - ft = "f|t", - fft = "ff|t", - }, - words = [[ - -- f|t - chieftain - chieftains - chieftaincy - chieftainship - - fifteen - fifteens - fifteenth - fifteenths - fifth - fifthly - fifths - fifties - fiftieth - fiftieths - fifty - fiftyish - - halftime - halftone - - rooftop - rooftops - rooftree - - -- ff|t - offtrack - ]] - } - } -} diff --git a/tex/context/patterns/mkxl/lang-de.llg b/tex/context/patterns/mkxl/lang-de.llg new file mode 100644 index 000000000..89b8eef1f --- /dev/null +++ b/tex/context/patterns/mkxl/lang-de.llg @@ -0,0 +1,4010 @@ +-- In ConTeXt we have several mechanisms to deal with compound words, ligatures etc. +-- We have language features, font features, in-stream replacers etc. At some point +-- Denis Maier played with all of this and in the process we decided to look at yet +-- another variant. For that we also needed lists of words and he came with one at: +-- +-- https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wordlist.tex +-- +-- I'm not sure where that list originates (to be sorted out) and didn't look into +-- how it is used (as we already followed different routes when we started with +-- MKIV). So instead Denis started with some corpus and sdripted the lists instead. +-- One reason is to deal with compound words (for which we have multiple mechanisms) +-- in a more automates way, using modern LMTX features. So this is not for MKIV (at +-- least not now). This mechanism can and will also deal with some other language +-- issues. + +-- Comment : this is a starting point, not de definitve list of words +-- Todo : break down this list in more meaningfull categories (like 'matches') +-- Todo : maybe make options into a tabel with named option sets (only if needed) +-- Todo : check if we need more at the engine level + +return { + name = "german", + version = "1.00", + comment = "Goodies that complement german.", + author = "Denis Maier & Hans Hagen", + copyright = "ConTeXt development team & whoever made this list / corpus", + options = { + { + words = [[ + -- + Auf|lauf|bremse + Auf|lauf|bremsen + Auf|lauf|theorien + Auf|triebsrumpf|konzept + -- + Auf|fangfläche + Auf|fangversicherungspflicht + Auf|fangversicherungspflichtige + Auf|fangversicherungspflichtigen + Auf|fangversicherungspflichtiger + Auf|lageflaeche + Auf|lagefläche + Auf|lageflächen + Auf|lagenflut + Auf|lageziffer + Auf|lageziffern + Auf|lauffläche + Dampf|lokomotiventreffen + Schöpf|löffel + Schöpf|löffeln + Tief|fliegerangriff + Tief|fliegerangriffe + Tief|fliegerangriffen + Tief|flugangriffen + Tief|landfluss + Tief|landflüsse + Auf|lageflächen + Auf|lagenziffer + Auf|lagenziffern + Schöpf|löffels + Tief|löffel + Tief|löffelbagger + Tief|löffelbaggern + Tief|löffels + tief|löffeln + -- + Grafikauf|lösung + Grafikauf|lösungen + Grafikkartenauf|lösung + Grafikkartenauf|lösungen + -- + Auf|triebskraft + Auf|triebskräf|te + Auf|trifft + Brief|trägergewerkschaft + auf|trifft + auf|trumpft + auf|trumpf|te + ]], + }, + { + patterns = { + ff = "f|f", + fl = "f|l", + fi = "f|i", + ffi = "f|fi", + ffl = "f|fl", + }, + words = [[ + Auffahren + Auffahrende + Auffahrgefahr + Auffahrkollision + Auffahrkonvergenz + Auffahrrampe + Auffahrrampen + Auffahrt + Auffahrtrampe + Auffahrtrampen + Auffahrtsrampe + Auffahrtsrampen + Auffahrtsstraße + Auffahrtstag + Auffahrtswochenende + Auffahrung + Auffahrungen + Auffahrungslänge + Auffallen + Auffallend + Auffallende + Auffallendes + Auffallendstes + Auffalt-Smartphone + Auffaltung + Auffang + Auffangbehälter + Auffangbett + Auffangbeutel + Auffangbox + Auffangeinrichtung + Auffangeinrichtungen + Auffangen + Auffanggatter + Auffanggeräte + Auffanggesellschaft + Auffanggesellschaf|ten + Auffanggurt + Auffanghauses + Auffanglinie + Auffanglösung + Auffangnetz + Auffangnetze + Auffangorganisation + Auffangparkplätzen + Auffangposten + Auffangprogrammen + Auffangraum + Auffangregelungen + Auffangrinne + Auffangschale + Auffangschirm + Auffangschüsseln + Auffangsgesellschaft + Auffangsieb + Auffangstation + Auffangstationen + Auffangstelle + Auffangstellung + Auffangstruktur + Auffangsystem + Auffangtatbestand + Auffangtrichter + Auffangverein + Auffangvolumen + Auffangzentrum + Auffangziele + Auffangzuständigkeit + Auffarth + Auffarths + Auffassungsreichweite + Auffassungstests + Auffassungsunterschied + Auffassungsunterschiede + Auffassungsunterschieden + Auffassungsweise + Auffinden + Auffindens + Auffindeort + Auffindesituation + Auffindsituation + Auffindungschancen + Auffindungsort + Aufflackern + Aufflammen + Auffliegen + Auffliegende + Aufflutung + Auffordern + Auffordernd + Auffordernde + Aufforderungscharakter + Aufforderungsschreiben + Aufforderungssignal + Aufforderungssignale + Aufforstungsaktivitäten + Aufforstungsarbeiten + Aufforstungsbescheid + Aufforstungsgebiets + Aufforstungsmaßnahmen + Aufforstungsprogramm + Aufforstungsprojekt + Aufforstungsprojekten + Aufforstungsprojekts + Aufforstungsunternehmen + Auffressen + Auffrischen + Auffrischimpfung + Auffrischungsimpfung + Auffädeln + Auffäliig + Auffällig + Auffällige + Auffälligen + Auffälliger + Auffälligerweise + Auffälliges + Auffälligkeit + Auffälligkeiten + Auffälligkeitsgrad + Auffälligste + Auffälligsten + Auffälligster + Auffälligstes + Aufführen + Aufführung + Aufführungen + Aufführungen/Lesungen + Aufführungsabende + Aufführungsapparate + Aufführungsbedingungen + Aufführungsblöcken + Aufführungsdaten + Aufführungsdauer + Aufführungsformate + Aufführungsgeschichte + Aufführungskritik + Aufführungskünste + Aufführungslandes + Aufführungsmaterial + Aufführungsmateriale + Aufführungsort + Aufführungsorte + Aufführungsorten + Aufführungspause + Aufführungspraktiken + Aufführungspraxis + Aufführungsprotokollen + Aufführungsprozess + Aufführungsrecht + Aufführungsreihe + Aufführungsrepertoire + Aufführungsserien + Aufführungsstätte + Aufführungstermine + Aufführungsterminen + Aufführungstradition + Aufführungstraditionen + Aufführungsverbot + Aufführungsverbote + Aufführungsvollprivileg + Aufführungswoche + Aufführungswochen + Aufführungszahlen + Aufführungszeit + Auffüllarbeiten + Auffüllen + Auffüller + Auffüllgebühren + Auffüllkapazität + Auffüllmaterial + Auffütterung + Aufladbarkeit + Auflade-Codes + Aufladedauer + Aufladegeschwindigkeit + Aufladekabel + Aufladekarten + Auflademädchen + Auflademöglichkeiten + Aufladen + Aufladens + Aufladereglung + Aufladesteuerung + Aufladesystem + Auflage + Auflagebereich + Auflagebügel + Auflagedatum + Auflagedruck + Auflagefrist + Auflagehöhe + Auflagekante + Auflagekräf|te + Auflagemaß + Auflagemaßes + Auflagen + Auflagenbegrenzung + Auflagenbezeichnung + Auflagendruck + Auflagendruckprozess + Auflageneinbußen + Auflagenentwicklung + Auflagenerfüllung + Auflagenfolge + Auflagenhöhe + Auflagenhöhen + Auflagenkontrolle + Auflagenniedergang + Auflagenobjekte + Auflagenpolitik + Auflagenrückgang + Auflagensparte + Auflagenstatistik + Auflagensteigerung + Auflagenstärkste + Auflagenverfügung + Auflagenverlust + Auflagenverstöße + Auflageprojekt + Auflagepunkt + Auflagepunkte + Auflager + Auflagerbereich + Auflagerkräf|te + Auflagern + Auflagerreaktionen + Auflagers + Auflagerung + Auflagerungen + Auflageschützen + Auflagespülen + Auflagesteine + Auflageverfahren + Auflagezeit + Auflagezimmer + Auflandungen + Auflandungsteiche + Auflassungsvormerkung + Auflast + Auflasten + Auflauf-/Kuchenform + Auflauf-Alternative + Auflaufen + Auflaufrolle + Auflaufschäden + Auflaufunfall + Aufleben + Auflebstiftung + Auflege-Vibrator + Auflegekanten + Auflegen + Auflegen-Symbol + Aufleger + Auflegern + Auflegung + Aufleuchten + Aufleuchtenlassen + Aufleveln + Auflicht + Auflichtbildverarbeitung + Auflichtmikroskopie + Auflichtprojektoren + Auflieferung + Aufliegen + Auflieger + Aufliegern + Aufliegers + Aufliegezeit + Auflisten + Auflockern + Auflockerungsboden + Auflockerungsgebiete + Aufloesung + Auflösen + Auflöser + Auflösezeit + Auflösung + Auflösungs-Dreisatz + Auflösungs-Erscheinungen + Auflösungsantrag + Auflösungsarbeit + Auflösungsbeschluß + Auflösungsbeschlüsse + Auflösungsentscheidung + Auflösungsgrund + Auflösungsproezsses + Auflösungstendenzen + Auflösungsunabhängigkeit + Auflösungsverlust + Auflösungsverlusts + Auflösungsvermögen + Auflösungsvermögens + Auflösungsversammlung + Auflösungsvertrag + Auflösungsvertrages + Auflösungsverträge + Auflösungsvorgang + Auflösungszeichen + Auflösungszeitpunkt + Auflüge + Brieffassung + Briefformat + Brieffreund + Brieffreunde + Brieffreundin + Brieffreundschaft + Brieffreundschaf|ten + Briefinhalt + Briefinhalten + Brieflauf + Brieflieferungen + Brieflos + Cheffluglehrer + Chefforscherinnen + Chefideologen + Cheflektor + Cheflimousinen + Cheflobbyistin + Dampffahne + Dampffahrt + Dampffahrzeugen + Dampffeuerspritze + Dampffontäne + Dampffrachter + Dampffreunden + Dampffördermaschine + Dampffördermaschinen + Dampfladen + Dampflagerstätten + Dampfleck + Dampfleitung + Dampfleitungen + Dampfleitungsverbindung + Dampflock + Dampflockbetriebs + Dampflockzug + Dampflok + Dampflok-Nostalgie + Dampflokabschied + Dampflokbau + Dampflokbaureihe + Dampflokbehandlungsanlagen + Dampflokbestand + Dampflokbetrieb + Dampflokeinsatz + Dampflokeinsatzes + Dampflokeldorados + Dampflokentwicklung + Dampflokfahrten + Dampflokführer + Dampflokhalle + Dampflokheizer + Dampfloki-Verein + Dampflokklinik + Dampflokkonstruktion + Dampflokmuseum + Dampflokomobile + Dampflokomotiv-Betriebswerk + Dampflokomotiv-Museums + Dampflokomotiv-Produktion + Dampflokomotivbau + Dampflokomotivbaureihe + Dampflokomotive + Dampflokomotivendepot + Dampflokomotivgattung + Dampflokomotivreihe + Dampfloks + Dampflokwerk + Dampflokzeit + Dampflokzuschlag + Dampfluftbefeuchter + Dorffeiern + Dorffeld + Dorffeldes + Dorffest + Dorffest-Atmosphäre + Dorffest-Ausschuss + Dorffeste + Dorffesten + Dorffestes + Dorffestgemeinschaft + Dorffestmacher + Dorffestung + Dorffilialen + Dorfflohmarkt + Dorfflur + Dorffläche + Dorfform + Dorfformen + Dorffrauen + Dorffreunde + Dorffriedhof + Dorffriedhofes + Dorffußball + Dorfführungen + Dorfidyll + Dorfidylle + Dorfinnern + Dorfitter + Dorflada + Dorfladenboten + Dorfladenkonzepte + Dorfladens + Dorflage + Dorflagen + Dorflazaretten + Dorfleben + Dorflebens + Dorflehrer + Dorflehrerin + Dorflif|te + Dorflinde + Dorflinden + Dorfliste + Dorflädchen + Dorfläden + Fünfliber + Fünfligist + Fünfliter-V2 + Golffahrer + Golffahrerin + Golffahrers + Golffalte + Golfferien + Golflegende + Golflehrer + Golflehrerin + Golflektion + Golfliebhaber + Hanffabrik + Hanffaser + Hanffasern + Hanffaserproduktion + Hanffeld + Hanffreund + Hanffreunde + Hanfland-Ullrich + Hanfling + Hanfliteratur + Hoffahrt + Hoffaktor + Hoffaktoren + Hoffaktorin + Hoffaschen + Hoffassade + Hoffassaden + Hoffest + Hoffeste + Hoffesten + Hoffestes + Hoffilmer + Hoffilmerin + Hofflohmarkt + Hoffläche + Hofflächen + Hofflächenprogramm + Hofflügel + Hoffolgezeugnis + Hofform + Hofformen + Hoffotograf + Hoffotografen + Hoffrogge + Hoffront + Hoffräulein + Hoffung + Hoffungen + Hoffungsschimmer + Hoffungsträger + Hofi + Hofimmobilien + Hofinger + Hofinhaber + Hofinsel + Hofintendanten + Hofintrige + Hofintrigen + Hoflackierer + Hofladen-Hütte + Hofladen-Verkauf + Hofladens + Hoflader + Hoflager + Hofland + Hoflandwirtschaft + Hoflebens + Hoflehrer + Hofleitner + Hofleute + Hofleuten + Hoflicht + Hoflieferant + Hoflieferanten + Hoflieferantendiplom + Hoflieferantentitel + Hoflinger + Hoflingerin + Hoflingers + Hoflnung + Hoflädeli + Hofläden + Hoflößnitz + Hoflößnitzer + Huflederhaut + Impffachleute + Impffest + Impffrage + Impffragen + Impffrist + Impfleistung + Impflicht + Impfling + Impflinge + Impflingen + Impflings + Impfliste + Impflogistik + Impflösungen + Impflücken + Kampffahrzeug + Kampffahrzeuge + Kampffahrzeugen + Kampffahrzeugs + Kampffeld + Kampffeldes + Kampffelds + Kampffertigkeit + Kampffertigkeiten + Kampfform + Kampfformation + Kampfformationen + Kampfformen + Kampffrage + Kampffähigkeiten + Kampfinstrument + Kampflager + Kampfleistung + Kampflesben + Kampflinie + Kampflos + Kampflose + Kampfluren + Kampflustig + Kampfläufer + Kampfläufers + Kaufimpuls + Kaufimpulse + Kaufingerstraße + Kaufinteressent + Klopffestigkeit + Klopffestigkeitsgründen + Kopffalten + Kopffedern + Kopffeld + Kopfformen + Kopffraktion + Kopffreiheit + Kopffutter + Kopffärbung + Kopffüssler + Kopffüßer + Kopffüßer-Kamasutra + Kopffüßern + Kopffüßers + Kopffüßler + Kopffüßler-Wesen + Kopflehne + Kopfleidens + Kopflose + Kopflosen + Kopflosigkeit + Kopflänge + Kopfläuse + Köpfli + Laufinlay + Laufinnere + Pfeiflaute + Pfeifle + Prüffall + Prüffallbearbeitungen + Prüffassung + Prüffehler + Prüffelder + Prüfflug + Prüffrist + Prüffristen + Prüffällen + Prüflaboratorien + Prüflaboratorium + Prüflabors + Prüflager + Prüflauf + Prüfleiter + Prüflinges + Prüflingsanschluss + Prüflingslänge + Prüflizenzen + Prüfläufe + Reifland-Wünschendorf + Reifling-Formation + Relieflinie + Ruflaute + Rufli + Rufling + Rumpff + Rumpffamilien + Rumpfflächen + Rumpfform + Rumpfformen + Rumpfinneren + Schaffarmen + Schaflechner + Schaflerhofes + Schieflast + Schiefling + Schilff + Schilffläche + Schilfflächen + Schlaflabor + Schlaflabore + Schlaflaboren + Schlaflaborpersonal + Schlaflabors + Schlaflager + Schlaflagern + Schlaflandschaft + Schlafleben + Schlafliegen + Schlaflos + Schlaflose + Schlafly + Schlaflys + Schlaflähmungen + Schleiflack + Schleiflade + Schleifladen + Schleifladen-Instrument + Schleifladenorgel + Schleifladenorgeln + Schleifleiste + Schleifleisten + Schleifleistung + Schweiflänge + Senffabrik + Straflandesgericht + Straflandesgerichts + Strafleiden + Strafleistung + Straflingsinspektor + Straflingskolonie + Straflinie + Straflos + Straflosigkeit + Sumpffarngewächse + Sumpffieberepidemie + Sumpffläche + Sumpfflächen + Sumpflandschaft + Sumpflandschaf|ten + Sumpfloch + Sumpfläufer + Sumpflöcher + Surfleet + Surflegende + Surflehrer + Surflehrerbody + Surflehrerin + Surfliner + Tariffestsetzungen + Tarifflucht + Tarifforderungen + Tariffortschreibung + Tariffragen + Tariffuchs + Tarifindex + Tarifinformation + Tarifinformationen + Tarifinnovationen + Tariflandschaft + Tarifleistung + Tariflich + Tariflichen + Tarifliste + Tariflohnentwicklung + Tariflohnerhöhungen + Tariflohnsteigerung + Tieffeldverschiebung + Tieffenbach + Tieffenbrucker + Tieffliegende + Tieffliegererkennung + Tieffliegervernichtungsabzeichen + Tiefflugaktivitäten + Tiefflugeinsätze + Tieffluggebiete + Tiefflugschneisen + Tieffrieren + Tiefladeanhänger + Tiefladern + Tiefladers + Tiefladewagen + Tiefland + Tiefland-Plätzen + Tiefland-Regenwälder + Tiefland-Regenwäldern + Tiefland-Verlag + Tieflandbach + Tieflandbäche + Tieflandebene + Tieflandfarmern + Tieflandgebiete + Tieflandgebieten + Tieflandregenwald + Tieflandregenwald-Schutzgebietes + Tieflandregenwälder + Tieflandregionen + Tieflandsbucht + Tieflandstrecke + Tieflandwaldgürtel + Tieflandwälder + Tieflandwäldern + Tieflauter + Tieflegung + Tieflochbohren + Tieflohnbereich + Tieflohnjobs + Tieflöhne + Topflappen + Torflaute + Torflieferungen + Torflinse + Wurflanzen + auffaellig + auffaelliges + auffallend + auffasern + auffetten + auffinbar + aufflackernde + aufflackernden + aufflanschen + aufflog + auffraß + auffraßen + auffußen + auffällig + auffälligerweise + aufführungspraktische + aufführungspraktischem + aufführungsreif + auflag + auflagefreie + auflagen + auflagenbewehrte + auflagenfördernde + auflagenmäßig + auflagenstarke + auflagenstarken + auflagenstärkste + auflagenstärksten + auflagernden + auflastet + auflauert + auflauft + auflegen + aufleveln + auflevelt + auflief + aufliefen + aufliest + auflud + aufluden + auflässigen + auflösen + auflösenden + auflösung + auflösungen + auflösungsgerichteten + brieflich + dampffrei + dampflokbetriebene + dorffreie + fünflappig + fünflappige + fünflappigen + hanffarbenen + kampffertig + kampffrei + kampffreudige + kampflastig + klopffeste + klopffesten + kopfförmig + kopfförmige + laufintensiven + prüffähigen + schieflaufen + schieflief + schifflosen + schlaflose + senffarbenen + steifleinern + straflager + tariffremden + tariffähigen + tariflose + tieffrequenten + tieffrequenter + tiefinnere + Ablauffolge + Ablauffolgen + Ablauffähigkeit + Ablauffähigkeiten + Ablaufleitung + Ablaufleitungen + Ablaufliste + Ablauflisten + Abruffunktion + Abruffunktionen + Anruffalle + Anruffallen + Anruffunktion + Anruffunktionen + Anzweiflung + Anzweiflungen + Auffahrten + Auffahrtsweg + Auffahrunfall + Auffahrunfalls + Auffahrunfälle + Auffahrunfällen + Auffaltungen + Auffangbecken + Auffangbeckens + Auffanglager + Auffanglagern + Auffanglagers + Auffangregister + Auffangregistern + Auffangregisters + Auffangt + Auffangvorrichtung + Auffangvorrichtungen + Auffangwanne + Auffangwannen + Auffangweiche + Auffangweichen + Auffassbarkeit + Auffassbarkeiten + Auffassung + Auffassungen + Auffassungsgabe + Auffassungsgaben + Auffassungsvermögen + Auffassungsvermögens + Auffindbarkeit + Auffindbarkeiten + Auffindung + Auffindungen + Aufflackerns + Aufforderung + Aufforderungen + Aufforstung + Aufforstungen + Auffrischung + Auffrischungen + Auffächerung + Auffächerungen + Aufführung + Aufführungen + Aufführungsstatistik + Aufführungsstil + Aufführungsstile + Aufführungsstilen + Aufführungsstils + Auffüllung + Auffüllungen + Auflader + Aufladerin + Aufladerinnen + Aufladern + Aufladers + Aufladet + Aufladevorgang + Aufladevorgangs + Aufladung + Aufladungen + Auflage + Auflagen + Auflagenerhöhung + Auflagenerhöhungen + Auflagenstark + Auflagenstarke + Auflagenstarkem + Auflagenstarken + Auflagenstarker + Auflagenstarkes + Auflagenstärke + Auflagenzahl + Auflagenzahlen + Auflassung + Auflassungen + Auflauf + Auflaufform + Auflaufformen + Auflaufs + Auflehnung + Auflehnungen + Aufliegeschema + Auflistung + Auflistungen + Auflockerung + Auflockerungen + Auflockerungstendenz + Auflockerungstendenzen + Aufläufe + Aufläufen + Auflösung + Auflösungen + Auflösungsbeschluss + Auflösungsbeschlusses + Auflösungsbeschluß + Auflösungsbeschlüssen + Auflösungserscheinung + Auflösungserscheinungen + Auflösungsprozess + Auflösungsprozesse + Auflösungsprozessen + Auflösungsprozeß + Autobahnauffahrt + Bauauflage + Bauauflagen + Bettauflage + Bettauflagen + Bezweiflung + Bildschirmauflösung + Bildschirmauflösungen + Biohofladen + Bischoffinger + Brieffach + Briefform + Brieffächer + Briefintrige + Brieflaufzeiten + Chefflugleiter + Cheffunktion + Chefideologe + Dampfleistung + Dampflokomotiven + Darstellungsauffassung + Darstellungsauffassungen + Dauertropfflasche + Dorffeuerwehr + Dorfladen + Düsenkampfflugzeug + Eingabeaufforderung + Einwurffächer + Einzelhandelskaufleute + Einzelhandelskaufleuten + Erstaufführung + Erstauflage + Erstauflagen + Freiberufler + Freiberuflerin + Freiberuflerinnen + Freiberuflern + Freiberuflers + Freilichtaufführung + Freilichtaufführungen + Fünflinge + Fünflingen + Gastspielaufführung + Gebirgsauffaltung + Großkaufleute + Großkaufleuten -- Buddenbrooks + Grundauffassung + Grundauffassungen + Gugelhupfform + Handgreiflichkeit + Handgreiflichkeiten + Hofladen + Hofleben + Hufform + Häuflein + Häufleins + Impfflüssigkeit + Impffolgen + Impfforschung + Kampfflieger + Kampffliegers + Kampfflugzeug + Kampfflugzeuge + Kampfflugzeuges + Kampffront + Kampffähigkeit + Kampfführung + Kampflaune + Kampflied + Kampflieder + Kampfliedern + Kauffahrer + Kauffahrerin + Kauffahrerinnen + Kauffahrern + Kauffahrers + Kauffahrt + Kauffrau + Kauffrauen + Kaufindex + Kaufindizes + Kaufinteresse + Kaufinteressenten + Kaufladen + Kaufladens + Kauflaune + Kaufleidenschaft + Kaufleitung + Kaufleute + Kaufleuten + Kauflust + Kaufläden + Kettensträfling + Kettensträflinge + Kettensträflingen + Kettensträflings + Knopfloch + Knopflöcher + Kontoauflösung + Kopfform + Kopfleiste + Kreislauffunktion + Kreislaufleiden + Käuflichkeit + Köpflein + Lagerauffüllung + Lagerauflösung + Lauffeuer + Lauffeuern + Lauffeuers + Lauffolgen + Lauffähigkeit + Laufindex + Laufindexe + Laufindexen + Laufindexes + Laufindices + Laufleine + Laufleinen + Lauflernhilfen + Lebensauffassung + Lebensauffassungen + Liebhaberaufführung + Menschenkopfform + Mindestreserveauflagen + Monitorauflösung + Monitorauflösungen + Neuauflage + Neuauflagen + Oberstufler + Opernaufführung + Opernaufführungen + Parlamentsauflösung + Politikauffassung + Politikauffassungen + Produktionsauflagen + Prüffach + Prüffeld + Prüffächer + Prüfingenieur + Prüfling + Prüflinge + Prüflingen + Prüflings + Prüfliste + Prüflisten + Reichstagsauflösung + Restauflage + Restauflagen + Rinderkopffleisch + Schaffell + Schaffelle + Schaffellen + Schaffells + Schafleder + Schafledern + Schafleders + Scherflein + Scherfleins + Schieflage + Schieflagen + Schieflaufen + Schilffeld + Schilffelder + Schilfinsel + Schilfinseln + Schlafforscher + Schlafforschung + Schlaffrisur + Schlaflied + Schlaflieder + Schlafliedern + Schlafliedes + Schlaflieds + Schlaflosigkeit + Schlaflosigkeiten + Schlupfloch + Schlupfloches + Schlupflochs + Schlupflöcher + Schlupflöchern + Selbstauflösung + Serienbrieffunktion + Straffall + Straffalls + Strafforderung + Straffälle + Straflager + Straflagern + Straflagers + Streiflicht + Streiflichter + Streiflichtern + Streiflichts + Sträfling + Sträflinge + Sträflingen + Sträflings + Sturzkampfflugzeug + Sturzkampfflugzeuge + Sturzkampfflugzeugen + Sturzkampfflugzeugs + Sumpffieber + Sumpffliege + Sumpffliegen + Sumpfland + Sumpflandes + Sumpflands + Sumpflicht + Sumpflichter + Sumpfländer + Sumpfländern + Surfladen + Tariffalle + Tariffallen + Tarifforderung + Tariffront + Tariffähigkeit + Tariflohn + Tariflohns + Tariflöhne + Tariflöhnen + Theateraufführung + Theateraufführungen + Tiefflieger + Tieffliegern + Tieffliegers + Tiefflug + Tieffluges + Tiefflugs + Tiefflüge + Tiefflügen + Tiefladeprogramm + Tieflader + Tieflage + Tieflagen + Tiefland + Tieflandes + Tieflands + Tiefländer + Tiefländern + Torffeuer + Totenkopfflagge + Täufling + Täuflinge + Täuflingen + Täuflings + Tüpflischeißer + Tüpflischiesser + Umlauffähigkeit + Unauffindbarkeit + Unauffindbarkeiten + Unverkäuflichkeit + Uraufführung + Uraufführungen + Verkäuflichkeit + Verzweiflung + Verzweiflungsschritt + Verzweiflungstat + Voraufführung + Voraufführungen + Vorlaufindikator + Vorlaufindikatoren + Wahlkampffieber + Wahlkampfflamme + Wahlkampffloskeln + Wahlkampfflyer + Waldorflehrer + Waldorflehrerin + Waldorflehrerinnen + Waldorflehrern + Waldorflehrers + Wegwerfformat + Wettkampffieber + Wettkampfflair + Wettkampffläche + Wiederaufladung + Wirtschaftsauffassung + Wurflaune + Wölflein + Wölfling + Zahlungsaufforderung + Zahlungsaufforderungen + Zeitauflösung + Zupfinstrument + Zupfinstrumente + Zupfinstrumenten + Zupfinstrumentes + Zupfinstruments + Zweifler + Zweiflerin + Zweiflerinnen + Zweiflern + Zweiflers + Zweitauflage + Zweitauflagen + Zwölffingerdarm + Zwölffingerdarmes + Zwölffingerdarms + Zöpflein + ablauffähig + ablauffähige + ablauffähigem + ablauffähigen + ablauffähiger + ablauffähiges + arbeitskampffähig + auffahrbar + auffahrbare + auffahrbarem + auffahrbaren + auffahrbarer + auffahrbares + auffahre + auffahren + auffahrend + auffahrende + auffahrendem + auffahrenden + auffahrender + auffahrendes + auffahrt + auffalle + auffallen + auffallend + auffallende + auffallendem + auffallenden + auffallender + auffallendere + auffallenderem + auffallenderen + auffallenderer + auffallenderes + auffallenderweise + auffallendes + auffallendst + auffallendste + auffallendstem + auffallendsten + auffallendster + auffallendstes + auffallt + auffaltbar + auffand + auffanden + auffandest + auffandet + auffandst + auffangbar + auffangbare + auffangbarem + auffangbaren + auffangbarer + auffangbares + auffange + auffangen + auffangend + auffangende + auffangendem + auffangenden + auffangender + auffangendes + auffassbar + auffassbare + auffassbarem + auffassbaren + auffassbarer + auffassbares + auffasse + auffassen + auffassend + auffassende + auffassendem + auffassenden + auffassender + auffassendes + auffassens + auffassest + auffasst + auffasste + auffassten + auffasstest + auffasstet + auffaßt + auffaßte + auffaßten + auffaßtest + auffaßtet + auffiel + auffiele + auffielen + auffielst + auffielt + auffindbar + auffindbare + auffindbarem + auffindbaren + auffindbarer + auffindbares + auffinde + auffinden + auffindend + auffindende + auffindendem + auffindenden + auffindender + auffindendes + auffindens + auffindest + auffindet + auffing + auffinge + auffingen + auffingst + auffingt + auffische + auffischen + auffischend + auffischende + auffischendem + auffischenden + auffischender + auffischendes + auffischest + auffischst + auffischt + auffischte + auffischten + auffischtest + auffischtet + aufflackern + aufflamme + aufflammen + aufflammend + aufflammende + aufflammendem + aufflammenden + aufflammender + aufflammendes + aufflammst + aufflammt + aufflammte + aufflammten + aufflammtest + aufflammtet + auffliege + auffliegen + auffliegend + auffliegende + auffliegendem + auffliegenden + auffliegender + auffliegendes + auffliegst + auffliegt + auffloge + aufflogen + aufflogest + auffloget + aufflöge + aufflögen + aufflögest + aufflöget + auffordere + auffordern + auffordernd + auffordernde + aufforderndem + auffordernden + auffordernder + aufforderndes + aufforderns + aufforderst + auffordert + aufforderte + aufforderten + auffordertest + auffordertet + auffordre + aufforstbar + aufforstbare + aufforstbarem + aufforstbaren + aufforstbarer + aufforstbares + aufforste + aufforsten + aufforstend + aufforstende + aufforstendem + aufforstenden + aufforstender + aufforstendes + aufforstens + aufforstest + aufforstet + aufforstete + aufforsteten + aufforstetest + aufforstetet + auffrass + auffrassen + auffrassest + auffrasst + auffraß + auffraßest + auffraßt + auffresse + auffressen + auffressend + auffressende + auffressendem + auffressenden + auffressender + auffressendes + auffresst + auffreßt + auffrischbar + auffrischbare + auffrischbarem + auffrischbaren + auffrischbarer + auffrischbares + auffrische + auffrischen + auffrischend + auffrischende + auffrischendem + auffrischenden + auffrischender + auffrischendes + auffrischens + auffrischest + auffrischst + auffrischt + auffrischte + auffrischten + auffrischtest + auffrischtet + auffrisiere + auffrisieren + auffrisierend + auffrisierende + auffrisierendem + auffrisierenden + auffrisierender + auffrisierendes + auffrisierst + auffrisiert + auffrisierte + auffrisiertem + auffrisierten + auffrisierter + auffrisiertes + auffrisiertest + auffrisiertet + auffrisst + auffrißt + auffräse + auffräsen + auffräsest + auffräset + auffrässe + auffrässen + auffrässest + auffrässet + auffräße + auffräßen + auffräßest + auffräßet + auffuhr + auffuhren + auffuhrst + auffuhrt + auffächerbar + auffächerbare + auffächerbarem + auffächerbaren + auffächerbarer + auffächerbares + auffächere + auffächern + auffächernd + auffächernde + auffächerndem + auffächernden + auffächernder + auffächerndes + auffächerns + auffächerst + auffächert + auffächerte + auffächerten + auffächertest + auffächertet + auffächre + auffährst + auffährt + auffällig + auffällige + auffälligem + auffälligen + auffälliger + auffälligere + auffälligerem + auffälligeren + auffälligerer + auffälligeres + auffälliges + auffälligkeit + auffälligkeiten + auffälligst + auffälligste + auffälligstem + auffälligsten + auffälligster + auffälligstes + auffällst + auffällt + auffängst + auffängt + aufführbar + aufführbare + aufführbarem + aufführbaren + aufführbarer + aufführbares + aufführe + aufführen + aufführend + aufführende + aufführendem + aufführenden + aufführender + aufführendes + aufführens + aufführst + aufführt + aufführte + aufführten + aufführtest + aufführtet + auffüllbar + auffüllbare + auffüllbarem + auffüllbaren + auffüllbarer + auffüllbares + auffülle + auffüllen + auffüllend + auffüllende + auffüllendem + auffüllenden + auffüllender + auffüllendes + auffüllens + auffüllst + auffüllt + auffüllte + auffüllten + auffülltest + auffülltet + aufisst + auflache + auflachen + auflachend + auflachende + auflachendem + auflachenden + auflachender + auflachendes + auflachst + auflacht + auflachte + auflachten + auflachtest + auflachtet + aufladbar + aufladbare + aufladbarem + aufladbaren + aufladbarer + aufladbares + auflade + aufladen + aufladend + aufladende + aufladendem + aufladenden + aufladender + aufladendes + aufladens + auflandig + auflandige + auflandigem + auflandigen + auflandiger + auflandiges + auflasse + auflassen + auflassend + auflassende + auflassendem + auflassenden + auflassender + auflassendes + auflassens + auflasst + auflauere + auflauern + auflauernd + auflauernde + auflauerndem + auflauernden + auflauernder + auflauerndes + auflauerst + auflauert + auflauerte + auflauerten + auflauertest + auflauertet + auflaufe + auflaufen + auflaufend + auflaufende + auflaufendem + auflaufenden + auflaufender + auflaufendes + auflaure + auflaßt + auflebe + aufleben + auflebend + auflebende + auflebendem + auflebenden + auflebender + auflebendes + auflebst + auflebt + auflebte + auflebten + auflebtest + auflebtet + auflege + auflegen + auflegend + auflegende + auflegendem + auflegenden + auflegender + auflegendes + auflegst + auflegt + auflegte + auflegten + auflegtest + auflegtet + auflehne + auflehnen + auflehnend + auflehnende + auflehnendem + auflehnenden + auflehnender + auflehnendes + auflehnens + auflehnst + auflehnt + auflehnte + auflehnten + auflehntest + auflehntet + auflese + auflesen + auflesend + auflesende + auflesendem + auflesenden + auflesender + auflesendes + auflest + aufleuchte + aufleuchten + aufleuchtend + aufleuchtende + aufleuchtendem + aufleuchtenden + aufleuchtender + aufleuchtendes + aufleuchtest + aufleuchtet + aufleuchtete + aufleuchteten + aufleuchtetest + aufleuchtetet + aufliege + aufliegen + aufliegend + aufliegende + aufliegendem + aufliegenden + aufliegender + aufliegendes + aufliegst + aufliegt + aufliesse + aufliessen + aufliessest + aufliesset + aufließe + aufließen + aufließest + aufließet + auflistbar + auflistbare + auflistbarem + auflistbaren + auflistbarer + auflistbares + aufliste + auflisten + auflistend + auflistende + auflistendem + auflistenden + auflistender + auflistendes + auflistens + auflistest + auflistet + auflistete + auflisteten + auflistetest + auflistetet + auflockere + auflockern + auflockernd + auflockernde + auflockerndem + auflockernden + auflockernder + auflockerndes + auflockerns + auflockerst + auflockert + auflockerte + auflockerten + auflockertest + auflockertet + auflockre + auflodere + auflodern + auflodernd + auflodernde + aufloderndem + auflodernden + auflodernder + aufloderndes + aufloderns + aufloderst + auflodert + aufloderte + aufloderten + auflodertest + auflodertet + auflodre + auflädst + auflädt + aufläuft + auflösbar + auflösbare + auflösbarem + auflösbaren + auflösbarer + auflösbares + auflöse + auflösen + auflösend + auflösende + auflösendem + auflösenden + auflösender + auflösendes + auflösens + auflösest + auflöst + auflöste + auflösten + auflöstest + auflöstet + auflüde + auflüden + auflüdest + auflüdet + begreiflich + begreifliche + begreiflichem + begreiflichen + begreiflicher + begreiflichere + begreiflicherem + begreiflicheren + begreiflicherer + begreiflicheres + begreiflicherweise + begreifliches + begreiflichst + begreiflichste + begreiflichstem + begreiflichsten + begreiflichster + begreiflichstes + behilflich + behilfliche + behilflichem + behilflichen + behilflicher + behilfliches + beruflich + berufliche + beruflichem + beruflichen + beruflicher + berufliches + bezweifle + bezweiflete + bezweifleten + bischöflich + bischöfliche + bischöflichem + bischöflichen + bischöflicher + bischöfliches + brieflich + briefliche + brieflichem + brieflichen + brieflicher + briefliches + darauffolge + darauffolgen + darauffolgend + darauffolgende + darauffolgendem + darauffolgenden + darauffolgender + darauffolgendes + darauffolgst + darauffolgt + darauffolgte + darauffolgten + darauffolgtest + darauffolgtet + drauflege + drauflegen + drauflegend + drauflegende + drauflegendem + drauflegenden + drauflegender + drauflegendes + drauflegst + drauflegt + drauflegte + drauflegten + drauflegtest + drauflegtet + drauflos + drauflosgegangen + drauflosgegangene + drauflosgegangenem + drauflosgegangenen + drauflosgegangener + drauflosgegangenes + drauflosgehe + drauflosgehen + drauflosgehend + drauflosgehende + drauflosgehendem + drauflosgehenden + drauflosgehender + drauflosgehendes + drauflosgehst + drauflosgeht + drauflosging + drauflosginge + drauflosgingen + drauflosgingst + drauflosgingt + dörflich + dörfliche + dörflichem + dörflichen + dörflicher + dörfliches + elffach + elffache + elffachem + elffachen + elffacher + elffaches + elffingrig + elffingrige + erzbischöflich + erzbischöfliche + erzbischöflichem + erzbischöflichen + erzbischöflicher + erzbischöfliches + freiberuflich + freiberufliche + freiberuflichem + freiberuflichen + freiberuflicher + freiberufliches + fünffach + fünffache + fünffachem + fünffachen + fünffacher + fünffaches + fünffingerig + fünffingerige + fünffingerigem + fünffingerigen + fünffingeriger + fünffingeriges + glimpflich + glimpfliche + glimpflichem + glimpflichen + glimpflicher + glimpfliches + handgreiflich + handgreifliche + handgreiflichem + handgreiflichen + handgreiflicher + handgreifliches + hauptberuflich + hauptberufliche + hauptberuflichem + hauptberuflichen + hauptberuflicher + hauptberufliches + hilflos + hilflose + hilflosem + hilflosen + hilfloser + hilflosere + hilfloserem + hilfloseren + hilfloserer + hilfloseres + hilfloses + hilflosest + hilfloseste + hilflosestem + hilflosesten + hilflosester + hilflosestes + hinauffahre + hinauffahren + hinauffahrend + hinauffahrende + hinauffahrendem + hinauffahrenden + hinauffahrender + hinauffahrendes + hinauffahrt + hinauffuhr + hinauffuhren + hinauffuhrst + hinauffuhrt + hinauffährt + hinaufführe + hinaufführen + hinaufführend + hinaufführende + hinaufführendem + hinaufführenden + hinaufführender + hinaufführendes + hinaufführst + hinaufführt + hinaufführte + hinaufführten + hinaufführtest + hinaufführtet + hochauflösend + hochauflösende + hochauflösendem + hochauflösenden + hochauflösender + hochauflösendes + hoffähig + höflich + höfliche + höflichem + höflichen + höflicher + höflichere + höflicherem + höflicheren + höflicherer + höflicheres + höfliches + höflichkeit + höflichkeiten + höflichkeitsbesuche + höflichkeitsbesuches + höflichkeitsformeln + höflichst + höflichste + höflichstem + höflichsten + höflichster + höflichstes + kampffähig + kampffähige + kampffähigem + kampffähigen + kampffähiger + kampffähiges + kampflos + kampflose + kampflosem + kampflosen + kampfloser + kampfloses + kampflustig + kampflustige + kampflustigem + kampflustigen + kampflustiger + kampflustigere + kampflustigerem + kampflustigeren + kampflustigerer + kampflustigeres + kampflustiges + kampflustigst + kampflustigste + kampflustigstem + kampflustigsten + kampflustigster + kampflustigstes + kauflustig + kauflustige + kauflustiger + kauflustigste + kauflustigsten + kopflastig + kopflastige + kopflastigem + kopflastigen + kopflastiger + kopflastiges + kopflos + kopflose + kopflosem + kopflosen + kopfloser + kopflosere + kopfloserem + kopfloseren + kopfloserer + kopfloseres + kopfloses + kopflosest + kopfloseste + kopflosestem + kopflosesten + kopflosester + kopflosestes + käuflich + käufliche + käuflichem + käuflichen + käuflicher + käufliches + lauffähig + lauffähige + lauffähigem + lauffähigen + lauffähiger + lauffähiges + markgräflich + markgräfliche + markgräflichem + markgräflichen + markgräflicher + markgräfliches + nebenberuflich + nebenberufliche + nebenberuflichem + nebenberuflichen + nebenberuflicher + nebenberufliches + prüffähige + rauflustig + rauflustige + rauflustigem + rauflustigen + rauflustiger + rauflustiges + reiflich + reifliche + reiflichem + reiflichen + reiflicher + reiflichere + reiflicherem + reiflicheren + reiflicherer + reiflicheres + reifliches + reiflichst + reiflichste + reiflichstem + reiflichsten + reiflichster + reiflichstes + schieflache + schieflachen + schieflachend + schieflachende + schieflachendem + schieflachenden + schieflachender + schieflachendes + schieflachst + schieflacht + schieflachte + schieflachten + schieflachtest + schieflachtet + schieflag + schieflagst + schieflagt + schiefliege + schiefliegen + schiefliegend + schiefliegende + schiefliegendem + schiefliegenden + schiefliegender + schiefliegendes + schiefliegst + schiefliegt + schiefläuft + schimpflich + schimpfliche + schimpflichem + schimpflichen + schimpflicher + schimpfliches + schlaflos + schlaflose + schlaflosem + schlaflosen + schlafloser + schlafloses + schweflig + schweflige + schwefligem + schwefligen + schwefliger + schwefliges + selbstauffaltend + steckbrieflich + straffrisch + straffähig + straffällig + straffällige + straffälligem + straffälligen + straffälliger + straffälliges + straflos + straflose + straflosem + straflosen + strafloser + strafloses + sträflich + sträfliche + sträflichem + sträflichen + sträflicher + sträfliches + tariffähig + tariflich + tarifliche + tariflichem + tariflichen + tariflicher + tarifliches + teuflisch + teuflische + teuflischem + teuflischen + teuflischer + teuflischere + teuflischerem + teuflischeren + teuflischerer + teuflischeres + teuflisches + teuflischst + teuflischste + teuflischstem + teuflischsten + teuflischster + teuflischstes + tieffliege + tieffliegen + tieffliegend + tieffliegende + tieffliegendem + tieffliegenden + tieffliegender + tieffliegendes + tieffliegst + tieffliegt + tiefflog + tiefflogen + tiefflogst + tiefflogt + tiefladbar + tiefladbare + tiefladbarem + tiefladbaren + tiefladbarer + tiefladbares + tieflade + tiefladen + tiefliege + tiefliegen + tiefliegend + tiefliegende + tiefliegendem + tiefliegenden + tiefliegender + tiefliegendes + tiefliegst + tiefliegt + unauffindbar + unauffindbare + unauffindbarem + unauffindbaren + unauffindbarer + unauffindbares + unauffällig + unauffällige + unauffälligem + unauffälligen + unauffälliger + unauffälligere + unauffälligerem + unauffälligeren + unauffälligerer + unauffälligeres + unauffälliges + unauffälligkeit + unauffälligkeiten + unauffälligst + unauffälligste + unauffälligstem + unauffälligsten + unauffälligster + unauffälligstes + unauflösbar + unauflösbare + unauflösbarem + unauflösbaren + unauflösbarer + unauflösbares + unauflöslich + unauflösliche + unauflöslichem + unauflöslichen + unauflöslicher + unauflösliches + unbegreiflich + unbegreifliche + unbegreiflichem + unbegreiflichen + unbegreiflicher + unbegreiflichere + unbegreiflicherem + unbegreiflicheren + unbegreiflicherer + unbegreiflicheres + unbegreifliches + unbegreiflichkeit + unbegreiflichst + unbegreiflichste + unbegreiflichstem + unbegreiflichsten + unbegreiflichster + unbegreiflichstes + unerschöpflich + unerschöpfliche + unerschöpflichem + unerschöpflichen + unerschöpflicher + unerschöpflichere + unerschöpflicherem + unerschöpflicheren + unerschöpflicherer + unerschöpflicheres + unerschöpfliches + unerschöpflichst + unerschöpflichste + unerschöpflichstem + unerschöpflichsten + unerschöpflichster + unerschöpflichstes + unglimpflich + unglimpfliche + unglimpflichem + unglimpflichen + unglimpflicher + unglimpfliches + unhöflich + unhöfliche + unhöflichem + unhöflichen + unhöflicher + unhöflichere + unhöflicherem + unhöflicheren + unhöflicherer + unhöflicheres + unhöfliches + unhöflichkeit + unhöflichkeiten + unhöflichst + unhöflichste + unhöflichstem + unhöflichsten + unhöflichster + unhöflichstes + unverkäuflich + unverkäufliche + unverkäuflichem + unverkäuflichen + unverkäuflicher + unverkäufliches + unwiderruflich + unwiderrufliche + unwiderruflichem + unwiderruflichen + unwiderruflicher + unwiderrufliches + uraufführe + uraufführen + uraufführend + uraufführende + uraufführendem + uraufführenden + uraufführender + uraufführendes + uraufführst + uraufführt + uraufführte + uraufführten + uraufführtest + uraufführtet + verelffache + verelffachen + verelffachend + verelffachende + verelffachendem + verelffachenden + verelffachender + verelffachendes + verelffachst + verelffacht + verelffachte + verelffachtem + verelffachten + verelffachter + verelffachtes + verelffachtest + verelffachtet + verfünffache + verfünffachen + verfünffachend + verfünffachende + verfünffachendem + verfünffachenden + verfünffachender + verfünffachendes + verfünffachst + verfünffacht + verfünffachte + verfünffachtem + verfünffachten + verfünffachter + verfünffachtes + verfünffachtest + verfünffachtet + verkäuflich + verkäufliche + verkäuflichem + verkäuflichen + verkäuflicher + verkäufliches + verwerflich + verwerfliche + verwerflichem + verwerflichen + verwerflicher + verwerflichere + verwerflicherem + verwerflicheren + verwerflicherer + verwerflicheres + verwerfliches + verwerflichst + verwerflichste + verwerflichstem + verwerflichsten + verwerflichster + verwerflichstes + verzwölffache + verzwölffachen + verzwölffachend + verzwölffachende + verzwölffachendem + verzwölffachenden + verzwölffachender + verzwölffachendes + verzwölffachst + verzwölffacht + verzwölffachte + verzwölffachtem + verzwölffachten + verzwölffachter + verzwölffachtes + verzwölffachtest + verzwölffachtet + vorberuflich + vorberufliche + vorberuflichem + vorberuflichen + vorberuflicher + vorberufliches + wettkampffähiges + widerruflich + widerrufliche + widerruflichem + widerruflichen + widerruflicher + widerrufliches + wiederaufführung + wiederaufführungen + wiederaufladbar + wiederaufladbare + wiederaufladbarem + wiederaufladbaren + wiederaufladbarer + wiederaufladbares + wiederauflade + wiederaufladen + wiederaufladend + wiederaufladende + wiederaufladendem + wiederaufladenden + wiederaufladender + wiederaufladendes + wiederaufladet + wiederauflebe + wiederaufleben + wiederauflebend + wiederauflebende + wiederauflebendem + wiederauflebenden + wiederauflebender + wiederauflebendes + wiederauflebst + wiederauflebt + wiederauflebte + wiederauflebten + wiederauflebtest + wiederauflebtet + würflig + würflige + würfligem + würfligen + würfliger + würfliges + zweifle + zwölffach + zwölffache + zwölffachem + zwölffachen + zwölffacher + zwölffaches + übertariflich + übertarifliche + übertariflichem + übertariflichen + übertariflicher + übertarifliches + ]], + }, + { + patterns = { + ffi = "ff|i", + ffl = "ff|l", + fff = "ff|f", + }, + words = [[ + Griffleisten + Grifflochsysteme + Grifflänge + Grifflöcher + Grifflöchern + Grifflücke + Offline + -- Offline-Anwendungen + -- Offline-Archiv + -- Offline-Betrachtung + -- Offline-Betrieb + -- Offline-Browser + -- Offline-Challenge + -- Offline-Daten + -- Offline-Dating + -- Offline-Dienste + -- Offline-Download + -- Offline-Funktionalität + -- Offline-Funktionalitäten + -- Offline-Fähigkeit + -- Offline-Geschäft + -- Offline-Installer + -- Offline-Karten + -- Offline-Kompaktierung + -- Offline-Konsum + -- Offline-Kopien + -- Offline-Marketing + -- Offline-Multiplayer + -- Offline-Multiplayer-Modus + -- Offline-Netflix-Vergnügen + -- Offline-Nutzung + -- Offline-Optimierung + -- Offline-Phasen + -- Offline-Programmierung + -- Offline-Projektstart + -- Offline-Prüfung + -- Offline-Publikationen + -- Offline-Test + -- Offline-Trainingsgelände + -- Offline-Transaktionen + -- Offline-Umgebungen + -- Offline-Ungleichheit + -- Offline-Versammlungen + -- Offline-Version + -- Offline-Vertriebskanal + -- Offline-Wikipedia + Offlineversion + Offlinezeit + Offlinezugriff + Schifflange + Schifflinien + Schiffliste + Schifflände + Stoffideen + Stofflappen + Stofflehre + Stofflich + Stoffliche + Stofflichkeit + Stofflichkeiten + Stofflumpen + Stofflänge + Stofflöwen + offline-Lesen + offline-netflix-Filme + stofflich + stoffliche + stofflichen + stofflicher + Offlinezugriffe + Offlinezugriffs + Baustoffindustrie + Baustoffindustrien + Baustoffingenieur + Baustoffingenieure + Büffler + Büfflerin + Büfflerinnen + Kleiderstoffindustrie + Knoepffler + Kunststoffindustrie + Löffler + Rohstoffindex + Rohstoffindexe + Rohstoffindices + Rohstoffindustrie + Rohstoffingenieur + Rohstoffingenieure + Schifffahrt + Schnüffler + Schnüfflerin + Schnüfflerinnen + Schnüfflern + Schnüfflers + Sprengstofffallen + Steuerschnüffler + Steuerschnüfflern + Steuerschnüfflers + begrifflich + begriffliche + begrifflichem + begrifflichen + begrifflicher + begriffliches + grifffest + grifffeste + grifffestem + grifffesten + grifffester + grifffestes + inbegriffleitend + knifflig + knifflige + kniffligem + kniffligen + kniffliger + kniffligere + kniffligerem + kniffligeren + kniffligerer + kniffligeres + kniffliges + kniffligst + kniffligste + kniffligstem + kniffligsten + kniffligster + kniffligstes + offline + trefflich + treffliche + trefflichem + trefflichen + trefflicher + trefflichere + trefflicherem + trefflicheren + trefflicherer + trefflicheres + treffliches + trefflichkeit + trefflichst + trefflichste + trefflichstem + trefflichsten + trefflichster + trefflichstes + unübertrefflich + vortrefflich + vortreffliche + vortrefflichem + vortrefflichen + vortrefflicher + vortreffliches + ]], + }, + { + patterns = { + ft = "f|t", + fft = "ff|t", + }, + words = [[ + Auftakt + -- Auftakt-Aus + -- Auftakt-Ausscheiden + -- Auftakt-Durchgang + -- Auftakt-Event + -- Auftakt-Folge + -- Auftakt-Freilos + -- Auftakt-Gegnerin + -- Auftakt-Grand-Prix + -- Auftakt-Heldin + -- Auftakt-Hürde + -- Auftakt-Inszenierung + -- Auftakt-Niederlage + -- Auftakt-Pressekonferenz + -- Auftakt-Programm + -- Auftakt-Reise + -- Auftakt-Scharte + -- Auftakt-Seufzer + -- Auftakt-Sieg + -- Auftakt-Veranstaltung + -- Auftakt-Vorstellungen + -- Auftakt-Wochenende + -- Auftakt-Workshop + Auftaktabend + Auftaktaktion + Auftaktaktionen + Auftaktanlass + Auftaktbezwinger + Auftaktchores + Auftaktdrittel + Auftaktdrittels + Auftaktduell + Auftakte + Auftaktepisode + Auftakterfolg + Auftaktetappe + Auftaktfall + Auftaktfilm + Auftaktfolge + Auftaktgegner + Auftaktgeschichte + Auftaktgottesdienst + Auftakthürde + Auftaktkampf + Auftaktkundgebung + Auftaktlauf + Auftaktlos + Auftaktmarsch + Auftaktmatch + Auftaktmotiv + Auftaktniederlage + Auftaktniederlagen + Auftaktpartie + Auftaktpartien + Auftaktplädoyer + Auftaktplädoyers + Auftaktpointe + Auftaktpremiere + Auftaktproduktion + Auftaktprogramm + Auftaktquartal + Auftaktrede + Auftaktrennen + Auftaktrunde + Auftakts + Auftaktsaison + Auftaktsatz + Auftaktseminar + Auftaktsendung + Auftaktshow + Auftaktsieg + Auftaktsieger + Auftaktsitzung + Auftaktsong + Auftaktspiel + Auftaktspiele + Auftaktspiels + Auftaktspielt + Auftaktspieltages + Auftaktspot + Auftaktspringen + Auftaktsprint + Auftaktstaffel + Auftakttermin + Auftakttraining + Auftakttrainings + Auftakttreffen + Auftaktturnier + Auftaktveranstaltung + Auftaktveranstaltungen + Auftaktverluste + Auftaktvideos + Auftaktvorlesung + Auftaktweltcup + Auftaktwettbewerb + Auftaktzeichen + Auftaktzeitfahren + Auftaktzeremonie + Auftaktzeremoniell + Auftanken + Auftankens + Auftankterminal + Auftauboden + Auftaubodens + Auftauchen + Auftauchende + Auftauchgeschwindigkeit + Auftauchvorgang + Auftauen + Auftauflüssigkeit + Auftaufunktion + Auftaumittel + Auftauplatten + Auftauprozesses + Auftausalz + Auftauschicht + Auftauzeit + Auftischalternative + Auftraege + Auftrag + Auftragbestand + Auftrage + Auftrageber + Auftragemengen + Auftragen + Auftrages + Auftraggbeer + Auftraggeber + Auftraggeberin + Auftraggeberinnen + Auftraggebern + Auftraggeberrisikos + Auftraggebers + Auftragnehmer + Auftragnehmern + Auftragnehmers + Auftragnehmerseite + Auftrags + Auftrags-/Projektgröße + Auftrags-Revolverhelden + Auftragsabsprache + Auftragsabwicklung + Auftragsakquise + Auftragsakquisition + Auftragsangeboten + Auftragsangelegenheiten + Auftragsannahme + Auftragsanstieg + Auftragsanzahl + Auftragsarbeit + Auftragsarbeiten + Auftragsarten + Auftragsausfälle + Auftragsausfällen + Auftragsbaby + Auftragsbasis + Auftragsbearbeitung + Auftragsberatungsstellen + Auftragsbericht + Auftragsbeschaffung + Auftragsbeschreibung + Auftragsbestand + Auftragsbestandes + Auftragsbestands + Auftragsbestände + Auftragsbeständen + Auftragsbestätigung + Auftragsbestätigung/Lieferschein + Auftragsbestätigungen + Auftragsbohrungen + Auftragsboom + Auftragsbuch + Auftragsbudget + Auftragsbücher + Auftragsbüchern + Auftragsdaten + Auftragsdatenverarbeitungsvereinbarung + Auftragsdecke + Auftragsdiebin + Auftragsdurchlauf + Auftragsdurchlaufzeit + Auftragseinbruch + Auftragseinbruchs + Auftragseinbrüche + Auftragseinbrüchen + Auftragseinbußen + Auftragseingang + Auftragseingangs + Auftragseingänge + Auftragseingängen + Auftragseinheiten + Auftragsende + Auftragsentwicklung + Auftragserfüllung + Auftragserholung + Auftragserteilung + Auftragsfall + Auftragsfertiger + Auftragsfertigern + Auftragsfertigung + Auftragsfilme + Auftragsfirma + Auftragsfirmen + Auftragsflaute + Auftragsflauten + Auftragsflut + Auftragsfolge + Auftragsformular + Auftragsformulare + Auftragsforscher + Auftragsforschers + Auftragsforschung + Auftragsforschungsinstitut + Auftragsfotografien + Auftragsgebiete + Auftragsgebieten + Auftragsgegenstandes + Auftragsgemälde + Auftragsgeschwindigkeit + Auftragsgröße + Auftragshersteller + Auftragsherstellerin + Auftragshoch + Auftragshonoraren + Auftragshöhe + Auftragsindex + Auftragsinhalt + Auftragsinstitut + Auftragskanon + Auftragskapazität + Auftragskiller + Auftragskillerin + Auftragskillern + Auftragskomponisten + Auftragskomposition + Auftragskompositionen + Auftragskomödien + Auftragskostenpauschale + Auftragskunst + Auftragsköpfen + Auftragsküche + Auftragskünstler + Auftragskürzungen + Auftragslabor + Auftragslage + Auftragsleistungen + Auftragslimit + Auftragslücken + Auftragsmalereien + Auftragsmalerin + Auftragsmangel + Auftragsmangels + Auftragsmethode + Auftragsminus + Auftragsmontagen + Auftragsmord + Auftragsmorde + Auftragsmordes + Auftragsmords + Auftragsmörder + Auftragsmörderin + Auftragsmördern + Auftragsnamens + Auftragsnehmern + Auftragsnummer + Auftragsnummern + Auftragsoper + Auftragspalette + Auftragspauschale + Auftragsplus + Auftragspolster + Auftragspotential + Auftragspotenzial + Auftragsproduktion + Auftragsproduktionen + Auftragsproduzent + Auftragsprofil + Auftragsprojekte + Auftragsreichweite + Auftragsreichweiten + Auftragsreihe + Auftragsreihenfolge + Auftragsrückgang + Auftragsrückgänge + Auftragssachbearbeiter + Auftragsschub + Auftragsschwankungen + Auftragsschwämme + Auftragssituation + Auftragsspitzen + Auftragsstammsatz + Auftragsstopp + Auftragsstornierungen + Auftragsstornos + Auftragsstudien + Auftragsstunden + Auftragsstärke + Auftragssumme + Auftragssummen + Auftragssätze + Auftragstaktik + Auftragstalfahrt + Auftragstechniken + Auftragstexter + Auftragsumfang + Auftragsunternehmen + Auftragsunternehmer + Auftragsunternehmern + Auftragsverarbeiter + Auftragsverarbeitungsvertrag + Auftragsverdoppelung + Auftragsverfolgung + Auftragsvergabe + Auftragsvergaben + Auftragsvergabeprozess + Auftragsverhältnis + Auftragsverlust + Auftragsverwaltung + Auftragsvielfalt + Auftragsvolumen + Auftragsvolumens + Auftragsvolumina + Auftragswarteschlange + Auftragswechsel + Auftragswege + Auftragswelle + Auftragswerk + Auftragswerke + Auftragswerken + Auftragswert + Auftragswerten + Auftragswertes + Auftragswerts + Auftragswesens + Auftragszahlen + Auftragszugangsim + Auftragszunahme + Auftragszuwachses + Auftragszuwächse + Auftragt + Auftragung + Auftreffen + Auftreffgeschwindigkeit + Auftreffgeschwindigkeiten + Auftreffpunkt + Auftreffwinkel + Auftreiben + Auftreibung + Auftreibungen + Auftrennen + Auftrennung + Auftrennungsbereich + Auftreten + Auftretende + Auftretenden + Auftretens + Auftretenshäufigkeit + Auftretenswahrscheinlichkeit + Auftrieb + Auftriebe + Auftriebs + Auftriebsankern + Auftriebsasymmetrie + Auftriebsausgleich + Auftriebsbeiwert + Auftriebserhöhung + Auftriebsfläche + Auftriebsgürtel + Auftriebshilfe + Auftriebshilfen + Auftriebsklappen + Auftriebskoeffizient + Auftriebskoeffizienten + Auftriebskräf|te + Auftriebskörper + Auftriebskörpern + Auftriebsprinzip + Auftriebspunkt + Auftriebsschwerpunkt + Auftriebsschwert + Auftriebsverlust + Auftriebsverteilung + Auftriebsvolumen + Auftriebswassers + Auftriebswert + Auftriebszahlen + Auftriebszunahme + Auftriebszuwachs + Auftriebsübungen + Auftriebverliehen + Auftritt + Auftritte + Auftritten + Auftrittes + Auftrittmöglichkeiten + Auftritts + Auftritts-Reihenfolge + Auftritts-Spots + Auftritts-Stopp + Auftritts-Tätigkeit + Auftrittsabend + Auftrittsapplaus + Auftrittsbeschränkungen + Auftrittserfahrung + Auftrittserlaubnis + Auftrittsfläche + Auftrittsformen + Auftrittsgagen + Auftrittsgarantie + Auftrittsgenehmigung + Auftrittshonorare + Auftrittshöhen + Auftrittslied + Auftrittslieder + Auftrittsmarathon + Auftrittsmöglichkeit + Auftrittsmöglichkeiten + Auftrittsort + Auftrittsorte + Auftrittspause + Auftrittsraum + Auftrittsreihe + Auftrittsserie + Auftrittssperre + Auftrittsstätte + Auftrittsstätten + Auftrittstermin + Auftrittstermine + Auftrittstiefe + Auftrittstätigkeit + Auftrittsverbot + Auftrittsverbote + Auftrittsverbots + Auftrittsvorbereitung + Auftrittswahrscheinlichkeit + Auftrittsweise + Auftrittszeit + Auftritt… + Auftrocknung + Auftrumpfen + Auftrumpferei + Aufträgen + Auftuchen + Auftürmungen + Brieftaschen + Brieftauben + Brieftauben-Abteilungen + Brieftaubenausstellung + Brieftaubenfreund + Brieftaubenverein + Brieftaubenwart + Brieftaubenzuchtverein + Brieftaubenzuchtvereins + Brieftaubenzüchter + Brieftaxe + Brieftext + Brieftexte + Brieftitel + Briefträger + Briefträgerin + Briefträgerkissen + Briefträgern + Briefträgers + Cheftechniker + Cheftechnologin + Cheftexter + Cheftheologe + Cheftoilette + Cheftoxikologe + Cheftrainer + Cheftrainer-Position + Cheftrainer-Posten + Cheftrainer-Station + Cheftrainer-Stelle + Cheftrainer-Vertrag + Cheftraineramt + Cheftrainerin + Cheftrainern + Cheftrainerposten + Cheftrainers + Cheftrainerstelle + Cheftrainervertrag + Dorftaxi + Dorfteich + Dorfteiches + Dorfteil + Dorfteile + Dorfteilen + Dorfteils + Dorftempeln + Dorftore + Dorftreffpunkt + Dorfturnier + Elfte + Elften + Elfter + Fünftagegruppe + Fünftausend + Fünfte + Fünfteiler + Fünfteilige + Fünftel + Fünfteln + Fünftelregelung + Fünftels + Fünftem + Fünften + Fünftens + Fünfter + Fünftes + Fünftonner + Fünftonskalen + Golftag + Golftange + Golftouren + Golftrainer + Golftrainerin + Golftrolley + Golfturnier + Golfturniere + Golftümmler + Greiftechnik + Greiftier + Greiftiere + Hoftafeln + Hoftag + Hoftage + Hoftagen + Hoftags + Hoftaller + Hofteam + Hofteholder + Hofteilung + Hofterrasse + Hoftex + Hoftheater + Hoftheater-Kulissendepot + Hoftheaterdirektion + Hoftheaterintendanten + Hoftheatermaler + Hoftheatern + Hoftheaters + Hoftieren + Hoftohorn + Hoftor + Hoftoren + Hoftrac + Hoftracht + Hoftrakt + Hoftrauung + Hoftrompeter + Impftestreihen + Kauftest + Kopfteil + Kopfteils + Kopftemperatur + Kopftentakeln + Kopfthema + Kopftitel + Kopftransplantation + Kopftreffern + Kopftreffers + Kopftribüne + Kopftrommel + Kopfträger + Kopftuch + Kopftuch-Debatte + Kopftuch-Konferenzen + Kopftuch-Revolutionäre + Kopftuch-Urteil + Kopftuchdebatte + Kopftuches + Kopftuchfrage + Kopftuchgruppe + Kopftuchkränkung + Kopftuchmädchen + Kopftuchpflicht + Kopftuchs + Kopftuchstreit + Kopftuchverbot + Kopftuchverbots + Kopftuchverbots-Regelung + Kopftüchern + Laufteam + Laufteams + Lauftechnik + Laufteppiche + Lauftermine + Lauftest + Lauftext + Prüftiefe + Prüftransformatoren + Prüftransformators + Prüftruppe + Prüftätigkeit + Ruftasten + Ruftaxiunternehmen + Rufton-Listen + Ruftongenerator + Ruftonlautstärke + Schilfteich + Schlaftabletten + Schlaftabletten-Sucht + Schlaftaktik + Schlaftheater + Schlaftiefe + Schlaftracking + Schlaftraining + Schlaftrainings + Schlaftrakt + Schlaftrunk + Schlaftrunken + Schlaftrunkenheit + Schlaftyp + Senftenbach + Straftat + Straftatbegehung + Straftatbestand + Straftatbestandes + Straftatbestands + Straftatbestände + Straftatbeständen + Straftatbilanz + Straftaten + Straftatenbereich + Straftatenhäufung + Straftatenverfolgung + Straftatenverhütung + Straftatermittlungen + Straftatverdacht + Straftatverdachts + Straftheorie + Straftheorien + Straftraining + Straftreffer + Straftritt + Straftritte + Straftäter + Straftäterin + Straftäterinnen + Straftätern + Straftäters + Surftipp + Surftipps + Surftips + Tariftabelle + Tarifthemen + Tariftreue + Tariftreue-Erklärung + Tariftreuegesetz + Tariftreueregelung + Tieftanks + Tieftauch-Champion + Tieftauchen + Tieftauchgänge + Tieftauchtopf + Tieftauchversuch + Tieftauchversuche + Tieftauchweltrekord + Tieftemperaturen + Tieftemperaturform + Tieftemperaturforschung + Tieftemperaturkältemittel + Tieftemperaturphase + Tieftemperaturphysik + Tiefthal + Tiefton-Verstärkers + Tieftonbereich + Tieftons + Tieftöner + Tieftöners + Torftopf + Wurftaubenclub + Wurftaubenschießen + Wurftechnik + Wurftechniken + Wurftäuschungen + auftakeln + auftakt + auftaktig + auftaktigen + auftaten + auftauche + auftauchende + auftauchenden + auftauchender + auftaucht + auftauchten + auftaut + auftischt + auftoupierter + auftrag + auftrage + auftragend + auftragende + auftragender + auftraggebende + auftragnehmenden + auftragsarme + auftragsbezogen + auftragsbezogene + auftragsbezogener + auftragsgefertigten + auftragsgemäß + auftragslosen + auftragsneutral + auftragsorientiert + auftragsrelevanten + auftragsschwache + auftragsweise + auftrainieren + auftraten + auftreffende + auftreffenden + auftreibende + auftreibt + auftrennt + auftrennten + auftrete + auftreten + auftretend + auftretende + auftretendem + auftretenden + auftretender + auftretendes + auftretten + auftrieben + auftriebserzeugende + auftritt + auftritten + auftrittslose + auftrocknen + auftrocknet + auftrug + auftrumpfen + auftrumpfend + auftrumpfende + auftrumpfendem + auftrumpfender + auftrumpfendes + aufträgst + aufträgt + aufträte + aufträten + auftuende + auftuenden + auftupfen + auftut + auftürmende + auftürmenden + auftürmt + auftürmte + dorftypische + elfteilige + elfteiliger + elften + elftes + ftp + ftp-Applikationen + ftp-Server + fünftaktiges + fünfteilig + fünfteilige + fünfteiligen + fünfteiliger + fünfteiliges + fünftem + fünften + fünftenmal + fünftens + fünftes + fünftägige + fünftägigen + fünftägiger + fünftägiges + fünftätigen + schlaftrunkenen + schlaftrunkener + straftätern + tariftreue + tariftreuen + Auftakt + Aufteilung + Aufteilungen + Auftrag + Auftraggeber + Auftritt + Aufträge + Auspufftopf + Auspufftöpfe + Auswurftaste + Brieftasche + Brieftaube + Cheftestpilot + Cheftheoretiker + Cheftrainer + Dampftopf + Dorftourismus + Dorftradition + Dorftratsch + Dorftrottel + Dorftyrann + Dorftölpel + Dorftümpel + Eingreiftruppe + Elftonner + Freiwurftor + Freiwurftreffer + Fünftagewoche + Fünftausender + Golftasche + Golftheorie + Golftour + Herzklopftöne + Hoftyrann + Hoftür + Kampftaktik + Kampftheorien + Kampftruppe + Kampftänzer + Kampftätigkeit + Kopftreffer + Kopftuch + Kopftücher + Kopftüchlein + Kreislauftheorie + Kunststofftonne + Kunststofftonnen + Kunststofftopf + Kunststofftube + Kunststofftuben + Kunststofftöpfe + Kunststofftüte + Kunststofftüten + Lauftherapie + Lauftrainer + Mehrkampftitel + Nadelstreifträger + Pfeifton + Ruftaste + Ruftaxi + Rufton + Sauerstofftank + Sauftrottel + Schifftyp + Schimpftiraden + Schlaftablette + Schlafteddy + Schlaftee + Schlaftemperatur + Schlaftherapeut + Schlaftherapeutin + Schlaftherapie + Schlaftier + Schlaftod + Schlaftrank + Schnupftabak + Schnupftuch + Schnupftücher + Senftopf + Senftöpfchen + Senftüte + Stapftiefe + Stieftochter + Stieftöchter + Stofftapete + Stofftasche + Stofftheorie + Stofftier + Stofftiere + Stofftiger + Stofftischtuch + Stofftischtücher + Stofftradition + Stofftrennung + Stoffturnschuhe + Stofftyp + Stofftäschchen + Straftarif + Strafteam + Straftechnisch + Straftendenz + Straftermin + Straftheologisch + Straftilgung + Straftor + Straftribunal + Sumpftour + Surftalent + Surftour + Surftrip + Tauftag + Tiefton + Treibstofftank + Vorlauftaste + Wahlkampftöne + Wettkampftag + Wettkampftrubel + Wurftalent + Wurftraining + Wurftuch + Zopfträger + Zwölftonmusik + auftanken + auftasten + auftat + auftauchen + auftauchte + auftauen + auftaute + aufteilen + auftischen + auftischte + auftoupieren + auftraben + auftragen + auftrat + auftreiben + auftreten + auftun + auftürmen + elftausend + elfte + elfter + fünftausend + fünfte + fünfter + fünftürig + kauftüchtig + schlaftrunken + tieftönend + wahlkampftauglich + waldorftypisch + zwölftausend + zwölfte + zwölfter + zwölftönend + -- Hälfte + -- bestraft vorbestraft + -- fünft zu elft zu zwölft + -- klopfte schöpften + -- kämpfte schimpfte schrumpfte + -- schaffte hoffte klaffte verpuffte + ]], + }, + { + patterns = { + fb = "f|b", + ffb = "ff|b", + }, + words = [[ + Laufbereitschaft + (un)widerrufbar + Anrufbeantworter + Aufbauspieler + Aufblick + Aufbruch + Briefbeschwerer + Briefbogen + Briefbombe + Chefberater + Dampfbad + Dorfbevölkerung + Dorfbewohner + Dorfbewohnerin + Golfball + Griffbrett + Hofbräuhaus + Kaufbeleg + Kopfball + Kopfbedeckung + Kopfbewegung + Laufbahn + Laufband + Laufbursche + Raufbold + Regenüberlaufbecken + Rohstoffboom + Sauerstoffbedarf + Schadstoffbelastung + Scharfblick + Schiffbau + Schiffbruch + Schlafbedürfnis + Stiefbruder + Stoffbahnen + Strafbefehl + Strafbestimmungen + Surfbretter + Tarifbezirk + Tarifbindung + Tiefbau + Umlaufbahn + Wasserstoffbombe + Wiederaufbau + abrufbar + angreifbar + aufbahren + aufbauen + aufbefördern + aufbegehren + aufbereiten + aufbessern + aufbewahren + aufbieten + aufblasen + aufblicken + aufblitzen + aufblähen + aufblühen + aufbrauchen + aufbrausen + aufbrechen + aufbringen + aufbäumen + aufbürden + greifbar + griffbereit + kampfbetont + schiffbar + steifbeinig + strafbar + tiefbelustigt + tiefblau + tiefblaue + tiefblauer + unangreifbar + überprüfbar + ]], + }, + { + patterns = { + fh = "f|h", + ffh = "ff|h", + }, + words = [[ + Strafhaft + krampfhaft + krampfhaf|te + Chefhändler + Dorfhaus + Eislaufhalle + Hofherr + Impfstoffhersteller + Kampfhandlung + Kampfhubschrauber + Kampfhunde + Kampfhähne + Kaufhalle + Kaufhaus + Kaufherr + Kaufhold + Kopfhaar + Kopfhaltung + Kopfhaube + Kopfhaut + Kopfhörer + Luftschiffhafen + Pfaffhausen + Riffhai + Schaffhausen + Schafhaltung + Schafherde + Schafhirte + Schilfhütte + Schlaffheit + Steifheit + Stoffhändler + Strumpfhose + Stumpfheit + Topfhaarschnitt + Wahlkampfhelfer + Werkstoffhof + aufhaben + aufhacken + aufhalsen + aufhalten + aufhatte + aufheben + aufheitern + aufheizen + aufhelfen + aufhellen + aufhetzen + aufheulen + aufholen + aufhorchen + aufhängen + aufhören + aufhübschen + daraufhin + draufhat + draufhauen + fünfhundert + unaufhaltsam + unaufhörlich + ]], + }, + { + patterns = { + fj = "f|j", + ffj = "ff|j", + }, + words = [[ + Chefjurist + Chefjuristin + Dorfjubiläum + Dorfjugend + Dorfjunge + Dorfjustiz + Dorfjäger + Fünfjahresfeier + Fünfjahresplan + Golfjahr + Golfjunge + Golfjungen + Golfjunioren + Golfjuniorinnen + Hofjäger + Kampfjagd + Kampfjet + Kampfjodeln + Knefjahr + Kopfjagd + Kopfjucken + Kopfjäger + Laufjacke + Laufjahr + Laufjunge + Laufjungen + Stoffjacke + Strafjahr + Strafjurist + Strafjuristin + Strafjustiz + Tarifjahr + Wahlkampfjahr + Wahlkampfjahre + Wettkampfjahr + Wettkampfjahre + aufjagen + aufjauchzen + aufjaulen + aufjohlt + elfjährig + fünfjährig + zwölfjährig + -- Sognefjord Dovrefjell Prokofjew + ]], + }, + { + patterns = { + fk = "f|k", + ffk = "ff|k", + }, + words = [[ + Auspuffklang + Briefkasten + Briefkästen + Kaufkraft + Kehlkopfknoten + Kliffkante + Kliffkanten + Kopfkissen + Napfkuchen + Pfeifkonzert + Pfeifkonzerte + Stoffkatzen + Stoffkatze + Stoffkissen + Stopfkugel + Tarifkommissionen + Tarifkonflikte + Trumpfkarten + Tarifkommission + Tarifkonflikt + Treibstoffkosten + Trumpfkarte + aufkam + aufkaufen + aufkehren + aufkeimen + aufklaffen + aufklappen + aufklatschen + aufklauben + aufkleben + aufklingen + aufklopfen + aufkläffen + aufklären + aufknacken + aufknöpfen + aufknüpfen + aufkochen + aufkommen + aufkreischen + aufkrempeln + aufkreuzen + aufkriegen + aufkurbeln + aufkündigen + ]], + } + } +} diff --git a/tex/context/patterns/mkxl/lang-en.llg b/tex/context/patterns/mkxl/lang-en.llg new file mode 100644 index 000000000..5378e0aa9 --- /dev/null +++ b/tex/context/patterns/mkxl/lang-en.llg @@ -0,0 +1,453 @@ +-- The starting point of this list is a post at: +-- +-- https://english.stackexchange.com/a/50957/22099 +-- https://english.stackexchange.com/questions/50660/when-should-i-not-use-a-ligature-in-english-typesetting +-- mentioned on the ConTeXt mailing list after some discussion +-- about this mechanism. + +return { + name = "english", + version = "1.00", + comment = "English ligature suppression", + author = "Mico Loretan, Dave Jarvis, & Hans Hagen", + copyright = "Public domain", + options = { + { + patterns = { + fi = "f|i", + fl = "f|l", + }, + words = [[ + -- f|i + deafish + dwarfish + elfish + oafish + selfish + serfish + unselfish + wolfish + + -- f|l + beefless + briefless + hoofless + leafless + roofless + selfless + turfless + ]], + suffixes = [[ + ness + ly + ]], + }, + { + patterns = { + fi = "f|i", + }, + words = [[ + proofing + ]], + prefixes = [[ + air + child + fire + flame + moth + rust + sound + water + weather + ]], + }, + { + patterns = { + ff = "f|f", + fi = "f|i", + fl = "f|l", + ffi = "f|fi", + ffl = "f|fl", + }, + words = [[ + -- f|f + bookshelfful + mantelshelfful + shelfful + + -- f|i + elfin + + chafing + leafing + loafing + sheafing + strafing + vouchsafing + beefing + reefing + briefing + debriefing + coifing + fifing + jackknifing + knifing + midwifing + waifing + wifing + + goofing + hoofing + roofing + reroofing + spoofing + whoofing + woofing + + gulfing + begulfing + engulfing + ingulfing + golfing + gulfing + rolfing + selfing + wolfing + barfing + bedwarfing + dwarfing + enserfing + kerfing + scarfing + snarfing + surfing + windsurfing + turfing + wharfing + + beefier + comfier + goofier + gulfier + leafier + surfier + turfier + beefiest + comfiest + goofiest + gulfiest + leafiest + surfiest + turfiest + + beefily + goofily + goofiness + + -- f|l + aloofly + briefly + chiefly + deafly + liefly + + calflike + dwarflike + elflike + gulflike + hooflike + leaflike + rooflike + serflike + sheaflike + shelflike + surflike + turflike + waiflike + wolflike + + halflife + shelflife + halfline + roofline + + leaflet + leaflets + leafleted + leafleting + leafletting + leafletted + leafleteer + + pdflatex + + -- f|fi + chaffinch + wolffish + + -- f|fl + safflower + safflowers + ]], + }, + { + patterns = { + ffi = "ff|i", + }, + words = [[ + -- ff|i + cuffing + ]], + prefixes = [[ + hand + un + ]], + }, + { + patterns = { + ffi = "ff|i", + }, + words = [[ + -- ff|i + feoffing + ]], + prefixes = [[ + en + in + ]], + }, + { + patterns = { + ffi = "ff|i", + }, + words = [[ + -- ff|i + staffing + stuffing + ]], + prefixes = [[ + re + over + under + ]], + }, + { + patterns = { + ffi = "ff|i", + }, + words = [[ + -- ff|i + ruffing + ]], + prefixes = [[ + cross + over + under + ]], + }, + { + patterns = { + ffi = "ff|i", + ffl = "ff|l", + }, + words = [[ + -- ff|i + draffish + giraffish + gruffish + offish + raffish + sniffish + standoffish + stiffish + toffish + + -- ff|l + cuffless + stuffless + ]], + suffixes = [[ + ly + ]], + }, + { + patterns = { + ffl = "ff|l", + }, + words = [[ + -- ff|l + scofflaw + cufflink + offline + offload + ]], + suffixes = [[ + s + ed + ing + ]], + }, + { + patterns = { + ffi = "ff|i", + ffl = "ff|l", + }, + words = [[ + -- ff|i + baffing + biffing + boffing + bluffing + outbluffing + buffing + rebuffing + chaffing + cheffing + chuffing + coffing + coiffing + daffing + doffing + fluffing + gaffing + gruffing + huffing + luffing + miffing + muffing + offing + piaffing + puffing + quaffing + reffing + riffing + sclaffing + scoffing + scuffing + shroffing + sluffing + sniffing + snuffing + spiffing + stiffing + stuffing + tariffing + tiffing + waffing + whiffing + yaffing + + buffier + chaffier + chuffier + cliffier + daffier + fluffier + gruffier + huffier + iffier + miffier + puffier + scruffier + sniffier + snuffier + spiffier + stuffier + buffiest + chaffiest + chuffiest + cliffiest + daffiest + fluffiest + gruffiest + huffiest + iffiest + miffiest + puffiest + scruffiest + sniffiest + snuffiest + spiffiest + stuffiest + + daffily + fluffily + gruffily + huffily + puffily + scruffily + sniffily + snuffily + spiffily + stuffily + + fluffiness + huffiness + iffiness + puffiness + scruffiness + sniffiness + spiffiness + stuffiness + + baffies + biffies + jiffies + taffies + toffies + + waffie + + Pfaffian + Wolffian + Wulffian + + -- ff|l + bluffly + gruffly + ruffly + snuffly + stiffly + + rufflike + clifflike + ]], + }, + { + patterns = { + ft = "f|t", + fft = "ff|t", + }, + words = [[ + -- f|t + chieftain + chieftains + chieftaincy + chieftainship + + fifteen + fifteens + fifteenth + fifteenths + fifth + fifthly + fifths + fifties + fiftieth + fiftieths + fifty + fiftyish + + halftime + halftone + + rooftop + rooftops + rooftree + + -- ff|t + offtrack + ]] + } + } +} diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index a28630bfe..96393e4c2 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 2021-06-04 17:20 +-- merge date : 2021-06-07 08:05 do -- begin closure to overcome local limits and interference -- cgit v1.2.3