From d2e1112ef8921f361ac7cf1b49e30923cce6d5f0 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 2 May 2022 17:02:40 +0200 Subject: 2022-05-02 15:50:00 --- .../lexers/data/scite-context-data-context.lua | 2 +- .../lexers/data/scite-context-data-metafun.lua | 4 +- .../context/scite-context-data-context.properties | 16 +- .../context/scite-context-data-metafun.properties | 123 +-- .../context/syntaxes/context-syntax-mps.json | 4 +- .../context/syntaxes/context-syntax-tex.json | 2 +- .../sources/general/manuals/luatex/luatex-math.tex | 6 +- metapost/context/base/mpxl/mp-lmtx.mpxl | 2 +- metapost/context/base/mpxl/mp-luas.mpxl | 60 +- metapost/context/base/mpxl/mp-tool.mpxl | 2 +- scripts/context/lua/mtx-update.lua | 6 +- scripts/context/lua/mtxrun.lua | 11 +- scripts/context/stubs/mswin/mtxrun.lua | 11 +- scripts/context/stubs/unix/mtxrun | 11 +- scripts/context/stubs/win64/mtxrun.lua | 11 +- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-fr.mkii | 3 + tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/mult-def.lua | 6 + tex/context/base/mkiv/mult-fun.lua | 13 +- tex/context/base/mkiv/mult-low.lua | 1 + tex/context/base/mkiv/status-files.pdf | Bin 24636 -> 24641 bytes tex/context/base/mkiv/status-lua.pdf | Bin 257224 -> 257295 bytes tex/context/base/mkiv/util-prs.lua | 13 +- tex/context/base/mkiv/util-tbs.lua | 21 +- tex/context/base/mkxl/anch-pos.lmt | 14 +- tex/context/base/mkxl/cont-log.mkxl | 56 +- tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 2 +- tex/context/base/mkxl/math-ali.mkxl | 298 +----- tex/context/base/mkxl/math-frc.mkxl | 2 +- tex/context/base/mkxl/math-ini.mkxl | 1100 +++++++++----------- tex/context/base/mkxl/math-noa.lmt | 193 +++- tex/context/base/mkxl/math-rad.mklx | 21 + tex/context/base/mkxl/math-spa.lmt | 4 +- tex/context/base/mkxl/mlib-lmp.lmt | 41 + tex/context/base/mkxl/node-ini.lmt | 7 + tex/context/base/mkxl/node-tsk.lmt | 10 +- tex/context/base/mkxl/page-lay.mkxl | 4 + tex/context/base/mkxl/page-one.mkxl | 6 + tex/context/base/mkxl/page-pcl.mkxl | 5 +- tex/context/base/mkxl/page-pst.mkxl | 4 +- tex/context/base/mkxl/spac-ver.mkxl | 138 ++- tex/context/base/mkxl/strc-mat.mkxl | 46 +- tex/context/base/mkxl/supp-box.mkxl | 25 +- tex/context/base/mkxl/syst-aux.lmt | 31 +- tex/context/base/mkxl/syst-ini.mkxl | 4 +- tex/context/base/mkxl/tabl-ntb.mkxl | 33 +- tex/context/base/mkxl/task-ini.lmt | 3 + tex/context/base/mkxl/typo-krn.lmt | 58 +- tex/context/fonts/mkiv/type-imp-stix.mkiv | 1 - tex/context/interface/mkii/keys-fr.xml | 3 + tex/context/modules/mkiv/s-fonts-charts.mkiv | 5 +- tex/context/modules/mkxl/m-json.mkxl | 40 +- tex/generic/context/luatex/luatex-core.lua | 7 + tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 58 files changed, 1356 insertions(+), 1145 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 15e2d1a0b..ea6bacbfe 100644 --- a/context/data/scite/context/lexers/data/scite-context-data-context.lua +++ b/context/data/scite/context/lexers/data/scite-context-data-context.lua @@ -1,4 +1,4 @@ return { - ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "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", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "checkligatureandkernmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "italicshapekernmathcontrolcode", "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "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", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "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", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" }, + ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "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", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "checkligatureandkernmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "italicshapekernmathcontrolcode", "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode", "noitaliccorrectionglyphoptioncode", "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", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "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", "defaultmathclassoptions", "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode", "nokerningcode", "noligaturingcode", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "continuewhenlmtxmode" }, ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "vpenalty", "hpenalty", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "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", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "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", "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", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "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", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "ordfracspacing", "ordradspacing", "ordmiddlespacing", "ordaccentspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "opfracspacing", "opradspacing", "opmiddlespacing", "opaccentspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "binfracspacing", "binradspacing", "binmiddlespacing", "binaccentspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "relfracspacing", "relradspacing", "relmiddlespacing", "relaccentspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "openfracspacing", "openradspacing", "openmiddlespacing", "openaccentspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "closefracspacing", "closeradspacing", "closemiddlespacing", "closeaccentspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "punctfracspacing", "punctradspacing", "punctmiddlespacing", "punctaccentspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "innerfracspacing", "innerradspacing", "innermiddlespacing", "inneraccentspacing", "fracordspacing", "fracopspacing", "fracbinspacing", "fracrelspacing", "fracopenspacing", "fracclosespacing", "fracpunctspacing", "fracinnerspacing", "fracfracspacing", "fracradspacing", "fracmiddlespacing", "fracaccentspacing", "radordspacing", "radopspacing", "radbinspacing", "radrelspacing", "radopenspacing", "radclosespacing", "radpunctspacing", "radinnerspacing", "radfracspacing", "radradspacing", "radmiddlespacing", "radaccentspacing", "middleordspacing", "middleopspacing", "middlebinspacing", "middlerelspacing", "middleopenspacing", "middleclosespacing", "middlepunctspacing", "middleinnerspacing", "middlefracspacing", "middleradspacing", "middlemiddlespacing", "middleaccentspacing", "accentordspacing", "accentopspacing", "accentbinspacing", "accentrelspacing", "accentopenspacing", "accentclosespacing", "accentpunctspacing", "accentinnerspacing", "accentfracspacing", "accentradspacing", "accentmiddlespacing", "accentaccentspacing", "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", "Umathbotaccent", "Umathtopaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "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-metafun.lua b/context/data/scite/context/lexers/data/scite-context-data-metafun.lua index 2285c7c42..3cb471ade 100644 --- a/context/data/scite/context/lexers/data/scite-context-data-metafun.lua +++ b/context/data/scite/context/lexers/data/scite-context-data-metafun.lua @@ -1,4 +1,4 @@ return { - ["commands"]={ "loadfile", "loadimage", "loadmodule", "dispose", "nothing", "transparency", "tolist", "topath", "tocycle", "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian", "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos", "invsin", "invcos", "invtan", "acosh", "asinh", "sinh", "cosh", "tanh", "zmod", "paired", "tripled", "unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "unittriangle", "fulltriangle", "llcircle", "lrcircle", "urcircle", "ulcircle", "tcircle", "bcircle", "lcircle", "rcircle", "lltriangle", "lrtriangle", "urtriangle", "ultriangle", "uptriangle", "downtriangle", "lefttriangle", "righttriangle", "triangle", "smoothed", "cornered", "superellipsed", "randomized", "randomizedcontrols", "squeezed", "enlonged", "shortened", "punked", "curved", "unspiked", "simplified", "blownup", "stretched", "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged", "crossed", "laddered", "randomshifted", "interpolated", "perpendicular", "paralleled", "cutends", "peepholed", "llenlarged", "lrenlarged", "urenlarged", "ulenlarged", "llmoved", "lrmoved", "urmoved", "ulmoved", "rightarrow", "leftarrow", "centerarrow", "drawdoublearrows", "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox", "boundingradius", "boundingcircle", "boundingpoint", "crossingunder", "insideof", "outsideof", "bottomboundary", "leftboundary", "topboundary", "rightboundary", "xsized", "ysized", "xysized", "sized", "xyscaled", "intersection_point", "intersection_found", "penpoint", "bbwidth", "bbheight", "withshade", "withcircularshade", "withlinearshade", "defineshade", "shaded", "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform", "withshadecenterone", "withshadecentertwo", "withshadestep", "withshadefraction", "withshadeorigin", "shownshadevector", "shownshadeorigin", "shownshadedirection", "shownshadecenter", "cmyk", "spotcolor", "multitonecolor", "namedcolor", "drawfill", "undrawfill", "inverted", "uncolored", "softened", "grayed", "greyed", "onlayer", "along", "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", "filloutlinetext", "drawoutlinetext", "outlinetexttopath", "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist", "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", "rawmadetext", "validtexbox", "onetimetextext", "rawfmttext", "thefmttext", "fmttext", "onetimefmttext", "notcached", "keepcached", "verbatim", "thelabel", "label", "autoalign", "transparent", "withtransparency", "withopacity", "property", "properties", "withproperties", "asgroup", "withpattern", "withpatternscale", "withpatternfloat", "infont", "space", "crlf", "dquote", "percent", "SPACE", "CRLF", "DQUOTE", "PERCENT", "grayscale", "greyscale", "withgray", "withgrey", "colorpart", "colorlike", "readfile", "clearxy", "unitvector", "center", "epsed", "anchored", "originpath", "infinite", "break", "xstretched", "ystretched", "snapped", "pathconnectors", "function", "constructedfunction", "constructedpath", "constructedpairs", "straightfunction", "straightpath", "straightpairs", "curvedfunction", "curvedpath", "curvedpairs", "evenly", "oddly", "condition", "pushcurrentpicture", "popcurrentpicture", "arrowpath", "resetarrows", "tensecircle", "roundedsquare", "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", "complemented", "resolvedcolor", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", "drawboundary", "drawwholepath", "drawpathonly", "visualizeddraw", "visualizedfill", "detaileddraw", "draworigin", "drawboundingbox", "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels", "drawlineoptions", "drawpointoptions", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions", "undashed", "pencilled", "decorated", "redecorated", "undecorated", "passvariable", "passarrayvariable", "tostring", "topair", "format", "formatted", "quotation", "quote", "startpassingvariable", "stoppassingvariable", "eofill", "eoclip", "nofill", "dofill", "fillup", "eofillup", "nodraw", "dodraw", "area", "addbackground", "shadedup", "shadeddown", "shadedleft", "shadedright", "sortlist", "copylist", "shapedlist", "listtocurves", "listtolines", "listsize", "listlast", "uniquelist", "circularpath", "squarepath", "linearpath", "theoffset", "texmode", "systemmode", "texvar", "texstr", "isarray", "prefix", "dimension", "getmacro", "getdimen", "getcount", "gettoks", "setmacro", "setdimen", "setcount", "settoks", "setglobalmacro", "setglobaldimen", "setglobalcount", "setglobaltoks", "positionpath", "positioncurve", "positionxy", "positionparagraph", "positioncolumn", "positionwhd", "positionpage", "positionregion", "positionbox", "positionx", "positiony", "positionanchor", "positioninregion", "positionatanchor", "getposboxes", "getmultipars", "getpospage", "getposparagraph", "getposcolumn", "getposregion", "getposx", "getposy", "getposwidth", "getposheight", "getposdepth", "getposleftskip", "getposrightskip", "getposhsize", "getposparindent", "getposhangindent", "getposhangafter", "getposxy", "getposupperleft", "getposlowerleft", "getposupperright", "getposlowerright", "getposllx", "getposlly", "getposurx", "getposury", "wdpart", "htpart", "dppart", "texvar", "texstr", "inpath", "pointof", "leftof", "rightof", "utfnum", "utflen", "utfsub", "newhash", "disposehash", "inhash", "tohash", "fromhash", "isarray", "prefix", "isobject", "comment", "report", "lua", "lualist", "mp", "MP", "luacall", "mirrored", "mirroredabout", "scriptindex", "newscriptindex", "newcolor", "newrgbcolor", "newcmykcolor", "newnumeric", "newboolean", "newtransform", "newpath", "newpicture", "newstring", "newpair", "mpvard", "mpvarn", "mpvars", "mpvar", "withtolerance" }, - ["internals"]={ "nocolormodel", "greycolormodel", "graycolormodel", "rgbcolormodel", "cmykcolormodel", "shadefactor", "shadeoffset", "textextoffset", "textextanchor", "normaltransparent", "multiplytransparent", "screentransparent", "overlaytransparent", "softlighttransparent", "hardlighttransparent", "colordodgetransparent", "colorburntransparent", "darkentransparent", "lightentransparent", "differencetransparent", "exclusiontransparent", "huetransparent", "saturationtransparent", "colortransparent", "luminositytransparent", "ahvariant", "ahdimple", "ahfactor", "ahscale", "metapostversion", "maxdimensions", "drawoptionsfactor", "dq", "sq", "crossingscale", "crossingoption", "contextlmtxmode", "metafunversion", "minifunversion", "getparameters", "presetparameters", "hasparameter", "hasoption", "getparameter", "getparameterdefault", "getparametercount", "getmaxparametercount", "getparameterpath", "getparameterpen", "getparametertext", "applyparameters", "pushparameters", "popparameters", "setluaparameter", "definecolor", "record", "newrecord", "setrecord", "getrecord", "cntrecord", "anchorxy", "anchorx", "anchory", "anchorht", "anchordp", "anchorul", "anchorll", "anchorlr", "anchorur", "localanchorbox", "localanchorcell", "localanchorspan", "anchorbox", "anchorcell", "anchorspan", "matrixbox", "matrixcell", "matrixspan" }, + ["commands"]={ "loadfile", "loadimage", "loadmodule", "dispose", "nothing", "transparency", "tolist", "topath", "tocycle", "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian", "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos", "invsin", "invcos", "invtan", "acosh", "asinh", "sinh", "cosh", "tanh", "zmod", "paired", "tripled", "unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "unittriangle", "fulltriangle", "llcircle", "lrcircle", "urcircle", "ulcircle", "tcircle", "bcircle", "lcircle", "rcircle", "lltriangle", "lrtriangle", "urtriangle", "ultriangle", "uptriangle", "downtriangle", "lefttriangle", "righttriangle", "triangle", "smoothed", "cornered", "superellipsed", "randomized", "randomizedcontrols", "squeezed", "enlonged", "shortened", "punked", "curved", "unspiked", "simplified", "blownup", "stretched", "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged", "crossed", "laddered", "randomshifted", "interpolated", "perpendicular", "paralleled", "cutends", "peepholed", "llenlarged", "lrenlarged", "urenlarged", "ulenlarged", "llmoved", "lrmoved", "urmoved", "ulmoved", "rightarrow", "leftarrow", "centerarrow", "drawdoublearrows", "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox", "boundingradius", "boundingcircle", "boundingpoint", "crossingunder", "insideof", "outsideof", "bottomboundary", "leftboundary", "topboundary", "rightboundary", "xsized", "ysized", "xysized", "sized", "xyscaled", "intersection_point", "intersection_found", "penpoint", "bbwidth", "bbheight", "withshade", "withcircularshade", "withlinearshade", "defineshade", "shaded", "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform", "withshadecenterone", "withshadecentertwo", "withshadestep", "withshadefraction", "withshadeorigin", "shownshadevector", "shownshadeorigin", "shownshadedirection", "shownshadecenter", "cmyk", "spotcolor", "multitonecolor", "namedcolor", "drawfill", "undrawfill", "inverted", "uncolored", "softened", "grayed", "greyed", "onlayer", "along", "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", "filloutlinetext", "drawoutlinetext", "outlinetexttopath", "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist", "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", "infotext", "rawmadetext", "validtexbox", "onetimetextext", "rawfmttext", "thefmttext", "fmttext", "onetimefmttext", "notcached", "keepcached", "verbatim", "thelabel", "label", "autoalign", "transparent", "withtransparency", "withopacity", "property", "properties", "withproperties", "asgroup", "withpattern", "withpatternscale", "withpatternfloat", "infont", "space", "crlf", "dquote", "percent", "SPACE", "CRLF", "DQUOTE", "PERCENT", "grayscale", "greyscale", "withgray", "withgrey", "colorpart", "colorlike", "readfile", "clearxy", "unitvector", "center", "epsed", "anchored", "originpath", "infinite", "break", "xstretched", "ystretched", "snapped", "pathconnectors", "function", "constructedfunction", "constructedpath", "constructedpairs", "straightfunction", "straightpath", "straightpairs", "curvedfunction", "curvedpath", "curvedpairs", "evenly", "oddly", "condition", "pushcurrentpicture", "popcurrentpicture", "arrowpath", "resetarrows", "tensecircle", "roundedsquare", "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", "complemented", "resolvedcolor", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", "drawboundary", "drawwholepath", "drawpathonly", "visualizeddraw", "visualizedfill", "detaileddraw", "draworigin", "drawboundingbox", "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels", "drawlineoptions", "drawpointoptions", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions", "undashed", "pencilled", "decorated", "redecorated", "undecorated", "passvariable", "passarrayvariable", "tostring", "topair", "format", "formatted", "quotation", "quote", "startpassingvariable", "stoppassingvariable", "eofill", "eoclip", "nofill", "dofill", "fillup", "eofillup", "nodraw", "dodraw", "area", "addbackground", "shadedup", "shadeddown", "shadedleft", "shadedright", "sortlist", "copylist", "shapedlist", "listtocurves", "listtolines", "listsize", "listlast", "uniquelist", "circularpath", "squarepath", "linearpath", "theoffset", "texmode", "systemmode", "texvar", "texstr", "isarray", "prefix", "dimension", "getmacro", "getdimen", "getcount", "gettoks", "setmacro", "setdimen", "setcount", "settoks", "setglobalmacro", "setglobaldimen", "setglobalcount", "setglobaltoks", "positionpath", "positioncurve", "positionxy", "positionparagraph", "positioncolumn", "positionwhd", "positionpage", "positionregion", "positionbox", "positionx", "positiony", "positionanchor", "positioninregion", "positionatanchor", "positioncolumnbox", "overlaycolumnbox", "positioncolumnatx", "getposboxes", "getmultipars", "getpospage", "getposparagraph", "getposcolumn", "getposregion", "getposx", "getposy", "getposwidth", "getposheight", "getposdepth", "getposleftskip", "getposrightskip", "getposhsize", "getposparindent", "getposhangindent", "getposhangafter", "getposxy", "getposupperleft", "getposlowerleft", "getposupperright", "getposlowerright", "getposllx", "getposlly", "getposurx", "getposury", "wdpart", "htpart", "dppart", "texvar", "texstr", "inpath", "pointof", "leftof", "rightof", "utfnum", "utflen", "utfsub", "newhash", "disposehash", "inhash", "tohash", "fromhash", "isarray", "prefix", "isobject", "comment", "report", "lua", "lualist", "mp", "MP", "luacall", "mirrored", "mirroredabout", "xslanted", "yslanted", "scriptindex", "newscriptindex", "newcolor", "newrgbcolor", "newcmykcolor", "newnumeric", "newboolean", "newtransform", "newpath", "newpicture", "newstring", "newpair", "mpvard", "mpvarn", "mpvars", "mpvar", "withtolerance", "hatched", "withdashes", "processpath", "pencilled", "sortedintersectiontimes", "intersectionpath", "firstintersectionpath", "secondintersectionpath", "intersectionsfound", "cutbeforefirst", "cutafterfirst", "cutbeforelast", "cutafterlast" }, + ["internals"]={ "nocolormodel", "greycolormodel", "graycolormodel", "rgbcolormodel", "cmykcolormodel", "shadefactor", "shadeoffset", "textextoffset", "textextanchor", "normaltransparent", "multiplytransparent", "screentransparent", "overlaytransparent", "softlighttransparent", "hardlighttransparent", "colordodgetransparent", "colorburntransparent", "darkentransparent", "lightentransparent", "differencetransparent", "exclusiontransparent", "huetransparent", "saturationtransparent", "colortransparent", "luminositytransparent", "ahvariant", "ahdimple", "ahfactor", "ahscale", "metapostversion", "maxdimensions", "drawoptionsfactor", "dq", "sq", "crossingscale", "crossingoption", "crossingdebug", "contextlmtxmode", "metafunversion", "minifunversion", "getparameters", "presetparameters", "hasparameter", "hasoption", "getparameter", "getparameterdefault", "getparametercount", "getmaxparametercount", "getparameterpath", "getparameterpen", "getparametertext", "applyparameters", "pushparameters", "popparameters", "setluaparameter", "definecolor", "record", "newrecord", "setrecord", "getrecord", "cntrecord", "anchorxy", "anchorx", "anchory", "anchorht", "anchordp", "anchorul", "anchorll", "anchorlr", "anchorur", "localanchorbox", "localanchorcell", "localanchorspan", "anchorbox", "anchorcell", "anchorspan", "matrixbox", "matrixcell", "matrixspan", "pensilcolor", "pensilstep" }, } \ 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 a07cfde72..767653a77 100644 --- a/context/data/scite/context/scite-context-data-context.properties +++ b/context/data/scite/context/scite-context-data-context.properties @@ -106,14 +106,14 @@ forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenat normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode swapparsshapenormalizecode breakafterdirnormalizecode \ removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode discardzerotabskipsnormalizecode flattenhleadersnormalizecode \ normalizeparnormalizeparcode flattenvleadersnormalizeparcode nopreslackclassoptioncode nopostslackclassoptioncode lefttopkernclassoptioncode \ -righttopkernclassoptioncode leftbottomkernclassoptioncode rightbottomkernclassoptioncode noligaturingglyphoptioncode nokerningglyphoptioncode \ -noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode norightkernglyphoptioncode noexpansionglyphoptioncode \ -noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode noligaturingcode frozenflagcode \ -tolerantflagcode protectedflagcode primitiveflagcode permanentflagcode noalignedflagcode \ -immutableflagcode mutableflagcode globalflagcode overloadedflagcode immediateflagcode \ -conditionalflagcode valueflagcode instanceflagcode ordmathflattencode binmathflattencode \ -relmathflattencode punctmathflattencode innermathflattencode normalworddiscoptioncode preworddiscoptioncode \ -postworddiscoptioncode continuewhenlmtxmode +righttopkernclassoptioncode leftbottomkernclassoptioncode rightbottomkernclassoptioncode lookaheadforendclassoptioncode defaultmathclassoptions \ +noligaturingglyphoptioncode nokerningglyphoptioncode noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode \ +norightkernglyphoptioncode noexpansionglyphoptioncode noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode \ +noligaturingcode frozenflagcode tolerantflagcode protectedflagcode primitiveflagcode \ +permanentflagcode noalignedflagcode immutableflagcode mutableflagcode globalflagcode \ +overloadedflagcode immediateflagcode conditionalflagcode valueflagcode instanceflagcode \ +ordmathflattencode binmathflattencode relmathflattencode punctmathflattencode innermathflattencode \ +normalworddiscoptioncode preworddiscoptioncode postworddiscoptioncode continuewhenlmtxmode keywordclass.context.helpers=\ startsetups stopsetups startxmlsetups stopxmlsetups \ diff --git a/context/data/scite/context/scite-context-data-metafun.properties b/context/data/scite/context/scite-context-data-metafun.properties index 1ae58b21e..ea5890ef9 100644 --- a/context/data/scite/context/scite-context-data-metafun.properties +++ b/context/data/scite/context/scite-context-data-metafun.properties @@ -37,56 +37,60 @@ outlinetexttopath checkedbounds checkbounds strut rule \ withmask bitmapimage colordecimals ddecimal dddecimal \ ddddecimal colordecimalslist textext thetextext rawtextext \ textextoffset texbox thetexbox rawtexbox istextext \ -rawmadetext validtexbox onetimetextext rawfmttext thefmttext \ -fmttext onetimefmttext notcached keepcached verbatim \ -thelabel label autoalign transparent withtransparency \ -withopacity property properties withproperties asgroup \ -withpattern withpatternscale withpatternfloat infont space \ -crlf dquote percent SPACE CRLF \ -DQUOTE PERCENT grayscale greyscale withgray \ -withgrey colorpart colorlike readfile clearxy \ -unitvector center epsed anchored originpath \ -infinite break xstretched ystretched snapped \ -pathconnectors function constructedfunction constructedpath constructedpairs \ -straightfunction straightpath straightpairs curvedfunction curvedpath \ -curvedpairs evenly oddly condition pushcurrentpicture \ -popcurrentpicture arrowpath resetarrows tensecircle roundedsquare \ -colortype whitecolor blackcolor basiccolors complementary \ -complemented resolvedcolor normalfill normaldraw visualizepaths \ -detailpaths naturalizepaths drawboundary drawwholepath drawpathonly \ -visualizeddraw visualizedfill detaileddraw draworigin drawboundingbox \ -drawpath drawpoint drawpoints drawcontrolpoints drawcontrollines \ -drawpointlabels drawlineoptions drawpointoptions drawcontroloptions drawlabeloptions \ -draworiginoptions drawboundoptions drawpathoptions resetdrawoptions undashed \ -pencilled decorated redecorated undecorated passvariable \ -passarrayvariable tostring topair format formatted \ -quotation quote startpassingvariable stoppassingvariable eofill \ -eoclip nofill dofill fillup eofillup \ -nodraw dodraw area addbackground shadedup \ -shadeddown shadedleft shadedright sortlist copylist \ -shapedlist listtocurves listtolines listsize listlast \ -uniquelist circularpath squarepath linearpath theoffset \ -texmode systemmode texvar texstr isarray \ -prefix dimension getmacro getdimen getcount \ -gettoks setmacro setdimen setcount settoks \ -setglobalmacro setglobaldimen setglobalcount setglobaltoks positionpath \ -positioncurve positionxy positionparagraph positioncolumn positionwhd \ -positionpage positionregion positionbox positionx positiony \ -positionanchor positioninregion positionatanchor getposboxes getmultipars \ -getpospage getposparagraph getposcolumn getposregion getposx \ -getposy getposwidth getposheight getposdepth getposleftskip \ -getposrightskip getposhsize getposparindent getposhangindent getposhangafter \ -getposxy getposupperleft getposlowerleft getposupperright getposlowerright \ -getposllx getposlly getposurx getposury wdpart \ -htpart dppart texvar texstr inpath \ -pointof leftof rightof utfnum utflen \ -utfsub newhash disposehash inhash tohash \ -fromhash isarray prefix isobject comment \ -report lua lualist mp MP \ -luacall mirrored mirroredabout scriptindex newscriptindex \ -newcolor newrgbcolor newcmykcolor newnumeric newboolean \ -newtransform newpath newpicture newstring newpair \ -mpvard mpvarn mpvars mpvar withtolerance +infotext rawmadetext validtexbox onetimetextext rawfmttext \ +thefmttext fmttext onetimefmttext notcached keepcached \ +verbatim thelabel label autoalign transparent \ +withtransparency withopacity property properties withproperties \ +asgroup withpattern withpatternscale withpatternfloat infont \ +space crlf dquote percent SPACE \ +CRLF DQUOTE PERCENT grayscale greyscale \ +withgray withgrey colorpart colorlike readfile \ +clearxy unitvector center epsed anchored \ +originpath infinite break xstretched ystretched \ +snapped pathconnectors function constructedfunction constructedpath \ +constructedpairs straightfunction straightpath straightpairs curvedfunction \ +curvedpath curvedpairs evenly oddly condition \ +pushcurrentpicture popcurrentpicture arrowpath resetarrows tensecircle \ +roundedsquare colortype whitecolor blackcolor basiccolors \ +complementary complemented resolvedcolor normalfill normaldraw \ +visualizepaths detailpaths naturalizepaths drawboundary drawwholepath \ +drawpathonly visualizeddraw visualizedfill detaileddraw draworigin \ +drawboundingbox drawpath drawpoint drawpoints drawcontrolpoints \ +drawcontrollines drawpointlabels drawlineoptions drawpointoptions drawcontroloptions \ +drawlabeloptions draworiginoptions drawboundoptions drawpathoptions resetdrawoptions \ +undashed pencilled decorated redecorated undecorated \ +passvariable passarrayvariable tostring topair format \ +formatted quotation quote startpassingvariable stoppassingvariable \ +eofill eoclip nofill dofill fillup \ +eofillup nodraw dodraw area addbackground \ +shadedup shadeddown shadedleft shadedright sortlist \ +copylist shapedlist listtocurves listtolines listsize \ +listlast uniquelist circularpath squarepath linearpath \ +theoffset texmode systemmode texvar texstr \ +isarray prefix dimension getmacro getdimen \ +getcount gettoks setmacro setdimen setcount \ +settoks setglobalmacro setglobaldimen setglobalcount setglobaltoks \ +positionpath positioncurve positionxy positionparagraph positioncolumn \ +positionwhd positionpage positionregion positionbox positionx \ +positiony positionanchor positioninregion positionatanchor positioncolumnbox \ +overlaycolumnbox positioncolumnatx getposboxes getmultipars getpospage \ +getposparagraph getposcolumn getposregion getposx getposy \ +getposwidth getposheight getposdepth getposleftskip getposrightskip \ +getposhsize getposparindent getposhangindent getposhangafter getposxy \ +getposupperleft getposlowerleft getposupperright getposlowerright getposllx \ +getposlly getposurx getposury wdpart htpart \ +dppart texvar texstr inpath pointof \ +leftof rightof utfnum utflen utfsub \ +newhash disposehash inhash tohash fromhash \ +isarray prefix isobject comment report \ +lua lualist mp MP luacall \ +mirrored mirroredabout xslanted yslanted scriptindex \ +newscriptindex newcolor newrgbcolor newcmykcolor newnumeric \ +newboolean newtransform newpath newpicture newstring \ +newpair mpvard mpvarn mpvars mpvar \ +withtolerance hatched withdashes processpath pencilled \ +sortedintersectiontimes intersectionpath firstintersectionpath secondintersectionpath intersectionsfound \ +cutbeforefirst cutafterfirst cutbeforelast cutafterlast keywordclass.metafun.internals=\ nocolormodel greycolormodel graycolormodel rgbcolormodel \ @@ -96,13 +100,14 @@ hardlighttransparent colordodgetransparent colorburntransparent darkentransparen differencetransparent exclusiontransparent huetransparent saturationtransparent colortransparent \ luminositytransparent ahvariant ahdimple ahfactor ahscale \ metapostversion maxdimensions drawoptionsfactor dq sq \ -crossingscale crossingoption contextlmtxmode metafunversion minifunversion \ -getparameters presetparameters hasparameter hasoption getparameter \ -getparameterdefault getparametercount getmaxparametercount getparameterpath getparameterpen \ -getparametertext applyparameters pushparameters popparameters setluaparameter \ -definecolor record newrecord setrecord getrecord \ -cntrecord anchorxy anchorx anchory anchorht \ -anchordp anchorul anchorll anchorlr anchorur \ -localanchorbox localanchorcell localanchorspan anchorbox anchorcell \ -anchorspan matrixbox matrixcell matrixspan +crossingscale crossingoption crossingdebug contextlmtxmode metafunversion \ +minifunversion getparameters presetparameters hasparameter hasoption \ +getparameter getparameterdefault getparametercount getmaxparametercount getparameterpath \ +getparameterpen getparametertext applyparameters pushparameters popparameters \ +setluaparameter definecolor record newrecord setrecord \ +getrecord cntrecord anchorxy anchorx anchory \ +anchorht anchordp anchorul anchorll anchorlr \ +anchorur localanchorbox localanchorcell localanchorspan anchorbox \ +anchorcell anchorspan matrixbox matrixcell matrixspan \ +pensilcolor pensilstep diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json index 595981f59..6e014d3bf 100644 --- a/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-mps.json @@ -60,7 +60,7 @@ "name" : "context.extra" }, "helper" : { - "match" : "(zmod|ystretched|ysized|xysized|xyscaled|xstretched|xsized|withtransparency|withtolerance|withshadevector|withshadetransform|withshadestep|withshaderadius|withshadeorigin|withshademethod|withshadefraction|withshadefactor|withshadedomain|withshadedirection|withshadecolors|withshadecentertwo|withshadecenterone|withshadecenter|withshade|withproperties|withpatternscale|withpatternfloat|withpattern|withopacity|withmask|withlinearshade|withgrey|withgray|withcircularshade|whitecolor|wdpart|visualizepaths|visualizedfill|visualizeddraw|verbatim|validtexbox|utfsub|utfnum|utflen|urtriangle|urmoved|urenlarged|urcircle|uptriangle|unspiked|unitvector|unittriangle|unitdiamond|unitcircle|uniquelist|undrawfill|undecorated|undashed|uncolored|ultriangle|ulmoved|ulenlarged|ulcircle|tripled|triangle|transparent|transparency|tostring|topenlarged|topboundary|topath|topair|tolist|tohash|tocycle|thetextext|thetexbox|theoffset|thelabel|thefmttext|texvar|texvar|textextoffset|textext|texstr|texstr|texmode|texbox|tensecircle|tcircle|tanh|tand|tan|systemmode|superellipsed|strut|stretched|straightpath|straightpairs|straightfunction|stoppassingvariable|startpassingvariable|squeezed|squarepath|sqr|spotcolor|space|sortlist|softened|snapped|smoothed|sized|sinh|sin|simplified|shownshadevector|shownshadeorigin|shownshadedirection|shownshadecenter|shortened|shapedlist|shadedup|shadedright|shadedleft|shadedinto|shadeddown|shaded|settoks|setmacro|setglobaltoks|setglobalmacro|setglobaldimen|setglobalcount|setdimen|setcount|scriptindex|rule|roundedsquare|righttriangle|rightof|rightenlarged|rightboundary|rightarrow|resolvedcolor|resetdrawoptions|resetarrows|report|register|redecorated|readfile|rcircle|rawtextext|rawtexbox|rawmadetext|rawfmttext|randomshifted|randomizedcontrols|randomized|radian|quote|quotation|pushcurrentpicture|pushboundingbox|punked|property|properties|prefix|prefix|pow|positiony|positionxy|positionx|positionwhd|positionregion|positionpath|positionparagraph|positionpage|positioninregion|positioncurve|positioncolumn|positionbox|positionatanchor|positionanchor|popcurrentpicture|popboundingbox|pointof|pi|perpendicular|percent|penpoint|pencilled|peepholed|pathconnectors|passvariable|passarrayvariable|paralleled|paired|outsideof|outlinetexttopath|outlinetext|outerboundingbox|originpath|onlayer|onetimetextext|onetimefmttext|oddly|nothing|notcached|normalfill|normaldraw|nofill|nodraw|newtransform|newstring|newscriptindex|newrgbcolor|newpicture|newpath|newpair|newnumeric|newhash|newcolor|newcmykcolor|newboolean|naturalizepaths|namedcolor|multitonecolor|mpvars|mpvarn|mpvard|mpvar|mp|mirroredabout|mirrored|lualist|luacall|lua|lrtriangle|lrmoved|lrenlarged|lrcircle|log|loadmodule|loadimage|loadfile|loadfigure|ln|lltriangle|llmoved|llenlarged|llcircle|listtolines|listtocurves|listsize|listlast|linearpath|lefttriangle|leftof|leftenlarged|leftboundary|leftarrow|lcircle|laddered|label|keepcached|istextext|isobject|isarray|isarray|invtan|invsin|inverted|invcos|inv|intersection_point|intersection_found|interpolated|insideof|inpath|innerboundingbox|inhash|infont|infinite|htpart|greyscale|greyed|grayscale|grayed|graphictext|gettoks|getposy|getposxy|getposx|getposwidth|getposury|getposurx|getposupperright|getposupperleft|getposrightskip|getposregion|getposparindent|getposparagraph|getpospage|getposlowerright|getposlowerleft|getposlly|getposllx|getposleftskip|getposhsize|getposheight|getposhangindent|getposhangafter|getposdepth|getposcolumn|getposboxes|getmultipars|getmacro|getdimen|getcount|function|fulltriangle|fullsquare|fulldiamond|fromhash|formatted|format|fmttext|fillup|filloutlinetext|figure|externalfigure|exp|evenly|epsed|eofillup|eofill|eoclip|enlonged|enlarged|drawwholepath|drawpoints|drawpointoptions|drawpointlabels|drawpoint|drawpathoptions|drawpathonly|drawpath|drawoutlinetext|draworiginoptions|draworigin|drawlineoptions|drawlabeloptions|drawfill|drawdoublearrows|drawcontrolpoints|drawcontroloptions|drawcontrollines|drawboundoptions|drawboundingbox|drawboundary|dquote|dppart|downtriangle|dofill|dodraw|disposehash|dispose|dimension|detailpaths|detaileddraw|defineshade|decorated|ddecimal|dddecimal|ddddecimal|cutends|curvedpath|curvedpairs|curvedfunction|curved|crossingunder|crossed|crlf|cotd|cot|cosh|cos|cornered|copylist|constructedpath|constructedpairs|constructedfunction|condition|complemented|complementary|comment|colortype|colorpart|colorlike|colordecimalslist|colordecimals|cmyk|clearxy|circularpath|checkedbounds|checkbounds|centerarrow|center|break|boundingradius|boundingpoint|boundingcircle|boundingbox|bottomenlarged|bottomboundary|blownup|blackcolor|bitmapimage|bcircle|bbwidth|bbheight|basiccolors|autoalign|atan|asinh|asin|asgroup|arrowpath|area|anchored|along|addbackground|acosh|acos|SPACE|PERCENT|MP|DQUOTE|CRLF)(?=[^a-zA-Z\u005C_@!?-])", + "match" : "(zmod|ystretched|yslanted|ysized|xysized|xyscaled|xstretched|xslanted|xsized|withtransparency|withtolerance|withshadevector|withshadetransform|withshadestep|withshaderadius|withshadeorigin|withshademethod|withshadefraction|withshadefactor|withshadedomain|withshadedirection|withshadecolors|withshadecentertwo|withshadecenterone|withshadecenter|withshade|withproperties|withpatternscale|withpatternfloat|withpattern|withopacity|withmask|withlinearshade|withgrey|withgray|withdashes|withcircularshade|whitecolor|wdpart|visualizepaths|visualizedfill|visualizeddraw|verbatim|validtexbox|utfsub|utfnum|utflen|urtriangle|urmoved|urenlarged|urcircle|uptriangle|unspiked|unitvector|unittriangle|unitdiamond|unitcircle|uniquelist|undrawfill|undecorated|undashed|uncolored|ultriangle|ulmoved|ulenlarged|ulcircle|tripled|triangle|transparent|transparency|tostring|topenlarged|topboundary|topath|topair|tolist|tohash|tocycle|thetextext|thetexbox|theoffset|thelabel|thefmttext|texvar|texvar|textextoffset|textext|texstr|texstr|texmode|texbox|tensecircle|tcircle|tanh|tand|tan|systemmode|superellipsed|strut|stretched|straightpath|straightpairs|straightfunction|stoppassingvariable|startpassingvariable|squeezed|squarepath|sqr|spotcolor|space|sortlist|sortedintersectiontimes|softened|snapped|smoothed|sized|sinh|sin|simplified|shownshadevector|shownshadeorigin|shownshadedirection|shownshadecenter|shortened|shapedlist|shadedup|shadedright|shadedleft|shadedinto|shadeddown|shaded|settoks|setmacro|setglobaltoks|setglobalmacro|setglobaldimen|setglobalcount|setdimen|setcount|secondintersectionpath|scriptindex|rule|roundedsquare|righttriangle|rightof|rightenlarged|rightboundary|rightarrow|resolvedcolor|resetdrawoptions|resetarrows|report|register|redecorated|readfile|rcircle|rawtextext|rawtexbox|rawmadetext|rawfmttext|randomshifted|randomizedcontrols|randomized|radian|quote|quotation|pushcurrentpicture|pushboundingbox|punked|property|properties|processpath|prefix|prefix|pow|positiony|positionxy|positionx|positionwhd|positionregion|positionpath|positionparagraph|positionpage|positioninregion|positioncurve|positioncolumnbox|positioncolumnatx|positioncolumn|positionbox|positionatanchor|positionanchor|popcurrentpicture|popboundingbox|pointof|pi|perpendicular|percent|penpoint|pencilled|pencilled|peepholed|pathconnectors|passvariable|passarrayvariable|paralleled|paired|overlaycolumnbox|outsideof|outlinetexttopath|outlinetext|outerboundingbox|originpath|onlayer|onetimetextext|onetimefmttext|oddly|nothing|notcached|normalfill|normaldraw|nofill|nodraw|newtransform|newstring|newscriptindex|newrgbcolor|newpicture|newpath|newpair|newnumeric|newhash|newcolor|newcmykcolor|newboolean|naturalizepaths|namedcolor|multitonecolor|mpvars|mpvarn|mpvard|mpvar|mp|mirroredabout|mirrored|lualist|luacall|lua|lrtriangle|lrmoved|lrenlarged|lrcircle|log|loadmodule|loadimage|loadfile|loadfigure|ln|lltriangle|llmoved|llenlarged|llcircle|listtolines|listtocurves|listsize|listlast|linearpath|lefttriangle|leftof|leftenlarged|leftboundary|leftarrow|lcircle|laddered|label|keepcached|istextext|isobject|isarray|isarray|invtan|invsin|inverted|invcos|inv|intersectionsfound|intersectionpath|intersection_point|intersection_found|interpolated|insideof|inpath|innerboundingbox|inhash|infotext|infont|infinite|htpart|hatched|greyscale|greyed|grayscale|grayed|graphictext|gettoks|getposy|getposxy|getposx|getposwidth|getposury|getposurx|getposupperright|getposupperleft|getposrightskip|getposregion|getposparindent|getposparagraph|getpospage|getposlowerright|getposlowerleft|getposlly|getposllx|getposleftskip|getposhsize|getposheight|getposhangindent|getposhangafter|getposdepth|getposcolumn|getposboxes|getmultipars|getmacro|getdimen|getcount|function|fulltriangle|fullsquare|fulldiamond|fromhash|formatted|format|fmttext|firstintersectionpath|fillup|filloutlinetext|figure|externalfigure|exp|evenly|epsed|eofillup|eofill|eoclip|enlonged|enlarged|drawwholepath|drawpoints|drawpointoptions|drawpointlabels|drawpoint|drawpathoptions|drawpathonly|drawpath|drawoutlinetext|draworiginoptions|draworigin|drawlineoptions|drawlabeloptions|drawfill|drawdoublearrows|drawcontrolpoints|drawcontroloptions|drawcontrollines|drawboundoptions|drawboundingbox|drawboundary|dquote|dppart|downtriangle|dofill|dodraw|disposehash|dispose|dimension|detailpaths|detaileddraw|defineshade|decorated|ddecimal|dddecimal|ddddecimal|cutends|cutbeforelast|cutbeforefirst|cutafterlast|cutafterfirst|curvedpath|curvedpairs|curvedfunction|curved|crossingunder|crossed|crlf|cotd|cot|cosh|cos|cornered|copylist|constructedpath|constructedpairs|constructedfunction|condition|complemented|complementary|comment|colortype|colorpart|colorlike|colordecimalslist|colordecimals|cmyk|clearxy|circularpath|checkedbounds|checkbounds|centerarrow|center|break|boundingradius|boundingpoint|boundingcircle|boundingbox|bottomenlarged|bottomboundary|blownup|blackcolor|bitmapimage|bcircle|bbwidth|bbheight|basiccolors|autoalign|atan|asinh|asin|asgroup|arrowpath|area|anchored|along|addbackground|acosh|acos|SPACE|PERCENT|MP|DQUOTE|CRLF)(?=[^a-zA-Z\u005C_@!?-])", "name" : "context.command.metafun.helper.mps" }, "identifier" : { @@ -138,7 +138,7 @@ "name" : "context.string.string.text.mps" }, "shortcut" : { - "match" : "(vrbcatcoderegime|txtcatcoderegime|textextoffset|textextanchor|texcatcoderegime|squared|sq|softlighttransparent|shadeoffset|shadefactor|setrecord|setluaparameter|screentransparent|saturationtransparent|rounded|rgbcolormodel|record|pushparameters|prtcatcoderegime|presetparameters|popparameters|pen_top|pen_rt|pen_lft|pen_bot|overlaytransparent|notcatcoderegime|normaltransparent|nocolormodel|newrecord|multiplytransparent|mitered|minifunversion|metapostversion|metafunversion|maxdimensions|matrixspan|matrixcell|matrixbox|luminositytransparent|luacatcoderegime|localanchorspan|localanchorcell|localanchorbox|lightentransparent|labeloffset|join_radius|inicatcoderegime|infinity|huetransparent|hasparameter|hasoption|hardlighttransparent|greycolormodel|graycolormodel|getrecord|getparametertext|getparameters|getparameterpen|getparameterpath|getparameterdefault|getparametercount|getparameter|getmaxparametercount|exclusiontransparent|epsilon|eps|drawoptionsfactor|dq|dotlabeldiam|ditto|differencetransparent|definecolor|defaultscale|defaultpen|darkentransparent|ctxcatcoderegime|crossingscale|crossingoption|contextlmtxmode|colortransparent|colordodgetransparent|colorburntransparent|cntrecord|cmykcolormodel|charscale|catcoderegime|butt|beveled|bboxmargin|applyparameters|anchory|anchorxy|anchorx|anchorur|anchorul|anchorspan|anchorlr|anchorll|anchorht|anchordp|anchorcell|anchorbox|ahvariant|ahscale|ahlength|ahfactor|ahdimple|ahangle|EOF)(?=[^a-zA-Z\u005C_@!?-])", + "match" : "(vrbcatcoderegime|txtcatcoderegime|textextoffset|textextanchor|texcatcoderegime|squared|sq|softlighttransparent|shadeoffset|shadefactor|setrecord|setluaparameter|screentransparent|saturationtransparent|rounded|rgbcolormodel|record|pushparameters|prtcatcoderegime|presetparameters|popparameters|pensilstep|pensilcolor|pen_top|pen_rt|pen_lft|pen_bot|overlaytransparent|notcatcoderegime|normaltransparent|nocolormodel|newrecord|multiplytransparent|mitered|minifunversion|metapostversion|metafunversion|maxdimensions|matrixspan|matrixcell|matrixbox|luminositytransparent|luacatcoderegime|localanchorspan|localanchorcell|localanchorbox|lightentransparent|labeloffset|join_radius|inicatcoderegime|infinity|huetransparent|hasparameter|hasoption|hardlighttransparent|greycolormodel|graycolormodel|getrecord|getparametertext|getparameters|getparameterpen|getparameterpath|getparameterdefault|getparametercount|getparameter|getmaxparametercount|exclusiontransparent|epsilon|eps|drawoptionsfactor|dq|dotlabeldiam|ditto|differencetransparent|definecolor|defaultscale|defaultpen|darkentransparent|ctxcatcoderegime|crossingscale|crossingoption|crossingdebug|contextlmtxmode|colortransparent|colordodgetransparent|colorburntransparent|cntrecord|cmykcolormodel|charscale|catcoderegime|butt|beveled|bboxmargin|applyparameters|anchory|anchorxy|anchorx|anchorur|anchorul|anchorspan|anchorlr|anchorll|anchorht|anchordp|anchorcell|anchorbox|ahvariant|ahscale|ahlength|ahfactor|ahdimple|ahangle|EOF)(?=[^a-zA-Z\u005C_@!?-])", "name" : "context.data.shortcut.mps" }, "special" : { diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json index 720c9d834..5b25249f4 100644 --- a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json +++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json @@ -69,7 +69,7 @@ "name" : "context.comment.comment.tex" }, "constant" : { - "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|widowpenaltyfrozenparcode|whatsitnodecode|vtopparcontextcode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeparcontextcode|vmodeifcode|vlistnodecode|vcenterparcontextcode|vcentergroupcode|vboxparcontextcode|vboxifcode|vboxgroupcode|valueflagcode|vadjustparcontextcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|uppercasehyphenationcode|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|underrulemathcontrolcode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tolerantflagcode|tolerancefrozenparcode|tildeasciicode|threeperemspace|thousandpoint|thickermuskip|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|syllablehyphenationcode|swapparsshapenormalizecode|swaphangindentnormalizecode|superscriptcatcode|subscriptcatcode|strictstarthyphenationcode|strictendhyphenationcode|stretchfrozenparcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|statuswrite|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|staircasekernmathcontrolcode|splitoffgroupcode|splitkeepgroupcode|spanparcontextcode|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|skipfrozenparcode|sixperemspace|singlequoteasciicode|simplegroupcode|shapingpenaltyfrozenparcode|shapefrozenparcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlncatcodes|rlm|righttopkernclassoptioncode|righttoleftmark|rightrotationangle|rightparentasciicode|rightoriginlistanchorcode|rightheightlistanchorcode|rightdepthlistanchorcode|rightbracketasciicode|rightbraceasciicode|rightbottomkernclassoptioncode|resetparcontextcode|removemarginkernsnormalizecode|relmathflattencode|reboxcharitalickernmathcontrolcode|radicalrulemathcontrolcode|questionmarkasciicode|pushmode|punctuationspace|punctmathflattencode|prtcatcodes|protrudefrozenparcode|protectedflagcode|project|product|primitiveflagcode|primeasciicode|preworddiscoptioncode|preventmode|presetdocument|prerollrun|preautomigrationcode|preamblegroupcode|postworddiscoptioncode|postautomigrationcode|popmode|points|plustwohundred|plustwo|plustwentythousand|plustwelve|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseleven|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|permitmathreplacehyphenationcode|permitgluehyphenationcode|permitallhyphenationcode|permanentflagcode|periodasciicode|percentasciicode|penaltynodecode|pdftexengine|partialhyphenationcode|parindentskipnormalizecode|parfillrightskip|parfillleftskip|parfillfrozenparcode|parametercatcode|overrulemathcontrolcode|overloadedflagcode|outputparcontextcode|outputnewlinechar|outputgroupcode|othercatcode|orphanpenaltyfrozenparcode|ordmathflattencode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|normalworddiscoptioncode|normalparcontextcode|normalpagebox|normalizeparnormalizeparcode|normalizelinenormalizecode|normalhyphenationcode|norightligaturingglyphoptioncode|norightligatureglyphoptioncode|norightkerningglyphoptioncode|norightkernglyphoptioncode|noprotrusionglyphoptioncode|noprotrusionglyphoptioncode|nopreslackclassoptioncode|nopostslackclassoptioncode|nonstopmodecode|nonbreakablespace|noligaturingglyphoptioncode|noligaturingglyphoptioncode|noligaturingcode|noleftligaturingglyphoptioncode|noleftligatureglyphoptioncode|noleftkerningglyphoptioncode|noleftkernglyphoptioncode|nokerningglyphoptioncode|nokerningglyphoptioncode|nokerningcode|noitaliccorrectionglyphoptioncode|noitaliccorrectionglyphoptioncode|noexpansionglyphoptioncode|noexpansionglyphoptioncode|nobreakspace|noalignparcontextcode|noaligngroupcode|noalignedflagcode|nilcatcodes|newlineasciicode|negateylistsigncode|negatexlistsigncode|negatelistsigncode|narrownobreakspace|mutableflagcode|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathwrappedcode|mathvcentercode|mathvariablecode|mathundercode|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathrelationcode|mathradicalcode|mathpunctuationcode|mathpunctcode|mathpenaltyfrozenparcode|mathovercode|mathordinarycode|mathordcode|mathoperatorcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathmiddlecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathimaginarycode|mathgroupcode|mathghostcode|mathfunctioncode|mathfractioncode|mathfencedcode|mathfactorialcode|mathexponentialcode|mathexplicitcode|mathexheight|mathendcode|mathemwidth|mathdivisioncode|mathdigitcode|mathdifferentialcode|mathconstructcode|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathbinarycode|mathbegincode|mathaxisheight|mathalphacode|mathactivecode|mathaccentcode|mathabovegroupcode|marknodecode|markautomigrationcode|luatexengine|luastringsep|luacatcodes|lrm|loosenessfrozenparcode|localboxgroupcode|linepenaltyfrozenparcode|linefrozenparcode|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|lefttopkernclassoptioncode|leftrotationangle|leftparentasciicode|leftoriginlistanchorcode|leftheightlistanchorcode|leftdepthlistanchorcode|leftbracketasciicode|leftbraceasciicode|leftbottomkernclassoptioncode|lazyligatureshyphenationcode|lastlinefrozenparcode|kernnodecode|italicshapekernmathcontrolcode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|instanceflagcode|insertparcontextcode|insertnodecode|insertgroupcode|insertautomigrationcode|innermathflattencode|innerifcode|inicatcodes|indentfrozenparcode|immutableflagcode|immediateflagcode|ignorecatcode|ignoreboundshyphenationcode|ideographicspace|ideographichalffillspace|hyphenationfrozenparcode|hyphenasciicode|hsizefrozenparcode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|hangfrozenparcode|halfwaytotallistanchorcode|halfwayrightlistanchorcode|halfwayleftlistanchorcode|halfwayheightlistanchorcode|halfwaydepthlistanchorcode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalflagcode|globalenablemode|globaldisablemode|frozenflagcode|fractionrulemathcontrolcode|fourperemspace|forwardslashasciicode|formfeedasciicode|forcehandlerhyphenationcode|forcecheckhyphenationcode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|flattenvleadersnormalizeparcode|flattenhleadersnormalizecode|flattendiscretionariesnormalizecode|fiveperemspace|finrowgroupcode|figurespace|feedbackcompoundhyphenationcode|falseifcode|extraspace|explicitpenaltyhyphenationcode|explicithyphenationcode|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|displaypenaltyfrozenparcode|discretionarynodecode|discretionarygroupcode|discretionarygroupcode|discardzerotabskipsnormalizecode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|demeritsfrozenparcode|delasciicode|definemode|definedifcode|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continuewhenlmtxmode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalflagcode|conditionalfalse|compoundhyphenationcode|component|completehyphenationcode|commentcatcode|commentasciicode|commaasciicode|colonasciicode|collapsehyphenationcode|clubpenaltyfrozenparcode|clipwidthnormalizecode|circumflexasciicode|checktextitalickernmathcontrolcode|checkspaceitalickernmathcontrolcode|checkligatureandkernmathcontrolcode|charnodecode|charifcode|centeroriginlistanchorcode|centerheightlistanchorcode|centerdepthlistanchorcode|catifcode|caseifcode|brokenpenaltyfrozenparcode|breakafterdirnormalizecode|breakablethinspace|bottomlevelgroupcode|binmathflattencode|binaryshiftedtwenty|binaryshiftedthirty|binaryshiftedten|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|automaticpenaltyhyphenationcode|automatichyphenationcode|attributeunsetvalue|atsignasciicode|asciispacechar|applyverticalitalickernmathcontrolcode|applytextitalickernmathcontrolcode|applyscriptitalickernmathcontrolcode|applyordinaryitalickernmathcontrolcode|applycharitalickernmathcontrolcode|applyboxeditalickernmathcontrolcode|ampersandasciicode|alsosimplegroupcode|allfrozenparcode|alignsetgroupcode|alignparcontextcode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustfrozenparcode|adjustedhboxgroupcode|adjustautomigrationcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|accentskewhalfmathcontrolcode|accentskewapplymathcontrolcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])", + "match" : "\u005C\u005C(zwnj|zwj|zerowidthspace|zerowidthnonjoiner|zerowidthnobreakspace|zerowidthjoiner|zeroskip|zeropoint|zeromuskip|zerocount|xmlcatcodes|xifcode|xetexengine|wildcardsymbol|widowpenaltyfrozenparcode|whatsitnodecode|vtopparcontextcode|vtopgroupcode|vrbcatcodes|voidifcode|voidbox|vmodeparcontextcode|vmodeifcode|vlistnodecode|vcenterparcontextcode|vcentergroupcode|vboxparcontextcode|vboxifcode|vboxgroupcode|valueflagcode|vadjustparcontextcode|vadjustgroupcode|usetexmodule|usemodule|useluamodule|uprotationangle|uppercasehyphenationcode|unsetnodecode|unknownengine|unexpandeddocumentvariable|underscoreasciicode|underrulemathcontrolcode|undefined|typescripttwo|typescriptthree|typescriptone|txtcatcodes|twoperemspace|trueifcode|tpbcatcodes|tpacatcodes|tolerantflagcode|tolerancefrozenparcode|tildeasciicode|threeperemspace|thousandpoint|thickermuskip|texengineversion|texenginename|texenginefunctionality|texengine|texcatcodes|tabasciicode|syllablehyphenationcode|swapparsshapenormalizecode|swaphangindentnormalizecode|superscriptcatcode|subscriptcatcode|strictstarthyphenationcode|strictendhyphenationcode|stretchfrozenparcode|stoptext|stopproject|stopproduct|stopnotmode|stopnotext|stopnotallmodes|stopmodule|stopmodeset|stopmodeset|stopmode|stopmkivmode|stoplmtxmode|stopenvironment|stopdocument|stopcomponent|stopallmodes|stopTEXpage|statuswrite|starttext|startproject|startproduct|startnotmode|startnotext|startnotallmodes|startmodule|startmodeset|startmodeset|startmode|startmkivmode|startlmtxmode|startenvironment|startdocument|startcomponent|startallmodes|startTEXpage|staircasekernmathcontrolcode|splitoffgroupcode|splitkeepgroupcode|spanparcontextcode|spacecatcode|spaceasciicode|softhyphen|smallskipamount|slantperpoint|skipfrozenparcode|sixperemspace|singlequoteasciicode|simplegroupcode|shapingpenaltyfrozenparcode|shapefrozenparcode|setupmodule|setupdocument|semisimplegroupcode|scrollmodecode|scaledpoint|rulenodecode|rlncatcodes|rlm|righttopkernclassoptioncode|righttoleftmark|rightrotationangle|rightparentasciicode|rightoriginlistanchorcode|rightheightlistanchorcode|rightdepthlistanchorcode|rightbracketasciicode|rightbraceasciicode|rightbottomkernclassoptioncode|resetparcontextcode|removemarginkernsnormalizecode|relmathflattencode|reboxcharitalickernmathcontrolcode|radicalrulemathcontrolcode|questionmarkasciicode|pushmode|punctuationspace|punctmathflattencode|prtcatcodes|protrudefrozenparcode|protectedflagcode|project|product|primitiveflagcode|primeasciicode|preworddiscoptioncode|preventmode|presetdocument|prerollrun|preautomigrationcode|preamblegroupcode|postworddiscoptioncode|postautomigrationcode|popmode|points|plustwohundred|plustwo|plustwentythousand|plustwelve|plusthree|plusthousand|plustenthousand|plusten|plussixteen|plussix|plusseven|plusonehundred|plusone|plusnine|plushundred|plusfour|plusfivehundred|plusfive|plusfifty|pluseleven|pluseight|pluscxxviii|pluscxxvii|pluscclvi|pluscclv|permitmathreplacehyphenationcode|permitgluehyphenationcode|permitallhyphenationcode|permanentflagcode|periodasciicode|percentasciicode|penaltynodecode|pdftexengine|partialhyphenationcode|parindentskipnormalizecode|parfillrightskip|parfillleftskip|parfillfrozenparcode|parametercatcode|overrulemathcontrolcode|overloadedflagcode|outputparcontextcode|outputnewlinechar|outputgroupcode|othercatcode|orphanpenaltyfrozenparcode|ordmathflattencode|optionalspace|onepoint|onemuskip|onebasepoint|oddifcode|numifcode|notcatcodes|normalworddiscoptioncode|normalparcontextcode|normalpagebox|normalizeparnormalizeparcode|normalizelinenormalizecode|normalhyphenationcode|norightligaturingglyphoptioncode|norightligatureglyphoptioncode|norightkerningglyphoptioncode|norightkernglyphoptioncode|noprotrusionglyphoptioncode|noprotrusionglyphoptioncode|nopreslackclassoptioncode|nopostslackclassoptioncode|nonstopmodecode|nonbreakablespace|noligaturingglyphoptioncode|noligaturingglyphoptioncode|noligaturingcode|noleftligaturingglyphoptioncode|noleftligatureglyphoptioncode|noleftkerningglyphoptioncode|noleftkernglyphoptioncode|nokerningglyphoptioncode|nokerningglyphoptioncode|nokerningcode|noitaliccorrectionglyphoptioncode|noitaliccorrectionglyphoptioncode|noexpansionglyphoptioncode|noexpansionglyphoptioncode|nobreakspace|noalignparcontextcode|noaligngroupcode|noalignedflagcode|nilcatcodes|newlineasciicode|negateylistsigncode|negatexlistsigncode|negatelistsigncode|narrownobreakspace|mutableflagcode|muquad|morethanasciicode|moduleparameter|mmodeifcode|mksuffix|minustwo|minusone|medskipamount|medcard|maxdimen|maxcount|maxcardminusone|maxcard|mathwrappedcode|mathvcentercode|mathvariablecode|mathundercode|mathsnodecode|mathsizesuffix|mathshiftgroupcode|mathshiftcatcode|mathrelcode|mathrelationcode|mathradicalcode|mathpunctuationcode|mathpunctcode|mathpenaltyfrozenparcode|mathovercode|mathordinarycode|mathordcode|mathoperatorcode|mathopencode|mathopcode|mathnothingcode|mathnolopcode|mathnodecode|mathmiddlecode|mathlimopcode|mathleftgroupcode|mathinnercode|mathimaginarycode|mathgroupcode|mathghostcode|mathfunctioncode|mathfractioncode|mathfencedcode|mathfactorialcode|mathexponentialcode|mathexplicitcode|mathexheight|mathendcode|mathemwidth|mathdivisioncode|mathdigitcode|mathdifferentialcode|mathconstructcode|mathclosecode|mathchoicegroupcode|mathchoicecode|mathboxcode|mathbincode|mathbinarycode|mathbegincode|mathaxisheight|mathalphacode|mathactivecode|mathaccentcode|mathabovegroupcode|marknodecode|markautomigrationcode|luatexengine|luastringsep|luacatcodes|lrm|loosenessfrozenparcode|lookaheadforendclassoptioncode|localboxgroupcode|linepenaltyfrozenparcode|linefrozenparcode|ligaturenodecode|lettercatcode|lessthanasciicode|lefttorightmark|lefttopkernclassoptioncode|leftrotationangle|leftparentasciicode|leftoriginlistanchorcode|leftheightlistanchorcode|leftdepthlistanchorcode|leftbracketasciicode|leftbraceasciicode|leftbottomkernclassoptioncode|lazyligatureshyphenationcode|lastlinefrozenparcode|kernnodecode|italicshapekernmathcontrolcode|invalidcatcode|interwordstretch|interwordspace|interwordshrink|instanceflagcode|insertparcontextcode|insertnodecode|insertgroupcode|insertautomigrationcode|innermathflattencode|innerifcode|inicatcodes|indentfrozenparcode|immutableflagcode|immediateflagcode|ignorecatcode|ignoreboundshyphenationcode|ideographicspace|ideographichalffillspace|hyphenationfrozenparcode|hyphenasciicode|hsizefrozenparcode|hmodeifcode|hlistnodecode|hboxifcode|hboxgroupcode|hashasciicode|hangfrozenparcode|halfwaytotallistanchorcode|halfwayrightlistanchorcode|halfwayleftlistanchorcode|halfwayheightlistanchorcode|halfwaydepthlistanchorcode|halfpoint|halfapoint|hairspace|gluenodecode|globalpreventmode|globalflagcode|globalenablemode|globaldisablemode|frozenflagcode|fractionrulemathcontrolcode|fourperemspace|forwardslashasciicode|formfeedasciicode|forcehandlerhyphenationcode|forcecheckhyphenationcode|fontslantperpoint|fontinterwordstretch|fontinterwordspace|fontinterwordshrink|fontextraspace|fontexheight|fontemwidth|fontcharifcode|fmtversion|fmtname|flattenvleadersnormalizeparcode|flattenhleadersnormalizecode|flattendiscretionariesnormalizecode|fiveperemspace|finrowgroupcode|figurespace|feedbackcompoundhyphenationcode|falseifcode|extraspace|explicitpenaltyhyphenationcode|explicithyphenationcode|exheight|exclamationmarkasciicode|everystoptext|everystarttext|escapecatcode|errorstopmodecode|eofifcode|environment|enquad|endoflinetoken|endoflinecatcode|endoflineasciicode|endoffileasciicode|endline|endgroupcatcode|enablemode|emwidth|emquad|emptyvbox|emptytoks|emptyhbox|emptybox|empty|egroup|eUx|downrotationangle|doublequoteasciicode|doublecommentsignal|dollarasciicode|doifnotmode|doifnotdocumentvariable|doifnotallmodes|doifmodeelse|doifmode|doifelsemode|doifelsedocumentvariable|doifelseallmodes|doifdocumentvariableelse|doifdocumentvariable|doifallmodeselse|doifallmodes|documentvariable|displaypenaltyfrozenparcode|discretionarynodecode|discretionarygroupcode|discretionarygroupcode|discardzerotabskipsnormalizecode|disablemode|directionrighttoleft|directionlefttoright|dimifcode|demeritsfrozenparcode|delasciicode|definemode|definedifcode|defaultmathclassoptions|currentmoduleparameter|ctxcatcodes|ctdcatcodes|csnameifcode|continuewhenlmtxmode|continueifinputfile|contextversion|contextmark|contextlmtxmode|contextformat|constantnumberargument|constantnumber|constantemptyargument|constantdimenargument|constantdimen|conditionaltrue|conditionalflagcode|conditionalfalse|compoundhyphenationcode|component|completehyphenationcode|commentcatcode|commentasciicode|commaasciicode|colonasciicode|collapsehyphenationcode|clubpenaltyfrozenparcode|clipwidthnormalizecode|circumflexasciicode|checktextitalickernmathcontrolcode|checkspaceitalickernmathcontrolcode|checkligatureandkernmathcontrolcode|charnodecode|charifcode|centeroriginlistanchorcode|centerheightlistanchorcode|centerdepthlistanchorcode|catifcode|caseifcode|brokenpenaltyfrozenparcode|breakafterdirnormalizecode|breakablethinspace|bottomlevelgroupcode|binmathflattencode|binaryshiftedtwenty|binaryshiftedthirty|binaryshiftedten|bigskipamount|bidirlo|bidirle|bidipop|bidilro|bidilre|bgroup|begingroupcatcode|batchmodecode|barasciicode|backslashasciicode|automaticpenaltyhyphenationcode|automatichyphenationcode|attributeunsetvalue|atsignasciicode|asciispacechar|applyverticalitalickernmathcontrolcode|applytextitalickernmathcontrolcode|applyscriptitalickernmathcontrolcode|applyordinaryitalickernmathcontrolcode|applycharitalickernmathcontrolcode|applyboxeditalickernmathcontrolcode|ampersandasciicode|alsosimplegroupcode|allfrozenparcode|alignsetgroupcode|alignparcontextcode|alignmentcatcode|aligngroupcode|adjustnodecode|adjustfrozenparcode|adjustedhboxgroupcode|adjustautomigrationcode|activetabtoken|activemathcharcode|activeformfeedtoken|activeendoflinetoken|activecatcode|activecatcode|accentskewhalfmathcontrolcode|accentskewapplymathcontrolcode|Ux|Umathaccents|!!es|!!bs)(?=[^a-zA-Z])", "name" : "context.constant.commands.constant.tex" }, "csname" : { diff --git a/doc/context/sources/general/manuals/luatex/luatex-math.tex b/doc/context/sources/general/manuals/luatex/luatex-math.tex index f5d6c7429..4ab65fa18 100644 --- a/doc/context/sources/general/manuals/luatex/luatex-math.tex +++ b/doc/context/sources/general/manuals/luatex/luatex-math.tex @@ -822,9 +822,9 @@ experimenting. \topicindex {math+italics} The \lpr {mathitalicsmode} parameter can be set to~1 to force italic correction -before noads that represent some more complex structure (read: everything -that is not an ord, bin, rel, open, close, punct or inner). We show a Cambria -example. +before noads that represent some more complex structure (read: everything that is +not an ord, bin, rel, open, close, punct or inner). A value of~2 will enforce the +old school font code path for all italics. We show a Cambria example. \starttexdefinition Whatever #1 \NC \type{\mathitalicsmode = #1} diff --git a/metapost/context/base/mpxl/mp-lmtx.mpxl b/metapost/context/base/mpxl/mp-lmtx.mpxl index d689f7355..89c39ee89 100644 --- a/metapost/context/base/mpxl/mp-lmtx.mpxl +++ b/metapost/context/base/mpxl/mp-lmtx.mpxl @@ -1084,7 +1084,7 @@ def lmt_do_chart_start (expr what) = save fillcolor, drawcolor, labelcolor, labelstyle, labelformat, labelstrut, labelanchor, colormode ; string fillcolor, drawcolor, labelcolor, labelstyle, labelformat, labelstrut, labelanchor, colormode ; if hasparameter "sampleset" : - setluaparameter "what" "samples" (getparameter "sampleset") ; + setluaparameter what "samples" (getparameter "sampleset") ; fi ; height := getparameter "height" ; width := getparameter "width" ; diff --git a/metapost/context/base/mpxl/mp-luas.mpxl b/metapost/context/base/mpxl/mp-luas.mpxl index cc760f93e..c5c4c77db 100644 --- a/metapost/context/base/mpxl/mp-luas.mpxl +++ b/metapost/context/base/mpxl/mp-luas.mpxl @@ -187,31 +187,38 @@ permanent setmacro, setdimen, setcount, settoks, setglobalmacro, setglobaldimen, setglobalcount, setglobaltoks ; -newscriptindex mfid_positionpath ; mfid_positionpath := scriptindex("positionpath") ; -newscriptindex mfid_positioncurve ; mfid_positioncurve := scriptindex("positioncurve") ; -newscriptindex mfid_positionxy ; mfid_positionxy := scriptindex("positionxy") ; -newscriptindex mfid_positionx ; mfid_positionx := scriptindex("positionx") ; -newscriptindex mfid_positiony ; mfid_positiony := scriptindex("positiony") ; -newscriptindex mfid_positionpar ; mfid_positionpar := scriptindex("positionpar") ; -newscriptindex mfid_positionwhd ; mfid_positionwhd := scriptindex("positionwhd") ; -newscriptindex mfid_positionpage ; mfid_positionpage := scriptindex("positionpage") ; -newscriptindex mfid_positionregion ; mfid_positionregion := scriptindex("positionregion") ; -newscriptindex mfid_positionbox ; mfid_positionbox := scriptindex("positionbox") ; -newscriptindex mfid_positionanchor ; mfid_positionanchor := scriptindex("positionanchor") ; - -vardef positionpath (expr name) = runscript mfid_positionpath (name) enddef ; -vardef positioncurve (expr name) = runscript mfid_positioncurve (name) enddef ; -vardef positionxy (expr name) = runscript mfid_positionxy (name) enddef ; -vardef positionx (expr name) = runscript mfid_positionx (name) enddef ; -vardef positiony (expr name) = runscript mfid_positiony (name) enddef ; -vardef positionpar (expr name) = runscript mfid_positionpar (name) enddef ; -vardef positionwhd (expr name) = runscript mfid_positionwhd (name) enddef ; -vardef positionpage (expr name) = runscript mfid_positionpage (name) enddef ; -vardef positioncolumn (expr name) = runscript mfid_positioncolumn (name) enddef ; -vardef positionparagraph(expr name) = runscript mfid_positionparagraph (name) enddef ; -vardef positionregion (expr name) = runscript mfid_positionregion (name) enddef ; -vardef positionbox (expr name) = runscript mfid_positionbox (name) enddef ; -vardef positionanchor = runscript mfid_positionanchor enddef ; +newscriptindex mfid_positionpath ; mfid_positionpath := scriptindex("positionpath") ; +newscriptindex mfid_positioncurve ; mfid_positioncurve := scriptindex("positioncurve") ; +newscriptindex mfid_positionxy ; mfid_positionxy := scriptindex("positionxy") ; +newscriptindex mfid_positionx ; mfid_positionx := scriptindex("positionx") ; +newscriptindex mfid_positiony ; mfid_positiony := scriptindex("positiony") ; +newscriptindex mfid_positionposition ; mfid_positionparagraph := scriptindex("positionparagraph") ; +newscriptindex mfid_positionwhd ; mfid_positionwhd := scriptindex("positionwhd") ; +newscriptindex mfid_positionpage ; mfid_positionpage := scriptindex("positionpage") ; +newscriptindex mfid_positioncolumn ; mfid_positioncolumn := scriptindex("positioncolumn") ; +newscriptindex mfid_positionregion ; mfid_positionregion := scriptindex("positionregion") ; +newscriptindex mfid_positionbox ; mfid_positionbox := scriptindex("positionbox") ; +newscriptindex mfid_positionanchor ; mfid_positionanchor := scriptindex("positionanchor") ; +newscriptindex mfid_positioncolumnfromx ; mfid_positioncolumnfromx := scriptindex("positioncolumnfromx") ; +newscriptindex mfid_positioncolumnbox ; mfid_positioncolumnbox := scriptindex("positioncolumnbox") ; +newscriptindex mfid_overlaycolumnbox ; mfid_overlaycolumnbox := scriptindex("overlaycolumnbox") ; + +vardef positionpath (expr name) = runscript mfid_positionpath (name) enddef ; +vardef positioncurve (expr name) = runscript mfid_positioncurve (name) enddef ; +vardef positionxy (expr name) = runscript mfid_positionxy (name) enddef ; +vardef positionx (expr name) = runscript mfid_positionx (name) enddef ; +vardef positiony (expr name) = runscript mfid_positiony (name) enddef ; +vardef positionwhd (expr name) = runscript mfid_positionwhd (name) enddef ; +vardef positionpage (expr name) = runscript mfid_positionpage (name) enddef ; +vardef positioncolumn (expr name) = runscript mfid_positioncolumn (name) enddef ; +vardef positionparagraph(expr name) = runscript mfid_positionparagraph(name) enddef ; +vardef positionpar (expr name) = runscript mfid_positionparagraph(name) enddef ; +vardef positionregion (expr name) = runscript mfid_positionregion (name) enddef ; +vardef positionbox (expr name) = runscript mfid_positionbox (name) enddef ; +vardef positionanchor = runscript mfid_positionanchor enddef ; +vardef positioncolumnatx(expr name) = runscript mfid_positioncolumnatx(name) enddef ; +vardef positioncolumnbox(expr column) = runscript mfid_positioncolumnbox(column) enddef ; +vardef overlaycolumnbox (expr column) = runscript mfid_overlaycolumnbox (column) enddef ; vardef positioninregion = currentpicture := currentpicture shifted - positionxy(positionanchor) ; @@ -223,7 +230,8 @@ enddef ; permanent positionpath, positioncurve, positionxy, positionwhd, positionpage, positionregion, positioncolumn, positionparagraph, - positionbox, positionanchor, positioninregion, positionatanchor ; + positionbox, positionanchor, positioninregion, positionatanchor, + positioncolumnatx, positioncolumnbox, overlaycolumnbox ; let wdpart = redpart ; let htpart = greenpart ; diff --git a/metapost/context/base/mpxl/mp-tool.mpxl b/metapost/context/base/mpxl/mp-tool.mpxl index f53a6d75b..6593b5e9a 100644 --- a/metapost/context/base/mpxl/mp-tool.mpxl +++ b/metapost/context/base/mpxl/mp-tool.mpxl @@ -3686,7 +3686,7 @@ primarydef p outsideof q = not (p insideof q) enddef ; -permanent crossingdebug, crossingscale, crossingnumberm, infotext, crossingunder, insideof, outsideof ; +permanent crossingdebug, crossingscale, crossingnumbermax, infotext, crossingunder, insideof, outsideof ; %D Also handy: diff --git a/scripts/context/lua/mtx-update.lua b/scripts/context/lua/mtx-update.lua index 2693bfb48..bd4f2f56b 100644 --- a/scripts/context/lua/mtx-update.lua +++ b/scripts/context/lua/mtx-update.lua @@ -178,9 +178,9 @@ update.platforms = { -- ["linux-armhf"] = "linux-armhf", -- - ["openbsd"] = "openbsd7.0", - ["openbsd-i386"] = "openbsd7.0", - ["openbsd-amd64"] = "openbsd7.0-amd64", + ["openbsd"] = "openbsd7.1", + ["openbsd-i386"] = "openbsd7.1", + ["openbsd-amd64"] = "openbsd7.1-amd64", -- ["freebsd"] = "freebsd", ["freebsd-i386"] = "freebsd", diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 1b27b3c6b..12104b82c 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -9278,7 +9278,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24913, stripped down to: 16497 +-- original size: 25254, stripped down to: 16630 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9853,8 +9853,11 @@ local p_year=lpegpatterns.digit^4/tonumber local pattern=Cf(Ct("")*( (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal) )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) + )+(Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal) + )+(Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) ) - )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1 + )*( + P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1+P(-1) ) ,rawset) lpegpatterns.splittime=pattern function parsers.totime(str) @@ -25983,8 +25986,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1031288 --- stripped bytes : 405844 +-- original bytes : 1031629 +-- stripped bytes : 406052 -- end library merge diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 1b27b3c6b..12104b82c 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -9278,7 +9278,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24913, stripped down to: 16497 +-- original size: 25254, stripped down to: 16630 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9853,8 +9853,11 @@ local p_year=lpegpatterns.digit^4/tonumber local pattern=Cf(Ct("")*( (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal) )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) + )+(Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal) + )+(Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) ) - )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1 + )*( + P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1+P(-1) ) ,rawset) lpegpatterns.splittime=pattern function parsers.totime(str) @@ -25983,8 +25986,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1031288 --- stripped bytes : 405844 +-- original bytes : 1031629 +-- stripped bytes : 406052 -- end library merge diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 1b27b3c6b..12104b82c 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -9278,7 +9278,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24913, stripped down to: 16497 +-- original size: 25254, stripped down to: 16630 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9853,8 +9853,11 @@ local p_year=lpegpatterns.digit^4/tonumber local pattern=Cf(Ct("")*( (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal) )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) + )+(Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal) + )+(Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) ) - )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1 + )*( + P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1+P(-1) ) ,rawset) lpegpatterns.splittime=pattern function parsers.totime(str) @@ -25983,8 +25986,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1031288 --- stripped bytes : 405844 +-- original bytes : 1031629 +-- stripped bytes : 406052 -- end library merge diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua index 1b27b3c6b..12104b82c 100644 --- a/scripts/context/stubs/win64/mtxrun.lua +++ b/scripts/context/stubs/win64/mtxrun.lua @@ -9278,7 +9278,7 @@ do -- create closure to overcome 200 locals limit package.loaded["util-prs"] = package.loaded["util-prs"] or true --- original size: 24913, stripped down to: 16497 +-- original size: 25254, stripped down to: 16630 if not modules then modules={} end modules ['util-prs']={ version=1.001, @@ -9853,8 +9853,11 @@ local p_year=lpegpatterns.digit^4/tonumber local pattern=Cf(Ct("")*( (Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("day")*cardinal) )+(Cg(Cc("day")*cardinal)*S("-/")*Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) + )+(Cg(Cc("year")*p_year)*S("-/")*Cg(Cc("month")*cardinal) + )+(Cg(Cc("month")*cardinal)*S("-/")*Cg(Cc("year")*p_year) ) - )*P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1 + )*( + P(" ")*Cg(Cc("hour")*cardinal)*P(":")*Cg(Cc("min")*cardinal)*(P(":")*Cg(Cc("sec")*cardinal))^-1+P(-1) ) ,rawset) lpegpatterns.splittime=pattern function parsers.totime(str) @@ -25983,8 +25986,8 @@ end -- of closure -- used libraries : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 1031288 --- stripped bytes : 405844 +-- original bytes : 1031629 +-- stripped bytes : 406052 -- end library merge diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 527dc57d5..cc51b0c45 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{2022.04.20 19:15} +\newcontextversion{2022.05.02 15:48} %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 9a9b43ee8..88a77e354 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{2022.04.20 19:15} +\edef\contextversion{2022.05.02 15:48} %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 d79dc0836..1c9591d67 100644 --- a/tex/context/base/mkii/mult-fr.mkii +++ b/tex/context/base/mkii/mult-fr.mkii @@ -641,6 +641,7 @@ % definitions for interface constants for language fr % \setinterfaceconstant{action}{action} +\setinterfaceconstant{adaptive}{adaptive} \setinterfaceconstant{address}{adresse} \setinterfaceconstant{after}{après} \setinterfaceconstant{afterhead}{aprèstête} @@ -1234,6 +1235,8 @@ \setinterfaceconstant{small}{petit} \setinterfaceconstant{smallcapsfeatures}{fonctionnalitespetitescaps} \setinterfaceconstant{smallcapsfont}{policepetitescaps} +\setinterfaceconstant{snap}{snap} +\setinterfaceconstant{snapstep}{snapstep} \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{trier} \setinterfaceconstant{sorttype}{modetri} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 094648239..558b0481a 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{2022.04.20 19:15} +\newcontextversion{2022.05.02 15:48} %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 1165bfced..fa7ba1e2a 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{2022.04.20 19:15} +\edef\contextversion{2022.05.02 15:48} %D Kind of special: diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua index 0a8b71e30..dee5de585 100644 --- a/tex/context/base/mkiv/mult-def.lua +++ b/tex/context/base/mkiv/mult-def.lua @@ -11738,6 +11738,12 @@ return { ["en"]="smallcapsfont", ["fr"]="policepetitescaps", }, + ["snap"]={ + ["en"]="snap", + }, + ["snapstep"]={ + ["en"]="snapstep", + }, ["solution"]={ ["en"]="solution", ["fr"]="solution", diff --git a/tex/context/base/mkiv/mult-fun.lua b/tex/context/base/mkiv/mult-fun.lua index 4ec5bd55e..128e5b51e 100644 --- a/tex/context/base/mkiv/mult-fun.lua +++ b/tex/context/base/mkiv/mult-fun.lua @@ -16,7 +16,7 @@ return { "maxdimensions", "drawoptionsfactor", "dq", "sq", - "crossingscale", "crossingoption", + "crossingscale", "crossingoption", "crossingdebug", "contextlmtxmode", "metafunversion", "minifunversion", -- -- for the moment we put these here as they need to stand out @@ -47,6 +47,8 @@ return { "localanchorbox", "localanchorcell", "localanchorspan", "anchorbox", "anchorcell", "anchorspan", "matrixbox", "matrixcell", "matrixspan", + -- + "pensilcolor", "pensilstep", }, commands = { "loadfile", "loadimage", "loadmodule", @@ -95,7 +97,7 @@ return { "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist", - "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", + "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", "infotext", "rawmadetext", "validtexbox", "onetimetextext", "rawfmttext", "thefmttext", "fmttext", "onetimefmttext", "notcached", "keepcached", "verbatim", @@ -192,6 +194,7 @@ return { "positionpath", "positioncurve", "positionxy", "positionparagraph", "positioncolumn", "positionwhd", "positionpage", "positionregion", "positionbox", "positionx", "positiony", "positionanchor", "positioninregion", "positionatanchor", + "positioncolumnbox", "overlaycolumnbox", "positioncolumnatx", -- "getposboxes", "getmultipars", "getpospage", "getposparagraph", "getposcolumn", "getposregion", @@ -214,7 +217,7 @@ return { -- "comment", "report", "lua", "lualist", "mp", "MP", "luacall", -- - "mirrored", "mirroredabout", + "mirrored", "mirroredabout", "xslanted", "yslanted", -- "scriptindex", "newscriptindex", -- @@ -225,5 +228,9 @@ return { -- "withtolerance", -- + "hatched", "withdashes", + "processpath", "pencilled", + "sortedintersectiontimes", "intersectionpath", "firstintersectionpath", "secondintersectionpath", + "intersectionsfound", "cutbeforefirst", "cutafterfirst", "cutbeforelast", "cutafterlast", }, } diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index e345195d5..1c5b4be5e 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -209,6 +209,7 @@ return { -- "nopreslackclassoptioncode", "nopostslackclassoptioncode", "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode", + "lookaheadforendclassoptioncode", "defaultmathclassoptions", -- "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index f6ca25caa..683f2d822 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index bdb717f7d..7bef77ee0 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkiv/util-prs.lua b/tex/context/base/mkiv/util-prs.lua index 204611dbe..6c2a15adf 100644 --- a/tex/context/base/mkiv/util-prs.lua +++ b/tex/context/base/mkiv/util-prs.lua @@ -806,11 +806,20 @@ local pattern = Cf( Ct("") * ( Cg(Cc("day") * cardinal) * S("-/") * Cg(Cc("month") * cardinal) * S("-/") * Cg(Cc("year") * p_year) + ) + + ( Cg(Cc("year") * p_year) + * S("-/") * Cg(Cc("month") * cardinal) + ) + + ( Cg(Cc("month") * cardinal) + * S("-/") * Cg(Cc("year") * p_year) ) ) - * P(" ") * Cg(Cc("hour") * cardinal) + * ( + P(" ") * Cg(Cc("hour") * cardinal) * P(":") * Cg(Cc("min") * cardinal) * (P(":") * Cg(Cc("sec") * cardinal))^-1 + + P(-1) ) + , rawset) lpegpatterns.splittime = pattern @@ -819,6 +828,8 @@ function parsers.totime(str) return lpegmatch(pattern,str) end +-- inspect(parsers.totime("2019-03-05")) +-- inspect(parsers.totime("2019-03-05 12:12:12")) -- print(os.time(parsers.totime("2019-03-05 12:12:12"))) -- print(os.time(parsers.totime("2019/03/05 12:12:12"))) -- print(os.time(parsers.totime("05-03-2019 12:12:12"))) diff --git a/tex/context/base/mkiv/util-tbs.lua b/tex/context/base/mkiv/util-tbs.lua index 140e43a03..339abcfcc 100644 --- a/tex/context/base/mkiv/util-tbs.lua +++ b/tex/context/base/mkiv/util-tbs.lua @@ -57,7 +57,7 @@ end do - local find, gmatch = string.find, string.gmatch + local find, gmatch, formatters = string.find, string.gmatch, string.formatters local P, C, Ct, Cc, R = lpeg.P, lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.R @@ -72,7 +72,7 @@ do local specifier = Ct ((entry + (separator + index + test))^1) - function tablestore.field(namespace,name,default) + local function field(namespace,name,default) local data = loaded[namespace] or current if data then -- if find(name,"%[") then @@ -111,4 +111,21 @@ do end end + + function length(namespace,name,default) + local data = field(namespace,name) + return type(data) == "table" and #data or 0 + end + + function formatted(namespace,name,fmt) + local data = field(namespace,name) + if data then + return formatters[fmt](data) + end + end + + tablestore.field = field + tablestore.length = length + tablestore.formatted = formatted + end diff --git a/tex/context/base/mkxl/anch-pos.lmt b/tex/context/base/mkxl/anch-pos.lmt index d3b52ad4d..fc668f699 100644 --- a/tex/context/base/mkxl/anch-pos.lmt +++ b/tex/context/base/mkxl/anch-pos.lmt @@ -1750,9 +1750,17 @@ local function columnofpos(realpage,xposition) return 1 end -jobpositions.overlapping = overlapping -jobpositions.onsamepage = onsamepage -jobpositions.columnofpos = columnofpos +local function getcolumndata(realpage,column) + local p = columndata[realpage] + if p then + return p[column] + end +end + +jobpositions.overlapping = overlapping +jobpositions.onsamepage = onsamepage +jobpositions.columnofpos = columnofpos +jobpositions.getcolumndata = getcolumndata -- interface diff --git a/tex/context/base/mkxl/cont-log.mkxl b/tex/context/base/mkxl/cont-log.mkxl index 4df509f60..56cf4053f 100644 --- a/tex/context/base/mkxl/cont-log.mkxl +++ b/tex/context/base/mkxl/cont-log.mkxl @@ -204,27 +204,43 @@ \frozen\instance\protected\def\luametaTeX{lua\wordboundary meta\wordboundary\TeX} \frozen\instance\protected\def\XeTeX {X\lower.5\exheight\hbox{\kern-.15\emwidth\mirror{E}}\kern-.1667\emwidth\TeX} -% Adapted from a patch by Mojca: - -\def\syst_logos_xetex_e - {\setbox\scratchbox\hbox{E}% - \raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}} - -\frozen\instance\protected\def\XeTeX +% % Adapted from a patch by Mojca: +% +% \def\syst_logos_xetex_e +% {\setbox\scratchbox\hbox{E}% +% \raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}} +% +% \frozen\instance\protected\def\XeTeX +% {X\lower.5\exheight +% \hbox +% {\kern-.15\emwidth +% \iffontchar\font"018E\relax +% \char"018E% +% \else +% \ifx\fontalternative\s!bf \mirror{E}\orelse +% \ifx\fontalternative\s!it\syst_logos_xetex_e\orelse +% \ifx\fontalternative\s!sl\syst_logos_xetex_e\orelse +% \ifx\fontalternative\s!bi\syst_logos_xetex_e\orelse +% \ifx\fontalternative\s!bs\syst_logos_xetex_e\else +% \mirror{E}\fi +% \fi}% +% \kern-.1667\emwidth\TeX} + +% This is good enough for th efew times that we need it: + +\def\syst_logos_xe {X\lower.5\exheight - \hbox - {\kern-.15\emwidth - \iffontchar\font"018E\relax - \char"018E% - \else - \ifx\fontalternative\s!bf \mirror{E}\orelse - \ifx\fontalternative\s!it\syst_logos_xetex_e\orelse - \ifx\fontalternative\s!sl\syst_logos_xetex_e\orelse - \ifx\fontalternative\s!bi\syst_logos_xetex_e\orelse - \ifx\fontalternative\s!bs\syst_logos_xetex_e\else - \mirror{E}\fi - \fi}% - \kern-.1667\emwidth\TeX} + \hbox\bgroup + \kern-.15\emwidth + \iffontchar\font"018E\relax + \char"018E% + \else + \mirror{E}% + \fi + \egroup} + +\frozen\instance\protected\def\XeTeX {\syst_logos_xe\kern-.1667\emwidth\TeX} +\frozen\instance\protected\def\XeLaTeX{\syst_logos_xe\LaTeX} \instance\protected\def\ETEX {\eTeX} \instance\protected\def\PDFTEX {\pdfTeX} diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl index 0f17e11a6..4dc93d0bf 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{2022.04.20 19:15} +\newcontextversion{2022.05.02 15:48} %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 114ec31ba..009c493a2 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{2022.04.20 19:15} +\immutable\edef\contextversion{2022.05.02 15:48} %overloadmode 1 % check frozen / warning %overloadmode 2 % check frozen / error diff --git a/tex/context/base/mkxl/math-ali.mkxl b/tex/context/base/mkxl/math-ali.mkxl index 75355736d..d58bd464f 100644 --- a/tex/context/base/mkxl/math-ali.mkxl +++ b/tex/context/base/mkxl/math-ali.mkxl @@ -35,6 +35,8 @@ %D Modules may provide additional alignment features. The following kind of plain %D mechanisms are provided by the core. +\newtoks\mathdisplayaligntweaks + \newtoks\t_math_align_a \newtoks\t_math_align_b \newtoks\t_math_align_c @@ -77,20 +79,6 @@ \tabskip\zeropoint \everycr\emptytoks} -% \def\math_math_in_eqalign#1% -% {\startforceddisplaymath -% \tabskip\zeropoint -% \everycr\emptytoks -% {{}#1{}}% brrr we need to replace {} -% \stopforceddisplaymath} - -% \def\math_text_in_eqalign#1% -% {\startimath -% \tabskip\zeropoint -% \everycr\emptytoks -% #1% -% \stopimath} - \def\math_math_in_eqalign#1% {\mathbeginclass\mathordcode \mathendclass \mathordcode @@ -109,27 +97,12 @@ #1% \stopimath} -% \permanent\protected\def\eqalign#1% why no halign here, probably because of displaywidth -% {\emptyhbox % why no \dontleavehmode -% \mskip\thinmuskip -% \vcenter -% {\math_openup\displayopenupvalue % was: \openup\jot -% \mathsurround\zeropoint -% \ialign{% -% \strut -% \hfil -% \startforceddisplaymath{\aligncontent}\stopforceddisplaymath -% \aligntab -% \startforceddisplaymath{{}\aligncontent{}}\stopforceddisplaymath -% \hfil\crcr -% #1\crcr}% -% }% -% \mskip\thinmuskip} +\let\math_align_openup\relax % defined later on \permanent\protected\def\eqalign#1% rather plain, is this used at all ... {\dontleavehmode \mskip\thinmuskip\vcenter\bgroup % \vcenter \s!class \mathwrappercode \bgroup - \math_openup\displayopenupvalue + \math_align_openup \mathsurround\zeropoint % \math_eqalign_set_defaults \ialign {\strut @@ -384,9 +357,6 @@ \pop_macro_NC \to \everymathalignmentdone -\let\math_alignment_snap_start\relax -\let\math_alignment_snap_stop \relax - % % experimental: % % \def\math_alignment_snap_start @@ -424,7 +394,8 @@ % % [align={1:left,2:middle,3:right}] \permanent\tolerant\protected\def\math_alignment_start[#1]#*[#2]% - {\edef\currentmathalignment{#1}% + {\begingroup + \edef\currentmathalignment{#1}% \ifarguments\or\or \setupmathalignment[#1][#2]% bad! ungrouped \fi @@ -446,7 +417,8 @@ \dostoptagged \dostoptagged \the\everymathalignmentdone - \math_alignment_snap_stop} + \math_alignment_snap_stop + \endgroup} \installcorenamespace{mathalignment} \installcorenamespace{mathalignmentvariant} @@ -469,11 +441,36 @@ [\c!n=2, \c!m=1, \c!distance=\emwidth, + \c!spaceinbetween=.25\bodyfontsize, \c!grid=\v!math] \definemathalignment[align] % default case (this is what amstex users expect) \definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing) +% this needs some consideration: + +\def\math_align_openup{\math_openup\mathalignmentparameter\c!spaceinbetween\relax} + +\let\math_display_align_hack_indeed\relax + +\protected\def\math_display_align_hack % I don't like the global, maybe we should push and pop + {\glet\math_display_align_hack_indeed\math_display_align_hack_remove_skip + \math_align_openup + \everycr{\noalign{\math_display_align_hack_indeed}}} + +\def\math_display_align_hack_remove_skip + {\ifdim\prevdepth>-\thousandpoint + \vskip\dimexpr-\lineskiplimit+\normallineskiplimit\relax + \fi + \glet\math_display_align_hack_indeed\math_display_align_hack_insert_penalty} + +\def\math_display_align_hack_insert_penalty + {\penalty\interdisplaylinepenalty} + +\appendtoks + \math_display_align_hack +\to \mathdisplayaligntweaks + % special case.. in case one mistypes .. \ifdefined \startalignment @@ -977,21 +974,6 @@ \dostoptagged \endlocalcontrol} -% \protected\def\math_matrix_start_cell -% {\dostarttagged\t!mtablecell\empty -% \hss -% \math_left_of_eqalign -% \startimath -% \math_matrix_set_style -% \tabskip\zeropoint -% \everycr\emptytoks} -% -% \protected\def\math_matrix_stop_cell -% {\stopimath -% \math_right_of_eqalign -% \hss -% \dostoptagged} - \protected\def\math_matrix_start_cell {\dostarttagged\t!mtablecell\empty \hss @@ -1016,89 +998,6 @@ % left/both : 2 % right/both : 4 -% \c_math_matrix_anchor_mode3 - -% this will be replaced - -%\permanent\protected\def\setmathmatrixanchoring[#1]% -% {\c_math_matrix_anchor_mode\zerocount -% \processaction -% [#1] -% [ \v!left=>\bitwiseflip\c_math_matrix_anchor_mode\numexpr\plusone+\plustwo\relax, -% \v!right=>\bitwiseflip\c_math_matrix_anchor_mode\numexpr\plusone+\plusfour\relax, -% \v!both=>\bitwiseflip\c_math_matrix_anchor_mode\numexpr\plusone+\plustwo+\plusfour\relax, -% \v!yes=>\bitwiseflip\c_math_matrix_anchor_mode\numexpr\plusone]} -% -%\def\math_matrix_anchor -% {\ifbitwiseand\c_math_matrix_anchor_mode\plusone -% \markanchor{matrix}{\numexpr\c_math_eqalign_column+1\relax}\c_math_eqalign_row -% \fi} -% -%\protected\def\math_matrix_distance -% {\relax -% \ifdim\d_math_eqalign_distance>\zeropoint -% \hskip.5\d_math_eqalign_distance -% \fi -% \math_matrix_anchor -% \ifdim\d_math_eqalign_distance>\zeropoint -% \hskip.5\d_math_eqalign_distance -% \fi -% \relax} -% -%\protected\def\math_matrix_distance_first -% {\relax -% \ifbitwiseand\c_math_matrix_anchor_mode\plusone -% \math_matrix_anchor -% \fi -% \ifdim\d_math_eqalign_distance>\zeropoint -% \ifbitwiseand\c_math_matrix_anchor_mode\plustwo -% \hskip.5\d_math_eqalign_distance -% \fi -% \fi -% \relax} -% -%\protected\def\math_matrix_distance_last -% {\relax -% \ifdim\d_math_eqalign_distance>\zeropoint -% \ifbitwiseand\c_math_matrix_anchor_mode\plusfour -% \hskip.5\d_math_eqalign_distance -% \fi -% \fi -% \ifbitwiseand\c_math_matrix_anchor_mode\plusone -% \math_matrix_anchor -% \fi -% \relax} -% -% \def\math_matrix_preamble -% {\math_matrix_strut -% \math_matrix_distance_first -% \global\advance\c_math_eqalign_column\plusone -% \math_matrix_start_cell -% \aligncontent -% \math_matrix_stop_cell -% \aligntab -% \aligntab -% \math_matrix_distance -% \global\advance\c_math_eqalign_column\plusone -% \math_matrix_start_cell -% \aligncontent -% \math_matrix_stop_cell} -% -% \permanent\protected\def\math_matrix_NR -% {\aligntab\omit -% \math_matrix_distance_last -% \math_matrix_stop_row -% \math_matrix_pickup -% \crcr -% \math_matrix_start_row} -% -% \permanent\protected\def\math_matrix_NC -% {\ifconditional\c_math_matrix_first -% \expandafter\math_matrix_NC_yes -% \else -% \expandafter\math_matrix_NC_nop -% \fi} - \permanent\protected\def\setmathmatrixanchoring[#1]% {\c_math_matrix_anchor_mode\zerocount \processaction @@ -1213,39 +1112,6 @@ \enforced\let\TB\math_common_TB \to \everymathmatrix -% \def\math_matrix_start_processing -% {\ifmmode -% \mathatom \s!class \mathwrappedcode -% \else -% \dontleavehmode -% \fi -% \bgroup -% \tabskip\zeropoint -% \math_matrix_pickup -% \the\everymathmatrix -% % -% % \enforced\let\endmath\relax -% % -% \setbox\nextbox\vbox\bgroup -% \math_matrix_start_table -% \halign \bgroup -% % preamble -% \span\math_matrix_preamble -% % done -% \crcr -% \math_matrix_start_row} -% -% \def\math_matrix_stop_processing -% {%\math_matrix_stop_wrapup % optional -% \math_matrix_stop_row -% \egroup -% \math_matrix_stop_table -% \egroup -% \mathmatrixleft % experimental hook -% \math_matrix_finish_nextbox -% \mathmatrixright % experimental hook -% \egroup} - \def\math_matrix_start_processing {\ifmmode \mathatom \s!class \mathwrappedcode @@ -1696,81 +1562,6 @@ \egroup \endgroup} -% %D \macros -% %D {bordermatrix} -% %D -% %D In \PLAIN\ \TEX\ the width of a parenthesis is stored in -% %D the \DIMENSION\ \type{\mathparentwd}. This value is derived from -% %D the width of \type{\tenrm B}, so let's take care of it now: -% -% \ifdefined\mathparentwd \else \newdimen\mathparentwd \fi -% -% \let\normalbordermatrix\bordermatrix % move that code to here instead -% -% \protected\def\bordermatrix -% {\begingroup -% \setbox\scratchbox\hbox{\mr\char"239C}% -% \global\mathparentwd\wd\scratchbox -% \endgroup -% \normalbordermatrix} -% -% \def\bordermatrix -% {\begingroup -% \mr -% \global\mathparentwd\fontcharwd\font"239C\relax -% \endgroup -% \normalbordermatrix} - -% %D \macros{overset, underset} -% %D -% %D The macros \type{\overset} and \type{\underset} are provided by -% %D \AMS\ packages in \LATEX. These macro allows you to place a symbol -% %D above or below another symbol, irrespective of whether the other -% %D symbol is a relation or something else, and without influencing the -% %D spacing. For most cases there is a better way to do such things -% %D (declaring a math command with limop option, or using accents), but -% %D occasionally these macros can be useful, for example: -% %D -% %D \startbuffer -% %D \startformula -% %D \overset{*}{X} \underset{*}{X} -% %D \stopformula -% %D \stopbuffer -% %D \typebuffer \getbuffer -% %D -% %D Use these macros sparingly. Remember, \TEX\ was designed for -% %D mathematics, so there is usually a proper method for typesetting -% %D common math notation. -% %D -% %D These macros are a cleaner version of \type {\binrel@} and -% %D \type {\binrel@@} macros in \AMSTEX\ packages. -% -% \def\math_binrel_apply#1% -% {\begingroup -% \setbox\scratchbox\hbox -% {\thinmuskip 0mu -% \medmuskip -1mu -% \thickmuskip -1mu -% \setbox\scratchbox\hbox{\normalstartimath#1\mathsurround\zeropoint\normalstopimath}% -% \kern-\wd\scratchbox -% \normalstartimath{}#1{}\mathsurround\zeropoint\normalstopimath}% -% \ifdim\wd\scratchbox<\zeropoint -% \endgroup -% \expandafter\mathbin -% \orelse\ifdim\wd\scratchbox>\zeropoint -% \endgroup -% \doubleexpandafter\mathrel -% \else -% \endgroup -% \doubleexpandafter\firstofoneargument -% \fi} -% -% \permanent\protected\def\overset#1#2% -% {\math_binrel_apply{#2}{\mathop{\kern\zeropoint#2}\limits\normalsuperscript{#1}}} -% -% \permanent\protected\def\underset#1#2% -% {\math_binrel_apply{#2}{\mathop{\kern\zeropoint#2}\limits\normalsubscript {#1}}} - %D \macros{overset, underset} %D %D The macros \type {\overset} and \type {\underset} are provided by \AMS\ packages @@ -1799,9 +1590,6 @@ \permanent\protected\def\startinnermath{\expandnamespaceparameter\??mathinnerstart\formulaparameter\c!align\v!normal} \permanent\protected\def\stopinnermath {\expandnamespaceparameter\??mathinnerstop \formulaparameter\c!align\v!normal} -\permanent\protected\def\mathinnerstrut - {\doif{\formulaparameter\c!strut}\v!yes\strut} - \permanent\protected\def\defineinnermathhandler#1#2#3% {\defcsname\??mathinnerstart#1\endcsname{#2}% \defcsname\??mathinnerstop #1\endcsname{#3}} @@ -1858,25 +1646,6 @@ % mode: 0=no frame | 1=number inside frame | 2=number outside frame -% \def\strc_math_flush_aligned -% {\ifcase\c_strc_math_vertical -% \ifcase\mathraggedstatus\or\hfill\or\hfill\fi -% \box\b_strc_math_display -% \ifcase\mathraggedstatus\or\or\hfill\or\hfill\fi -% \else -% \ifconditional\c_strc_math_indent -% \ifzeropt\d_strc_math_indent\else -% \hangafter\plusone -% \hangindent\d_strc_math_indent -% \fi -% \fi -% \edef\p_interlinespace{\formulaparameter\c!interlinespace}% -% \ifempty\p_interlinespace\else\baselineskip\p_interlinespace\fi -% \global\d_strc_math_indent\zeropoint -% \ifcase\mathraggedstatus\or\raggedleft\or\raggedcenter\or\raggedright\fi -% \unhbox\b_strc_math_display -% \fi} - \protected\def\strc_math_flush_aligned {\ifcase\c_strc_math_vertical \ifcase\mathraggedstatus\or\hfill\or\hfill\fi @@ -2128,7 +1897,6 @@ %\strc_formulas_place_number % not here as we can have inner alignment numbers \dontcomplain \setbox\b_strc_math_display\math_hbox\bgroup % \checkeddisplaymath - \mathinnerstrut \startforceddisplaymath} \def\strc_math_flush_number_no diff --git a/tex/context/base/mkxl/math-frc.mkxl b/tex/context/base/mkxl/math-frc.mkxl index 4a912aace..2170c8fd1 100644 --- a/tex/context/base/mkxl/math-frc.mkxl +++ b/tex/context/base/mkxl/math-frc.mkxl @@ -560,7 +560,7 @@ \c!left="28, \c!right="29] -\permanent\protected\def\binom {\csname\inlineordisplaymath id:binom\endcsname} +\permanent\protected\def\binom{\csname\inlineordisplaymath id:binom\endcsname} \definemathfraction [dbinom] diff --git a/tex/context/base/mkxl/math-ini.mkxl b/tex/context/base/mkxl/math-ini.mkxl index 0b3bdf54d..551f3f96a 100644 --- a/tex/context/base/mkxl/math-ini.mkxl +++ b/tex/context/base/mkxl/math-ini.mkxl @@ -13,24 +13,6 @@ \writestatus{loading}{ConTeXt Math Macros / Initializations} -% todo: hpack as we skip math anyway - -% a bit tricky way to set ... no (pseudo) registers but math hash values: -% -% \normalexpanded{\Umathlimitabovevgap\displaystyle=40\dimexpr\the\Umathlimitabovevgap\displaystyle\relax} - -% Todo in luatex maincontrol.w: also accept a number here: -% -% case set_math_param_cmd: -% p = cur_chr; -% get_token(); -% if (cur_cmd != math_style_cmd) { -% -% plus two new math styles: larger/smaller -% -% \protected\def\Umathshow#1% -% {\hbox{\infofont(\string#1:\the#1\textstyle,\the#1\scriptstyle,\the#1\scriptscriptstyle)}} - %D This module provides namespaces for math fonts, thereby permitting mixed usage of %D math fonts. Although not strictly needed, we also provide a family name mapping %D mechanism as used in the (original) AMS math definition files, but here these @@ -38,28 +20,22 @@ %D tried to minimize the number of definition commands and use plain \TEX\ %D definitions as fallback. We've tried to follow a couple of conventions from plain %D and AMS math in order to achieve backward compatinility. We also kept an eye on -%D future usage of these modules in the perspective of MathML and unicode fonts. +%D future usage of these modules in the perspective of MathML and unicode fonts. In +%D the meantime much has been dropped in favour of better alternatives. %D There is a subtle issue with grouping: the \type {\begingroup} method will not %D restore a changed mathstyle so best avoid that one. However, there are cases where -%D we really need to use such grouping. - -% Weird, these fail, maybe amp is solved in a later state from char noads (needs a -% fix in luatex): -% -% $\char"26$ -% $\a$ -% $\string&$ +%D we really need to use such grouping. We now have \type {\beginmathgroup} etc. -% mathop applied to characters centers it vertically +%D Musical timestamp for the April 2022 math (inline) snapping sub activity: eNerd⁴ +%D Time Capsule 2020 a.k.a. Farewell Party for Normalcy (DSD on the squeezebox with +%D a proper DAC connected but it can hardly keep up which also counts for me with MS +%D testing faster than I can provide variants (www.youtube.com/watch?v=xzQCqAJNOSM). \unprotect %D We move these definitions into the format: -% test [[\char948 \cldcontext{utf.char(948)}]] -% test $[[\char948 \cldcontext{utf.char(948)}]]$ - \registerctxluafile{math-ini}{autosuffix} \registerctxluafile{math-dim}{autosuffix} \registerctxluafile{math-act}{autosuffix} @@ -204,7 +180,6 @@ +\rightbottomkernclassoptioncode \relax - % obsolete \setnewconstant\mathboxcode \zerocount @@ -212,6 +187,9 @@ \setnewconstant\mathalphacode \zerocount \setnewconstant\mathnothingcode \zerocount +%D At some point we will drop these in the \LUAMETATEX\ engine becuase we have many +%D more options there. + \pushoverloadmode \untraced\permanent\protected\def\binoppenalty {\setmathpostpenalty\mathbinarycode} \untraced\permanent\protected\def\prebinoppenalty{\setmathprepenalty \mathbinarycode} @@ -219,12 +197,8 @@ \untraced\permanent\protected\def\prerelpenalty {\setmathprepenalty \mathrelationcode} \popoverloadmode -% \newcount\binoppenalty -% \newcount\prebinoppenalty -% \newcount\relpenalty -% \newcount\prerelpenalty - -% topaccent botaccent .. but do we ever need these so they will be inlined or we need them for all +%D These verbose commands are obsolete because there are plenty more classes in +%D \LMTX\ than in \MKIV. \permanent\protected\def\ordordspacing {\setmathspacing \mathordinarycode \mathordinarycode } \permanent\protected\def\ordopspacing {\setmathspacing \mathordinarycode \mathoperatorcode } @@ -382,7 +356,7 @@ \permanent\protected\def\accentmiddlespacing{\setmathspacing \mathaccentcode \mathmiddlecode } \permanent\protected\def\accentaccentspacing{\setmathspacing \mathaccentcode \mathaccentcode } -%D In the end Mikael and I prefer for this: +%D In the end Mikael and I prefer this but we need a high level interface: % \setmathignore\Umathspacebeforescript\plusone % \setmathignore\Umathspaceafterscript \plusone @@ -392,15 +366,29 @@ \mathslackmode \plusone -\setmathoptions\mathoperatorcode \plusthree -\setmathoptions\mathbinarycode \plusthree -\setmathoptions\mathrelationcode \plusthree -\setmathoptions\mathopencode \plusthree -\setmathoptions\mathclosecode \plusthree -\setmathoptions\mathpunctuationcode\plusthree -\setmathoptions\mathfractioncode \plusthree +\integerdef\defaultmathclassoptions\numexpr + \nopreslackclassoptioncode + +\nopostslackclassoptioncode + % +\lefttopkernclassoptioncode + % +\righttopkernclassoptioncode + % +\leftbottomkernclassoptioncode + % +\rightbottomkernclassoptioncode + % +\lookaheadforendclassoptioncode +\relax + +\setmathoptions\mathbinarycode\numexpr + \defaultmathclassoptions + +\lookaheadforendclassoptioncode +\relax -%D For now \unknown +\setmathoptions\mathoperatorcode \defaultmathclassoptions +\setmathoptions\mathrelationcode \defaultmathclassoptions +\setmathoptions\mathopencode \defaultmathclassoptions +\setmathoptions\mathclosecode \defaultmathclassoptions +\setmathoptions\mathpunctuationcode\defaultmathclassoptions +\setmathoptions\mathfractioncode \defaultmathclassoptions + +%D For now \unknown (todo: make it adapt to style but we're in text anyway) \permanent\protected\def\math_discretionary_plus {\discretionary class \mathbinarycode {$+$}{$+$}{$+$}} \permanent\protected\def\math_discretionary_minus{\discretionary class \mathbinarycode {$-$}{$-$}{$-$}} @@ -757,200 +745,403 @@ % \Umathspacingmode\allmathstyles\plusone % always pair driven -% todo: use fullnames instead shirt ones +% \startsetups math:spacing:presets +% \resetmathspacing +% % \ordordspacing \allmathstyles \zeromuskip +% \inherited\ordopspacing \allmathstyles \thinmuskip +% \inherited\ordbinspacing \allsplitstyles \medmuskip +% \inherited\ordbinspacing \allscriptstyles\tinymuskip +% \inherited\ordrelspacing \allsplitstyles \thickmuskip +% \inherited\ordrelspacing \allscriptstyles\tinymuskip +% % \inherited\ordopenspacing \allmathstyles \zeromuskip +% \inherited\ordmiddlespacing \allsplitstyles \medmuskip +% \inherited\ordmiddlespacing \allscriptstyles\tinymuskip +% % \inherited\ordclosespacing \allmathstyles \zeromuskip +% % \inherited\ordpunctspacing \allmathstyles \zeromuskip +% \inherited\ordinnerspacing \allsplitstyles \thinmuskip +% \inherited\ordinnerspacing \allscriptstyles\tinymuskip +% \inherited\ordfracspacing \allmathstyles \tinymuskip +% \inherited\ordradspacing \allmathstyles \tinymuskip +% \inherited\opordspacing \allmathstyles \thinmuskip +% \inherited\opopspacing \allmathstyles \thinmuskip +% % \inherited \opbinspacing \allmathstyles \zeromuskip +% \inherited\oprelspacing \allsplitstyles \thickmuskip +% \inherited\oprelspacing \allscriptstyles\tinymuskip +% % \inherited\opopenspacing \allmathstyles \zeromuskip +% \inherited\opmiddlespacing \allsplitstyles \medmuskip +% \inherited\opmiddlespacing \allscriptstyles\tinymuskip +% % \inherited\opclosespacing \allmathstyles \zeromuskip +% % \inherited\oppunctspacing \allmathstyles \zeromuskip +% \inherited\opinnerspacing \allsplitstyles \thinmuskip +% \inherited\opinnerspacing \allscriptstyles\tinymuskip +% \inherited\opfracspacing \allmathstyles \thinmuskip +% \inherited\opradspacing \allmathstyles \thinmuskip +% \inherited\binordspacing \allsplitstyles \medmuskip +% \inherited\binordspacing \allscriptstyles\tinymuskip +% \inherited\binopspacing \allsplitstyles \medmuskip +% \inherited\binopspacing \allscriptstyles\tinymuskip +% % \inherited\binbinspacing \allmathstyles \zeromuskip +% % \inherited\binrelspacing \allmathstyles \zeromuskip +% \inherited\binopenspacing \allsplitstyles \medmuskip +% \inherited\binopenspacing \allscriptstyles\tinymuskip +% \inherited\binmiddlespacing \allsplitstyles \medmuskip +% \inherited\binmiddlespacing \allscriptstyles\tinymuskip +% % \inherited\binclosespacing \allmathstyles \zeromuskip +% % \inherited\binpunctspacing \allmathstyles \zeromuskip +% \inherited\bininnerspacing \allsplitstyles \medmuskip +% \inherited\bininnerspacing \allscriptstyles\tinymuskip +% \inherited\binfracspacing \allsplitstyles \medmuskip +% \inherited\binfracspacing \allscriptstyles\tinymuskip +% \inherited\binradspacing \allsplitstyles \medmuskip +% \inherited\binradspacing \allscriptstyles\tinymuskip +% \inherited\relordspacing \allsplitstyles \thickmuskip +% \inherited\relordspacing \allscriptstyles\tinymuskip +% \inherited\relopspacing \allsplitstyles \thickmuskip +% \inherited\relopspacing \allscriptstyles\tinymuskip +% % \inherited\relbinspacing \allmathstyles \zeromuskip +% % \inherited\relrelspacing \allmathstyles \zeromuskip +% \inherited\relopenspacing \allsplitstyles \thickmuskip +% \inherited\relopenspacing \allscriptstyles\tinymuskip +% \inherited\relmiddlespacing \allsplitstyles \thickmuskip +% \inherited\relmiddlespacing \allscriptstyles\thinmuskip +% % \inherited\relclosespacing \allmathstyles \zeromuskip +% % \inherited\relpunctspacing \allmathstyles \zeromuskip +% \inherited\relinnerspacing \allsplitstyles \thickmuskip +% \inherited\relinnerspacing \allscriptstyles\tinymuskip +% \inherited\relfracspacing \allsplitstyles \thickmuskip +% \inherited\relfracspacing \allscriptstyles\tinymuskip +% \inherited\relradspacing \allsplitstyles \thickmuskip +% \inherited\relradspacing \allscriptstyles\tinymuskip +% % \inherited\openordspacing \allmathstyles \zeromuskip +% % \inherited\openopspacing \allmathstyles \zeromuskip +% % \inherited\openbinspacing \allmathstyles \zeromuskip +% % \inherited\openrelspacing \allmathstyles \zeromuskip +% % \inherited\openopenspacing \allmathstyles \zeromuskip +% % \inherited\openmiddlespacing \allmathstyles \zeromuskip +% % \inherited\openclosespacing \allmathstyles \zeromuskip +% % \inherited\openpunctspacing \allmathstyles \zeromuskip +% % \inherited\openinnerspacing \allmathstyles \zeromuskip +% \inherited\openfracspacing \allmathstyles \tinymuskip +% % \inherited\openradspacing \allmathstyles \zeromuskip +% % \inherited\closeordspacing \allmathstyles \zeromuskip +% \inherited\closeopspacing \allmathstyles \thinmuskip +% \inherited\closebinspacing \allsplitstyles \medmuskip +% \inherited\closebinspacing \allscriptstyles\tinymuskip +% \inherited\closerelspacing \allsplitstyles \thickmuskip +% \inherited\closerelspacing \allscriptstyles\tinymuskip +% % \inherited\closeopenspacing \allmathstyles \zeromuskip +% % \inherited\closemiddlespacing \allmathstyles \zeromuskip +% % \inherited\closeclosespacing \allmathstyles \zeromuskip +% % \inherited\closepunctspacing \allmathstyles \zeromuskip +% \inherited\closeinnerspacing \allsplitstyles \thinmuskip +% \inherited\closeinnerspacing \allscriptstyles\tinymuskip +% \inherited\closefracspacing \allsplitstyles \thinmuskip +% \inherited\closefracspacing \allscriptstyles\tinymuskip +% % \inherited\closeradspacing \allmathstyles \zeromuskip +% \inherited\punctordspacing \allsplitstyles \thinmuskip +% \inherited\punctordspacing \allscriptstyles\tinymuskip +% \inherited\punctopspacing \allsplitstyles \thinmuskip +% \inherited\punctopspacing \allscriptstyles\tinymuskip +% % \inherited\punctbinspacing \allmathstyles \zeromuskip +% \inherited\punctrelspacing \allsplitstyles \thinmuskip +% \inherited\punctrelspacing \allscriptstyles\tinymuskip +% \inherited\punctopenspacing \allsplitstyles \thinmuskip +% \inherited\punctopenspacing \allscriptstyles\tinymuskip +% \inherited\punctmiddlespacing \allsplitstyles \thinmuskip +% \inherited\punctmiddlespacing \allscriptstyles\tinymuskip +% \inherited\punctclosespacing \allsplitstyles \thinmuskip +% \inherited\punctclosespacing \allscriptstyles\tinymuskip +% \inherited\punctpunctspacing \allsplitstyles \thinmuskip +% \inherited\punctpunctspacing \allscriptstyles\tinymuskip +% \inherited\punctinnerspacing \allsplitstyles \thinmuskip +% \inherited\punctinnerspacing \allscriptstyles\tinymuskip +% \inherited\punctfracspacing \allsplitstyles \thinmuskip +% \inherited\punctfracspacing \allscriptstyles\tinymuskip +% \inherited\punctradspacing \allsplitstyles \thinmuskip +% \inherited\punctradspacing \allscriptstyles\tinymuskip +% \inherited\innerordspacing \allsplitstyles \thinmuskip +% \inherited\innerordspacing \allscriptstyles\tinymuskip +% \inherited\inneropspacing \allmathstyles \thinmuskip +% \inherited\innerbinspacing \allsplitstyles \medmuskip +% \inherited\innerbinspacing \allscriptstyles\tinymuskip +% \inherited\innerrelspacing \allsplitstyles \thickmuskip +% \inherited\innerrelspacing \allscriptstyles\tinymuskip +% \inherited\inneropenspacing \allsplitstyles \thinmuskip +% \inherited\inneropenspacing \allscriptstyles\tinymuskip +% \inherited\innermiddlespacing \allsplitstyles \thinmuskip +% \inherited\innermiddlespacing \allscriptstyles\tinymuskip +% % \inherited\innerclosespacing \allmathstyles \zeromuskip +% \inherited\innerpunctspacing \allsplitstyles \thinmuskip +% \inherited\innerpunctspacing \allscriptstyles\tinymuskip +% \inherited\innerinnerspacing \allsplitstyles \thinmuskip +% \inherited\innerinnerspacing \allscriptstyles\tinymuskip +% \inherited\innerfracspacing \allsplitstyles \thinmuskip +% \inherited\innerfracspacing \allscriptstyles\tinymuskip +% \inherited\innerradspacing \allsplitstyles \thinmuskip +% \inherited\innerradspacing \allscriptstyles\tinymuskip +% \inherited\fracordspacing \allmathstyles \tinymuskip +% \inherited\fracopspacing \allmathstyles \thinmuskip +% \inherited\fracbinspacing \allsplitstyles \medmuskip +% \inherited\fracbinspacing \allscriptstyles\tinymuskip +% \inherited\fracrelspacing \allsplitstyles \thickmuskip +% \inherited\fracrelspacing \allscriptstyles\tinymuskip +% \inherited\fracopenspacing \allsplitstyles \thinmuskip +% \inherited\fracopenspacing \allscriptstyles\tinymuskip +% \inherited\fracmiddlespacing \allsplitstyles \medmuskip +% \inherited\fracmiddlespacing \allscriptstyles\tinymuskip +% \inherited\fracclosespacing \allmathstyles \tinymuskip +% % \inherited\fracpunctspacing \allmathstyles \zeromuskip +% \inherited\fracinnerspacing \allsplitstyles \thinmuskip +% \inherited\fracinnerspacing \allscriptstyles\tinymuskip +% \inherited\fracfracspacing \allsplitstyles \thinmuskip +% \inherited\fracfracspacing \allscriptstyles\tinymuskip +% \inherited\fracradspacing \allmathstyles \tinymuskip +% \inherited\radordspacing \allsplitstyles \tinymuskip +% \inherited\radopspacing \allmathstyles \thinmuskip +% \inherited\radbinspacing \allsplitstyles \medmuskip +% \inherited\radbinspacing \allscriptstyles\tinymuskip +% \inherited\radrelspacing \allsplitstyles \thickmuskip +% \inherited\radrelspacing \allscriptstyles\tinymuskip +% % \inherited\radopenspacing \allmathstyles \zeromuskip +% % \inherited\radmiddlespacing \allmathstyles \zeromuskip +% % \inherited\radclosespacing \allmathstyles \zeromuskip +% % \inherited\radpunctspacing \allmathstyles \zeromuskip +% \inherited\radinnerspacing \allsplitstyles \thinmuskip +% \inherited\radinnerspacing \allscriptstyles\tinymuskip +% \inherited\radfracspacing \allmathstyles \tinymuskip +% \inherited\radradspacing \allmathstyles \tinymuskip +% \inherited\middleordspacing \allsplitstyles \medmuskip +% \inherited\middleordspacing \allscriptstyles\tinymuskip +% \inherited\middleopspacing \allmathstyles \thinmuskip +% \inherited\middlebinspacing \allsplitstyles \medmuskip +% \inherited\middlebinspacing \allscriptstyles\tinymuskip +% \inherited\middlerelspacing \allsplitstyles \thickmuskip +% \inherited\middlerelspacing \allscriptstyles\tinymuskip +% % \inherited\middleopenspacing \allmathstyles \zeromuskip +% % \inherited\middlemiddlespacing \allmathstyles \zeromuskip +% % \inherited\middleclosespacing \allmathstyles \zeromuskip +% % \inherited\middlepunctspacing \allmathstyles \zeromuskip +% \inherited\middleinnerspacing \allsplitstyles \thinmuskip +% \inherited\middleinnerspacing \allscriptstyles\tinymuskip +% \inherited\middlefracspacing \allsplitstyles \medmuskip +% \inherited\middlefracspacing \allscriptstyles\tinymuskip +% % \inherited\middleradspacing \allmathstyles \zeromuskip +% % +% \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allsplitstyles \thinmuskip +% \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allscriptstyles \tinymuskip +% \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allsplitstyles \thinmuskip +% \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allscriptstyles \tinymuskip +% \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allsplitstyles \thinmuskip +% \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allscriptstyles \tinymuskip +% \inherited\setmathspacing \mathfactorialcode \mathfactorialcode \allmathstyles \zeromuskip +% % +% \inherited\setmathspacing \mathopencode \mathconstructcode \allmathstyles \thinmuskip +% \inherited\setmathspacing \mathconstructcode \mathclosecode \allmathstyles \thinmuskip +% \stopsetups \startsetups math:spacing:presets \resetmathspacing - % \ordordspacing \allmathstyles \zeromuskip - \inherited\ordopspacing \allmathstyles \thinmuskip - \inherited\ordbinspacing \allsplitstyles \medmuskip - \inherited\ordbinspacing \allscriptstyles\tinymuskip - \inherited\ordrelspacing \allsplitstyles \thickmuskip - \inherited\ordrelspacing \allscriptstyles\tinymuskip - % \inherited\ordopenspacing \allmathstyles \zeromuskip - \inherited\ordmiddlespacing \allsplitstyles \medmuskip - \inherited\ordmiddlespacing \allscriptstyles\tinymuskip - % \inherited\ordclosespacing \allmathstyles \zeromuskip - % \inherited\ordpunctspacing \allmathstyles \zeromuskip - \inherited\ordinnerspacing \allsplitstyles \thinmuskip - \inherited\ordinnerspacing \allscriptstyles\tinymuskip - \inherited\ordfracspacing \allmathstyles \tinymuskip - \inherited\ordradspacing \allmathstyles \tinymuskip - \inherited\opordspacing \allmathstyles \thinmuskip - \inherited\opopspacing \allmathstyles \thinmuskip - %%\inherited \opbinspacing \allmathstyles \zeromuskip - \inherited\oprelspacing \allsplitstyles \thickmuskip - \inherited\oprelspacing \allscriptstyles\tinymuskip - % \inherited\opopenspacing \allmathstyles \zeromuskip - \inherited\opmiddlespacing \allsplitstyles \medmuskip - \inherited\opmiddlespacing \allscriptstyles\tinymuskip - % \inherited\opclosespacing \allmathstyles \zeromuskip - % \inherited\oppunctspacing \allmathstyles \zeromuskip - \inherited\opinnerspacing \allsplitstyles \thinmuskip - \inherited\opinnerspacing \allscriptstyles\tinymuskip - \inherited\opfracspacing \allmathstyles \thinmuskip - \inherited\opradspacing \allmathstyles \thinmuskip - \inherited\binordspacing \allsplitstyles \medmuskip - \inherited\binordspacing \allscriptstyles\tinymuskip - \inherited\binopspacing \allsplitstyles \medmuskip - \inherited\binopspacing \allscriptstyles\tinymuskip - %% \inherited\binbinspacing \allmathstyles \zeromuskip - %% \inherited\binrelspacing \allmathstyles \zeromuskip - \inherited\binopenspacing \allsplitstyles \medmuskip - \inherited\binopenspacing \allscriptstyles\tinymuskip - \inherited\binmiddlespacing \allsplitstyles \medmuskip - \inherited\binmiddlespacing \allscriptstyles\tinymuskip - %% \inherited\binclosespacing \allmathstyles \zeromuskip - %% \inherited\binpunctspacing \allmathstyles \zeromuskip - \inherited\bininnerspacing \allsplitstyles \medmuskip - \inherited\bininnerspacing \allscriptstyles\tinymuskip - \inherited\binfracspacing \allsplitstyles \medmuskip - \inherited\binfracspacing \allscriptstyles\tinymuskip - \inherited\binradspacing \allsplitstyles \medmuskip - \inherited\binradspacing \allscriptstyles\tinymuskip - \inherited\relordspacing \allsplitstyles \thickmuskip - \inherited\relordspacing \allscriptstyles\tinymuskip - \inherited\relopspacing \allsplitstyles \thickmuskip - \inherited\relopspacing \allscriptstyles\tinymuskip - %% \inherited\relbinspacing \allmathstyles \zeromuskip - % \inherited\relrelspacing \allmathstyles \zeromuskip - \inherited\relopenspacing \allsplitstyles \thickmuskip - \inherited\relopenspacing \allscriptstyles\tinymuskip - \inherited\relmiddlespacing \allsplitstyles \thickmuskip - \inherited\relmiddlespacing \allscriptstyles\thinmuskip - % \inherited\relclosespacing \allmathstyles \zeromuskip - % \inherited\relpunctspacing \allmathstyles \zeromuskip - \inherited\relinnerspacing \allsplitstyles \thickmuskip - \inherited\relinnerspacing \allscriptstyles\tinymuskip - \inherited\relfracspacing \allsplitstyles \thickmuskip - \inherited\relfracspacing \allscriptstyles\tinymuskip - \inherited\relradspacing \allsplitstyles \thickmuskip - \inherited\relradspacing \allscriptstyles\tinymuskip - % \inherited\openordspacing \allmathstyles \zeromuskip - % \inherited\openopspacing \allmathstyles \zeromuskip - %% \inherited\openbinspacing \allmathstyles \zeromuskip - % \inherited\openrelspacing \allmathstyles \zeromuskip - % \inherited\openopenspacing \allmathstyles \zeromuskip - % \inherited\openmiddlespacing \allmathstyles \zeromuskip - % \inherited\openclosespacing \allmathstyles \zeromuskip - % \inherited\openpunctspacing \allmathstyles \zeromuskip - % \inherited\openinnerspacing \allmathstyles \zeromuskip - \inherited\openfracspacing \allmathstyles \tinymuskip - % \inherited\openradspacing \allmathstyles \zeromuskip - % \inherited\closeordspacing \allmathstyles \zeromuskip - \inherited\closeopspacing \allmathstyles \thinmuskip - \inherited\closebinspacing \allsplitstyles \medmuskip - \inherited\closebinspacing \allscriptstyles\tinymuskip - \inherited\closerelspacing \allsplitstyles \thickmuskip - \inherited\closerelspacing \allscriptstyles\tinymuskip - % \inherited\closeopenspacing \allmathstyles \zeromuskip - % \inherited\closemiddlespacing \allmathstyles \zeromuskip - % \inherited\closeclosespacing \allmathstyles \zeromuskip - % \inherited\closepunctspacing \allmathstyles \zeromuskip - \inherited\closeinnerspacing \allsplitstyles \thinmuskip - \inherited\closeinnerspacing \allscriptstyles\tinymuskip - \inherited\closefracspacing \allsplitstyles \thinmuskip - \inherited\closefracspacing \allscriptstyles\tinymuskip - % \inherited\closeradspacing \allmathstyles \zeromuskip - \inherited\punctordspacing \allsplitstyles \thinmuskip - \inherited\punctordspacing \allscriptstyles\tinymuskip - \inherited\punctopspacing \allsplitstyles \thinmuskip - \inherited\punctopspacing \allscriptstyles\tinymuskip - % \inherited\punctbinspacing \allmathstyles \zeromuskip - \inherited\punctrelspacing \allsplitstyles \thinmuskip - \inherited\punctrelspacing \allscriptstyles\tinymuskip - \inherited\punctopenspacing \allsplitstyles \thinmuskip - \inherited\punctopenspacing \allscriptstyles\tinymuskip - \inherited\punctmiddlespacing \allsplitstyles \thinmuskip - \inherited\punctmiddlespacing \allscriptstyles\tinymuskip - \inherited\punctclosespacing \allsplitstyles \thinmuskip - \inherited\punctclosespacing \allscriptstyles\tinymuskip - \inherited\punctpunctspacing \allsplitstyles \thinmuskip - \inherited\punctpunctspacing \allscriptstyles\tinymuskip - \inherited\punctinnerspacing \allsplitstyles \thinmuskip - \inherited\punctinnerspacing \allscriptstyles\tinymuskip - \inherited\punctfracspacing \allsplitstyles \thinmuskip - \inherited\punctfracspacing \allscriptstyles\tinymuskip - \inherited\punctradspacing \allsplitstyles \thinmuskip - \inherited\punctradspacing \allscriptstyles\tinymuskip - \inherited\innerordspacing \allsplitstyles \thinmuskip - \inherited\innerordspacing \allscriptstyles\tinymuskip - \inherited\inneropspacing \allmathstyles \thinmuskip - \inherited\innerbinspacing \allsplitstyles \medmuskip - \inherited\innerbinspacing \allscriptstyles\tinymuskip - \inherited\innerrelspacing \allsplitstyles \thickmuskip - \inherited\innerrelspacing \allscriptstyles\tinymuskip - \inherited\inneropenspacing \allsplitstyles \thinmuskip - \inherited\inneropenspacing \allscriptstyles\tinymuskip - \inherited\innermiddlespacing \allsplitstyles \thinmuskip - \inherited\innermiddlespacing \allscriptstyles\tinymuskip - % \inherited\innerclosespacing \allmathstyles \zeromuskip - \inherited\innerpunctspacing \allsplitstyles \thinmuskip - \inherited\innerpunctspacing \allscriptstyles\tinymuskip - \inherited\innerinnerspacing \allsplitstyles \thinmuskip - \inherited\innerinnerspacing \allscriptstyles\tinymuskip - \inherited\innerfracspacing \allsplitstyles \thinmuskip - \inherited\innerfracspacing \allscriptstyles\tinymuskip - \inherited\innerradspacing \allsplitstyles \thinmuskip - \inherited\innerradspacing \allscriptstyles\tinymuskip - \inherited\fracordspacing \allmathstyles \tinymuskip - \inherited\fracopspacing \allmathstyles \thinmuskip - \inherited\fracbinspacing \allsplitstyles \medmuskip - \inherited\fracbinspacing \allscriptstyles\tinymuskip - \inherited\fracrelspacing \allsplitstyles \thickmuskip - \inherited\fracrelspacing \allscriptstyles\tinymuskip - \inherited\fracopenspacing \allsplitstyles \thinmuskip - \inherited\fracopenspacing \allscriptstyles\tinymuskip - \inherited\fracmiddlespacing \allsplitstyles \medmuskip - \inherited\fracmiddlespacing \allscriptstyles\tinymuskip - \inherited\fracclosespacing \allmathstyles \tinymuskip - % \inherited\fracpunctspacing \allmathstyles \zeromuskip - \inherited\fracinnerspacing \allsplitstyles \thinmuskip - \inherited\fracinnerspacing \allscriptstyles\tinymuskip - \inherited\fracfracspacing \allsplitstyles \thinmuskip - \inherited\fracfracspacing \allscriptstyles\tinymuskip - \inherited\fracradspacing \allmathstyles \tinymuskip - \inherited\radordspacing \allsplitstyles \tinymuskip - \inherited\radopspacing \allmathstyles \thinmuskip - \inherited\radbinspacing \allsplitstyles \medmuskip - \inherited\radbinspacing \allscriptstyles\tinymuskip - \inherited\radrelspacing \allsplitstyles \thickmuskip - \inherited\radrelspacing \allscriptstyles\tinymuskip - % \inherited\radopenspacing \allmathstyles \zeromuskip - % \inherited\radmiddlespacing \allmathstyles \zeromuskip - % \inherited\radclosespacing \allmathstyles \zeromuskip - % \inherited\radpunctspacing \allmathstyles \zeromuskip - \inherited\radinnerspacing \allsplitstyles \thinmuskip - \inherited\radinnerspacing \allscriptstyles\tinymuskip - \inherited\radfracspacing \allmathstyles \tinymuskip - \inherited\radradspacing \allmathstyles \tinymuskip - \inherited\middleordspacing \allsplitstyles \medmuskip - \inherited\middleordspacing \allscriptstyles\tinymuskip - \inherited\middleopspacing \allmathstyles \thinmuskip - \inherited\middlebinspacing \allsplitstyles \medmuskip - \inherited\middlebinspacing \allscriptstyles\tinymuskip - \inherited\middlerelspacing \allsplitstyles \thickmuskip - \inherited\middlerelspacing \allscriptstyles\tinymuskip - % \inherited\middleopenspacing \allmathstyles \zeromuskip - % \inherited\middlemiddlespacing \allmathstyles \zeromuskip - % \inherited\middleclosespacing \allmathstyles \zeromuskip - % \inherited\middlepunctspacing \allmathstyles \zeromuskip - \inherited\middleinnerspacing \allsplitstyles \thinmuskip - \inherited\middleinnerspacing \allscriptstyles\tinymuskip - \inherited\middlefracspacing \allsplitstyles \medmuskip - \inherited\middlefracspacing \allscriptstyles\tinymuskip - % \inherited\middleradspacing \allmathstyles \zeromuskip % - \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allsplitstyles \thinmuskip - \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allscriptstyles \tinymuskip - \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allsplitstyles \thinmuskip - \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allscriptstyles \tinymuskip - \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allsplitstyles \thinmuskip - \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allscriptstyles \tinymuskip - \inherited\setmathspacing \mathfactorialcode \mathfactorialcode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathordinarycode \mathordinarycode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathordinarycode \mathoperatorcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathordinarycode \mathbinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathordinarycode \mathbinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathordinarycode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathordinarycode \mathrelationcode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathordinarycode \mathopencode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathordinarycode \mathmiddlecode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathordinarycode \mathmiddlecode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathordinarycode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathordinarycode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathordinarycode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathordinarycode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathordinarycode \mathfractioncode \allmathstyles \tinymuskip + \inherited\setmathspacing \mathordinarycode \mathradicalcode \allmathstyles \tinymuskip + % + \inherited\setmathspacing \mathoperatorcode \mathordinarycode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathoperatorcode \mathoperatorcode \allmathstyles \thinmuskip + % \inherited\setmathspacing \mathoperatorcode \mathbinarycode \allmathstyles \ zeromuskip + \inherited\setmathspacing \mathoperatorcode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathoperatorcode \mathrelationcode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathoperatorcode \mathopencode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathoperatorcode \mathmiddlecode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathoperatorcode \mathmiddlecode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathoperatorcode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathoperatorcode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathoperatorcode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathoperatorcode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathoperatorcode \mathfractioncode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathoperatorcode \mathradicalcode \allmathstyles \thinmuskip + % + \inherited\setmathspacing \mathbinarycode \mathordinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathordinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathbinarycode \mathoperatorcode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathoperatorcode \allscriptstyles \tinymuskip + %% \inherited\setmathspacing \mathbinarycode \mathbinarycode \allmathstyles \zeromuskip + %% \inherited\setmathspacing \mathbinarycode \mathrelationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathbinarycode \mathopencode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathopencode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathbinarycode \mathmiddlecode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathmiddlecode \allscriptstyles \tinymuskip + %% \inherited\setmathspacing \mathbinarycode \mathclosecode \allmathstyles \zeromuskip + %% \inherited\setmathspacing \mathbinarycode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathbinarycode \mathinnercode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathbinarycode \mathfractioncode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathfractioncode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathbinarycode \mathradicalcode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathbinarycode \mathradicalcode \allscriptstyles \tinymuskip + % + \inherited\setmathspacing \mathrelationcode \mathordinarycode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathordinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathrelationcode \mathoperatorcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathoperatorcode \allscriptstyles \tinymuskip + %% \inherited\setmathspacing \mathrelationcode \mathbinarycode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathrelationcode \mathrelationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathrelationcode \mathopencode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathopencode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathrelationcode \mathmiddlecode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathmiddlecode \allscriptstyles \thinmuskip + % \inherited\setmathspacing \mathrelationcode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathrelationcode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathrelationcode \mathinnercode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathrelationcode \mathfractioncode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathfractioncode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathrelationcode \mathradicalcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathrelationcode \mathradicalcode \allscriptstyles \tinymuskip + % + % \inherited\setmathspacing \mathopencode \mathordinarycode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathoperatorcode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathbinarycode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathrelationcode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathopencode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathmiddlecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathpunctuationcode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathopencode \mathinnercode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathopencode \mathfractioncode \allmathstyles \tinymuskip + % \inherited\setmathspacing \mathopencode \mathradicalcode \allmathstyles \zeromuskip % - \inherited\setmathspacing \mathopencode \mathconstructcode \allmathstyles \thinmuskip - \inherited\setmathspacing \mathconstructcode \mathclosecode \allmathstyles \thinmuskip + % \inherited\setmathspacing \mathclosecode \mathordinarycode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathclosecode \mathoperatorcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathclosecode \mathbinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathclosecode \mathbinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathclosecode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathclosecode \mathrelationcode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathclosecode \mathopencode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathclosecode \mathmiddlecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathclosecode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathclosecode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathclosecode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathclosecode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathclosecode \mathfractioncode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathclosecode \mathfractioncode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathclosecode \mathradicalcode \allmathstyles \zeromuskip + % + \inherited\setmathspacing \mathpunctuationcode \mathordinarycode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathordinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathoperatorcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathoperatorcode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathpunctuationcode \mathbinarycode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathpunctuationcode \mathrelationcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathrelationcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathopencode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathopencode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathmiddlecode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathmiddlecode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathclosecode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathclosecode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathpunctuationcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathpunctuationcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathfractioncode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathfractioncode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathpunctuationcode \mathradicalcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathpunctuationcode \mathradicalcode \allscriptstyles \tinymuskip + % + \inherited\setmathspacing \mathinnercode \mathordinarycode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathordinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathoperatorcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathbinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathinnercode \mathbinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathinnercode \mathrelationcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathopencode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathopencode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathmiddlecode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathmiddlecode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathinnercode \mathclosecode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathinnercode \mathpunctuationcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathpunctuationcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathfractioncode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathfractioncode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathinnercode \mathradicalcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathinnercode \mathradicalcode \allscriptstyles \tinymuskip + % + \inherited\setmathspacing \mathfractioncode \mathordinarycode \allmathstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathoperatorcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathfractioncode \mathbinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathfractioncode \mathbinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathfractioncode \mathrelationcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathopencode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathfractioncode \mathopencode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathmiddlecode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathfractioncode \mathmiddlecode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathclosecode \allmathstyles \tinymuskip + % \inherited\setmathspacing \mathfractioncode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathfractioncode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathfractioncode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathfractioncode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathfractioncode \mathfractioncode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfractioncode \mathradicalcode \allmathstyles \tinymuskip + % + \inherited\setmathspacing \mathradicalcode \mathordinarycode \allsplitstyles \tinymuskip + \inherited\setmathspacing \mathradicalcode \mathoperatorcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathradicalcode \mathbinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathradicalcode \mathbinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathradicalcode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathradicalcode \mathrelationcode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathradicalcode \mathopencode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathradicalcode \mathmiddlecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathradicalcode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathradicalcode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathradicalcode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathradicalcode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathradicalcode \mathfractioncode \allmathstyles \tinymuskip + \inherited\setmathspacing \mathradicalcode \mathradicalcode \allmathstyles \tinymuskip + % + \inherited\setmathspacing \mathmiddlecode \mathordinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathmiddlecode \mathordinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathmiddlecode \mathoperatorcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathmiddlecode \mathbinarycode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathmiddlecode \mathbinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathmiddlecode \mathrelationcode \allsplitstyles \thickmuskip + \inherited\setmathspacing \mathmiddlecode \mathrelationcode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathmiddlecode \mathopencode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathmiddlecode \mathmiddlecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathmiddlecode \mathclosecode \allmathstyles \zeromuskip + % \inherited\setmathspacing \mathmiddlecode \mathpunctuationcode \allmathstyles \zeromuskip + \inherited\setmathspacing \mathmiddlecode \mathinnercode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathmiddlecode \mathinnercode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathmiddlecode \mathfractioncode \allsplitstyles \medmuskip + \inherited\setmathspacing \mathmiddlecode \mathfractioncode \allscriptstyles \tinymuskip + % \inherited\setmathspacing \mathmiddlecode \mathradicalcode \allmathstyles \zeromuskip + % + \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allsplitstyles \thinmuskip + \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allscriptstyles \tinymuskip + \inherited\setmathspacing \mathfactorialcode \mathfactorialcode \allmathstyles \zeromuskip + % + \inherited\setmathspacing \mathopencode \mathconstructcode \allmathstyles \thinmuskip + \inherited\setmathspacing \mathconstructcode \mathclosecode \allmathstyles \thinmuskip \stopsetups \directsetup{math:spacing:default} @@ -1335,35 +1526,8 @@ \immutable\chardef\c_math_strut"28 -% \protected\def\math_strut_htdp#1% -% {\s!height\fontcharht#1\c_math_strut -% \s!depth \fontchardp#1\c_math_strut} -% -% now we need this (kind of inefficient): - -% \protected\def\math_strut_htdp#1% nasty! -% {\s!height\dimexpr\mathscale#1\fontcharht#1\c_math_strut/\glyphscale\relax -% \s!depth \dimexpr\mathscale#1\fontchardp#1\c_math_strut/\glyphscale\relax} -% -% this overflows so we use this instead: - -% \protected\def\math_strut_htdp#1% nasty! -% {\s!height\dimexpr(\fontcharht#1\c_math_strut/\glyphscale)*\mathscale#1\relax -% \s!depth \dimexpr(\fontchardp#1\c_math_strut/\glyphscale)*\mathscale#1\relax} -% -% \protected\def\math_strut_normal -% {\vrule -% \s!width \zeropoint -% \normalexpanded{\math_strut_htdp{\mathstylefont\normalmathstyle}}% -% \relax} -% -% \protected\def\math_strut_visual -% {\hskip-.01\emwidth -% \vrule -% \s!width .02\emwidth -% \normalexpanded{\math_strut_htdp{\mathstylefont\normalmathstyle}}% -% \relax -% \hskip-.01\emwidth} +%D For the evolution of these struts see the git repositories and older code in +%D \MKIV\ and \MKI\ (commented code removed end April 2022). \let\math_strut_math_style\normalmathstyle @@ -1415,6 +1579,15 @@ \permanent\protected\def\topstrut{\srule\s!width\zeropoint\s!height\strutht \s!depth\zeropoint\relax} \permanent\protected\def\botstrut{\srule\s!width\zeropoint\s!height\zeropoint\s!depth\strutdp \relax} +\newdimen\mathstrutht +\newdimen\mathstrutdp + +\appendtoks + \mathstrutht\strutht + \mathstrutdp\strutdp + % \writestatus{!!!!!!}{\the\mathstrutht,\the\mathstrutdp}% +\to \everymathematics + %D We could have a arg variant \unknown\ but not now. \permanent\protected\def\mathopwithlimits#1#2{\mathop{#1{#2}}\limits} @@ -1431,18 +1604,6 @@ % \let\normalmathop\mathop % already defined -% no longer needed as we no longer switch fonts -% -% \protected\def\mathop -% {\normalmathop -% \bgroup -% % no: \let\rm\mf -% \afterassignment\math_op\let\nexttoken=} -% -% \def\math_op{\ifx\nexttoken\bgroup\else\nexttoken\egroup\fi} - -% this one too: \letvalue{\??mathcodecommand op}\mathop ? - \permanent\protected\def\normalmbox {\normalhbox\bgroup \usemathematicsstyleandcolor\c!textstyle\c!textcolor % new @@ -1507,90 +1668,44 @@ % \Umathcode"2063 = \mathghostcode \zerocount "2063 % \invisiblecomma % \Umathcode"2064 = \mathghostcode \zerocount "2063 % \invisibleplus -% \protected\def\math_mfunction_styled -% {%\begingroup -% \usemathematicscolorparameter\c!functioncolor -% \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}% -% \ifempty\p_functionstyle -% \expandafter\math_mfunction_styled_none -% \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname -% \expandafter\math_mfunction_styled_text -% \else -% \expandafter\math_mfunction_styled_math -% \fi} -% -% \protected\def\math_mfunction_styled_text#1% -% {\expandafter$\expandafter\mathoptext\expandafter{\lastnamedcs#1}$% -% %{\normalexpanded{$\mathoptext{\csname\??alternativestyle\p_functionstyle\endcsname#1}$}% -% }%\endgroup} -% -% \protected\def\math_mfunction_styled_math#1% -% {\p_functionstyle -% #1% -% }%\endgroup} -% -% \protected\def\math_mfunction_styled_none#1% -% {\math_upright -% #1% -% }%\endgroup} -% -% \permanent\protected\def\mfunction#1% -% {\mathatom mathfont class \mathfunctioncode \bgroup -% \math_tags_mfunctiontxt{#1}\c_apply_function -% \hbox{\math_mfunction_styled{#1}}% -% \egroup} -% -% \permanent\protected\def\mfunctionlabeltext#1% -% {\mathatom mathfont class \mathfunctioncode \bgroup -% \math_tags_mfunctionlab{#1}\c_apply_function -% \hbox{\math_mfunction_styled{\mathlabeltext{#1}}}% -% \egroup} - -% \def\math_function_handle#1#2% -% {\begingroup -% \usemathematicscolorparameter\c!functioncolor -% \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}% -% \ifempty\p_functionstyle -% \expandafter\math_upright -% \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname -% \expandafter\lastnamedcs -% \else -% \expandafter\p_functionstyle -% \fi -% \mathatom mathfont class \mathfunctioncode \bgroup -% \math_tags_mfunctionlab{#2}\c_apply_function % maybe move this before mathatom -% #1{#2}% how to avoid going ord, we need something text with no spacing at all -% \egroup -% \endgroup} +%D For previous variants of the function styling you can check the git repository +%D end April 2022. -\protected\def\math_function_handle#1#2% - {\mathatom mathfont class \mathfunctioncode \bgroup % textfont - \math_tags_mfunctionlab{#2}\c_apply_function - \usemathematicscolorparameter\c!functioncolor - \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}% - \ifempty\p_functionstyle - \expandafter\math_upright - \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname - \expandafter\lastnamedcs - \else - \expandafter\p_functionstyle - \fi - #1{#2}% - \egroup} - -\permanent\protected\def\mfunction {\math_function_handle\firstofoneargument} -\permanent\protected\def\mfunctionlabeltext{\math_function_handle\mathlabeltext} - -\permanent\tolerant\protected\def\definemathfunction[#1]#*[#2]% - {\frozen\protected\defcsname#1\endcsname{\math_function_handle_label{#1}{#2}}} - -\protected\def\math_function_handle_label#1#2% tag settings +\protected\def\math_function_handle#1#2#3% {\begingroup - \getdummyparameters[\c!mathlimits=,#2]% - \math_function_handle\mathlabeltext{#1}% - \ifcstok{\dummyparameter\c!mathlimits}\v!yes\limits\fi + \getdummyparameters[\c!mathlimits=,#1]% + \edef\p_limits{\dummyparameter\c!mathlimits}% + \mathatom + mathfont + class \mathfunctioncode + \ifx\p_limits\v!no + nolimits + \orelse\ifx\p_limits\v!yes + limits + \orelse\ifx\p_limits\v!auto + nolimits + limits + \fi + \bgroup % textfont + \math_tags_mfunctionlab{#3}\c_apply_function + \usemathematicscolorparameter\c!functioncolor + \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}% + \ifempty\p_functionstyle + \expandafter\math_upright + \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname + \expandafter\lastnamedcs + \else + \expandafter\p_functionstyle + \fi + #2{#3}% + \egroup \endgroup} +\permanent\tolerant\protected\def\mfunction [#1]{\math_function_handle{#1}\firstofoneargument} +\permanent\tolerant\protected\def\mfunctionlabeltext[#1]{\math_function_handle{#1}\mathlabeltext} + +\permanent\tolerant\protected\def\definemathfunction[#1]#*[#2]% + {\frozen\protected\defcsname#1\endcsname{\math_function_handle{#2}\mathlabeltext{#1}}} \let\math_tags_mfunctiontxt\gobbletwoarguments \let\math_tags_mfunctionlab\gobbletwoarguments @@ -1636,25 +1751,6 @@ \enforced\let\apply\math_tags_apply \to\everymathematics -% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}} -% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}} - -% %D Taco posted this solution as response to a mail by Olivier, so let's integrate -% %D it here. -% -% \def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option -% -% \protected\def\math_function_style_opnolimits #1{\mathop{\mscaledtext{#1}}\nolimits} -% \protected\def\math_function_style_mfunction #1{\mscaledtext{\math_tags_function{#1}}} -% \protected\def\math_function_style_mfunctionlabeltext#1{\mscaledtext{\math_tags_functionlabeltext{#1}}} -% -% \protected\def\setmathfunctionstyle#1% rm ss tt (can be made faster if needed) -% {\doifsomething{#1} -% {\def\currentmscaledstyle{#1}% -% \let\mathopnolimits \math_function_style_opnolimits -% \let\mfunction \math_function_style_mfunction -% \let\mfunctionlabeltext\math_function_style_mfunctionlabeltext}} - \mutable\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option \permanent\protected\def\mscaledtext#1% @@ -1694,8 +1790,8 @@ %D \donknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2} %D \stoptyping %D -%D The result is as expected: the first line typesets ok, while the second -%D one triggers an error message. +%D The result is as expected: the first line typesets ok, while the second one +%D triggers an error message. \setnewconstant\activemathcharcode "8000 @@ -1713,18 +1809,18 @@ \activatemathcharacter\circumflexasciicode \activatemathcharacter\underscoreasciicode -\activatemathcharacter\ampersandasciicode - -\permanent\def\normalmathaligntab{&} % \let\normalmathaligntab\aligntab doesn;t work well in a let to & (a def works ok) +%activatemathcharacter\ampersandasciicode -\appendtoks - \edef\p_ampersand{\mathematicsparameter\s!ampersand}% - \ifx\p_ampersand\v!normal - \enforced\let\specialmathaligntab\normalmathaligntab - \else - \enforced\let\specialmathaligntab\mathampersand - \fi -\to \everysetupmathematics +% \permanent\def\normalmathaligntab{&} +% +% \appendtoks +% \edef\p_ampersand{\mathematicsparameter\s!ampersand}% +% \ifx\p_ampersand\v!normal +% \enforced\let\specialmathaligntab\normalmathaligntab +% \else +% \enforced\let\specialmathaligntab\mathampersand +% \fi +% \to \everysetupmathematics %D A simplified version of this code is: %D @@ -1762,15 +1858,14 @@ %D $A \char"26 B$ %D \stoptyping %D -%D fails with: \type{Misplaced alignment tab character &} and here is the -%D reason. +%D fails with: \type{Misplaced alignment tab character &} and here is the reason. %D -%D When we have a letter or other category a check happens for an active -%D character and when it has one then it gets expanded and fed back into the -%D scanner (sort of). +%D When we have a letter or other category a check happens for an active character +%D and when it has one then it gets expanded and fed back into the scanner (sort +%D of). %D -%D A \type {\char} is also fed back as raw character and again when it's letter -%D of other goes through the same process. +%D A \type {\char} is also fed back as raw character and again when it's letter of +%D other goes through the same process. %D %D This means that we cannot have a definition like: %D @@ -1786,153 +1881,42 @@ %D %D Maybe we need an option to treat chars like chars. -% \activatemathcharacter\primeasciicode - -% not used: -% -% \mathcode\spaceasciicode\activemathcharcode -% -% not used: -% -% \bgroup -% \catcode\underscoreasciicode\activecatcode -% \doglobal\appendtoks -% \mathcode\underscoreasciicode\activemathcharcode -% \let_\activemathunderscore -% \to \everymathematics -% \egroup - -% Here follows some plain legacy: primes. -% -% The \let\prime\math_prime_indeed might become an obsolete as we have \doubleprime -% and \tripleprime and collapsing can nicely handle the script then. -% -% Collapsing to 0x2033 and 0x2034 happens elsewhere. -% -% \switchtobodyfont[modern] -% \switchtobodyfont[cambria] -% \switchtobodyfont[xits] -% \switchtobodyfont[minion] -% \setupbodyfont[dejavu] -% -% \startbuffer -% \def\SampleLine#1{% -% \NC#1 -% \NC\switchtobodyfont[#1]$f^2$ % 1 -% \NC\switchtobodyfont[#1]$f\prime^2$ % 2 -% \NC\switchtobodyfont[#1]$f\prime\prime^2$ % 3 -% \NC\switchtobodyfont[#1]$f\prime\prime\prime^2$ % 4 -% \NC\switchtobodyfont[#1]$f{\prime}^2$ % 5 -% \NC\switchtobodyfont[#1]$f{\prime\prime}^2$ % 6 -% \NC\switchtobodyfont[#1]$f{\prime\prime\prime}^2$ % 7 -% \NC\switchtobodyfont[#1]$f'(x)$ % 8 -% \NC\switchtobodyfont[#1]$f''(x)$ % 9 -% \NC\switchtobodyfont[#1]$f'''(x)$ % 10 -% \NC\NR -% } -% -% \starttabulate[|Tl|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tc|] -% \NC\NC1\NC2\NC3\NC4\NC5\NC6\NC7\NC8\NC9\NC10\NC\NR -% \SampleLine{modern} -% \SampleLine{cambria} -% \SampleLine{xits} -% \SampleLine{minion} -% \stoptabulate -% \stopbuffer -% -% \typebuffer \getbuffer - -% most math fonts have messed up primes, just test this: $\prime^{\prime^{\prime}}$ - -{ \catcode\circumflexasciicode\othercatcode \immutable\glet\othercircumflextoken ^ } -{ \catcode\circumflexasciicode\superscriptcatcode \immutable\glet\superscriptcircumflextoken^ } +%D The commented prime related code (dating from \MKII\ times has been removed in +%D April 2022 but it's in the archives. In \LUAMETATEX\ primes are part of the +%D machinery and additional magic (as in \MKIV) happens elsewhere. There is no +%D need to remember old stuff because \MKII\ times are long gone. \ifdefined \prime \else \Umathchardef\prime "0 "0 "2032 \fi -% \let\math_prime_indeed_normal\prime -% -% \appendtoks -% \let\math_prime_indeed_normal\prime % gets defined later -% \let\mathfontprime\prime % for tracing -% \let\prime\math_prime_indeed % so this is needed -% \to \everydump -% -% \protected\def\math_prime_indeed -% {\iffontchar\textfont\zerocount"FE325\relax -% ^\bgroup -% \expandafter\math_prime_indeed_virtual % virtual mess (using funny signal) -% \else -% % \expandafter\math_prime_indeed_normal % gets collapsed -% \expandafter\math_prime_indeed_crapped % gets collapsed -% \fi} -% -% \def\math_prime_indeed_crapped -% {{^{\math_prime_indeed_normal}}} -% -% % \let\prime\math_prime_indeed -% -% \def\math_prime_indeed_virtual -% {\math_prime_indeed_normal -% \futurelet\nexttoken\math_prime_indeed_choice} -% -% \installcorenamespace{mathprime} -% -% \def\math_prime_indeed_choice -% {\csname\??mathprime -% \ifx '\nexttoken a\else -% \ifx \math_prime_indeed_normal\nexttoken a\else -% \ifx \prime\nexttoken a\else -% \ifx\superscriptcircumflextoken\nexttoken b\else -% \ifx\othercircumflextoken \nexttoken b\else -% c\fi\fi\fi\fi\fi -% \endcsname} -% -% \setvalue{\??mathprime a}#1{\math_prime_indeed_virtual} -% \setvalue{\??mathprime b}#1#2{#2\egroup} -% \setvalue{\??mathprime c}{\egroup} -% -% \let\activemathprime\math_prime_indeed -% -% \bgroup -% -% \catcode\primeasciicode\activecatcode -% -% \global\everymathematics\expandafter{\the\everymathematics\let'\math_prime_indeed} % todo: do this at the lua end -% -% \egroup - -% $\char26$ gives an error because it expands to an active character that -% then becomes an & which is then seen as an alignment character; anyway, -% even when we switch like this the different meaning only happens when -% we're in math mode which can be delayed till we're in a cell +%D We also dropped th eoption to let ampersands be alignment tabs. That has never +%D been a \CONTEXT\ option anyway. \bgroup \catcode\underscoreasciicode\activecatcode \catcode\circumflexasciicode\activecatcode - \catcode\ampersandasciicode \activecatcode + % \catcode\ampersandasciicode \activecatcode \aliased\glet\specialmathaligntab\normalmathaligntab \permanent\protected\gdef\obeymathcatcodes{% \enforced\let _\normalsubscript \enforced\let ^\normalsuperscript - \enforced\def &\specialmathaligntab + % \enforced\def &\specialmathaligntab } \doglobal\appendtoks \enforced\let _\normalsubscript \enforced\let ^\normalsuperscript - \enforced\let &\specialmathaligntab + % \enforced\let &\specialmathaligntab \to \everymathematics - % \permanent\protected\gdef\normalmathampersands - % {\let\specialmathaligntab\mathampersand} - \egroup +%D We keep this, just for the fun of it: + \newtoks\everydonknuthmode \newtoks\everynonknuthmode @@ -2152,20 +2136,6 @@ \defcsname\??mathgreek\v!normal\endcsname{2} \defcsname\??mathgreek\v!italic\endcsname{3} -% \appendtoks -% \edef\p_sygreek{\mathematicsparameter\s!sygreek}% -% \edef\p_lcgreek{\mathematicsparameter\s!lcgreek}% -% \edef\p_ucgreek{\mathematicsparameter\s!ucgreek}% -% \c_math_greek_attribute"% hex digits -% \csname\??mathgreek\ifcsname\??mathgreek\p_sygreek\endcsname\p_sygreek\else\v!none\fi\endcsname -% \csname\??mathgreek\ifcsname\??mathgreek\p_lcgreek\endcsname\p_lcgreek\else\v!none\fi\endcsname -% \csname\??mathgreek\ifcsname\??mathgreek\p_ucgreek\endcsname\p_ucgreek\else\v!none\fi\endcsname -% \relax -% \ifcase\c_math_greek_attribute -% \c_math_greek_attribute\attributeunsetvalue -% \fi -% \to \everyswitchmathematics - \appendtoks \edef\p_sygreek{\mathematicsparameter\s!sygreek}% still needed ? \edef\p_lcgreek{\mathematicsparameter\s!lcgreek}% still needed ? @@ -2234,7 +2204,8 @@ %D Math italics (experiment) %D We need keys but what names to use and because we have hardcoded solution -%D we can stick to numbers. +%D we can stick to numbers. At some point this will change because we can now +%D control in in the engine and goodies per font. \installcorenamespace{mathitalics} @@ -3188,23 +3159,6 @@ \let\m_math_text_choice_face\relax -% if needed we can get rid of the normalize (predo in font code) - -% \def\math_text_choice_font#1#2#% -% {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}% -% \hbox#2\bgroup -% \font_basics_switchtobodyfont\m_math_text_choice_face -% #1% -% \let\next} - -% \def\math_text_choice_word#1#2#% -% {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}% -% \hbox#2\bgroup -% \font_basics_switchtobodyfont\m_math_text_choice_face -% #1% -% \nospacing % \normalnospaces\plusone -% \let\next} - %D We accept a low level box specification so that one can make helpers: %D %D \startbuffer @@ -3283,54 +3237,8 @@ \enforced\let\text\mathtext \to \everymathematics -%D The next code is derived from plain \TEX. The names will change! - \newcount\interdisplaylinepenalty \interdisplaylinepenalty\plushundred -% Actually, not using an if saves one macro so there is no penalty for splitting up -% this macro. -% -% \newif\ifdt@p -% -% \def\displ@y -% {\global\dt@ptrue -% \math_openup\displayopenupvalue % was \openup\jot -% \everycr -% {\noalign -% {\ifdt@p -% \global\dt@pfalse -% \ifdim\prevdepth>-\thousandpoint -% \vskip-\lineskiplimit -% \vskip\normallineskiplimit -% \fi -% \else -% \penalty\interdisplaylinepenalty -% \fi}}} - -\newtoks\mathdisplayaligntweaks - -% this can become an option: - -\let\math_display_align_hack_indeed\relax - -\protected\def\math_display_align_hack % I don't like the global, maybe we should push and pop - {\glet\math_display_align_hack_indeed\math_display_align_hack_remove_skip - \math_openup\displayopenupvalue % was \math_openup\jot - \everycr{\noalign{\math_display_align_hack_indeed}}} - -\def\math_display_align_hack_remove_skip - {\ifdim\prevdepth>-\thousandpoint - \vskip\dimexpr-\lineskiplimit+\normallineskiplimit\relax - \fi - \glet\math_display_align_hack_indeed\math_display_align_hack_insert_penalty} - -\def\math_display_align_hack_insert_penalty - {\penalty\interdisplaylinepenalty} - -\appendtoks - \math_display_align_hack -\to \mathdisplayaligntweaks - %D Text in math: \permanent\protected\def\mathortext diff --git a/tex/context/base/mkxl/math-noa.lmt b/tex/context/base/mkxl/math-noa.lmt index 11621f9bd..d74e212da 100644 --- a/tex/context/base/mkxl/math-noa.lmt +++ b/tex/context/base/mkxl/math-noa.lmt @@ -71,6 +71,7 @@ local trace_domains = false registertracker("math.domains", function(v local trace_families = false registertracker("math.families", function(v) trace_families = v end) local trace_fences = false registertracker("math.fences", function(v) trace_fences = v end) local trace_unstacking = false registertracker("math.unstack", function(v) trace_unstacking = v end) +local trace_snapping = false registertracker("math.snapping", function(v) trace_snapping = v end) local check_coverage = true registerdirective("math.checkcoverage", function(v) check_coverage = v end) @@ -89,6 +90,7 @@ local report_domains = logreporter("mathematics","domains") local report_families = logreporter("mathematics","families") local report_fences = logreporter("mathematics","fences") local report_unstacking = logreporter("mathematics","unstack") +local report_snapping = logreporter("mathematics","snapping") local a_mathrendering = privateattribute("mathrendering") local a_exportstatus = privateattribute("exportstatus") @@ -129,6 +131,7 @@ local getlist = nuts.getlist local getwidth = nuts.getwidth local getheight = nuts.getheight local getdepth = nuts.getdepth +local getwhd = nuts.getwhd local getnucleus = nuts.getnucleus local getsub = nuts.getsub @@ -142,6 +145,9 @@ local setsup = nuts.setsup local setsubpre = nuts.setsubpre local setsuppre = nuts.setsuppre +local getoffsets = nuts.getoffsets +local setoffsets = nuts.setoffsets + local flushnode = nuts.flush local copy_node = nuts.copy local slide_nodes = nuts.slide @@ -169,6 +175,10 @@ local unsetvalue = attributes.unsetvalue local implement = interfaces.implement local v_reset = variables.reset +local v_small = variables.small +local v_medium = variables.medium +local v_big = variables.big +local v_line = variables.line local chardata = characters.data @@ -2173,6 +2183,185 @@ do end + +do + + local traversehlist = nuts.traversers.hlist + + local getshift = nuts.getshift + local setwhd = nuts.setwhd + local setshift = nuts.setshift + + -- normalizer: can become engine feature (native tex loves shifts) + + local function normalize(h) + for n, s in traversehlist, h do + if s > 0 then + local sh = getshift(n) + local ox, oy = getoffsets(n) + if sh ~= 0 then + local w, h, d = getwhd(n) + h = h - sh + d = d + sh + setshift(n) + setwhd(n,w,h > 0 and h or 0,d > 0 and d or 0) + setoffsets(n,ox,oy - sh) + end + end + local l = getlist(l) + if l then + normalize(l) + end + end + end + + function handlers.normalize(h) + return normalize(h) + end + +end + +do + + local traversehlist = nuts.traversers.hlist + + local texgetdimen = tex.getdimen + local texgetglue = tex.getglue + local texgetcount = tex.getcount + + local newrule = nuts.pool.outlinerule + local newkern = nuts.pool.kern + local setcolor = nodes.tracers.colors.set + + local a_mathsnap = attributes.private("mathsnap") + + function handlers.snap(h,_,_,_,_,level) + -- if not level or level == 0 then + if texgetcount("mathnestinglevel") == 1 then + local trace_color + if trace_snapping == "frame" then + trace_color = "darkgray" + elseif type(trace_snapping) == "string" then + trace_color = trace_snapping + else + trace_color = false + end + local ht, dp, dd, hs, ds, hd + for n, s in traversehlist, h do + local step = getattr(n,a_mathsnap) + if step then + local done = false + if not dd then + ht = texgetdimen("mathstrutht") + dp = texgetdimen("mathstrutdp") + hd = ht + dp + -- lineskip can be large in alignments + -- dd = hd / 12 + dd = hd / 6 + if step == 0xFFFF then + hs = dd + ds = dd + else + hs = ht/step + ds = dp/step + end + end + local w, h, d = getwhd(n) + -- snap to line + ::height:: + if h-dd < ht then + if trace_snapping == true then + report_snapping("adapting ht: old %p, new %p, lineskip %p",h,ht,dd) + end + done = true + setheight(n,ht) + goto depth + end + if h > ht then +-- while ht < (h-dd) do + while ht < h do + ht = round(ht + hs) + end + if h ~= ht then + setheight(n,ht) + if trace_snapping == true then + report_snapping("enlarging ht: old %p, new %p, step %p",h,ht,hs) + end + done = true + end + end + ::depth:: + if d-dd < dp then + if trace_snapping == true then + report_snapping("adapting dp: old %p, new %p, lineskip %p",d,dp,dd) + end + setdepth(n,dp) + done = true + goto done + end + if d > dp then +-- while dp < (d-dd) do + while dp < d do + dp = round(dp + ds) + end + if d ~= dp then + setdepth(n,dp) + if trace_snapping == true then + report_snapping("enlarging dp: old %p, new %p, step %p",d,dp,ds) + end + done = true + end + end + ::done:: + if done and trace_color then + -- w, h, d = getwhd(n) + -- local r = newrule(w,h,d,65536) + -- setcolor(r,trace_color) + -- setlink(r,newkern(-w),getlist(n)) + -- setlist(n,r) + + local old = newrule(w,h,d,65536) + setcolor(old,"middlegray") + w, h, d = getwhd(n) + local new = newrule(w,h,d,65536/4) + setcolor(new,trace_color) + setlink(old,newkern(-w),new,newkern(-w),getlist(n)) + local ox, oy = getoffsets(n) + setoffsets(old,-ox,-oy) + setoffsets(new,-ox,-oy) + setlist(n,old) + end + end + end + end + end + + local valid = { + [v_reset] = unsetvalue, + [v_line] = 0xFFFF, + [v_small] = 8, + [v_medium] = 4, + [v_big] = 2, + } + + function mathematics.setsnapping(s) + if not enabled then + enableaction("math", "noads.handlers.snap") + enabled = true + end + texsetattribute(a_mathsnap,valid[s] or unsetvalue) + end + + implement { + name = "setmathsnapping", + public = true, + protected = true, + arguments = "argument", + actions = mathematics.setsnapping, + } + +end + -- experimental do @@ -2387,9 +2576,9 @@ local actions = tasks.actions("math") -- head, style, penalties local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming -function processors.mlisttohlist(head,style,penalties,beginclass,endclass) +function processors.mlisttohlist(head,style,penalties,beginclass,endclass,level) starttiming(noads) - head = actions(head,style,penalties,beginclass,endclass) + head = actions(head,style,penalties,beginclass,endclass,level) stoptiming(noads) return head end diff --git a/tex/context/base/mkxl/math-rad.mklx b/tex/context/base/mkxl/math-rad.mklx index ddd6a0cbb..e527f23ca 100644 --- a/tex/context/base/mkxl/math-rad.mklx +++ b/tex/context/base/mkxl/math-rad.mklx @@ -90,6 +90,8 @@ \setupmathradical [\c!alternative=\v!normal, \c!mpoffset=.25\exheight, + \c!height=\zeropoint, + \c!depth=\zeropoint, \c!strut=\v!height, \c!source=\zerocount] @@ -138,12 +140,31 @@ % style width [options: left middle right] +%D \starttyping +%D \definemathradical[esqrt][sqrt][height=\maxdimen,depth=\maxdimen] +%D \definemathradical[fsqrt][sqrt][height=3ex,depth=2ex] +%D \definemathradical[ssqrt][sqrt][height=-.5pt,depth=-.5pt] +%D +%D \def\TestSqrt#1% +%D {test $ #1{x} + #1{\sin(x)} $ test\par +%D test $ #1{x} + #1{\sin(x)} + #1{\frac{1}{x}} $ test\par +%D test $ #1{x} + #1{x^2} $ test\par +%D test $\left(#1{x} + #1{x^2} \right)$ test\par} +%D +%D \TestSqrt\sqrt \blank % dynamic +%D \TestSqrt\esqrt\blank % equal +%D \TestSqrt\fsqrt\blank % fixed +%D \TestSqrt\ssqrt\blank % squeezed +%D \stoptyping + \def\math_radical_alternative{\csname\??mathradicalalternative\mathradicalparameter\c!alternative\endcsname} \integerdef\c_radical_unicode "221A \protected\def\math_radical_common {\Uroot + \s!height\dimexpr\mathradicalparameter\c!height\relax + \s!depth \dimexpr\mathradicalparameter\c!depth\relax \s!source\numexpr\namedboxanchor{\mathradicalparameter\c!source}\relax \s!style \normalmathstyle \zerocount \c_radical_unicode} diff --git a/tex/context/base/mkxl/math-spa.lmt b/tex/context/base/mkxl/math-spa.lmt index 35684847f..57965c97b 100644 --- a/tex/context/base/mkxl/math-spa.lmt +++ b/tex/context/base/mkxl/math-spa.lmt @@ -18,6 +18,7 @@ local tonode = nodes.tonode local getid = nuts.getid local getnext = nuts.getnext local getwidth = nuts.getwidth +local getdata = nuts.getdata local setglue = nuts.setglue local getdimensions = nuts.dimensions local nextglue = nuts.traversers.glue @@ -33,11 +34,12 @@ local distance = 0 function noads.handlers.align(h) if method ~= v_none then if method == v_auto then + --- can be a fast loop local s = h while s do local id = getid(s) local n = getnext(s) - if id == boundary_code then -- check some type + if id == boundary_code and getdata(s) == 314 then if n and getid(n) == glue_code then s = n n = getnext(s) diff --git a/tex/context/base/mkxl/mlib-lmp.lmt b/tex/context/base/mkxl/mlib-lmp.lmt index 61346bc73..a6d17dd2c 100644 --- a/tex/context/base/mkxl/mlib-lmp.lmt +++ b/tex/context/base/mkxl/mlib-lmp.lmt @@ -408,9 +408,14 @@ end do + local getcount = tex.getcount + local mpprint = mp.print local mpfprint = mp.fprint + local mpscaninteger = mp.scan.integer + local mpscannumber = mp.scan.number + local jobpositions = job.positions local getwhd = jobpositions.whd local getxy = jobpositions.xy @@ -423,6 +428,14 @@ do local getcolumn = jobpositions.column local getmacro = tokens.getters.macro + local columnofpos = jobpositions.columnofpos + local getcolumndata = jobpositions.getcolumndata + -- local overlapping = jobpositions.overlapping + -- local onsamepage = jobpositions.onsamepage + -- local columnofpos = jobpositions.columnofpos + + -- why not inject path directly + registerscript("positionpath", function() local w, h, d = getwhd(scanstring()) if w then @@ -450,6 +463,28 @@ do end end) + registerscript("positioncolumnbox", function() + local column = mpscaninteger() + local data = getcolumndata(getcount("realpageno"),column) + if data then + local x, y, w, h, d = data.x, data.y, data.w, data.h, data.d + mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",x,y-d,x+w,y-d,x+w,y+h,x,y+h) + else + mpprint("(0,0)--cycle") + end + end) + + registerscript("overlaycolumnbox", function() + local column = mpscaninteger() + local data = getcolumndata(getcount("realpageno"),column) + if data then + local w, hd = data.w, data.h + data.d + mpfprint("((0,0)--(%p,0)--(%p,%p)--(0,%p)--cycle)",w,w,hd,hd) + else + mpprint("(0,0)--cycle") + end + end) + registerdirect("positionpage", function() return getpage (scanstring()) or 0 end) registerdirect("positioncolumn", function() return getcolumn (scanstring()) or 0 end) registerdirect("positionparagraph", function() return getparagraph(scanstring()) or 0 end) @@ -460,6 +495,12 @@ do registerdirect("positionx", function() injectpt (getx (scanstring())) end) registerdirect("positiony", function() injectpt (gety (scanstring())) end) + registerdirect("positioncolumnatx", function() + local realpage = mpscaninteger() + local xposition = mpscannumber() + return columnofpos(realpage,xposition) + end) + end do diff --git a/tex/context/base/mkxl/node-ini.lmt b/tex/context/base/mkxl/node-ini.lmt index 75a97408b..25141b8ab 100644 --- a/tex/context/base/mkxl/node-ini.lmt +++ b/tex/context/base/mkxl/node-ini.lmt @@ -236,3 +236,10 @@ nodes.specialskipcodes = { [gluecodes.indentskip] = true, [gluecodes.correctionskip] = true, } + +table.setmetatableindex(listcodes,function(t,k) + -- fully qualified as yet unknown + local v = mathematics.classnames[k - 0x100] or listcodes.unknown + t[k] = v + return v +end) diff --git a/tex/context/base/mkxl/node-tsk.lmt b/tex/context/base/mkxl/node-tsk.lmt index ed6b3e13b..01b485a55 100644 --- a/tex/context/base/mkxl/node-tsk.lmt +++ b/tex/context/base/mkxl/node-tsk.lmt @@ -967,7 +967,7 @@ local tonode = nodes.nuts.tonode %localize% -return function(head,style,penalties,beginclass,endclass) +return function(head,style,penalties,beginclass,endclass,level) local nuthead = tonut(head) %actions% @@ -976,19 +976,19 @@ end ]], step = [[ - nuthead = tonut((%action%(tonode(nuthead),style,penalties,beginclass,endclass))) + nuthead = tonut((%action%(tonode(nuthead),style,penalties,beginclass,endclass,level))) ]], nut = [[ - nuthead = %action%(nuthead,style,penalties,beginclass,endclass) + nuthead = %action%(nuthead,style,penalties,beginclass,endclass,level) ]], nohead = [[ - %action%(tonode(nuthead),style,penalties,beginclass,endclass) + %action%(tonode(nuthead),style,penalties,beginclass,endclass,level) ]], nonut = [[ - %action%(nuthead,style,penalties,beginclass,endclass) + %action%(nuthead,style,penalties,beginclass,endclass,level) ]], } diff --git a/tex/context/base/mkxl/page-lay.mkxl b/tex/context/base/mkxl/page-lay.mkxl index 4527759b3..4c28b4656 100644 --- a/tex/context/base/mkxl/page-lay.mkxl +++ b/tex/context/base/mkxl/page-lay.mkxl @@ -66,6 +66,8 @@ \newdimen\totaltextwidth +\newdimen\textadaptive + %D The next series of dimensions are complemented by left and rights ones. \newdimen\margindistance @@ -651,6 +653,7 @@ \global\topheight \layoutparameter\c!top \global\backspace \layoutparameter\c!backspace \global\topspace \layoutparameter\c!topspace + \global\textadaptive \layoutparameter\c!adaptive \page_layouts_set_dimensions \synchronizegridsnapping \usesetupsparameter\layoutparameter % depends on gridsnapping ! @@ -1434,6 +1437,7 @@ \c!lines=0, \c!paper=, % for foxet \c!page=, % for foxet + \c!adaptive=\zeropoint, % new: experiment \c!columns=\plusone, \c!columndistance=\zeropoint] diff --git a/tex/context/base/mkxl/page-one.mkxl b/tex/context/base/mkxl/page-one.mkxl index c997557ef..c14173223 100644 --- a/tex/context/base/mkxl/page-one.mkxl +++ b/tex/context/base/mkxl/page-one.mkxl @@ -79,6 +79,12 @@ \else \global\vsize\textheight \fi + % + \ifzeropt\textadaptive\else + \global\d_page_adapts_delta\textadaptive + \global\pageextragoal-\textadaptive + \fi + % \global\advance\vsize\d_page_adapts_delta % alternatively we could set it in builders.buildpage_filter % \ifdim\pagegoal<\maxdimen .. \fi diff --git a/tex/context/base/mkxl/page-pcl.mkxl b/tex/context/base/mkxl/page-pcl.mkxl index b9838e771..4585f1fd5 100644 --- a/tex/context/base/mkxl/page-pcl.mkxl +++ b/tex/context/base/mkxl/page-pcl.mkxl @@ -229,6 +229,7 @@ \def\page_col_routine_package_step {% needs packaging anyway + \mofcolumns\recurselevel % added \getboxfromcache{\s!pagecolumn}{\number\recurselevel}\scratchbox \page_lines_add_numbers_to_box\scratchbox\recurselevel\c_page_col_n_of_columns\plusone % new \page_marks_synchronize_column\plusone\c_page_col_n_of_columns\recurselevel\scratchbox @@ -867,8 +868,8 @@ \enforced\let\stoppagecolumns\page_col_stop_nop} \protected\def\page_col_stop_yes - {\column % \page_otr_eject_page - \page + {%\column % \page_otr_eject_page + \page % beware for empty pages \endgroup % \setupoutputroutine[\s!singlecolumn]% \page_otr_command_set_vsize diff --git a/tex/context/base/mkxl/page-pst.mkxl b/tex/context/base/mkxl/page-pst.mkxl index 026c64d62..16f71e0dc 100644 --- a/tex/context/base/mkxl/page-pst.mkxl +++ b/tex/context/base/mkxl/page-pst.mkxl @@ -54,12 +54,12 @@ \mutable\let\currentpostponedpage\empty -\permanent\protected\setvalue{\e!start\v!postponing}% +\permanent\protected\defcsname\e!start\v!postponing\endcsname {\bgroup \obeylines \doifelsenextoptional{\egroup\page_postponed_blocks_start}{\egroup\page_postponed_blocks_start[0]}} -\permanent\protected\setvalue{\e!stop\v!postponing}% +\permanent\protected\defcsname\e!stop\v!postponing\endcsname {\clf_registerpostponedblock{\currentpostponedpage}\relax} \def\page_postponed_blocks_start[#1]% diff --git a/tex/context/base/mkxl/spac-ver.mkxl b/tex/context/base/mkxl/spac-ver.mkxl index 12cf8c687..1db2c8b06 100644 --- a/tex/context/base/mkxl/spac-ver.mkxl +++ b/tex/context/base/mkxl/spac-ver.mkxl @@ -1076,68 +1076,118 @@ \permanent\protected\def\rightboundary {\protrusionboundary\plustwo} \permanent\protected\def\signalcharacter{\boundary\plusone\char\zerocount\boundary\plustwo} % not the same as strut signals -\newsignal\d_spac_struts_signal \setfalse\sigstruts +%D We no longer need these sigstruts: +% +% \newsignal\d_spac_struts_signal \setfalse\sigstruts +% +% \permanent\protected\def\begstrut +% {\relax\ifcase\strutht +% % \ignorespaces % maybe +% \else +% \expandafter\spac_struts_beg +% \fi} +% +% \def\spac_struts_beg +% {\ifconditional\sigstruts +% \spac_struts_beg_signal +% \else +% \spac_struts_beg_normal +% \fi +% \ignorespaces} +% +% \def\spac_struts_beg_signal +% {\noindent\horizontalstrut +% \penalty\plustenthousand +% \hskip-\d_spac_struts_signal +% \hskip\d_spac_struts_signal} +% +% \def\spac_struts_beg_normal +% {\boundary\plusone +% \strut +% %\boundary\plusone +% \penalty\plustenthousand +% %\boundary\plusone +% \hskip\zeropoint} +% +% \permanent\protected\def\endstrut +% {\relax\ifhmode +% \ifcase\strutht +% % \removeunwantedspaces % maybe +% \else +% \spac_struts_end +% \fi +% \fi} +% +% \def\spac_struts_end +% {\ifconditional\sigstruts +% \spac_struts_end_signal +% \else +% \spac_struts_end_normal +% \fi} +% +% \def\spac_struts_end_signal +% {\ifdim\lastskip=\d_spac_struts_signal +% \unskip +% \unskip +% \unpenalty +% \setbox\scratchbox\lastbox +% \else +% \penalty\plustenthousand +% \hskip\zeropoint +% \strut +% \fi} +% +% \def\spac_struts_end_normal +% {\removeunwantedspaces +% \penalty\plustenthousand +% %\boundary\plustwo +% \hskip\zeropoint +% %\boundary\plustwo +% \strut +% \boundary\plustwo} -\permanent\protected\def\begstrut - {\relax\ifcase\strutht - % \ignorespaces % maybe - \else - \spac_struts_beg - \fi} +%D \starttyping +%D $ \ifhmode H1\fi x \ifhmode H2\fi $\par +%D $ \ifmmode M1\fi x \ifmmode M2\fi $\par +%D $$\ifvmode H1\fi x \ifvmode H2\fi$$\par +%D $$\ifvmode M1\fi x \ifvmode M2\fi$$\par +%D \stoptyping -\def\spac_struts_beg - {\ifconditional\sigstruts - \spac_struts_beg_signal +\permanent\protected\def\begstrut + {\ifmmode + \strut \else - \spac_struts_beg_normal + \dontleavehmode + \ifcase\struthtdp\else + \spac_struts_beg + \fi \fi \ignorespaces} -\def\spac_struts_beg_signal - {\noindent\horizontalstrut - \penalty\plustenthousand - \hskip-\d_spac_struts_signal - \hskip\d_spac_struts_signal} - -\def\spac_struts_beg_normal +\def\spac_struts_beg {\boundary\plusone \strut %\boundary\plusone \penalty\plustenthousand %\boundary\plusone - \hskip\zeropoint} + \hskip\zeropoint + \ignorespaces} \permanent\protected\def\endstrut - {\relax\ifhmode - \ifcase\strutht - % \removeunwantedspaces % maybe - \else + {% \ifmmode M\fi + % \ifinner I\fi + \relax\ifhmode + \removeunwantedspaces + \ifcase\struthtdp\else \spac_struts_end \fi - \fi} - -\def\spac_struts_end - {\ifconditional\sigstruts - \spac_struts_end_signal - \else - \spac_struts_end_normal - \fi} - -\def\spac_struts_end_signal - {\ifdim\lastskip=\d_spac_struts_signal - \unskip - \unskip - \unpenalty - \setbox\scratchbox\lastbox - \else - \penalty\plustenthousand - \hskip\zeropoint + \orelse\ifmmode + \removeunwantedspaces \strut \fi} -\def\spac_struts_end_normal - {\removeunwantedspaces - \penalty\plustenthousand +\def\spac_struts_end + {\penalty\plustenthousand %\boundary\plustwo \hskip\zeropoint %\boundary\plustwo diff --git a/tex/context/base/mkxl/strc-mat.mkxl b/tex/context/base/mkxl/strc-mat.mkxl index 28e678e3e..709ef7ac4 100644 --- a/tex/context/base/mkxl/strc-mat.mkxl +++ b/tex/context/base/mkxl/strc-mat.mkxl @@ -32,6 +32,8 @@ %\c!margin=, %\c!align=, %\c!separator=, + \c!snap=\v!no, + \c!snapstep=\v!medium, \c!grid=\v!math, \c!location=\v!right, \c!left=(, @@ -44,7 +46,7 @@ \c!rightmargin=\zeropoint, \c!indentnext=\v!no, \c!alternative=\s!default, - \c!strut=\v!no, + \c!strut=\v!yes, % per 2022-04, was \v!no \c!numberstrut=\v!yes, % \v!no \v!yes \v!always \c!distance=2\emwidth] @@ -889,7 +891,8 @@ {\ifmmode % we can have a more dedicated value, and also maybe store the class so that we can % pick it up at the engine end (second pass) - \boundary\plusone +% \boundary\plusone + \boundary314\relax \fi} \protected\def\strc_math_break_here @@ -1010,6 +1013,13 @@ \strc_formulas_forget_display_skips \the\everybeforedisplayformula \begincsname\??mathtextalign\formulaparameter\c!textalign\endcsname + \ifcstok{\formulaparameter\c!strut}\v!yes + \let\strc_formulas_begstrut\begstrut + \let\strc_formulas_endstrut\endstrut + \else + \let\strc_formulas_begstrut\relax + \let\strc_formulas_endstrut\relax + \fi \csname\e!start\formulaparameter\c!alternative\v!formula\endcsname} \protected\def\strc_formulas_start_formula_nested#1% @@ -1079,6 +1089,9 @@ %D \startformula x \stopformula % now has \noindent (in mkii we messed with baselineskip) %D \stoptyping +\let\strc_formulas_begstrut\relax +\let\strc_formulas_endstrut\relax + \permanent\protected\def\startdisplaymath {\ifhmode \par @@ -1099,10 +1112,14 @@ \else \expandafter\startinnermath \fi + \strc_formulas_begstrut \begingroup} % less interference with upcoming a \over b \permanent\protected\def\stopdisplaymath {\endgroup % less interference with upcoming a \over b + \ifhmode + \strc_formulas_endstrut + \fi \ifcase\c_strc_formulas_mode \Ucheckedstopdisplaymath \or @@ -1360,8 +1377,19 @@ \def\strc_formulas_place_number_indeed {\strc_formulas_place_number_in_box} +% \def\strc_formulas_place_number_in_box +% {\dostarttagged\t!formulacaption\empty +% \global\setbox\b_strc_formulas_number\naturalhbox{\strc_formulas_number_indeed}% +% \dostoptagged} + \def\strc_formulas_place_number_in_box {\dostarttagged\t!formulacaption\empty + % this is really needed, otherwise we get spurious numbers probbaly due to some + % interference with other local variables .. also keep an eye on eqtest in the + % MS tests + \glet\strc_formulas_place_number \relax + \glet\strc_formulas_place_number_nested\gobbletwoarguments + % \global\setbox\b_strc_formulas_number\naturalhbox{\strc_formulas_number_indeed}% \dostoptagged} @@ -1398,6 +1426,20 @@ \permanent\protected\def\setformulalistentry#1% {\gdef\namedformulaentry{#1}} +%D New: +%D +%D \setupformula[snap=yes,snapstep=medium] + +\definesystemattribute[mathsnap][public] + +\appendtoks + \ifcstok{\formulaparameter\c!snap}\v!yes + \setmathsnapping{\formulaparameter\c!snapstep}% + \else + \setmathsnapping\v!reset + \fi +\to \everysetupformula + \protect \endinput % \abovedisplayshortskip0pt \belowdisplayshortskip0pt \abovedisplayskip0pt \belowdisplayskip0pt \forgetall diff --git a/tex/context/base/mkxl/supp-box.mkxl b/tex/context/base/mkxl/supp-box.mkxl index ed4f1da45..21d810671 100644 --- a/tex/context/base/mkxl/supp-box.mkxl +++ b/tex/context/base/mkxl/supp-box.mkxl @@ -174,14 +174,29 @@ \permanent\protected\def\smashedhbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\hbox} \permanent\protected\def\smashedvbox{\vpack\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\vbox} -%D First we define a helper. We use a \LUATEX\ feature in order to avoid -%D mathpalettes. +%D \starttyping +%D \startTEXpage[offset=1dk,width=4em] +%D \dontleavehmode \hbox {0} 0\par +%D \dontleavehmode \vphantom{0} 0\par +%D \dontleavehmode \hphantom{0} 0\par +%D $\textstyle \vphantom{0}$ $\textstyle 0$\par +%D $\scriptstyle \vphantom{0}$ $\scriptstyle 0$\par +%D $\scriptscriptstyle\vphantom{0}$ $\scriptscriptstyle 0$\par +%D \stopTEXpage +%D \stoptyping -\newcount\c_boxes_math_style +% \newcount\c_boxes_math_style +% +% \protected\def\syst_boxes_math_set_nextbox#1% +% {\c_boxes_math_style\normalmathstyle +% \setbox\nextbox\hbox{\normalstartimath\mathsurround\zeropoint\triggermathstyle\c_boxes_math_style{#1}\normalstopimath}} \protected\def\syst_boxes_math_set_nextbox#1% - {\c_boxes_math_style\normalmathstyle - \setbox\nextbox\hbox{\normalstartimath\mathsurround\zeropoint\triggermathstyle\c_boxes_math_style{#1}\normalstopimath}} + {\setbox\nextbox\hbox\expandafter\bgroup + \expandafter\normalstartimath\expandafter\Ustyle\the\mathstackstyle + \mathsurround\zeropoint{#1}% + \normalstopimath + \egroup} %D \macros %D {smash} diff --git a/tex/context/base/mkxl/syst-aux.lmt b/tex/context/base/mkxl/syst-aux.lmt index 2d744e309..39ceae376 100644 --- a/tex/context/base/mkxl/syst-aux.lmt +++ b/tex/context/base/mkxl/syst-aux.lmt @@ -184,20 +184,21 @@ local option = ( local pattern = ( ( spaces * ( - ( P("spaces") * space / catcodes_s ) - + ( P("nospaces") * space / catcodes_n ) - + ( P("global") * space / function() global = true end) - + ( P("protected") * space / function() protected = true end) - + ( P("permanent") * space / function() permanent = true end) - + ( P("expanded") * space / function() expanded = true end) - + ( P("tolerant") * space / function() tolerant = true end) - + ( P("instance") * space / function() instance = true end) - + ( P("frozen") * space / function() frozen = true end) - + ( P("mutable") * space / function() mutable = true end) - + ( P("immutable") * space / function() immutable = true end) - + ( P("unexpanded") * space / function() protected = true end) - + ( option * space / function(s) tolerant = true - optional = s end) + ( P("spaces") * space / catcodes_s ) + + ( P("nospaces") * space / catcodes_n ) + + ( P("global") * space / function() global = true end) + + ( P("protected") * space / function() protected = 1 end) + + ( P("semiprotected") * space / function() protected = 2 end) + + ( P("permanent") * space / function() permanent = true end) + + ( P("expanded") * space / function() expanded = true end) + + ( P("tolerant") * space / function() tolerant = true end) + + ( P("instance") * space / function() instance = true end) + + ( P("frozen") * space / function() frozen = true end) + + ( P("mutable") * space / function() mutable = true end) + + ( P("immutable") * space / function() immutable = true end) + + ( P("unexpanded") * space / function() protected = 1 end) + + ( option * space / function(s) tolerant = true + optional = s end) ) )^0 * spaces * ( C((1-S(" #["))^1) ) @@ -229,7 +230,7 @@ local function texdefinition_two() context ( (tolerant and [[\tolerant]] or "") .. (frozen and [[\frozen]] or "") .. - (protected and [[\protected]] or "") .. + (protected and (protected == 1 and [[\protected]] or [[\semiprotected]]) or "") .. (permanent and [[\permanent]] or "") .. (instance and [[\instance]] or "") .. (mutable and [[\mutable]] or "") .. diff --git a/tex/context/base/mkxl/syst-ini.mkxl b/tex/context/base/mkxl/syst-ini.mkxl index 2bc352cf0..3c327c047 100644 --- a/tex/context/base/mkxl/syst-ini.mkxl +++ b/tex/context/base/mkxl/syst-ini.mkxl @@ -827,8 +827,8 @@ \tracingonline \zerocount} \permanent\protected\def\tracingnone - {\showboxdepth \maxcount % \plusthree - \showboxbreadth \plusten % \plusfive + {\showboxdepth \plusfive % lessboxtracing + \showboxbreadth \plusten \tracingalignments\zerocount \tracingmath \zerocount \tracingassigns \zerocount diff --git a/tex/context/base/mkxl/tabl-ntb.mkxl b/tex/context/base/mkxl/tabl-ntb.mkxl index 67fc39a89..644d156e6 100644 --- a/tex/context/base/mkxl/tabl-ntb.mkxl +++ b/tex/context/base/mkxl/tabl-ntb.mkxl @@ -431,6 +431,7 @@ \newif\ifautoTBLcheckwidth \autoTBLcheckwidthtrue \newif\ifappendTBLsetups \appendTBLsetupstrue \newif\ifenableTBLbreak \enableTBLbreakfalse +\newif\ifforceTBLpageflow \forceTBLpageflowfalse \newif\ifmultipleTBLheads \multipleTBLheadsfalse \newif\iftightTBLrowspan \tightTBLrowspantrue \newif\iftightTBLcolspan \tightTBLcolspanfalse @@ -992,15 +993,17 @@ \relax \enableTBLbreakfalse \multipleTBLheadsfalse + \forceTBLpageflowfalse \autoTBLspreadfalse \tightTBLcolspanfalse \processaction - [\naturaltablelocalparameter\c!split] + [\naturaltablelocalparameter\c!split]% [ \v!yes=>\enableTBLbreaktrue, \v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue, - \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi] + \v!page=>\enableTBLbreaktrue\forceTBLpageflowtrue, + \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi]% \processaction - [\naturaltablelocalparameter\c!header] + [\naturaltablelocalparameter\c!header]% [\v!repeat=>\multipleTBLheadstrue]% \tabl_ntb_preset_parameters \processallactionsinset @@ -1353,18 +1356,15 @@ \protected\def\tabl_ntb_before_page {\ifx\m_tabl_ntb_same_page\v!before % \blank[\v!samepage,\v!strong]% - \unpenalty \nobreak \orelse\ifx\m_tabl_ntb_same_page\v!both % \blank[\v!samepage,\v!strong]% - \unpenalty \nobreak \fi} \protected\def\tabl_ntb_after_page {\ifnum\c_tabl_ntb_row>\c_tabl_ntb_n_of_head_lines \ifnum\tabl_ntb_get_nob\c_tabl_ntb_row=\zerocount - \unpenalty \ifx\m_tabl_ntb_same_page\v!after % \blank[\v!samepage,\v!strong]% \nobreak @@ -1726,18 +1726,29 @@ \box\b_tabl_ntb_final \afterTABLEbox} +\def\tabl_ntb_split_page + {%\postprocessTABLEbox\b_tabl_ntb_final + %\tabl_ntb_anchor_process\b_tabl_ntb_final + \beforeTABLEbox + \registerparoptions % (*) better here (also does a \dontleavehmode) + \ifhmode\else\dontleavehmode\fi + \tabl_ntb_flush_content + \afterTABLEbox} + \def\tabl_ntb_split_yes {\ifinsidesplitfloat - \donetrue - \orelse\ifinsidefloat \donefalse - \else + \orelse\ifinsidefloat \donetrue + \else + \donefalse \fi \ifdone - \expandafter\tabl_ntb_split_box - \else \expandafter\tabl_ntb_split_nop + \orelse\ifforceTBLpageflow + \expandafter\tabl_ntb_split_page + \else + \expandafter\tabl_ntb_split_box \fi} \newbox\TABLEsplitbox % public, don't change diff --git a/tex/context/base/mkxl/task-ini.lmt b/tex/context/base/mkxl/task-ini.lmt index 3b657414a..8a4d492e0 100644 --- a/tex/context/base/mkxl/task-ini.lmt +++ b/tex/context/base/mkxl/task-ini.lmt @@ -121,6 +121,9 @@ appendaction("math", "builders", "typesetters.directions.processmath" appendaction("math", "builders", "noads.handlers.makeup", nil, "nonut", "disabled" ) appendaction("math", "builders", "noads.handlers.align", nil, "nonut", "enabled" ) +appendaction("math", "finalizers", "noads.handlers.normalize", nil, "nonut", "enabled" ) +appendaction("math", "finalizers", "noads.handlers.snap", nil, "nonut", "disabled" ) + appendaction("finalizers", "lists", "nodes.handlers.showhyphenation", nil, "nut", "disabled" ) appendaction("finalizers", "lists", "nodes.handlers.visualizehyphenation", nil, "nut", "disabled" ) diff --git a/tex/context/base/mkxl/typo-krn.lmt b/tex/context/base/mkxl/typo-krn.lmt index bfd50062d..65068d897 100644 --- a/tex/context/base/mkxl/typo-krn.lmt +++ b/tex/context/base/mkxl/typo-krn.lmt @@ -220,22 +220,7 @@ end local function inject_begin(boundary,prev,keeptogether,krn,ok) -- prev is a glyph local char, id = isglyph(boundary) - if id == kern_code then - if getsubtype(boundary) == fontkern_code then - local inject = true - if keeptogether then - local next = getnext(boundary) - if not next or (getid(next) == glyph_code and keeptogether(prev,next)) then - inject = false - end - end - if inject then - -- not yet ok, as injected kerns can be overlays (from node-inj.lua) - setkern(boundary,getkern(boundary) + quaddata[getfont(prev)]*krn,userkern_code) - return boundary, true - end - end - elseif char then + if char then if keeptogether and keeptogether(boundary,prev) then -- keep 'm else @@ -249,29 +234,29 @@ local function inject_begin(boundary,prev,keeptogether,krn,ok) -- prev is a glyp return kern, true end end - end - return boundary, ok -end - -local function inject_end(boundary,next,keeptogether,krn,ok) - local tail = find_node_tail(boundary) - local char, id = isglyph(tail) - if id == kern_code then - if getsubtype(tail) == fontkern_code then + elseif id == kern_code then + if getsubtype(boundary) == fontkern_code then local inject = true if keeptogether then - local prev = getprev(tail) - if getid(prev) == glyph_code and keeptogether(prev,two) then + local next = getnext(boundary) + if not next or (getid(next) == glyph_code and keeptogether(prev,next)) then inject = false end end if inject then -- not yet ok, as injected kerns can be overlays (from node-inj.lua) - setkern(tail,getkern(tail) + quaddata[getfont(next)]*krn,userkern_code) + setkern(boundary,getkern(boundary) + quaddata[getfont(prev)]*krn,userkern_code) return boundary, true end end - elseif char then + end + return boundary, ok +end + +local function inject_end(boundary,next,keeptogether,krn,ok) + local tail = find_node_tail(boundary) + local char, id = isglyph(tail) + if char then if keeptogether and keeptogether(tail,two) then -- keep 'm else @@ -285,6 +270,21 @@ local function inject_end(boundary,next,keeptogether,krn,ok) return boundary, true end end + elseif id == kern_code then + if getsubtype(tail) == fontkern_code then + local inject = true + if keeptogether then + local prev = getprev(tail) + if getid(prev) == glyph_code and keeptogether(prev,two) then + inject = false + end + end + if inject then + -- not yet ok, as injected kerns can be overlays (from node-inj.lua) + setkern(tail,getkern(tail) + quaddata[getfont(next)]*krn,userkern_code) + return boundary, true + end + end end return boundary, ok end diff --git a/tex/context/fonts/mkiv/type-imp-stix.mkiv b/tex/context/fonts/mkiv/type-imp-stix.mkiv index 3104603e1..b76b1d09b 100644 --- a/tex/context/fonts/mkiv/type-imp-stix.mkiv +++ b/tex/context/fonts/mkiv/type-imp-stix.mkiv @@ -33,7 +33,6 @@ \definefontfeature[stixtwomath][copymathscripts=yes] % see lfg file - \starttypescriptcollection[stix] % version one diff --git a/tex/context/interface/mkii/keys-fr.xml b/tex/context/interface/mkii/keys-fr.xml index 0cc90a6a0..213f129ed 100644 --- a/tex/context/interface/mkii/keys-fr.xml +++ b/tex/context/interface/mkii/keys-fr.xml @@ -647,6 +647,7 @@ + @@ -1240,6 +1241,8 @@ + + diff --git a/tex/context/modules/mkiv/s-fonts-charts.mkiv b/tex/context/modules/mkiv/s-fonts-charts.mkiv index 36fec22f0..b7fcc9f9e 100644 --- a/tex/context/modules/mkiv/s-fonts-charts.mkiv +++ b/tex/context/modules/mkiv/s-fonts-charts.mkiv @@ -172,7 +172,10 @@ \starttext - \showfontchart[filename=texgyredejavu-math.otf,page=yes,option=all] +% \showfontchart[filename=texgyredejavu-math.otf,page=yes,option=all] + + \showfontchart[filename=danlan.otf] % ,page=yes,option=all] + \showfontchart[filename=danlan-bold.otf] % ,page=yes,option=all] % \showfontchart[filename=aegean,page=yes] % \showfontchart[filename=veramono.ttf,page=yes] diff --git a/tex/context/modules/mkxl/m-json.mkxl b/tex/context/modules/mkxl/m-json.mkxl index b08286b08..46c2f79a7 100644 --- a/tex/context/modules/mkxl/m-json.mkxl +++ b/tex/context/modules/mkxl/m-json.mkxl @@ -21,6 +21,7 @@ \startluacode local tablestore = utilities.tablestore + local field = tablestore.field interfaces.implement { name = "loadtable", @@ -32,25 +33,60 @@ interfaces.implement { name = "tablefield", - actions = { tablestore.field, context }, + actions = function(namespace,name) + local data = field(namespace,name) + if data then + context(data) + end + end, arguments = "2 arguments", public = true, +protected = true, } interfaces.implement { name = "tablefielddefault", - actions = { tablestore.field, context }, + actions = function(namespace,name,default) + local data = field(namespace,name,default) + if data then + context(data) + end + end, arguments = "3 arguments", public = true, } + local replace = lpeg.replacer("@","%%") + local lpegmatch = lpeg.match + + interfaces.implement { + name = "tableformatted", + actions = function(namespace,name,fmt) + local data = field(namespace,name) + if data then + context(lpegmatch(replace,fmt),data) + end + end, + arguments = "3 arguments", + public = true, + } + + interfaces.implement { + name = "tablelength", + actions = { tablestore.length, context }, + arguments = "2 arguments", + public = true, + } + utilities.json.field = tablestore.field utilities.json.loaded = tablestore.loaded + utilities.json.length = tablestore.length \stopluacode \let\loadjsonfile \loadtable \let\jsonfield \tablefield \let\jsonfielddefault \tablefielddefault +\let\jsonlength \tablelength \stopmodule diff --git a/tex/generic/context/luatex/luatex-core.lua b/tex/generic/context/luatex/luatex-core.lua index 538d8f903..66207339e 100644 --- a/tex/generic/context/luatex/luatex-core.lua +++ b/tex/generic/context/luatex/luatex-core.lua @@ -210,6 +210,13 @@ if saferoption == 1 or shellescape ~= 1 then ffi = nil + -- A patch by LS for LaTeX per April 2022 but I'm, not sure if that breaks ConTeXt MKIV. I have + -- no time nor motivation to test that right now so we'll see where it breaks. We have different + -- loaders anyway and we don't test plain. + + package.loaded .ffi = nil -- Isn't that still nil then? + package.preload.ffi = error -- Do errors always go there? + end if md5 then diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 3c0b95c6d..c98ca8c7c 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 : 2022-04-20 19:15 +-- merge date : 2022-05-02 15:48 do -- begin closure to overcome local limits and interference -- cgit v1.2.3