summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2023-01-26 19:34:21 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2023-01-26 19:34:21 +0100
commit83667a906d7cac842635bc5243db70f55b346562 (patch)
tree6d22734798c775c081c3aecb7f05faf590e6570b
parentb47e8c2cdeeab0bcdb1c4c32328c933f3f8599de (diff)
downloadcontext-83667a906d7cac842635bc5243db70f55b346562.tar.gz
2023-01-26 18:34:00
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-context.lua2
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-tex.lua4
-rw-r--r--context/data/scite/context/scite-context-data-context.properties184
-rw-r--r--context/data/scite/context/scite-context-data-tex.properties64
-rw-r--r--doc/context/documents/general/manuals/luametatex.pdfbin1463760 -> 1470739 bytes
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-building.tex2
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex2
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex7
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex2
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-math.tex52
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-modifications.tex20
-rw-r--r--source/luametatex/cmake/lua.cmake8
-rw-r--r--source/luametatex/source/luacore/lua54/src/lgc.c9
-rw-r--r--source/luametatex/source/luacore/lua54/src/lgc.h17
-rw-r--r--source/luametatex/source/luacore/lua54/src/lmathlib.c10
-rw-r--r--source/luametatex/source/luacore/lua54/src/lmem.c68
-rw-r--r--source/luametatex/source/luacore/lua54/src/loslib.c18
-rw-r--r--source/luametatex/source/luacore/lua54/src/lstate.h11
-rw-r--r--source/luametatex/source/luacore/lua54/src/ltm.h5
-rw-r--r--source/luametatex/source/luacore/lua54/src/lua.c4
-rw-r--r--source/luametatex/source/luacore/lua54/src/lua.h16
-rw-r--r--source/luametatex/source/luametatex.h6
-rw-r--r--source/luametatex/source/tex/texcommands.c2
-rw-r--r--source/luametatex/source/tex/texconditional.c2
-rw-r--r--source/luametatex/source/tex/textoken.c26
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-fr.mkii1
-rw-r--r--tex/context/base/mkiv/colo-ini.lua13
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/mult-low.lua2
-rw-r--r--tex/context/base/mkiv/mult-prm.lua3
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24608 -> 24610 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin265525 -> 265594 bytes
-rw-r--r--tex/context/base/mkxl/colo-ini.mkxl25
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl2
-rw-r--r--tex/context/base/mkxl/core-env.lmt3
-rw-r--r--tex/context/base/mkxl/font-imp-quality.lmt2
-rw-r--r--tex/context/base/mkxl/layo-ini.lmt15
-rw-r--r--tex/context/base/mkxl/lpdf-rul.lmt62
-rw-r--r--tex/context/base/mkxl/math-act.lmt107
-rw-r--r--tex/context/base/mkxl/math-dld.mklx41
-rw-r--r--tex/context/base/mkxl/math-ini.mkxl91
-rw-r--r--tex/context/base/mkxl/math-spa.lmt1
-rw-r--r--tex/context/base/mkxl/pack-rul.mkxl26
-rw-r--r--tex/context/base/mkxl/page-blk.lmt10
-rw-r--r--tex/context/base/mkxl/spac-ali.lmt2
-rw-r--r--tex/context/base/mkxl/spac-prf.lmt188
-rw-r--r--tex/context/base/mkxl/spac-prf.mklx24
-rw-r--r--tex/context/base/mkxl/spac-ver.lmt10
-rw-r--r--tex/context/base/mkxl/spac-ver.mkxl3
-rw-r--r--tex/context/base/mkxl/syst-ini.mkxl5
-rw-r--r--tex/context/base/mkxl/tabl-xtb.lmt5
-rw-r--r--tex/context/base/mkxl/task-ini.lmt3
-rw-r--r--tex/context/base/mkxl/trac-vis.lmt10
-rw-r--r--tex/context/base/mkxl/typo-cap.lmt4
-rw-r--r--tex/context/base/mkxl/typo-lin.lmt1
-rw-r--r--tex/context/base/mkxl/typo-mar.lmt8
-rw-r--r--tex/context/fonts/mkiv/bonum-math.lfg1
-rw-r--r--tex/context/interface/mkii/keys-fr.xml1
-rw-r--r--tex/context/modules/mkxl/s-colors-show.mkxl10
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
64 files changed, 751 insertions, 481 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-context.lua b/context/data/scite/context/lexers/data/scite-context-data-context.lua
index 35e35ddad..d3d8d0e5a 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", "maxiterator", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "centeringskip", "stretchingskip", "shrinkingskip", "centeringfillskip", "stretchingfillskip", "shrinkingfillskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty", "thickermuskip", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "shapingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode", "mathpenaltyfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "applyordinarykernpairmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode", "analyzescriptnucleuscharmathcontrolcode", "analyzescriptnucleuslistmathcontrolcode", "analyzescriptnucleusboxmathcontrolcode", "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode", "ignoreflataccentsmathcontrolcode", "extendaccentsmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "islargeoperatorglyphoptioncode", "hasitalicshapeglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode", "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode", "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode", "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode", "halfwayleftlistanchorcode", "halfwayrightlistanchorcode", "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode", "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode", "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode", "mathfractioncode", "mathmiddlecode", "mathaccentcode", "mathfencedcode", "mathghostcode", "mathvariablecode", "mathactivecode", "mathvcentercode", "mathconstructcode", "mathwrappedcode", "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode", "mathdimensioncode", "mathexperimentalcode", "mathtextpunctuationcode", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathellipsiscode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathunsetcode", "mathunspacedcode", "mathallcode", "mathfakecode", "mathunarycode", "mathmaybeordinarycode", "mathmayberelationcode", "mathmaybebinarycode", "mathnumbergroupcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "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", "autoinsertedspace", "Ux", "eUx", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "flattenhleadersnormalizecode", "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode", "nopreslackclassoptioncode", "nopostslackclassoptioncode", "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode", "lookaheadforendclassoptioncode", "noitaliccorrectionclassoptioncode", "defaultmathclassoptions", "checkligatureclassoptioncode", "checkitaliccorrectionclassoptioncode", "checkkernpairclassoptioncode", "flattenclassoptioncode", "omitpenaltyclassoptioncode", "unpackclassoptioncode", "raiseprimeclassoptioncode", "carryoverlefttopkernclassoptioncode", "carryoverleftbottomkernclassoptioncode", "carryoverrighttopkernclassoptioncode", "carryoverrightbottomkernclassoptioncode", "preferdelimiterdimensionsclassoptioncode", "autoinjectclassoptioncode", "removeitaliccorrectionclassoptioncode", "operatoritaliccorrectionclassoptioncode", "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", "continueifinputfile", "continuewhenlmtxmode", "continuewhenmkivmode" },
+ ["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", "maxiterator", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "centeringskip", "stretchingskip", "shrinkingskip", "centeringfillskip", "stretchingfillskip", "shrinkingfillskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty", "thickermuskip", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "semicolonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "shapingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode", "mathpenaltyfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "applyordinarykernpairmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode", "analyzescriptnucleuscharmathcontrolcode", "analyzescriptnucleuslistmathcontrolcode", "analyzescriptnucleusboxmathcontrolcode", "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode", "ignoreflataccentsmathcontrolcode", "extendaccentsmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "islargeoperatorglyphoptioncode", "hasitalicshapeglyphoptioncode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode", "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode", "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode", "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode", "halfwayleftlistanchorcode", "halfwayrightlistanchorcode", "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode", "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode", "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode", "mathfractioncode", "mathmiddlecode", "mathaccentcode", "mathfencedcode", "mathghostcode", "mathvariablecode", "mathactivecode", "mathvcentercode", "mathconstructcode", "mathwrappedcode", "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode", "mathdimensioncode", "mathexperimentalcode", "mathtextpunctuationcode", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathellipsiscode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathunsetcode", "mathunspacedcode", "mathallcode", "mathfakecode", "mathunarycode", "mathmaybeordinarycode", "mathmayberelationcode", "mathmaybebinarycode", "mathnumbergroupcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "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", "autoinsertedspace", "Ux", "eUx", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "flattenhleadersnormalizecode", "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode", "nopreslackclassoptioncode", "nopostslackclassoptioncode", "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode", "lookaheadforendclassoptioncode", "noitaliccorrectionclassoptioncode", "defaultmathclassoptions", "checkligatureclassoptioncode", "checkitaliccorrectionclassoptioncode", "checkkernpairclassoptioncode", "flattenclassoptioncode", "omitpenaltyclassoptioncode", "unpackclassoptioncode", "raiseprimeclassoptioncode", "carryoverlefttopkernclassoptioncode", "carryoverleftbottomkernclassoptioncode", "carryoverrighttopkernclassoptioncode", "carryoverrightbottomkernclassoptioncode", "preferdelimiterdimensionsclassoptioncode", "autoinjectclassoptioncode", "removeitaliccorrectionclassoptioncode", "operatoritaliccorrectionclassoptioncode", "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", "continueifinputfile", "continuewhenlmtxmode", "continuewhenmkivmode" },
["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", "newinteger", "newdimension", "newgluespec", "newmugluespec", "aliasinteger", "aliasdimension", "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", "moreboxtracing", "lessboxtracing", "noboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "forceinlinemath", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "hsplit", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruleddbox", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruleddpack", "ruledvsplit", "ruledtsplit", "ruleddsplit", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "mathgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchitalic", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "tracingcatcodes", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "resetdummyparameter", "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", "newboundary", "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", "mathclassvalue", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "aligncontentleft", "aligncontentmiddle", "aligncontentright", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "normalprimescript", "superscript", "subscript", "nosuperscript", "nosubscript", "primescript", "superprescript", "subprescript", "nosuperprescript", "nosubsprecript", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "triggeredmathstyle", "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", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "rtltext", "ltrtext", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression" },
} \ No newline at end of file
diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
index 1651800e7..6cb881a1f 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-tex.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
@@ -1,9 +1,9 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelimited", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbasedepth", "Umathaccentbaseheight", "Umathaccentbottomovershoot", "Umathaccentbottomshiftdown", "Umathaccentextendmargin", "Umathaccentsuperscriptdrop", "Umathaccentsuperscriptpercent", "Umathaccenttopovershoot", "Umathaccenttopshiftup", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbottomaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharslot", "Umathclass", "Umathcode", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterpercent", "Umathdelimitershortfall", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathdict", "Umathdictdef", "Umathdiscretionary", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathflattenedaccentbasedepth", "Umathflattenedaccentbaseheight", "Umathflattenedaccentbottomshiftdown", "Umathflattenedaccenttopshiftup", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpresubshiftdistance", "Umathpresupshiftdistance", "Umathprimeraise", "Umathprimeraisecomposed", "Umathprimeshiftdrop", "Umathprimeshiftup", "Umathprimespaceafter", "Umathprimevariant", "Umathprimewidth", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalextensibleafter", "Umathradicalextensiblebefore", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathsource", "Umathspaceafterscript", "Umathspacebeforescript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdistance", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdistance", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uprimescript", "Uradical", "Uright", "Uroot", "Urooted", "Ushiftedsubprescript", "Ushiftedsubscript", "Ushiftedsuperprescript", "Ushiftedsuperscript", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustartmathmode", "Ustopdisplaymath", "Ustopmath", "Ustopmathmode", "Ustretched", "Ustretchedwithdelims", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "aligncontent", "alignmark", "alignmentcellsource", "alignmentwrapsource", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmainstyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "allunsplitstyles", "amcode", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxadapt", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxfreeze", "boxgeometry", "boxorientation", "boxrepack", "boxshift", "boxsource", "boxtarget", "boxtotal", "boxvadjust", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "cdef", "cdefcsname", "cfcode", "clearmarks", "constant", "copymathatomrule", "copymathparent", "copymathspacing", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csactive", "csstring", "currentloopiterator", "currentloopnesting", "currentmarks", "dbox", "defcsname", "detokenized", "dimensiondef", "dimexpression", "directlua", "dpack", "dsplit", "edefcsname", "efcode", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "everybeforepar", "everymathatom", "everytab", "exceptionpenalty", "expand", "expandactive", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandedloop", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "flushmarks", "fontcharta", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedname", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyph", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphxscaled", "glyphyoffset", "glyphyscale", "glyphyscaled", "gtoksapp", "gtokspre", "hccode", "hjcode", "hmcode", "holdingmigrations", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchkdimension", "ifchknum", "ifchknumber", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ifzerodim", "ifzeronum", "ignorearguments", "ignoredepthcriterium", "ignorepars", "immediate", "immutable", "indexofcharacter", "indexofregister", "inherited", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastatomclass", "lastboundary", "lastchkdim", "lastchknum", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastpageextra", "lastparcontext", "lastrightclass", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letmathatomrule", "letmathparent", "letmathspacing", "letprotected", "lettonothing", "linebreakcriterium", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledloop", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathaccent", "mathatom", "mathatomglue", "mathatomskip", "mathbackwardpenalties", "mathbeginclass", "mathbinary", "mathcheckfencesmode", "mathclose", "mathdictgroup", "mathdictproperties", "mathdirection", "mathdisplaymode", "mathdisplayskipmode", "mathdoublescriptmode", "mathendclass", "matheqnogapstep", "mathfenced", "mathfontcontrol", "mathforwardpenalties", "mathfraction", "mathghost", "mathgluemode", "mathgroupingmode", "mathinner", "mathleftclass", "mathlimitsmode", "mathmainstyle", "mathmiddle", "mathnolimitsmode", "mathopen", "mathoperator", "mathordinary", "mathoverline", "mathpenaltiesmode", "mathpunct", "mathradical", "mathrelation", "mathrightclass", "mathrulesfam", "mathrulesmode", "mathscale", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mathunderline", "meaningasis", "meaningfull", "meaningless", "mugluespecdef", "mutable", "noaligned", "noatomruling", "noboundary", "nohrule", "norelax", "normalizelinemode", "normalizeparmode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "overshoot", "pageboundary", "pageextragoal", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "pettymuskip", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitvmode", "resetmathspacing", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledfontdimen", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledmathstyle", "scaledslantperpoint", "scantextokens", "semiexpand", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathdisplaypostpenalty", "setmathdisplayprepenalty", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "srule", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tinymuskip", "todimension", "tohexadecimal", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tosparsedimension", "tosparsescaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracinglevels", "tracinglists", "tracingmarks", "tracingmath", "tracingnodes", "tracingpenalties", "tsplit", "uleaders", "undent", "unexpandedloop", "unhpack", "unletfrozen", "unletprotected", "untraced", "unvpack", "variablefam", "virtualhrule", "virtualvrule", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" },
+ ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelimited", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbasedepth", "Umathaccentbaseheight", "Umathaccentbottomovershoot", "Umathaccentbottomshiftdown", "Umathaccentextendmargin", "Umathaccentsuperscriptdrop", "Umathaccentsuperscriptpercent", "Umathaccenttopovershoot", "Umathaccenttopshiftup", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbottomaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharslot", "Umathclass", "Umathcode", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterpercent", "Umathdelimitershortfall", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathdict", "Umathdictdef", "Umathdiscretionary", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathflattenedaccentbasedepth", "Umathflattenedaccentbaseheight", "Umathflattenedaccentbottomshiftdown", "Umathflattenedaccenttopshiftup", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpresubshiftdistance", "Umathpresupshiftdistance", "Umathprimeraise", "Umathprimeraisecomposed", "Umathprimeshiftdrop", "Umathprimeshiftup", "Umathprimespaceafter", "Umathprimevariant", "Umathprimewidth", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalextensibleafter", "Umathradicalextensiblebefore", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathsource", "Umathspaceafterscript", "Umathspacebeforescript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdistance", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdistance", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uprimescript", "Uradical", "Uright", "Uroot", "Urooted", "Ushiftedsubprescript", "Ushiftedsubscript", "Ushiftedsuperprescript", "Ushiftedsuperscript", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustartmathmode", "Ustopdisplaymath", "Ustopmath", "Ustopmathmode", "Ustretched", "Ustretchedwithdelims", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "aligncontent", "alignmark", "alignmentcellsource", "alignmentwrapsource", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmainstyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "allunsplitstyles", "amcode", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxadapt", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxfreeze", "boxgeometry", "boxorientation", "boxrepack", "boxshift", "boxsource", "boxtarget", "boxtotal", "boxvadjust", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "cdef", "cdefcsname", "cfcode", "clearmarks", "constant", "copymathatomrule", "copymathparent", "copymathspacing", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csactive", "csstring", "currentloopiterator", "currentloopnesting", "currentmarks", "dbox", "defcsname", "detokenized", "dimensiondef", "dimexpression", "directlua", "dpack", "dsplit", "edefcsname", "efcode", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "everybeforepar", "everymathatom", "everytab", "exceptionpenalty", "expand", "expandactive", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandedloop", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "flushmarks", "fontcharta", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedname", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyph", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphxscaled", "glyphyoffset", "glyphyscale", "glyphyscaled", "gtoksapp", "gtokspre", "hccode", "hjcode", "hmcode", "holdingmigrations", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchkdimension", "ifchknum", "ifchknumber", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ifzerodim", "ifzeronum", "ignorearguments", "ignoredepthcriterium", "ignorepars", "immediate", "immutable", "indexofcharacter", "indexofregister", "inherited", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastatomclass", "lastboundary", "lastchkdim", "lastchknum", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastpageextra", "lastparcontext", "lastrightclass", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letmathatomrule", "letmathparent", "letmathspacing", "letprotected", "lettonothing", "linebreakcriterium", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledloop", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathaccent", "mathatom", "mathatomglue", "mathatomskip", "mathbackwardpenalties", "mathbeginclass", "mathbinary", "mathcheckfencesmode", "mathclose", "mathdictgroup", "mathdictproperties", "mathdirection", "mathdisplaymode", "mathdisplayskipmode", "mathdoublescriptmode", "mathendclass", "matheqnogapstep", "mathfenced", "mathfontcontrol", "mathforwardpenalties", "mathfraction", "mathghost", "mathgluemode", "mathgroupingmode", "mathinner", "mathleftclass", "mathlimitsmode", "mathmainstyle", "mathmiddle", "mathnolimitsmode", "mathopen", "mathoperator", "mathordinary", "mathoverline", "mathpenaltiesmode", "mathpunctuation", "mathradical", "mathrelation", "mathrightclass", "mathrulesfam", "mathrulesmode", "mathscale", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mathunderline", "meaningasis", "meaningfull", "meaningless", "mugluespecdef", "mutable", "noaligned", "noatomruling", "noboundary", "nohrule", "norelax", "normalizelinemode", "normalizeparmode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "overshoot", "pageboundary", "pageextragoal", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "pettymuskip", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitvmode", "resetmathspacing", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledfontdimen", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledmathstyle", "scaledslantperpoint", "scantextokens", "semiexpand", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathdisplaypostpenalty", "setmathdisplayprepenalty", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "srule", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tinymuskip", "todimension", "tohexadecimal", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tosparsedimension", "tosparsescaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracinglevels", "tracinglists", "tracingmarks", "tracingmath", "tracingnodes", "tracingpenalties", "tsplit", "uleaders", "undent", "unexpandedloop", "unhpack", "unletfrozen", "unletprotected", "untraced", "unvpack", "variablefam", "virtualhrule", "virtualvrule", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" },
["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" },
["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfomitinfodict", "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", "advanceby", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "divideby", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathcode", "mathop", "mathord", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "multiplyby", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parinitleftskip", "parinitrightskip", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "unboundary", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
+ ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "advanceby", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "divideby", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathcode", "mathop", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "multiplyby", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parinitleftskip", "parinitrightskip", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "unboundary", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
["xetex"]={ "XeTeXversion" },
} \ No newline at end of file
diff --git a/context/data/scite/context/scite-context-data-context.properties b/context/data/scite/context/scite-context-data-context.properties
index 4885c8785..8e2cfcf53 100644
--- a/context/data/scite/context/scite-context-data-context.properties
+++ b/context/data/scite/context/scite-context-data-context.properties
@@ -27,98 +27,98 @@ superscriptcatcode subscriptcatcode ignorecatcode spacecatcode lettercatcode \
othercatcode activecatcode commentcatcode invalidcatcode tabasciicode \
newlineasciicode formfeedasciicode endoflineasciicode endoffileasciicode commaasciicode \
spaceasciicode periodasciicode hashasciicode dollarasciicode commentasciicode \
-ampersandasciicode colonasciicode backslashasciicode circumflexasciicode underscoreasciicode \
-leftbraceasciicode barasciicode rightbraceasciicode tildeasciicode delasciicode \
-leftparentasciicode rightparentasciicode lessthanasciicode morethanasciicode doublecommentsignal \
-atsignasciicode exclamationmarkasciicode questionmarkasciicode doublequoteasciicode singlequoteasciicode \
-forwardslashasciicode primeasciicode hyphenasciicode percentasciicode leftbracketasciicode \
-rightbracketasciicode hsizefrozenparcode skipfrozenparcode hangfrozenparcode indentfrozenparcode \
-parfillfrozenparcode adjustfrozenparcode protrudefrozenparcode tolerancefrozenparcode stretchfrozenparcode \
-loosenessfrozenparcode lastlinefrozenparcode linepenaltyfrozenparcode clubpenaltyfrozenparcode widowpenaltyfrozenparcode \
-displaypenaltyfrozenparcode brokenpenaltyfrozenparcode demeritsfrozenparcode shapefrozenparcode linefrozenparcode \
-hyphenationfrozenparcode shapingpenaltyfrozenparcode orphanpenaltyfrozenparcode allfrozenparcode mathpenaltyfrozenparcode \
-activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken batchmodecode \
-nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode simplegroupcode \
-hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode aligngroupcode \
-noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode insertgroupcode \
-vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode alsosimplegroupcode \
-semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode splitoffgroupcode \
-splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode discretionarygroupcode \
-markautomigrationcode insertautomigrationcode adjustautomigrationcode preautomigrationcode postautomigrationcode \
-charnodecode hlistnodecode vlistnodecode rulenodecode insertnodecode \
-marknodecode adjustnodecode ligaturenodecode discretionarynodecode whatsitnodecode \
-mathnodecode gluenodecode kernnodecode penaltynodecode unsetnodecode \
-mathsnodecode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode fractionrulemathcontrolcode \
-accentskewhalfmathcontrolcode accentskewapplymathcontrolcode applyordinarykernpairmathcontrolcode applyverticalitalickernmathcontrolcode applyordinaryitalickernmathcontrolcode \
-applycharitalickernmathcontrolcode reboxcharitalickernmathcontrolcode applyboxeditalickernmathcontrolcode staircasekernmathcontrolcode applytextitalickernmathcontrolcode \
-applyscriptitalickernmathcontrolcode checkspaceitalickernmathcontrolcode checktextitalickernmathcontrolcode analyzescriptnucleuscharmathcontrolcode analyzescriptnucleuslistmathcontrolcode \
-analyzescriptnucleusboxmathcontrolcode accenttopskewwithoffsetmathcontrolcode ignorekerndimensionsmathcontrolcode ignoreflataccentsmathcontrolcode extendaccentsmathcontrolcode \
-noligaturingglyphoptioncode nokerningglyphoptioncode noexpansionglyphoptioncode noprotrusionglyphoptioncode noleftkerningglyphoptioncode \
-noleftligaturingglyphoptioncode norightkerningglyphoptioncode norightligaturingglyphoptioncode noitaliccorrectionglyphoptioncode islargeoperatorglyphoptioncode \
-hasitalicshapeglyphoptioncode normalparcontextcode vmodeparcontextcode vboxparcontextcode vtopparcontextcode \
-vcenterparcontextcode vadjustparcontextcode insertparcontextcode outputparcontextcode alignparcontextcode \
-noalignparcontextcode spanparcontextcode resetparcontextcode leftoriginlistanchorcode leftheightlistanchorcode \
-leftdepthlistanchorcode rightoriginlistanchorcode rightheightlistanchorcode rightdepthlistanchorcode centeroriginlistanchorcode \
-centerheightlistanchorcode centerdepthlistanchorcode halfwaytotallistanchorcode halfwayheightlistanchorcode halfwaydepthlistanchorcode \
-halfwayleftlistanchorcode halfwayrightlistanchorcode negatexlistsigncode negateylistsigncode negatelistsigncode \
-fontslantperpoint fontinterwordspace fontinterwordstretch fontinterwordshrink fontexheight \
-fontemwidth fontextraspace slantperpoint mathexheight mathemwidth \
-interwordspace interwordstretch interwordshrink exheight emwidth \
-extraspace mathaxisheight muquad startmode stopmode \
-startnotmode stopnotmode startmodeset stopmodeset doifmode \
-doifelsemode doifmodeelse doifnotmode startmodeset stopmodeset \
-startallmodes stopallmodes startnotallmodes stopnotallmodes doifallmodes \
-doifelseallmodes doifallmodeselse doifnotallmodes startenvironment stopenvironment \
-environment startcomponent stopcomponent component startproduct \
-stopproduct product startproject stopproject project \
-starttext stoptext startnotext stopnotext startdocument \
-stopdocument documentvariable unexpandeddocumentvariable setupdocument presetdocument \
-doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable startmodule \
-stopmodule usemodule usetexmodule useluamodule setupmodule \
-currentmoduleparameter moduleparameter everystarttext everystoptext startTEXpage \
-stopTEXpage enablemode disablemode preventmode definemode \
-globalenablemode globaldisablemode globalpreventmode pushmode popmode \
-typescriptone typescripttwo typescriptthree mathsizesuffix mathordinarycode \
-mathordcode mathoperatorcode mathopcode mathbinarycode mathbincode \
-mathrelationcode mathrelcode mathopencode mathclosecode mathpunctuationcode \
-mathpunctcode mathovercode mathundercode mathinnercode mathradicalcode \
-mathfractioncode mathmiddlecode mathaccentcode mathfencedcode mathghostcode \
-mathvariablecode mathactivecode mathvcentercode mathconstructcode mathwrappedcode \
-mathbegincode mathendcode mathexplicitcode mathdivisioncode mathfactorialcode \
-mathdimensioncode mathexperimentalcode mathtextpunctuationcode mathimaginarycode mathdifferentialcode \
-mathexponentialcode mathellipsiscode mathfunctioncode mathdigitcode mathalphacode \
-mathboxcode mathchoicecode mathnothingcode mathlimopcode mathnolopcode \
-mathunsetcode mathunspacedcode mathallcode mathfakecode mathunarycode \
-mathmaybeordinarycode mathmayberelationcode mathmaybebinarycode mathnumbergroupcode constantnumber \
-constantnumberargument constantdimen constantdimenargument constantemptyargument 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 autoinsertedspace Ux eUx parfillleftskip \
-parfillrightskip startlmtxmode stoplmtxmode startmkivmode stopmkivmode \
-wildcardsymbol normalhyphenationcode automatichyphenationcode explicithyphenationcode syllablehyphenationcode \
-uppercasehyphenationcode collapsehyphenationcode compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode \
-automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode \
-forcecheckhyphenationcode lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode \
-partialhyphenationcode completehyphenationcode normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode \
-swapparsshapenormalizecode breakafterdirnormalizecode removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode \
-discardzerotabskipsnormalizecode flattenhleadersnormalizecode normalizeparnormalizeparcode flattenvleadersnormalizeparcode nopreslackclassoptioncode \
-nopostslackclassoptioncode lefttopkernclassoptioncode righttopkernclassoptioncode leftbottomkernclassoptioncode rightbottomkernclassoptioncode \
-lookaheadforendclassoptioncode noitaliccorrectionclassoptioncode defaultmathclassoptions checkligatureclassoptioncode checkitaliccorrectionclassoptioncode \
-checkkernpairclassoptioncode flattenclassoptioncode omitpenaltyclassoptioncode unpackclassoptioncode raiseprimeclassoptioncode \
-carryoverlefttopkernclassoptioncode carryoverleftbottomkernclassoptioncode carryoverrighttopkernclassoptioncode carryoverrightbottomkernclassoptioncode preferdelimiterdimensionsclassoptioncode \
-autoinjectclassoptioncode removeitaliccorrectionclassoptioncode operatoritaliccorrectionclassoptioncode 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 continueifinputfile continuewhenlmtxmode continuewhenmkivmode
+ampersandasciicode colonasciicode semicolonasciicode backslashasciicode circumflexasciicode \
+underscoreasciicode leftbraceasciicode barasciicode rightbraceasciicode tildeasciicode \
+delasciicode leftparentasciicode rightparentasciicode lessthanasciicode morethanasciicode \
+doublecommentsignal atsignasciicode exclamationmarkasciicode questionmarkasciicode doublequoteasciicode \
+singlequoteasciicode forwardslashasciicode primeasciicode hyphenasciicode percentasciicode \
+leftbracketasciicode rightbracketasciicode hsizefrozenparcode skipfrozenparcode hangfrozenparcode \
+indentfrozenparcode parfillfrozenparcode adjustfrozenparcode protrudefrozenparcode tolerancefrozenparcode \
+stretchfrozenparcode loosenessfrozenparcode lastlinefrozenparcode linepenaltyfrozenparcode clubpenaltyfrozenparcode \
+widowpenaltyfrozenparcode displaypenaltyfrozenparcode brokenpenaltyfrozenparcode demeritsfrozenparcode shapefrozenparcode \
+linefrozenparcode hyphenationfrozenparcode shapingpenaltyfrozenparcode orphanpenaltyfrozenparcode allfrozenparcode \
+mathpenaltyfrozenparcode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken \
+batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode \
+simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode \
+aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode \
+insertgroupcode vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode \
+alsosimplegroupcode semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode \
+splitoffgroupcode splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode \
+discretionarygroupcode markautomigrationcode insertautomigrationcode adjustautomigrationcode preautomigrationcode \
+postautomigrationcode charnodecode hlistnodecode vlistnodecode rulenodecode \
+insertnodecode marknodecode adjustnodecode ligaturenodecode discretionarynodecode \
+whatsitnodecode mathnodecode gluenodecode kernnodecode penaltynodecode \
+unsetnodecode mathsnodecode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode \
+fractionrulemathcontrolcode accentskewhalfmathcontrolcode accentskewapplymathcontrolcode applyordinarykernpairmathcontrolcode applyverticalitalickernmathcontrolcode \
+applyordinaryitalickernmathcontrolcode applycharitalickernmathcontrolcode reboxcharitalickernmathcontrolcode applyboxeditalickernmathcontrolcode staircasekernmathcontrolcode \
+applytextitalickernmathcontrolcode applyscriptitalickernmathcontrolcode checkspaceitalickernmathcontrolcode checktextitalickernmathcontrolcode analyzescriptnucleuscharmathcontrolcode \
+analyzescriptnucleuslistmathcontrolcode analyzescriptnucleusboxmathcontrolcode accenttopskewwithoffsetmathcontrolcode ignorekerndimensionsmathcontrolcode ignoreflataccentsmathcontrolcode \
+extendaccentsmathcontrolcode noligaturingglyphoptioncode nokerningglyphoptioncode noexpansionglyphoptioncode noprotrusionglyphoptioncode \
+noleftkerningglyphoptioncode noleftligaturingglyphoptioncode norightkerningglyphoptioncode norightligaturingglyphoptioncode noitaliccorrectionglyphoptioncode \
+islargeoperatorglyphoptioncode hasitalicshapeglyphoptioncode normalparcontextcode vmodeparcontextcode vboxparcontextcode \
+vtopparcontextcode vcenterparcontextcode vadjustparcontextcode insertparcontextcode outputparcontextcode \
+alignparcontextcode noalignparcontextcode spanparcontextcode resetparcontextcode leftoriginlistanchorcode \
+leftheightlistanchorcode leftdepthlistanchorcode rightoriginlistanchorcode rightheightlistanchorcode rightdepthlistanchorcode \
+centeroriginlistanchorcode centerheightlistanchorcode centerdepthlistanchorcode halfwaytotallistanchorcode halfwayheightlistanchorcode \
+halfwaydepthlistanchorcode halfwayleftlistanchorcode halfwayrightlistanchorcode negatexlistsigncode negateylistsigncode \
+negatelistsigncode fontslantperpoint fontinterwordspace fontinterwordstretch fontinterwordshrink \
+fontexheight fontemwidth fontextraspace slantperpoint mathexheight \
+mathemwidth interwordspace interwordstretch interwordshrink exheight \
+emwidth extraspace mathaxisheight muquad startmode \
+stopmode startnotmode stopnotmode startmodeset stopmodeset \
+doifmode doifelsemode doifmodeelse doifnotmode startmodeset \
+stopmodeset startallmodes stopallmodes startnotallmodes stopnotallmodes \
+doifallmodes doifelseallmodes doifallmodeselse doifnotallmodes startenvironment \
+stopenvironment environment startcomponent stopcomponent component \
+startproduct stopproduct product startproject stopproject \
+project starttext stoptext startnotext stopnotext \
+startdocument stopdocument documentvariable unexpandeddocumentvariable setupdocument \
+presetdocument doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable \
+startmodule stopmodule usemodule usetexmodule useluamodule \
+setupmodule currentmoduleparameter moduleparameter everystarttext everystoptext \
+startTEXpage stopTEXpage enablemode disablemode preventmode \
+definemode globalenablemode globaldisablemode globalpreventmode pushmode \
+popmode typescriptone typescripttwo typescriptthree mathsizesuffix \
+mathordinarycode mathordcode mathoperatorcode mathopcode mathbinarycode \
+mathbincode mathrelationcode mathrelcode mathopencode mathclosecode \
+mathpunctuationcode mathpunctcode mathovercode mathundercode mathinnercode \
+mathradicalcode mathfractioncode mathmiddlecode mathaccentcode mathfencedcode \
+mathghostcode mathvariablecode mathactivecode mathvcentercode mathconstructcode \
+mathwrappedcode mathbegincode mathendcode mathexplicitcode mathdivisioncode \
+mathfactorialcode mathdimensioncode mathexperimentalcode mathtextpunctuationcode mathimaginarycode \
+mathdifferentialcode mathexponentialcode mathellipsiscode mathfunctioncode mathdigitcode \
+mathalphacode mathboxcode mathchoicecode mathnothingcode mathlimopcode \
+mathnolopcode mathunsetcode mathunspacedcode mathallcode mathfakecode \
+mathunarycode mathmaybeordinarycode mathmayberelationcode mathmaybebinarycode mathnumbergroupcode \
+constantnumber constantnumberargument constantdimen constantdimenargument constantemptyargument \
+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 autoinsertedspace Ux eUx \
+parfillleftskip parfillrightskip startlmtxmode stoplmtxmode startmkivmode \
+stopmkivmode wildcardsymbol normalhyphenationcode automatichyphenationcode explicithyphenationcode \
+syllablehyphenationcode uppercasehyphenationcode collapsehyphenationcode compoundhyphenationcode strictstarthyphenationcode \
+strictendhyphenationcode automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode \
+permitmathreplacehyphenationcode forcecheckhyphenationcode lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode \
+ignoreboundshyphenationcode partialhyphenationcode completehyphenationcode normalizelinenormalizecode parindentskipnormalizecode \
+swaphangindentnormalizecode swapparsshapenormalizecode breakafterdirnormalizecode removemarginkernsnormalizecode clipwidthnormalizecode \
+flattendiscretionariesnormalizecode discardzerotabskipsnormalizecode flattenhleadersnormalizecode normalizeparnormalizeparcode flattenvleadersnormalizeparcode \
+nopreslackclassoptioncode nopostslackclassoptioncode lefttopkernclassoptioncode righttopkernclassoptioncode leftbottomkernclassoptioncode \
+rightbottomkernclassoptioncode lookaheadforendclassoptioncode noitaliccorrectionclassoptioncode defaultmathclassoptions checkligatureclassoptioncode \
+checkitaliccorrectionclassoptioncode checkkernpairclassoptioncode flattenclassoptioncode omitpenaltyclassoptioncode unpackclassoptioncode \
+raiseprimeclassoptioncode carryoverlefttopkernclassoptioncode carryoverleftbottomkernclassoptioncode carryoverrighttopkernclassoptioncode carryoverrightbottomkernclassoptioncode \
+preferdelimiterdimensionsclassoptioncode autoinjectclassoptioncode removeitaliccorrectionclassoptioncode operatoritaliccorrectionclassoptioncode 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 continueifinputfile continuewhenlmtxmode continuewhenmkivmode
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 ecb3187f2..70627e12c 100644
--- a/context/data/scite/context/scite-context-data-tex.properties
+++ b/context/data/scite/context/scite-context-data-tex.properties
@@ -111,7 +111,7 @@ mathdoublescriptmode mathendclass matheqnogapstep mathfenced mathfontcontrol \
mathforwardpenalties mathfraction mathghost mathgluemode mathgroupingmode \
mathinner mathleftclass mathlimitsmode mathmainstyle mathmiddle \
mathnolimitsmode mathopen mathoperator mathordinary mathoverline \
-mathpenaltiesmode mathpunct mathradical mathrelation mathrightclass \
+mathpenaltiesmode mathpunctuation mathradical mathrelation mathrightclass \
mathrulesfam mathrulesmode mathscale mathscriptsmode mathslackmode \
mathspacingmode mathstackstyle mathstyle mathstylefontid mathsurroundmode \
mathsurroundskip maththreshold mathunderline meaningasis meaningfull \
@@ -204,37 +204,37 @@ leaders left lefthyphenmin leftskip leqno \
let limits linepenalty lineskip lineskiplimit \
long looseness lower lowercase mark \
mathbin mathchar mathchardef mathchoice mathcode \
-mathop mathord mathrel mathsurround maxdeadcycles \
-maxdepth meaning medmuskip message middle \
-mkern month moveleft moveright mskip \
-multiply multiplyby muskip muskipdef newlinechar \
-noalign noexpand noindent nolimits nonscript \
-nonstopmode nulldelimiterspace nullfont number omit \
-or outer output outputpenalty over \
-overfullrule overline overwithdelims pagedepth pagefilllstretch \
-pagefillstretch pagefilstretch pagegoal pageshrink pagestretch \
-pagetotal par parfillleftskip parfillskip parindent \
-parinitleftskip parinitrightskip parshape parskip patterns \
-pausing penalty postdisplaypenalty predisplaypenalty predisplaysize \
-pretolerance prevdepth prevgraf radical raise \
-relax relpenalty right righthyphenmin rightskip \
-romannumeral scriptfont scriptscriptfont scriptscriptstyle scriptspace \
-scriptstyle scrollmode setbox setlanguage sfcode \
-shipout show showbox showboxbreadth showboxdepth \
-showlists shownodedetails showthe skewchar skip \
-skipdef spacefactor spaceskip span splitbotmark \
-splitfirstmark splitmaxdepth splittopskip string tabskip \
-textfont textstyle the thickmuskip thinmuskip \
-time toks toksdef tolerance topmark \
-topskip tracingcommands tracinglostchars tracingmacros tracingonline \
-tracingoutput tracingpages tracingparagraphs tracingrestores tracingstats \
-uccode uchyph unboundary underline unhbox \
-unhcopy unkern unpenalty unskip unvbox \
-unvcopy uppercase vadjust valign vbadness \
-vbox vcenter vfil vfill vfilneg \
-vfuzz vrule vsize vskip vsplit \
-vss vtop wd widowpenalty xdef \
-xleaders xspaceskip year
+mathop mathord mathpunct mathrel mathsurround \
+maxdeadcycles maxdepth meaning medmuskip message \
+middle mkern month moveleft moveright \
+mskip multiply multiplyby muskip muskipdef \
+newlinechar noalign noexpand noindent nolimits \
+nonscript nonstopmode nulldelimiterspace nullfont number \
+omit or outer output outputpenalty \
+over overfullrule overline overwithdelims pagedepth \
+pagefilllstretch pagefillstretch pagefilstretch pagegoal pageshrink \
+pagestretch pagetotal par parfillleftskip parfillskip \
+parindent parinitleftskip parinitrightskip parshape parskip \
+patterns pausing penalty postdisplaypenalty predisplaypenalty \
+predisplaysize pretolerance prevdepth prevgraf radical \
+raise relax relpenalty right righthyphenmin \
+rightskip romannumeral scriptfont scriptscriptfont scriptscriptstyle \
+scriptspace scriptstyle scrollmode setbox setlanguage \
+sfcode shipout show showbox showboxbreadth \
+showboxdepth showlists shownodedetails showthe skewchar \
+skip skipdef spacefactor spaceskip span \
+splitbotmark splitfirstmark splitmaxdepth splittopskip string \
+tabskip textfont textstyle the thickmuskip \
+thinmuskip time toks toksdef tolerance \
+topmark topskip tracingcommands tracinglostchars tracingmacros \
+tracingonline tracingoutput tracingpages tracingparagraphs tracingrestores \
+tracingstats uccode uchyph unboundary underline \
+unhbox unhcopy unkern unpenalty unskip \
+unvbox unvcopy uppercase vadjust valign \
+vbadness vbox vcenter vfil vfill \
+vfilneg vfuzz vrule vsize vskip \
+vsplit vss vtop wd widowpenalty \
+xdef xleaders xspaceskip year
keywordclass.tex.xetex=\
XeTeXversion
diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf
index 76d2769db..a6c0d6c42 100644
--- a/doc/context/documents/general/manuals/luametatex.pdf
+++ b/doc/context/documents/general/manuals/luametatex.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-building.tex b/doc/context/sources/general/manuals/luametatex/luametatex-building.tex
index 9e09bce7c..4941a5929 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-building.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-building.tex
@@ -719,7 +719,7 @@ depth of the box are taken into account when interline space is calculated.
\topicindex {packing}
These three primitives are the equivalents of \prm {hbox}, \prm {vbox}, \prm
-{vtop} and \prm P{dbox} but they don't trigger the packaging related callbacks.
+{vtop} and \prm {dbox} but they don't trigger the packaging related callbacks.
Of course one never know if content needs a treatment so using them should be
done with care. Apart from accepting more keywords (and therefore options) the
normal box behave the same as before.
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex b/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex
index 0469d0cc8..803b0427b 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex
@@ -76,7 +76,7 @@ if callback.known("foo") then ... end
\stopsection
-\startsection[title={File related callbacks}][library=callback]
+\startsection[title={File related callbacks},reference=iocallback][library=callback]
\startsubsection[title={\cbk {find_format_file} and \cbk {find_log_file}}]
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
index 15682e036..b64bcd4bc 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
@@ -1149,7 +1149,7 @@ The \prm {beginsimplegroup} primitives signals that any end group command, excep
\prm {endmathgroup} will wrap up the current group. The \prm {endsimplegroup} is
sort of redundant but fits in anyway.
-The also \LUAMETATEX\ specific \prm {mathbegingroup} and \prm {mathendgroup}
+The also \LUAMETATEX\ specific \prm {beginmathgroup} and \prm {endmathgroup}
commands are like \prm {begingroup} and \prm {endgroup} but restore the mathstyle
when it has been changed in the group.
@@ -1327,6 +1327,11 @@ or more than zero.
The last checked values are available in \prm {lastchknum} and \prm {lastchkdim}.
These don't obey grouping.
+The two primitives \prm {ifchkdimension} and \prm {ifchknumber} are like \prm
+{ifchkdimen} and \prm {ifchknum}but are more rigorous: the short ones quit
+scanning at a match where after the match there can be anything, while the long
+variants don't accept following crap.
+
\stopsubsection
\startsubsection[title={\prm {ifmathstyle} and \prm {ifmathparameter}}]
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
index 64eb06bc9..b4e692545 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
@@ -854,7 +854,7 @@ instance content moved into the margin:
\topicindex {glyphs + properties}
-The \prm {fontcharwd}, \prm {fontcharht}, \prm {fontchardp} and \prm {fontcharit}
+The \prm {fontcharwd}, \prm {fontcharht}, \prm {fontchardp} and \prm {fontcharic}
give access to character properties. To this repertoire \LUAMETATEX\ adds the top
accent accessor \prm {fontcharta} which came in handy for tracing. You pass a
font reference and character code. Normally only \OPENTYPE\ math fonts have this
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
index 37926c8ab..1da49b455 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
@@ -830,8 +830,8 @@ $\Ustack {a \over b}$
\stoptyping
The \prm {Ustack} command will scan the next brace and start a new math group
-with the correct (numerator) math style. The \prm {ustackstyle} relates to this
-feature.
+with the correct (numerator) math style. The \prm {mathstackstyle} primitive
+relates to this feature.
\stopsubsection
@@ -1040,6 +1040,8 @@ undefined will get presets, quite likely zero):
\NC \prm {Umathflattenedaccentbottomshiftdown} \NC the amount that a wide bottom accent is shifted down \NC \NR
\NC \prm {Umathdelimiterpercent} \NC \NC \NR
\NC \prm {Umathdelimitershortfall} \NC \NC \NR
+\NC \prm {Umathradicalextensiblebefore} \NC \NC \NR
+\NC \prm {Umathradicalextensibleafter} \NC \NC \NR
\stoptabulate
These relate to the font parameters and in \CONTEXT\ we assign some different
@@ -1557,16 +1559,17 @@ The original \TEX\ engine has primitives like \prm {mathord} and a limited set o
possible atoms. In \LUAMETATEX\ we have many more built in and you can add more.
It will take a while before we have documented all the new math features and more
details can be found in the manuals that come with \CONTEXT\ for which all this
-was implemented. In addition to \prm {mathord}, \prm {mathop}, \prm {mathbin},
-\prm {mathrel}, \prm {mathopen}, \prm {mathclose}, \prm {mathpunct} and \prm
-{mathinner} we have \prm {mathfrac}, \prm {mathrad}, \prm {mathmiddle}, \prm
-{mathaccent}, \prm {mathfenced}. \prm {mathghost} and the existing \prm
-{underline} and \prm {overline} class driven atoms.
+was implemented. In addition to \prm {mathordinary} (aka \prm {mathord}), \prm
+{mathoperator} (aka \prm {mathop}), \prm {mathbinary} (aka \prm {mathbin}), \prm
+{mathrelation} (aka \prm {mathrel}), \prm {mathopen}, \prm {mathclose}, \prm
+{mathpunct} and \prm {mathinner} we have \prm {mathfraction}, \prm {mathradical},
+\prm {mathmiddle}, \prm {mathaccent}, \prm {mathfenced}. \prm {mathghost} and the
+existing \prm {underline} and \prm {overline} class driven atoms.
The \prm {mathatom} primitive is the generic one and it accepts a couple of
keywords:
-\starttabulate[|cT|l|]
+\starttabulate[|lT|l|l|]
\DB keyword \BC argument \NC meaning \NC \NR
\TB
\NC attr \NC int int \NC attributes to be applied to this atom \NC \NR
@@ -1842,7 +1845,7 @@ supports two delimiters.
\topicindex {math+radicals}
\topicindex {math+delimiters}
-This new primitive is like \prm {Rooted} in that it takes two delimiters but it
+This new primitive is like \prm {Urooted} in that it takes two delimiters but it
takes no degree and no rule is drawn.
\starttyping
@@ -2264,7 +2267,16 @@ get the length of the last line, the following will often work too:
\stopsection
-\startsection[title={Math mode}]
+\startsection[title={Math mode and scripts}]
+
+\startsubsection[title={Entering and leaving math mode with \prm {Ustartmathmode}
+and \prm {Ustopmathmode}}]
+
+These commands are variants on the single and double (usually) dollar signs that
+make us enter math mode and later leave it. The start command expects a style
+identifier that determines in what style we end up in.
+
+\stopsubsection
\startsubsection[title={Verbose versions of single|-|character math commands like \prm {Usuperscript}
and \prm {Usubscript}}]
@@ -2528,6 +2540,17 @@ Watch how the spacing changes:
\getbuffer
\stoplines
+The \TEX\ engines deal with active characters in math differently as in text.
+When a character has class~8 it will be fed back into the machinery with an
+active catcode which of course assumes that there is some meaning attached.
+
+A variant on this is the use of \prm {amcode}. A character that has that code set
+and that is active when we are in math mode, will be fed back with that code as
+catcode which can be one of alignment tab, superscript, subscript, letter, other
+char, or active. This feature is still experimental. Watch out: when an already
+active character remains active we get a loop. Also, math characters are checked
+for this property too, which can then turn them active.
+
\stopsubsection
\startsubsection[title={Checking class states}]
@@ -2768,10 +2791,12 @@ probably more qualifies as a feature specific for that usage.
\DB value \BC meaning \NC \NR
\TB
\NC 0x01 \NC obey stretch component \NC \NR
-\NC 0x02 \NC obey shrink component \NC \NR
+\NC 0x02 \NC obey shrink component \NC \NR
\LL
\stoptabulate
+\stopsubsection
+
\stopsection
\startsection[title={Experiments}]
@@ -2894,8 +2919,6 @@ You'll notice that we apply more severe penalties at the edges:
\stopsubsection
-\stopsection
-
\startsubsection[title={\prm {Umathdiscretionary} and \prm {hmcode}}]
\topicindex {math+discretionaries}
@@ -2928,6 +2951,9 @@ So we can say:
\stoptyping
When the \type {italic} bit is set italic correction is kept at a linebreak.
+\stopsubsection
+
+\stopsection
\stopchapter
diff --git a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
index a8247c1de..d4fc437e6 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
@@ -1407,6 +1407,26 @@ incompatible. We already expose some more details.
\stopsubsection
+\startsubsection[title=Hyperlinks]
+
+\topicindex {hyperlinks}
+
+There is an experimental feature that makes multi|-|line hyper links behave a
+little better, fixing some side effects that showed up in r2l typesetting but
+also can surface in l2r. Because this got unnoticed till 2023, and because it
+depends bit on how macro packages deal with hyper links, the fix is currently
+under parameter control:
+
+\starttyping
+\pdfvariable linking = 1
+\stoptyping
+
+That way (we hope) legacy documents come out as expected, whatever those
+expectations are. One of the aspects dealt with concerns (unusual) left and right
+skips.
+
+\stopsubsection
+
\stopsection
\stopchapter
diff --git a/source/luametatex/cmake/lua.cmake b/source/luametatex/cmake/lua.cmake
index ed0ab1803..7c7eac35d 100644
--- a/source/luametatex/cmake/lua.cmake
+++ b/source/luametatex/cmake/lua.cmake
@@ -82,6 +82,14 @@ if (NOT MSVC)
)
endif (NOT MSVC)
+if (CMAKE_HOST_APPLE)
+ target_compile_definitions(lua PUBLIC
+ TARGET_OS_IOS=0
+ TARGET_OS_WATCH=0
+ TARGET_OS_TV=0
+ )
+endif (CMAKE_HOST_APPLE)
+
# this seems to be ok for mingw default
#
# todo: what is the right way to increase the stack (mingw)
diff --git a/source/luametatex/source/luacore/lua54/src/lgc.c b/source/luametatex/source/luacore/lua54/src/lgc.c
index 2e7499025..a3094ff57 100644
--- a/source/luametatex/source/luacore/lua54/src/lgc.c
+++ b/source/luametatex/source/luacore/lua54/src/lgc.c
@@ -1681,12 +1681,15 @@ static void incstep (lua_State *L, global_State *g) {
}
/*
-** performs a basic GC step if collector is running
+** Performs a basic GC step if collector is running. (If collector is
+** not running, set a reasonable debt to avoid it being called at
+** every single check.)
*/
void luaC_step (lua_State *L) {
global_State *g = G(L);
- lua_assert(!g->gcemergency);
- if (gcrunning(g)) { /* running? */
+ if (!gcrunning(g)) /* not running? */
+ luaE_setdebt(g, -2000);
+ else {
if(isdecGCmodegen(g))
genstep(L, g);
else
diff --git a/source/luametatex/source/luacore/lua54/src/lgc.h b/source/luametatex/source/luacore/lua54/src/lgc.h
index c960e7064..538f6edcc 100644
--- a/source/luametatex/source/luacore/lua54/src/lgc.h
+++ b/source/luametatex/source/luacore/lua54/src/lgc.h
@@ -172,18 +172,19 @@
#define luaC_checkGC(L) luaC_condGC(L,(void)0,(void)0)
-#define luaC_barrier(L,p,v) ( \
- (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \
- luaC_barrier_(L,obj2gco(p),gcvalue(v)) : cast_void(0))
-
-#define luaC_barrierback(L,p,v) ( \
- (iscollectable(v) && isblack(p) && iswhite(gcvalue(v))) ? \
- luaC_barrierback_(L,p) : cast_void(0))
-
#define luaC_objbarrier(L,p,o) ( \
(isblack(p) && iswhite(o)) ? \
luaC_barrier_(L,obj2gco(p),obj2gco(o)) : cast_void(0))
+#define luaC_barrier(L,p,v) ( \
+ iscollectable(v) ? luaC_objbarrier(L,p,gcvalue(v)) : cast_void(0))
+
+#define luaC_objbarrierback(L,p,o) ( \
+ (isblack(p) && iswhite(o)) ? luaC_barrierback_(L,p) : cast_void(0))
+
+#define luaC_barrierback(L,p,v) ( \
+ iscollectable(v) ? luaC_objbarrierback(L, p, gcvalue(v)) : cast_void(0))
+
LUAI_FUNC void luaC_fix (lua_State *L, GCObject *o);
LUAI_FUNC void luaC_freeallobjects (lua_State *L);
LUAI_FUNC void luaC_step (lua_State *L);
diff --git a/source/luametatex/source/luacore/lua54/src/lmathlib.c b/source/luametatex/source/luacore/lua54/src/lmathlib.c
index e0c61a168..d0b1e1e5d 100644
--- a/source/luametatex/source/luacore/lua54/src/lmathlib.c
+++ b/source/luametatex/source/luacore/lua54/src/lmathlib.c
@@ -267,7 +267,7 @@ static int math_type (lua_State *L) {
/* try to find an integer type with at least 64 bits */
-#if (ULONG_MAX >> 31 >> 31) >= 3
+#if ((ULONG_MAX >> 31) >> 31) >= 3
/* 'long' has at least 64 bits */
#define Rand64 unsigned long
@@ -277,9 +277,9 @@ static int math_type (lua_State *L) {
/* there is a 'long long' type (which must have at least 64 bits) */
#define Rand64 unsigned long long
-#elif (LUA_MAXUNSIGNED >> 31 >> 31) >= 3
+#elif ((LUA_MAXUNSIGNED >> 31) >> 31) >= 3
-/* 'lua_Integer' has at least 64 bits */
+/* 'lua_Unsigned' has at least 64 bits */
#define Rand64 lua_Unsigned
#endif
@@ -500,12 +500,12 @@ static lua_Number I2d (Rand64 x) {
/* convert a 'Rand64' to a 'lua_Unsigned' */
static lua_Unsigned I2UInt (Rand64 x) {
- return ((lua_Unsigned)trim32(x.h) << 31 << 1) | (lua_Unsigned)trim32(x.l);
+ return (((lua_Unsigned)trim32(x.h) << 31) << 1) | (lua_Unsigned)trim32(x.l);
}
/* convert a 'lua_Unsigned' to a 'Rand64' */
static Rand64 Int2I (lua_Unsigned n) {
- return packI((lu_int32)(n >> 31 >> 1), (lu_int32)n);
+ return packI((lu_int32)((n >> 31) >> 1), (lu_int32)n);
}
#endif /* } */
diff --git a/source/luametatex/source/luacore/lua54/src/lmem.c b/source/luametatex/source/luacore/lua54/src/lmem.c
index 9029d588c..9800a86fc 100644
--- a/source/luametatex/source/luacore/lua54/src/lmem.c
+++ b/source/luametatex/source/luacore/lua54/src/lmem.c
@@ -22,25 +22,6 @@
#include "lstate.h"
-#if defined(EMERGENCYGCTESTS)
-/*
-** First allocation will fail whenever not building initial state.
-** (This fail will trigger 'tryagain' and a full GC cycle at every
-** allocation.)
-*/
-static void *firsttry (global_State *g, void *block, size_t os, size_t ns) {
- if (completestate(g) && ns > 0) /* frees never fail */
- return NULL; /* fail */
- else /* normal allocation */
- return (*g->frealloc)(g->ud, block, os, ns);
-}
-#else
-#define firsttry(g,block,os,ns) ((*g->frealloc)(g->ud, block, os, ns))
-#endif
-
-
-
-
/*
** About the realloc function:
@@ -60,6 +41,43 @@ static void *firsttry (global_State *g, void *block, size_t os, size_t ns) {
*/
+/*
+** Macro to call the allocation function.
+*/
+#define callfrealloc(g,block,os,ns) ((*g->frealloc)(g->ud, block, os, ns))
+
+
+/*
+** When an allocation fails, it will try again after an emergency
+** collection, except when it cannot run a collection. The GC should
+** not be called while the state is not fully built, as the collector
+** is not yet fully initialized. Also, it should not be called when
+** 'gcstopem' is true, because then the interpreter is in the middle of
+** a collection step.
+*/
+#define cantryagain(g) (completestate(g) && !g->gcstopem)
+
+
+
+
+#if defined(EMERGENCYGCTESTS)
+/*
+** First allocation will fail except when freeing a block (frees never
+** fail) and when it cannot try again; this fail will trigger 'tryagain'
+** and a full GC cycle at every allocation.
+*/
+static void *firsttry (global_State *g, void *block, size_t os, size_t ns) {
+ if (ns > 0 && cantryagain(g))
+ return NULL; /* fail */
+ else /* normal allocation */
+ return callfrealloc(g, block, os, ns);
+}
+#else
+#define firsttry(g,block,os,ns) callfrealloc(g, block, os, ns)
+#endif
+
+
+
/*
@@ -132,7 +150,7 @@ l_noret luaM_toobig (lua_State *L) {
void luaM_free_ (lua_State *L, void *block, size_t osize) {
global_State *g = G(L);
lua_assert((osize == 0) == (block == NULL));
- (*g->frealloc)(g->ud, block, osize, 0);
+ callfrealloc(g, block, osize, 0);
g->GCdebt -= osize;
}
@@ -140,19 +158,15 @@ void luaM_free_ (lua_State *L, void *block, size_t osize) {
/*
** In case of allocation fail, this function will do an emergency
** collection to free some memory and then try the allocation again.
-** The GC should not be called while state is not fully built, as the
-** collector is not yet fully initialized. Also, it should not be called
-** when 'gcstopem' is true, because then the interpreter is in the
-** middle of a collection step.
*/
static void *tryagain (lua_State *L, void *block,
size_t osize, size_t nsize) {
global_State *g = G(L);
- if (completestate(g) && !g->gcstopem) {
+ if (cantryagain(g)) {
luaC_fullgc(L, 1); /* try to free some memory... */
- return (*g->frealloc)(g->ud, block, osize, nsize); /* try again */
+ return callfrealloc(g, block, osize, nsize); /* try again */
}
- else return NULL; /* cannot free any memory without a full state */
+ else return NULL; /* cannot run an emergency collection */
}
diff --git a/source/luametatex/source/luacore/lua54/src/loslib.c b/source/luametatex/source/luacore/lua54/src/loslib.c
index 854dcf691..7eb05cafd 100644
--- a/source/luametatex/source/luacore/lua54/src/loslib.c
+++ b/source/luametatex/source/luacore/lua54/src/loslib.c
@@ -138,12 +138,28 @@
/* }================================================================== */
+/*
+** Despite claiming to be ISO, the C library in some Apple platforms
+** does not implement 'system'.
+*/
+#if !defined(l_system) && defined(__APPLE__) /* { */
+#include "TargetConditionals.h"
+#if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV
+#define l_system(cmd) ((cmd) == NULL ? 0 : -1)
+#endif
+#endif /* } */
+
+#if !defined(l_system)
+#define l_system(cmd) system(cmd) /* default definition */
+#endif
+
+
static int os_execute (lua_State *L) {
const char *cmd = luaL_optstring(L, 1, NULL);
int stat;
errno = 0;
- stat = system(cmd);
+ stat = l_system(cmd);
if (cmd != NULL)
return luaL_execresult(L, stat);
else {
diff --git a/source/luametatex/source/luacore/lua54/src/lstate.h b/source/luametatex/source/luacore/lua54/src/lstate.h
index 2e9078187..8bf6600e3 100644
--- a/source/luametatex/source/luacore/lua54/src/lstate.h
+++ b/source/luametatex/source/luacore/lua54/src/lstate.h
@@ -9,6 +9,11 @@
#include "lua.h"
+
+/* Some header files included here need this definition */
+typedef struct CallInfo CallInfo;
+
+
#include "lobject.h"
#include "ltm.h"
#include "lzio.h"
@@ -169,7 +174,7 @@ typedef struct stringtable {
** - field 'transferinfo' is used only during call/returnhooks,
** before the function starts or after it ends.
*/
-typedef struct CallInfo {
+struct CallInfo {
StkIdRel func; /* function index in the stack */
StkIdRel top; /* top for this function */
struct CallInfo *previous, *next; /* dynamic call link */
@@ -196,7 +201,7 @@ typedef struct CallInfo {
} u2;
short nresults; /* expected number of results from this function */
unsigned short callstatus;
-} CallInfo;
+};
/*
@@ -291,7 +296,7 @@ typedef struct global_State {
struct lua_State *mainthread;
TString *memerrmsg; /* message for memory-allocation errors */
TString *tmname[TM_N]; /* array with tag-method names */
- struct Table *mt[LUA_NUMTAGS]; /* metatables for basic types */
+ struct Table *mt[LUA_NUMTYPES]; /* metatables for basic types */
TString *strcache[STRCACHE_N][STRCACHE_M]; /* cache for strings in API */
lua_WarnFunction warnf; /* warning function */
void *ud_warn; /* auxiliary data to 'warnf' */
diff --git a/source/luametatex/source/luacore/lua54/src/ltm.h b/source/luametatex/source/luacore/lua54/src/ltm.h
index 73b833c60..c309e2ae1 100644
--- a/source/luametatex/source/luacore/lua54/src/ltm.h
+++ b/source/luametatex/source/luacore/lua54/src/ltm.h
@@ -9,6 +9,7 @@
#include "lobject.h"
+#include "lstate.h"
/*
@@ -95,8 +96,8 @@ LUAI_FUNC int luaT_callorderiTM (lua_State *L, const TValue *p1, int v2,
int inv, int isfloat, TMS event);
LUAI_FUNC void luaT_adjustvarargs (lua_State *L, int nfixparams,
- struct CallInfo *ci, const Proto *p);
-LUAI_FUNC void luaT_getvarargs (lua_State *L, struct CallInfo *ci,
+ CallInfo *ci, const Proto *p);
+LUAI_FUNC void luaT_getvarargs (lua_State *L, CallInfo *ci,
StkId where, int wanted);
diff --git a/source/luametatex/source/luacore/lua54/src/lua.c b/source/luametatex/source/luacore/lua54/src/lua.c
index 7f7dc2b22..715430a0d 100644
--- a/source/luametatex/source/luacore/lua54/src/lua.c
+++ b/source/luametatex/source/luacore/lua54/src/lua.c
@@ -633,7 +633,8 @@ static int pmain (lua_State *L) {
}
luaL_openlibs(L); /* open standard libraries */
createargtable(L, argv, argc, script); /* create table 'arg' */
- lua_gc(L, LUA_GCGEN, 0, 0); /* GC in generational mode */
+ lua_gc(L, LUA_GCRESTART); /* start GC... */
+ lua_gc(L, LUA_GCGEN, 0, 0); /* ...in generational mode */
if (!(args & has_E)) { /* no option '-E'? */
if (handle_luainit(L) != LUA_OK) /* run LUA_INIT */
return 0; /* error running LUA_INIT */
@@ -665,6 +666,7 @@ int main (int argc, char **argv) {
l_message(argv[0], "cannot create state: not enough memory");
return EXIT_FAILURE;
}
+ lua_gc(L, LUA_GCSTOP); /* stop GC while buidling state */
lua_pushcfunction(L, &pmain); /* to call 'pmain' in protected mode */
lua_pushinteger(L, argc); /* 1st argument */
lua_pushlightuserdata(L, argv); /* 2nd argument */
diff --git a/source/luametatex/source/luacore/lua54/src/lua.h b/source/luametatex/source/luacore/lua54/src/lua.h
index bfba4d1e1..feb3dbc55 100644
--- a/source/luametatex/source/luacore/lua54/src/lua.h
+++ b/source/luametatex/source/luacore/lua54/src/lua.h
@@ -131,6 +131,16 @@ typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize);
typedef void (*lua_WarnFunction) (void *ud, const char *msg, int tocont);
+/*
+** Type used by the debug API to collect debug information
+*/
+typedef struct lua_Debug lua_Debug;
+
+
+/*
+** Functions to be called by the debugger in specific events
+*/
+typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
/*
@@ -442,12 +452,6 @@ LUA_API void (lua_closeslot) (lua_State *L, int idx);
#define LUA_MASKLINE (1 << LUA_HOOKLINE)
#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT)
-typedef struct lua_Debug lua_Debug; /* activation record */
-
-
-/* Functions to be called by the debugger in specific events */
-typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar);
-
LUA_API int (lua_getstack) (lua_State *L, int level, lua_Debug *ar);
LUA_API int (lua_getinfo) (lua_State *L, const char *what, lua_Debug *ar);
diff --git a/source/luametatex/source/luametatex.h b/source/luametatex/source/luametatex.h
index 93abb0814..c26810396 100644
--- a/source/luametatex/source/luametatex.h
+++ b/source/luametatex/source/luametatex.h
@@ -87,9 +87,9 @@
# include "tex/textypes.h"
# define luametatex_version 210
-# define luametatex_revision 05
-# define luametatex_version_string "2.10.05"
-# define luametatex_development_id 20230112
+# define luametatex_revision 06
+# define luametatex_version_string "2.10.06"
+# define luametatex_development_id 20230126
# define luametatex_name_camelcase "LuaMetaTeX"
# define luametatex_name_lowercase "luametatex"
diff --git a/source/luametatex/source/tex/texcommands.c b/source/luametatex/source/tex/texcommands.c
index 13357a141..eaf2c7bbd 100644
--- a/source/luametatex/source/tex/texcommands.c
+++ b/source/luametatex/source/tex/texcommands.c
@@ -922,7 +922,7 @@ void tex_initialize_commands(void)
tex_primitive(luatex_command, "mathrelation", math_component_cmd, math_component_relation_code, 0);
tex_primitive(luatex_command, "mathopen", math_component_cmd, math_component_open_code, 0);
tex_primitive(luatex_command, "mathclose", math_component_cmd, math_component_close_code, 0);
- tex_primitive(luatex_command, "mathpunct", math_component_cmd, math_component_punctuation_code, 0);
+ tex_primitive(luatex_command, "mathpunctuation", math_component_cmd, math_component_punctuation_code, 0);
tex_primitive(luatex_command, "mathinner", math_component_cmd, math_component_inner_code, 0);
tex_primitive(luatex_command, "mathfraction", math_component_cmd, math_component_fraction_code, 0);
tex_primitive(luatex_command, "mathradical", math_component_cmd, math_component_radical_code, 0);
diff --git a/source/luametatex/source/tex/texconditional.c b/source/luametatex/source/tex/texconditional.c
index 22176f8b6..40c704492 100644
--- a/source/luametatex/source/tex/texconditional.c
+++ b/source/luametatex/source/tex/texconditional.c
@@ -228,7 +228,7 @@ static void tex_aux_push_condition_stack(int code, int unless)
{
halfword p = tex_get_node(if_node_size);
node_type(p) = if_node;
- node_subtype(p) = 0;
+ node_subtype(p) = 0; /* unused */
node_next(p) = lmt_condition_state.cond_ptr;
if_limit_type(p) = (quarterword) lmt_condition_state.if_limit;
if_limit_subtype(p) = (quarterword) lmt_condition_state.cur_if;
diff --git a/source/luametatex/source/tex/textoken.c b/source/luametatex/source/tex/textoken.c
index dfdc9f73d..b07bf02f1 100644
--- a/source/luametatex/source/tex/textoken.c
+++ b/source/luametatex/source/tex/textoken.c
@@ -842,7 +842,7 @@ typedef enum next_line_retval {
next_line_restart
} next_line_retval;
-static next_line_retval tex_aux_next_line(void);
+static inline next_line_retval tex_aux_next_line(void);
/*tex
@@ -1263,7 +1263,7 @@ static int tex_aux_get_next_file(void)
RESWITCH:
if (lmt_input_state.cur_input.cattable == no_catcode_table_preset) {
/* happens seldom: detokenized line */
- cur_cmd = cur_chr == ' ' ? 10 : 12;
+ cur_cmd = cur_chr == ' ' ? spacer_cmd : other_char_cmd;
} else {
cur_cmd = tex_aux_the_cat_code(cur_chr);
}
@@ -1386,15 +1386,15 @@ static int tex_aux_get_next_file(void)
break;
/*
case skip_blanks_state + math_shift_cmd:
- case skip_blanks_state + tab_mark_cmd:
- case skip_blanks_state + mac_param_cmd:
- case skip_blanks_state + sub_mark_cmd:
+ case skip_blanks_state + alignment_tab_cmd:
+ case skip_blanks_state + parameter_cmd:
+ case skip_blanks_state + subscript_cmd:
case skip_blanks_state + letter_cmd:
case skip_blanks_state + other_char_cmd:
case new_line_state + math_shift_cmd:
- case new_line_state + tab_mark_cmd:
- case new_line_state + mac_param_cmd:
- case new_line_state + sub_mark_cmd:
+ case new_line_state + alignment_tab_cmd:
+ case new_line_state + parameter_cmd:
+ case new_line_state + subscript_cmd:
case new_line_state + letter_cmd:
case new_line_state + other_char_cmd:
*/
@@ -1729,11 +1729,6 @@ static int tex_aux_scan_control_sequence(void)
continue;
}
}
- // state = cat == spacer_cmd ? skip_blanks_state : mid_line_state;
- // /*tex If an expanded \unknown */
- // if (cat == sup_mark_cmd && check_expanded_code(&loc, chr)) {
- // continue;
- // }
} else {
state = skip_blanks_state;
do {
@@ -1872,7 +1867,7 @@ static void tex_aux_check_validity(void)
}
}
-static next_line_retval tex_aux_next_line(void)
+static inline next_line_retval tex_aux_next_line(void)
{
if (lmt_input_state.cur_input.name > io_initial_input_code) {
/*tex Read next line of file into |buffer|, or |goto restart| if the file has ended. */
@@ -1966,7 +1961,7 @@ static next_line_retval tex_aux_next_line(void)
break;
}
case io_tex_macro_code:
- /* what */
+ /* this can't happen and will fail with the next line check */
default:
if (tex_lua_input_ln()) {
/*tex Not end of file, set |ilimit|. */
@@ -2032,6 +2027,7 @@ static next_line_retval tex_aux_next_line(void)
tex_fatal_error("aborting job");
}
}
+ /*tex We're in a loop and restart: */
return next_line_ok;
}
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 0766c82c3..e224c87b5 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{2023.01.24 13:47}
+\newcontextversion{2023.01.26 18:32}
%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 3234da7b6..dd497d22f 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{2023.01.24 13:47}
+\edef\contextversion{2023.01.26 18:32}
%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 71e6d8978..6892458b6 100644
--- a/tex/context/base/mkii/mult-fr.mkii
+++ b/tex/context/base/mkii/mult-fr.mkii
@@ -450,6 +450,7 @@
\setinterfacevariable{printable}{imprimable}
\setinterfacevariable{process}{traiter}
\setinterfacevariable{product}{produit}
+\setinterfacevariable{profile}{profil}
\setinterfacevariable{program}{programme}
\setinterfacevariable{project}{projet}
\setinterfacevariable{protected}{protege}
diff --git a/tex/context/base/mkiv/colo-ini.lua b/tex/context/base/mkiv/colo-ini.lua
index 136f5b435..7a53ca71f 100644
--- a/tex/context/base/mkiv/colo-ini.lua
+++ b/tex/context/base/mkiv/colo-ini.lua
@@ -662,7 +662,7 @@ local function definemixcolor(makecolor,name,fractions,cs,global,freeze)
if not v then
return
end
- values[i] = v
+ colorvalues[i] = v
end
if #values > 0 then
csone = values[1][1]
@@ -1366,7 +1366,14 @@ implement {
end
}
--- playground for MS and HH
+-- This is a playground for MS and HH:
+--
+-- Required Contrast Ratios for WCAG Conformance (how about small text)
+--
+-- Level AA Text 4.5:1 for regular text and 3.0:1 for large text (18pt or 14pt/bold)
+-- Level AAA Text 7.0:1 for regular text and 4.5:1 for large text (18pt or 14pt/bold)
+--
+-- Level AA Non-Text 3.0:1 for user interface components and graphics
do
@@ -1378,7 +1385,7 @@ do
end
local function luminance(color)
- color = values[color]
+ color = colorvalues[color]
if color then
return (0.2126 * crap(color[2]) + 0.7152 * crap(color[3]) + 0.0722 * crap(color[4])) + 0.05
end
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 34d9b4ed0..1b0808abe 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{2023.01.24 13:47}
+\newcontextversion{2023.01.26 18:32}
%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 9e556a542..19c917ba3 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -49,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2023.01.24 13:47}
+\edef\contextversion{2023.01.26 18:32}
%D Kind of special:
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index ffd71ea41..088bc698c 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -66,7 +66,7 @@ return {
"tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode",
"commaasciicode", "spaceasciicode", "periodasciicode",
"hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode",
- "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode",
+ "colonasciicode", "semicolonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode",
"leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode",
"leftparentasciicode", "rightparentasciicode",
"lessthanasciicode", "morethanasciicode", "doublecommentsignal",
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 14035ad5a..72da89718 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -538,7 +538,7 @@ return {
"mathordinary",
"mathoverline",
"mathpenaltiesmode",
- "mathpunct",
+ "mathpunctuation",
"mathradical",
"mathrelation",
"mathrightclass",
@@ -972,6 +972,7 @@ return {
"mathcode",
"mathop",
"mathord",
+ "mathpunct",
"mathrel",
"mathsurround",
"maxdeadcycles",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 10fca5828..2a59817c4 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 45f201541..08eb077f3 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkxl/colo-ini.mkxl b/tex/context/base/mkxl/colo-ini.mkxl
index 807fdfad1..a7f483bc2 100644
--- a/tex/context/base/mkxl/colo-ini.mkxl
+++ b/tex/context/base/mkxl/colo-ini.mkxl
@@ -664,6 +664,31 @@
\fetchmodulecommand \showcolor \f!colo_run
+%D This one shows the luminance ratio conform WCAG:
+%D
+%D \starttyping
+%D \starttabulate[||r|]
+%D \NC red \NC \colorluminance{red} \NC \NR
+%D \NC green \NC \colorluminance{green} \NC \NR
+%D \NC black \NC \colorluminance{black} \NC \NR
+%D \NC white \NC \colorluminance{white} \NC \NR
+%D \stoptabulate
+%D
+%D \starttabulate[||r|]
+%D \NC red : green \NC \colorluminanceratio{red}{green} \NC \NR
+%D \NC red : black \NC \colorluminanceratio{red}{black} \NC \NR
+%D \NC red : white \NC \colorluminanceratio{red}{white} \NC \NR
+%D \stoptabulate
+%D
+%D \usecolors[crayola]
+%D
+%D \compareluminance[Jade] [Onyx] \par
+%D \compareluminance[Goldenrod] [Onyx] \par
+%D \compareluminance[CobaltBlue][Onyx] \par
+%D \stoptyping
+
+\fetchmodulecommand \compareluminance \f!colo_run
+
%D It would make sense to put the following code in \type {colo-mps}, but it it
%D rather low level.
diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index ac65d70cc..8d37b45f5 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{2023.01.24 13:47}
+\newcontextversion{2023.01.26 18:32}
%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 ec204055b..94dc84089 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{2023.01.24 13:47}
+\immutable\edef\contextversion{2023.01.26 18:32}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/core-env.lmt b/tex/context/base/mkxl/core-env.lmt
index f5b382f12..018a01767 100644
--- a/tex/context/base/mkxl/core-env.lmt
+++ b/tex/context/base/mkxl/core-env.lmt
@@ -18,7 +18,6 @@ local P, C, S, lpegmatch, patterns = lpeg.P, lpeg.C, lpeg.S, lpeg.match, lpeg.pa
local context = context
local ctxcore = context.core
-local texgetcount = tex.getcount
local texgetintegervalue = token.getinteger -- todo
local allocate = utilities.storage.allocate
@@ -119,12 +118,10 @@ setmetatablenewindex(texifs, function(t,k) end)
-- kind of variable ... maybe we no longer have to cache anyway (in lmtx)
setmetatableindex(texconstants, function(t,k)
- -- return cache[k].command == countcode and texgetcount(k) or 0
return cache[k].command == integercode and texgetintegervalue(k) or 0
end)
setmetatableindex(texconditionals, function(t,k) -- 0 == true
- -- return cache[k].command == countcode and texgetcount(k) == 0
return cache[k].command == integercode and texgetintegervalue(k) == 0
end)
diff --git a/tex/context/base/mkxl/font-imp-quality.lmt b/tex/context/base/mkxl/font-imp-quality.lmt
index 9c57613ee..6637fa07f 100644
--- a/tex/context/base/mkxl/font-imp-quality.lmt
+++ b/tex/context/base/mkxl/font-imp-quality.lmt
@@ -147,7 +147,7 @@ local function initialize(tfmdata,value)
factor = factor,
}
local data = characters and characters.data
- for i, chr in next, tfmdata.characters do
+ for i, chr in next, tfmdata.characters do -- todo unicode
local v = vector[i]
if data and not v then -- we could move the data test outside (needed for plain)
local d = data[i]
diff --git a/tex/context/base/mkxl/layo-ini.lmt b/tex/context/base/mkxl/layo-ini.lmt
index 1919558ed..2d922b16a 100644
--- a/tex/context/base/mkxl/layo-ini.lmt
+++ b/tex/context/base/mkxl/layo-ini.lmt
@@ -12,6 +12,9 @@ if not modules then modules = { } end modules ['layo-ini'] = {
local texgetcount = tex.getcount
local conditionals = tex.conditionals
+local c_realpageno = tex.iscount("realpageno")
+local c_pagenoshift = tex.iscount("pagenoshift")
+
layouts = {
status = { },
}
@@ -26,14 +29,14 @@ function status.leftorrightpageaction(left,right)
return left, right
elseif conditionals.layoutissinglesided then
return left, right
- elseif texgetcount("pagenoshift") % 2 == 0 then
- if texgetcount("realpageno") % 2 == 0 then
+ elseif texgetcount(c_pagenoshift) % 2 == 0 then
+ if texgetcount(c_realpageno) % 2 == 0 then
return right, left
else
return left, right
end
else
- if texgetcount("realpageno") % 2 == 0 then
+ if texgetcount(c_realpageno) % 2 == 0 then
return left, right
else
return right, left
@@ -46,10 +49,10 @@ function status.isleftpage(r)
return false
elseif conditionals.layoutissinglesided then
return false
- elseif texgetcount("pagenoshift") % 2 == 0 then
- return (r or texgetcount("realpageno")) % 2 == 0
+ elseif texgetcount(c_pagenoshift) % 2 == 0 then
+ return (r or texgetcount(c_realpageno)) % 2 == 0
else
- return not (r or texgetcount("realpageno")) % 2 == 0
+ return not (r or texgetcount(c_realpageno)) % 2 == 0
end
end
diff --git a/tex/context/base/mkxl/lpdf-rul.lmt b/tex/context/base/mkxl/lpdf-rul.lmt
index 391fd0ad1..3bcfa80e2 100644
--- a/tex/context/base/mkxl/lpdf-rul.lmt
+++ b/tex/context/base/mkxl/lpdf-rul.lmt
@@ -189,51 +189,51 @@ do
local linemapping = {
[interfaces.variables.round] = "ltrb",
- ["0"] = "ltrb", ["trbl"] = "ltrb", ["rblt"] = "ltrb", ["bltr"] = "ltrb",
+ [ "0"] = "ltrb", ["ltrb"] = "ltrb", ["trbl"] = "ltrb", ["rblt"] = "ltrb", ["bltr"] = "ltrb",
--
["1"] = "ltrb", ["2"] = "ltrb", ["3"] = "ltrb", ["4"] = "ltrb",
["5"] = "ltrb", ["6"] = "ltrb", ["7"] = "ltrb", ["8"] = "ltrb",
--
- [ "9"] = "lbr", ["rbl"] = "lbr",
- ["10"] = "tlb", ["blt"] = "tlb",
- ["11"] = "ltr", ["rtl"] = "lrt",
- ["12"] = "lbr", ["rbl"] = "lbr",
+ [ "9"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
+ ["10"] = "tlb", ["tlb"] = "tlb", ["blt"] = "tlb",
+ ["11"] = "ltr", ["ltr"] = "ltr", ["rtl"] = "lrt",
+ ["12"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
--
- ["13"] = "rt", ["tr"] = "rt",
- ["14"] = "rb", ["br"] = "rb",
- ["15"] = "bl", ["lb"] = "bl",
- ["16"] = "tl", ["lt"] = "tl",
+ ["13"] = "rt", ["rt"] = "rt", ["tr"] = "rt",
+ ["14"] = "rb", ["rb"] = "rb", ["br"] = "rb",
+ ["15"] = "bl", ["bl"] = "bl", ["lb"] = "bl",
+ ["16"] = "tl", ["tl"] = "tl", ["lt"] = "tl",
--
- ["32"] = "lr", ["rl"] = "lr",
- ["33"] = "tb", ["bt"] = "tb",
+ ["32"] = "lr", ["lr"] = "lr", ["rl"] = "lr",
+ ["33"] = "tb", ["tb"] = "tb", ["bt"] = "tb",
--
- ["28"] = "l",
- ["29"] = "r",
- ["30"] = "b",
- ["31"] = "t",
+ ["28"] = "l", ["l"] = "l",
+ ["29"] = "r", ["r"] = "r",
+ ["30"] = "b", ["b"] = "b",
+ ["31"] = "t", ["t"] = "t",
}
local roundmapping = {
[interfaces.variables.round] = "ltrb",
- [ "0"] = "ltrb", ["trbl"] = "ltrb", ["rblt"] = "ltrb", ["bltr"] = "ltrb",
+ [ "0"] = "ltrb", ["ltrb"] = "ltrb", ["trbl"] = "ltrb", ["rblt"] = "ltrb", ["bltr"] = "ltrb",
--
- [ "9"] = "lbr", ["rbl"] = "lbr",
- ["10"] = "tlb", ["blt"] = "tlb",
- ["11"] = "ltr", ["rtl"] = "lrt",
- ["12"] = "lbr", ["rbl"] = "lbr",
+ [ "9"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
+ ["10"] = "tlb", ["tlb"] = "tlb", ["blt"] = "tlb",
+ ["11"] = "ltr", ["ltr"] = "ltr", ["rtl"] = "lrt",
+ ["12"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
--
- ["13"] = "rt", ["tr"] = "rt",
- ["14"] = "rb", ["br"] = "rb",
- ["15"] = "bl", ["lb"] = "bl",
- ["16"] = "tl", ["lt"] = "tl",
+ ["13"] = "rt", ["rt"] = "rt", ["tr"] = "rt",
+ ["14"] = "rb", ["rb"] = "rb", ["br"] = "rb",
+ ["15"] = "bl", ["bl"] = "bl", ["lb"] = "bl",
+ ["16"] = "tl", ["tl"] = "tl", ["lt"] = "tl",
--
- ["32"] = "lr", ["rl"] = "lr",
- ["33"] = "tb", ["bt"] = "tb",
+ ["32"] = "lr", ["lr"] = "lr", ["rl"] = "lr",
+ ["33"] = "tb", ["tb"] = "tb", ["bt"] = "tb",
--
- ["28"] = "l",
- ["29"] = "r",
- ["30"] = "b",
- ["31"] = "t",
+ ["28"] = "l", ["l"] = "l",
+ ["29"] = "r", ["r"] = "r",
+ ["30"] = "b", ["b"] = "b",
+ ["31"] = "t", ["t"] = "t",
}
setmetatableindex(linemapping,function(t,k)
@@ -329,7 +329,7 @@ do
list = { "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, yyymax, "l", xmax, ymax, xxxmax, ymax, "y", xmin, ymax, "l", xmin, ymin, "l", done }
elseif method == "6" then -- lr
list = { "q", line, "w", xmin, ymin, "m", xxxmax, ymin, "l", xmax, ymin, xmax, yyymin, "y", xmax, ymax, "l", xmin, ymax, "l", xmin, ymin, "l", done }
- elseif method == "7" then --
+ elseif method == "7" then -- ur
list = { "q", line, "w", xxxmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xmin, ymax, "l", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", done } -- outlier
elseif method == "8" then -- ul
list = { "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, ymin, "l", done }
diff --git a/tex/context/base/mkxl/math-act.lmt b/tex/context/base/mkxl/math-act.lmt
index a55331c46..1036445f1 100644
--- a/tex/context/base/mkxl/math-act.lmt
+++ b/tex/context/base/mkxl/math-act.lmt
@@ -993,6 +993,7 @@ do
{ "rule", used, 0 },
},
}
+ basedata.partsorientation = "vertical"
basedata.parts = {
{
advance = used,
@@ -2064,7 +2065,6 @@ do -- this could be combined with the previous
local target = characters[unicode]
if source and target then
local sequence = data.sequence
- local horizontal = data.horizontal
if sequence then
local parts = source.parts
if parts then
@@ -2095,6 +2095,9 @@ do -- this could be combined with the previous
end
if #p > 0 then
target.parts = p
+ if not data.horizontal then
+ target.partsorientation = "vertical"
+ end
end
end
end
@@ -2337,6 +2340,7 @@ do
{ advance = mid, ["end"] = mid/2, glyph = 0x23AE, start = mid/2, extender = 1 },
{ advance = top, ["end"] = top/3, glyph = 0x2320, start = top/3 },
}
+ integral.partsorientation = "vertical"
if trace_tweaking then
report_tweak("fixing the integral extensible",target,original)
end
@@ -2766,6 +2770,11 @@ do
{ 0x2021, nps("delimited right ddagger"), nps("delimited ghost ddagger") },
{ 0x2217, nps("delimited right ast"), nps("delimited ghost ast") },
{ 0x22C6, nps("delimited right star"), nps("delimited ghost star") },
+
+ { 0x231C, nps("delimited left upper corner"), nps("delimited ghost upper corner") },
+ { 0x231D, nps("delimited right upper corner"), nps("delimited ghost upper corner") },
+ { 0x231E, nps("delimited left lower corner"), nps("delimited ghost lower corner"), true },
+ { 0x231F, nps("delimited right lower corner"), nps("delimited ghost lower corner"), true },
}
function mathtweaks.addfourier(target,original,parameters)
@@ -2775,45 +2784,41 @@ do
local basecode = entry[1]
local fouriercode = entry[2]
local movecode = entry[3]
+ local reverse = entry[4]
local basechar = characters[basecode]
- local scale = parameters.scale or 1
- local variant = parameters.variant
- if variant then
- for i=1,variant do
- local okay = basechar.next
- if okay then
- basecode = okay
- basechar = characters[basecode]
- else
- break
+ if basechar then
+ local scale = parameters.scale or 1
+ local variant = parameters.variant
+ if variant then
+ for i=1,variant do
+ local okay = basechar.next
+ if okay then
+ basecode = okay
+ basechar = characters[basecode]
+ else
+ break
+ end
end
end
- end
- local baseheight = scale * (basechar.height or 0)
- local basedepth = scale * (basechar.depth or 0)
- local basewidth = scale * (basechar.width or 0)
- local used = baseheight/2
- local total = baseheight + basedepth
- characters[movecode] = {
- width = basewidth,
- height = used,
- unicode = basecode,
- -- callback = "devirtualize",
- commands = {
- downcommand[used],
- { "rule", used, 0 },
- },
- }
- characters[fouriercode] = {
- width = basewidth,
- height = baseheight,
- depth = basedepth,
- unicode = basecode,
- -- callback = "devirtualize",
- commands = {
- scale == 1 and charcommand[basecode] or { "slot", 0, basecode, scale, scale },
- },
- parts = {
+ local baseheight = scale * (basechar.height or 0)
+ local basedepth = scale * (basechar.depth or 0)
+ local basewidth = scale * (basechar.width or 0)
+ local used = baseheight/2
+ local total = baseheight + basedepth
+if reverse then
+ used = total / 2 -- basedepth / 2
+end
+ characters[movecode] = {
+ width = basewidth,
+ height = used,
+ unicode = basecode,
+ -- callback = "devirtualize",
+ commands = {
+ downcommand[used],
+ { "rule", used, 0 },
+ },
+ }
+ local parts = {
{
advance = used,
["end"] = used,
@@ -2828,9 +2833,24 @@ do
start = total,
},
}
- }
- if trace_tweaking then
- report_tweak("fourier %U added using %U",target,original,basecode,fouriercode)
+ if reverse then
+ parts[1], parts[2] = parts[2], parts[1]
+ end
+ characters[fouriercode] = {
+ width = basewidth,
+ height = baseheight,
+ depth = basedepth,
+ unicode = basecode,
+ -- callback = "devirtualize",
+ commands = {
+ scale == 1 and charcommand[basecode] or { "slot", 0, basecode, scale, scale },
+ },
+ partsorientation = "vertical",
+ parts = parts,
+ }
+ if trace_tweaking then
+ report_tweak("fourier %U added using %U",target,original,basecode,fouriercode)
+ end
end
end
end
@@ -2877,13 +2897,15 @@ do
-- local used = 0.8*height
local used = 1.2*height -- large overlap because no smaller pieces
local total = height + depth
- characters[single].parts = extensible(single,total,used)
+ basechar.parts = extensible(single,total,used)
+ basechar.partsorientation = "vertical"
characters[double] = {
unicode = double,
width = 2*width - 1*advance,
height = height,
depth = depth,
parts = extensible(double,total,used),
+ partsorientation = "vertical",
callback = "devirtualize",
commands = {
charcommand[single],
@@ -2896,7 +2918,8 @@ do
width = 3*width - 2*advance,
height = height,
depth = depth,
- vparts = extensible(triple,total,used),
+ parts = extensible(triple,total,used),
+ partsorientation = "vertical",
callback = "devirtualize",
commands = {
charcommand[single],
diff --git a/tex/context/base/mkxl/math-dld.mklx b/tex/context/base/mkxl/math-dld.mklx
index 66100e0ac..dcbb17c5e 100644
--- a/tex/context/base/mkxl/math-dld.mklx
+++ b/tex/context/base/mkxl/math-dld.mklx
@@ -105,7 +105,7 @@
\integerdef\delimitedrightastuc \privatecharactercode{delimited right ast}
\integerdef\delimitedrightstaruc \privatecharactercode{delimited right star}
-% \integerdef\delimitedrighthatuc \p rivatecharactercode{delimited right hat}
+% \integerdef\delimitedrighthatuc \privatecharactercode{delimited right hat}
% \integerdef\delimitedrighttildeuc \privatecharactercode{delimited right tilde}
% \integerdef\delimitedrightcheckuc \privatecharactercode{delimited right check}
@@ -223,4 +223,43 @@
\definemathdelimited [doublereverseprimed] [primed] [\c!right="2036]
\definemathdelimited [triplereverseprimed] [primed] [\c!right="2037]
+%
+
+\integerdef\delimitedleftuppercorner \privatecharactercode{delimited left upper corner}
+\integerdef\delimitedrightuppercorner\privatecharactercode{delimited right upper corner}
+\integerdef\delimitedleftlowercorner \privatecharactercode{delimited left lower corner}
+\integerdef\delimitedrightlowercorner\privatecharactercode{delimited right lower corner}
+
+\definemathdelimited
+ [leftuppermarked]
+ [marked]
+ [\c!left=\delimitedleftuppercorner]
+
+\definemathdelimited
+ [rightuppermarked]
+ [marked]
+ [\c!right=\delimitedrightuppercorner]
+
+\definemathdelimited
+ [uppermarked]
+ [marked]
+ [\c!left=\delimitedleftuppercorner,
+ \c!right=\delimitedrightuppercorner]
+
+\definemathdelimited
+ [leftlowermarked]
+ [marked]
+ [\c!left=\delimitedleftlowercorner]
+
+\definemathdelimited
+ [rightlowermarked]
+ [marked]
+ [\c!right=\delimitedrightlowercorner]
+
+\definemathdelimited
+ [lowermarked]
+ [marked]
+ [\c!left=\delimitedleftlowercorner,
+ \c!right=\delimitedrightlowercorner]
+
\protect \endinput
diff --git a/tex/context/base/mkxl/math-ini.mkxl b/tex/context/base/mkxl/math-ini.mkxl
index 901d187b0..fd1cb2243 100644
--- a/tex/context/base/mkxl/math-ini.mkxl
+++ b/tex/context/base/mkxl/math-ini.mkxl
@@ -2609,18 +2609,18 @@
% \protected\def\math_punctuation_comma {\textcomma \futurelet\nexttoken\math_punctuation_next}
% \protected\def\math_punctuation_period{\textperiod\futurelet\nexttoken\math_punctuation_next}
%
-% \setnewconstant\c_math_comma "002C
-% \setnewconstant\c_math_period "002E
+% \setnewconstant\commaasciicode "002C
+% \setnewconstant\periodasciicode "002E
% \setnewconstant\c_math_special"8000
%
% \bgroup
%
-% \catcode\c_math_comma \activecatcode
-% \catcode\c_math_period\activecatcode
+% \catcode\commaasciicode \activecatcode
+% \catcode\periodasciicode\activecatcode
%
% \protected\gdef\math_punctuation_initialize_indeed
-% {\mathcode\c_math_comma \c_math_special
-% \mathcode\c_math_period\c_math_special
+% {\mathcode\commaasciicode \c_math_special
+% \mathcode\periodasciicode\c_math_special
% \let,\math_punctuation_comma
% \let.\math_punctuation_period
% \c_attr_mathpunctuation\plustwo}
@@ -2660,38 +2660,49 @@
%
% The next one is more efficient as it produces more flat noad lists for numbers.
-\setnewconstant\c_math_comma "002C
-\setnewconstant\c_math_period "002E
-%setnewconstant\c_math_colon "003A
-\setnewconstant\c_math_semicolon"003B
-\setnewconstant\c_math_special "8000
-
-% todo: use \Umathclass\c_math_comma\mathpunctcode etc for temporary switching
-
%D This is a dirty trick. In order to prevent a loop due to reinjection, when a
%D active one is seen, the amcode is set to other. So, afterwards we need to
%D reactivate. Eventually this feature will be dropped in favor of a more modern
%D mechanism.
-\def\math_activeate_comma {\amcode\c_math_comma \activecatcode}
-\def\math_activeate_period {\amcode\c_math_period \activecatcode}
-\def\math_activeate_semicolon{\amcode\c_math_semicolon\activecatcode}
+%D These amcodes can be alignmenttab, superscript, subscript, letter, otherchar, or
+%D active. That way we can avoid the "8000 hackery and let characters keep the
+%D proper class. The code is checked when we run into an active character in math
+%D mode
+
+\def\math_activeate_comma {\amcode\commaasciicode \activecatcode}
+\def\math_activeate_period {\amcode\periodasciicode \activecatcode}
+\def\math_activeate_semicolon{\amcode\semicolonasciicode\activecatcode}
+
+\def\math_set_o_comma {\Umathcode\commaasciicode \mathordinarycode \zerocount\commaasciicode}
+\def\math_set_p_comma {\Umathcode\commaasciicode \mathpunctuationcode\zerocount\commaasciicode}
+\def\math_set_o_period {\Umathcode\periodasciicode \mathordinarycode \zerocount\periodasciicode}
+\def\math_set_p_period {\Umathcode\periodasciicode \mathpunctuationcode\zerocount\periodasciicode}
+\def\math_set_o_semicolon{\Umathcode\semicolonasciicode\mathordinarycode \zerocount\semicolonasciicode}
+\def\math_set_p_semicolon{\Umathcode\semicolonasciicode\mathpunctuationcode\zerocount\semicolonasciicode}
-\def\math_set_o_comma {\Umathcode\c_math_comma \mathordinarycode \zerocount\c_math_comma}
-\def\math_set_p_comma {\Umathcode\c_math_comma \mathpunctuationcode\zerocount\c_math_comma}
-\def\math_set_o_period {\Umathcode\c_math_period \mathordinarycode \zerocount\c_math_period}
-\def\math_set_p_period {\Umathcode\c_math_period \mathpunctuationcode\zerocount\c_math_period}
-\def\math_set_o_semicolon{\Umathcode\c_math_semicolon\mathordinarycode \zerocount\c_math_semicolon}
-\def\math_set_p_semicolon{\Umathcode\c_math_semicolon\mathpunctuationcode\zerocount\c_math_semicolon}
+\edef\math_set_o_both{\math_set_o_period\math_set_o_comma}
+\edef\math_set_p_both{\math_set_p_period\math_set_p_comma}
-\edef\math_set_o_both {\math_set_o_period\math_set_o_comma}
-\edef\math_set_p_both {\math_set_p_period\math_set_p_comma}
+% We cannot use \mathchardef'd variants because then are intercepted as active, so:
\protected\def\math_punctuation_nop_comma {\begingroup\math_set_p_comma ,\endgroup\math_activeate_comma }
\protected\def\math_punctuation_nop_period {\begingroup\math_set_o_period .\endgroup\math_activeate_period }
\protected\def\math_punctuation_nop_semicolon{\begingroup\math_set_p_semicolon;\endgroup\math_activeate_semicolon}
-% todo: use new lookahead stuff
+\def\math_punctuation_comma_next {\begingroup\Umathcode\commaasciicode \ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\commaasciicode ,\endgroup\math_activeate_comma }
+\def\math_punctuation_period_next {\begingroup\Umathcode\periodasciicode \ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\periodasciicode .\endgroup\math_activeate_period }
+\def\math_punctuation_semicolon_next{\begingroup\Umathcode\semicolonasciicode\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\semicolonasciicode;\endgroup\math_activeate_semicolon}
+
+% So, nicer is:
+%
+% \protected\def\math_punctuation_nop_comma {\Umathclass\mathpunctuationcode\commaasciicode \math_activeate_comma }
+% \protected\def\math_punctuation_nop_period {\Umathclass\mathordinarycode \periodasciicode \math_activeate_period }
+% \protected\def\math_punctuation_nop_semicolon{\Umathclass\mathpunctuationcode\semicolonasciicode\math_activeate_semicolon}
+%
+% \def\math_punctuation_comma_next {\Umathclass\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\commaasciicode \math_activeate_comma }
+% \def\math_punctuation_period_next {\Umathclass\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\periodasciicode \math_activeate_period }
+% \def\math_punctuation_semicolon_next{\Umathclass\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\semicolonasciicode\math_activeate_semicolon}
\protected\def\math_punctuation_all_comma {\futurelet\nexttoken\math_punctuation_comma_next}
\protected\def\math_punctuation_all_period {\futurelet\nexttoken\math_punctuation_period_next}
@@ -2701,19 +2712,15 @@
\let\math_punctuation_yes_period \math_punctuation_nop_period
\let\math_punctuation_yes_semicolon\math_punctuation_all_semicolon
-\def\math_punctuation_comma_next {\begingroup\Umathcode\c_math_comma \ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\c_math_comma ,\endgroup\math_activeate_comma }
-\def\math_punctuation_period_next {\begingroup\Umathcode\c_math_period \ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\c_math_period .\endgroup\math_activeate_period }
-\def\math_punctuation_semicolon_next{\begingroup\Umathcode\c_math_semicolon\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\c_math_semicolon;\endgroup\math_activeate_semicolon}
-
\installcorenamespace {mathautopunctuation}
\bgroup
% This can and will be replaced by classes:
- \catcode\c_math_comma \activecatcode
- \catcode\c_math_period \activecatcode
- \catcode\c_math_semicolon\activecatcode
+ \catcode\commaasciicode \activecatcode
+ \catcode\periodasciicode \activecatcode
+ \catcode\semicolonasciicode\activecatcode
\gdefcsname\??mathautopunctuation\v!no\endcsname
{\let,\math_punctuation_nop_comma
@@ -2753,19 +2760,19 @@
\egroup
% \appendtoks
-% \global\mathcode\c_math_comma \c_math_special
-% \global\mathcode\c_math_period \c_math_special
-% \global\mathcode\c_math_semicolon\c_math_special
+% \global\mathcode\commaasciicode \c_math_special
+% \global\mathcode\periodasciicode \c_math_special
+% \global\mathcode\semicolonasciicode\c_math_special
% \to \everyjob
-% \activatemathcharacter\c_math_comma
-% \activatemathcharacter\c_math_period
-% \activatemathcharacter\c_math_semicolon
+% \activatemathcharacter\commaasciicode
+% \activatemathcharacter\periodasciicode
+% \activatemathcharacter\semicolonasciicode
% \appendtoks
-% \mathcode\c_math_comma \c_math_special
-% \mathcode\c_math_period \c_math_special
-% \mathcode\c_math_semicolon\c_math_special
+% \mathcode\commaasciicode \c_math_special
+% \mathcode\periodasciicode \c_math_special
+% \mathcode\semicolonasciicode\c_math_special
% \begincsname\??mathautopunctuation\mathematicsparameter\c!autopunctuation\endcsname
% \to \everymathematics
diff --git a/tex/context/base/mkxl/math-spa.lmt b/tex/context/base/mkxl/math-spa.lmt
index 9840a6aef..126bb739b 100644
--- a/tex/context/base/mkxl/math-spa.lmt
+++ b/tex/context/base/mkxl/math-spa.lmt
@@ -46,7 +46,6 @@ local nextlist = nuts.traversers.list
local nextboundary = nuts.traversers.boundary
local nextnode = nuts.traversers.node
-local texgetdimen = tex.getdimen
local texsetdimen = tex.setdimen
local texsetcount = tex.setcount
local texisdimen = tex.isdimen
diff --git a/tex/context/base/mkxl/pack-rul.mkxl b/tex/context/base/mkxl/pack-rul.mkxl
index baaab17a5..9c25cbf05 100644
--- a/tex/context/base/mkxl/pack-rul.mkxl
+++ b/tex/context/base/mkxl/pack-rul.mkxl
@@ -121,6 +121,32 @@
{\installsimplecommandhandler{#1}{#2}{#3}%
\installinheritedframed{#2}}
+% corner options (with radius=0pt rectangular):
+%
+% 0 round ltrb trbl rblt bltr
+% 1 2 3 4 5 6 7 8 ltrb
+% 9 lbr rbl / 10 tlb blt / 11 ltr rtl / 12 lbr rbl
+% 13 rt tr / 14 rb br / 15 bl lb / 16 tl lt
+% 32 lr rl / 33 tb bt
+% 28 l / 29 r / 30 b / 31 t
+
+%D \starttyping
+%D \dostepwiserecurse{0}{33}{1}{
+%D \startTEXpage[offset=1dk]
+%D \dontleavehmode\ruledhbox{\framed
+%D [framecolor=red,
+%D framecorner=#1,
+%D frameradius=\zeropoint]
+%D {TEST #1}}
+%D \ruledhbox{\framed
+%D [framecolor=red,
+%D framecorner=#1,
+%D frameradius=10pt]
+%D {TEST #1}}
+%D \stopTEXpage
+%D }
+%D \stoptyping
+
% for regular framed
\setupframed
diff --git a/tex/context/base/mkxl/page-blk.lmt b/tex/context/base/mkxl/page-blk.lmt
index 2078245e4..4a4441fd1 100644
--- a/tex/context/base/mkxl/page-blk.lmt
+++ b/tex/context/base/mkxl/page-blk.lmt
@@ -10,6 +10,8 @@ local context = context
local implement = interfaces.implement
local texgetcount = tex.getcount
+local c_realpageno = tex.iscount("realpageno")
+
local blocks = { }
local block = false
@@ -17,7 +19,7 @@ implement {
name = "startpageblock",
arguments = "string",
actions = function(s)
- local p = texgetcount("realpageno")
+ local p = texgetcount(c_realpageno)
block = { p, p }
blocks[s] = block
end,
@@ -26,7 +28,7 @@ implement {
implement {
name = "stoppageblock",
actions = function()
- local p = texgetcount("realpageno") - 1
+ local p = texgetcount(c_realpageno) - 1
block[2] = p
end,
}
@@ -76,7 +78,7 @@ implement {
name = "startprerollpageblock",
arguments = "string",
actions = function(name)
- currentrealpage = texgetcount("realpageno")
+ currentrealpage = texgetcount(c_realpageno)
currentpreroll = name
end
}
@@ -84,7 +86,7 @@ implement {
implement {
name = "stopprerollpageblock",
actions = function()
- prerolled[currentpreroll] = texgetcount("realpageno") - currentrealpage
+ prerolled[currentpreroll] = texgetcount(c_realpageno) - currentrealpage
currentpreroll = false
end
}
diff --git a/tex/context/base/mkxl/spac-ali.lmt b/tex/context/base/mkxl/spac-ali.lmt
index 05b517d3d..9fa024672 100644
--- a/tex/context/base/mkxl/spac-ali.lmt
+++ b/tex/context/base/mkxl/spac-ali.lmt
@@ -117,7 +117,7 @@ function alignments.set(n)
report_realign("enabled")
end
end
- texsetattribute(a_realign,texgetcount("realpageno") * 10 + n)
+ texsetattribute(a_realign,texgetcount(c_realpageno) * 10 + n)
end
interfaces.implement {
diff --git a/tex/context/base/mkxl/spac-prf.lmt b/tex/context/base/mkxl/spac-prf.lmt
index 66a75cba0..d8f5169f1 100644
--- a/tex/context/base/mkxl/spac-prf.lmt
+++ b/tex/context/base/mkxl/spac-prf.lmt
@@ -1,4 +1,4 @@
- if not modules then modules = { } end modules ['spac-prf'] = {
+if not modules then modules = { } end modules ['spac-prf'] = {
version = 1.001,
comment = "companion to spac-prf.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -40,6 +40,9 @@ local texlists = tex.lists
local settexattribute = tex.setattribute
local texgetdimen = tex.getdimen
+local d_strutht = tex.isdimen("strutht")
+local d_strutdp = tex.isdimen("strutdp")
+
local newindex = lua.newindex
local nuts = nodes.nuts
@@ -65,6 +68,9 @@ local getdepth = nuts.getdepth
local getboxglue = nuts.getboxglue
local effectiveglue = nuts.effectiveglue
local findattribute = nuts.findattribute
+local getspeciallist = nuts.getspeciallist
+
+local getlistdimensions = nuts.getlistdimensions
local nextnode = nuts.traversers.node
local nextglue = nuts.traversers.glue
@@ -476,8 +482,8 @@ methods[v_strict] = function(top,bot,t_profile,b_profile,specification)
local top = tonut(top)
local bot = tonut(bot)
- local strutht = specification.height or texgetdimen.strutht
- local strutdp = specification.depth or texgetdimen.strutdp
+ local strutht = specification.height or texgetdimen(d_strutht)
+ local strutdp = specification.depth or texgetdimen(d_strutdp)
local lineheight = strutht + strutdp
local depth = getdepth(top)
@@ -512,8 +518,8 @@ methods[v_fixed] = function(top,bot,t_profile,b_profile,specification)
local top = tonut(top)
local bot = tonut(bot)
- local strutht = specification.height or texgetdimen.strutht
- local strutdp = specification.depth or texgetdimen.strutdp
+ local strutht = specification.height or texgetdimen(d_strutht)
+ local strutdp = specification.depth or texgetdimen(d_strutdp)
local lineheight = strutht + strutdp
local depth = getdepth(top)
@@ -970,15 +976,12 @@ do
if subtype >= leaders_code then
local leader = getleader(current)
local w
- w, ht, dp = getwhd(leader) -- can become getwhd(current) after 1.003
+ w, ht, dp = getwhd(leader)
else
dp = 0
end
elseif id == hlist_code then
- -- maybe: offsets
- -- we could do a nested check .. but then we need to push / pop glue
- local shift = getshift(current)
- local w, h, d = getwhd(current)
+ local w, h, d, shift = getlistdimensions(current)
if getprop(current,"specialcontent") then
-- like a margin note, maybe check for wd
wd = w
@@ -988,8 +991,9 @@ do
dp = d + shift
end
elseif id == vlist_code then
- local shift = getshift(current) -- todo
- wd, ht, dp = getwhd(current) -- todo: use combined getter
+ local shift
+ wd, ht, dp, shift = getlistdimensions(current)
+ dp = dp + shift
elseif id == rule_code then
if subtype == strutrule_code then
dp = 0
@@ -1068,15 +1072,12 @@ do
if subtype >= leaders_code then
local leader = getleader(current)
local w
- w, ht, dp = getwhd(leader) -- can become getwhd(current) after 1.003
+ w, ht, dp = getwhd(leader)
else
ht = 0
end
elseif id == hlist_code then
- -- maybe: offsets
- -- we could do a nested check .. but then we need to push / pop glue
- local shift = getshift(current)
- local w, h, d = getwhd(current)
+ local w, h, d, shift = getlistdimensions(current)
if getprop(current,"specialcontent") then
-- like a margin note, maybe check for wd
wd = w
@@ -1086,8 +1087,9 @@ do
ht = h - shift
end
elseif id == vlist_code then
- local shift = getshift(current) -- todo
- wd, ht, dp = getwhd(current) -- todo: use combined getter
+ local shift
+ wd, ht, dp, shift = getlistdimensions(current)
+ ht = ht - shift
elseif id == rule_code then
if subtype == strutrule_code then
ht = 0
@@ -1155,10 +1157,12 @@ do
local defaultmethod = "a"
local defaultfactor = 1
+ local v_yes = interfaces.variables.yes
+
-- I played with different methods (like only get depths and then on the fly check with heights
-- but there is no gain and it is also fuzzy. So for now we just do the whole scan.
- function profilelines(list)
+ function profilelines(list,prev)
if not list then
return
@@ -1170,72 +1174,75 @@ do
end
-- no height or depth ... skip
-
for current, subtype in nextglue, start do
if subtype == lineskip_code and not getprop(current,"profiled") then
local detail = getattr(current,a_lineprofile)
if detail then
- --
local amount = getwidth(current)
- --
- local top, bot = getboth(current)
- setprop(current,"profiled",amount) -- original amount
- if top then
- if getid(top) == penalty_code then
- top = getprev(top)
+ if amount > 0 then
+ detail = getvalue(a_lineprofile,detail) or { }
+ --
+ local top, bot = getboth(current)
+ setprop(current,"profiled",amount) -- original amount, maybe move up
+ if not top and prev and detail.paragraph == v_yes then
+ top = prev
end
- if top and bot then
- if getid(top) == hlist_code and getsubtype(top) == linelist_code then
- if getid(bot) == hlist_code and getsubtype(bot) == linelist_code then
- local toplist = getlist(top)
- local botlist = getlist(bot)
- if toplist and botlist then
- --
- local detail = getvalue(a_lineprofile,detail) or { }
- local step = detail.step or defaultstep
- local factor = tonumber(detail.factor) or defaultfactor
- local method = detail.method or defaultmethod
- local margin = step / 4
- --
- if factor > 1 then
- factor = 1
- elseif factor <= 0 then
- factor = 0 -- we could actually go the other way
- end
- --
- local natural = getdepth(top) + getheight(bot)
- local added = factor * amount
- local possible = natural - added
- local overshoot = 0
- local topmax = ceiling(getwidth(top)/step) + 1
- local botmax = ceiling(getwidth(bot)/step) + 1
- -- if method == "a" then
- local depths = getdepthprofile (top,step,margin,topmax,toplist)
- local heights = getheightprofile(bot,step,margin,botmax,botlist)
- local steps = min(#depths,#heights)
- for i=1,steps do
- local o = heights[i] + depths[i] - possible
- if o > overshoot then
- -- we can quit when >= added
- overshoot = o
--- if overshoot > added then
--- break
--- end
- end
- end
- -- end
- -- if overshoot < added / 2 then
- -- overshoot = added / 2
- -- end
- if overshoot ~= amount then -- shouldn't we round
- setwidth(current,overshoot)
- if show_lineprofile then
- setattr(current,a_visual,glue_mode)
- setattr(bot,a_visual,line_mode)
- setattr(top,a_visual,line_mode)
+ if top then
+ if getid(top) == penalty_code then
+ top = getprev(top)
+ end
+ if top and bot then
+ if getid(top) == hlist_code and getsubtype(top) == linelist_code then
+ if getid(bot) == hlist_code and getsubtype(bot) == linelist_code then
+ local toplist = getlist(top)
+ local botlist = getlist(bot)
+ if toplist and botlist then
+ --
+ local step = detail.step or defaultstep
+ local factor = tonumber(detail.factor) or defaultfactor
+ local method = detail.method or defaultmethod
+ local margin = step / 4
+ --
+ if factor > 1 then
+ factor = 1
+ elseif factor <= 0 then
+ factor = 0 -- we could actually go the other way
end
- if show_linedetail then
- report("lineskip changed from %p to %p on page %i",amount,overshoot,tex.getcount("realpageno"))
+ --
+ local natural = getdepth(top) + getheight(bot)
+ local added = factor * amount
+ local possible = natural - added
+ local overshoot = 0
+ local topmax = ceiling(getwidth(top)/step) + 1
+ local botmax = ceiling(getwidth(bot)/step) + 1
+ -- if method == "a" then
+ local depths = getdepthprofile (top,step,margin,topmax,toplist)
+ local heights = getheightprofile(bot,step,margin,botmax,botlist)
+ local steps = min(#depths,#heights)
+ for i=1,steps do
+ local o = heights[i] + depths[i] - possible
+ if o > overshoot then
+ -- we can quit when >= added
+ overshoot = o
+ -- if overshoot > added then
+ -- break
+ -- end
+ end
+ end
+ -- end
+ -- if overshoot < added / 2 then
+ -- overshoot = added / 2
+ -- end
+ if overshoot ~= amount then -- shouldn't we round
+ setwidth(current,overshoot)
+ if show_lineprofile then
+ setattr(current,a_visual,glue_mode)
+ setattr(bot,a_visual,line_mode)
+ setattr(top,a_visual,line_mode)
+ end
+ if show_linedetail then
+ report("lineskip changed from %p to %p on page %i",amount,overshoot,tex.getcount("realpageno"))
+ end
end
end
end
@@ -1245,6 +1252,7 @@ do
end
end
end
+ prev = nil
end
end
@@ -1257,13 +1265,16 @@ do
return head
end
- function profiling.pagelinehandler(head)
+ function profiling.pagelinehandler(head,...)
if head then
- profilelines(head)
+ local h, t = getspeciallist("pagehead")
+ profilelines(head,t)
end
return head
end
+ -- actually we need a proper callback for this kind of things ...
+
function profiling.setlines(specification)
if not enabled then
enableaction("mvlbuilders", "builders.profiling.pagelinehandler")
@@ -1282,8 +1293,23 @@ do
{ "method" },
{ "step", "dimension" },
{ "factor" },
+ { "paragraph" },
}
}
}
+ interfaces.implement {
+ name = "lineprofilebox",
+ public = true,
+ protected = true,
+ actions = function(box)
+ local okay = nuts.getbox(box)
+ local list = getlist(okay)
+ if list then
+ profiling.boxlinehandler(list)
+ end
+ end,
+ arguments = "integer"
+ }
+
end
diff --git a/tex/context/base/mkxl/spac-prf.mklx b/tex/context/base/mkxl/spac-prf.mklx
index fc3e4ae22..de5defc3e 100644
--- a/tex/context/base/mkxl/spac-prf.mklx
+++ b/tex/context/base/mkxl/spac-prf.mklx
@@ -61,13 +61,13 @@
\def\spac_profile_set
{\clf_setprofile
- name {\currentprofile}%
- height \dimexpr\profileparameter\c!height\relax
- depth \dimexpr\profileparameter\c!depth\relax
- distance \dimexpr\profileparameter\c!distance\relax
- factor \numexpr\profileparameter\c!factor\relax
- lines \numexpr\profileparameter\c!lines\relax
- method {\profileparameter\c!method}%
+ name {\currentprofile}%
+ height \dimexpr\profileparameter\c!height\relax
+ depth \dimexpr\profileparameter\c!depth\relax
+ distance \dimexpr\profileparameter\c!distance\relax
+ factor \numexpr\profileparameter\c!factor\relax
+ lines \numexpr\profileparameter\c!lines\relax
+ method {\profileparameter\c!method}%
\relax}
\tolerant\protected\def\spac_profile_start#profile#spacer[#settings]%
@@ -157,14 +157,16 @@
\setuplineprofile
[\c!method=\v!a,
\c!step=.5\emwidth, % maybe 2pt
+ \c!paragraph=\v!no,
\c!factor=.125] % maybe 0.250
\def\spac_line_profile_set
{\clf_setlineprofile
- name {\currentlineprofile}%
- step \dimexpr\lineprofileparameter\c!step\relax
- factor {\lineprofileparameter\c!factor}
- method {\lineprofileparameter\c!method}%
+ name {\currentlineprofile}%
+ step \dimexpr\lineprofileparameter\c!step\relax
+ factor {\lineprofileparameter\c!factor}%
+ method {\lineprofileparameter\c!method}%
+ paragraph {\lineprofileparameter\c!paragraph}%
\relax}
\permanent\tolerant\protected\def\setlineprofile[#profile]%
diff --git a/tex/context/base/mkxl/spac-ver.lmt b/tex/context/base/mkxl/spac-ver.lmt
index a0b1d5a94..06032bcce 100644
--- a/tex/context/base/mkxl/spac-ver.lmt
+++ b/tex/context/base/mkxl/spac-ver.lmt
@@ -56,8 +56,6 @@ local texsetcount = tex.setcount
local texnest = tex.nest
local texgetbox = tex.getbox
-local tg = texgetdimen
-
local buildpage = tex.triggerbuildpage
local variables = interfaces.variables
@@ -116,9 +114,10 @@ local d_globalbodyfontstrutheight = tex.isdimen("globalbodyfontstrutheight")
local d_globalbodyfontstrutdepth = tex.isdimen("globalbodyfontstrutdepth")
----- d_strutht = tex.isdimen("strutht")
local d_strutdp = tex.isdimen("strutdp")
-
local d_spac_overlay = tex.isdimen("d_spac_overlay")
+local c_spac_vspacing_ignore_parskip = tex.iscount("c_spac_vspacing_ignore_parskip")
+
local nuts = nodes.nuts
local tonut = nuts.tonut
@@ -2248,14 +2247,13 @@ do
end
elseif subtype == parskip_code then
-- if where == new_graf then ... end
- if texgetcount("c_spac_vspacing_ignore_parskip") > 0 then
- -- texsetcount("c_spac_vspacing_ignore_parskip",0)
+ if texgetcount(c_spac_vspacing_ignore_parskip) > 0 then
setglue(n)
-- maybe removenode
end
end
end
- texsetcount("c_spac_vspacing_ignore_parskip",0)
+ texsetcount(c_spac_vspacing_ignore_parskip,0)
if forceflush then
forceflush = false
diff --git a/tex/context/base/mkxl/spac-ver.mkxl b/tex/context/base/mkxl/spac-ver.mkxl
index 76dc97dc5..807ecfcd3 100644
--- a/tex/context/base/mkxl/spac-ver.mkxl
+++ b/tex/context/base/mkxl/spac-ver.mkxl
@@ -25,6 +25,7 @@
\newgluespec \s_spac_vspacing_predefined
\newdimension\d_spac_overlay
+\newinteger \c_spac_vspacing_ignore_parskip
% \overloaded\let\strutht \undefined \newdimen\strutht % already defined
% \overloaded\let\strutdp \undefined \newdimen\strutdp
@@ -2359,8 +2360,6 @@
\fi
\endgroup}
-\newinteger\c_spac_vspacing_ignore_parskip
-
% \setupwhitespace[line]
% \setuphead[subject][after={\blank[packed]},style=\bfb]
% \subject{foo}
diff --git a/tex/context/base/mkxl/syst-ini.mkxl b/tex/context/base/mkxl/syst-ini.mkxl
index e3dd91af5..2b37e30c6 100644
--- a/tex/context/base/mkxl/syst-ini.mkxl
+++ b/tex/context/base/mkxl/syst-ini.mkxl
@@ -142,6 +142,7 @@
\immutable\integerdef\periodasciicode 46
\immutable\integerdef\forwardslashasciicode 47 % /
\immutable\integerdef\colonasciicode 58
+\immutable\integerdef\semicolonasciicode 59
\immutable\integerdef\lessthanasciicode 60 % < used as alternative verbatim {
\immutable\integerdef\morethanasciicode 62 % > used as alternative verbatim }
\immutable\integerdef\questionmarkasciicode 63 % ? used in namespace protection
@@ -1490,4 +1491,8 @@
% \setdefaultmathcodes % initializes traditional codes
+%D Catch
+
+\ifdefined\mathpunctuation \else \let\mathpunctuation\mathpunct \fi % fixed in 2.10.06
+
\protect \endinput
diff --git a/tex/context/base/mkxl/tabl-xtb.lmt b/tex/context/base/mkxl/tabl-xtb.lmt
index 2a3b9a3b0..b69bfd873 100644
--- a/tex/context/base/mkxl/tabl-xtb.lmt
+++ b/tex/context/base/mkxl/tabl-xtb.lmt
@@ -120,6 +120,7 @@ local d_tabl_x_distance = texisdimen("d_tabl_x_distance")
local d_tabl_x_width = texisdimen("d_tabl_x_width")
local d_tabl_x_height = texisdimen("d_tabl_x_height")
local d_tabl_x_depth = texisdimen("d_tabl_x_depth")
+local d_lineheight = texisdimen("lineheight")
local c_frameddimensionstate = texiscount("frameddimensionstate")
@@ -227,7 +228,7 @@ function xtables.create(settings)
settings.rightmargindistance = tonumber(settings.rightmargindistance) or 0
settings.options = globaloptions
settings.textwidth = tonumber(settings.textwidth) or texget("hsize")
- settings.lineheight = tonumber(settings.lineheight) or texgetdimen("lineheight")
+ settings.lineheight = tonumber(settings.lineheight) or texgetdimen(d_lineheight)
settings.maxwidth = tonumber(settings.maxwidth) or settings.textwidth/8
-- if #stack > 0 then
-- settings.textwidth = texget("hsize")
@@ -335,7 +336,7 @@ function xtables.set_reflow_width()
drc.ht = height
drc.dp = depth
--
- local dimensionstate = texgetcount("frameddimensionstate")
+ local dimensionstate = texgetcount(c_frameddimensionstate)
local fixedcolumns = data.fixedcolumns
local fixedrows = data.fixedrows
if dimensionstate == 1 then
diff --git a/tex/context/base/mkxl/task-ini.lmt b/tex/context/base/mkxl/task-ini.lmt
index 0e96c1e8e..85892c7f5 100644
--- a/tex/context/base/mkxl/task-ini.lmt
+++ b/tex/context/base/mkxl/task-ini.lmt
@@ -98,6 +98,7 @@ appendaction("shipouts", "wrapup", "nodes.handlers.export",
appendaction("shipouts", "wrapup", "luatex.synctex.collect", nil, "nut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.showtree", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.collapse", nil, "nonut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.numbers", nil, "nonut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.spacing", nil, "nonut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.fencing", nil, "nonut", "disabled" )
@@ -107,7 +108,7 @@ appendaction("math", "normalizers", "noads.handlers.relocate",
appendaction("math", "normalizers", "noads.handlers.variants", nil, "nonut", "enabled" )
appendaction("math", "normalizers", "noads.handlers.families", nil, "nonut", "enabled" )
appendaction("math", "normalizers", "noads.handlers.render", nil, "nonut", "enabled" )
-appendaction("math", "normalizers", "noads.handlers.collapse", nil, "nonut", "disabled" )
+------------("math", "normalizers", "noads.handlers.collapse", nil, "nonut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.fixscripts", nil, "nonut", "enabled" )
------------("math", "normalizers", "noads.handlers.domains", nil, "nonut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.autofences", nil, "nonut", "disabled" )
diff --git a/tex/context/base/mkxl/trac-vis.lmt b/tex/context/base/mkxl/trac-vis.lmt
index 68310ef69..dddb4799d 100644
--- a/tex/context/base/mkxl/trac-vis.lmt
+++ b/tex/context/base/mkxl/trac-vis.lmt
@@ -545,7 +545,7 @@ local fontkern, italickern, marginkern, mathkern do
setshift(text,-5 * exheight)
info = new_hlist(setlink(rule,text))
setattr(info,a_layer,layer)
- f_cache[kern] = info
+ cache[kern] = info
end
head = insertnodebefore(head,current,copylist(info))
return head, current
@@ -583,7 +583,7 @@ local ruledglyphexpansion do
extra = extra / 1000
local info = f_cache[extra]
if not info then
- local text = hpack_string(round(extra),usedfont)
+ local text = hpack_string(tostring(round(extra)),usedfont)
local rule = new_rule(emwidth/fraction,exheight,2*exheight)
local list = getlist(text)
if extra > 0 then
@@ -594,13 +594,12 @@ local ruledglyphexpansion do
setlisttransparency(list,"trace:ds")
setcolor(rule,"trace:ds")
settransparency(rule,"trace:ds")
- setshift(text,1.5 * exheight)
+ setshift(text,1.75 * exheight)
info = new_hlist(setlink(rule,text))
setattr(info,a_layer,l_expansion)
f_cache[extra] = info
end
head = insertnodebefore(head,current,copylist(info))
- return head, current
end
return head, current
end
@@ -619,7 +618,7 @@ local kernexpansion do
extra = extra / 1000
local info = f_cache[extra]
if not info then
- local text = hpack_string(round(extra),usedfont)
+ local text = hpack_string(tostring(round(extra)),usedfont)
local rule = new_rule(emwidth/fraction,exheight,4*exheight)
local list = getlist(text)
if extra > 0 then
@@ -636,7 +635,6 @@ local kernexpansion do
f_cache[extra] = info
end
head = insertnodebefore(head,current,copylist(info))
- return head, current
end
return head, current
end
diff --git a/tex/context/base/mkxl/typo-cap.lmt b/tex/context/base/mkxl/typo-cap.lmt
index 5d7dfdedb..c0e197576 100644
--- a/tex/context/base/mkxl/typo-cap.lmt
+++ b/tex/context/base/mkxl/typo-cap.lmt
@@ -66,8 +66,6 @@ local variables = interfaces.variables
local v_reset = variables.reset
local texsetattribute = tex.setattribute
------ unsetvalue = attributes.unsetvalue
------ texgetcount = tex.getcount
local texgetscales = tex.getglyphscales
typesetters = typesetters or { }
@@ -406,7 +404,7 @@ function cases.set(n,id)
return
end
end
- texsetattribute(a_cases) -- ,unsetvalue)
+ texsetattribute(a_cases)
end
-- interface
diff --git a/tex/context/base/mkxl/typo-lin.lmt b/tex/context/base/mkxl/typo-lin.lmt
index 0824a8079..42ee5a957 100644
--- a/tex/context/base/mkxl/typo-lin.lmt
+++ b/tex/context/base/mkxl/typo-lin.lmt
@@ -99,7 +99,6 @@ local new_glue = nodepool.glue
local righttoleft_code = nodes.dirvalues.righttoleft
-local texgetcount = tex.getcount
local setmetatableindex = table.setmetatableindex
local jobpositions = job.positions
diff --git a/tex/context/base/mkxl/typo-mar.lmt b/tex/context/base/mkxl/typo-mar.lmt
index 87eafb062..cf0ef39b2 100644
--- a/tex/context/base/mkxl/typo-mar.lmt
+++ b/tex/context/base/mkxl/typo-mar.lmt
@@ -284,11 +284,11 @@ function margins.save(t)
--
t.leftmargindistance = leftmargindistance -- todo:layoutstatus table
t.rightmargindistance = rightmargindistance
- t.leftedgedistance = texgetdimen("naturalleftedgedistance")
- + texgetdimen("leftmarginwidth")
+ t.leftedgedistance = texgetdimen("naturalleftedgedistance") -- can be swapped
+ + texgetdimen("leftmarginwidth") -- can be swapped
+ leftmargindistance
- t.rightedgedistance = texgetdimen("naturalrightedgedistance")
- + texgetdimen("rightmarginwidth")
+ t.rightedgedistance = texgetdimen("naturalrightedgedistance") -- can be swapped
+ + texgetdimen("rightmarginwidth") -- can be swapped
+ rightmargindistance
t.lineheight = texgetdimen("lineheight")
--
diff --git a/tex/context/fonts/mkiv/bonum-math.lfg b/tex/context/fonts/mkiv/bonum-math.lfg
index c9021352b..30a49da80 100644
--- a/tex/context/fonts/mkiv/bonum-math.lfg
+++ b/tex/context/fonts/mkiv/bonum-math.lfg
@@ -111,6 +111,7 @@ return {
--
[0x1D465] = { bottomright = -0.05, }, -- italic x (ic is too large)
[0x00393] = { bottomright = -0.30, }, -- upright Gamma
+ [0x1D43F] = { bottomright = 0.01, }, -- upright L
["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
diff --git a/tex/context/interface/mkii/keys-fr.xml b/tex/context/interface/mkii/keys-fr.xml
index 3dc8bf282..e9794ab0b 100644
--- a/tex/context/interface/mkii/keys-fr.xml
+++ b/tex/context/interface/mkii/keys-fr.xml
@@ -453,6 +453,7 @@
<cd:variable name='printable' value='imprimable'/>
<cd:variable name='process' value='traiter'/>
<cd:variable name='product' value='produit'/>
+ <cd:variable name='profile' value='profil'/>
<cd:variable name='program' value='programme'/>
<cd:variable name='project' value='projet'/>
<cd:variable name='protected' value='protege'/>
diff --git a/tex/context/modules/mkxl/s-colors-show.mkxl b/tex/context/modules/mkxl/s-colors-show.mkxl
index 3f1692f98..3658e632c 100644
--- a/tex/context/modules/mkxl/s-colors-show.mkxl
+++ b/tex/context/modules/mkxl/s-colors-show.mkxl
@@ -237,6 +237,16 @@
\hss}}}
\endgraf}
+\permanent\tolerant\protected\def\compareluminance[#1]#*[#2]% by MS
+ {\dontleavehmode\hpack\bgroup
+ \unframed
+ [\c!background=\v!color,\c!backgroundcolor=#2,\c!foregroundcolor=#1,\c!loffset=.25\exheight,\c!roffset=.25\exheight]%
+ {#1\enspace#2\quad\colorluminanceratio{#1}{#2}}%
+ \unframed
+ [\c!background=\v!color,\c!backgroundcolor=#1,\c!foregroundcolor=#2,\c!loffset=.25\exheight,\c!roffset=.25\exheight]%
+ {#2\enspace#1\quad\colorluminanceratio{#2}{#1}}%
+ \egroup}
+
\protect
\continueifinputfile{s-colors-show.mkxl}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 045081e2b..567851faf 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 : 2023-01-24 13:47
+-- merge date : 2023-01-26 18:32
do -- begin closure to overcome local limits and interference