From d3d93bc4f0d21a259fdafee5ba1a744999474c28 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 10 Aug 2021 13:15:31 +0200 Subject: 2021-08-10 12:39:00 --- .../lexers/data/scite-context-data-context.lua | 2 +- .../context/lexers/data/scite-context-data-tex.lua | 2 +- .../context/scite-context-data-context.properties | 182 +-- .../context/scite-context-data-tex.properties | 42 +- .../data/scite/context/scite-context.properties | 6 + .../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/workflows-mkiv.pdf | Bin 90319 -> 90351 bytes .../manuals/followingup/followingup-rejected.tex | 14 + .../manuals/luametatex/luametatex-callbacks.tex | 4 +- .../manuals/luametatex/luametatex-enhancements.tex | 227 +-- .../manuals/luametatex/luametatex-fonts.tex | 44 +- .../manuals/luametatex/luametatex-internals.tex | 2 +- .../manuals/luametatex/luametatex-introduction.tex | 15 +- .../manuals/luametatex/luametatex-languages.tex | 24 +- .../general/manuals/luametatex/luametatex-math.tex | 454 +++--- .../luametatex/luametatex-modifications.tex | 36 +- .../manuals/luametatex/luametatex-nodes.tex | 31 +- .../manuals/luametatex/luametatex-registers.tex | 7 +- .../manuals/luametatex/luametatex-style.tex | 104 +- .../general/manuals/luametatex/luametatex-tex.tex | 24 +- .../sources/general/manuals/readme/mreadme.tex | 34 +- .../general/manuals/workflows/workflows-hashed.tex | 14 +- scripts/context/lua/mtxrun.lua | 8 +- scripts/context/stubs/mswin/mtxrun.lua | 8 +- scripts/context/stubs/unix/mtxrun | 8 +- scripts/context/stubs/win64/mtxrun.lua | 8 +- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-fr.mkii | 24 + tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/core-con.lua | 2 + tex/context/base/mkiv/font-cff.lua | 4 +- tex/context/base/mkiv/font-lig.lua | 2 +- tex/context/base/mkiv/grph-fil.lua | 28 +- tex/context/base/mkiv/mult-low.lua | 2 + tex/context/base/mkiv/mult-prm.lua | 5 +- tex/context/base/mkiv/status-files.pdf | Bin 24899 -> 24938 bytes tex/context/base/mkiv/status-lua.pdf | Bin 250101 -> 250485 bytes tex/context/base/mkiv/util-str.lua | 26 +- tex/context/base/mkxl/back-exp.lmt | 26 +- tex/context/base/mkxl/catc-def.mkxl | 3 + tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 4 +- tex/context/base/mkxl/core-sys.mkxl | 15 +- tex/context/base/mkxl/grph-inc.lmt | 4 +- tex/context/base/mkxl/lpdf-emb.lmt | 4 +- tex/context/base/mkxl/lpdf-fld.lmt | 2 +- tex/context/base/mkxl/lpdf-ini.lmt | 5 +- tex/context/base/mkxl/lpdf-lmt.lmt | 27 +- tex/context/base/mkxl/lpdf-xmp.lmt | 9 +- tex/context/base/mkxl/mlib-pps.lmt | 9 +- tex/context/base/mkxl/mlib-svg.lmt | 158 +- tex/context/base/mkxl/node-fin.lmt | 2 +- tex/context/base/mkxl/node-syn.lmt | 14 +- tex/context/base/mkxl/pack-rul.mkxl | 12 +- tex/context/base/mkxl/spac-ver.lmt | 7 +- tex/context/base/mkxl/strc-ref.mklx | 4 + tex/context/base/mkxl/strc-reg.lmt | 1668 ++++++++++++++++++++ tex/context/base/mkxl/strc-reg.mkxl | 34 +- tex/context/base/mkxl/supp-box.mkxl | 7 +- tex/context/base/mkxl/syst-aux.mkxl | 16 +- tex/context/base/mkxl/toks-ini.lmt | 2 +- tex/context/base/mkxl/toks-scn.lmt | 54 +- tex/context/base/mkxl/util-deb.lmt | 22 +- tex/context/interface/mkii/keys-fr.xml | 24 + tex/generic/context/luatex/luatex-fonts-merged.lua | 7 +- 69 files changed, 2737 insertions(+), 813 deletions(-) create mode 100644 tex/context/base/mkxl/strc-reg.lmt 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 06b6548aa..8bda5b640 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", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "allfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "accentitalickernmathcontrolcode", "delimiteritalickernmathcontrolcode", "orditalickernmathcontrolcode", "charitalicwidthmathcontrolcode", "charitalicnoreboxmathcontrolcode", "boxednoitalickernmathcontrolcode", "nostaircasekernmathcontrolcode", "textitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationmcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" }, + ["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", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "allfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "accentitalickernmathcontrolcode", "delimiteritalickernmathcontrolcode", "orditalickernmathcontrolcode", "charitalicwidthmathcontrolcode", "charitalicnoreboxmathcontrolcode", "boxednoitalickernmathcontrolcode", "nostaircasekernmathcontrolcode", "textitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationmcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" }, ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "lessboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "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", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression" }, } \ No newline at end of file diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua index de63ff88b..4bf458da8 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", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "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", "Umathadapttoleft", "Umathadapttoright", "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", "Umathextrasubpreshift", "Umathextrasubshift", "Umathextrasuppreshift", "Umathextrasupshift", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "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", "Umathvextensiblevariant", "Umathvoid", "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", "autoparagraphmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontmathcontrol", "fontspecifiedsize", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "ifexpression", "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", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "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", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parattribute", "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", "tracingexpressions", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "untraced", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" }, + ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "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", "Umathextrasubpreshift", "Umathextrasubshift", "Umathextrasuppreshift", "Umathextrasupshift", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "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", "Umathvextensiblevariant", "Umathvoid", "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", "autoparagraphmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontmathcontrol", "fontspecifiedsize", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "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", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parametermark", "parattribute", "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", "tracingexpressions", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "untraced", "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", "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 3ae560357..123025178 100644 --- a/context/data/scite/context/scite-context-data-context.properties +++ b/context/data/scite/context/scite-context-data-context.properties @@ -9,97 +9,97 @@ 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 hsizefrozenparcode \ -skipfrozenparcode hangfrozenparcode indentfrozenparcode parfillfrozenparcode adjustfrozenparcode \ -protrudefrozenparcode tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode lastlinefrozenparcode \ -linepenaltyfrozenparcode clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode brokenpenaltyfrozenparcode \ -demeritsfrozenparcode shapefrozenparcode linefrozenparcode hyphenationfrozenparcode allfrozenparcode \ -activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken batchmodecode \ -nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode simplegroupcode \ -hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode aligngroupcode \ -noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode insertgroupcode \ -vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode alsosimplegroupcode \ -semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode splitoffgroupcode \ -splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode discretionarygroupcode \ -charnodecode hlistnodecode vlistnodecode rulenodecode insertnodecode \ -marknodecode adjustnodecode ligaturenodecode discretionarynodecode whatsitnodecode \ -mathnodecode gluenodecode kernnodecode penaltynodecode unsetnodecode \ -mathsnodecode charifcode catifcode numifcode dimifcode \ -oddifcode vmodeifcode hmodeifcode mmodeifcode innerifcode \ -voidifcode hboxifcode vboxifcode xifcode eofifcode \ -trueifcode falseifcode caseifcode definedifcode csnameifcode \ -fontcharifcode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode fractionrulemathcontrolcode \ -accentskewhalfmathcontrolcode accentskewapplymathcontrolcode accentitalickernmathcontrolcode delimiteritalickernmathcontrolcode orditalickernmathcontrolcode \ -charitalicwidthmathcontrolcode charitalicnoreboxmathcontrolcode boxednoitalickernmathcontrolcode nostaircasekernmathcontrolcode textitalickernmathcontrolcode \ -noligaturingglyphoptioncode nokerningglyphoptioncode noexpansionglyphoptioncode noprotrusionglyphoptioncode noleftkerningglyphoptioncode \ -noleftligaturingglyphoptioncode norightkerningglyphoptioncode norightligaturingglyphoptioncode noitaliccorrectionglyphoptioncode normalparcontextcode \ -vmodeparcontextcode vboxparcontextcode vtopparcontextcode vcenterparcontextcode vadjustparcontextcode \ -insertparcontextcode outputparcontextcode alignparcontextcode noalignparcontextcode spanparcontextcode \ -resetparcontextcode fontslantperpoint fontinterwordspace fontinterwordstretch fontinterwordshrink \ -fontexheight fontemwidth fontextraspace slantperpoint mathexheight \ -mathemwidth interwordspace interwordstretch interwordshrink exheight \ -emwidth extraspace mathaxisheight muquad startmode \ -stopmode startnotmode stopnotmode startmodeset stopmodeset \ -doifmode doifelsemode doifmodeelse doifnotmode startmodeset \ -stopmodeset startallmodes stopallmodes startnotallmodes stopnotallmodes \ -doifallmodes doifelseallmodes doifallmodeselse doifnotallmodes startenvironment \ -stopenvironment environment startcomponent stopcomponent component \ -startproduct stopproduct product startproject stopproject \ -project starttext stoptext startnotext stopnotext \ -startdocument stopdocument documentvariable unexpandeddocumentvariable setupdocument \ -presetdocument doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable \ -startmodule stopmodule usemodule usetexmodule useluamodule \ -setupmodule currentmoduleparameter moduleparameter everystarttext everystoptext \ -startTEXpage stopTEXpage enablemode disablemode preventmode \ -definemode globalenablemode globaldisablemode globalpreventmode pushmode \ -popmode typescriptone typescripttwo typescriptthree mathsizesuffix \ -mathordcode mathopcode mathbincode mathrelcode mathopencode \ -mathclosecode mathpunctcode mathalphacode mathinnercode mathnothingcode \ -mathlimopcode mathnolopcode mathboxcode mathchoicecode mathaccentcode \ -mathradicalcode constantnumber constantnumberargument constantdimen constantdimenargument \ -constantemptyargument continueifinputfile luastringsep !!bs !!es \ -lefttorightmark righttoleftmark lrm rlm bidilre \ -bidirle bidipop bidilro bidirlo breakablethinspace \ -nobreakspace nonbreakablespace narrownobreakspace zerowidthnobreakspace ideographicspace \ -ideographichalffillspace twoperemspace threeperemspace fourperemspace fiveperemspace \ -sixperemspace figurespace punctuationspace hairspace enquad \ -emquad zerowidthspace zerowidthnonjoiner zerowidthjoiner zwnj \ -zwj optionalspace asciispacechar softhyphen Ux \ -eUx Umathaccents parfillleftskip parfillrightskip startlmtxmode \ -stoplmtxmode startmkivmode stopmkivmode wildcardsymbol normalhyphenationcode \ -automatichyphenationcode explicithyphenationcode syllablehyphenationcode uppercasehyphenationcode collapsehyphenationmcode \ -compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode \ -permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode forcecheckhyphenationcode lazyligatureshyphenationcode \ -forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode partialhyphenationcode completehyphenationcode \ -normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode swapparsshapenormalizecode breakafterdirnormalizecode \ -removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode noligaturingglyphoptioncode nokerningglyphoptioncode \ -noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode norightkernglyphoptioncode noexpansionglyphoptioncode \ -noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode noligaturingcode frozenflagcode \ -tolerantflagcode protectedflagcode primitiveflagcode permanentflagcode noalignedflagcode \ -immutableflagcode mutableflagcode globalflagcode overloadedflagcode immediateflagcode \ -conditionalflagcode valueflagcode instanceflagcode ordmathflattencode binmathflattencode \ -relmathflattencode punctmathflattencode innermathflattencode normalworddiscoptioncode preworddiscoptioncode \ -postworddiscoptioncode continuewhenlmtxmode +emptytoks empty undefined prerollrun voidbox \ +emptybox emptyvbox emptyhbox bigskipamount medskipamount \ +smallskipamount fmtname fmtversion texengine texenginename \ +texengineversion texenginefunctionality luatexengine pdftexengine xetexengine \ +unknownengine contextformat contextversion contextlmtxmode contextmark \ +mksuffix activecatcode bgroup egroup endline \ +conditionaltrue conditionalfalse attributeunsetvalue statuswrite uprotationangle \ +rightrotationangle downrotationangle leftrotationangle inicatcodes ctxcatcodes \ +texcatcodes notcatcodes txtcatcodes vrbcatcodes prtcatcodes \ +nilcatcodes luacatcodes tpacatcodes tpbcatcodes xmlcatcodes \ +ctdcatcodes rlncatcodes escapecatcode begingroupcatcode endgroupcatcode \ +mathshiftcatcode alignmentcatcode endoflinecatcode parametercatcode superscriptcatcode \ +subscriptcatcode ignorecatcode spacecatcode lettercatcode othercatcode \ +activecatcode commentcatcode invalidcatcode tabasciicode newlineasciicode \ +formfeedasciicode endoflineasciicode endoffileasciicode commaasciicode spaceasciicode \ +periodasciicode hashasciicode dollarasciicode commentasciicode ampersandasciicode \ +colonasciicode backslashasciicode circumflexasciicode underscoreasciicode leftbraceasciicode \ +barasciicode rightbraceasciicode tildeasciicode delasciicode leftparentasciicode \ +rightparentasciicode lessthanasciicode morethanasciicode doublecommentsignal atsignasciicode \ +exclamationmarkasciicode questionmarkasciicode doublequoteasciicode singlequoteasciicode forwardslashasciicode \ +primeasciicode hyphenasciicode percentasciicode leftbracketasciicode rightbracketasciicode \ +hsizefrozenparcode skipfrozenparcode hangfrozenparcode indentfrozenparcode parfillfrozenparcode \ +adjustfrozenparcode protrudefrozenparcode tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode \ +lastlinefrozenparcode linepenaltyfrozenparcode clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode \ +brokenpenaltyfrozenparcode demeritsfrozenparcode shapefrozenparcode linefrozenparcode hyphenationfrozenparcode \ +allfrozenparcode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken \ +batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode \ +simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode \ +aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode \ +insertgroupcode vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode \ +alsosimplegroupcode semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode \ +splitoffgroupcode splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode \ +discretionarygroupcode charnodecode hlistnodecode vlistnodecode rulenodecode \ +insertnodecode marknodecode adjustnodecode ligaturenodecode discretionarynodecode \ +whatsitnodecode mathnodecode gluenodecode kernnodecode penaltynodecode \ +unsetnodecode mathsnodecode charifcode catifcode numifcode \ +dimifcode oddifcode vmodeifcode hmodeifcode mmodeifcode \ +innerifcode voidifcode hboxifcode vboxifcode xifcode \ +eofifcode trueifcode falseifcode caseifcode definedifcode \ +csnameifcode fontcharifcode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode \ +fractionrulemathcontrolcode accentskewhalfmathcontrolcode accentskewapplymathcontrolcode accentitalickernmathcontrolcode delimiteritalickernmathcontrolcode \ +orditalickernmathcontrolcode charitalicwidthmathcontrolcode charitalicnoreboxmathcontrolcode boxednoitalickernmathcontrolcode nostaircasekernmathcontrolcode \ +textitalickernmathcontrolcode noligaturingglyphoptioncode nokerningglyphoptioncode noexpansionglyphoptioncode noprotrusionglyphoptioncode \ +noleftkerningglyphoptioncode noleftligaturingglyphoptioncode norightkerningglyphoptioncode norightligaturingglyphoptioncode noitaliccorrectionglyphoptioncode \ +normalparcontextcode vmodeparcontextcode vboxparcontextcode vtopparcontextcode vcenterparcontextcode \ +vadjustparcontextcode insertparcontextcode outputparcontextcode alignparcontextcode noalignparcontextcode \ +spanparcontextcode resetparcontextcode fontslantperpoint fontinterwordspace fontinterwordstretch \ +fontinterwordshrink fontexheight fontemwidth fontextraspace slantperpoint \ +mathexheight mathemwidth interwordspace interwordstretch interwordshrink \ +exheight emwidth extraspace mathaxisheight muquad \ +startmode stopmode startnotmode stopnotmode startmodeset \ +stopmodeset doifmode doifelsemode doifmodeelse doifnotmode \ +startmodeset stopmodeset startallmodes stopallmodes startnotallmodes \ +stopnotallmodes doifallmodes doifelseallmodes doifallmodeselse doifnotallmodes \ +startenvironment stopenvironment environment startcomponent stopcomponent \ +component startproduct stopproduct product startproject \ +stopproject project starttext stoptext startnotext \ +stopnotext startdocument stopdocument documentvariable unexpandeddocumentvariable \ +setupdocument presetdocument doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable \ +doifnotdocumentvariable startmodule stopmodule usemodule usetexmodule \ +useluamodule setupmodule currentmoduleparameter moduleparameter everystarttext \ +everystoptext startTEXpage stopTEXpage enablemode disablemode \ +preventmode definemode globalenablemode globaldisablemode globalpreventmode \ +pushmode popmode typescriptone typescripttwo typescriptthree \ +mathsizesuffix mathordcode mathopcode mathbincode mathrelcode \ +mathopencode mathclosecode mathpunctcode mathalphacode mathinnercode \ +mathnothingcode mathlimopcode mathnolopcode mathboxcode mathchoicecode \ +mathaccentcode mathradicalcode constantnumber constantnumberargument constantdimen \ +constantdimenargument constantemptyargument continueifinputfile luastringsep !!bs \ +!!es lefttorightmark righttoleftmark lrm rlm \ +bidilre bidirle bidipop bidilro bidirlo \ +breakablethinspace nobreakspace nonbreakablespace narrownobreakspace zerowidthnobreakspace \ +ideographicspace ideographichalffillspace twoperemspace threeperemspace fourperemspace \ +fiveperemspace sixperemspace figurespace punctuationspace hairspace \ +enquad emquad zerowidthspace zerowidthnonjoiner zerowidthjoiner \ +zwnj zwj optionalspace asciispacechar softhyphen \ +Ux eUx Umathaccents parfillleftskip parfillrightskip \ +startlmtxmode stoplmtxmode startmkivmode stopmkivmode wildcardsymbol \ +normalhyphenationcode automatichyphenationcode explicithyphenationcode syllablehyphenationcode uppercasehyphenationcode \ +collapsehyphenationmcode compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode automaticpenaltyhyphenationcode \ +explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode forcecheckhyphenationcode \ +lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode partialhyphenationcode \ +completehyphenationcode normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode swapparsshapenormalizecode \ +breakafterdirnormalizecode removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode noligaturingglyphoptioncode \ +nokerningglyphoptioncode noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode norightkernglyphoptioncode \ +noexpansionglyphoptioncode noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode noligaturingcode \ +frozenflagcode tolerantflagcode protectedflagcode primitiveflagcode permanentflagcode \ +noalignedflagcode immutableflagcode mutableflagcode globalflagcode overloadedflagcode \ +immediateflagcode conditionalflagcode valueflagcode instanceflagcode ordmathflattencode \ +binmathflattencode relmathflattencode punctmathflattencode innermathflattencode normalworddiscoptioncode \ +preworddiscoptioncode postworddiscoptioncode continuewhenlmtxmode keywordclass.context.helpers=\ startsetups stopsetups startxmlsetups stopxmlsetups \ diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties index 1bda14932..aa4bd61bb 100644 --- a/context/data/scite/context/scite-context-data-tex.properties +++ b/context/data/scite/context/scite-context-data-tex.properties @@ -76,17 +76,17 @@ 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 \ -ifexpression 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 \ -lastchkdim lastchknum lastnamedcs lastnodesubtype lastparcontext \ -leftmarginkern letcharcode letcsname letfrozen letprotected \ -lettonothing linedirection linepar localbrokenpenalty localcontrol \ +ifcmpnum ifcondition ifcstok ifdimexpression ifdimval \ +ifempty ifflags ifhastok ifhastoks ifhasxtoks \ +ifincsname ifinsert ifmathparameter ifmathstyle ifnumexpression \ +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 lastchkdim lastchknum lastnamedcs lastnodesubtype \ +lastparcontext leftmarginkern letcharcode letcsname letfrozen \ +letprotected lettonothing linedirection localbrokenpenalty localcontrol \ localcontrolled localinterlinepenalty localleftbox localrightbox lpcode \ luabytecode luabytecodecall luacopyinputnodes luadef luaescapestring \ luafunction luafunctioncall luatexbanner luatexrevision luatexversion \ @@ -97,16 +97,16 @@ mathscriptcharmode mathscriptsmode mathstyle mathsurroundmode mathsurroundskip \ mugluespecdef mutable noaligned noboundary nohrule \ norelax normalizelinemode nospaces novrule numericscale \ numexpression orelse orunless outputbox overloaded \ -overloadmode parametercount parattribute 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 tracingexpressions tracingfonts tracinghyphenation \ -tracingmath undent unletfrozen unletprotected untraced \ -vpack wordboundary wrapuppar xdefcsname xtoksapp \ -xtokspre +overloadmode parametercount parametermark parattribute 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 tracingexpressions tracingfonts \ +tracinghyphenation tracingmath undent unletfrozen unletprotected \ +untraced vpack wordboundary wrapuppar xdefcsname \ +xtoksapp xtokspre keywordclass.tex.omega=\ Omegaminorversion Omegarevision Omegaversion diff --git a/context/data/scite/context/scite-context.properties b/context/data/scite/context/scite-context.properties index 4e8f69334..3a08c1b89 100644 --- a/context/data/scite/context/scite-context.properties +++ b/context/data/scite/context/scite-context.properties @@ -477,6 +477,12 @@ style.*.33=$(font.base),back:$(colors.linepanel) style.errorlist.32=$(font.errorfont),back:$(colors.logpanel) selection.back=#9F9F9F +#~ selection.secondary.back=#9F9F9F +#~ selection.additional.back=#9F9F9F +#~ selection.inactive.back=#9F9F9F +#~ selection.additional.fore=#FFFFFF +#~ selection.additional.back=#FFFFFF +#~ selection.additional.alpha=20 # Editor: fast switching between files 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 06b6548aa..8bda5b640 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", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "allfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "accentitalickernmathcontrolcode", "delimiteritalickernmathcontrolcode", "orditalickernmathcontrolcode", "charitalicwidthmathcontrolcode", "charitalicnoreboxmathcontrolcode", "boxednoitalickernmathcontrolcode", "nostaircasekernmathcontrolcode", "textitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationmcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" }, + ["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", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "allfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "accentitalickernmathcontrolcode", "delimiteritalickernmathcontrolcode", "orditalickernmathcontrolcode", "charitalicwidthmathcontrolcode", "charitalicnoreboxmathcontrolcode", "boxednoitalickernmathcontrolcode", "nostaircasekernmathcontrolcode", "textitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationmcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" }, ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "lessboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "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", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression" }, } \ No newline at end of file diff --git a/context/data/textadept/context/data/scite-context-data-tex.lua b/context/data/textadept/context/data/scite-context-data-tex.lua index de63ff88b..4bf458da8 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", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "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", "Umathadapttoleft", "Umathadapttoright", "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", "Umathextrasubpreshift", "Umathextrasubshift", "Umathextrasuppreshift", "Umathextrasupshift", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "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", "Umathvextensiblevariant", "Umathvoid", "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", "autoparagraphmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontmathcontrol", "fontspecifiedsize", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "ifexpression", "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", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "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", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parattribute", "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", "tracingexpressions", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "untraced", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" }, + ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "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", "Umathextrasubpreshift", "Umathextrasubshift", "Umathextrasuppreshift", "Umathextrasupshift", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "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", "Umathvextensiblevariant", "Umathvoid", "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", "autoparagraphmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fontid", "fontmathcontrol", "fontspecifiedsize", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "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", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathitalicsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orunless", "outputbox", "overloaded", "overloadmode", "parametercount", "parametermark", "parattribute", "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", "tracingexpressions", "tracingfonts", "tracinghyphenation", "tracingmath", "undent", "unletfrozen", "unletprotected", "untraced", "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", "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 20b75c0b1..a10c80d72 100644 --- a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json @@ -69,7 +69,7 @@ "name" : "context.comment.comment.tex" }, "constant" : { - "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|widowpenaltyfrozenparcode|whatsitnodecode|vtopparcontextcode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeparcontextcode|vmodeifcode|vlistnodecode|vcenterparcontextcode|vcentergroupcode|vboxparcontextcode|vboxifcode|vboxgroupcode|valueflagcode|vadjustparcontextcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|uppercasehyphenationcode|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|underrulemathcontrolcode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tolerantflagcode|tolerancefrozenparcode|tildeasciicode|threeperemspace|thousandpoint|textitalickernmathcontrolcode|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|syllablehyphenationcode|swapparsshapenormalizecode|swaphangindentnormalizecode|superscriptcatcode|subscriptcatcode|strictstarthyphenationcode|strictendhyphenationcode|stretchfrozenparcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|statuswrite|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|splitoffgroupcode|splitkeepgroupcode|spanparcontextcode|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|skipfrozenparcode|sixperemspace|singlequoteasciicode|simplegroupcode|shapefrozenparcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlncatcodes|rlm|righttoleftmark|rightrotationangle|rightparentasciicode|rightbracketasciicode|rightbraceasciicode|resetparcontextcode|removemarginkernsnormalizecode|relmathflattencode|radicalrulemathcontrolcode|questionmarkasciicode|pushmode|punctuationspace|punctmathflattencode|prtcatcodes|protrudefrozenparcode|protectedflagcode|project|product|primitiveflagcode|primeasciicode|preworddiscoptioncode|preventmode|presetdocument|preamblegroupcode|postworddiscoptioncode|popmode|points|plustwohundred|plustwo|plustwentythousand|plustwelve|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseleven|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|permitmathreplacehyphenationcode|permitgluehyphenationcode|permitallhyphenationcode|permanentflagcode|periodasciicode|percentasciicode|penaltynodecode|pdftexengine|partialhyphenationcode|parindentskipnormalizecode|parfillrightskip|parfillleftskip|parfillfrozenparcode|parametercatcode|overrulemathcontrolcode|overloadedflagcode|outputparcontextcode|outputnewlinechar|outputgroupcode|othercatcode|ordmathflattencode|orditalickernmathcontrolcode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|nostaircasekernmathcontrolcode|normalworddiscoptioncode|normalparcontextcode|normalpagebox|normalizelinenormalizecode|normalhyphenationcode|norightligaturingglyphoptioncode|norightligatureglyphoptioncode|norightkerningglyphoptioncode|norightkernglyphoptioncode|noprotrusionglyphoptioncode|noprotrusionglyphoptioncode|nonstopmodecode|nonbreakablespace|noligaturingglyphoptioncode|noligaturingglyphoptioncode|noligaturingcode|noleftligaturingglyphoptioncode|noleftligatureglyphoptioncode|noleftkerningglyphoptioncode|noleftkernglyphoptioncode|nokerningglyphoptioncode|nokerningglyphoptioncode|nokerningcode|noitaliccorrectionglyphoptioncode|noitaliccorrectionglyphoptioncode|noexpansionglyphoptioncode|noexpansionglyphoptioncode|nobreakspace|noalignparcontextcode|noaligngroupcode|noalignedflagcode|nilcatcodes|newlineasciicode|narrownobreakspace|mutableflagcode|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathradicalcode|mathpunctcode|mathordcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathgroupcode|mathexheight|mathemwidth|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathaxisheight|mathalphacode|mathaccentcode|mathabovegroupcode|marknodecode|luatexengine|luastringsep|luacatcodes|lrm|loosenessfrozenparcode|localboxgroupcode|linepenaltyfrozenparcode|linefrozenparcode|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|leftrotationangle|leftparentasciicode|leftbracketasciicode|leftbraceasciicode|lazyligatureshyphenationcode|lastlinefrozenparcode|kernnodecode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|instanceflagcode|insertparcontextcode|insertnodecode|insertgroupcode|innermathflattencode|innerifcode|inicatcodes|indentfrozenparcode|immutableflagcode|immediateflagcode|ignorecatcode|ignoreboundshyphenationcode|ideographicspace|ideographichalffillspace|hyphenationfrozenparcode|hyphenasciicode|hsizefrozenparcode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|hangfrozenparcode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalflagcode|globalenablemode|globaldisablemode|frozenflagcode|fractionrulemathcontrolcode|fourperemspace|forwardslashasciicode|formfeedasciicode|forcehandlerhyphenationcode|forcecheckhyphenationcode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|flattendiscretionariesnormalizecode|fiveperemspace|finrowgroupcode|figurespace|feedbackcompoundhyphenationcode|falseifcode|extraspace|explicitpenaltyhyphenationcode|explicithyphenationcode|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|displaypenaltyfrozenparcode|discretionarynodecode|discretionarygroupcode|discretionarygroupcode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|demeritsfrozenparcode|delimiteritalickernmathcontrolcode|delasciicode|definemode|definedifcode|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continuewhenlmtxmode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalflagcode|conditionalfalse|compoundhyphenationcode|component|completehyphenationcode|commentcatcode|commentasciicode|commaasciicode|colonasciicode|collapsehyphenationmcode|clubpenaltyfrozenparcode|clipwidthnormalizecode|circumflexasciicode|charnodecode|charitalicwidthmathcontrolcode|charitalicnoreboxmathcontrolcode|charifcode|catifcode|caseifcode|brokenpenaltyfrozenparcode|breakafterdirnormalizecode|breakablethinspace|boxednoitalickernmathcontrolcode|bottomlevelgroupcode|binmathflattencode|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|automaticpenaltyhyphenationcode|automatichyphenationcode|attributeunsetvalue|atsignasciicode|asciispacechar|ampersandasciicode|alsosimplegroupcode|allfrozenparcode|alignsetgroupcode|alignparcontextcode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustfrozenparcode|adjustedhboxgroupcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|accentskewhalfmathcontrolcode|accentskewapplymathcontrolcode|accentitalickernmathcontrolcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])", + "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|widowpenaltyfrozenparcode|whatsitnodecode|vtopparcontextcode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeparcontextcode|vmodeifcode|vlistnodecode|vcenterparcontextcode|vcentergroupcode|vboxparcontextcode|vboxifcode|vboxgroupcode|valueflagcode|vadjustparcontextcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|uppercasehyphenationcode|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|underrulemathcontrolcode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tolerantflagcode|tolerancefrozenparcode|tildeasciicode|threeperemspace|thousandpoint|textitalickernmathcontrolcode|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|syllablehyphenationcode|swapparsshapenormalizecode|swaphangindentnormalizecode|superscriptcatcode|subscriptcatcode|strictstarthyphenationcode|strictendhyphenationcode|stretchfrozenparcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|statuswrite|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|splitoffgroupcode|splitkeepgroupcode|spanparcontextcode|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|skipfrozenparcode|sixperemspace|singlequoteasciicode|simplegroupcode|shapefrozenparcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlncatcodes|rlm|righttoleftmark|rightrotationangle|rightparentasciicode|rightbracketasciicode|rightbraceasciicode|resetparcontextcode|removemarginkernsnormalizecode|relmathflattencode|radicalrulemathcontrolcode|questionmarkasciicode|pushmode|punctuationspace|punctmathflattencode|prtcatcodes|protrudefrozenparcode|protectedflagcode|project|product|primitiveflagcode|primeasciicode|preworddiscoptioncode|preventmode|presetdocument|prerollrun|preamblegroupcode|postworddiscoptioncode|popmode|points|plustwohundred|plustwo|plustwentythousand|plustwelve|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseleven|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|permitmathreplacehyphenationcode|permitgluehyphenationcode|permitallhyphenationcode|permanentflagcode|periodasciicode|percentasciicode|penaltynodecode|pdftexengine|partialhyphenationcode|parindentskipnormalizecode|parfillrightskip|parfillleftskip|parfillfrozenparcode|parametercatcode|overrulemathcontrolcode|overloadedflagcode|outputparcontextcode|outputnewlinechar|outputgroupcode|othercatcode|ordmathflattencode|orditalickernmathcontrolcode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|nostaircasekernmathcontrolcode|normalworddiscoptioncode|normalparcontextcode|normalpagebox|normalizelinenormalizecode|normalhyphenationcode|norightligaturingglyphoptioncode|norightligatureglyphoptioncode|norightkerningglyphoptioncode|norightkernglyphoptioncode|noprotrusionglyphoptioncode|noprotrusionglyphoptioncode|nonstopmodecode|nonbreakablespace|noligaturingglyphoptioncode|noligaturingglyphoptioncode|noligaturingcode|noleftligaturingglyphoptioncode|noleftligatureglyphoptioncode|noleftkerningglyphoptioncode|noleftkernglyphoptioncode|nokerningglyphoptioncode|nokerningglyphoptioncode|nokerningcode|noitaliccorrectionglyphoptioncode|noitaliccorrectionglyphoptioncode|noexpansionglyphoptioncode|noexpansionglyphoptioncode|nobreakspace|noalignparcontextcode|noaligngroupcode|noalignedflagcode|nilcatcodes|newlineasciicode|narrownobreakspace|mutableflagcode|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathradicalcode|mathpunctcode|mathordcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathgroupcode|mathexheight|mathemwidth|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathaxisheight|mathalphacode|mathaccentcode|mathabovegroupcode|marknodecode|luatexengine|luastringsep|luacatcodes|lrm|loosenessfrozenparcode|localboxgroupcode|linepenaltyfrozenparcode|linefrozenparcode|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|leftrotationangle|leftparentasciicode|leftbracketasciicode|leftbraceasciicode|lazyligatureshyphenationcode|lastlinefrozenparcode|kernnodecode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|instanceflagcode|insertparcontextcode|insertnodecode|insertgroupcode|innermathflattencode|innerifcode|inicatcodes|indentfrozenparcode|immutableflagcode|immediateflagcode|ignorecatcode|ignoreboundshyphenationcode|ideographicspace|ideographichalffillspace|hyphenationfrozenparcode|hyphenasciicode|hsizefrozenparcode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|hangfrozenparcode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalflagcode|globalenablemode|globaldisablemode|frozenflagcode|fractionrulemathcontrolcode|fourperemspace|forwardslashasciicode|formfeedasciicode|forcehandlerhyphenationcode|forcecheckhyphenationcode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|flattendiscretionariesnormalizecode|fiveperemspace|finrowgroupcode|figurespace|feedbackcompoundhyphenationcode|falseifcode|extraspace|explicitpenaltyhyphenationcode|explicithyphenationcode|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|displaypenaltyfrozenparcode|discretionarynodecode|discretionarygroupcode|discretionarygroupcode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|demeritsfrozenparcode|delimiteritalickernmathcontrolcode|delasciicode|definemode|definedifcode|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continuewhenlmtxmode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalflagcode|conditionalfalse|compoundhyphenationcode|component|completehyphenationcode|commentcatcode|commentasciicode|commaasciicode|colonasciicode|collapsehyphenationmcode|clubpenaltyfrozenparcode|clipwidthnormalizecode|circumflexasciicode|charnodecode|charitalicwidthmathcontrolcode|charitalicnoreboxmathcontrolcode|charifcode|catifcode|caseifcode|brokenpenaltyfrozenparcode|breakafterdirnormalizecode|breakablethinspace|boxednoitalickernmathcontrolcode|bottomlevelgroupcode|binmathflattencode|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|automaticpenaltyhyphenationcode|automatichyphenationcode|attributeunsetvalue|atsignasciicode|asciispacechar|ampersandasciicode|alsosimplegroupcode|allfrozenparcode|alignsetgroupcode|alignparcontextcode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustfrozenparcode|adjustedhboxgroupcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|accentskewhalfmathcontrolcode|accentskewapplymathcontrolcode|accentitalickernmathcontrolcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])", "name" : "context.constant.commands.constant.tex" }, "csname" : { @@ -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|untraced|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|tracingexpressions|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|parattribute|parametercount|par|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orelse|or|omit|numexpression|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|normaluntraced|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|normaltracingexpressions|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|normalparattribute|normalparametercount|normalpar|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorelse|normalor|normalomit|normalnumexpression|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathfontcontrol|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcontrolmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|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|normallastparcontext|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|normalifexpression|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|normalfuturecsname|normalfrozen|normalformatname|normalfonttextcontrol|normalfontspecifiedsize|normalfontspecifiedname|normalfontname|normalfontmathcontrol|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|normaleverybeforepar|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|normaldimexpression|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|normalautoparagraphmode|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|normalUmathvoid|normalUmathvextensiblevariant|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathphantom|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenupheight|normalUmathopenupdepth|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathnolimits|normalUmathnoaxis|normalUmathlimits|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathextrasupshift|normalUmathextrasuppreshift|normalUmathextrasubshift|normalUmathextrasubpreshift|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|normalUmathadapttoright|normalUmathadapttoleft|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathitalicsmode|mathinner|mathfontcontrol|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcontrolmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|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|lastparcontext|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|futurecsname|frozen|formatname|fonttextcontrol|fontspecifiedsize|fontspecifiedname|fontname|fontmathcontrol|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|everybeforepar|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|dimexpression|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|autoparagraphmode|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|Umathvoid|Umathvextensiblevariant|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathphantom|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenupheight|Umathopenupdepth|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathnolimits|Umathnoaxis|Umathlimits|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathextrasupshift|Umathextrasuppreshift|Umathextrasubshift|Umathextrasubpreshift|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|Umathadapttoright|Umathadapttoleft|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])", + "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|untraced|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|underline|undent|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmath|tracingmacros|tracinglostchars|tracinglevels|tracingifs|tracinghyphenation|tracinggroups|tracingfonts|tracingexpressions|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|parattribute|parametermark|parametercount|par|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orelse|or|omit|numexpression|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|normaluntraced|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|normaltracingexpressions|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|normalparattribute|normalparametermark|normalparametercount|normalpar|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorelse|normalor|normalomit|normalnumexpression|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathfontcontrol|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcontrolmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinedirection|normallimits|normallettonothing|normalletprotected|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastparcontext|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|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|normalifnumexpression|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdimexpression|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglettonothing|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfuturecsname|normalfrozen|normalformatname|normalfonttextcontrol|normalfontspecifiedsize|normalfontspecifiedname|normalfontname|normalfontmathcontrol|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|normaleverybeforepar|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|normaldimexpression|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|normalautoparagraphmode|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|normalUmathvoid|normalUmathvextensiblevariant|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathphantom|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenupheight|normalUmathopenupdepth|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathnolimits|normalUmathnoaxis|normalUmathlimits|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathextrasupshift|normalUmathextrasuppreshift|normalUmathextrasubshift|normalUmathextrasubpreshift|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|normalUmathadapttoright|normalUmathadapttoleft|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathitalicsmode|mathinner|mathfontcontrol|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcontrolmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightbox|localleftbox|localinterlinepenalty|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|limits|lettonothing|letprotected|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastparcontext|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|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|ifnumexpression|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdimexpression|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|glettonothing|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|futurecsname|frozen|formatname|fonttextcontrol|fontspecifiedsize|fontspecifiedname|fontname|fontmathcontrol|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|everybeforepar|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|dimexpression|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|autoparagraphmode|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|Umathvoid|Umathvextensiblevariant|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathphantom|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenupheight|Umathopenupdepth|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathnolimits|Umathnoaxis|Umathlimits|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathextrasupshift|Umathextrasuppreshift|Umathextrasubshift|Umathextrasubpreshift|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|Umathadapttoright|Umathadapttoleft|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])", "name" : "context.primitive.commands.primitive.tex" }, "reserved" : { diff --git a/doc/context/documents/general/manuals/workflows-mkiv.pdf b/doc/context/documents/general/manuals/workflows-mkiv.pdf index 1e5f3f287..2c3f169ba 100644 Binary files a/doc/context/documents/general/manuals/workflows-mkiv.pdf and b/doc/context/documents/general/manuals/workflows-mkiv.pdf differ diff --git a/doc/context/sources/general/manuals/followingup/followingup-rejected.tex b/doc/context/sources/general/manuals/followingup/followingup-rejected.tex index 4cb1fc95c..56f7f621b 100644 --- a/doc/context/sources/general/manuals/followingup/followingup-rejected.tex +++ b/doc/context/sources/general/manuals/followingup/followingup-rejected.tex @@ -81,3 +81,17 @@ back.} \stopchapter \stopcomponent + +% very limited use case and not easy in nested definitions (which is where is +% would have been used +% +% } else if (cur_cmd == begin_local_cmd && cur_chr == local_control_now_code) { +% +%\def\foo#1#2% +% {test #1 +% test #2 +% test +% \localcontrolnow{\scratchcounter\catcode\hashasciicode \catcode\hashasciicode\othercatcode} +% # +% \localcontrolnow{\catcode\hashasciicode\scratchcounter} +% test} diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex b/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex index f24d2495a..d01e35b4a 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex @@ -273,7 +273,7 @@ explained in the next two paragraphs. \NC \type{disc} \NC discretionaries \NC \NR \NC \type{insert} \NC packaging an insert \NC \NR \NC \type{vcenter} \NC \prm {vcenter} \NC \NR -\NC \type{local_box} \NC \lpr {localleftbox} or \lpr {localrightbox} \NC \NR +\NC \type{local_box} \NC \prm {localleftbox} or \prm {localrightbox} \NC \NR \NC \type{split_off} \NC top of a \prm {vsplit} \NC \NR \NC \type{split_keep} \NC remainder of a \prm {vsplit} \NC \NR \NC \type{align_set} \NC alignment cell \NC \NR @@ -752,7 +752,7 @@ end The indentation tells how many periods are to be typeset if you want to be compatible with the rest of tracing. The tracinglevels indicates if the current -level and\|/or input level are shown cf. \lpr {tracinglevels}. Of course one +level and\|/or input level are shown cf. \prm {tracinglevels}. Of course one is free to show whatever in whatever way suits the whatsit best. \stopsection diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex index d5b491e81..8527b0e64 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex @@ -52,7 +52,7 @@ purpose apart from the fact that it reveals some history. \startsubsection[title={Version information}] -\startsubsubsection[title={\lpr {luatexbanner}, \lpr {luatexversion} and \lpr {luatexrevision}}] +\startsubsubsection[title={\prm {luatexbanner}, \prm {luatexversion} and \prm {luatexrevision}}] \topicindex{version} \topicindex{banner} @@ -70,11 +70,11 @@ There are three primitives to test the version of \LUATEX\ (and \LUAMETATEX): \DB primitive \BC value \BC explanation \NC \NR \TB -\NC \lpr {luatexbanner} \NC \VersionHack{\luatexbanner} +\NC \prm {luatexbanner} \NC \VersionHack{\luatexbanner} \NC the banner reported on the console \NC \NR -\NC \lpr {luatexversion} \NC \the\luatexversion +\NC \prm {luatexversion} \NC \the\luatexversion \NC major and minor number combined \NC \NR -\NC \lpr {luatexrevision} \NC \the\luatexrevision +\NC \prm {luatexrevision} \NC \the\luatexrevision \NC the revision number \NC \NR \LL \stoptabulate @@ -83,7 +83,7 @@ A version is defined as follows: \startitemize \startitem - The major version is the integer result of \lpr {luatexversion} divided by + The major version is the integer result of \prm {luatexversion} divided by 100. The primitive is an \quote {internal variable}, so you may need to prefix its use with \prm {the} or \prm {number} depending on the context. \stopitem @@ -91,7 +91,7 @@ A version is defined as follows: The minor version is a number running from 0 upto 99. \stopitem \startitem - The revision is reported by \lpr {luatexrevision}. Contrary to other engines + The revision is reported by \prm {luatexrevision}. Contrary to other engines in \LUAMETATEX\ is also a number so one needs to prefix it with \prm {the} or \prm {number}. \footnote {In the past it always was good to prefix the revision with \prm {number} anyway, just to play safe, although there have @@ -158,8 +158,8 @@ problem for well|-|behaved input files, but it could create incompatibilities fo input that would have generated an error when processed by older \TEX|-|based engines. The affected commands with an altered initial (left of the equal sign) or secondary (right of the equal sign) value are: \prm {char}, \prm {lccode}, -\prm {uccode}, \lpr {hjcode}, \prm {catcode}, \prm {sfcode}, \lpr {efcode}, \lpr -{lpcode}, \lpr {rpcode}, \prm {chardef}. +\prm {uccode}, \prm {hjcode}, \prm {catcode}, \prm {sfcode}, \prm {efcode}, \prm +{lpcode}, \prm {rpcode}, \prm {chardef}. As far as the core engine is concerned, all input and output to text files is \UTF-8 encoded. Input files can be pre|-|processed using the \type {reader} @@ -180,11 +180,11 @@ live in a \UNICODE\ galaxy that is no real problem. \stopsubsection -\startsubsection[title={\lpr {Uchar}}] +\startsubsection[title={\prm {Uchar}}] \topicindex{\UNICODE} -The expandable command \lpr {Uchar} reads a number between~0 and $1{,}114{,}111$ +The expandable command \prm {Uchar} reads a number between~0 and $1{,}114{,}111$ and expands to the associated \UNICODE\ character. \stopsubsection @@ -432,14 +432,14 @@ mode, but in \LUAMETATEX\ there is no error message and the box the height and depth are equally divided. Of course in text mode there is no math axis related offset applied. -It is possible to change or add to the attributes assigned to a box with \lpr +It is possible to change or add to the attributes assigned to a box with \prm {boxattribute}: \starttyping \boxattribute 0 123 456 \stoptyping -You can set attributes of the current paragraph specification node with \lpr +You can set attributes of the current paragraph specification node with \prm {parattribute}: \starttyping @@ -540,7 +540,7 @@ within the \TEX\ portion of the executable. \stopsubsection -\startsubsection[title={\lpr {luaescapestring}}] +\startsubsection[title={\prm {luaescapestring}}] \topicindex {escaping} @@ -566,13 +566,13 @@ in a separate file and load it using \LUA's \type {dofile}: \stopsubsection -\startsubsection[title={\lpr {luafunction}, \lpr {luafunctioncall} and \lpr {luadef}}] +\startsubsection[title={\prm {luafunction}, \prm {luafunctioncall} and \prm {luadef}}] The \prm {directlua} commands involves tokenization of its argument (after picking up an optional name or number specification). The tokenlist is then converted into a string and given to \LUA\ to turn into a function that is called. The overhead is rather small but when you have millions of calls it can -have some impact. For this reason there is a variant call available: \lpr +have some impact. For this reason there is a variant call available: \prm {luafunction}. This command is used as follows: \starttyping @@ -599,7 +599,7 @@ in the following example the number \type {8} gets typeset. } \stoptyping -The \lpr {luafunctioncall} primitive does the same but is unexpandable, for +The \prm {luafunctioncall} primitive does the same but is unexpandable, for instance in an \prm {edef}. In addition \LUATEX\ provides a definer: \starttyping @@ -617,7 +617,7 @@ normal usage should not give problems. \stopsubsection -\startsubsection[title={\lpr {luabytecode} and \lpr {luabytecodecall}}] +\startsubsection[title={\prm {luabytecode} and \prm {luabytecodecall}}] Analogue to the function callers discussed in the previous section we have byte code callers. Again the call variant is unexpandable. @@ -666,9 +666,9 @@ contents is stored and retrieved from the format file. \stopsubsection -\startsubsection[title={\lpr {catcodetable}}] +\startsubsection[title={\prm {catcodetable}}] -The primitive \lpr {catcodetable} switches to a different catcode table. Such a +The primitive \prm {catcodetable} switches to a different catcode table. Such a table has to be previously created using one of the two primitives below, or it has to be zero. Table zero is initialized by \INITEX. @@ -678,13 +678,13 @@ has to be zero. Table zero is initialized by \INITEX. \stopsubsection -\startsubsection[title={\lpr {initcatcodetable}}] +\startsubsection[title={\prm {initcatcodetable}}] \startsyntax \initcatcodetable <15-bit number> \stopsyntax -The primitive \lpr {initcatcodetable} creates a new table with catcodes +The primitive \prm {initcatcodetable} creates a new table with catcodes identical to those defined by \INITEX. The new catcode table is allocated globally: it will not go away after the current group has ended. If the supplied number is identical to the currently active table, an error is raised. The @@ -707,13 +707,13 @@ initial values are: \stopsubsection -\startsubsection[title={\lpr {savecatcodetable}}] +\startsubsection[title={\prm {savecatcodetable}}] \startsyntax \savecatcodetable <15-bit number> \stopsyntax -\lpr {savecatcodetable} copies the current set of catcodes to a new table with +\prm {savecatcodetable} copies the current set of catcodes to a new table with the requested number. The definitions in this new table are all treated as if they were made in the outermost level. Again, the new table is allocated globally: it will not go away after the current group has ended. If the supplied number is @@ -725,11 +725,11 @@ the currently active table, an error is raised. \startsection[title={Tokens, commands and strings}] -\startsubsection[title={\lpr {scantextokens} and \lpr {tokenized}}] +\startsubsection[title={\prm {scantextokens} and \prm {tokenized}}] \topicindex {tokens+scanning} -The syntax of \lpr {scantextokens} is identical to \prm {scantokens}. This +The syntax of \prm {scantextokens} is identical to \prm {scantokens}. This primitive is a slightly adapted version of \ETEX's \prm {scantokens}. The differences are: @@ -738,7 +738,7 @@ differences are: The last (and usually only) line does not have a \prm {endlinechar} appended. \stopitem \startitem - \lpr {scantextokens} never raises an EOF error, and it does not execute + \prm {scantextokens} never raises an EOF error, and it does not execute \prm {everyeof} tokens. \stopitem \startitem @@ -762,8 +762,8 @@ that was interwoven with the old code. \stopsubsection -\startsubsection[title={\lpr {toksapp}, \lpr {tokspre}, \lpr {etoksapp}, \lpr {etokspre}, -\lpr {gtoksapp}, \lpr {gtokspre}, \lpr {xtoksapp}, \lpr {xtokspre}}] +\startsubsection[title={\prm {toksapp}, \prm {tokspre}, \prm {etoksapp}, \prm {etokspre}, +\prm {gtoksapp}, \prm {gtokspre}, \prm {xtoksapp}, \prm {xtokspre}}] Instead of: @@ -782,13 +782,13 @@ expand the passed general text. The \type {g} and \type {x} variants are global. \stopsubsection -\startsubsection[title={\prm {csstring}, \lpr {begincsname} and \lpr {lastnamedcs}}] +\startsubsection[title={\prm {csstring}, \prm {begincsname} and \prm {lastnamedcs}}] These are somewhat special. The \prm {csstring} primitive is like \prm {string} but it omits the leading escape character. This can be somewhat more efficient than stripping it afterwards. -The \lpr {begincsname} primitive is like \prm {csname} but doesn't create +The \prm {begincsname} primitive is like \prm {csname} but doesn't create a relaxed equivalent when there is no such name. It is equivalent to \starttyping @@ -798,7 +798,7 @@ a relaxed equivalent when there is no such name. It is equivalent to \stoptyping The advantage is that it saves a lookup (don't expect much speedup) but more -important is that it avoids using the \prm {if} test. The \lpr {lastnamedcs} +important is that it avoids using the \prm {if} test. The \prm {lastnamedcs} is one that should be used with care. The above example could be written as: \starttyping @@ -813,7 +813,7 @@ that it saves a few tokens and can make code a bit more readable. \stopsubsection -\startsubsection[title={\lpr {clearmarks}}] +\startsubsection[title={\prm {clearmarks}}] \topicindex {marks} @@ -827,15 +827,15 @@ immediate command (no synchronization node is used). \stopsubsection -\startsubsection[title={\lpr {alignmark} and \lpr {aligntab}}] +\startsubsection[title={\prm {alignmark} and \prm {aligntab}}] -The primitive \lpr {alignmark} duplicates the functionality of \type {#} inside -alignment preambles, while \lpr {aligntab} duplicates the functionality of \type +The primitive \prm {alignmark} duplicates the functionality of \type {#} inside +alignment preambles, while \prm {aligntab} duplicates the functionality of \type {&}. \stopsubsection -\startsubsection[title={\lpr {letcharcode}}] +\startsubsection[title={\prm {letcharcode}}] This primitive can be used to assign a meaning to an active character, as in: @@ -848,7 +848,7 @@ This can be a bit nicer than using the uppercase tricks (using the property of \stopsubsection -\startsubsection[title={\lpr {lettonothing} and \lpr {glettonothing}}] +\startsubsection[title={\prm {lettonothing} and \prm {glettonothing}}] This primitive is equivalent to: @@ -863,7 +863,7 @@ name (relaxing would show the relax equivalent). \stopsubsection -\startsubsection[title={\lpr {glet}}] +\startsubsection[title={\prm {glet}}] This primitive is similar to: @@ -876,7 +876,7 @@ but faster (only measurable with millions of calls) and probably more convenient \stopsubsection -\startsubsection[title={\lpr {defcsname}, \lpr {edefcsname}, \lpr {edefcsname} and \lpr {xdefcsname}}] +\startsubsection[title={\prm {defcsname}, \prm {edefcsname}, \prm {edefcsname} and \prm {xdefcsname}}] Although we can implement these primitives easily using macros it makes sense, given the popularity of \prm {csname} to have these as primitives. It also saves @@ -888,11 +888,11 @@ some \prm {expandafter} usage and it looks a bit better in the source. \stopsubsection -\startsubsection[title={\lpr {expanded}}] +\startsubsection[title={\prm {expanded}}] \topicindex {expansion} -The \lpr {expanded} primitive takes a token list and expands its content which +The \prm {expanded} primitive takes a token list and expands its content which can come in handy: it avoids a tricky mix of \prm {expandafter} and \prm {noexpand}. You can compare it with what happens inside the body of an \prm {edef}. The \tex {immediateassignment} and \tex {immediateassigned} commands are @@ -908,11 +908,11 @@ primitives back you can say: \stopsubsection -% \startsubsection[title={\lpr {expanded}, \lpr {immediateassignment} and \lpr {immediateassigned}}] +% \startsubsection[title={\prm {expanded}, \prm {immediateassignment} and \prm {immediateassigned}}] % % \topicindex {expansion} % -% The \lpr {expanded} primitive takes a token list and expands its content which can +% The \prm {expanded} primitive takes a token list and expands its content which can % come in handy: it avoids a tricky mix of \prm {expandafter} and \prm {noexpand}. % You can compare it with what happens inside the body of an \prm {edef}. But this % kind of expansion still doesn't expand some primitive operations. @@ -1005,14 +1005,14 @@ primitives back you can say: % % \stopsubsection -\startsubsection[title={\lpr {ignorepars}}] +\startsubsection[title={\prm {ignorepars}}] This primitive is like \prm {ignorespaces} but also skips paragraph ending commands (normally \prm {par} and empty lines). \stopsubsection -\startsubsection[title={\lpr {futureexpand}, \lpr {futureexpandis}, \lpr {futureexpandisap}}] +\startsubsection[title={\prm {futureexpand}, \prm {futureexpandis}, \prm {futureexpandisap}}] These commands are used as: @@ -1027,7 +1027,7 @@ When there is no match and a space was gobbled a space will be put back. The \stopsubsection -\startsubsection[title={\lpr {aftergrouped}}] +\startsubsection[title={\prm {aftergrouped}}] There is a new experimental feature that can inject multiple tokens to after the group ends. An example demonstrate its use: @@ -1069,7 +1069,7 @@ This gives: \startsection[title=Conditions] -\startsubsection[title={\lpr{ifabsnum} and \lpr {ifabsdim}}] +\startsubsection[title={\prm{ifabsnum} and \prm {ifabsdim}}] There are two tests that we took from \PDFTEX: @@ -1090,8 +1090,8 @@ This gives \stopsubsection -\startsubsection[title={\lpr{ifcmpnum}, \lpr {ifcmpdim}, \lpr {ifnumval}, \lpr -{ifdimval}, \lpr {ifchknum} and \lpr {ifchkdim}}] +\startsubsection[title={\prm{ifcmpnum}, \prm {ifcmpdim}, \prm {ifnumval}, \prm +{ifdimval}, \prm {ifchknum} and \prm {ifchkdim}}] \topicindex {conditions+numbers} \topicindex {conditions+dimensions} @@ -1150,12 +1150,12 @@ or more than zero. \typebuffer \blank {\tt \getbuffer} \blank -The last checked values are available in \lpr {lastchknum} and \lpr {lastchkdim}. +The last checked values are available in \prm {lastchknum} and \prm {lastchkdim}. These don't obey grouping. \stopsubsection -\startsubsection[title={\lpr {ifmathstyle} and \lpr {ifmathparameter}}] +\startsubsection[title={\prm {ifmathstyle} and \prm {ifmathparameter}}] These two are variants on \prm {ifcase} where the first one operates with values in ranging from zero (display style) to seven (cramped script script style) and @@ -1166,7 +1166,7 @@ valid style identifier (a primitive identifier or number). The \type \stopsubsection -\startsubsection[title={\lpr {ifempty}}] +\startsubsection[title={\prm {ifempty}}] This primitive tests for the following token (control sequence) having no content. Assuming that \type {\empty} is indeed empty, the following two are @@ -1182,14 +1182,14 @@ lead to less clutter in tracing. \stopsubsection -\startsubsection[title={\lpr {ifrelax}}] +\startsubsection[title={\prm {ifrelax}}] This primitive complements \type {\ifdefined}, \type {\ifempty} and \type {\ifcsname} so that we have all reasonable tests directly available. \stopsubsection -\startsubsection[title={\lpr {ifboolean}}] +\startsubsection[title={\prm {ifboolean}}] This primitive tests for non|-|zero, so the next variants are similar @@ -1201,7 +1201,7 @@ This primitive tests for non|-|zero, so the next variants are similar \stopsubsection -\startsubsection[title={\lpr {iftok} and \lpr {ifcstok}}] +\startsubsection[title={\prm {iftok} and \prm {ifcstok}}] \topicindex {conditions+tokens} \topicindex {tokens} @@ -1230,7 +1230,7 @@ one might evolve). \stopsubsection -\startsubsection[title={\lpr {ifarguments}, \lpr {ifparameters} and \lpr {ifparameter}}] +\startsubsection[title={\prm {ifarguments}, \prm {ifparameters} and \prm {ifparameter}}] These are part of the extended macro argument parsing features. The \type {\ifarguments} condition is like an \type {\ifcase} where the number is the @@ -1257,7 +1257,7 @@ No expansion of arguments takes place here but you can use a test like this: \stopsubsection -\startsubsection[title={\lpr {ifcondition}}] +\startsubsection[title={\prm {ifcondition}}] \topicindex {conditions} @@ -1315,7 +1315,7 @@ we use \type {\unless} to negate the result. \stopsubsection -\startsubsection[title={\lpr {orelse} and \lpr {orunless}}] +\startsubsection[title={\prm {orelse} and \prm {orunless}}] Sometimes you have successive tests that, when laid out in the source lead to deep trees. The \type {\ifcase} test is an exception. Experiments with \type @@ -1381,7 +1381,7 @@ Of course it is only useful at the right level, so you might end up with cases l \fi \stoptyping -The \lpr {orunless} variant negates the next test, just like \prm {unless}. In +The \prm {orunless} variant negates the next test, just like \prm {unless}. In some cases these commands look at the next token to see if it is an if|-|test so a following negation will not work (read: making that work would complicate the code and hurt efficiency too). Side note: interesting is that in \CONTEXT\ we @@ -1389,13 +1389,14 @@ hardly use this kind of negation. \stopsubsection -\startsubsection[title={\lpr {ifprotected}, \lpr {frozen}, \lpr {iffrozen} and \lpr {ifusercmd}}] +\startsubsection[title={\prm {ifflags}}] -These checkers deal with control sequences. You can check if a command is a +This checker deal with control sequences. You can check if a command is a protected one, that is, defined with the \type {\protected} prefix. A command is frozen when it has been defined with the \type {\frozen} prefix. Beware: only macros can be frozen. A user command is a command that is not part of the -predefined set of commands. This is an experimental command. +predefined set of commands. This is an experimental command. The flag values can +be queried with \typ {tex.getflagvalues}. \stopsubsection @@ -1403,7 +1404,7 @@ predefined set of commands. This is an experimental command. \startsection[title={Boxes, rules and leaders}] -\startsubsection[title={\lpr {outputbox}}] +\startsubsection[title={\prm {outputbox}}] \topicindex {output} @@ -1417,7 +1418,7 @@ the acceptable range is from 0 to 65535. \stopsubsection -\startsubsection[title={\prm {hrule}, \prm {vrule}, \lpr {nohrule} and \lpr {novrule}}] +\startsubsection[title={\prm {hrule}, \prm {vrule}, \prm {nohrule} and \prm {novrule}}] \topicindex {rules} @@ -1483,7 +1484,7 @@ edges and these depend on it being a horizontal or vertical rule. \getbuffer \stoplinecorrection -Two new primitives were introduced: \lpr {nohrule} and \lpr {novrule}. These can +Two new primitives were introduced: \prm {nohrule} and \prm {novrule}. These can be used to reserve space. This is often more efficient than creating an empty box with fake dimensions. Of course this assumes that the backend implements them being invisible but still taking space. @@ -1546,22 +1547,22 @@ of course be implemented in \LUA. \starttabulate[|l|p|] \DB command \BC explanation \NC \NR \TB -\NC \lpr {saveboxresource} \NC save the box as an object to be included later \NC \NR -\NC \lpr {saveimageresource} \NC save the image as an object to be included later \NC \NR -\NC \lpr {useboxresource} \NC include the saved box object here (by index) \NC \NR -\NC \lpr {useimageresource} \NC include the saved image object here (by index) \NC \NR -\NC \lpr {lastsavedboxresourceindex} \NC the index of the last saved box object \NC \NR -\NC \lpr {lastsavedimageresourceindex} \NC the index of the last saved image object \NC \NR -\NC \lpr {lastsavedimageresourcepages} \NC the number of pages in the last saved image object \NC \NR +\NC \tex {saveboxresource} \NC save the box as an object to be included later \NC \NR +\NC \tex {saveimageresource} \NC save the image as an object to be included later \NC \NR +\NC \tex {useboxresource} \NC include the saved box object here (by index) \NC \NR +\NC \tex {useimageresource} \NC include the saved image object here (by index) \NC \NR +\NC \tex {lastsavedboxresourceindex} \NC the index of the last saved box object \NC \NR +\NC \tex {lastsavedimageresourceindex} \NC the index of the last saved image object \NC \NR +\NC \tex {lastsavedimageresourcepages} \NC the number of pages in the last saved image object \NC \NR \LL \stoptabulate An implementation probably should accept the usual optional dimension parameters for \type {\use...resource} in the same format as for rules. With images, these -dimensions are then used instead of the ones given to \lpr {useimageresource} but -the original dimensions are not overwritten, so that a \lpr {useimageresource} -without dimensions still provides the image with dimensions defined by \lpr -{saveimageresource}. These optional parameters are not implemented for \lpr +dimensions are then used instead of the ones given to \tex {useimageresource} but +the original dimensions are not overwritten, so that a \tex {useimageresource} +without dimensions still provides the image with dimensions defined by \tex +{saveimageresource}. These optional parameters are not implemented for \tex {saveboxresource}. \starttyping @@ -1580,7 +1581,7 @@ packages. \stopsubsection -\startsubsection[title={\lpr {hpack}, \lpr {vpack} and \lpr {tpack}}] +\startsubsection[title={\prm {hpack}, \prm {vpack} and \prm {tpack}}] These three primitives are the equivalents of \prm {hbox}, \prm {vbox} and \prm {vtop} but they don't trigger the packaging related callbacks. Of course @@ -1591,7 +1592,7 @@ mode. \stopsubsection -\startsubsection[title={\lpr {gleaders}},reference=sec:gleaders] +\startsubsection[title={\prm {gleaders}},reference=sec:gleaders] \topicindex {leaders} @@ -1606,7 +1607,7 @@ smallest\/}. The \type {g} stresses this global nature. \startsection[title={Languages}] -\startsubsection[title={\lpr {hyphenationmin}}] +\startsubsection[title={\prm {hyphenationmin}}] \topicindex {languages} \topicindex {hyphenation} @@ -1654,7 +1655,7 @@ and for nodes that have sublists (like discretionaries) these are also shown. Al that could have been delegated to \LUA\ but it felt wrong to not made that a core engine feature. -When bit~1 of \lpr {tracinglevels} is set the current level is prepended to +When bit~1 of \prm {tracinglevels} is set the current level is prepended to tracing lines in the log and when bit~2 is set the input level is prepended. You can set both bits and get both numbers prepended. In \CONTEXT\ we default to the value~3, so you get prefixes like \type {3:4:} followed by a space. @@ -1684,8 +1685,8 @@ for instance \type {\meaningfull} and \type {\meaningless} as variants of \type \stopsubsection -% \startsubsection[title={\lpr {lastnodetype}, \lpr {lastnodesubtype}, \lpr -% {currentiftype} and \lpr {internalcodesmode}.}] +% \startsubsection[title={\prm {lastnodetype}, \prm {lastnodesubtype}, \prm +% {currentiftype} and \prm {internalcodesmode}.}] % % The \ETEX\ command \type {\lastnodetype} is limited to some nodes. When the % parameter \type {\internalcodesmode} is set to a non|-|zero value the normal @@ -1695,7 +1696,7 @@ for instance \type {\meaningfull} and \type {\meaningless} as variants of \type % % \stopsubsection -\startsubsection[title={\lpr {lastnodetype}, \lpr {lastnodesubtype}, \lpr +\startsubsection[title={\prm {lastnodetype}, \prm {lastnodesubtype}, \prm {currentiftype}}] The \ETEX\ command \type {\lastnodetype} returns the node codes as used in the @@ -1727,11 +1728,11 @@ they will be stable. This allows for embedded spaces, without the need for double quotes. Macro expansion takes place inside the argument. Keep in mind that as side effect of -delegating \IO\ to \LUA\ the \prm {openin} primitive is nor provided by the +delegating \IO\ to \LUA\ the \tex {openin} primitive is not provided by the engine and has to be implemented by the macro package. This also means that the limit on the number of open files is not enforced by the engine. -The \lpr {tracingfonts} primitive that has been inherited from \PDFTEX\ has +The \prm {tracingfonts} primitive that has been inherited from \PDFTEX\ has been adapted to support variants in reporting the font. The reason for this extension is that a csname not always makes sense. The zero case is the default. @@ -1897,7 +1898,7 @@ It gets typeset as: We could define the two helpers to look back, pick up a skip, remove it and inject it after the dir node. But that way we loose the subtype information that for some applications can be handy to be kept as|-|is. This is why we now have a -variant of \lpr {textdirection} which injects the balanced node before the skip. +variant of \prm {textdirection} which injects the balanced node before the skip. Instead of the previous definition we can use: \startbuffer[def] @@ -1926,7 +1927,7 @@ comes out as a properly spaced: Anything more complex that this, like combination of skips and penalties, or kerns, should be handled in the input or macro package because there is no way we -can predict the expected behaviour. In fact, the \lpr {linedir} is just a +can predict the expected behaviour. In fact, the \prm {linedirection} is just a convenience extra which could also have been implemented using node list parsing. Directions are complicated by the fact that they often need to work over groups @@ -1949,7 +1950,7 @@ width. In \LUATEX\ glue got subtypes so we can recognize the left-, right and parfill skips, but still there is no hundred percent certainty about the shape. In \LUAMETATEX\ lines can be normalized. This is optional because we want to -preserve the original (for comparison) and is controlled by \lpr +preserve the original (for comparison) and is controlled by \prm {normalizelinemode}. That variable actually drives some more. An earlier version provided a few more granular options (for instance: does a leftskip comes before or after a left hanging indentation) but in the end that was dropped. Because @@ -1983,7 +1984,7 @@ in future releases. % % Another adaptation to the \ALEPH\ directional model is control over shapes driven % by \prm {hangindent} and \prm {parshape}. This is controlled by a new parameter -% \lpr {shapemode}: +% \prm {shapemode}: % % \starttabulate[|c|l|l|] % \DB value \BC \prm {hangindent} \BC \prm {parshape} \NC \NR @@ -2046,10 +2047,10 @@ in future releases. % \type {\linedirection} that is like \type {\textdirection} but with some % additional (inline) glue checking. -% Controlling glue with \lpr {breakafterdirmode} +% Controlling glue with \prm {breakafterdirmode} % % Glue after a dir node is ignored in the linebreak decision but you can bypass that -% by setting \lpr {breakafterdirmode} to~\type {1}. The following table shows the +% by setting \prm {breakafterdirmode} to~\type {1}. The following table shows the % difference. Watch your spaces. % % \def\ShowSome#1{% @@ -2160,14 +2161,14 @@ had an issue that had to be fixed. \stopsection -\startsection[title=Expressions and \lpr {numericscale}] +\startsection[title=Expressions and \prm {numericscale}] The \type {*expr} parsers now accept \type {:} as operator for integer division (the \type {/} operators does rounding. This can be used for division compatible with \type {\divide}. I'm still wondering if adding a couple of bit operators makes sense (for integers). -The \lpr{numericscale} parser is kind of special (and might evolve). For now it +The \prm{numericscale} parser is kind of special (and might evolve). For now it converts a following number in a scale value as often used in \TEX, where 1000 means scaling by~1.0. The trick is in the presence of a digit (or comma): 1.234 becomes 1234 but 1234 stays 1234 and from this you can deduce that 12.34 becomes @@ -2186,7 +2187,7 @@ Again this is experimental and (used and) discussed in document that come with t \stoptyping Here the first argument between parentheses is mandate. But the magic -prefix \lpr {tolerant} makes that limitation go away: +prefix \prm {tolerant} makes that limitation go away: \starttyping \tolerant\def\foo(#1)#2{...} @@ -2259,7 +2260,7 @@ features. There is an experimental overload protection mechanism that we will test for a while before declaring it stable. The reason for that is that we need to adapt the \CONTEXT\ code base in order to test its usefulness. Protection is achieved -via prefixes. Depending on the value of the \lpr {overloadmode} variable +via prefixes. Depending on the value of the \prm {overloadmode} variable warnings or errors will be triggered. Examples of usage can be found in some documents that come with \CONTEXT, so here we just stick to the basics. @@ -2271,10 +2272,10 @@ documents that come with \CONTEXT, so here we just stick to the basics. \aliased \def\foo{...} \stoptyping -A \lpr {mutable} macro can always be changed contrary to an \lpr {immutable} one. -For instance a macro that acts as a variable is normally \lpr {mutable}, while a +A \prm {mutable} macro can always be changed contrary to an \prm {immutable} one. +For instance a macro that acts as a variable is normally \prm {mutable}, while a constant can best be immutable. It makes sense to define a public core macro as -\lpr {permanent}. Primives start out a \lpr {permanent} ones but with a primitive +\prm {permanent}. Primives start out a \prm {permanent} ones but with a primitive property instead. \startbuffer @@ -2285,16 +2286,16 @@ property instead. \typebuffer -The \lpr {meaningfull} primitive is like \prm {meaning} but report the -properties too. The \lpr {meaningless} companion reports the body of a macro. +The \prm {meaningfull} primitive is like \prm {meaning} but report the +properties too. The \prm {meaningless} companion reports the body of a macro. Anyway, this typesets: \startlines \tttf \getbuffer \stoplines -So, the \lpr {aliased} prefix copies the properties. Keep in mind that a macro +So, the \prm {aliased} prefix copies the properties. Keep in mind that a macro package can redefine primitives, but \prm {relax} is an unlikely candidate. -There is an extra prefix \lpr {noaligned} that flags a macro as being valid +There is an extra prefix \prm {noaligned} that flags a macro as being valid for \prm {noalign} compatible usage (which means that the body must contain that one. The idea is that we then can do this: @@ -2306,7 +2307,7 @@ that is: we can have protected macros that don't trigger an error in the parser where there is a look ahead for \prm {noalign} which is why normally protection doesn't work well. So: we have macro flagged as permanent (overload protection), being protected (that is, not expandable by default) and a valid equivalent of -the noalign primitive. Of course we can also apply the \prm {global} and \lpr +the noalign primitive. Of course we can also apply the \prm {global} and \prm {tolerant} prefixes here. The complete repertoire of extra prefixes is: \starttabulate @@ -2329,12 +2330,12 @@ the noalign primitive. Of course we can also apply the \prm {global} and \lpr \HL \stoptabulate -The not yet discussed \lpr {instance} is just a flag with no special meaning -which can be used as classifier. The \lpr {frozen} also protects against overload +The not yet discussed \prm {instance} is just a flag with no special meaning +which can be used as classifier. The \prm {frozen} also protects against overload which brings amount of blockers to four. To what extent the engine will complain when a property is changed in a way that -violates the flags depends on the parameter \lpr {overloadmode}. When this +violates the flags depends on the parameter \prm {overloadmode}. When this parameter is set to zero no checking takes place. More interesting are values larger than zero. If that is the case, when a control sequence is flagged as mutable, it is always permitted to change. When it is set to immutable one can @@ -2352,11 +2353,11 @@ the following overload values are used: \stoptabulate The even values (except zero) will abort the run. A value of 255 will freeze this -parameter. At level five and above the \lpr {instance} flag is also checked but +parameter. At level five and above the \prm {instance} flag is also checked but no drastic action takes place. We use this to signal to the user that a specific instance is redefined (of course the definition macros can check for that too). -The \lpr {overloaded} prefix can be used to overload a frozen macro. The \lpr +The \prm {overloaded} prefix can be used to overload a frozen macro. The \prm {enforced} is more powerful and forces an overload but that prefix is only effective in ini mode or when it's embedded in the body of a macro or token list at ini time unless of course at runtime the mode is zero. @@ -2368,13 +2369,13 @@ modules or macros of unpredictable origin will probably suffer from warnings and errors when de mode is set to non zero. In \CONTEXT\ we're okay unless of course users redefine instances but there a warning or error is kind of welcome. -There is an extra prefix \lpr {untraced} that will suppress the meaning when +There is an extra prefix \prm {untraced} that will suppress the meaning when tracing so that the macro looks more like a primitive. It is still somewhat experimental so what gets displayed might change. \stopsection -\startsection[title={Constants with \lpr{integerdef} and \lpr {dimendef}}] +\startsection[title={Constants with \prm{integerdef} and \prm {dimensiondef}}] It is rather common to store constant values in a register or character definition. @@ -2388,8 +2389,8 @@ definition. But in \LUAMETATEX\ we also can do this: \starttyping -\integerdef\MyConstantC 456 -\dimendef \MyConstantD 456pt +\integerdef \MyConstantC 456 +\dimensiondef\MyConstantD 456pt \stoptyping These two are stored as efficient as a register but don't occupy a register slot. @@ -2402,7 +2403,7 @@ in a previous section. \stopsection -\startsection[title={Serialization with \lpr {todimension}, \lpr {toscaled} and \lpr {tointeger}}] +\startsection[title={Serialization with \prm {todimension}, \prm {toscaled} and \prm {tointeger}}] These three serializers take a verbose or symbolic quantity: diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex index 663b328ba..8a049e694 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex @@ -115,9 +115,9 @@ has no ligatures and kerns and is normally not processed at all. \NC \type {italic} \NC number \NC italic correction in sp (default 0) \NC\NR \NC \type {top_accent} \NC number \NC top accent alignment place in sp (default zero) \NC\NR \NC \type {bot_accent} \NC number \NC bottom accent alignment place, in sp (default zero) \NC\NR -\NC \type {left_protruding} \NC number \NC left protruding factor (\lpr {lpcode}) \NC\NR -\NC \type {right_protruding} \NC number \NC right protruding factor (\lpr {rpcode}) \NC\NR -\NC \type {expansion_factor} \NC number \NC expansion factor (\lpr {efcode}) \NC\NR +\NC \type {left_protruding} \NC number \NC left protruding factor (\prm {lpcode}) \NC\NR +\NC \type {right_protruding} \NC number \NC right protruding factor (\prm {rpcode}) \NC\NR +\NC \type {expansion_factor} \NC number \NC expansion factor (\prm {efcode}) \NC\NR \NC \type {next} \NC number \NC \quote {next larger} character index \NC\NR \NC \type {extensible} \NC table \NC constituent parts of an extensible recipe \NC\NR \NC \type {vert_variants} \NC table \NC constituent parts of a vertical variant set \NC \NR @@ -160,9 +160,9 @@ processing. \type {right_boundary} is similar but not actually used for anything The values of \type {top_accent}, \type {bot_accent} and \type {mathkern} are used only for math accent and superscript placement, see \at {page} [math] in this manual for details. The values of \type {left_protruding} and \type -{right_protruding} are used only when \lpr {protrudechars} is non-zero. Whether +{right_protruding} are used only when \prm {protrudechars} is non-zero. Whether or not \type {expansion_factor} is used depends on the font's global expansion -settings, as well as on the value of \lpr {adjustspacing}. +settings, as well as on the value of \prm {adjustspacing}. A math character can have a \type {next} field that points to a next larger shape. However, the presence of \type {extensible} will overrule \type {next}, if @@ -277,10 +277,10 @@ More options might be added in the future. \stopluacode In \CONTEXT\ these are interfaced via pseudo features. The math control flags of -a font can be overloaded by \lpr {mathcontrolmode} on the spot and the set -controls of a font can be queried by \lpr {fontmathcontrol}. The text control -flags in a font always win over the ones set by other parameters, like \lpr -{hyphenationmode}. They can be queried with \lpr {fonttextcontrol}. +a font can be overloaded by \prm {mathcontrolmode} on the spot and the set +controls of a font can be queried by \prm {fontmathcontrol}. The text control +flags in a font always win over the ones set by other parameters, like \prm +{hyphenationmode}. They can be queried with \prm {fonttextcontrol}. \stopsection @@ -353,7 +353,7 @@ ever seen in the engine. \NC \type{down} \NC 1 \NC number \NC move down on the page \NC \NR \NC \type{right} \NC 1 \NC number \NC move right on the page \NC \NR \HL -\NC \type{special} \NC 1 \NC string \NC output a \prm {special} command \NC \NR +\NC \type{special} \NC 1 \NC string \NC output a driver directive \NC \NR \HL \NC \type{nop} \NC 0 \NC \NC do nothing \NC \NR \NC \type{slot} \NC 2 \NC 2 numbers \NC a shortcut for the combination of a font and char command\NC \NR @@ -452,7 +452,7 @@ expansion takes place inside the argument. \stopsubsection -\startsubsection[title={\lpr {fontid} and \lpr {setfontid}}] +\startsubsection[title={\prm {fontid} and \prm {setfontid}}] \startsyntax \fontid\font @@ -480,12 +480,12 @@ order of loading fonts. For instance, when in \CONTEXT\ virtual math \UNICODE\ fonts are used, we can easily get over a hundred ids in use. Not all ids have to be bound to a real font, after all it's just a number. -The primitive \lpr {setfontid} can be used to enable a font with the given id, +The primitive \prm {setfontid} can be used to enable a font with the given id, which of course needs to be a valid one. \stopsubsection -\startsubsection[title={\lpr {glyphoptions}}] +\startsubsection[title={\prm {glyphoptions}}] \topicindex {ligatures+suppress} \topicindex {kerns+suppress} @@ -494,7 +494,7 @@ which of course needs to be a valid one. In \LUATEX\ the \type {\noligs} and \type {\nokerns} primitives suppress these features but in \LUAMETATEX\ these primitives are gone. They are replace by a more -generic control primitive \lpr {glyphoptions}. This numerical parameter is a +generic control primitive \prm {glyphoptions}. This numerical parameter is a bitset with the following fields: \starttabulate[|l|pl|] @@ -516,18 +516,18 @@ glyph, this because the current value of this option is stored with glyphs. \stopsubsection -\startsubsection[title={\lpr {glyphxscale}, \lpr {glyphyscale} and \lpr {scaledfontdimen}}] +\startsubsection[title={\prm {glyphxscale}, \prm {glyphyscale} and \prm {scaledfontdimen}}] The two scale parameters control the current scaling. They are traditional \TEX\ integer parameters that operate independent of each other. The scaling is reflected in the dimensions of glyphs as well as in the related font dimensions, which means that units like \type {ex} and \type {em} work as expected. If you -query a font dimensions with \prm {fontdimen} you get the raw value but with \lpr +query a font dimensions with \prm {fontdimen} you get the raw value but with \prm {scaledfontdimen} you get the useable value. \stopsubsection -\startsubsection[title={\lpr {glyphxoffset}, \lpr {glyphyoffset}}] +\startsubsection[title={\prm {glyphxoffset}, \prm {glyphyoffset}}] These two parameters control the horizontal and vertical shift of glyphs with, when applied to a stretch of them, the horizontal offset probably being the least @@ -535,7 +535,7 @@ useful. \stopsubsection -\startsubsection[title={\lpr {glyph}}] +\startsubsection[title={\prm {glyph}}] This command is a variation in \prm {char} that takes keywords: @@ -570,7 +570,7 @@ Visualized: \stopsubsection -\startsubsection[title={\lpr{nospaces}}] +\startsubsection[title={\prm{nospaces}}] \topicindex {spaces+suppress} @@ -580,7 +580,7 @@ triggers no injection while \type{2} results in injection of a zero skip. In \in {figure} [fig:nospaces] we see the results for four characters separated by a space. -\startplacefigure[reference=fig:nospaces,title={The \lpr {nospaces} options.}] +\startplacefigure[reference=fig:nospaces,title={The \prm {nospaces} options.}] \startcombination[3*2] {\ruledhbox to 5cm{\vtop{\hsize 10mm\nospaces=0\relax x x x x \par}\hss}} {\type {0 / hsize 10mm}} {\ruledhbox to 5cm{\vtop{\hsize 10mm\nospaces=1\relax x x x x \par}\hss}} {\type {1 / hsize 10mm}} @@ -593,7 +593,7 @@ space. \stopsubsection -\startsubsection[title={\lpr{protrusionboundary}}] +\startsubsection[title={\prm{protrusionboundary}}] \topicindex {protrusion} \topicindex {boundaries} @@ -712,7 +712,7 @@ font.current( i) \stopsubsection -\startsubsection[title={Glyph data: \lpr {glyphdata}, \lpr {glyphscript}, \lpr {glyphstate}}] +\startsubsection[title={Glyph data: \prm {glyphdatafield}, \prm {glyphscriptfield}, \prm {glyphstatefield}}] These primitives can be used to set an additional glyph properties. Of course it's very macro package dependant what is done with that. It started with just diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-internals.tex b/doc/context/sources/general/manuals/luametatex/luametatex-internals.tex index 68fdc0307..d71ce7ab8 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-internals.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-internals.tex @@ -32,7 +32,7 @@ want to peek in \quotation {The \ETEX\ manual} too. But \unknown\ if you're here because of \LUA, then all you need to know is that you can call it from within a run. If you want to learn the language, just read the well written \LUA\ book. The macro package that you use probably will provide -a few wrapper mechanisms but the basic \lpr {directlua} command that does the job +a few wrapper mechanisms but the basic \prm {directlua} command that does the job is: \starttyping diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex b/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex index 472434602..36336e42e 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex @@ -112,13 +112,14 @@ Hans Hagen \blank[2*big] \starttabulate[|||] -\NC Version \EQ \currentdate \NC \NR -\NC \LUAMETATEX \EQ \cldcontext{LUATEXENGINE} % - \cldcontext{LUATEXVERSION} / % - \cldcontext{LUATEXFUNCTIONALITY} - \NC \NR -\NC \CONTEXT \EQ MkIV \contextversion \NC \NR -\NC \LUATEX\ Team \EQ Hans Hagen, Hartmut Henkel, Taco Hoekwater, Luigi Scarso \NC \NR +\NC \LUAMETATEX\ Banner \EQ \cldcontext{LUATEXENGINE} % + \cldcontext{LUATEXVERSION} / % + \cldcontext{LUATEXFUNCTIONALITY} + \NC \NR +\NC \LUAMETATEX\ Version \EQ \currentdate \NC \NR +\NC \CONTEXT\ Version \EQ LMTX \contextversion \NC \NR +\NC \LUATEX\ Team \EQ Hans Hagen, Hartmut Henkel, Taco Hoekwater, Luigi Scarso \NC \NR +\NC \LUAMETATEX\ Team \EQ Hans Hagen, Alan Braslau, Mojca Miklavec and Wolfgang Schuster \NC \NR \stoptabulate \stopchapter diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-languages.tex b/doc/context/sources/general/manuals/luametatex/luametatex-languages.tex index 0d4066ee1..61ad57296 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-languages.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-languages.tex @@ -98,7 +98,7 @@ characters long. The language is stored with each character. You can set \prm {firstvalidlanguage} to for instance~1 and make thereby language~0 an ignored hyphenation language. -The new primitive \lpr {hyphenationmin} can be used to signal the minimal length +The new primitive \prm {hyphenationmin} can be used to signal the minimal length of a word. This value is stored with the (current) language. Because the \prm {uchyph} value is saved in the actual nodes, its handling is @@ -130,7 +130,7 @@ hyphenation happens is (normally) when the paragraph or a horizontal box is constructed. When \prm {savinghyphcodes} was zero when the language got initialized you start out with nothing, otherwise you already have a set. -When a \lpr {hjcode} is greater than 0 but less than 32 is indicates the +When a \prm {hjcode} is greater than 0 but less than 32 is indicates the to be used length. In the following example we map a character (\type {x}) onto another one in the patterns and tell the engine that \type {œ} counts as two characters. Because traditionally zero itself is reserved for inhibiting @@ -192,7 +192,7 @@ The start and end of a sequence of characters is signalled by a \nod {glue}, \no {penalty}, \nod {kern} or \nod {boundary} node. But by default also a \nod {hlist}, \nod {vlist}, \nod {rule}, \nod {dir}, \nod {whatsit}, \nod {insert}, and \nod {adjust} node indicate a start or end. You can omit the last set from the -test by setting flags in \lpr {hyphenationmode}: +test by setting flags in \prm {hyphenationmode}: \starttabulate[|c|l|] \DB value \BC behaviour \NC \NR @@ -324,8 +324,8 @@ examples. \NC \number \compoundhyphenationcode \NC permit break at an explicit hyphen (border cases) \NC \NR \NC \number \strictstarthyphenationcode \NC traditional \TEX\ compatibility wrt the start of a word \NC \NR \NC \number \strictendhyphenationcode \NC traditional \TEX\ compatibility wrt the end of a word \NC \NR -\NC \number \automaticpenaltyhyphenationcode \NC use \lpr {automatichyphenpenalty} \NC \NR -\NC \number \explicitpenaltyhyphenationcode \NC use \lpr {explicithyphenpenalty} \NC \NR +\NC \number \automaticpenaltyhyphenationcode \NC use \prm {automatichyphenpenalty} \NC \NR +\NC \number \explicitpenaltyhyphenationcode \NC use \prm {explicithyphenpenalty} \NC \NR \NC \number \permitgluehyphenationcode \NC turn glue in discretionaries into kerns \NC \NR \NC \number \permitallhyphenationcode \NC okay, let's be even more tolerant in discretionaries \NC \NR \NC \number \permitmathreplacehyphenationcode \NC and again we're more permissive \NC \NR @@ -451,12 +451,12 @@ have been added: \explicithyphenpenalty \stoptyping -The usage of these penalties is controlled by the \lpr {hyphenationmode} flags +The usage of these penalties is controlled by the \prm {hyphenationmode} flags \number\automaticpenaltyhyphenationcode\space and \number\explicitpenaltyhyphenationcode\space and when these are not set \prm {exhyphenpenalty} is used. -You can use the \lpr {tracinghyphenation} variable to get a bit more information +You can use the \prm {tracinghyphenation} variable to get a bit more information about what happens. \starttabulate[|lT|l|] @@ -547,7 +547,7 @@ actual explicit hyphen character if needed). For example, this matches the word The motivation behind the \ETEX\ extension \prm {savinghyphcodes} was that hyphenation heavily depended on font encodings. This is no longer true in \LUATEX, and the corresponding primitive is basically ignored. Because we now -have \lpr {hjcode}, the case related codes can be used exclusively for \prm +have \prm {hjcode}, the case related codes can be used exclusively for \prm {uppercase} and \prm {lowercase}. The three curly brace pair pattern in an exception can be somewhat unexpected so @@ -556,7 +556,7 @@ creates a lookup \type {fooxbar} and the pattern \type {foo{}{}{}bar} creates \type {foobar}. Then, when a hit happens there is a replacement text (\type {x}) or none. Because we introduced penalties in discretionary nodes, the exception syntax now also can take a penalty specification. The value between square brackets -is a multiplier for \lpr {exceptionpenalty}. Here we have set it to 10000 so +is a multiplier for \prm {exceptionpenalty}. Here we have set it to 10000 so effectively we get 30000 in the example. \def\ShowSample#1#2% @@ -633,10 +633,10 @@ of the implementation: needed. \stopitem \startitem - \LUATEX\ uses the language-specific variables \lpr {prehyphenchar} and \lpr + \LUATEX\ uses the language-specific variables \prm {prehyphenchar} and \prm {posthyphenchar} in the creation of implicit discretionaries, instead of \TEX82's \prm {hyphenchar}, and the values of the language|-|specific - variables \lpr {preexhyphenchar} and \lpr {postexhyphenchar} for explicit + variables \prm {preexhyphenchar} and \prm {postexhyphenchar} for explicit discretionaries (instead of \TEX82's empty discretionary). \stopitem \startitem @@ -734,7 +734,7 @@ In so called base mode, where \TEX\ does the work, the ligature construction \type {ff} ligatures and that one followed by an \type {i} can become a \type {ffi} ligature. The situation can be complicated by hyphenation points between these characters. When there are several in a ligature collapsing happens. Flag -{\tttf "\uchexnumbers {\lazyligatureshyphenationcode}} in the \lpr +{\tttf "\uchexnumbers {\lazyligatureshyphenationcode}} in the \prm {hyphenationmode} variable determines if this happens lazy or greedy, i.e.\ the first hyphen wins or the last one does. In practice a \CONTEXT\ user won't have to deal with this because most fonts are processed in node mode. diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex index 44d7dbe19..da05485ad 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex @@ -68,7 +68,7 @@ The unaltered ones are: \stoptabulate For practical reasons \prm {mathchardef} will silently accept values larger -that \type {0x8000} and interpret it as \lpr {Umathcharnumdef}. This is needed +that \type {0x8000} and interpret it as \prm {Umathcharnumdef}. This is needed to satisfy older macro packages. The following new primitives are compatible with \XETEX: @@ -78,17 +78,17 @@ The following new primitives are compatible with \XETEX: \starttabulate[|l|l|r|c|l|r|] \DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR \TB -\NC \lpr {Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF \NC \NR -\NC \lpr {Udelcode} \NC 0 \NC 10FFFF \NC = \NC 0+0 \NC FF+10FFFF \NC \NR -\NC \lpr {Umathchar} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathaccent} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Udelimiter} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Uradical} \NC 0+0 \NC FF+10FFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcharnum} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR -\NC \lpr {Umathcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR -\NC \lpr {Udelcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR +\NC \prm {Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \prm {Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR +\NC \prm {Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF \NC \NR +\NC \prm {Udelcode} \NC 0 \NC 10FFFF \NC = \NC 0+0 \NC FF+10FFFF \NC \NR +\NC \prm {Umathchar} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \prm {Umathaccent} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \prm {Udelimiter} \NC 0+0+0 \NC 7+FF+10FFFF \NC \NC \NC \NC \NR +\NC \prm {Uradical} \NC 0+0 \NC FF+10FFFF \NC \NC \NC \NC \NR +\NC \prm {Umathcharnum} \NC -80000000 \NC 7FFFFFFF \NC \NC \NC \NC \NR +\NC \prm {Umathcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR +\NC \prm {Udelcodenum} \NC 0 \NC 10FFFF \NC = \NC -80000000 \NC 7FFFFFFF \NC \NR \LL \stoptabulate @@ -101,20 +101,20 @@ Specifications typically look like: The new primitives that deal with delimiter|-|style objects do not set up a \quote {large family}. Selecting a suitable size for display purposes is expected -to be dealt with by the font via the \lpr {Umathoperatorsize} parameter. +to be dealt with by the font via the \prm {Umathoperatorsize} parameter. For some of these primitives, all information is packed into a single signed -integer. For the first two (\lpr {Umathcharnum} and \lpr {Umathcodenum}), the +integer. For the first two (\prm {Umathcharnum} and \prm {Umathcodenum}), the lowest 21 bits are the character code, the 3 bits above that represent the math class, and the family data is kept in the topmost bits. This means that the values -for math families 128--255 are actually negative. For \lpr {Udelcodenum} there +for math families 128--255 are actually negative. For \prm {Udelcodenum} there is no math class. The math family information is stored in the bits directly on top of the character code. Using these three commands is not as natural as using the two- and three|-|value commands, so unless you know exactly what you are doing and absolutely require the speedup resulting from the faster input scanning, it is better to use the verbose commands instead. -The \lpr {Umathaccent} command accepts optional keywords to control various +The \prm {Umathaccent} command accepts optional keywords to control various details regarding math accents. See \in {section} [mathacc] below for details. There are more new primitives and all of these will be explained in following @@ -123,11 +123,11 @@ sections: \starttabulate[|l|l|] \DB primitive \BC value range (in hex) \NC \NR \TB -\NC \lpr {Uroot} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Uoverdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Uunderdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Udelimiterover} \NC 0 + 0--FF + 10FFFF \NC \NR -\NC \lpr {Udelimiterunder} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \prm {Uroot} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \prm {Uoverdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \prm {Uunderdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \prm {Udelimiterover} \NC 0 + 0--FF + 10FFFF \NC \NR +\NC \prm {Udelimiterunder} \NC 0 + 0--FF + 10FFFF \NC \NR \LL \stoptabulate @@ -135,13 +135,13 @@ sections: \startsection[title={Math styles}] -\subsection{\lpr {mathstyle}} +\subsection{\prm {mathstyle}} \topicindex {math+styles} It is possible to discover the math style that will be used for a formula in an expandable fashion (while the math list is still being read). To make this -possible, \LUATEX\ adds the new primitive: \lpr {mathstyle}. This is a \quote +possible, \LUATEX\ adds the new primitive: \prm {mathstyle}. This is a \quote {convert command} like e.g. \prm {romannumeral}: its value can only be read, not set. Beware that contrary to \LUATEX\ this is now a proper number so you need to use \type {\number} o r\type {\the} in order to serialize it. @@ -171,7 +171,7 @@ preceding use of that family). The style switching primitives like \prm {textstyle} are turned into nodes so the styles set there are frozen. The \prm {mathchoice} primitive results in four lists being constructed of which one is used in the second pass. The fact that -some automatic styles are not yet known also means that the \lpr {mathstyle} +some automatic styles are not yet known also means that the \prm {mathstyle} primitive expands to the current style which can of course be different from the one really used. It's a snapshot of the first pass state. As a consequence in the following example you get a style number (first pass) typeset that can actually @@ -244,27 +244,27 @@ Using \prm {begingroup} \unknown\ \prm {endgroup} instead gives: \blank $\displaystyle \getbuffer[2]$ \blank \blank $\textstyle \getbuffer[2]$ \blank -This might look wrong but it's just a side effect of \lpr {mathstyle} expanding +This might look wrong but it's just a side effect of \prm {mathstyle} expanding to the current (first pass) style and the number being injected in the list that gets converted in the second pass. It all makes sense and it illustrates the importance of grouping. In fact, the math choice style being effective afterwards has advantages. It would be hard to get it otherwise. -\subsection{\lpr {Ustack}} +\subsection{\prm {Ustack}} \topicindex {math+stacks} There are a few math commands in \TEX\ where the style that will be used is not known straight from the start. These commands (\prm {over}, \prm {atop}, \prm {overwithdelims}, \prm {atopwithdelims}) would therefore normally return -wrong values for \lpr {mathstyle}. To fix this, \LUATEX\ introduces a special -prefix command: \lpr {Ustack}: +wrong values for \prm {mathstyle}. To fix this, \LUATEX\ introduces a special +prefix command: \prm {Ustack}: \starttyping $\Ustack {a \over b}$ \stoptyping -The \lpr {Ustack} command will scan the next brace and start a new math group +The \prm {Ustack} command will scan the next brace and start a new math group with the correct (numerator) math style. \subsection{The new \type {\cramped...style} commands} @@ -312,7 +312,7 @@ are described as follows: In \LUATEX\ one can set the styles in more detail which means that you sometimes have to set both normal and cramped styles to get the effect you want. (Even) if -we force styles in the script using \prm {scriptstyle} and \lpr +we force styles in the script using \prm {scriptstyle} and \prm {crampedscriptstyle} we get this: \startbuffer[demo] @@ -360,7 +360,7 @@ Now we get: \startsection[title={Math parameter settings}] -\subsection {Many new \lpr {Umath*} primitives} +\subsection {Many new \tex {Umath*} primitives} \topicindex {math+parameters} @@ -371,62 +371,62 @@ has resulted in turning some hard codes properties into parameters. \starttabulate \DB primitive name \BC description \NC \NR \TB -\NC \lpr {Umathquad} \NC the width of 18 mu's \NC \NR -\NC \lpr {Umathaxis} \NC height of the vertical center axis of +\NC \prm {Umathquad} \NC the width of 18 mu's \NC \NR +\NC \prm {Umathaxis} \NC height of the vertical center axis of the math formula above the baseline \NC \NR -\NC \lpr {Umathoperatorsize} \NC minimum size of large operators in display mode \NC \NR -\NC \lpr {Umathoverbarkern} \NC vertical clearance above the rule \NC \NR -\NC \lpr {Umathoverbarrule} \NC the width of the rule \NC \NR -\NC \lpr {Umathoverbarvgap} \NC vertical clearance below the rule \NC \NR -\NC \lpr {Umathunderbarkern} \NC vertical clearance below the rule \NC \NR -\NC \lpr {Umathunderbarrule} \NC the width of the rule \NC \NR -\NC \lpr {Umathunderbarvgap} \NC vertical clearance above the rule \NC \NR -\NC \lpr {Umathradicalkern} \NC vertical clearance above the rule \NC \NR -\NC \lpr {Umathradicalrule} \NC the width of the rule \NC \NR -\NC \lpr {Umathradicalvgap} \NC vertical clearance below the rule \NC \NR -\NC \lpr {Umathradicaldegreebefore}\NC the forward kern that takes place before placement of +\NC \prm {Umathoperatorsize} \NC minimum size of large operators in display mode \NC \NR +\NC \prm {Umathoverbarkern} \NC vertical clearance above the rule \NC \NR +\NC \prm {Umathoverbarrule} \NC the width of the rule \NC \NR +\NC \prm {Umathoverbarvgap} \NC vertical clearance below the rule \NC \NR +\NC \prm {Umathunderbarkern} \NC vertical clearance below the rule \NC \NR +\NC \prm {Umathunderbarrule} \NC the width of the rule \NC \NR +\NC \prm {Umathunderbarvgap} \NC vertical clearance above the rule \NC \NR +\NC \prm {Umathradicalkern} \NC vertical clearance above the rule \NC \NR +\NC \prm {Umathradicalrule} \NC the width of the rule \NC \NR +\NC \prm {Umathradicalvgap} \NC vertical clearance below the rule \NC \NR +\NC \prm {Umathradicaldegreebefore}\NC the forward kern that takes place before placement of the radical degree \NC \NR -\NC \lpr {Umathradicaldegreeafter} \NC the backward kern that takes place after placement of +\NC \prm {Umathradicaldegreeafter} \NC the backward kern that takes place after placement of the radical degree \NC \NR -\NC \lpr {Umathradicaldegreeraise} \NC this is the percentage of the total height and depth of +\NC \prm {Umathradicaldegreeraise} \NC this is the percentage of the total height and depth of the radical sign that the degree is raised by; it is expressed in \type {percents}, so 60\% is expressed as the integer $60$ \NC \NR -\NC \lpr {Umathstackvgap} \NC vertical clearance between the two +\NC \prm {Umathstackvgap} \NC vertical clearance between the two elements in an \prm {atop} stack \NC \NR -\NC \lpr {Umathstacknumup} \NC numerator shift upward in \prm {atop} stack \NC \NR -\NC \lpr {Umathstackdenomdown} \NC denominator shift downward in \prm {atop} stack \NC \NR -\NC \lpr {Umathfractionrule} \NC the width of the rule in a \prm {over} \NC \NR -\NC \lpr {Umathfractionnumvgap} \NC vertical clearance between the numerator and the rule \NC \NR -\NC \lpr {Umathfractionnumup} \NC numerator shift upward in \prm {over} \NC \NR -\NC \lpr {Umathfractiondenomvgap} \NC vertical clearance between the denominator and the rule \NC \NR -\NC \lpr {Umathfractiondenomdown} \NC denominator shift downward in \prm {over} \NC \NR -\NC \lpr {Umathfractiondelsize} \NC minimum delimiter size for \type {\...withdelims} \NC \NR -\NC \lpr {Umathlimitabovevgap} \NC vertical clearance for limits above operators \NC \NR -\NC \lpr {Umathlimitabovebgap} \NC vertical baseline clearance for limits above operators \NC \NR -\NC \lpr {Umathlimitabovekern} \NC space reserved at the top of the limit \NC \NR -\NC \lpr {Umathlimitbelowvgap} \NC vertical clearance for limits below operators \NC \NR -\NC \lpr {Umathlimitbelowbgap} \NC vertical baseline clearance for limits below operators \NC \NR -\NC \lpr {Umathlimitbelowkern} \NC space reserved at the bottom of the limit \NC \NR -\NC \lpr {Umathoverdelimitervgap} \NC vertical clearance for limits above delimiters \NC \NR -\NC \lpr {Umathoverdelimiterbgap} \NC vertical baseline clearance for limits above delimiters \NC \NR -\NC \lpr {Umathunderdelimitervgap} \NC vertical clearance for limits below delimiters \NC \NR -\NC \lpr {Umathunderdelimiterbgap} \NC vertical baseline clearance for limits below delimiters \NC \NR -\NC \lpr {Umathsubshiftdrop} \NC subscript drop for boxes and subformulas \NC \NR -\NC \lpr {Umathsubshiftdown} \NC subscript drop for characters \NC \NR -\NC \lpr {Umathsupshiftdrop} \NC superscript drop (raise, actually) for boxes and subformulas \NC \NR -\NC \lpr {Umathsupshiftup} \NC superscript raise for characters \NC \NR -\NC \lpr {Umathsubsupshiftdown} \NC subscript drop in the presence of a superscript \NC \NR -\NC \lpr {Umathsubtopmax} \NC the top of standalone subscripts cannot be higher than this +\NC \prm {Umathstacknumup} \NC numerator shift upward in \prm {atop} stack \NC \NR +\NC \prm {Umathstackdenomdown} \NC denominator shift downward in \prm {atop} stack \NC \NR +\NC \prm {Umathfractionrule} \NC the width of the rule in a \prm {over} \NC \NR +\NC \prm {Umathfractionnumvgap} \NC vertical clearance between the numerator and the rule \NC \NR +\NC \prm {Umathfractionnumup} \NC numerator shift upward in \prm {over} \NC \NR +\NC \prm {Umathfractiondenomvgap} \NC vertical clearance between the denominator and the rule \NC \NR +\NC \prm {Umathfractiondenomdown} \NC denominator shift downward in \prm {over} \NC \NR +\NC \prm {Umathfractiondelsize} \NC minimum delimiter size for \type {\...withdelims} \NC \NR +\NC \prm {Umathlimitabovevgap} \NC vertical clearance for limits above operators \NC \NR +\NC \prm {Umathlimitabovebgap} \NC vertical baseline clearance for limits above operators \NC \NR +\NC \prm {Umathlimitabovekern} \NC space reserved at the top of the limit \NC \NR +\NC \prm {Umathlimitbelowvgap} \NC vertical clearance for limits below operators \NC \NR +\NC \prm {Umathlimitbelowbgap} \NC vertical baseline clearance for limits below operators \NC \NR +\NC \prm {Umathlimitbelowkern} \NC space reserved at the bottom of the limit \NC \NR +\NC \prm {Umathoverdelimitervgap} \NC vertical clearance for limits above delimiters \NC \NR +\NC \prm {Umathoverdelimiterbgap} \NC vertical baseline clearance for limits above delimiters \NC \NR +\NC \prm {Umathunderdelimitervgap} \NC vertical clearance for limits below delimiters \NC \NR +\NC \prm {Umathunderdelimiterbgap} \NC vertical baseline clearance for limits below delimiters \NC \NR +\NC \prm {Umathsubshiftdrop} \NC subscript drop for boxes and subformulas \NC \NR +\NC \prm {Umathsubshiftdown} \NC subscript drop for characters \NC \NR +\NC \prm {Umathsupshiftdrop} \NC superscript drop (raise, actually) for boxes and subformulas \NC \NR +\NC \prm {Umathsupshiftup} \NC superscript raise for characters \NC \NR +\NC \prm {Umathsubsupshiftdown} \NC subscript drop in the presence of a superscript \NC \NR +\NC \prm {Umathsubtopmax} \NC the top of standalone subscripts cannot be higher than this above the baseline \NC \NR -\NC \lpr {Umathsupbottommin} \NC the bottom of standalone superscripts cannot be less than +\NC \prm {Umathsupbottommin} \NC the bottom of standalone superscripts cannot be less than this above the baseline \NC \NR -\NC \lpr {Umathsupsubbottommax} \NC the bottom of the superscript of a combined super- and subscript +\NC \prm {Umathsupsubbottommax} \NC the bottom of the superscript of a combined super- and subscript be at least as high as this above the baseline \NC \NR -\NC \lpr {Umathsubsupvgap} \NC vertical clearance between super- and subscript \NC \NR -\NC \lpr {Umathspacebeforescript} \NC additional space added before a super- or subprescript (bonus setting) \NC \NR -\NC \lpr {Umathspaceafterscript} \NC additional space added after a super- or subscript \NC \NR -\NC \lpr {Umathconnectoroverlapmin}\NC minimum overlap between parts in an extensible recipe \NC \NR +\NC \prm {Umathsubsupvgap} \NC vertical clearance between super- and subscript \NC \NR +\NC \prm {Umathspacebeforescript} \NC additional space added before a super- or subprescript (bonus setting) \NC \NR +\NC \prm {Umathspaceafterscript} \NC additional space added after a super- or subscript \NC \NR +\NC \prm {Umathconnectoroverlapmin}\NC minimum overlap between parts in an extensible recipe \NC \NR \LL \stoptabulate @@ -533,39 +533,39 @@ dimension parameter. For math fonts, this should be set to zero. \LL \stoptabulate -Note 1: \OPENTYPE\ fonts set \lpr {Umathlimitabovekern} and \lpr -{Umathlimitbelowkern} to zero and set \lpr {Umathquad} to the font size of the +Note 1: \OPENTYPE\ fonts set \prm {Umathlimitabovekern} and \prm +{Umathlimitbelowkern} to zero and set \prm {Umathquad} to the font size of the used font, because these are not supported in the \type {MATH} table, -Note 2: Traditional \TFM\ fonts do not set \lpr {Umathradicalrule} because +Note 2: Traditional \TFM\ fonts do not set \prm {Umathradicalrule} because \TEX82\ uses the height of the radical instead. When this parameter is indeed not set when \LUATEX\ has to typeset a radical, a backward compatibility mode will kick in that assumes that an oldstyle \TEX\ font is used. Also, they do not set -\lpr {Umathradicaldegreebefore}, \lpr {Umathradicaldegreeafter}, and \lpr +\prm {Umathradicaldegreebefore}, \prm {Umathradicaldegreeafter}, and \prm {Umathradicaldegreeraise}. These are then automatically initialized to $5/18$quad, $-10/18$quad, and 60. -Note 3: If \TFM\ fonts are used, then the \lpr {Umathradicalvgap} is not set +Note 3: If \TFM\ fonts are used, then the \prm {Umathradicalvgap} is not set until the first time \LUATEX\ has to typeset a formula because this needs parameters from both family~2 and family~3. This provides a partial backward -compatibility with \TEX82, but that compatibility is only partial: once the \lpr +compatibility with \TEX82, but that compatibility is only partial: once the \prm {Umathradicalvgap} is set, it will not be recalculated any more. -Note 4: When \TFM\ fonts are used a similar situation arises with respect to \lpr +Note 4: When \TFM\ fonts are used a similar situation arises with respect to \prm {Umathspaceafterscript}: it is not set until the first time \LUATEX\ has to typeset a formula. This provides some backward compatibility with \TEX82. But -once the \lpr {Umathspaceafterscript} is set, \prm {scriptspace} will never be +once the \prm {Umathspaceafterscript} is set, \prm {scriptspace} will never be looked at again. -Note 5: Traditional \TFM\ fonts set \lpr {Umathconnectoroverlapmin} to zero +Note 5: Traditional \TFM\ fonts set \prm {Umathconnectoroverlapmin} to zero because \TEX82\ always stacks extensibles without any overlap. -Note 6: The \lpr {Umathoperatorsize} is only used in \prm {displaystyle}, and is +Note 6: The \prm {Umathoperatorsize} is only used in \prm {displaystyle}, and is only set in \OPENTYPE\ fonts. In \TFM\ font mode, it is artificially set to one scaled point more than the initial attempt's size, so that always the \quote {first next} will be tried, just like in \TEX82. -Note 7: The \lpr {Umathradicaldegreeraise} is a special case because it is the +Note 7: The \prm {Umathradicaldegreeraise} is a special case because it is the only parameter that is expressed in a percentage instead of a number of scaled points. @@ -581,16 +581,16 @@ math font Cambria, but were useful enough to be added. \startsection[title={Math spacing}] -\subsection{Setting inline surrounding space with \lpr {mathsurround[skip]}} +\subsection{Setting inline surrounding space with \prm {mathsurround} and \prm {mathsurroundskip}} \topicindex {math+spacing} Inline math is surrounded by (optional) \prm {mathsurround} spacing but that is a fixed -dimension. There is now an additional parameter \lpr {mathsurroundskip}. When set to a +dimension. There is now an additional parameter \prm {mathsurroundskip}. When set to a non|-|zero value (or zero with some stretch or shrink) this parameter will replace \prm {mathsurround}. By using an additional parameter instead of changing the nature of \prm {mathsurround}, we can remain compatible. In the meantime a bit more -control has been added via \lpr {mathsurroundmode}. This directive can take 6 values +control has been added via \prm {mathsurroundmode}. This directive can take 6 values with zero being the default behaviour. \start @@ -614,14 +614,14 @@ with zero being the default behaviour. \starttabulate[|c|c|c|pl|] \DB mode \BC x\$x\$x \BC x \$x\$ x \BC effect \NC \NR \TB -\OneLiner{0}{obey \prm {mathsurround} when \lpr {mathsurroundskip} is 0pt} +\OneLiner{0}{obey \prm {mathsurround} when \prm {mathsurroundskip} is 0pt} \OneLiner{1}{only add skip to the left} \OneLiner{2}{only add skip to the right} \OneLiner{3}{add skip to the left and right} \OneLiner{4}{ignore the skip setting, obey \prm {mathsurround}} \OneLiner{5}{disable all spacing around math} -\OneLiner{6}{only apply \lpr {mathsurroundskip} when also spacing} -\OneLiner{7}{only apply \lpr {mathsurroundskip} when no spacing} +\OneLiner{6}{only apply \prm {mathsurroundskip} when also spacing} +\OneLiner{7}{only apply \prm {mathsurroundskip} when no spacing} \LL \stoptabulate @@ -637,7 +637,7 @@ node and not always treated as normal glue: it travels with the begin and end math nodes. Also, method 6 and 7 will zero the skip related fields in a node when applicable in the first occasion that checks them (linebreaking or packaging). -\subsection{Pairwise spacing and \lpr {Umath...spacing} commands} +\subsection{Pairwise spacing and \tex {Umath...spacing} commands} \topicindex {math+spacing} @@ -648,70 +648,70 @@ types, but for completeness' sake, here is the whole list: \starttwocolumns \startlines -\lpr {Umathordordspacing} -\lpr {Umathordopspacing} -\lpr {Umathordbinspacing} -\lpr {Umathordrelspacing} -\lpr {Umathordopenspacing} -\lpr {Umathordclosespacing} -\lpr {Umathordpunctspacing} -\lpr {Umathordinnerspacing} -\lpr {Umathopordspacing} -\lpr {Umathopopspacing} -\lpr {Umathopbinspacing} -\lpr {Umathoprelspacing} -\lpr {Umathopopenspacing} -\lpr {Umathopclosespacing} -\lpr {Umathoppunctspacing} -\lpr {Umathopinnerspacing} -\lpr {Umathbinordspacing} -\lpr {Umathbinopspacing} -\lpr {Umathbinbinspacing} -\lpr {Umathbinrelspacing} -\lpr {Umathbinopenspacing} -\lpr {Umathbinclosespacing} -\lpr {Umathbinpunctspacing} -\lpr {Umathbininnerspacing} -\lpr {Umathrelordspacing} -\lpr {Umathrelopspacing} -\lpr {Umathrelbinspacing} -\lpr {Umathrelrelspacing} -\lpr {Umathrelopenspacing} -\lpr {Umathrelclosespacing} -\lpr {Umathrelpunctspacing} -\lpr {Umathrelinnerspacing} -\lpr {Umathopenordspacing} -\lpr {Umathopenopspacing} -\lpr {Umathopenbinspacing} -\lpr {Umathopenrelspacing} -\lpr {Umathopenopenspacing} -\lpr {Umathopenclosespacing} -\lpr {Umathopenpunctspacing} -\lpr {Umathopeninnerspacing} -\lpr {Umathcloseordspacing} -\lpr {Umathcloseopspacing} -\lpr {Umathclosebinspacing} -\lpr {Umathcloserelspacing} -\lpr {Umathcloseopenspacing} -\lpr {Umathcloseclosespacing} -\lpr {Umathclosepunctspacing} -\lpr {Umathcloseinnerspacing} -\lpr {Umathpunctordspacing} -\lpr {Umathpunctopspacing} -\lpr {Umathpunctbinspacing} -\lpr {Umathpunctrelspacing} -\lpr {Umathpunctopenspacing} -\lpr {Umathpunctclosespacing} -\lpr {Umathpunctpunctspacing} -\lpr {Umathpunctinnerspacing} -\lpr {Umathinnerordspacing} -\lpr {Umathinneropspacing} -\lpr {Umathinnerbinspacing} -\lpr {Umathinnerrelspacing} -\lpr {Umathinneropenspacing} -\lpr {Umathinnerclosespacing} -\lpr {Umathinnerpunctspacing} -\lpr {Umathinnerinnerspacing} +\prm {Umathordordspacing} +\prm {Umathordopspacing} +\prm {Umathordbinspacing} +\prm {Umathordrelspacing} +\prm {Umathordopenspacing} +\prm {Umathordclosespacing} +\prm {Umathordpunctspacing} +\prm {Umathordinnerspacing} +\prm {Umathopordspacing} +\prm {Umathopopspacing} +\prm {Umathopbinspacing} +\prm {Umathoprelspacing} +\prm {Umathopopenspacing} +\prm {Umathopclosespacing} +\prm {Umathoppunctspacing} +\prm {Umathopinnerspacing} +\prm {Umathbinordspacing} +\prm {Umathbinopspacing} +\prm {Umathbinbinspacing} +\prm {Umathbinrelspacing} +\prm {Umathbinopenspacing} +\prm {Umathbinclosespacing} +\prm {Umathbinpunctspacing} +\prm {Umathbininnerspacing} +\prm {Umathrelordspacing} +\prm {Umathrelopspacing} +\prm {Umathrelbinspacing} +\prm {Umathrelrelspacing} +\prm {Umathrelopenspacing} +\prm {Umathrelclosespacing} +\prm {Umathrelpunctspacing} +\prm {Umathrelinnerspacing} +\prm {Umathopenordspacing} +\prm {Umathopenopspacing} +\prm {Umathopenbinspacing} +\prm {Umathopenrelspacing} +\prm {Umathopenopenspacing} +\prm {Umathopenclosespacing} +\prm {Umathopenpunctspacing} +\prm {Umathopeninnerspacing} +\prm {Umathcloseordspacing} +\prm {Umathcloseopspacing} +\prm {Umathclosebinspacing} +\prm {Umathcloserelspacing} +\prm {Umathcloseopenspacing} +\prm {Umathcloseclosespacing} +\prm {Umathclosepunctspacing} +\prm {Umathcloseinnerspacing} +\prm {Umathpunctordspacing} +\prm {Umathpunctopspacing} +\prm {Umathpunctbinspacing} +\prm {Umathpunctrelspacing} +\prm {Umathpunctopenspacing} +\prm {Umathpunctclosespacing} +\prm {Umathpunctpunctspacing} +\prm {Umathpunctinnerspacing} +\prm {Umathinnerordspacing} +\prm {Umathinneropspacing} +\prm {Umathinnerbinspacing} +\prm {Umathinnerrelspacing} +\prm {Umathinneropenspacing} +\prm {Umathinnerclosespacing} +\prm {Umathinnerpunctspacing} +\prm {Umathinnerinnerspacing} \stoplines \stoptwocolumns @@ -736,7 +736,7 @@ marked \type {*} in the \TEX book. These will not actually be used as those combinations of atoms cannot actually happen, but it seemed better not to break orthogonality. They are initialized to zero. -\subsection{Local \lpr {frozen} settings with} +\subsection{Local \prm {frozen} settings with} Math is processed in two passes. The first pass is needed to intercept for instance \type {\over}, one of the few \TEX\ commands that actually has a @@ -777,12 +777,12 @@ unprocessed math list. The result looks as follows: \blank \getbuffer \blank -\subsection{Checking a state with \lpr {ifmathparameter}} +\subsection{Checking a state with \prm {ifmathparameter}} When you adapt math parameters it might make sense to see if they are set at all. When a parameter is unset its value has the maximum dimension value and you might for instance mistakenly multiply that value to open up things a bit, which gives -unexpected side effects. For that reason there is a convenient checker: \lpr +unexpected side effects. For that reason there is a convenient checker: \prm {ifmathparameter}. This test primitive behaves like an \prm {ifcase}, with: \starttabulate[|c|l|] @@ -794,14 +794,14 @@ unexpected side effects. For that reason there is a convenient checker: \lpr \LL \stoptabulate -\subsection{Skips around display math and \lpr {mathdisplayskipmode}} +\subsection{Skips around display math and \prm {mathdisplayskipmode}} \topicindex {math+spacing} The injection of \prm {abovedisplayskip} and \prm {belowdisplayskip} is not symmetrical. An above one is always inserted, also when zero, but the below is only inserted when larger than zero. Especially the latter makes it sometimes hard -to fully control spacing. Therefore \LUATEX\ comes with a new directive: \lpr +to fully control spacing. Therefore \LUATEX\ comes with a new directive: \prm {mathdisplayskipmode}. The following values apply: \starttabulate[|c|l|] @@ -814,14 +814,14 @@ to fully control spacing. Therefore \LUATEX\ comes with a new directive: \lpr \LL \stoptabulate -\subsection {Nolimit correction with \lpr {mathnolimitsmode}} +\subsection {Nolimit correction with \prm {mathnolimitsmode}} \topicindex {math+limits} -There are two extra math parameters \lpr {Umathnolimitsupfactor} and \lpr +There are two extra math parameters \prm {Umathnolimitsupfactor} and \prm {Umathnolimitsubfactor} that were added to provide some control over how limits are spaced (for example the position of super and subscripts after integral -operators). They relate to an extra parameter \lpr {mathnolimitsmode}. The half +operators). They relate to an extra parameter \prm {mathnolimitsmode}. The half corrections are what happens when scripts are placed above and below. The problem with italic corrections is that officially that correction italic is used for above|/|below placement while advanced kerns are used for placement at the @@ -868,15 +868,15 @@ When the mode is set to one, the math parameters are used. This way a macro package writer can decide what looks best. Given the current state of fonts in \CONTEXT\ we currently use mode 1 with factor 0 for the superscript and 750 for the subscripts. Positive values are used for both parameters but the subscript -shifts to the left. A \lpr {mathnolimitsmode} larger that 15 is considered to +shifts to the left. A \prm {mathnolimitsmode} larger that 15 is considered to be a factor for the subscript correction. This feature can be handy when experimenting. -\subsection {Controlling math italic mess with \lpr {mathitalicsmode}} +\subsection {Controlling math italic mess with \prm {mathitalicsmode}} \topicindex {math+italics} -The \lpr {mathitalicsmode} parameter can be set to~1 to force italic correction +The \prm {mathitalicsmode} parameter can be set to~1 to force italic correction before noads that represent some more complex structure (read: everything that is not an ord, bin, rel, open, close, punct or inner). We show a Cambria example. @@ -902,7 +902,7 @@ example. This kind of parameters relate to the fact that italic correction in \OPENTYPE\ math is bound to fuzzy rules. So, control is the solution. -\subsection {Influencing script kerning with \lpr {mathscriptboxmode}} +\subsection {Influencing script kerning with \prm {mathscriptboxmode}} \topicindex {math+kerning} \topicindex {math+scripts} @@ -911,7 +911,7 @@ If you want to typeset text in math macro packages often provide something \type {\text} which obeys the script sizes. As the definition can be anything there is a good chance that the kerning doesn't come out well when used in a script. Given that the first glyph ends up in an \prm {hbox} we have some control over this. -And, as a bonus we also added control over the normal sublist kerning. The \lpr +And, as a bonus we also added control over the normal sublist kerning. The \prm {mathscriptboxmode} parameter defaults to~1. \starttabulate[|c|l|] @@ -957,7 +957,7 @@ italics, while other fonts can lack kerns. \NC dejavu \NC \Show{1}{0}{dejavu} \NC\Show{1}{1}{dejavu} \NC \Show{2}{1}{dejavu} \NC \Show{2}{2}{dejavu} \NC \Show{3}{3}{dejavu} \NC \NR \stoptabulate -Kerning between a character subscript is controlled by \lpr {mathscriptcharmode} +Kerning between a character subscript is controlled by \prm {mathscriptcharmode} which also defaults to~1. Here is another example. Internally we tag kerns as italic kerns or font kerns @@ -990,19 +990,19 @@ control over what one can turn on and off. \LL \stoptabulate -\subsection{Forcing fixed scripts with \lpr {mathscriptsmode}} +\subsection{Forcing fixed scripts with \prm {mathscriptsmode}} We have three parameters that are used for this fixed anchoring: \starttabulate[|c|l|] \DB parameter \BC register \NC \NR -\NC $d$ \NC \lpr {Umathsubshiftdown} \NC \NR -\NC $u$ \NC \lpr {Umathsupshiftup} \NC \NR -\NC $s$ \NC \lpr {Umathsubsupshiftdown} \NC \NR +\NC $d$ \NC \prm {Umathsubshiftdown} \NC \NR +\NC $u$ \NC \prm {Umathsupshiftup} \NC \NR +\NC $s$ \NC \prm {Umathsubsupshiftdown} \NC \NR \LL \stoptabulate -When we set \lpr {mathscriptsmode} to a value other than zero these are used +When we set \prm {mathscriptsmode} to a value other than zero these are used for calculating fixed positions. This is something that is needed for instance for chemistry. You can manipulate the mentioned variables to achieve different effects. @@ -1027,7 +1027,7 @@ formula. % if needed we can put the value in stylenodes but maybe more should go there -\subsection{Penalties: \lpr {mathpenaltiesmode}} +\subsection{Penalties: \prm {mathpenaltiesmode}} \topicindex {math+penalties} @@ -1051,7 +1051,7 @@ makes sense. As a bonus we also provide two extra penalties: They default to inifinite which signals that they don't need to be inserted. When set they are injected before a binop or rel noad. This is an experimental feature. -\subsection{Equation spacing: \lpr {matheqnogapstep}} +\subsection{Equation spacing: \prm {matheqnogapstep}} By default \TEX\ will add one quad between the equation and the number. This is hard coded. A new primitive can control this: @@ -1069,17 +1069,17 @@ is divided by 1000 which is the usual way to mimmick floating point factors in \startsection[title={Math constructs}] -\subsection {Unscaled fences and \lpr{mathdelimitersmode}} +\subsection {Unscaled fences and \prm{mathdelimitersmode}} \topicindex {math+fences} -The \lpr {mathdelimitersmode} primitive is experimental and deals with the +The \prm {mathdelimitersmode} primitive is experimental and deals with the following (potential) problems. Three bits can be set. The first bit prevents an unwanted shift when the fence symbol is not scaled (a cambria side effect). The second bit forces italic correction between a preceding character ordinal and the fenced subformula, while the third bit turns that subformula into an ordinary so that the same spacing applies as with unfenced variants. Here we show Cambria -(with \lpr {mathitalicsmode} enabled). +(with \prm {mathitalicsmode} enabled). \starttexdefinition Whatever #1 \NC \type{\mathdelimitersmode = #1} @@ -1142,16 +1142,16 @@ In typeset form this looks like: \getbuffer -\subsection[mathacc]{Accent handling with \lpr {Umathaccent}} +\subsection[mathacc]{Accent handling with \prm {Umathaccent}} \topicindex {math+accents} \LUATEX\ supports both top accents and bottom accents in math mode, and math accents stretch automatically (if this is supported by the font the accent comes from, of course). Bottom and combined accents as well as fixed-width math accents -are controlled by optional keywords following \lpr {Umathaccent}. +are controlled by optional keywords following \prm {Umathaccent}. -The keyword \type {bottom} after \lpr {Umathaccent} signals that a bottom accent +The keyword \type {bottom} after \prm {Umathaccent} signals that a bottom accent is needed, and the keyword \type {both} signals that both a top and a bottom accent are needed (in this case two accents need to be specified, of course). @@ -1191,20 +1191,20 @@ fraction only applies to the stepwise selected shapes and is mostly meant for th \type {overlay} location. It also works for the other locations but then it concerns the width. -\subsection{Building radicals with \lpr {Uradical} and \lpr {Uroot}} +\subsection{Building radicals with \prm {Uradical} and \prm {Uroot}} \topicindex {math+radicals} -The new primitive \lpr {Uroot} allows the construction of a radical noad -including a degree field. Its syntax is an extension of \lpr {Uradical}: +The new primitive \prm {Uroot} allows the construction of a radical noad +including a degree field. Its syntax is an extension of \prm {Uradical}: \starttyping \Uradical \Uroot \stoptyping -The placement of the degree is controlled by the math parameters \lpr -{Umathradicaldegreebefore}, \lpr {Umathradicaldegreeafter}, and \lpr +The placement of the degree is controlled by the math parameters \prm +{Umathradicaldegreebefore}, \prm {Umathradicaldegreeafter}, and \prm {Umathradicaldegreeraise}. The degree will be typeset in \prm {scriptscriptstyle}. @@ -1267,16 +1267,16 @@ next higher height and kern pair, or the highest one in the character (if there value high enough in the character), or simply zero (if the character has no math kern pairs at all). -\subsection{Scripts on extensibles: \lpr {Uunderdelimiter}, \lpr {Uoverdelimiter}, -\lpr {Udelimiterover}, \lpr {Udelimiterunder} and \lpr {Uhextensible}} +\subsection{Scripts on extensibles: \prm {Uunderdelimiter}, \prm {Uoverdelimiter}, +\prm {Udelimiterover}, \prm {Udelimiterunder} and \prm {Uhextensible}} \topicindex {math+scripts} \topicindex {math+delimiters} \topicindex {math+extensibles} -The primitives \lpr {Uunderdelimiter} and \lpr {Uoverdelimiter} allow the +The primitives \prm {Uunderdelimiter} and \prm {Uoverdelimiter} allow the placement of a subscript or superscript on an automatically extensible item and -\lpr {Udelimiterunder} and \lpr {Udelimiterover} allow the placement of an +\prm {Udelimiterunder} and \prm {Udelimiterover} allow the placement of an automatically extensible item as a subscript or superscript on a nucleus. The input: @@ -1294,18 +1294,18 @@ $\Udelimiterunder 0 "2194 {\hbox{\strut delimiterunder}}$ \blank \startnarrower \getbuffer \stopnarrower \blank -The vertical placements are controlled by \lpr {Umathunderdelimiterbgap}, \lpr -{Umathunderdelimitervgap}, \lpr {Umathoverdelimiterbgap}, and \lpr +The vertical placements are controlled by \prm {Umathunderdelimiterbgap}, \prm +{Umathunderdelimitervgap}, \prm {Umathoverdelimiterbgap}, and \prm {Umathoverdelimitervgap} in a similar way as limit placements on large operators. -The superscript in \lpr {Uoverdelimiter} is typeset in a suitable scripted style, -the subscript in \lpr {Uunderdelimiter} is cramped as well. +The superscript in \prm {Uoverdelimiter} is typeset in a suitable scripted style, +the subscript in \prm {Uunderdelimiter} is cramped as well. These primitives accepts an optional \type {width} specification. When used the also optional keywords \type {left}, \type {middle} and \type {right} will determine what happens when a requested size can't be met (which can happen when we step to successive larger variants). -An extra primitive \lpr {Uhextensible} is available that can be used like this: +An extra primitive \prm {Uhextensible} is available that can be used like this: \startbuffer $\Uhextensible width 10cm 0 "2194$ @@ -1330,7 +1330,7 @@ $\Uhextensible width 1pt middle 0 "2194$ font metrics are involved we have a different code path for traditional fonts end \OPENTYPE\ fonts. -\subsection{Fractions and the new \lpr {Uskewed} and \lpr {Uskewedwithdelims}} +\subsection{Fractions and the new \prm {Uskewed} and \prm {Uskewedwithdelims}} \topicindex {math+fractions} @@ -1348,7 +1348,7 @@ vertical gap for skewed fractions. Of course some guessing is needed in order to implement something that uses them. And so we now provide a primitive similar to the other fraction related ones but with a few options so that one can influence the rendering. Of course a user can also mess around a bit with the parameters -\lpr {Umathskewedfractionhgap} and \lpr {Umathskewedfractionvgap}. +\prm {Umathskewedfractionhgap} and \prm {Umathskewedfractionvgap}. The syntax used here is: @@ -1414,9 +1414,9 @@ The optional arguments are also supported but we have one extra option: \type \Uover style \scriptstyle {top} {bottom} \stoptyping -The complete list of these commands is: \lpr {Uabove}, \lpr {Uatop}, \lpr -{Uover}, \lpr {Uabovewithdelims}, \lpr {Uatopwithdelims}, \lpr {Uoverwithdelims}, -\lpr {UUskewed}, \lpr {UUskewedwithdelims}. As with other extensions we use a +The complete list of these commands is: \prm {Uabove}, \prm {Uatop}, \prm +{Uover}, \prm {Uabovewithdelims}, \prm {Uatopwithdelims}, \prm {Uoverwithdelims}, +\prm {UUskewed}, \prm {UUskewedwithdelims}. As with other extensions we use a leading \type {U} and because we already had extra skew related primitives we end up with a \type {UU} there. This obscurity is not that big an issue because normally such primitives are wrapped in a macro. Here are a few examples: @@ -1437,7 +1437,7 @@ $\Uover style \scriptscriptstyle {1234} {5678} $\blank These render as: \getbuffer -\subsection {Math styles: \lpr {Ustyle}} +\subsection {Math styles: \prm {Ustyle}} This primitive accepts a style identifier: @@ -1453,7 +1453,7 @@ This in itself is not spectacular because it is equivalent to Both commands inject a style node and change the current style. However, as in other places where \LUAMETATEX\ expects a style you can also pass a number in the range -zero upto seven (like the ones reported by the primitive \lpr {mathstyle}). So, the +zero upto seven (like the ones reported by the primitive \prm {mathstyle}). So, the next few lines give identical results: \startbuffer @@ -1467,7 +1467,7 @@ Like: \inlinebuffer . Values outside the valid range are ignored. There is an extra option \type {norule} that can be used to suppress the rule while keeping the spacing compatible. -\subsection {Delimiters: \type{\Uleft}, \lpr {Umiddle} and \lpr {Uright}} +\subsection {Delimiters: \type{\Uleft}, \prm {Umiddle} and \prm {Uright}} \topicindex {math+delimiters} @@ -1520,8 +1520,8 @@ non|-|zero value. \startsection[title={Extracting values}] -\subsection{Codes and using \lpr {Umathcode}, \lpr {Umathcharclass}, \lpr -{Umathcharfam} and \lpr {Umathcharslot}} +\subsection{Codes and using \prm {Umathcode}, \prm {Umathcharclass}, \prm +{Umathcharfam} and \prm {Umathcharslot}} \topicindex {math+codes} @@ -1558,7 +1558,7 @@ do the following: \relax} \stoptyping -\subsection {Last lines and \lpr{predisplaygapfactor}} +\subsection {Last lines and \prm{predisplaygapfactor}} \topicindex {math+last line} @@ -1586,8 +1586,8 @@ get the length of the last line, the following will often work too: \startsection[title={Math mode}] -\subsection {Verbose versions of single|-|character math commands like \lpr {Usuperscript} -and \lpr {Usubscript}} +\subsection {Verbose versions of single|-|character math commands like \prm {Usuperscript} +and \prm {Usubscript}} \topicindex {math+styles} @@ -1597,24 +1597,24 @@ and \lpr {Usubscript}} \starttabulate[|l|l|] \DB primitive \BC explanation \NC \NR \TB -\NC \lpr {Usuperscript} \NC duplicates the functionality of \type {^} \NC \NR -\NC \lpr {Usubscript} \NC duplicates the functionality of \type {_} \NC \NR -\NC \lpr {Ustartmath} \NC duplicates the functionality of \type {$}, % $ +\NC \prm {Usuperscript} \NC duplicates the functionality of \type {^} \NC \NR +\NC \prm {Usubscript} \NC duplicates the functionality of \type {_} \NC \NR +\NC \prm {Ustartmath} \NC duplicates the functionality of \type {$}, % $ when used in non-math mode. \NC \NR -\NC \lpr {Ustopmath} \NC duplicates the functionality of \type {$}, % $ +\NC \prm {Ustopmath} \NC duplicates the functionality of \type {$}, % $ when used in inline math mode. \NC \NR -\NC \lpr {Ustartdisplaymath} \NC duplicates the functionality of \type {$$}, % $$ +\NC \prm {Ustartdisplaymath} \NC duplicates the functionality of \type {$$}, % $$ when used in non-math mode. \NC \NR -\NC \lpr {Ustopdisplaymath} \NC duplicates the functionality of \type {$$}, % $$ +\NC \prm {Ustopdisplaymath} \NC duplicates the functionality of \type {$$}, % $$ when used in display math mode. \NC \NR \LL \stoptabulate -The \lpr {Ustopmath} and \lpr {Ustopdisplaymath} primitives check if the current +The \prm {Ustopmath} and \prm {Ustopdisplaymath} primitives check if the current math mode is the correct one (inline vs.\ displayed), but you can freely intermix the four mathon|/|mathoff commands with explicit dollar sign(s). -\subsection{Script commands \lpr {Unosuperscript} and \lpr {Unosubscript}} +\subsection{Script commands \prm {Unosuperscript} and \prm {Unosubscript}} \topicindex {math+styles} \topicindex {math+scripts} @@ -1640,8 +1640,8 @@ results in \inlinebuffer[script]. \topicindex {math+text} \topicindex {text+math} -The commands \prm {mathchar}, and \lpr {Umathchar} and control sequences that are -the result of \prm {mathchardef} or \lpr {Umathchardef} are also acceptable in +The commands \prm {mathchar}, and \prm {Umathchar} and control sequences that are +the result of \prm {mathchardef} or \prm {Umathchardef} are also acceptable in the horizontal and vertical modes. In those cases, the \prm {textfont} from the requested math family is used. @@ -1649,7 +1649,7 @@ requested math family is used. \startsection[title={Goodies}] -\subsection {Flattening: \lpr {mathflattenmode}} +\subsection {Flattening: \prm {mathflattenmode}} \topicindex {math+flattening} @@ -1669,7 +1669,7 @@ This renders as: \blank \start \mathflattenmode\plusone \getbuffer[sample] \stop \blank -When we set \lpr {mathflattenmode} to 31 we get: +When we set \prm {mathflattenmode} to 31 we get: \blank \start \mathflattenmode\numexpr1+2+4+8+16\relax \getbuffer[sample] \stop \blank @@ -1709,7 +1709,7 @@ There are a couple of experimental features. They will stay but details might change, for instance more control over spacing. We just show some examples and let your imagination work it out. First we have prescripts: -\subsection {Prescripts with \lpr {Usuperprescript} and {Usubprescript}} +\subsection {Prescripts with \prm {Usuperprescript} and {Usubprescript}} \startbuffer \hbox{$ @@ -1754,7 +1754,7 @@ These more verbose triggers can be used to build interfaces: \blank \getbuffer \blank -\subsection {Prescripts with \lpr {Usuperprescript} and {Usubprescript}} +\subsection {Prescripts with \prm {Usuperprescript} and {Usubprescript}} You can change the class of a math character on the fly: diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex b/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex index 3202f1ff6..cc08bc9c6 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex @@ -113,10 +113,10 @@ most still comes from original Knuthian \TEX. But we divert a bit. \stopitem \startitem - Because the backend is not built|-|in, the magnification (\prm {mag}) - primitive is gone. A \type {shipout} just discards the content of the given - box. The write related primitives have to be implemented in the used macro - package using \LUA. None of the \PDFTEX\ derived primitives is present. + Because the backend is not built|-|in, the magnification (\tex {mag}) + primitive is gone. A \tex {shipout} command just discards the content of the + given box. The write related primitives have to be implemented in the used + macro package using \LUA. None of the \PDFTEX\ derived primitives is present. \stopitem \startitem @@ -209,7 +209,7 @@ features, but with a few small adaptations. \stopitem \startitem - The \prm {readline} primitive has to be implemented in \LUA. This is a side + The \tex {readline} primitive has to be implemented in \LUA. This is a side effect of delegating all file \IO. \stopitem @@ -237,27 +237,27 @@ don't expect \LUAMETATEX\ to be compatible. \startitemize \startitem - The experimental primitives \lpr {ifabsnum} and \lpr {ifabsdim} have been + The experimental primitives \prm {ifabsnum} and \prm {ifabsdim} have been promoted to core primitives. \stopitem \startitem - The primitives \lpr {ifincsname}, \lpr {expanded} and \lpr {quitvmode} + The primitives \prm {ifincsname}, \prm {expanded} and \prm {quitvmode} have become core primitives. \stopitem \startitem As the hz (expansion) and protrusion mechanism are part of the core the - related primitives \lpr {lpcode}, \lpr {rpcode}, \lpr {efcode}, \lpr - {leftmarginkern}, \lpr {rightmarginkern} are promoted to core primitives. The - two commands \lpr {protrudechars} and \lpr {adjustspacing} control these + related primitives \prm {lpcode}, \prm {rpcode}, \prm {efcode}, \prm + {leftmarginkern}, \prm {rightmarginkern} are promoted to core primitives. The + two commands \prm {protrudechars} and \prm {adjustspacing} control these processes. \stopitem \startitem In \LUAMETATEX\ three extra primitives can be used to overload the font - specific settings: \lpr {adjustspacingstep} (max: 100), \lpr - {adjustspacingstretch} (max: 1000) and \lpr {adjustspacingshrink} (max: 500). + specific settings: \prm {adjustspacingstep} (max: 100), \prm + {adjustspacingstretch} (max: 1000) and \prm {adjustspacingshrink} (max: 500). \stopitem \startitem @@ -270,25 +270,25 @@ don't expect \LUAMETATEX\ to be compatible. \stopitem \startitem - When \lpr {adjustspacing} has value~2, hz optimization will be applied to + When \prm {adjustspacing} has value~2, hz optimization will be applied to glyphs and kerns. When the value is~3, only glyphs will be treated. A value smaller than~2 disables this feature. \stopitem \startitem - When \lpr {protrudechars} has a value larger than zero characters at the edge + When \prm {protrudechars} has a value larger than zero characters at the edge of a line can be made to hang out. A value of~2 will take the protrusion into account when breaking a paragraph into lines. A value of~3 will try to deal with right|-|to|-|left rendering; this is a still experimental feature. \stopitem \startitem - The pixel multiplier dimension \lpr {pxdimen} has be inherited as core + The pixel multiplier dimension \prm {pxdimen} has be inherited as core primitive. \stopitem \startitem - The primitive \lpr {tracingfonts} is now a core primitive but doesn't relate + The primitive \prm {tracingfonts} is now a core primitive but doesn't relate to the backend. \stopitem @@ -382,13 +382,13 @@ The Program mostly applies! \startsubsection[title=Sparse arrays] The \prm {mathcode}, \prm {delcode}, \prm {catcode}, \prm {sfcode}, \prm {lccode} -and \prm {uccode} (and the new \lpr {hjcode}) tables are now sparse arrays that +and \prm {uccode} (and the new \prm {hjcode}) tables are now sparse arrays that are implemented in~\CCODE. They are no longer part of the \TEX\ \quote {equivalence table} and because each had 1.1 million entries with a few memory words each, this makes a major difference in memory usage. Performance is not really hurt by this. -The \prm {catcode}, \prm {sfcode}, \prm {lccode}, \prm {uccode} and \lpr {hjcode} +The \prm {catcode}, \prm {sfcode}, \prm {lccode}, \prm {uccode} and \prm {hjcode} assignments don't show up when using the \ETEX\ tracing routines \prm {tracingassigns} and \prm {tracingrestores} but we don't see that as a real limitation. It also saves a lot of clutter. diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex b/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex index 189fe2173..a063de703 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex @@ -23,14 +23,6 @@ such a userdata object is represented as \syntax {}. \dontleavehmode {\bf The return values of \type {node.types} are:} \showtypes \blank -In \ETEX\ the \prm {lastnodetype} primitive has been introduced. With this -primitive the valid range of numbers is still $[-1,15]$ and glyph nodes (formerly -known as char nodes) have number~0. That way macro packages can use the same -symbolic names as in traditional \ETEX. But you need to keep in mind that these -\ETEX\ node numbers are different from the real internal ones. When you set \prm -{internalcodesmode} to a non|-|zero value, the internal codes will be used in -the \ETEX\ introspection commands \prm {lastnodetype} and \prm {currentiftype}. - You can ask for a list of fields with \type {node.fields} and for valid subtypes with \type {node.subtypes}. The \type {node.values} function reports some used values. Valid arguments are \type {glue}, \type {style} and \type {math}. Keep in @@ -133,9 +125,10 @@ more sense. \topicindex {nodes+rules} \topicindex {rules} -Contrary to traditional \TEX, \LUATEX\ has more \prm {rule} subtypes because we -also use rules to store reuseable objects and images. User nodes are invisible -and can be intercepted by a callback. The supported fields are \showfields {rule}. +Contrary to traditional \TEX, \LUATEX\ has more \prm {hrule} and \prm {vrule} +subtypes because we also use rules to store reuseable objects and images. User +nodes are invisible and can be intercepted by a callback. The supported fields +are \showfields {rule}. \starttabulate[|l|l|p|] \DB field \BC type \BC explanation \NC \NR @@ -539,13 +532,13 @@ too much with this one. Valid fields are: \showfields {par}. \DB field \BC type \BC explanation \NC \NR \TB \NC \type{attr} \NC node \NC list of attributes \NC \NR -\NC \type{pen_inter} \NC number \NC local interline penalty (from \lpr {localinterlinepenalty}) \NC \NR -\NC \type{pen_broken} \NC number \NC local broken penalty (from \lpr {localbrokenpenalty}) \NC \NR +\NC \type{pen_inter} \NC number \NC local interline penalty (from \prm {localinterlinepenalty}) \NC \NR +\NC \type{pen_broken} \NC number \NC local broken penalty (from \prm {localbrokenpenalty}) \NC \NR \NC \type{dir} \NC string \NC the direction of this par. see~\in [dirnodes] \NC \NR -\NC \type{box_left} \NC node \NC the \lpr {localleftbox} \NC \NR -\NC \type{box_left_width} \NC number \NC width of the \lpr {localleftbox} \NC \NR -\NC \type{box_right} \NC node \NC the \lpr {localrightbox} \NC \NR -\NC \type{box_right_width} \NC number \NC width of the \lpr {localrightbox} \NC \NR +\NC \type{box_left} \NC node \NC the \prm {localleftbox} \NC \NR +\NC \type{box_left_width} \NC number \NC width of the \prm {localleftbox} \NC \NR +\NC \type{box_right} \NC node \NC the \prm {localrightbox} \NC \NR +\NC \type{box_right_width} \NC number \NC width of the \prm {localrightbox} \NC \NR \LL \stoptabulate @@ -561,7 +554,7 @@ error may result. \topicindex {directions} Direction nodes mark parts of the running text that need a change of direction -and the \prm {textdir} command generates them. Again this is a small node, we +and the \prm {textdirection} command generates them. Again this is a small node, we just have \showfields {dir}. \starttabulate[|l|l|p|] @@ -812,7 +805,7 @@ is correct, otherwise an error can be triggered. \NC \type{sub} \NC kernel node \NC subscript \NC \NR \NC \type{sup} \NC kernel node \NC superscript \NC \NR \NC \type{left} \NC delimiter node \NC \NC \NR -\NC \type{degree} \NC kernel node \NC only set by \lpr {Uroot} \NC \NR +\NC \type{degree} \NC kernel node \NC only set by \prm {Uroot} \NC \NR \NC \type{width} \NC number \NC required width \NC \NR \NC \type{options} \NC number \NC bitset of rendering options \NC \NR \LL diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-registers.tex b/doc/context/sources/general/manuals/luametatex/luametatex-registers.tex index 060808176..931a57efe 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-registers.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-registers.tex @@ -13,10 +13,11 @@ \startchapter[title=Primitives] This register contains the primitives that are mentioned in the manual. There - are of course many more primitives. The \LUATEX\ primitives are typeset in - bold. + are of course many more primitives. The \ETEX\ and \LUATEX\ primitives are + typeset in bold (some originate in \PDFTEX). - \placeregister[primitiveindex][indicator=no] +% \placeregister[primitiveindex][indicator=no] + \placeregister[texindex,etexindex,luatexindex][indicator=no] \stopchapter diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex index 82ef694ae..e60b6977d 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex @@ -431,19 +431,26 @@ \usemodule[abbreviations-logos] \defineregister[topicindex] +\defineregister[luatexindex] +\defineregister[etexindex] +\defineregister[texindex] \defineregister[primitiveindex] \defineregister[callbackindex] \defineregister[nodeindex] \defineregister[libraryindex] -\protected\def\lpr#1{\doifmode{*bodypart}{\primitiveindex[#1]{\bf\tex {#1}}}\tex {#1}} -\protected\def\prm#1{\doifmode{*bodypart}{\primitiveindex[#1]{\tex {#1}}}\tex {#1}} -\protected\def\orm#1{\doifmode{*bodypart}{\primitiveindex[#1]{\tex {#1}}}\tex {#1}} +\setupregister[etexindex] [textstyle=bold] +\setupregister[luatexindex][textstyle=bold] + +%protected\def\lpr#1{\doifmode{*bodypart}{\primitiveindex[#1]{\bf\tex {#1}}}\tex {#1}} +%protected\def\prm#1{\doifmode{*bodypart}{\primitiveindex[#1]{\tex {#1}}}\tex {#1}} \protected\def\cbk#1{\doifmode{*bodypart}{\callbackindex [#1]{\type {#1}}}\type{#1}} \protected\def\nod#1{\doifmode{*bodypart}{\nodeindex [#1]{\bf\type{#1}}}\type{#1}} \protected\def\whs#1{\doifmode{*bodypart}{\nodeindex [#1]{\type {#1}}}\type{#1}} \protected\def\noa#1{\doifmode{*bodypart}{\nodeindex [#1]{\type {#1}}}\type{#1}} +\protected\def\prm#1{\doifmode{*bodypart}{\getvalue{\ctxlua{document.primitiveorigin("#1")}index}{\tex{#1}}}\tex{#1}} + \hyphenation{sub-nodes} \def\currentlibraryindex{\namedstructureuservariable{section}{library}} @@ -490,10 +497,27 @@ % video: interesting what comes out of top musicians working remote. \startluacode -local list = token.getprimitives() +local list = token.getprimitives() +local origins = tex.getprimitiveorigins() +local hash = { } + +for i=1,#list do + local l = list[i] + hash[l[3]] = l +end -- redo this: +function document.primitiveorigin(name) + local h = hash[name] + if h then + context(origins[h[4]]) + else + logs.report("!!!!!!","unknown primitive %s",name) + context("tex") + end +end + function document.showprimitives(tag) local t = tex.extraprimitives(tag) table.sort(t) @@ -530,14 +554,15 @@ end function document.allprimitives() local c = tokens.commands - local o = tex.getprimitiveorigins() + local o = origins table.sort(list, function(a,b) return a[3] < b[3] end) - context.starttabulate { "|T|T|Tc|T|" } + context.starttabulate { "|T|T|Tr|Tr|T|" } context.DB() context("primitive") - context.BC() context("command code") - context.BC() context("char code") + context.BC() context("command name") + context.BC() context("cmd") + context.BC() context("chr") context.BC() context("origin") context.NC() context.NR() context.TB() @@ -545,6 +570,7 @@ function document.allprimitives() local l = list[i] context.NC() context.tex(l[3]) context.NC() context(c[l[1]]) + context.NC() context(l[1]) context.NC() context(l[2]) context.NC() context(o[l[4]]) context.NC() context.NR() @@ -555,3 +581,65 @@ end \stopluacode \stopenvironment + +% \startluacode +% +% local function identify(name, l) +% local t = { } +% local l = l or _G[name] +% if type(l) == "table" then +% for k, v in next, l do +% print(k) +% if string.find(k,"^_") then +% elseif type(v) == "table" then +% t[k] = identify(k,v) +% else +% t[k] = type(v) +% end +% end +% else +% print("unknown " .. name) +% end +% return t +% end +% +% local builtin = { +% -- +% md5 = identify("md5"), +% sha2 = identify("sha2"), +% basexx = identify("basexx"), +% lfs = identify("lfs"), +% fio = identify("fio"), +% sio = identify("sio"), +% sparse = identify("sparse"), +% xzip = identify("xzip"), +% xmath = identify("xmath") , +% xcomplex = identify("xcomplex"), +% xdecimal = identify("xdecimal"), +% -- +% socket = identify("socket"), +% mime = identify("mime"), +% -- +% lua = identify("lua"), +% status = identify("status"), +% texio = identify("texio"), +% -- +% tex = identify("tex"), +% token = identify("token"), +% node = identify("node"), +% callback = identify("callback"), +% font = identify("font"), +% language = identify("language"), +% -- +% mplib = identify("mplib"), +% -- +% pdfe = identify("pdfe"), +% pdfdecode = identify("pdfdecode"), +% pngdecode = identify("pngdecode"), +% -- +% optional = identify("optional"), +% }; +% +% inspect(builtin) +% +% \stopluacode diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex b/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex index d7ccae6eb..b7b150560 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex @@ -249,7 +249,7 @@ Most variables speak for themselves, some are more obscure. For instance the \DB n \NC meaning \NC explanation \NC \NR \TB \NC 0 \NC initializing \NC \type {--ini} mnode \NC \NR -\NC 1 \NC updating \NC relates to \lpr {overloadmode} \NC \NR +\NC 1 \NC updating \NC relates to \prm {overloadmode} \NC \NR \NC 2 \NC production \NC a regular (format driven) run \NC \NR \LL \stoptabulate @@ -442,7 +442,7 @@ provide a consistent \LUA\ interface. \libindex{getmark} -\TEX's attributes (\lpr {attribute}), counters (\prm {count}), dimensions (\prm +\TEX's attributes (\prm {attribute}), counters (\prm {count}), dimensions (\prm {dimen}), skips (\prm {skip}, \prm {muskip}) and token (\prm {toks}) registers can be accessed and written to using two times five virtual sub|-|tables of the \type {tex} table: @@ -460,7 +460,7 @@ tex.toks \stoptyping \stopthreecolumns -It is possible to use the names of relevant \lpr {attributedef}, \prm {countdef}, +It is possible to use the names of relevant \prm {attributedef}, \prm {countdef}, \prm {dimendef}, \prm {skipdef}, or \prm {toksdef} control sequences as indices to these tables: @@ -470,7 +470,7 @@ enormous = tex.dimen['maxdimen'] \stoptyping In this case, \LUATEX\ looks up the value for you on the fly. You have to use a -valid \prm {countdef} (or \lpr {attributedef}, or \prm {dimendef}, or \prm +valid \prm {countdef} (or \prm {attributedef}, or \prm {dimendef}, or \prm {skipdef}, or \prm {toksdef}), anything else will generate an error (the intent is to eventually also allow \type {} and even macros that expand into a number). @@ -693,7 +693,7 @@ smallfam, smallchar, largefam, largechar = \stopfunctioncall Normally, the third and fourth values in a delimiter code assignment will be zero -according to \lpr {Udelcode} usage, but the returned table can have values there +according to \prm {Udelcode} usage, but the returned table can have values there (if the delimiter code was set using \prm {delcode}, for example). Unset \type {delcode}'s can be recognized because \type {dval[1]} is $-1$. @@ -927,9 +927,9 @@ The known fields are: for \prm {over} etc. \NC \NR \NC \type{delimptr} \NC node \NC mmode \NC used for temporary storage of the previous math delimiter, for \prm {middle} \NC \NR -\NC \type{mathdir} \NC boolean \NC mmode \NC true when during math processing the \lpr {mathdir} is not - the same as the surrounding \lpr {textdir} \NC \NR -\NC \type{mathstyle} \NC number \NC mmode \NC the current \lpr {mathstyle} \NC \NR +\NC \type{mathdir} \NC boolean \NC mmode \NC true when during math processing the \prm {mathdirection} is not + the same as the surrounding \prm {textdirection} \NC \NR +\NC \type{mathstyle} \NC number \NC mmode \NC the current \prm {mathstyle} \NC \NR \LL \stoptabulate @@ -970,7 +970,7 @@ table argument instead of a list of strings, this has to be a consecutive array of strings to print (the first non-string value will stop the printing process). The optional parameter can be used to print the strings using the catcode regime -defined by \lpr {catcodetable}~\type {n}. If \type {n} is $-1$, the currently +defined by \prm {catcodetable}~\type {n}. If \type {n} is $-1$, the currently active catcode regime is used. If \type {n} is $-2$, the resulting catcodes are the result of \prm {the} \prm {toks}: all category codes are 12 (other) except for the space character, that has category code 10 (space). Otherwise, if \type {n} @@ -1054,7 +1054,7 @@ tokenized into a token list but it has a reference to a real node. Normally this goes fine. But now assume that you store the whole lot in a macro: in that case the tokenized node can be flushed many times. But, after the first such flush the node is used and its memory freed. You can prevent this by using copies which is -controlled by setting \lpr {luacopyinputnodes} to a non|-|zero value. This is one +controlled by setting \prm {luacopyinputnodes} to a non|-|zero value. This is one of these fuzzy areas you have to live with if you really mess with these low level issues. @@ -1424,7 +1424,7 @@ tex.enableprimitives('LuaTeX', {'formatname'}) \stoptyping will define \type {\LuaTeXformatname} with the same intrinsic meaning as the -documented primitive \lpr {formatname}, provided that the control sequences \type +documented primitive \prm {formatname}, provided that the control sequences \type {\LuaTeXformatname} is currently undefined. When \LUATEX\ is run with \type {--ini} only the \TEX82 primitives and \prm @@ -2174,7 +2174,7 @@ set_lua("mycode",id,"global","protected") This creates a token that refers to a \LUA\ function with an entry in the table that you can access with \type {lua.getfunctions_table}. It is the companion -to \lpr {luadef}. When the first (and only) argument is true the size will preset +to \prm {luadef}. When the first (and only) argument is true the size will preset to the value of \type {texconfig.function_size}. The \type {pushmacro} and \type {popmacro} function are very experimental and diff --git a/doc/context/sources/general/manuals/readme/mreadme.tex b/doc/context/sources/general/manuals/readme/mreadme.tex index 950f4a64c..1bb185c74 100644 --- a/doc/context/sources/general/manuals/readme/mreadme.tex +++ b/doc/context/sources/general/manuals/readme/mreadme.tex @@ -1,4 +1,4 @@ -% interface=en language=uk +% language=us runpath=texruns:manuals/readme % author : Hans Hagen % copyright : PRAGMA ADE & ConTeXt Development Team @@ -54,8 +54,8 @@ \startsubject[title={Introduction}] -What licence suits best for a \TEX\ like system is a matter of taste. Personally -we dislike any licence that needs more than a few pages of dense legal code to +What license suits best for a \TEX\ like system is a matter of taste. Personally +we dislike any license that needs more than a few pages of dense legal code to get the message across. A \TEX\ related system like \CONTEXT\ is a hybrid of programs, scripts and|/|or macro code as well as documentation and sample code, including graphics. \TEX\ related systems also have a long standing tradition of @@ -64,12 +64,12 @@ providing support structures for users. In order to make support feasible, a way the related files are named and organized in a tree structure. Even a small change in one of the elements may let such a system behave differently than manuals suggest. Swap a font, change some style defaults, leave out some pieces, -and users may end up in confusion. A licence does not give a user any guarantees! +and users may end up in confusion. A license does not give a user any guarantees! In order to satisfy those responsible for distributing \CONTEXT, we need to -choose a licence that makes them feel comfortable. Unfortunately we don't feel -that comfortable with a licence that does not provide the guarantees that a -system will not be adapted in such ways that the advertised behaviour changes. On +choose a license that makes them feel comfortable. Unfortunately we don't feel +that comfortable with a license that does not provide the guarantees that a +system will not be adapted in such ways that the advertised behavior changes. On the other hand, it is the responsibility of those distributing and extending the system to make sure that this does not happen. However, users should not automatically assume that what they get shipped is the same as the original, @@ -103,9 +103,9 @@ The documentation can be downloaded from our website or the Wiki. Some manuals ship with source code. We might ship more source code but only when the source is stable and clean and can serve as an example. -That said, what licence does apply? We need to distinguish between things that +That said, what license does apply? We need to distinguish between things that resemble a program on the one hand and documentation on the other hand. We -(currently) use a different licence for either of them. +(currently) use a different license for either of them. \stopsubject @@ -118,8 +118,8 @@ distributed under the \goto{Creative Commons GNU GPL}[url(gpl-simple)] \stopnarrower -For practical purposes distributers may also choose the \LATEX\ project licence, -which is considered to be a bit more \TEX\ friendly. (BSD alike licences also +For practical purposes distributors may also choose the \LATEX\ project license, +which is considered to be a bit more \TEX\ friendly. (BSD alike licenses also apply well for \CONTEXT.) In practice, users may forget about the legal part, if only because I haven't @@ -138,7 +138,7 @@ license, it grants to you the four following freedoms: The freedom to study how the program works and adapt it to your needs. \stopitem \startitem - The freedom to redistribute copies so you can help your neighbour. + The freedom to redistribute copies so you can help your neighbor. \stopitem \startitem The freedom to improve the program and release your improvements to the @@ -195,7 +195,7 @@ Here are a few recommendations in case you want to distribute, extend of embed \stopitem \startitem - Put your own code in the right subpaths, i.e.\ modules approved by the + Put your own code in the right sub paths, i.e.\ modules approved by the development team under \type {.../third}, and styles and whatever else under \type {.../user}. This way your code will not interfere with existing code and updating will give less problems. Keep in mind that \TEX\ systems have @@ -245,7 +245,7 @@ Here are a few recommendations in case you want to distribute, extend of embed \startsubject[title={Documents}] -The documentation is provided under another Creative Commons licence: +The documentation is provided under another Creative Commons license: \startnarrower \goto{Attribution ShareAlike}[url(bysa-simple)] @@ -370,7 +370,7 @@ The developers can be met at: \startsubject[title={Disclaimer}] -To play safe we include a disclaimer here, taken from the BSD style licence. For +To play safe we include a disclaimer here, taken from the BSD style license. For some reason such a text is always in unreadable capitals, so \unknown \start \txx \blue @@ -386,8 +386,8 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \stop -\unknown\ and don't bother discussing licence issues and related things with us -for the mere sake of discussing licence stuff. +\unknown\ and don't bother discussing license issues and related things with us +for the mere sake of discussing license stuff. \stopsubject diff --git a/doc/context/sources/general/manuals/workflows/workflows-hashed.tex b/doc/context/sources/general/manuals/workflows/workflows-hashed.tex index 85aa5d5f1..250376c45 100644 --- a/doc/context/sources/general/manuals/workflows/workflows-hashed.tex +++ b/doc/context/sources/general/manuals/workflows/workflows-hashed.tex @@ -11,14 +11,14 @@ In a (basically free content) project we had to deal with tens of thousands of files. Most are in \XML\ format, but there are also thousands of \PNG, \JPG\ and -\SVG images. In large project like this, which covers a large part of Dutch +\SVG\ images. In a large project like this, which covers a large part of Dutch school math, images can be shared. All the content is available for schools as \HTML\ but can also be turned into printable form and because schools want to have stable content over specified periods one has to make a regular snapshot of -this corpus. Also, distributing a few gigabytes if data is not much fun. +this corpus. Also, distributing a few gigabytes of data is not much fun. So, in order to bring the amount down a dedicated mechanism for handling files -has bene introduced. After playing with a \SQLITE\ database we finally settled on +has been introduced. After playing with a \SQLITE\ database we finally settled on just \LUA, simply because it was faster and it also makes the solution independent. @@ -53,7 +53,7 @@ return { context --extra=hashed --database=m4 --patterns=m4all.lua \stoptyping -You should see something like on the console: +You should see something like this on the console: \starttyping hashed > database 'hasheddata', 1627 paths, 46141 names, @@ -106,7 +106,7 @@ a database first: \registerhashedfiles[m4] \stoptyping -A fully qualified specifier looks like this (not to different from other +A fully qualified specifier looks like this (not too different from other specifiers): \starttyping @@ -152,8 +152,8 @@ and act upon the outcome: } \stoptyping -Future version might introduce filename normalization (lowercase, cleanup) so -consider this is first step. First we need test it for a while. +Future versions might introduce filename normalization (lowercase, cleanup) so +consider this as a first step. First we need test it for a while. \stopchapter diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 2732fc8a4..dcfc43f5f 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -6525,7 +6525,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 45866, stripped down to: 23846 +-- original size: 45916, stripped down to: 23839 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\"'+P('\\')/'\\\\'+P('\n')/'\\n'+P('\r')/'\\r' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -25935,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026478 --- stripped bytes : 402849 +-- original bytes : 1026528 +-- stripped bytes : 402906 -- end library merge diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 2732fc8a4..dcfc43f5f 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -6525,7 +6525,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 45866, stripped down to: 23846 +-- original size: 45916, stripped down to: 23839 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\"'+P('\\')/'\\\\'+P('\n')/'\\n'+P('\r')/'\\r' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -25935,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026478 --- stripped bytes : 402849 +-- original bytes : 1026528 +-- stripped bytes : 402906 -- end library merge diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 2732fc8a4..dcfc43f5f 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -6525,7 +6525,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 45866, stripped down to: 23846 +-- original size: 45916, stripped down to: 23839 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\"'+P('\\')/'\\\\'+P('\n')/'\\n'+P('\r')/'\\r' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -25935,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026478 --- stripped bytes : 402849 +-- original bytes : 1026528 +-- stripped bytes : 402906 -- end library merge diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua index 2732fc8a4..dcfc43f5f 100644 --- a/scripts/context/stubs/win64/mtxrun.lua +++ b/scripts/context/stubs/win64/mtxrun.lua @@ -6525,7 +6525,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-str"] = package.loaded["util-str"] or true --- original size: 45866, stripped down to: 23846 +-- original size: 45916, stripped down to: 23839 if not modules then modules={} end modules ['util-str']={ version=1.001, @@ -6890,7 +6890,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\"'+P('\\')/'\\\\'+P('\n')/'\\n'+P('\r')/'\\r' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -25935,8 +25935,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1026478 --- stripped bytes : 402849 +-- original bytes : 1026528 +-- stripped bytes : 402906 -- end library merge diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 86a342700..aee36ce61 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.08.07 22:49} +\newcontextversion{2021.08.10 12:37} %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 0fe42e4a1..ec8a50d33 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.08.07 22:49} +\edef\contextversion{2021.08.10 12:37} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-fr.mkii b/tex/context/base/mkii/mult-fr.mkii index 0390fcdbc..861f90c55 100644 --- a/tex/context/base/mkii/mult-fr.mkii +++ b/tex/context/base/mkii/mult-fr.mkii @@ -79,6 +79,7 @@ \setinterfacevariable{anchor}{ancre} \setinterfacevariable{and}{et} \setinterfacevariable{answerarea}{zonereponse} +\setinterfacevariable{append}{append} \setinterfacevariable{appendices}{annexes} \setinterfacevariable{appendix}{annexe} \setinterfacevariable{april}{avril} @@ -207,6 +208,8 @@ \setinterfacevariable{fixed}{fixe} \setinterfacevariable{flexible}{flexible} \setinterfacevariable{float}{flottant} +\setinterfacevariable{flushbackward}{flushbackward} +\setinterfacevariable{flushforward}{flushforward} \setinterfacevariable{flushinner}{alignerinterieur} \setinterfacevariable{flushleft}{alignergauche} \setinterfacevariable{flushouter}{alignerexterieur} @@ -434,6 +437,7 @@ \setinterfacevariable{postscript}{postscript} \setinterfacevariable{precedingpage}{pageantecedent} \setinterfacevariable{preference}{preference} +\setinterfacevariable{prepend}{prepend} \setinterfacevariable{preview}{apercu} \setinterfacevariable{previous}{precedent} \setinterfacevariable{previousevenpage}{pagepaireprecedente} @@ -1365,6 +1369,8 @@ \setinterfaceelement{load}{charger} \setinterfaceelement{local}{local} \setinterfaceelement{makeup}{composition} +\setinterfaceelement{namednotation}{namednotation} +\setinterfaceelement{namedtyping}{namedtyping} \setinterfaceelement{next}{suivant} \setinterfaceelement{place}{placer} \setinterfaceelement{previous}{precedent} @@ -1533,6 +1539,7 @@ \setinterfacecommand{definereferencelist}{définirlistereference} \setinterfacecommand{defineregister}{définirregistre} \setinterfacecommand{definerule}{définirtrait} +\setinterfacecommand{definesavebuffer}{startsavebuffer} \setinterfacecommand{definesection}{définirsection} \setinterfacecommand{definesectionblock}{définirblocsection} \setinterfacecommand{definesorting}{définirtri} @@ -1709,6 +1716,9 @@ \setinterfacecommand{moveformula}{deplacerformule} \setinterfacecommand{moveongrid}{deplacersurgrille} \setinterfacecommand{movesidefloat}{deplacerflottantcote} +\setinterfacecommand{namedconstruction}{namedconstruction} +\setinterfacecommand{nameddescription}{nameddescription} +\setinterfacecommand{namedenumeration}{namedenumeration} \setinterfacecommand{navigating}{navigation} \setinterfacecommand{nodimension}{sansdimension} \setinterfacecommand{noheaderandfooterlines}{sansentêtenipdp} @@ -2080,6 +2090,13 @@ \setinterfacecommand{startmakeup}{débutcomposition} \setinterfacecommand{startmarginblock}{débutblocmarge} \setinterfacecommand{startmarginrule}{débuttraitmarge} +\setinterfacecommand{startnamedconstruction}{startnamedconstruction} +\setinterfacecommand{startnameddescription}{startnameddescription} +\setinterfacecommand{startnamedenumeration}{startnamedenumeration} +\setinterfacecommand{startnamedmatrix}{startnamedmatrix} +\setinterfacecommand{startnamedsection}{startnamedsection} +\setinterfacecommand{startnamedsubformulas}{startnamedsubformulas} +\setinterfacecommand{startnamedtyping}{startnamedtyping} \setinterfacecommand{startnarrower}{débutplusetroit} \setinterfacecommand{startopposite}{débutopposition} \setinterfacecommand{startoverlay}{débutsuperposition} @@ -2123,6 +2140,13 @@ \setinterfacecommand{stopmakeup}{fincomposition} \setinterfacecommand{stopmarginblock}{finblocmarge} \setinterfacecommand{stopmarginrule}{fintraitmarge} +\setinterfacecommand{stopnamedconstruction}{stopnamedconstruction} +\setinterfacecommand{stopnameddescription}{stopnameddescription} +\setinterfacecommand{stopnamedenumeration}{stopnamedenumeration} +\setinterfacecommand{stopnamedmatrix}{stopnamedmatrix} +\setinterfacecommand{stopnamedsection}{stopnamedsection} +\setinterfacecommand{stopnamedsubformulas}{stopnamedsubformulas} +\setinterfacecommand{stopnamedtyping}{stopnamedtyping} \setinterfacecommand{stopnarrower}{finplusetroit} \setinterfacecommand{stopopposite}{finopposition} \setinterfacecommand{stopoverlay}{finsuperposition} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index b3b71009e..61325b615 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.08.07 22:49} +\newcontextversion{2021.08.10 12:37} %D This file is loaded at runtime, thereby providing an excellent place for hacks, %D patches, extensions and new features. There can be local overloads in cont-loc diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index fb5f34e21..74e3cea56 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.08.07 22:49} +\edef\contextversion{2021.08.10 12:37} %D Kind of special: diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua index 244ede469..ac185e80b 100644 --- a/tex/context/base/mkiv/core-con.lua +++ b/tex/context/base/mkiv/core-con.lua @@ -1152,6 +1152,8 @@ local ordinals = { french = function(n) if n == 1 then return "er" + else + return "e" end end, } diff --git a/tex/context/base/mkiv/font-cff.lua b/tex/context/base/mkiv/font-cff.lua index 8b01d92b7..8ae4d755b 100644 --- a/tex/context/base/mkiv/font-cff.lua +++ b/tex/context/base/mkiv/font-cff.lua @@ -707,6 +707,7 @@ do local y = 0 local width = false local lsb = 0 +local result = { } local r = 0 local stems = 0 local globalbias = 0 @@ -2128,7 +2129,6 @@ do end process(tab) - if hack then return x, y end @@ -2151,6 +2151,7 @@ do r = r + 1 result[r] = c_endchar local stream = concat(result) +result = nil -- if trace_charstrings then -- report("vdata: %s",stream) -- end @@ -2177,6 +2178,7 @@ do name = charset and charset[index] or nil, -- sidebearing = 0, } +result = nil else glyphs[index] = { boundingbox = boundingbox, diff --git a/tex/context/base/mkiv/font-lig.lua b/tex/context/base/mkiv/font-lig.lua index 1aed9fc5b..b753b881d 100644 --- a/tex/context/base/mkiv/font-lig.lua +++ b/tex/context/base/mkiv/font-lig.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['font-lig'] = { license = "see context related readme files", } --- This module is not loaded but generated a file for plain TeX as a substitute +-- This module is not loaded but generates a file for plain TeX as a substitute -- for collapsing the input: "luatex-fonts-lig.lua" with "collapse=yes". local next = next diff --git a/tex/context/base/mkiv/grph-fil.lua b/tex/context/base/mkiv/grph-fil.lua index 1044d29d9..2cf2a54cc 100644 --- a/tex/context/base/mkiv/grph-fil.lua +++ b/tex/context/base/mkiv/grph-fil.lua @@ -90,7 +90,21 @@ local function analyzed(name) } end -function jobfiles.run(action) +function jobfiles.run(name,action) + local kind = type(name) + if kind == "string" then + local usedname = addsuffix(name,inputsuffix) + action = { + filename = usedname, + action = action, + resultfile = replacesuffix(usedname,resultsuffix), + } + elseif kind == "table" then + action = name + else + report_run("invalid specification for jobfiles.run") + return + end local filename = action.filename local result = action.result local oldchecksum = collected[filename] @@ -121,7 +135,17 @@ function jobfiles.run(action) end end if tobedone then - runner(action) + kind = type(action) + if kind == "function" then + action(filename) + elseif kind == "string" and action ~= "" then + -- can be anything but we assume it gets checked by the sandbox + os.execute(action) + elseif kind == "table" then + runner(action) + else + report_run("processing file, no action given for processing %a",name) + end elseif trace_run then report_run("processing file, no changes in %a, not processed",name) end diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index d8db74701..5985faf73 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -28,6 +28,8 @@ return { -- "emptytoks", "empty", "undefined", -- + "prerollrun", + -- "voidbox", "emptybox", "emptyvbox", "emptyhbox", -- "bigskipamount", "medskipamount", "smallskipamount", diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua index 52574e768..408c1d651 100644 --- a/tex/context/base/mkiv/mult-prm.lua +++ b/tex/context/base/mkiv/mult-prm.lua @@ -367,9 +367,9 @@ return { "ifcmpnum", "ifcondition", "ifcstok", + "ifdimexpression", "ifdimval", "ifempty", - "ifexpression", "ifflags", "ifhastok", "ifhastoks", @@ -378,6 +378,7 @@ return { "ifinsert", "ifmathparameter", "ifmathstyle", + "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", @@ -416,7 +417,6 @@ return { "letprotected", "lettonothing", "linedirection", - "linepar", "localbrokenpenalty", "localcontrol", "localcontrolled", @@ -471,6 +471,7 @@ return { "overloaded", "overloadmode", "parametercount", + "parametermark", "parattribute", "pardirection", "permanent", diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index 654c04404..67e5b7a47 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 de0ad44a4..42d1b8d7b 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/mkiv/util-str.lua b/tex/context/base/mkiv/util-str.lua index 67146d80f..471b76296 100644 --- a/tex/context/base/mkiv/util-str.lua +++ b/tex/context/base/mkiv/util-str.lua @@ -624,22 +624,24 @@ return function(%s) return %s end -- We only use fast serialize in controlled cases. --- local pattern = Cs(Cc('"') * ( --- (1-S('"\\\n\r'))^1 --- + P('"') / '\\"' --- + P('\\') / '\\\\' --- + P('\n') / '\\n' --- + P('\r') / '\\r' --- )^0 * Cc('"')) - local pattern = Cs(Cc('"') * ( (1-S('"\\\n\r'))^1 - + P('"') / '\\034' - + P('\\') / '\\092' - + P('\n') / '\\013' - + P('\r') / '\\010' + + P('"') / '\\"' + + P('\\') / '\\\\' + + P('\n') / '\\n' + + P('\r') / '\\r' )^0 * Cc('"')) +-- -- I need to do more experiments with this: +-- +-- local pattern = Cs(Cc('"') * ( +-- (1-S('"\\\n\r'))^1 +-- + P('"') / '\\034' +-- + P('\\') / '\\092' +-- + P('\n') / '\\013' +-- + P('\r') / '\\010' +-- )^0 * Cc('"')) + patterns.escapedquotes = pattern function string.escapedquotes(s) diff --git a/tex/context/base/mkxl/back-exp.lmt b/tex/context/base/mkxl/back-exp.lmt index 01a885471..a465cee92 100644 --- a/tex/context/base/mkxl/back-exp.lmt +++ b/tex/context/base/mkxl/back-exp.lmt @@ -100,12 +100,12 @@ local overloads = fonts.mappings.overloads -- todo: more locals (and optimize) -local exportversion = "0.35" -local mathmlns = "http://www.w3.org/1998/Math/MathML" -local contextns = "http://www.contextgarden.net/context/export" -- whatever suits -local cssnamespaceurl = "@namespace context url('%namespace%') ;" -local cssnamespace = "context|" ------ cssnamespacenop = "/* no namespace */" +local exportversion = "0.35" +local mathmlns = "http://www.w3.org/1998/Math/MathML" +local contextns = "http://www.contextgarden.net/context/export" -- whatever suits +local cssnamespaceurl = "@namespace context url('%namespace%') ;" +local cssnamespace = "context|" +----- cssnamespacenop = "/* no namespace */" local usecssnamespace = false @@ -296,7 +296,7 @@ structurestags.backend = { destinationhash = destinationhash, } -local namespacetemplate = [[ +local namespacetemplate = [[ /* %what% for file %filename% */ %cssnamespaceurl% @@ -312,7 +312,7 @@ do -- /* text-justify : inter-word ; */ -- /* text-align : justify ; */ -local documenttemplate = [[ +local documenttemplate = [[ document, %namespace%div.document { font-size : %size% !important ; @@ -321,7 +321,7 @@ document, hyphens : %hyphens% !important ; }]] -local styletemplate = [[ +local styletemplate = [[ %element%[detail="%detail%"], %namespace%div.%element%.%detail% { display : inline ; @@ -409,7 +409,7 @@ end do -local imagetemplate = [[ +local imagetemplate = [[ %element%[id="%id%"], %namespace%div.%element%[id="%id%"] { display : block ; background-image : url('%url%') ; @@ -1983,7 +1983,7 @@ local cssheadlink = [[ return concat(result), concat(extras) end -local elementtemplate = [[ +local elementtemplate = [[ /* element="%element%" detail="%detail%" chain="%chain%" */ %element%, @@ -1991,7 +1991,7 @@ local elementtemplate = [[ display: %display% ; }]] -local detailtemplate = [[ +local detailtemplate = [[ /* element="%element%" detail="%detail%" chain="%chain%" */ %element%[detail=%detail%], @@ -2001,7 +2001,7 @@ local detailtemplate = [[ -- -local htmltemplate = [[ +local htmltemplate = [[ %preamble% diff --git a/tex/context/base/mkxl/catc-def.mkxl b/tex/context/base/mkxl/catc-def.mkxl index a7d48714a..896dd35d3 100644 --- a/tex/context/base/mkxl/catc-def.mkxl +++ b/tex/context/base/mkxl/catc-def.mkxl @@ -17,6 +17,9 @@ %D days of \LUATEX) was dropped when I realized that there is not common ground to %D cover between formats. It is simply not worth the trouble. +%D Maybe we also need a copy of \type {\ctxcatcodes} so that we can always go back +%D to the unpatched regime. + \ifdefined\nilcatcodes \else \newcatcodetable \nilcatcodes \fi \ifdefined\texcatcodes \else \newcatcodetable \texcatcodes \fi \ifdefined\luacatcodes \else \newcatcodetable \luacatcodes \fi diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl index c9a545148..74d3aa873 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.08.07 22:49} +\newcontextversion{2021.08.10 12:37} %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 8c2bcc2aa..91ec43d30 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.08.07 22:49} +\immutable\edef\contextversion{2021.08.10 12:37} %overloadmode 1 % check frozen / warning %overloadmode 2 % check frozen / error @@ -121,7 +121,7 @@ %D This needs more checking for clashes: %D %D \starttyping -%D \doifelsefileexists{l-macro-imp-codes-luametatex.lua}{\registerctxluafile{l-macro-imp-codes-luametatex}{}}{} +% \doifelsefileexists{l-macro-imp-codes-luametatex.lua}{\registerctxluafile{l-macro-imp-codes-luametatex}{}}{} %D \stoptyping \loadmkxlfile{supp-dir} diff --git a/tex/context/base/mkxl/core-sys.mkxl b/tex/context/base/mkxl/core-sys.mkxl index 832098315..a0bd9debd 100644 --- a/tex/context/base/mkxl/core-sys.mkxl +++ b/tex/context/base/mkxl/core-sys.mkxl @@ -291,13 +291,18 @@ \aliased\let\directhighlight\typo_highlights_indeed + \permanent\protected\def\defineexpandable - {\doifelsenextoptional + {\integerdef\c_syst_parameter_catcode\catcode\hashasciicode + \catcode\hashasciicode\parametercatcode% + \doifelsenextoptional {\syst_basics_define_yes\def}% {\syst_basics_define_nop\def}} \permanent\protected\def\define - {\doifelsenextoptional + {\integerdef\c_syst_parameter_catcode\catcode\hashasciicode + \catcode\hashasciicode\parametercatcode% + \doifelsenextoptional {\syst_basics_define_yes{\protected\def}}% {\syst_basics_define_nop{\protected\def}}} @@ -316,13 +321,15 @@ #1#3##1##2##3##4##5##6##7{#4}\or #1#3##1##2##3##4##5##6##7##8{#4}\or #1#3##1##2##3##4##5##6##7##8##9{#4}\else - #1#3{#4}\fi} + #1#3{#4}\fi + \catcode\hashasciicode\c_syst_parameter_catcode} \protected\def\syst_basics_define_nop#1#2#3% {\ifdefined#2% \showmessage\m!system4{\string#2}% \fi - #1#2{#3}} + #1#2{#3}% + \catcode\hashasciicode\c_syst_parameter_catcode} \aliased\let\redefine\define diff --git a/tex/context/base/mkxl/grph-inc.lmt b/tex/context/base/mkxl/grph-inc.lmt index 6700a1171..0b83718f8 100644 --- a/tex/context/base/mkxl/grph-inc.lmt +++ b/tex/context/base/mkxl/grph-inc.lmt @@ -305,8 +305,8 @@ local converters = allocate() figures.converters = converters local identifiers = allocate() figures.identifiers = identifiers local programs = allocate() figures.programs = programs -local defaultformat = "pdf" -local defaultprefix = "m_k_i_v_" +local defaultformat = "pdf" +local defaultprefix = "m_k_i_v_" figures.localpaths = allocate { ".", "..", "../.." diff --git a/tex/context/base/mkxl/lpdf-emb.lmt b/tex/context/base/mkxl/lpdf-emb.lmt index daa7e41a1..c715c7b77 100644 --- a/tex/context/base/mkxl/lpdf-emb.lmt +++ b/tex/context/base/mkxl/lpdf-emb.lmt @@ -133,7 +133,7 @@ do local tounicode = fonts.mappings.tounicode -local tounicode_template = [[ +local tounicode_template = [[ %%!PS-Adobe-3.0 Resource-CMap %%%%DocumentNeededResources: ProcSet (CIDInit) %%%%IncludeResource: ProcSet (CIDInit) @@ -448,7 +448,7 @@ do "fullname", "postscriptname", } - local template = [[ + local template = [[ diff --git a/tex/context/base/mkxl/lpdf-fld.lmt b/tex/context/base/mkxl/lpdf-fld.lmt index fd671b747..13ebd6c44 100644 --- a/tex/context/base/mkxl/lpdf-fld.lmt +++ b/tex/context/base/mkxl/lpdf-fld.lmt @@ -674,7 +674,7 @@ end local fields, radios, clones, fieldsets, calculationset = { }, { }, { }, { }, nil -local xfdftemplate = [[ +local xfdftemplate = [[ diff --git a/tex/context/base/mkxl/lpdf-ini.lmt b/tex/context/base/mkxl/lpdf-ini.lmt index 35ed22222..ce679c08e 100644 --- a/tex/context/base/mkxl/lpdf-ini.lmt +++ b/tex/context/base/mkxl/lpdf-ini.lmt @@ -1221,11 +1221,12 @@ do local f_actual_text_p = formatters["BT /Span << /ActualText >> BDC %s EMC ET"] local f_actual_text_b = formatters["BT /Span << /ActualText >> BDC"] - local s_actual_text_e = "EMC ET" local f_actual_text_b_not = formatters["/Span << /ActualText >> BDC"] - local s_actual_text_e_not = "EMC" local f_actual_text = formatters["/Span <> BDC"] + local s_actual_text_e = "EMC ET" + local s_actual_text_e_not = "EMC" + local context = context local pdfdirect = nodes.pool.directliteral -- we can use nuts.write deep down local tounicode = fonts.mappings.tounicode diff --git a/tex/context/base/mkxl/lpdf-lmt.lmt b/tex/context/base/mkxl/lpdf-lmt.lmt index f722a61e0..826c1ce21 100644 --- a/tex/context/base/mkxl/lpdf-lmt.lmt +++ b/tex/context/base/mkxl/lpdf-lmt.lmt @@ -815,9 +815,9 @@ do local nodeproperties = nodes.properties.data - local s_matrix_0 = "1 0 0 1 0 0 cm" - local f_matrix_2 = formatters["%.6N 0 0 %.6N 0 0 cm"] - local f_matrix_4 = formatters["%.6N %.6N %.6N %.6N 0 0 cm"] + local s_matrix_0 = "1 0 0 1 0 0 cm" + local f_matrix_2 = formatters["%.6N 0 0 %.6N 0 0 cm"] + local f_matrix_4 = formatters["%.6N %.6N %.6N %.6N 0 0 cm"] local flushsetmatrix = function(current,pos_h,pos_v) local p = nodeproperties[current] @@ -1013,8 +1013,8 @@ local flushimage do local f_im = formatters["/Im%d Do"] local f_gr = formatters["/Gp%d Do"] - local s_b = "q" - local s_e = "Q" + local s_b = "q" + local s_e = "Q" local f_v = formatters["[] 0 d 0 J %.6N w 0 0 m %.6N 0 l S"] local f_h = formatters["[] 0 d 0 J %.6N w 0 0 m 0 %.6N l S"] @@ -1939,8 +1939,8 @@ local f_stream_b_d_u = formatters["%i 0 obj\010<< %s /Length %i >>\010stream\010 local f_stream_b_d_c = formatters["%i 0 obj\010<< %s /Filter /FlateDecode /Length %i >>\010stream\010"] local f_stream_b_d_r = formatters["%i 0 obj\010<< %s >>\010stream\010"] ------ s_object_e = "\010endobj\010" -local s_stream_e = "\010endstream\010endobj\010" +----- s_object_e = "\010endobj\010" +local s_stream_e = "\010endstream\010endobj\010" do @@ -2466,6 +2466,9 @@ local openfile, closefile do local close = false local update = false + -- local banner = "%\xCC\xD5\xC1\xD4\xC5\xD8\xD0\xC4\xC6\010" -- LUATEXPDF (+128) + local banner = "%\xC3\xCF\xCE\xD4\xC5\xD8\xD4\xD0\xC4\xC6\010" -- CONTEXTPDF (+128) + -- local removefile = os.remove openfile = function(filename) @@ -2512,12 +2515,10 @@ local openfile, closefile do f:write(s) end end - local v = f_pdf_tag(majorversion,minorversion) - -- local b = "%\xCC\xD5\xC1\xD4\xC5\xD8\xD0\xC4\xC6\010" -- LUATEXPDF (+128) - local b = "%\xC3\xCF\xCE\xD4\xC5\xD8\xD4\xD0\xC4\xC6\010" -- CONTEXTPDF (+128) - flush(f,v) - flush(f,b) - offset = offset + #v + #b + local version = f_pdf_tag(majorversion,minorversion) + flush(f,version) + flush(f,banner) + offset = offset + #version + #banner end closefile = function(abort) diff --git a/tex/context/base/mkxl/lpdf-xmp.lmt b/tex/context/base/mkxl/lpdf-xmp.lmt index 776bdff4f..deeb1e135 100644 --- a/tex/context/base/mkxl/lpdf-xmp.lmt +++ b/tex/context/base/mkxl/lpdf-xmp.lmt @@ -241,10 +241,11 @@ local function flushxmpinfo() local documentid = "no unique document id here" local instanceid = "no unique instance id here" - local metadata = pdfgetmetadata() - local time = metadata.time - local producer = metadata.producer - local creator = metadata.creator + + local metadata = pdfgetmetadata() + local time = metadata.time + local producer = metadata.producer + local creator = metadata.creator if included.id ~= "fake" then documentid = "uuid:" .. os.uuid() diff --git a/tex/context/base/mkxl/mlib-pps.lmt b/tex/context/base/mkxl/mlib-pps.lmt index 19535b070..bad738bc1 100644 --- a/tex/context/base/mkxl/mlib-pps.lmt +++ b/tex/context/base/mkxl/mlib-pps.lmt @@ -117,7 +117,8 @@ local f_scn = formatters["%.3N"] local f_shade = formatters["MpSh%s"] local f_spot = formatters["/%s cs /%s CS %s SCN %s scn"] -local s_cm_e = "Q" + +local s_cm_e = "Q" local function checked_color_pair(color,...) if not color then @@ -529,9 +530,9 @@ metapost.sxsy = sxsy -- for stock mp we need to declare the booleans first -local do_begin_fig = "; beginfig(1) ; " -local do_end_fig = "; endfig ;" -local do_safeguard = ";" +local do_begin_fig = "; beginfig(1) ; " +local do_end_fig = "; endfig ;" +local do_safeguard = ";" function metapost.preparetextextsdata() local textexts = top.textexts diff --git a/tex/context/base/mkxl/mlib-svg.lmt b/tex/context/base/mkxl/mlib-svg.lmt index 862bd1cad..945cafbab 100644 --- a/tex/context/base/mkxl/mlib-svg.lmt +++ b/tex/context/base/mkxl/mlib-svg.lmt @@ -142,9 +142,8 @@ local trace_fonts = false trackers.register("metapost.svg.fonts", function(v) -- This is just an experiment. Todo: reset hash etc. Also implement an option handler. -local s_draw_image_start = "draw image (" -local s_draw_image_stop = ") ;" - +local s_draw_image_start = "draw image (" +local s_draw_image_stop = ") ;" local ignoredopacity = 1 @@ -1207,34 +1206,34 @@ end -- todo: viewbox helper -local s_wrapped_start = s_draw_image_start -local f_wrapped_stop = formatters[") shifted (0,%N) scaled %N ;"] +local s_wrapped_start = "draw image (" +local f_wrapped_stop = formatters[") shifted (0,%N) scaled %N ;"] local handletransform, handleviewbox do local sind = math.sind - -- local f_rotatedaround = formatters["svg_p := svg_p rotatedaround((%N,%N),%N) ;"] - -- local f_rotated = formatters["svg_p := svg_p rotated(%N) ;"] - -- local f_shifted = formatters["svg_p := svg_p shifted(%N,%N) ;"] - -- local f_slanted_x = formatters["svg_p := svg_p xslanted(%N) ;"] - -- local f_slanted_y = formatters["svg_p := svg_p yslanted(%N) ;"] - -- local f_scaled = formatters["svg_p := svg_p scaled(%N) ;"] - -- local f_xyscaled = formatters["svg_p := svg_p xyscaled(%N,%N) ;"] - -- local f_matrix = formatters["svg_p := svg_p transformed bymatrix(%N,%N,%N,%N,%N,%N) ;"] - -- local s_transform_start = "draw image ( begingroup ; save svg_p ; picture svg_p ; svg_p := image ( " - -- local f_transform_stop = formatters[" ; ) ; %s ; draw svg_p ; endgroup ; ) ; "] - - local f_rotatedaround = formatters["rotatedaround((%N,%N),%N) "] - local f_rotated = formatters["rotated(%N) "] - local f_shifted = formatters["shifted(%N,%N) "] - local f_slanted_x = formatters["xslanted(%N) "] - local f_slanted_y = formatters["yslanted(%N) "] - local f_scaled = formatters["scaled(%N) "] - local f_xyscaled = formatters["xyscaled(%N,%N) "] - local f_matrix = formatters["transformed bymatrix(%N,%N,%N,%N,%N,%N) "] - local s_transform_start = "draw image ( " - local f_transform_stop = formatters[") %s ; "] + -- local f_rotatedaround = formatters["svg_p := svg_p rotatedaround((%N,%N),%N) ;"] + -- local f_rotated = formatters["svg_p := svg_p rotated(%N) ;"] + -- local f_shifted = formatters["svg_p := svg_p shifted(%N,%N) ;"] + -- local f_slanted_x = formatters["svg_p := svg_p xslanted(%N) ;"] + -- local f_slanted_y = formatters["svg_p := svg_p yslanted(%N) ;"] + -- local f_scaled = formatters["svg_p := svg_p scaled(%N) ;"] + -- local f_xyscaled = formatters["svg_p := svg_p xyscaled(%N,%N) ;"] + -- local f_matrix = formatters["svg_p := svg_p transformed bymatrix(%N,%N,%N,%N,%N,%N) ;"] + -- local s_transform_start = "draw image ( begingroup ; save svg_p ; picture svg_p ; svg_p := image ( " + -- local f_transform_stop = formatters[" ; ) ; %s ; draw svg_p ; endgroup ; ) ; "] + + local f_rotatedaround = formatters["rotatedaround((%N,%N),%N) "] + local f_rotated = formatters["rotated(%N) "] + local f_shifted = formatters["shifted(%N,%N) "] + local f_slanted_x = formatters["xslanted(%N) "] + local f_slanted_y = formatters["yslanted(%N) "] + local f_scaled = formatters["scaled(%N) "] + local f_xyscaled = formatters["xyscaled(%N,%N) "] + local f_matrix = formatters["transformed bymatrix(%N,%N,%N,%N,%N,%N) "] + local s_transform_start = "draw image ( " + local f_transform_stop = formatters[") %s ; "] local transforms = { } local noftransforms = 0 @@ -1690,18 +1689,17 @@ do -- todo: clip = [ auto | rect(llx,lly,urx,ury) ] - local s_rotation_start = "draw image ( " - local f_rotation_stop = formatters[") rotatedaround((0,0),-angle((%N,%N))) ;"] - local f_rotation_angle = formatters[") rotatedaround((0,0),-%N) ;"] + local s_rotation_start = "draw image ( " + local f_rotation_stop = formatters[") rotatedaround((0,0),-angle((%N,%N))) ;"] + local f_rotation_angle = formatters[") rotatedaround((0,0),-%N) ;"] - local s_offset_start = "draw image ( " - local f_offset_stop = formatters[") shifted (%N,%N) ;"] - local s_size_start = "draw image ( " - local f_size_stop = formatters[") xysized (%N,%N) ;"] + local s_offset_start = "draw image ( " + local f_offset_stop = formatters[") shifted (%N,%N) ;"] + local s_size_start = "draw image ( " + local f_size_stop = formatters[") xysized (%N,%N) ;"] local handleoffset, handlesize do - handleoffset = function(at) local x = asnumber_vx(rawget(at,"x")) local y = asnumber_vy(rawget(at,"y")) @@ -2018,9 +2016,9 @@ local fraction = offset and asnumber_p(offset) return p, d, c, o end - local s_opacity_start = s_draw_image_start - local f_opacity_content = formatters["setgroup currentpicture to boundingbox currentpicture withopacity %N;"] - local s_opacity_stop = s_draw_image_stop + local s_opacity_start = "draw image (" + local f_opacity_content = formatters["setgroup currentpicture to boundingbox currentpicture withopacity %N;"] + local s_opacity_stop = ") ;" local function sharedopacity(at) local o = at["opacity"] @@ -2073,11 +2071,11 @@ local fraction = offset and asnumber_p(offset) local viewport do - local s_viewport_start = s_draw_image_start - local s_viewport_stop = s_draw_image_stop - local f_viewport_shift = formatters["currentpicture := currentpicture shifted (%N,%N);"] - local f_viewport_scale = formatters["currentpicture := currentpicture xysized (%N,%N);"] - local f_viewport_clip = formatters["clip currentpicture to (unitsquare xyscaled (%N,%N));"] + local s_viewport_start = "draw image (" + local s_viewport_stop = ") ;" + local f_viewport_shift = formatters["currentpicture := currentpicture shifted (%N,%N);"] + local f_viewport_scale = formatters["currentpicture := currentpicture xysized (%N,%N);"] + local f_viewport_clip = formatters["clip currentpicture to (unitsquare xyscaled (%N,%N));"] viewport = function(x,y,w,h,noclip,scale) r = r + 1 ; result[r] = s_viewport_start @@ -2189,25 +2187,25 @@ setmetatableindex(res.at,at) end end - local f_no_draw = formatters[' nodraw (%s)'] - local f_do_draw = formatters[' draw (%s)'] - local f_no_fill_c = formatters[' nofill closedcurve(%s)'] - local f_do_fill_c = formatters[' fill closedcurve(%s)'] - local f_eo_fill_c = formatters[' eofill closedcurve(%s)'] - local f_no_fill_l = formatters[' nofill closedlines(%s)'] - local f_do_fill_l = formatters[' fill closedlines(%s)'] - local f_eo_fill_l = formatters[' eofill closedlines(%s)'] - local f_closed_draw = formatters[' draw closedcurve(%s)'] - local f_do_fill = f_do_fill_c - local f_eo_fill = f_eo_fill_c - local f_no_fill = f_no_fill_c - local s_clip_start = 'save p ; picture p ; p := image (' - local f_clip_stop_c = formatters[') ; clip p to closedcurve(%s) %s ; draw p ;'] - local f_clip_stop_l = formatters[') ; clip p to closedlines(%s) %s ; draw p ;'] - local f_clip_stop = f_clip_stop_c - local f_eoclip_stop_c = formatters[') ; eoclip p to closedcurve(%s) %s ; draw p ;'] - local f_eoclip_stop_l = formatters[') ; eoclip p to closedlines(%s) %s ; draw p ;'] - local f_eoclip_stop = f_eoclip_stop_c + local f_no_draw = formatters[' nodraw (%s)'] + local f_do_draw = formatters[' draw (%s)'] + local f_no_fill_c = formatters[' nofill closedcurve(%s)'] + local f_do_fill_c = formatters[' fill closedcurve(%s)'] + local f_eo_fill_c = formatters[' eofill closedcurve(%s)'] + local f_no_fill_l = formatters[' nofill closedlines(%s)'] + local f_do_fill_l = formatters[' fill closedlines(%s)'] + local f_eo_fill_l = formatters[' eofill closedlines(%s)'] + local f_closed_draw = formatters[' draw closedcurve(%s)'] + local f_do_fill = f_do_fill_c + local f_eo_fill = f_eo_fill_c + local f_no_fill = f_no_fill_c + local s_clip_start = 'save p ; picture p ; p := image (' + local f_clip_stop_c = formatters[') ; clip p to closedcurve(%s) %s ; draw p ;'] + local f_clip_stop_l = formatters[') ; clip p to closedlines(%s) %s ; draw p ;'] + local f_clip_stop = f_clip_stop_c + local f_eoclip_stop_c = formatters[') ; eoclip p to closedcurve(%s) %s ; draw p ;'] + local f_eoclip_stop_l = formatters[') ; eoclip p to closedlines(%s) %s ; draw p ;'] + local f_eoclip_stop = f_eoclip_stop_c -- could be shared and then beginobject | endobject @@ -2258,8 +2256,8 @@ setmetatableindex(res.at,at) local f_linejoin = formatters[" interim linejoin := %s ;"] local f_miterlimit = formatters[" interim miterlimit := %s ;"] - local s_begingroup = "begingroup;" - local s_endgroup = "endgroup;" + local s_begingroup = "begingroup;" + local s_endgroup = "endgroup;" local linecaps = { butt = "butt", square = "squared", round = "rounded" } local linejoins = { miter = "mitered", bevel = "beveled", round = "rounded" } @@ -2658,8 +2656,8 @@ setmetatableindex(res.at,at) function handlers.polyline(c) poly(c, ")") end function handlers.polygon (c) poly(c,"--cycle)") end - local s_image_start = s_draw_image_start - local s_image_stop = s_draw_image_stop + local s_image_start = "draw image (" + local s_image_stop = ") ;" function handlers.path(c) local at = c.at @@ -2926,21 +2924,21 @@ setmetatableindex(res.at,at) do - local s_start = "\\svgstart " - local s_stop = "\\svgstop " - local f_set = formatters["\\svgset{%N}{%N}"] -- we need a period - local f_color_c = formatters["\\svgcolorc{%.3N}{%.3N}{%.3N}{"] - local f_color_o = formatters["\\svgcoloro{%.3N}{"] - local f_color_b = formatters["\\svgcolorb{%.3N}{%.3N}{%.3N}{%.3N}{"] - local f_poscode = formatters["\\svgpcode{%N}{%N}{%s}"] - local f_poschar = formatters["\\svgpchar{%N}{%N}{%s}"] - local f_posspace = formatters["\\svgpspace{%N}{%N}"] - local f_code = formatters["\\svgcode{%s}"] - local f_char = formatters["\\svgchar{%s}"] - local s_space = "\\svgspace " - local f_size = formatters["\\svgsize{%0.6f}"] -- we need a period - local f_font = formatters["\\svgfont{%s}{%s}{%s}"] - local f_hashed = formatters["\\svghashed{%s}"] + local s_start = "\\svgstart " + local s_stop = "\\svgstop " + local f_set = formatters["\\svgset{%N}{%N}"] -- we need a period + local f_color_c = formatters["\\svgcolorc{%.3N}{%.3N}{%.3N}{"] + local f_color_o = formatters["\\svgcoloro{%.3N}{"] + local f_color_b = formatters["\\svgcolorb{%.3N}{%.3N}{%.3N}{%.3N}{"] + local f_poscode = formatters["\\svgpcode{%N}{%N}{%s}"] + local f_poschar = formatters["\\svgpchar{%N}{%N}{%s}"] + local f_posspace = formatters["\\svgpspace{%N}{%N}"] + local f_code = formatters["\\svgcode{%s}"] + local f_char = formatters["\\svgchar{%s}"] + local s_space = "\\svgspace " + local f_size = formatters["\\svgsize{%0.6f}"] -- we need a period + local f_font = formatters["\\svgfont{%s}{%s}{%s}"] + local f_hashed = formatters["\\svghashed{%s}"] ----- p_texescape = lpegpatterns.texescape diff --git a/tex/context/base/mkxl/node-fin.lmt b/tex/context/base/mkxl/node-fin.lmt index a7086b5b1..2e744a48a 100644 --- a/tex/context/base/mkxl/node-fin.lmt +++ b/tex/context/base/mkxl/node-fin.lmt @@ -79,7 +79,7 @@ nodes.plugindata = nil -- inheritance: -0x7FFFFFFF -- we can best use nil and skip ! -local template = [[ +local template = [[ local plugin = nodes.plugindata local starttiming = statistics.starttiming local stoptiming = statistics.stoptiming diff --git a/tex/context/base/mkxl/node-syn.lmt b/tex/context/base/mkxl/node-syn.lmt index df3abe3db..dfa1a19e8 100644 --- a/tex/context/base/mkxl/node-syn.lmt +++ b/tex/context/base/mkxl/node-syn.lmt @@ -180,19 +180,19 @@ local foundintree = resolvers.foundintree local getpagedimensions = layouts.getpagedimensions -local eol = "\010" +local eol = "\010" ----- f_glue = formatters["g%i,%i:%i,%i\010"] ----- f_glyph = formatters["x%i,%i:%i,%i\010"] ----- f_kern = formatters["k%i,%i:%i,%i:%i\010"] ----- f_rule = formatters["r%i,%i:%i,%i:%i,%i,%i\010"] ----- f_form = formatters["f%i,%i,%i\010"] -local z_hlist = "[0,0:0,0:0,0,0\010" -local z_vlist = "(0,0:0,0:0,0,0\010" ------ z_xform = "<0,0:0,0,0\010" -- or so -local s_hlist = "]\010" -local s_vlist = ")\010" ------ s_xform = ">\010" +local z_hlist = "[0,0:0,0:0,0,0\010" +local z_vlist = "(0,0:0,0:0,0,0\010" +----- z_xform = "<0,0:0,0,0\010" -- or so +local s_hlist = "]\010" +local s_vlist = ")\010" +----- s_xform = ">\010" local f_hlist_1 = formatters["h%i,%i:%i,%i:%i,%i,%i\010"] local f_hlist_2 = formatters["h%i,%i:%i,%s:%i,%i,%i\010"] local f_vlist_1 = formatters["v%i,%i:%i,%i:%i,%i,%i\010"] diff --git a/tex/context/base/mkxl/pack-rul.mkxl b/tex/context/base/mkxl/pack-rul.mkxl index f1d8cbf31..42b472aa2 100644 --- a/tex/context/base/mkxl/pack-rul.mkxl +++ b/tex/context/base/mkxl/pack-rul.mkxl @@ -2763,12 +2763,12 @@ {\bgroup \edef\currentframedtext{#1} \doifelseassignment{#2} - {\pack_framed_text_start_continue\empty{#2}} - {\pack_framed_text_start_continue{#2}{#3}}} + {\pack_framed_text_start_indeed\empty{#2}} + {\pack_framed_text_start_indeed{#2}{#3}}} -% todo: sort out first/lastline ht/dp +% todo: sort out first/lastline ht/dp . . will be a more advanced mechanism some day (soon) -\def\pack_framed_text_start_continue#1#2% +\def\pack_framed_text_start_indeed#1#2% {\setupframedtexts[\currentframedtext][#2]% \doifsomething{#1}{\setframedtextparameter\c!location{#1}}% does not listen to #3 \setfalse\c_framed_text_location_none @@ -2790,7 +2790,7 @@ \else \bgroup \fi - \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1 + % no longer: \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1 \doinhibitblank \useindentingparameter\framedtextparameter \useframedtextstyleandcolor\c!style\c!color @@ -2903,7 +2903,7 @@ \blank[\v!disable]% \enforced\let\\\endgraf \useframedtextstyleandcolor\c!style\c!color - \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1 + % no longer: \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1 \framedtextparameter\c!inner \ifx\p_framed_text_strut\v!no \let\pack_framed_strut\relax diff --git a/tex/context/base/mkxl/spac-ver.lmt b/tex/context/base/mkxl/spac-ver.lmt index 76d1ce9db..1af5096fb 100644 --- a/tex/context/base/mkxl/spac-ver.lmt +++ b/tex/context/base/mkxl/spac-ver.lmt @@ -751,9 +751,10 @@ do local k_fixed = variables.fixed local k_flexible = variables.flexible - local k_category = "category" - local k_penalty = "penalty" - local k_order = "order" + + local k_category = "category" + local k_penalty = "penalty" + local k_order = "order" function vspacing.setmap(from,to) map[from] = to diff --git a/tex/context/base/mkxl/strc-ref.mklx b/tex/context/base/mkxl/strc-ref.mklx index 3b21ca07a..ad62a52e5 100644 --- a/tex/context/base/mkxl/strc-ref.mklx +++ b/tex/context/base/mkxl/strc-ref.mklx @@ -816,6 +816,10 @@ \newcount\locationorder \newbox \locationbox +\appendtoks + \locationfalse +\to \everypreroll + \permanent\def\nextinternalreference {\the\locationcount} \permanent\def\nextinternalorderreference{\the\locationorder} diff --git a/tex/context/base/mkxl/strc-reg.lmt b/tex/context/base/mkxl/strc-reg.lmt new file mode 100644 index 000000000..6e26f6f37 --- /dev/null +++ b/tex/context/base/mkxl/strc-reg.lmt @@ -0,0 +1,1668 @@ +if not modules then modules = { } end modules ['strc-reg'] = { + version = 1.001, + comment = "companion to strc-reg.mkiv", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +local next, type, tonumber, rawget = next, type, tonumber, rawget +local char, format, gmatch = string.char, string.format, string.gmatch +local equal, concat, remove = table.are_equal, table.concat, table.remove +local lpegmatch, P, C, Ct = lpeg.match, lpeg.P, lpeg.C, lpeg.Ct +local allocate = utilities.storage.allocate + +local trace_registers = false trackers.register("structures.registers", function(v) trace_registers = v end) + +local report_registers = logs.reporter("structure","registers") + +local structures = structures +local registers = structures.registers +local helpers = structures.helpers +local sections = structures.sections +local documents = structures.documents +local pages = structures.pages +local references = structures.references + +local usedinternals = references.usedinternals + +local mappings = sorters.mappings +local entries = sorters.entries +local replacements = sorters.replacements + +local processors = typesetters.processors +local splitprocessor = processors.split + +local texgetcount = tex.getcount + +local variables = interfaces.variables +local v_forward = variables.forward +local v_all = variables.all +local v_no = variables.no +local v_yes = variables.yes +local v_packed = variables.packed +local v_current = variables.current +local v_previous = variables.previous +local v_first = variables.first +local v_last = variables.last +local v_text = variables.text +local v_section = variables.section + +local context = context +local ctx_latelua = context.latelua + +local implement = interfaces.implement + +local matchingtilldepth = sections.matchingtilldepth +local numberatdepth = sections.numberatdepth +local currentlevel = sections.currentlevel +local currentid = sections.currentid + +local touserdata = helpers.touserdata + +local internalreferences = references.internals +local setinternalreference = references.setinternalreference + +local setmetatableindex = table.setmetatableindex + +local absmaxlevel = 5 -- \c_strc_registers_maxlevel + +local h_prefixpage = helpers.prefixpage +local h_prefixlastpage = helpers.prefixlastpage +local h_title = helpers.title +local h_prefix = helpers.prefix + +local ctx_startregisteroutput = context.startregisteroutput +local ctx_stopregisteroutput = context.stopregisteroutput +local ctx_startregistersection = context.startregistersection +local ctx_stopregistersection = context.stopregistersection +local ctx_startregisterentries = context.startregisterentries +local ctx_stopregisterentries = context.stopregisterentries +local ctx_startregisterentry = context.startregisterentry +local ctx_stopregisterentry = context.stopregisterentry +local ctx_startregisterpages = context.startregisterpages +local ctx_stopregisterpages = context.stopregisterpages +local ctx_startregisterseewords = context.startregisterseewords +local ctx_stopregisterseewords = context.stopregisterseewords + +local ctx_registerentry = context.registerentry +local ctx_registerseeword = context.registerseeword +local ctx_registerpagerange = context.registerpagerange +local ctx_registeronepage = context.registeronepage +local ctx_registersection = context.registersection +local ctx_registerpacked = context.registerpacked + +-- possible export, but ugly code (overloads) +-- +-- local output, section, entries, nofentries, pages, words, rawtext +-- +-- h_title = function(a,b) rawtext = a end +-- +-- local function ctx_startregisteroutput() +-- output = { } +-- section = nil +-- entries = nil +-- nofentries = nil +-- pages = nil +-- words = nil +-- rawtext = nil +-- end +-- local function ctx_stopregisteroutput() +-- inspect(output) +-- output = nil +-- section = nil +-- entries = nil +-- nofentries = nil +-- pages = nil +-- words = nil +-- rawtext = nil +-- end +-- local function ctx_startregistersection(tag) +-- section = { } +-- output[#output+1] = { +-- section = section, +-- tag = tag, +-- } +-- end +-- local function ctx_stopregistersection() +-- end +-- local function ctx_startregisterentries(n) +-- entries = { } +-- nofentries = 0 +-- section[#section+1] = entries +-- end +-- local function ctx_stopregisterentries() +-- end +-- local function ctx_startregisterentry(n) -- or subentries (nested?) +-- nofentries = nofentries + 1 +-- entry = { } +-- entries[nofentries] = entry +-- end +-- local function ctx_stopregisterentry() +-- nofentries = nofentries - 1 +-- entry = entries[nofentries] +-- end +-- local function ctx_startregisterpages() +-- pages = { } +-- entry.pages = pages +-- end +-- local function ctx_stopregisterpages() +-- end +-- local function ctx_startregisterseewords() +-- words = { } +-- entry.words = words +-- end +-- local function ctx_stopregisterseewords() +-- end +-- local function ctx_registerentry(processor,internal,seeparent,text) +-- text() +-- entry.text = { +-- processor = processor, +-- internal = internal, +-- seeparent = seeparent, +-- text = rawtext, +-- } +-- end +-- local function ctx_registerseeword(i,n,processor,internal,seeindex,seetext) +-- seetext() +-- entry.words[i] = { +-- processor = processor, +-- internal = internal, +-- seeparent = seeparent, +-- seetext = rawtext, +-- } +-- end +-- local function ctx_registerpagerange(fprocessor,finternal,frealpage,lprocessor,linternal,lrealpage) +-- pages[#pages+1] = { +-- first = { +-- processor = fprocessor, +-- internal = finternal, +-- realpage = frealpage, +-- }, +-- last = { +-- processor = lprocessor, +-- internal = linternal, +-- realpage = lrealpage, +-- }, +-- } +-- end +-- local function ctx_registeronepage(processor,internal,realpage) +-- pages[#pages+1] = { +-- processor = processor, +-- internal = internal, +-- realpage = realpage, +-- } +-- end + +-- some day we will share registers and lists (although there are some conceptual +-- differences in the application of keywords) + +local function filtercollected(names,criterium,number,collected,prevmode) + if not criterium or criterium == "" then + criterium = v_all + end + local data = documents.data + local numbers = data.numbers + local depth = data.depth + local hash = { } + local result = { } + local nofresult = 0 + local all = not names or names == "" or names == v_all + local detail = nil + if not all then + for s in gmatch(names,"[^, ]+") do + hash[s] = true + end + end + if criterium == v_all or criterium == v_text then + for i=1,#collected do + local v = collected[i] + if all then + nofresult = nofresult + 1 + result[nofresult] = v + else + local vmn = v.metadata and v.metadata.name + if hash[vmn] then + nofresult = nofresult + 1 + result[nofresult] = v + end + end + end + elseif criterium == v_current then + local collectedsections = sections.collected + for i=1,#collected do + local v = collected[i] + local sectionnumber = collectedsections[v.references.section] + if sectionnumber then + local cnumbers = sectionnumber.numbers + if prevmode then + if (all or hash[v.metadata.name]) and #cnumbers >= depth then -- is the = ok for lists as well? + local ok = true + for d=1,depth do + if not (cnumbers[d] == numbers[d]) then -- no zero test + ok = false + break + end + end + if ok then + nofresult = nofresult + 1 + result[nofresult] = v + end + end + else + if (all or hash[v.metadata.name]) and #cnumbers > depth then + local ok = true + for d=1,depth do + local cnd = cnumbers[d] + if not (cnd == 0 or cnd == numbers[d]) then + ok = false + break + end + end + if ok then + nofresult = nofresult + 1 + result[nofresult] = v + end + end + end + end + end + elseif criterium == v_previous then + local collectedsections = sections.collected + for i=1,#collected do + local v = collected[i] + local sectionnumber = collectedsections[v.references.section] + if sectionnumber then + local cnumbers = sectionnumber.numbers + if (all or hash[v.metadata.name]) and #cnumbers >= depth then + local ok = true + if prevmode then + for d=1,depth do + if not (cnumbers[d] == numbers[d]) then + ok = false + break + end + end + else + for d=1,depth do + local cnd = cnumbers[d] + if not (cnd == 0 or cnd == numbers[d]) then + ok = false + break + end + end + end + if ok then + nofresult = nofresult + 1 + result[nofresult] = v + end + end + end + end + elseif criterium == variables["local"] then + if sections.autodepth(data.numbers) == 0 then + return filtercollected(names,v_all,number,collected,prevmode) + else + return filtercollected(names,v_current,number,collected,prevmode) + end + else -- sectionname, number + -- beware, this works ok for registers + -- to be redone with reference instead + local depth = sections.getlevel(criterium) + local number = tonumber(number) or numberatdepth(depth) or 0 + if trace_registers then + detail = format("depth: %s, number: %s, numbers: %s, startset: %s",depth,number,concat(sections.numbers(),".",1,depth),#collected) + end + if number > 0 then + for i=1,#collected do + local v = collected[i] + local r = v.references + if r then + local sectionnumber = sections.collected[r.section] + if sectionnumber then + local metadata = v.metadata + local cnumbers = sectionnumber.numbers + if cnumbers then + if (all or hash[metadata.name or false]) and #cnumbers >= depth and matchingtilldepth(depth,cnumbers) then + nofresult = nofresult + 1 + result[nofresult] = v + end + end + end + end + end + end + end + if trace_registers then + if detail then + report_registers("criterium %a, detail %a, found %a",criterium,detail,#result) + else + report_registers("criterium %a, detail %a, found %a",criterium,nil,#result) + end + end + return result +end + +local tobesaved = allocate() +local collected = allocate() + +registers.collected = collected +registers.tobesaved = tobesaved +registers.filtercollected = filtercollected + +-- we follow a different strategy than by lists, where we have a global +-- result table; we might do that here as well but since sorting code is +-- older we delay that decision + +-- maybe store the specification in the format (although we predefine only +-- saved registers) + +local function checker(t,k) + local v = { + metadata = { + language = 'en', + sorted = false, + class = class, + }, + entries = { }, + } + t[k] = v + return v +end + +local function initializer() + tobesaved = registers.tobesaved + collected = registers.collected + setmetatableindex(tobesaved,checker) + setmetatableindex(collected,checker) + local usedinternals = references.usedinternals + for name, list in next, collected do + local entries = list.entries + if not list.metadata.notsaved then + for e=1,#entries do + local entry = entries[e] + local r = entry.references + if r then + local internal = r and r.internal + if internal then + internalreferences[internal] = entry + usedinternals[internal] = r.used + end + end + end + end + end + -- references.sortedinternals = sortedkeys(internalreferences) -- todo: when we need it more than once +end + +local function finalizer() + local flaginternals = references.flaginternals + local usedviews = references.usedviews + for k, v in next, tobesaved do + local entries = v.entries + if entries then + for i=1,#entries do + local r = entries[i].references + if r then + local i = r.internal + local f = flaginternals[i] + if f then + r.used = usedviews[i] or true + end + end + end + end + end +end + +job.register('structures.registers.collected', tobesaved, initializer, finalizer) + +setmetatableindex(tobesaved,checker) +setmetatableindex(collected,checker) + +local function defineregister(class,method) + local d = tobesaved[class] + if method == v_forward then + d.metadata.notsaved = true + end +end + +registers.define = defineregister -- 4 times is somewhat over the top but we want consistency +registers.setmethod = defineregister -- and we might have a difference some day + +implement { + name = "defineregister", + actions = defineregister, + arguments = "2 strings", +} + +implement { + name = "setregistermethod", + actions = defineregister, -- duplicate use + arguments = "2 strings", +} + + +local p_s = P("+") +local p_e = P("&") * (1-P(";"))^0 * P(";") +local p_r = C((p_e + (1-p_s))^0) + +local entrysplitter_xml = Ct(p_r * (p_s * p_r)^0) -- bah +local entrysplitter_tex = lpeg.tsplitat('+') -- & obsolete in mkiv + +local tagged = { } + +-- this whole splitting is an inheritance of mkii + +local function preprocessentries(rawdata) + local entries = rawdata.entries + if entries then + local processors = rawdata.processors + local et = entries.entries + local kt = entries.keys + local pt = entries.processors + local entryproc = processors and processors.entry + local pageproc = processors and processors.page + local coding = rawdata.metadata.coding + if entryproc == "" then + entryproc = nil + end + if pageproc == "" then + pageproc = nil + end + if not et then + local p, e = splitprocessor(entries.entry or "") + if p then + entryproc = p + end + et = lpegmatch(coding == "xml" and entrysplitter_xml or entrysplitter_tex,e) + end + if not kt then + local p, k = splitprocessor(entries.key or "") + if p then + pageproc = p + end + kt = lpegmatch(coding == "xml" and entrysplitter_xml or entrysplitter_tex,k) + end + if not pt then + pt = { } + end + -- + entries = { } + local ok = false + for k=#et,1,-1 do + local etk = et[k] + local ktk = kt[k] + local ptk = pt[k] + if not ok and etk == "" then + entries[k] = nil + else + entries[k] = { etk or "", ktk ~= "" and ktk or false, ptk ~= "" and ptk or false } + ok = true + end + end + rawdata.list = entries + if pageproc or entryproc then + rawdata.processors = { entryproc, pageproc } -- old way: indexed .. will be keys + end + rawdata.entries = nil + end + local seeword = rawdata.seeword + if seeword then + seeword.processor, seeword.text = splitprocessor(seeword.text or "") + end +end + +local function storeregister(rawdata) -- metadata, references, entries + local references = rawdata.references + local metadata = rawdata.metadata + -- checking + if not metadata then + metadata = { } + rawdata.metadata = metadata + end + -- + if not metadata.kind then + metadata.kind = "entry" + end + -- + -- + if not metadata.catcodes then + metadata.catcodes = tex.catcodetable -- get + end + -- + local name = metadata.name + local notsaved = tobesaved[name].metadata.notsaved + -- + if not references then + references = { } + rawdata.references = references + end + -- + local internal = references.internal + if not internal then + internal = texgetcount("locationcount") -- we assume that it has been set + references.internal = internal + end + -- + if notsaved then + usedinternals[internal] = references.used -- todo view (we assume that forward references index entries are used) + end + -- + if not references.realpage then + references.realpage = 0 -- just to be sure as it can be refered to + end + -- + local userdata = rawdata.userdata + if userdata then + rawdata.userdata = touserdata(userdata) + end + -- + references.section = currentid() + metadata.level = currentlevel() + -- + local data = notsaved and collected[name] or tobesaved[name] + local entries = data.entries + internalreferences[internal] = rawdata + preprocessentries(rawdata) + entries[#entries+1] = rawdata + local label = references.label + if label and label ~= "" then + tagged[label] = #entries + else + references.label = nil + end + return #entries +end + +local function enhanceregister(specification) + local name = specification.name + local n = specification.n + local saved = tobesaved[name] + local data = saved.metadata.notsaved and collected[name] or saved + local entry = data.entries[n] + if entry then + entry.references.realpage = texgetcount("realpageno") + end +end + +-- This can become extendregister(specification)! + +local function extendregister(name,tag,rawdata) -- maybe do lastsection internally + if type(tag) == "string" then + tag = tagged[tag] + end + if tag then + local data = tobesaved[name].metadata.notsaved and collected[name] or tobesaved[name] + local entry = data.entries[tag] + if entry then + local references = entry.references + references.lastrealpage = texgetcount("realpageno") + references.lastsection = currentid() + if rawdata then + local userdata = rawdata.userdata + if userdata then + rawdata.userdata = touserdata(userdata) + end + if rawdata.entries then + preprocessentries(rawdata) + end + local metadata = rawdata.metadata + if metadata and not metadata.catcodes then + metadata.catcodes = tex.catcodetable -- get + end + for k, v in next, rawdata do + local rk = references[k] + if not rk then + references[k] = v + else + for kk, vv in next, v do + if type(vv) == "table" then + if next(vv) then + rk[kk] = vv + end + elseif vv ~= "" then + rk[kk] = vv + end + end + end + end + end + end + end +end + +registers.store = storeregister +registers.enhance = enhanceregister +registers.extend = extendregister + +function registers.get(tag,n) + local list = tobesaved[tag] + return list and list.entries[n] +end + +implement { + name = "enhanceregister", + arguments = { "string", "integer" }, + actions = function(name,n) + enhanceregister { name = name, n = n } -- todo: move to scanner + end, +} + +implement { + name = "deferredenhanceregister", + arguments = { "string", "integer" }, + protected = true, + actions = function(name,n) + ctx_latelua { action = enhanceregister, name = name, n = n } + end, +} + +implement { + name = "extendregister", + actions = extendregister, + arguments = "2 strings", +} + +implement { + name = "storeregister", + -- actions = function(rawdata) + -- local nofentries = storeregister(rawdata) + -- setinternalreference { internal = rawdata.references.internal } + -- context(nofentries) + -- end, + actions = { storeregister, context }, + arguments = { + { + { "metadata", { + { "kind" }, + { "name" }, + { "coding" }, + { "level", "integer" }, + { "catcodes", "integer" }, + { "own" }, + { "xmlroot" }, + { "xmlsetup" }, + } + }, + { "entries", { + { "entries", "list" }, + { "keys", "list" }, + { "processors", "list" }, + { "entry" }, + { "key" }, + { "processor" }, + } + }, + { "references", { + { "internal", "integer" }, + { "section", "integer" }, + { "view" }, + { "label" }, + } + }, + { "seeword", { + { "text" }, + } + }, + { "processors", { + { "entry" }, + { "key" }, + { "page" }, + } + }, + { "userdata" }, + } + } +} + +-- sorting and rendering + +local compare = sorters.comparers.basic + +function registers.compare(a,b) + local result = compare(a,b) + if result ~= 0 then + return result + else + local ka = a.metadata.kind + local kb = b.metadata.kind + if ka == kb then + local ra = a.references + local rb = b.references + local pa = ra.realpage + local pb = rb.realpage + if not pa or not pb then + return 0 + elseif pa < pb then + return -1 + elseif pa > pb then + return 1 + else + -- new, we need to pick the right one of multiple and + -- we want to prevent oscillation in the tuc file so: + local ia = ra.internal + local ib = rb.internal + if not ia or not ib then + return 0 + elseif ia < ib then + return -1 + elseif ia > ib then + return 1 + else + return 0 + end + end + elseif ka == "see" then + return 1 + elseif kb == "see" then + return -1 + end + end + return 0 +end + +function registers.filter(data,options) + data.result = registers.filtercollected(nil,options.criterium,options.number,data.entries,true) +end + +local seeindex = 0 + +-- meerdere loops, seewords, dan words, anders seewords + +-- todo: split seeword + +local function crosslinkseewords(result,check) -- all words + -- collect all seewords + local seewords = { } + for i=1,#result do + local data = result[i] + local seeword = data.seeword + if seeword then + local seetext = seeword.text + if seetext and not seewords[seetext] then + seeindex = seeindex + 1 + seewords[seetext] = seeindex + if trace_registers then + report_registers("see word %03i: %s",seeindex,seetext) + end + end + end + end + + -- mark seeparents + + -- local seeparents = { } + -- for i=1,#result do + -- local data = result[i] + -- local word = data.list[1] + -- local okay = word and word[1] + -- if okay then + -- local seeindex = seewords[okay] + -- if seeindex then + -- seeparents[okay] = data + -- data.references.seeparent = seeindex + -- if trace_registers then + -- report_registers("see parent %03i: %s",seeindex,okay) + -- end + -- end + -- end + -- end + + local entries = { } + local keywords = { } + local seeparents = { } + for i=1,#result do + local data = result[i] + local word = data.list + local size = #word + if data.seeword then + -- beware: a seeword has an extra entry for sorting purposes + size = size - 1 + end + for i=1,size do + local w = word[i] + local e = w[1] + local k = w[2] or e + entries [i] = e + keywords[i] = k + end + -- first try the keys + local okay, seeindex + for n=size,1,-1 do + okay = concat(keywords,"+",1,n) + seeindex = seewords[okay] + -- first try the entries + if seeindex then + break + end + okay = concat(entries,"+",1,n) + seeindex = seewords[okay] + if seeindex then + break + end + end + if seeindex then + seeparents[okay] = data + data.references.seeparent = seeindex + if trace_registers then + report_registers("see parent %03i: %s",seeindex,okay) + end + end + end + + -- mark seewords and extend sort list + for i=1,#result do + local data = result[i] + local seeword = data.seeword + if seeword then + local text = seeword.text + if text then + local seeparent = seeparents[text] + if seeparent then + local seeindex = seewords[text] + data.references.seeindex = seeindex + if trace_registers then + report_registers("see crosslink %03i: %s",seeindex,text) + end + seeword.valid = true + elseif check then + report_registers("invalid crosslink : %s, %s",text,"ignored") + seeword.valid = false + else + report_registers("invalid crosslink : %s, %s",text,"passed") + seeword.valid = true + end + end + end + end +end + +local function removeemptyentries(result) + local i, n, m = 1, #result, 0 + while i <= n do + local entry = result[i] + if #entry.list == 0 or #entry.split == 0 then + remove(result,i) + n = n - 1 + m = m + 1 + else + i = i + 1 + end + end + if m > 0 then + report_registers("%s empty entries removed in register",m) + end +end + +function registers.prepare(data,options) + -- data has 'list' table + local strip = sorters.strip + local splitter = sorters.splitters.utf + local result = data.result + if result then + local seeprefix = char(0) + for i=1, #result do + local entry = result[i] + local split = { } + local list = entry.list + if list then + if entry.seeword then + -- we can have multiple seewords, only two levels supported + list[#list+1] = { seeprefix .. strip(entry.seeword.text) } + end + for l=1,#list do + local ll = list[l] + local word = ll[1] + local key = ll[2] + if not key or key == "" then + key = word + end + split[l] = splitter(strip(key)) + end + end + entry.split = split + end + removeemptyentries(result) + crosslinkseewords(result,options.check ~= v_no) + end +end + +function registers.sort(data,options) + -- if options.pagenumber == false then + -- sorters.sort(data.result,compare) + -- else + sorters.sort(data.result,registers.compare) + -- end +end + +function registers.unique(data,options) + local result = { } + local nofresult = 0 + local prev = nil + local dataresult = data.result + local bysection = options.pagemethod == v_section -- normally page + for k=1,#dataresult do + local v = dataresult[k] + if prev then + local vr = v.references + local pr = prev.references + if not equal(prev.list,v.list) then + -- ok + elseif bysection and vr.section == pr.section then + v = nil + -- ok + elseif pr.realpage ~= vr.realpage then + -- ok + else + local pl = pr.lastrealpage + local vl = vr.lastrealpage + if pl or vl then + if not vl then + -- ok + elseif not pl then + -- ok + elseif pl ~= vl then + -- ok + else + v = nil + end + else + v = nil + end + end + end + if v then + nofresult = nofresult + 1 + result[nofresult] = v + prev = v + end + end + data.result = result +end + +function registers.finalize(data,options) -- maps character to index (order) + local result = data.result + data.metadata.nofsorted = #result + local split = { } + local nofsplit = 0 + local lasttag = nil + local done = nil + local nofdone = 0 + local firstofsplit = sorters.firstofsplit + for k=1,#result do + local v = result[k] + local entry, tag = firstofsplit(v) + if tag ~= lasttag then + if trace_registers then + report_registers("splitting at %a",tag) + end + done = { } + nofdone = 0 + nofsplit = nofsplit + 1 + lasttag = tag + split[nofsplit] = { tag = tag, data = done } + end + nofdone = nofdone + 1 + done[nofdone] = v + end + data.result = split +end + +-- local function analyzeregister(class,options) +-- local data = collected[class] +-- if data and data.entries then +-- options = options or { } +-- sorters.setlanguage(options.language,options.method,options.numberorder) +-- registers.filter(data,options) -- filter entries into results (criteria) +-- registers.prepare(data,options) -- adds split table parallel to list table +-- registers.sort(data,options) -- sorts results +-- registers.unique(data,options) -- get rid of duplicates +-- registers.finalize(data,options) -- split result in ranges +-- data.metadata.sorted = true +-- return data.metadata.nofsorted or 0 +-- else +-- return 0 +-- end +-- end + +local function analyzeregister(class,options) + local data = rawget(collected,class) + if not data then + local list = utilities.parsers.settings_to_array(class) + local entries = { } + local metadata = false + for i=1,#list do + local l = list[i] + local d = collected[l] + local e = d.entries + for i=1,#e do + entries[#entries+1] = e[i] + end + if not metadata then + metadata = d.metadata + end + end + data = { + metadata = metadata or { }, + entries = entries, + } + collected[class] = data + end + if data and data.entries then + options = options or { } + sorters.setlanguage(options.language,options.method,options.numberorder) + registers.filter(data,options) -- filter entries into results (criteria) + registers.prepare(data,options) -- adds split table parallel to list table + registers.sort(data,options) -- sorts results + registers.unique(data,options) -- get rid of duplicates + registers.finalize(data,options) -- split result in ranges + data.metadata.sorted = true + return data.metadata.nofsorted or 0 + else + return 0 + end +end + +registers.analyze = analyzeregister + +implement { + name = "analyzeregister", + actions = { analyzeregister, context }, + arguments = { + "string", + { + { "language" }, + { "method" }, + { "numberorder" }, + { "compress" }, + { "criterium" }, + { "pagenumber", "boolean" }, + } + } +} + +-- todo take conversion from index + +function registers.userdata(index,name) + local data = references.internals[tonumber(index)] + return data and data.userdata and data.userdata[name] or nil +end + +implement { + name = "registeruserdata", + actions = { registers.userdata, context }, + arguments = { "integer", "string" } +} + +-- todo: ownnumber + +local function pagerange(f_entry,t_entry,is_last,prefixspec,pagespec) + local fer = f_entry.references + local ter = t_entry.references + ctx_registerpagerange( + f_entry.metadata.name or "", + f_entry.processors and f_entry.processors[2] or "", + fer.internal or 0, + fer.realpage or 0, + function() + h_prefixpage(f_entry,prefixspec,pagespec) + end, + ter.internal or 0, + ter.lastrealpage or ter.realpage or 0, + function() + if is_last then + h_prefixlastpage(t_entry,prefixspec,pagespec) -- swaps page and realpage keys + else + h_prefixpage (t_entry,prefixspec,pagespec) + end + end + ) +end + +local function pagenumber(entry,prefixspec,pagespec) + local er = entry.references + ctx_registeronepage( + entry.metadata.name or "", + entry.processors and entry.processors[2] or "", + er.internal or 0, + er.realpage or 0, + function() h_prefixpage(entry,prefixspec,pagespec) end + ) +end + +local function packed(f_entry,t_entry) + local fer = f_entry.references + local ter = t_entry.references + ctx_registerpacked( + fer.internal or 0, + ter.internal or 0 + ) +end + +local function collapsedpage(pages) + for i=2,#pages do + local first = pages[i-1] + local second = pages[i] + local first_first = first[1] + local first_last = first[2] + local second_first = second[1] + local second_last = second[2] + local first_last_pn = first_last .references.realpage + local second_first_pn = second_first.references.realpage + local second_last_pn = second_last .references.realpage + local first_last_last = first_last .references.lastrealpage + local second_first_last = second_first.references.lastrealpage + if first_last_last then + first_last_pn = first_last_last + if second_first == second_last and second_first_pn <= first_last_pn then + -- 2=8, 5 -> 12=8 + remove(pages,i) + return true + elseif second_first == second_last and second_first_pn > first_last_pn then + -- 2=8, 9 -> 2-9 + pages[i-1] = { first_first, second_last } + remove(pages,i) + return true + elseif second_last_pn < first_last_pn then + -- 2=8, 3-4 -> 2=8 + remove(pages,i) + return true + elseif first_last_pn < second_last_pn then + -- 2=8, 3-9 -> 2-9 + pages[i-1] = { first_first, second_last } + remove(pages,i) + return true + elseif first_last_pn + 1 == second_first_pn and second_last_pn > first_last_pn then + -- 2=8, 9-11 -> 2-11 + pages[i-1] = { first_first, second_last } + remove(pages,i) + return true + elseif second_first.references.lastrealpage then + -- 2=8, 9=11 -> 2-11 + pages[i-1] = { first_first, second_last } + remove(pages,i) + return true + end + elseif second_first_last then + second_first_pn = second_first_last + if first_last_pn == second_first_pn then + -- 2-4, 5=9 -> 2-9 + pages[i-1] = { first_first, second_last } + remove(pages,i) + return true + end + elseif first_last_pn == second_first_pn then + -- 2-3, 3-4 -> 2-4 + pages[i-1] = { first_last, second_last } + remove(pages,i) + return true + end + end + return false +end + +local function collapsepages(pages) + while collapsedpage(pages) do end + return #pages +end + +-- todo: create an intermediate structure and flush that + +function registers.flush(data,options,prefixspec,pagespec) + local compress = options.compress + local collapse_singles = compress == v_yes + local collapse_ranges = compress == v_all + local collapse_packed = compress == v_packed + local show_page_number = options.pagenumber ~= false -- true or false + local bysection = options.pagemethod == v_section + local result = data.result + local maxlevel = 0 + -- + for i=1,#result do + local data = result[i].data + for d=1,#data do + local m = #data[d].list + if m > maxlevel then + maxlevel = m + end + end + end + if maxlevel > absmaxlevel then + maxlevel = absmaxlevel + report_registers("limiting level to %a",maxlevel) + end + -- + ctx_startregisteroutput() + local done = { } + local started = false + for i=1,#result do + -- ranges need checking ! + local sublist = result[i] + -- local done = { false, false, false, false } + for i=1,maxlevel do + done[i] = false + end + local data = sublist.data + local d = 0 + local n = 0 + ctx_startregistersection(sublist.tag) + for d=1,#data do + local entry = data[d] + if entry.metadata.kind == "see" then + local list = entry.list + if #list > 1 then + list[#list] = nil + else + -- we have an \seeindex{Foo}{Bar} without Foo being defined anywhere .. somehow this message is wrong + -- report_registers("invalid see entry in register %a, reference %a",entry.metadata.name,list[1][1]) + end + end + end + -- ok, this is tricky: we use e[i] delayed so we need it to be local + -- but we don't want to allocate too many entries so there we go + + while d < #data do + d = d + 1 + local entry = data[d] +-- inspect(entry) + local metadata = entry.metadata + local kind = metadata.kind + local list = entry.list + local e = { false, false, false } + for i=3,maxlevel do + e[i] = false + end + for i=1,maxlevel do + local li = list[i] + if list[i] then + e[i] = li[1] + end + if e[i] == done[i] then + -- skip + elseif not e[i] then + -- see ends up here + -- can't happen any more + done[i] = false + for j=i+1,maxlevel do + done[j] = false + end + elseif e[i] == "" then + done[i] = false + for j=i+1,maxlevel do + done[j] = false + end + else + done[i] = e[i] + for j=i+1,maxlevel do + done[j] = false + end + if started then + ctx_stopregisterentry() + started = false + end + if n == i then + -- ctx_stopregisterentries() + -- ctx_startregisterentries(n) + else + while n > i do + n = n - 1 + ctx_stopregisterentries() + end + while n < i do + n = n + 1 + ctx_startregisterentries(n) + end + end + local references = entry.references + local processors = entry.processors + local internal = references.internal or 0 + local seeparent = references.seeparent or "" + local processor = (li and li[3]) or (processors and processors[1]) or "" + -- so, we need to keep e as is (local), or we need local title = e[i] ... which might be + -- more of a problem + ctx_startregisterentry(0) -- will become a counter + started = true + if metadata then + ctx_registerentry(metadata.name or "",processor,internal,seeparent,function() h_title(e[i],metadata) end) + else + -- can this happen? + ctx_registerentry("",processor,internal,seeindex,e[i]) + end + end + end + + local function case_1() + -- we collapse ranges and keep existing ranges as they are + -- so we get prebuilt as well as built ranges + local first, last, prev, pages, dd, nofpages = entry, nil, entry, { }, d, 0 + while dd < #data do + dd = dd + 1 + local next = data[dd] + if next and next.metadata.kind == "see" then + dd = dd - 1 + break + else + local el, nl = entry.list, next.list + if not equal(el,nl) then + dd = dd - 1 + --~ first = nil + break + elseif next.references.lastrealpage then + nofpages = nofpages + 1 + pages[nofpages] = first and { first, last or first } or { entry, entry } + nofpages = nofpages + 1 + pages[nofpages] = { next, next } + first, last, prev = nil, nil, nil + elseif not first then + first, prev = next, next + elseif next.references.realpage - prev.references.realpage == 1 then -- 1 ? + last, prev = next, next + else + nofpages = nofpages + 1 + pages[nofpages] = { first, last or first } + first, last, prev = next, nil, next + end + end + end + if first then + nofpages = nofpages + 1 + pages[nofpages] = { first, last or first } + end + if collapse_ranges and nofpages > 1 then + nofpages = collapsepages(pages) + end + if nofpages > 0 then -- or 0 + d = dd + for p=1,nofpages do + local first, last = pages[p][1], pages[p][2] + if first == last then + if first.references.lastrealpage then + pagerange(first,first,true,prefixspec,pagespec) + else + pagenumber(first,prefixspec,pagespec) + end + elseif last.references.lastrealpage then + pagerange(first,last,true,prefixspec,pagespec) + else + pagerange(first,last,false,prefixspec,pagespec) + end + end + elseif entry.references.lastrealpage then + pagerange(entry,entry,true,prefixspec,pagespec) + else + pagenumber(entry,prefixspec,pagespec) + end + end + + local function case_2() + local first = nil + local last = nil + while true do + if not first then + first = entry + end + last = entry + if d == #data then + break + else + d = d + 1 + local next = data[d] + if next.metadata.kind == "see" or not equal(entry.list,next.list) then + d = d - 1 + break + else + entry = next + end + end + end + packed(first,last) -- returns internals + end + + local function case_3() + while true do + if entry.references.lastrealpage then + pagerange(entry,entry,true,prefixspec,pagespec) + else + pagenumber(entry,prefixspec,pagespec) + end + if d == #data then + break + else + d = d + 1 + local next = data[d] + if next.metadata.kind == "see" or not equal(entry.list,next.list) then + d = d - 1 + break + else + entry = next + end + end + end + end + + local function case_4() + local t = { } + local nt = 0 + while true do + if entry.seeword and entry.seeword.valid then + nt = nt + 1 + t[nt] = entry + end + if d == #data then + break + else + d = d + 1 + local next = data[d] + if next.metadata.kind ~= "see" or not equal(entry.list,next.list) then + d = d - 1 + break + else + entry = next + end + end + end + for i=1,nt do + local entry = t[i] + local seeword = entry.seeword + local seetext = seeword.text or "" + local processor = seeword.processor or (entry.processors and entry.processors[1]) or "" + local seeindex = entry.references.seeindex or "" + ctx_registerseeword( + metadata.name or "", + i, + nt, + processor, + 0, + seeindex, + function() h_title(seetext,metadata) end + ) + end + end + + local function case_5() + local first = d + while true do + if d == #data then + break + else + d = d + 1 + local next = data[d] + if next.metadata.kind == "see" or not equal(entry.list,next.list) then + d = d - 1 + break + else + entry = next + end + end + end + local last = d + local n = last - first + 1 + local i = 0 + local name = metadata.name or "" + local processor = entry.processors and entry.processors[1] or "" + for e=first,last do + local d = data[e] + local sectionindex = d.references.internal or 0 + i = i + 1 + ctx_registersection( + name, + i, + n, + processor, + 0, + sectionindex, + function() h_prefix(d,prefixspec,true) end + ) + end + end + + if kind == "entry" then + if show_page_number then + ctx_startregisterpages() + if bysection then + case_5() + elseif collapse_singles or collapse_ranges then + case_1() + elseif collapse_packed then + case_2() + else + case_3() + end + ctx_stopregisterpages() + end + elseif kind == "see" then + ctx_startregisterseewords() + case_4() + ctx_stopregisterseewords() + end + + end + + if started then + ctx_stopregisterentry() + started = false + end + while n > 0 do + ctx_stopregisterentries() + n = n - 1 + end + ctx_stopregistersection() + end + ctx_stopregisteroutput() + -- for now, maybe at some point we will do a multipass or so + data.result = nil + data.metadata.sorted = false + -- temp hack for luajittex : + local entries = data.entries + for i=1,#entries do + entries[i].split = nil + end + -- collectgarbage("collect") +end + +function registers.process(class,...) + if analyzeregister(class,...) > 0 then + local data = collected[class] + registers.flush(data,...) + end +end + +implement { + name = "processregister", + actions = registers.process, + arguments = { + "string", + { + { "language" }, + { "method" }, + { "numberorder" }, + { "compress" }, + { "criterium" }, + { "check" }, + { "pagemethod" }, + { "pagenumber", "boolean" }, + }, + { + { "separatorset" }, + { "conversionset" }, + { "starter" }, + { "stopper" }, + { "set" }, + { "segments" }, + { "connector" }, + }, + { + { "prefix" }, + { "separatorset" }, + { "conversionset" }, + { "starter" }, + { "stopper" }, + { "segments" }, + } + } +} + +-- linked registers + +function registers.findinternal(tag,where,n) + -- local collected = registers.collected + local current = collected[tag] + if not current then + return 0 + end + local entries = current.entries + if not entries then + return 0 + end + local entry = entries[n] + if not entry then + return 0 + end + local list = entry.list + local size = #list + -- + local start, stop, step + if where == v_previous then + start = n - 1 + stop = 1 + step = -1 + elseif where == v_first then + start = 1 + stop = #entries + step = 1 + elseif where == v_last then + start = #entries + stop = 1 + step = -1 + else + start = n + 1 + stop = #entries + step = 1 + end + -- + for i=start,stop,step do + local r = entries[i] + local l = r.list + local s = #l + if s == size then + local ok = true + for i=1,size do + if list[i][1] ~= l[i][1] then + ok = false + break + end + end + if ok then + return r.references.internal or 0 + end + end + end + return 0 +end + +interfaces.implement { + name = "findregisterinternal", + arguments = { "string", "string", "integer" }, + actions = { registers.findinternal, context }, +} diff --git a/tex/context/base/mkxl/strc-reg.mkxl b/tex/context/base/mkxl/strc-reg.mkxl index 16226c5fc..17d8b6e78 100644 --- a/tex/context/base/mkxl/strc-reg.mkxl +++ b/tex/context/base/mkxl/strc-reg.mkxl @@ -13,7 +13,7 @@ \writestatus{loading}{ConTeXt Structure Macros / Registers} -\registerctxluafile{strc-reg}{} +\registerctxluafile{strc-reg}{autosuffix} \unprotect @@ -207,6 +207,8 @@ \def\strc_registers_register_page_entry {\iftrialtypesetting \expandafter\gobblethreearguments + \orelse\ifconditional\prerollrun + \expandafter\gobblethreearguments \else \expandafter\strc_registers_register_page_entry_indeed \fi} @@ -441,16 +443,16 @@ \fi} \def\strc_registers_insert_entry_nop_par#1#2% - {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}} + {\ifprerolling\else\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}\fi} \def\strc_registers_insert_entry_yes_par#1#2#3% - {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}} + {\ifprerolling\else\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}\fi} \def\strc_registers_insert_entry_nop_txt#1#2% - {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}} + {\ifprerolling\else\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}\fi} \def\strc_registers_insert_entry_yes_txt#1#2#3% - {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}} + {\ifprerolling\else\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}\fi} %D This is one of the few commands where a stop has arguments. @@ -846,6 +848,17 @@ \newconstant\c_strc_registers_page_state % 0=nothing 1=page 2=see \newdimen \d_strc_registers_distance +\newcount \c_strc_register_level + +\def\strc_registers_update_text_properties + {\ifx\m_current_register\currentregister\else + \useregisterstyleandcolor\c!textstyle\c!textcolor + \fi} + +\def\strc_registers_update_page_properties + {\ifx\m_current_register\currentregister\else + \useregisterstyleandcolor\c!pagestyle\c!pagecolor + \fi} \permanent\protected\def\startregisteroutput {\endgraf @@ -877,13 +890,13 @@ \permanent\protected\def\startregisterentries#1% depth {\endgraf \begingroup - \scratchcounter\ifnum#1>\c_strc_registers_maxlevel\c_strc_registers_maxlevel\else#1\fi\relax + \c_strc_register_level\ifnum#1>\c_strc_registers_maxlevel\c_strc_registers_maxlevel\else#1\fi\relax \dostarttagged\t!registerentries\empty % \let\savedcurrentregister\currentregister \pushmacro\currentregister - \edef\currentregister{\currentregister:\number\scratchcounter}% + \edef\currentregister{\currentregister:\number\c_strc_register_level}% \usenestedregisterstyleandcolor\c!textstyle\c!textcolor - \ifnum\scratchcounter>\plusone + \ifnum\c_strc_register_level>\plusone \advance\leftskip\d_strc_registers_distance\relax \fi \d_strc_registers_hangindent\registerparameter\c!distance\relax @@ -978,6 +991,8 @@ \fi \fi} +\let\m_current_register\empty + \permanent\protected\def\pushcurrentregister#1% {\let\m_current_register\currentregister \edef\currentregister{#1}} @@ -987,6 +1002,7 @@ \permanent\protected\def\registeronepage#1#2#3#4#5% #1:class #2:processor content {\pushcurrentregister{#1}% + \strc_registers_update_page_properties \edef\p_pagenumber{\registerparameter\c!pagenumber}% \ifx\p_pagenumber\v!no\else \registerpageseparator @@ -1011,6 +1027,7 @@ \permanent\protected\def\registerpagerange#1#2#3#4#5#6#7#8% #1:class #2:processor content, content todo: -- configurable {\pushcurrentregister{#1}% + \strc_registers_update_page_properties \edef\p_pagenumber{\registerparameter\c!pagenumber}% \ifx\p_pagenumber\v!no\else \registerpageseparator @@ -1037,6 +1054,7 @@ \permanent\protected\def\defaultregisterentry#1#2#3#4#5% #1:class #2:processor #3:internal #4:seeindex #5:word {\pushcurrentregister{#1}% + \strc_registers_update_text_properties \def\currentregisterpageindex{#3}% \iflocation \def\currentregisterseeindex{#4}% diff --git a/tex/context/base/mkxl/supp-box.mkxl b/tex/context/base/mkxl/supp-box.mkxl index 52f54e327..796c3663a 100644 --- a/tex/context/base/mkxl/supp-box.mkxl +++ b/tex/context/base/mkxl/supp-box.mkxl @@ -2681,7 +2681,12 @@ {\beginlocalcontrol\begingroup \dowithnextboxcs\syst_boxes_contenttostring\hbox} -\newtoks\everypreroll +\newtoks \everypreroll +\newif \ifprerolling + +\appendtoks + \prerollingtrue +\to \everypreroll \let\prerolltostring\firstofoneargument % we need to bypass initializations diff --git a/tex/context/base/mkxl/syst-aux.mkxl b/tex/context/base/mkxl/syst-aux.mkxl index 2cca77390..873debedf 100644 --- a/tex/context/base/mkxl/syst-aux.mkxl +++ b/tex/context/base/mkxl/syst-aux.mkxl @@ -2915,7 +2915,7 @@ {\enforced\let\redoglobal\syst_helpers_redo_global \enforced\let\dodoglobal\syst_helpers_dodo_global} -%D Whatever (will be overtoaded): +%D Whatever (will be overloaded): \protected\def\define#1% {\ifdefined#1% @@ -2961,22 +2961,30 @@ % % [\test] +%D When okay the parameter hack will also go into \MKIV. + +\integerdef\c_syst_parameter_catcode\parametercatcode + \bgroup \obeylines \permanent\protected\gdef\starttexdefinition% - {\bgroup% + {\integerdef\c_syst_parameter_catcode\catcode\hashasciicode% + \catcode\hashasciicode\parametercatcode% + \bgroup% \obeylines% \syst_helpers_start_tex_definition} \gdef\syst_helpers_start_tex_definition#1 - {\catcode\endoflineasciicode\ignorecatcode% + {%catcodetable\ctxcatcodes% can be adapted + \catcode\endoflineasciicode\ignorecatcode% \clf_texdefinition_one{#1}} \permanent\protected\glettonothing\stoptexdefinition \permanent\gdef\dostarttexdefinition#1\stoptexdefinition% {\egroup% - \clf_texdefinition_two{#1}} + \clf_texdefinition_two{#1}% + \catcode\hashasciicode\c_syst_parameter_catcode} \egroup diff --git a/tex/context/base/mkxl/toks-ini.lmt b/tex/context/base/mkxl/toks-ini.lmt index 3e9ff362b..e4bf7626f 100644 --- a/tex/context/base/mkxl/toks-ini.lmt +++ b/tex/context/base/mkxl/toks-ini.lmt @@ -293,7 +293,7 @@ end tokens.cache = table.setmetatableindex(function(t,k) if not isdefined(k) then - setmacro(k,"","global") + setmacro(k,"","global") -- So we default to nothing! Maybe some message as option? end local v = createtoken(k) t[k] = v diff --git a/tex/context/base/mkxl/toks-scn.lmt b/tex/context/base/mkxl/toks-scn.lmt index ca95985b0..621eb063c 100644 --- a/tex/context/base/mkxl/toks-scn.lmt +++ b/tex/context/base/mkxl/toks-scn.lmt @@ -287,43 +287,43 @@ tokens.converters = { -- the gain is only some 10 percent but if we don't have keywords with numbers it might -- make sense in the end, some day. -local f_if = formatters[ " if scankeywordcs('%s') then data['%s'] = scan%s()"] -local f_elseif = formatters[" elseif scankeywordcs('%s') then data['%s'] = scan%s()"] +local f_if = formatters[ " if scankeywordcs('%s') then data['%s'] = scan%s()"] +local f_elseif = formatters[" elseif scankeywordcs('%s') then data['%s'] = scan%s()"] ------ f_if_x = formatters[ " if not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"] ------ f_elseif_x = formatters[" elseif not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"] +----- f_if_x = formatters[ " if not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"] +----- f_elseif_x = formatters[" elseif not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"] ------ f_if = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = scan%s()"] ------ f_elseif = formatters[" elseif key == '%s' then data['%s'] = scan%s()"] +----- f_if = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = scan%s()"] +----- f_elseif = formatters[" elseif key == '%s' then data['%s'] = scan%s()"] -local f_local = formatters["local scan%s = scanners.%s"] -local f_scan = formatters["scan%s()"] -local f_shortcut = formatters["local %s = scanners.converters.%s"] +local f_local = formatters["local scan%s = scanners.%s"] +local f_scan = formatters["scan%s()"] +local f_shortcut = formatters["local %s = scanners.converters.%s"] -local f_if_c = formatters[ " if scankeywordcs('%s') then data['%s'] = %s(scan%s())"] -local f_elseif_c = formatters[" elseif scankeywordcs('%s') then data['%s'] = %s(scan%s())"] -local f_scan_c = formatters["%s(scan%s())"] +local f_if_c = formatters[ " if scankeywordcs('%s') then data['%s'] = %s(scan%s())"] +local f_elseif_c = formatters[" elseif scankeywordcs('%s') then data['%s'] = %s(scan%s())"] +local f_scan_c = formatters["%s(scan%s())"] -- see above ------ f_if_c = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = %s(scan%s())"] ------ f_elseif_c = formatters[" elseif k == '%s' then data['%s'] = %s(scan%s())"] +----- f_if_c = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = %s(scan%s())"] +----- f_elseif_c = formatters[" elseif k == '%s' then data['%s'] = %s(scan%s())"] -local f_any = formatters[" else local key = scanword(true) if key then data[key] = scan%s() else break end end"] -local f_any_c = formatters[" else local key = scanword(true) if key then data[key] = %s(scan%s()) else break end end"] -local s_done = " else break end" +local f_any = formatters[" else local key = scanword(true) if key then data[key] = scan%s() else break end end"] +local f_any_c = formatters[" else local key = scanword(true) if key then data[key] = %s(scan%s()) else break end end"] +local s_done = " else break end" -local f_any_all = formatters[" local key = scanword(true) if key then data[key] = scan%s() else break end"] -local f_any_all_c= formatters[" local key = scanword(true) if key then data[key] = %s(scan%s()) else break end"] +local f_any_all = formatters[" local key = scanword(true) if key then data[key] = scan%s() else break end"] +local f_any_all_c = formatters[" local key = scanword(true) if key then data[key] = %s(scan%s()) else break end"] -local f_table = formatters["%\nt\nreturn function()\n local data = { }\n%s\n return %s\nend\n"] -local f_sequence = formatters["%\nt\n%\nt\n%\nt\nreturn function()\n return %s\nend\n"] -local f_singular = formatters["%\nt\n%\nt\n\nreturn function(%s)\n return %s\nend\n"] -local f_simple = formatters["%\nt\nreturn function()\n return %s\nend\n"] -local f_string = formatters["%q"] -local f_action_f = formatters["action%s(%s)"] -local f_action_s = formatters["local action%s = tokens._action[%s]"] -local f_nested = formatters["local function scan%s()\n local data = { }\n%s\n return data\nend\n"] +local f_table = formatters["%\nt\nreturn function()\n local data = { }\n%s\n return %s\nend\n"] +local f_sequence = formatters["%\nt\n%\nt\n%\nt\nreturn function()\n return %s\nend\n"] +local f_singular = formatters["%\nt\n%\nt\n\nreturn function(%s)\n return %s\nend\n"] +local f_simple = formatters["%\nt\nreturn function()\n return %s\nend\n"] +local f_string = formatters["%q"] +local f_action_f = formatters["action%s(%s)"] +local f_action_s = formatters["local action%s = tokens._action[%s]"] +local f_nested = formatters["local function scan%s()\n local data = { }\n%s\n return data\nend\n"] local f_check = formatters[ [[ local wrapped = scanopen() diff --git a/tex/context/base/mkxl/util-deb.lmt b/tex/context/base/mkxl/util-deb.lmt index 0021b93b9..71a43ea17 100644 --- a/tex/context/base/mkxl/util-deb.lmt +++ b/tex/context/base/mkxl/util-deb.lmt @@ -10,7 +10,7 @@ if not modules then modules = { } end modules ['util-deb'] = { -- bound to a variable, like node.new, node.copy etc (contrary to for instance -- node.has_attribute which is bound to a has_attribute local variable in mkiv) -local type, next, tostring, tonumber = type, next, tostring, tonumber +local type, next, tostring, tonumber, xpcall, print = type, next, tostring, tonumber, xpcall, print local format, find, sub, gsub = string.format, string.find, string.sub, string.gsub local insert, remove, sort = table.insert, table.remove, table.sort local setmetatableindex = table.setmetatableindex @@ -369,3 +369,23 @@ debugger.showtraceback = showtraceback -- debug.showtraceback = showtraceback -- showtraceback() + +if luac then + + local show, dump = luac.print, string.dump + + function luac.inspect(v) + if type(v) == "function" then + local ok, str = xpcall(dump,function() end,v) + if ok then + v = str + end + end + if type(v) == "string" then + show(v,true) + else + print(v) + end + end + +end diff --git a/tex/context/interface/mkii/keys-fr.xml b/tex/context/interface/mkii/keys-fr.xml index beaf78112..c337aa5be 100644 --- a/tex/context/interface/mkii/keys-fr.xml +++ b/tex/context/interface/mkii/keys-fr.xml @@ -82,6 +82,7 @@ + @@ -210,6 +211,8 @@ + + @@ -437,6 +440,7 @@ + @@ -1374,6 +1378,8 @@ + + @@ -1545,6 +1551,7 @@ + @@ -1721,6 +1728,9 @@ + + + @@ -2092,6 +2102,13 @@ + + + + + + + @@ -2135,6 +2152,13 @@ + + + + + + + diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 8985f55de..d874bda0f 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-08-07 22:49 +-- merge date : 2021-08-10 12:37 do -- begin closure to overcome local limits and interference @@ -3474,7 +3474,7 @@ local template=[[ return function(%s) return %s end ]] local pattern=Cs(Cc('"')*( - (1-S('"\\\n\r'))^1+P('"')/'\\034'+P('\\')/'\\092'+P('\n')/'\\013'+P('\r')/'\\010' + (1-S('"\\\n\r'))^1+P('"')/'\\"'+P('\\')/'\\\\'+P('\n')/'\\n'+P('\r')/'\\r' )^0*Cc('"')) patterns.escapedquotes=pattern function string.escapedquotes(s) @@ -13423,6 +13423,7 @@ do local y=0 local width=false local lsb=0 +local result={} local r=0 local stems=0 local globalbias=0 @@ -14633,6 +14634,7 @@ do r=r+1 result[r]=c_endchar local stream=concat(result) +result=nil if glyph then glyph.stream=stream else @@ -14654,6 +14656,7 @@ do width=width, name=charset and charset[index] or nil, } +result=nil else glyphs[index]={ boundingbox=boundingbox, -- cgit v1.2.3