summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2020-05-18 17:33:44 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2020-05-18 17:33:44 +0200
commitf7049c2619684d6bfe6688d3a669455a6ecb6713 (patch)
treedce9906ecba09f11b73930d696ca9b7973eda887
parentd7b2b626996a97ebb9911c972b920f8eace34d4f (diff)
downloadcontext-f7049c2619684d6bfe6688d3a669455a6ecb6713.tar.gz
2020-05-18 16:49:00
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-tex.lua4
-rw-r--r--context/data/scite/context/scite-context-data-tex.properties199
-rw-r--r--context/data/textadept/context/data/scite-context-data-tex.lua4
-rw-r--r--context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json2
-rw-r--r--doc/context/documents/general/manuals/luametatex.pdfbin1224967 -> 1228379 bytes
-rw-r--r--doc/context/sources/general/manuals/evenmore/evenmore.tex1
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-differences.tex54
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex29
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-math.tex17
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-primitives.tex397
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex-tex.tex7
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/back-pdf.mkiv2
-rw-r--r--tex/context/base/mkiv/buff-ver.mkxl10
-rw-r--r--tex/context/base/mkiv/colo-ini.mkxl26
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkxl2
-rw-r--r--tex/context/base/mkiv/font-emp.mklx2
-rw-r--r--tex/context/base/mkiv/font-fil.mklx14
-rw-r--r--tex/context/base/mkiv/font-ini.mklx16
-rw-r--r--tex/context/base/mkiv/font-sty.mklx4
-rw-r--r--tex/context/base/mkiv/lang-ini.mkxl24
-rw-r--r--tex/context/base/mkiv/lang-lab.mkxl8
-rw-r--r--tex/context/base/mkiv/lpdf-lmt.lua2
-rw-r--r--tex/context/base/mkiv/math-ini.mkxl66
-rw-r--r--tex/context/base/mkiv/meta-ini.mkxl28
-rw-r--r--tex/context/base/mkiv/mult-aux.mkxl113
-rw-r--r--tex/context/base/mkiv/mult-prm.lua9
-rw-r--r--tex/context/base/mkiv/pack-lyr.mkxl7
-rw-r--r--tex/context/base/mkiv/pack-rul.mkxl61
-rw-r--r--tex/context/base/mkiv/page-txt.mklx38
-rw-r--r--tex/context/base/mkiv/spac-hor.mkiv16
-rw-r--r--tex/context/base/mkiv/spac-ver.mkiv2
-rw-r--r--tex/context/base/mkiv/spac-ver.mkxl34
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin27825 -> 27808 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin251926 -> 252066 bytes
-rw-r--r--tex/context/base/mkiv/strc-itm.mklx36
-rw-r--r--tex/context/base/mkiv/supp-box.mkxl4
-rw-r--r--tex/context/base/mkiv/syst-aux.lua103
-rw-r--r--tex/context/base/mkiv/syst-aux.mkxl311
-rw-r--r--tex/context/base/mkiv/tabl-ntb.mkxl14
-rw-r--r--tex/context/base/mkiv/tabl-tbl.mkxl60
-rw-r--r--tex/context/base/mkiv/type-ini.mklx10
-rw-r--r--tex/context/modules/mkiv/m-visual.mkiv6
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
47 files changed, 834 insertions, 918 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
index 2be9b6bdf..05f8f41d2 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-tex.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
@@ -1,9 +1,9 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "readline", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "tracingscantokens", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathparameter", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "aftergrouped", "alignmark", "aligntab", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "beginlocalcontrol", "boundary", "boxattr", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "breakafterdirmode", "catcodetable", "clearmarks", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "directlua", "efcode", "endlocalcontrol", "etoksapp", "etokspre", "exceptionpenalty", "expanded", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fixupboxesmode", "fontid", "formatname", "frozen", "futureexpand", "futureexpandis", "futureexpandisap", "gleaders", "glet", "glyphdatafield", "glyphdimensionsmode", "gtoksapp", "gtokspre", "hjcode", "hpack", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "iffrozen", "ifincsname", "ifnumval", "ifprotected", "iftok", "ifusercmd", "ignorepars", "immediateassigned", "immediateassignment", "initcatcodetable", "insertht", "internalcodesmode", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letfrozen", "letprotected", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "luavaluefunction", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "matholdmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "noboundary", "nohrule", "nokerns", "noligs", "nospaces", "novrule", "outputbox", "pardirection", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "shapemode", "supmarkmode", "textdirection", "toksapp", "tokspre", "tpack", "tracingfonts", "unletfrozen", "unletprotected", "vpack", "wordboundary", "xtoksapp", "xtokspre" },
+ ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "aftergrouped", "alignmark", "aligntab", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "beginlocalcontrol", "boundary", "boxattr", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "breakafterdirmode", "catcodetable", "clearmarks", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "directlua", "efcode", "endlocalcontrol", "etoksapp", "etokspre", "exceptionpenalty", "expanded", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fixupboxesmode", "fontid", "formatname", "frozen", "futureexpand", "futureexpandis", "futureexpandisap", "gleaders", "glet", "glyphdatafield", "glyphdimensionsmode", "gtoksapp", "gtokspre", "hjcode", "hpack", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "iffrozen", "ifincsname", "ifmathparameter", "ifmathstyle", "ifnumval", "ifprotected", "iftok", "ifusercmd", "ignorepars", "immediateassigned", "immediateassignment", "initcatcodetable", "insertht", "internalcodesmode", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letfrozen", "letprotected", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "luavaluefunction", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "matholdmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "noalignmode", "noboundary", "nohrule", "nokerns", "noligs", "nospaces", "novrule", "outputbox", "pardirection", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "shapemode", "supmarkmode", "textdirection", "toksapp", "tokspre", "tpack", "tracingfonts", "unletfrozen", "unletprotected", "vpack", "wordboundary", "xtoksapp", "xtokspre" },
["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" },
["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" },
- ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "closein", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everytab", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "ifeof", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mag", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "openin", "or", "ordlimits", "orelse", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "read", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
+ ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassigned", "afterassignment", "aftergroup", "atendofgroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "closein", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everytab", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "ifeof", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepar", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mag", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "openin", "or", "ordlimits", "orelse", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "read", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
["xetex"]={ "XeTeXversion" },
} \ No newline at end of file
diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties
index 8c4f39107..647ff2be7 100644
--- a/context/data/scite/context/scite-context-data-tex.properties
+++ b/context/data/scite/context/scite-context-data-tex.properties
@@ -35,22 +35,22 @@ Umathopenrelspacing Umathoperatorsize Umathopinnerspacing Umathopopenspacing Uma
Umathopordspacing Umathoppunctspacing Umathoprelspacing Umathordbinspacing Umathordclosespacing \
Umathordinnerspacing Umathordopenspacing Umathordopspacing Umathordordspacing Umathordpunctspacing \
Umathordrelspacing Umathoverbarkern Umathoverbarrule Umathoverbarvgap Umathoverdelimiterbgap \
-Umathoverdelimitervgap Umathparameter Umathpunctbinspacing Umathpunctclosespacing Umathpunctinnerspacing \
-Umathpunctopenspacing Umathpunctopspacing Umathpunctordspacing Umathpunctpunctspacing Umathpunctrelspacing \
-Umathquad Umathradicaldegreeafter Umathradicaldegreebefore Umathradicaldegreeraise Umathradicalkern \
-Umathradicalrule Umathradicalvgap Umathrelbinspacing Umathrelclosespacing Umathrelinnerspacing \
-Umathrelopenspacing Umathrelopspacing Umathrelordspacing Umathrelpunctspacing Umathrelrelspacing \
-Umathskewedfractionhgap Umathskewedfractionvgap Umathspaceafterscript Umathspacebeforescript Umathspacingmode \
-Umathstackdenomdown Umathstacknumup Umathstackvgap Umathsubshiftdown Umathsubshiftdrop \
-Umathsubsupshiftdown Umathsubsupvgap Umathsubtopmax Umathsupbottommin Umathsupshiftdrop \
-Umathsupshiftup Umathsupsubbottommax Umathunderbarkern Umathunderbarrule Umathunderbarvgap \
-Umathunderdelimiterbgap Umathunderdelimitervgap Umiddle Unosubprescript Unosubscript \
-Unosuperprescript Unosuperscript Uover Uoverdelimiter Uoverwithdelims \
-Uradical Uright Uroot Uskewed Uskewedwithdelims \
-Ustack Ustartdisplaymath Ustartmath Ustopdisplaymath Ustopmath \
-Ustyle Usubprescript Usubscript Usuperprescript Usuperscript \
-Uunderdelimiter Uvextensible adjustspacing adjustspacingshrink adjustspacingstep \
-adjustspacingstretch aftergrouped alignmark aligntab attribute \
+Umathoverdelimitervgap Umathpunctbinspacing Umathpunctclosespacing Umathpunctinnerspacing Umathpunctopenspacing \
+Umathpunctopspacing Umathpunctordspacing Umathpunctpunctspacing Umathpunctrelspacing Umathquad \
+Umathradicaldegreeafter Umathradicaldegreebefore Umathradicaldegreeraise Umathradicalkern Umathradicalrule \
+Umathradicalvgap Umathrelbinspacing Umathrelclosespacing Umathrelinnerspacing Umathrelopenspacing \
+Umathrelopspacing Umathrelordspacing Umathrelpunctspacing Umathrelrelspacing Umathskewedfractionhgap \
+Umathskewedfractionvgap Umathspaceafterscript Umathspacebeforescript Umathspacingmode Umathstackdenomdown \
+Umathstacknumup Umathstackvgap Umathsubshiftdown Umathsubshiftdrop Umathsubsupshiftdown \
+Umathsubsupvgap Umathsubtopmax Umathsupbottommin Umathsupshiftdrop Umathsupshiftup \
+Umathsupsubbottommax Umathunderbarkern Umathunderbarrule Umathunderbarvgap Umathunderdelimiterbgap \
+Umathunderdelimitervgap Umiddle Unosubprescript Unosubscript Unosuperprescript \
+Unosuperscript Uover Uoverdelimiter Uoverwithdelims Uradical \
+Uright Uroot Uskewed Uskewedwithdelims Ustack \
+Ustartdisplaymath Ustartmath Ustopdisplaymath Ustopmath Ustyle \
+Usubprescript Usubscript Usuperprescript Usuperscript Uunderdelimiter \
+Uvextensible adjustspacing adjustspacingshrink adjustspacingstep adjustspacingstretch \
+aftergrouped alignmark aligntab atendofgrouped attribute \
attributedef automaticdiscretionary automatichyphenmode automatichyphenpenalty begincsname \
beginlocalcontrol boundary boxattr boxdirection boxorientation \
boxtotal boxxmove boxxoffset boxymove boxyoffset \
@@ -63,25 +63,26 @@ futureexpandisap gleaders glet glyphdatafield glyphdimensionsmode \
gtoksapp gtokspre hjcode hpack hyphenationbounds \
hyphenationmin hyphenpenaltymode ifabsdim ifabsnum ifboolean \
ifchkdim ifchknum ifcmpdim ifcmpnum ifcondition \
-ifcstok ifdimval iffrozen ifincsname ifnumval \
-ifprotected iftok ifusercmd ignorepars immediateassigned \
-immediateassignment initcatcodetable insertht internalcodesmode lastnamedcs \
-lastnodesubtype leftmarginkern letcharcode letfrozen letprotected \
-linedirection localbrokenpenalty localinterlinepenalty localleftbox localrightbox \
-lpcode luabytecode luabytecodecall luacopyinputnodes luadef \
-luaescapestring luafunction luafunctioncall luatexbanner luatexrevision \
-luatexversion luavaluefunction mathdelimitersmode mathdirection mathdisplayskipmode \
-matheqnogapstep mathflattenmode mathitalicsmode mathnolimitsmode matholdmode \
-mathpenaltiesmode mathrulesfam mathrulesmode mathrulethicknessmode mathscriptboxmode \
-mathscriptcharmode mathscriptsmode mathstyle mathsurroundmode mathsurroundskip \
-noboundary nohrule nokerns noligs nospaces \
-novrule outputbox pardirection postexhyphenchar posthyphenchar \
-prebinoppenalty predisplaygapfactor preexhyphenchar prehyphenchar prerelpenalty \
-protrudechars protrusionboundary pxdimen quitvmode rightmarginkern \
-rpcode savecatcodetable scantextokens setfontid shapemode \
-supmarkmode textdirection toksapp tokspre tpack \
-tracingfonts unletfrozen unletprotected vpack wordboundary \
-xtoksapp xtokspre
+ifcstok ifdimval ifempty iffrozen ifincsname \
+ifmathparameter ifmathstyle ifnumval ifprotected iftok \
+ifusercmd ignorepars immediateassigned immediateassignment initcatcodetable \
+insertht internalcodesmode lastnamedcs lastnodesubtype leftmarginkern \
+letcharcode letfrozen letprotected linedirection localbrokenpenalty \
+localinterlinepenalty localleftbox localrightbox lpcode luabytecode \
+luabytecodecall luacopyinputnodes luadef luaescapestring luafunction \
+luafunctioncall luatexbanner luatexrevision luatexversion luavaluefunction \
+mathdelimitersmode mathdirection mathdisplayskipmode matheqnogapstep mathflattenmode \
+mathitalicsmode mathnolimitsmode matholdmode mathpenaltiesmode mathrulesfam \
+mathrulesmode mathrulethicknessmode mathscriptboxmode mathscriptcharmode mathscriptsmode \
+mathstyle mathsurroundmode mathsurroundskip noalignmode noboundary \
+nohrule nokerns noligs nospaces novrule \
+outputbox pardirection postexhyphenchar posthyphenchar prebinoppenalty \
+predisplaygapfactor preexhyphenchar prehyphenchar prerelpenalty protrudechars \
+protrusionboundary pxdimen quitvmode rightmarginkern rpcode \
+savecatcodetable scantextokens setfontid shapemode supmarkmode \
+textdirection toksapp tokspre tpack tracingfonts \
+unletfrozen unletprotected vpack wordboundary xtoksapp \
+xtokspre
keywordclass.tex.omega=\
Omegaminorversion Omegarevision Omegaversion
@@ -114,70 +115,70 @@ pdfxformname pdfxformresources pdfximage
keywordclass.tex.tex=\
- / above \
abovedisplayshortskip abovedisplayskip abovewithdelims accent adjdemerits \
-advance afterassignment aftergroup atop atopwithdelims \
-badness baselineskip batchmode begingroup belowdisplayshortskip \
-belowdisplayskip binoppenalty botmark box boxmaxdepth \
-brokenpenalty catcode char chardef cleaders \
-closein clubpenalty copy count countdef \
-cr crcr csname day deadcycles \
-def defaulthyphenchar defaultskewchar delcode delimiter \
-delimiterfactor delimitershortfall dimen dimendef discretionary \
-displayindent displaylimits displaystyle displaywidowpenalty displaywidth \
-divide doublehyphendemerits dp dump edef \
-else emergencystretch end endcsname endgroup \
-endinput endlinechar eqno errhelp errmessage \
-errorcontextlines errorstopmode escapechar everycr everydisplay \
-everyhbox everyjob everymath everypar everytab \
-everyvbox exhyphenchar exhyphenpenalty expandafter fam \
-fi finalhyphendemerits firstmark floatingpenalty font \
-fontdimen fontname futurelet gdef global \
-globaldefs halign hangafter hangindent hbadness \
-hbox hfil hfill hfilneg hfuzz \
-hoffset holdinginserts hrule hsize hskip \
-hss ht hyphenation hyphenchar hyphenpenalty \
-if ifcase ifcat ifdim ifeof \
-iffalse ifhbox ifhmode ifinner ifmmode \
-ifnum ifodd iftrue ifvbox ifvmode \
-ifvoid ifx ignorespaces indent input \
-inputlineno insert insertpenalties interlinepenalty jobname \
-kern language lastbox lastkern lastpenalty \
-lastskip lccode leaders left lefthyphenmin \
-leftskip leqno let limits linepenalty \
-lineskip lineskiplimit long looseness lower \
-lowercase mag mark mathaccent mathbin \
-mathchar mathchardef mathchoice mathclose mathcode \
-mathinner mathop mathopen mathord mathpunct \
-mathrel mathsurround maxdeadcycles maxdepth meaning \
-medmuskip message middle mkern month \
-moveleft moveright mskip multiply muskip \
-muskipdef newlinechar noalign noexpand noindent \
-nolimits nonscript nonstopmode nulldelimiterspace nullfont \
-number omit openin or ordlimits \
-orelse outer output outputpenalty over \
-overfullrule overline overwithdelims pagedepth pagefilllstretch \
-pagefillstretch pagefilstretch pagegoal pageshrink pagestretch \
-pagetotal par parfillskip parindent parshape \
-parskip patterns pausing penalty postdisplaypenalty \
-predisplaypenalty predisplaysize pretolerance prevdepth prevgraf \
-radical raise read relax relpenalty \
-right righthyphenmin rightskip romannumeral scriptfont \
-scriptscriptfont scriptscriptstyle scriptspace scriptstyle scrollmode \
-setbox setlanguage sfcode shipout show \
-showbox showboxbreadth showboxdepth showlists shownodedetails \
-showthe skewchar skip skipdef spacefactor \
-spaceskip span splitbotmark splitfirstmark splitmaxdepth \
-splittopskip string tabskip textfont textstyle \
-the thickmuskip thinmuskip time toks \
-toksdef tolerance topmark topskip tracingcommands \
-tracinglostchars tracingmacros tracingonline tracingoutput tracingpages \
-tracingparagraphs tracingrestores tracingstats uccode uchyph \
-underline unhbox unhcopy unkern unpenalty \
-unskip unvbox unvcopy uppercase vadjust \
-valign vbadness vbox vcenter vfil \
-vfill vfilneg vfuzz voffset vrule \
-vsize vskip vsplit vss vtop \
-wd widowpenalty xdef xleaders xspaceskip \
-year
+advance afterassigned afterassignment aftergroup atendofgroup \
+atop atopwithdelims badness baselineskip batchmode \
+begingroup belowdisplayshortskip belowdisplayskip binoppenalty botmark \
+box boxmaxdepth brokenpenalty catcode char \
+chardef cleaders closein clubpenalty copy \
+count countdef cr crcr csname \
+day deadcycles def defaulthyphenchar defaultskewchar \
+delcode delimiter delimiterfactor delimitershortfall dimen \
+dimendef discretionary displayindent displaylimits displaystyle \
+displaywidowpenalty displaywidth divide doublehyphendemerits dp \
+dump edef else emergencystretch end \
+endcsname endgroup endinput endlinechar eqno \
+errhelp errmessage errorcontextlines errorstopmode escapechar \
+everycr everydisplay everyhbox everyjob everymath \
+everypar everytab everyvbox exhyphenchar exhyphenpenalty \
+expandafter fam fi finalhyphendemerits firstmark \
+floatingpenalty font fontdimen fontname futurelet \
+gdef global globaldefs halign hangafter \
+hangindent hbadness hbox hfil hfill \
+hfilneg hfuzz hoffset holdinginserts hrule \
+hsize hskip hss ht hyphenation \
+hyphenchar hyphenpenalty if ifcase ifcat \
+ifdim ifeof iffalse ifhbox ifhmode \
+ifinner ifmmode ifnum ifodd iftrue \
+ifvbox ifvmode ifvoid ifx ignorespaces \
+indent input inputlineno insert insertpenalties \
+interlinepenalty jobname kern language lastbox \
+lastkern lastpenalty lastskip lccode leaders \
+left lefthyphenmin leftskip leqno let \
+limits linepar linepenalty lineskip lineskiplimit \
+long looseness lower lowercase mag \
+mark mathaccent mathbin mathchar mathchardef \
+mathchoice mathclose mathcode mathinner mathop \
+mathopen mathord mathpunct mathrel mathsurround \
+maxdeadcycles maxdepth meaning medmuskip message \
+middle mkern month moveleft moveright \
+mskip multiply muskip muskipdef newlinechar \
+noalign noexpand noindent nolimits nonscript \
+nonstopmode nulldelimiterspace nullfont number omit \
+openin or ordlimits orelse outer \
+output outputpenalty over overfullrule overline \
+overwithdelims pagedepth pagefilllstretch pagefillstretch pagefilstretch \
+pagegoal pageshrink pagestretch pagetotal par \
+parfillskip parindent parshape parskip patterns \
+pausing penalty postdisplaypenalty predisplaypenalty predisplaysize \
+pretolerance prevdepth prevgraf radical raise \
+read relax relpenalty right righthyphenmin \
+rightskip romannumeral scriptfont scriptscriptfont scriptscriptstyle \
+scriptspace scriptstyle scrollmode setbox setlanguage \
+sfcode shipout show showbox showboxbreadth \
+showboxdepth showlists shownodedetails showthe skewchar \
+skip skipdef spacefactor spaceskip span \
+splitbotmark splitfirstmark splitmaxdepth splittopskip string \
+tabskip textfont textstyle the thickmuskip \
+thinmuskip time toks toksdef tolerance \
+topmark topskip tracingcommands tracinglostchars tracingmacros \
+tracingonline tracingoutput tracingpages tracingparagraphs tracingrestores \
+tracingstats uccode uchyph underline unhbox \
+unhcopy unkern unpenalty unskip unvbox \
+unvcopy uppercase vadjust valign vbadness \
+vbox vcenter vfil vfill vfilneg \
+vfuzz voffset vrule vsize vskip \
+vsplit vss vtop wd widowpenalty \
+xdef xleaders xspaceskip year
keywordclass.tex.xetex=\
XeTeXversion
diff --git a/context/data/textadept/context/data/scite-context-data-tex.lua b/context/data/textadept/context/data/scite-context-data-tex.lua
index 2be9b6bdf..05f8f41d2 100644
--- a/context/data/textadept/context/data/scite-context-data-tex.lua
+++ b/context/data/textadept/context/data/scite-context-data-tex.lua
@@ -1,9 +1,9 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "readline", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "tracingscantokens", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathparameter", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "aftergrouped", "alignmark", "aligntab", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "beginlocalcontrol", "boundary", "boxattr", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "breakafterdirmode", "catcodetable", "clearmarks", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "directlua", "efcode", "endlocalcontrol", "etoksapp", "etokspre", "exceptionpenalty", "expanded", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fixupboxesmode", "fontid", "formatname", "frozen", "futureexpand", "futureexpandis", "futureexpandisap", "gleaders", "glet", "glyphdatafield", "glyphdimensionsmode", "gtoksapp", "gtokspre", "hjcode", "hpack", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "iffrozen", "ifincsname", "ifnumval", "ifprotected", "iftok", "ifusercmd", "ignorepars", "immediateassigned", "immediateassignment", "initcatcodetable", "insertht", "internalcodesmode", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letfrozen", "letprotected", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "luavaluefunction", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "matholdmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "noboundary", "nohrule", "nokerns", "noligs", "nospaces", "novrule", "outputbox", "pardirection", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "shapemode", "supmarkmode", "textdirection", "toksapp", "tokspre", "tpack", "tracingfonts", "unletfrozen", "unletprotected", "vpack", "wordboundary", "xtoksapp", "xtokspre" },
+ ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "aftergrouped", "alignmark", "aligntab", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenmode", "automatichyphenpenalty", "begincsname", "beginlocalcontrol", "boundary", "boxattr", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "breakafterdirmode", "catcodetable", "clearmarks", "compoundhyphenmode", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "directlua", "efcode", "endlocalcontrol", "etoksapp", "etokspre", "exceptionpenalty", "expanded", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "fixupboxesmode", "fontid", "formatname", "frozen", "futureexpand", "futureexpandis", "futureexpandisap", "gleaders", "glet", "glyphdatafield", "glyphdimensionsmode", "gtoksapp", "gtokspre", "hjcode", "hpack", "hyphenationbounds", "hyphenationmin", "hyphenpenaltymode", "ifabsdim", "ifabsnum", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimval", "ifempty", "iffrozen", "ifincsname", "ifmathparameter", "ifmathstyle", "ifnumval", "ifprotected", "iftok", "ifusercmd", "ignorepars", "immediateassigned", "immediateassignment", "initcatcodetable", "insertht", "internalcodesmode", "lastnamedcs", "lastnodesubtype", "leftmarginkern", "letcharcode", "letfrozen", "letprotected", "linedirection", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "luavaluefunction", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathitalicsmode", "mathnolimitsmode", "matholdmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "noalignmode", "noboundary", "nohrule", "nokerns", "noligs", "nospaces", "novrule", "outputbox", "pardirection", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "setfontid", "shapemode", "supmarkmode", "textdirection", "toksapp", "tokspre", "tpack", "tracingfonts", "unletfrozen", "unletprotected", "vpack", "wordboundary", "xtoksapp", "xtokspre" },
["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" },
["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" },
- ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "closein", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everytab", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "ifeof", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mag", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "openin", "or", "ordlimits", "orelse", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "read", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
+ ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassigned", "afterassignment", "aftergroup", "atendofgroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "closein", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everytab", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "ifeof", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepar", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mag", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "openin", "or", "ordlimits", "orelse", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "read", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
["xetex"]={ "XeTeXversion" },
} \ No newline at end of file
diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
index 3a55da414..6f7ec9b08 100644
--- a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
+++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
@@ -215,7 +215,7 @@
]
},
"primitive" : {
- "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdef|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|voffset|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvcopy|unvbox|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhcopy|unhbox|underline|uchyph|uccode|tracingstats|tracingscantokens|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmacros|tracinglostchars|tracingifs|tracinggroups|tracingfonts|tracingcommands|tracingassigns|tpack|topskip|topmarks|topmark|tolerance|tokspre|toksdef|toksapp|toks|time|thinmuskip|thickmuskip|the|textstyle|textfont|textdirection|tabskip|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapemode|sfcode|setlanguage|setfontid|setbox|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|relpenalty|relax|readline|read|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|par|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|overwithdelims|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orelse|ordlimits|or|openin|omit|numexpr|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdef|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvoffset|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvcopy|normalunvbox|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normaluchyph|normaluccode|normaltracingstats|normaltracingscantokens|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmacros|normaltracinglostchars|normaltracingifs|normaltracinggroups|normaltracingfonts|normaltracingcommands|normaltracingassigns|normaltpack|normaltopskip|normaltopmarks|normaltopmark|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltime|normalthinmuskip|normalthickmuskip|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapemode|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalrelpenalty|normalrelax|normalreadline|normalread|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalpardirection|normalpar|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normaloverwithdelims|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorelse|normalordlimits|normalor|normalopenin|normalomit|normalnumexpr|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnonstopmode|normalnonscript|normalnolimits|normalnoligs|normalnokerns|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoalign|normalnewlinechar|normalmutoglue|normalmuskipdef|normalmuskip|normalmultiply|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmatholdmode|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalmag|normalluavaluefunction|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightbox|normallocalleftbox|normallocalinterlinepenalty|normallocalbrokenpenalty|normallinepenalty|normallinedirection|normallimits|normalletprotected|normalletfrozen|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastbox|normallanguage|normalkern|normaljobname|normalinternalcodesmode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalinsertpenalties|normalinsertht|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmediateassignment|normalimmediateassigned|normalignorespaces|normalignorepars|normalifx|normalifvoid|normalifvmode|normalifvbox|normalifusercmd|normaliftrue|normaliftok|normalifprotected|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifodd|normalifnumval|normalifnum|normalifmmode|normalifinner|normalifincsname|normalifhmode|normalifhbox|normaliffrozen|normaliffontchar|normaliffalse|normalifeof|normalifdimval|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifabsnum|normalifabsdim|normalif|normalhyphenpenaltymode|normalhyphenpenalty|normalhyphenchar|normalhyphenationmin|normalhyphenationbounds|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhoffset|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphdimensionsmode|normalglyphdatafield|normalgluetomu|normalgluestretchorder|normalgluestretch|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglet|normalgleaders|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfrozen|normalformatname|normalfontname|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalfloatingpenalty|normalfixupboxesmode|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpanded|normalexpandafter|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpr|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalcompoundhyphenmode|normalclubpenalty|normalclubpenalties|normalclosein|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalbreakafterdirmode|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxorientation|normalboxmaxdepth|normalboxdirection|normalboxattr|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbadness|normalautomatichyphenpenalty|normalautomatichyphenmode|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalaligntab|normalalignmark|normalaftergrouped|normalaftergroup|normalafterassignment|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathunderdelimitervgap|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathstackvgap|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathparameter|normalUmathoverdelimitervgap|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |nonstopmode|nonscript|nolimits|noligs|nokerns|noindent|nohrule|noexpand|noboundary|noalign|newlinechar|mutoglue|muskipdef|muskip|multiply|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|matholdmode|mathnolimitsmode|mathitalicsmode|mathinner|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|mag|luavaluefunction|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightbox|localleftbox|localinterlinepenalty|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|limits|letprotected|letfrozen|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastbox|language|kern|jobname|internalcodesmode|interlinepenalty|interlinepenalties|interactionmode|insertpenalties|insertht|insert|inputlineno|input|initcatcodetable|indent|immediateassignment|immediateassigned|ignorespaces|ignorepars|ifx|ifvoid|ifvmode|ifvbox|ifusercmd|iftrue|iftok|ifprotected|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifodd|ifnumval|ifnum|ifmmode|ifinner|ifincsname|ifhmode|ifhbox|iffrozen|iffontchar|iffalse|ifeof|ifdimval|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifabsnum|ifabsdim|if|hyphenpenaltymode|hyphenpenalty|hyphenchar|hyphenationmin|hyphenationbounds|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hoffset|hjcode|hfuzz|hfilneg|hfill|hfil|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphdimensionsmode|glyphdatafield|gluetomu|gluestretchorder|gluestretch|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|gleaders|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|frozen|formatname|fontname|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|floatingpenalty|fixupboxesmode|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandafter|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpr|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|compoundhyphenmode|clubpenalty|clubpenalties|closein|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|breakafterdirmode|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxorientation|boxmaxdepth|boxdirection|boxattr|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|automatichyphenpenalty|automatichyphenmode|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|aligntab|alignmark|aftergrouped|aftergroup|afterassignment|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathunderdelimitervgap|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathstackvgap|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathparameter|Umathoverdelimitervgap|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])",
+ "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdef|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|voffset|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvcopy|unvbox|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhcopy|unhbox|underline|uchyph|uccode|tracingstats|tracingscantokens|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmacros|tracinglostchars|tracingifs|tracinggroups|tracingfonts|tracingcommands|tracingassigns|tpack|topskip|topmarks|topmark|tolerance|tokspre|toksdef|toksapp|toks|time|thinmuskip|thickmuskip|the|textstyle|textfont|textdirection|tabskip|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapemode|sfcode|setlanguage|setfontid|setbox|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|relpenalty|relax|readline|read|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|par|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|overwithdelims|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orelse|ordlimits|or|openin|omit|numexpr|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdef|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvoffset|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvcopy|normalunvbox|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normaluchyph|normaluccode|normaltracingstats|normaltracingscantokens|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmacros|normaltracinglostchars|normaltracingifs|normaltracinggroups|normaltracingfonts|normaltracingcommands|normaltracingassigns|normaltpack|normaltopskip|normaltopmarks|normaltopmark|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltime|normalthinmuskip|normalthickmuskip|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapemode|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalrelpenalty|normalrelax|normalreadline|normalread|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalpardirection|normalpar|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normaloverwithdelims|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorelse|normalordlimits|normalor|normalopenin|normalomit|normalnumexpr|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnonstopmode|normalnonscript|normalnolimits|normalnoligs|normalnokerns|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoalignmode|normalnoalign|normalnewlinechar|normalmutoglue|normalmuskipdef|normalmuskip|normalmultiply|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmatholdmode|normalmathnolimitsmode|normalmathitalicsmode|normalmathinner|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalmag|normalluavaluefunction|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightbox|normallocalleftbox|normallocalinterlinepenalty|normallocalbrokenpenalty|normallinepenalty|normallinepar|normallinedirection|normallimits|normalletprotected|normalletfrozen|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastbox|normallanguage|normalkern|normaljobname|normalinternalcodesmode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalinsertpenalties|normalinsertht|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmediateassignment|normalimmediateassigned|normalignorespaces|normalignorepars|normalifx|normalifvoid|normalifvmode|normalifvbox|normalifusercmd|normaliftrue|normaliftok|normalifprotected|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifodd|normalifnumval|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinner|normalifincsname|normalifhmode|normalifhbox|normaliffrozen|normaliffontchar|normaliffalse|normalifeof|normalifempty|normalifdimval|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifabsnum|normalifabsdim|normalif|normalhyphenpenaltymode|normalhyphenpenalty|normalhyphenchar|normalhyphenationmin|normalhyphenationbounds|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhoffset|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphdimensionsmode|normalglyphdatafield|normalgluetomu|normalgluestretchorder|normalgluestretch|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglet|normalgleaders|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfrozen|normalformatname|normalfontname|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalfloatingpenalty|normalfixupboxesmode|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpanded|normalexpandafter|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpr|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalcompoundhyphenmode|normalclubpenalty|normalclubpenalties|normalclosein|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalbreakafterdirmode|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxorientation|normalboxmaxdepth|normalboxdirection|normalboxattr|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbadness|normalautomatichyphenpenalty|normalautomatichyphenmode|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalaligntab|normalalignmark|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathunderdelimitervgap|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathstackvgap|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathoverdelimitervgap|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |nonstopmode|nonscript|nolimits|noligs|nokerns|noindent|nohrule|noexpand|noboundary|noalignmode|noalign|newlinechar|mutoglue|muskipdef|muskip|multiply|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|matholdmode|mathnolimitsmode|mathitalicsmode|mathinner|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|mag|luavaluefunction|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightbox|localleftbox|localinterlinepenalty|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linepar|linedirection|limits|letprotected|letfrozen|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastbox|language|kern|jobname|internalcodesmode|interlinepenalty|interlinepenalties|interactionmode|insertpenalties|insertht|insert|inputlineno|input|initcatcodetable|indent|immediateassignment|immediateassigned|ignorespaces|ignorepars|ifx|ifvoid|ifvmode|ifvbox|ifusercmd|iftrue|iftok|ifprotected|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifodd|ifnumval|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinner|ifincsname|ifhmode|ifhbox|iffrozen|iffontchar|iffalse|ifeof|ifempty|ifdimval|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifabsnum|ifabsdim|if|hyphenpenaltymode|hyphenpenalty|hyphenchar|hyphenationmin|hyphenationbounds|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hoffset|hjcode|hfuzz|hfilneg|hfill|hfil|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphdimensionsmode|glyphdatafield|gluetomu|gluestretchorder|gluestretch|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|gleaders|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|frozen|formatname|fontname|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|floatingpenalty|fixupboxesmode|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandafter|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpr|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|compoundhyphenmode|clubpenalty|clubpenalties|closein|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|breakafterdirmode|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxorientation|boxmaxdepth|boxdirection|boxattr|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|automatichyphenpenalty|automatichyphenmode|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|aligntab|alignmark|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathunderdelimitervgap|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathstackvgap|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathoverdelimitervgap|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])",
"name" : "context.primitive.commands.primitive.tex"
},
"reserved" : {
diff --git a/doc/context/documents/general/manuals/luametatex.pdf b/doc/context/documents/general/manuals/luametatex.pdf
index 04be79255..38613ffa3 100644
--- a/doc/context/documents/general/manuals/luametatex.pdf
+++ b/doc/context/documents/general/manuals/luametatex.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/evenmore/evenmore.tex b/doc/context/sources/general/manuals/evenmore/evenmore.tex
index e6d046e7f..eaac4b134 100644
--- a/doc/context/sources/general/manuals/evenmore/evenmore.tex
+++ b/doc/context/sources/general/manuals/evenmore/evenmore.tex
@@ -21,6 +21,7 @@
\component evenmore-libraries
\component evenmore-whattex
\component evenmore-numbers
+ % \component evenmore-parameters
\stopbodymatter
\stopdocument
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex b/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex
index 35812b13f..793493f4b 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-differences.tex
@@ -212,6 +212,60 @@ functionality. These are described in following chapters but there might be
hidden treasures in the binary. If you locate them, don't automatically assume
them to stay, some might be part of experiments!
+\startluacode
+
+local luametatex = tex.primitives()
+local luatex = table.load("luatex-primitives.lua")
+
+if not luatex then
+ local tex = "\\starttext \\ctxlua {table.save(tex.jobname .. '.lua',tex.primitives())} \\stoptext"
+
+ io.savedata("luatex-primitives.tex", tex)
+
+ os.execute("context --luatex --once luatex-primitives")
+
+ luatex = table.load("luatex-primitives.lua")
+end
+
+
+if luatex and luametatex then
+
+ luatex = table.tohash(luatex)
+ luametatex = table.tohash(luametatex)
+
+ context.page()
+
+ context("The following primitives are available in \\LUATEX\\ but not in \\LUAMETATEX.")
+ context("Some of these are emulated in \\CONTEXT.")
+
+ context.startcolumns { n = 2 }
+ for k, v in table.sortedhash(luatex) do
+ if not luametatex[k] then
+ context.type(k)
+ context.crlf()
+ end
+ end
+ context.stopcolumns()
+
+
+ context.page()
+
+ context("The following primitives are available in \\LUAMETATEX\\ only.")
+ context("At some point in time some might be added to \\LUATEX.")
+
+ context.startcolumns { n = 2 }
+ for k, v in table.sortedhash(luametatex) do
+ if not luatex[k] then
+ context.type(k)
+ context.crlf()
+ end
+ end
+ context.stopcolumns()
+
+end
+
+\stopluacode
+
\stopchapter
\stopcomponent
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
index d199239b1..73c62fc89 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
@@ -1091,6 +1091,35 @@ or more than zero.
\stopsubsection
+\startsubsection[title={\lpr {ifmathstyle} and \lpr {ifmathparameter}}]
+
+These two are variants on \prm {ifcase} where the first one operates with values
+in ranging from zero (display style) to seven (cramped script script style) and
+the second one can have three values: a parameter is zero, has a value or is
+unset. The \type {\ifmathparameter} primitive takes a proper parameter name and a
+valid style identifier (a primitive identifier or number). The \type
+{\ifmathstyle} primitive is equivalent to \type {\ifcase \mathstyle}.
+
+\stopsubsection
+
+\stopsubsection
+
+\startsubsection[title={\lpr {ifempty}}]
+
+This primitive tests for the following token (control sequence) having no
+content. Assuming that \type {\empty} is indeed empty, the following two are
+equivalent:
+
+\starttyping
+\ifempty\whatever
+\ifx\whatever\empty
+\stoptyping
+
+There is no real performance gain here, it's more one of these extensions that
+lead to less clutter in tracing.
+
+\stopsubsection
+
\startsubsection[title={\lpr {ifboolean}}]
This primitive tests for non|-|zero, so the next variants are similar
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
index aff3209b2..7d5fa0808 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
@@ -752,7 +752,7 @@ front.
\startbuffer
$
- x \Usubscript {-}
+ x \Usubscript {-}
\frozen\Umathsubshiftdown\textstyle 0pt x \Usubscript {0}
{\frozen\Umathsubshiftdown\textstyle 5pt x \Usubscript {5}}
x \Usubscript {0}
@@ -777,16 +777,13 @@ unprocessed math list. The result looks as follows:
\blank \getbuffer \blank
-\subsection{Checking a state with \lpr {Umathparameter}}
+\subsection{Checking a state with \lpr {ifmathparameter}}
-When you adapt math parameters it might make sense to see if they are set at
-all. When a parameter is unset its value has the maximum dimension value and
-you might for instance mistakenly multiply that value to open up things a bit,
-which gives unexpected side effects. For that reason there is a convenient
-checker: \lpr {Umathparameter}. When followed by a valid parameter it expands
-to a state number:
-
-: 0=zero, 1=set, 2=unset (les stracing clutter this way)
+When you adapt math parameters it might make sense to see if they are set at all.
+When a parameter is unset its value has the maximum dimension value and you might
+for instance mistakenly multiply that value to open up things a bit, which gives
+unexpected side effects. For that reason there is a convenient checker: \lpr
+{ifmathparameter}. This test primitive behaves like an \prm {ifcase}, with:
\starttabulate[|c|l|]
\DB value \BC meaning \NC \NR
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-primitives.tex b/doc/context/sources/general/manuals/luametatex/luametatex-primitives.tex
index dea7b08b3..edbf7d32c 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-primitives.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-primitives.tex
@@ -1,396 +1 @@
-% language=uk
-
-\environment luametatex-style
-
-\startcomponent luametatex-primitives
-
-\startchapter[reference=primitives,title={Primitives aka commands}]
-
-\startsection[title=Introduction]
-
-The starting point of \LUATEX\ is \PDFTEX, which itself contains regular \TEX\
-and \ETEX. Because directional support was needed we also took some code from
-\ALEPH\ (\OMEGA). In a later stage the backend specific commands were isolated in
-its own namespace which resulted in a cleaner code base where the backend code no
-longer was interwoven with the normal frontend primitives. We also promoted some
-generic constructs (like box resources and directions) to core functionality.
-
-Some of the \PDFTEX\ support primitives have been around from the start but when
-\LUA\ integration became better and when a token scanner library was added, not
-all of those made sense as primitives. In previous chapters we already mentioned
-what is gone from the core. Deep down some more has changed but not all is
-reflected at the primitive level. Because there is still a considerable amount of
-new primitives, a summary is given below.
-
-\stopsection
-
-\startsection[title=Languages]
-
-\starttabulate[|||p|]
-\NC \type {automatichyphenmode} \NC integer \NC \NC \NR
-\NC \type {automatichyphenpenalty} \NC integer \NC \NC \NR
-\NC \type {hyphenpenaltymode} \NC integer \NC \NC \NR
-\NC \type {compoundhyphenmode} \NC integer \NC \NC \NR
-\NC \type {exceptionpenalty} \NC integer \NC \NC \NR
-\NC \type {explicithyphenpenalty} \NC integer \NC \NC \NR
-\NC \type {hyphenationbounds} \NC integer \NC \NC \NR
-\NC \type {hjcode} \NC charactercode \NC \NC \NR
-\NC \type {hyphenationmin} \NC charactercode \NC \NC \NR
-\NC \type {postexhyphenchar} \NC charactercode \NC \NC \NR
-\NC \type {posthyphenchar} \NC charactercode \NC \NC \NR
-\NC \type {preexhyphenchar} \NC charactercode \NC \NC \NR
-\NC \type {prehyphenchar} \NC charactercode \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Fonts]
-
-\starttabulate[|||p|]
-\NC \type {tracingfonts} \NC integer \NC \NC \NR
-\NC \type {suppressfontnotfounderror} \NC integer \NC \NC \NR
-\NC \type {setfontid} \NC integer \NC \NC \NR
-\NC \type {fontid} \NC font \NC \NC \NR
-\NC \type {efcode} \NC font charactercode \NC \NC \NR
-\NC \type {lpcode} \NC font charactercode \NC \NC \NR
-\NC \type {rpcode} \NC font charactercode \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Math]
-
-\starttabulate[|||p|]
-\NC \type {matholdmode} \NC integer \NC \NC \NR
-\NC \type {mathstyle} \NC integer \NC \NC \NR
-\NC \type {matheqnogapstep} \NC integer \NC \NC \NR
-\NC \type {Uskewed} \NC \NC \NC \NR
-\NC \type {Uskewedwithdelims} \NC \NC \NC \NR
-\NC \type {Ustartdisplaymath} \NC \NC \NC \NR
-\NC \type {Ustartmath} \NC \NC \NC \NR
-\NC \type {Ustopdisplaymath} \NC \NC \NC \NR
-\NC \type {Ustopmath} \NC \NC \NC \NR
-\NC \type {crampeddisplaystyle} \NC \NC \NC \NR
-\NC \type {crampedtextstyle} \NC \NC \NC \NR
-\NC \type {crampedscriptstyle} \NC \NC \NC \NR
-\NC \type {crampedscriptscriptstyle} \NC \NC \NC \NR
-\NC \type {Umathchardef} \NC \NC \NC \NR
-\NC \type {Umathcharnumdef} \NC \NC \NC \NR
-\NC \type {mathdisplayskipmode} \NC integer \NC \NC \NR
-\NC \type {mathscriptsmode} \NC integer \NC \NC \NR
-\NC \type {mathnolimitsmode} \NC integer \NC \NC \NR
-\NC \type {mathitalicsmode} \NC integer \NC \NC \NR
-\NC \type {mathrulesmode} \NC integer \NC \NC \NR
-\NC \type {mathrulesfam} \NC integer \NC \NC \NR
-\NC \type {mathdelimitersmode} \NC integer \NC \NC \NR
-\NC \type {mathflattenmode} \NC integer \NC \NC \NR
-\NC \type {mathpenaltiesmode} \NC integer \NC \NC \NR
-\NC \type {mathrulethicknessmode} \NC integer \NC \NC \NR
-\NC \type {mathscriptboxmode} \NC integer \NC \NC \NR
-\NC \type {mathscriptcharmode} \NC integer \NC \NC \NR
-\NC \type {mathsurroundmode} \NC integer \NC \NC \NR
-\NC \type {nokerns} \NC integer \NC \NC \NR
-\NC \type {noligs} \NC integer \NC \NC \NR
-\NC \type {prebinoppenalty} \NC integer \NC \NC \NR
-\NC \type {predisplaygapfactor} \NC integer \NC \NC \NR
-\NC \type {prerelpenalty} \NC integer \NC \NC \NR
-\NC \type {Usuperscript} \NC command \NC \NC \NR
-\NC \type {Usubscript} \NC command \NC \NC \NR
-\NC \type {Unosuperscript} \NC command \NC \NC \NR
-\NC \type {Unosubscript} \NC command \NC \NC \NR
-\NC \type {Umathcode} \NC \NC \NC \NR
-\NC \type {Umathcodenum} \NC \NC \NC \NR
-\NC \type {Udelcode} \NC \NC \NC \NR
-\NC \type {Udelcodenum} \NC \NC \NC \NR
-\NC \type {Umathaxis} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbininnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinpunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathbinrelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathclosebinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathcloseclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathcloseinnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathcloseopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathcloseopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathcloseordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathclosepunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathcloserelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathconnectoroverlapmin} \NC family dimension \NC \NC \NR
-\NC \type {Umathfractiondelsize} \NC family dimension \NC \NC \NR
-\NC \type {Umathfractiondenomdown} \NC family dimension \NC \NC \NR
-\NC \type {Umathfractiondenomvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathfractionnumup} \NC family dimension \NC \NC \NR
-\NC \type {Umathfractionnumvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathfractionrule} \NC family dimension \NC \NC \NR
-\NC \type {Umathinnerbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinnerclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinnerinnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinneropenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinneropspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinnerordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinnerpunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathinnerrelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathlimitabovebgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathlimitabovekern} \NC family dimension \NC \NC \NR
-\NC \type {Umathlimitabovevgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathlimitbelowbgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathlimitbelowkern} \NC family dimension \NC \NC \NR
-\NC \type {Umathlimitbelowvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathnolimitsubfactor} \NC family dimension \NC \NC \NR
-\NC \type {Umathnolimitsupfactor} \NC family dimension \NC \NC \NR
-\NC \type {Umathopbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopeninnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenpunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopenrelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathoperatorsize} \NC family dimension \NC \NC \NR
-\NC \type {Umathopinnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathopordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathoppunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathoprelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordinnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordpunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathordrelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathoverbarkern} \NC family dimension \NC \NC \NR
-\NC \type {Umathoverbarrule} \NC family dimension \NC \NC \NR
-\NC \type {Umathoverbarvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathoverdelimiterbgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathoverdelimitervgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctinnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctpunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathpunctrelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathquad} \NC family dimension \NC \NC \NR
-\NC \type {Umathradicaldegreeafter} \NC family dimension \NC \NC \NR
-\NC \type {Umathradicaldegreebefore} \NC family dimension \NC \NC \NR
-\NC \type {Umathradicaldegreeraise} \NC family dimension \NC \NC \NR
-\NC \type {Umathradicalkern} \NC family dimension \NC \NC \NR
-\NC \type {Umathradicalrule} \NC family dimension \NC \NC \NR
-\NC \type {Umathradicalvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelbinspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelclosespacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelinnerspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelopenspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelopspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelordspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelpunctspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathrelrelspacing} \NC family dimension \NC \NC \NR
-\NC \type {Umathskewedfractionhgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathskewedfractionvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathspaceafterscript} \NC family dimension \NC \NC \NR
-\NC \type {Umathstackdenomdown} \NC family dimension \NC \NC \NR
-\NC \type {Umathstacknumup} \NC family dimension \NC \NC \NR
-\NC \type {Umathstackvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathsubshiftdown} \NC family dimension \NC \NC \NR
-\NC \type {Umathsubshiftdrop} \NC family dimension \NC \NC \NR
-\NC \type {Umathsubsupshiftdown} \NC family dimension \NC \NC \NR
-\NC \type {Umathsubsupvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathsubtopmax} \NC family dimension \NC \NC \NR
-\NC \type {Umathsupbottommin} \NC family dimension \NC \NC \NR
-\NC \type {Umathsupshiftdrop} \NC family dimension \NC \NC \NR
-\NC \type {Umathsupshiftup} \NC family dimension \NC \NC \NR
-\NC \type {Umathsupsubbottommax} \NC family dimension \NC \NC \NR
-\NC \type {Umathunderbarkern} \NC family dimension \NC \NC \NR
-\NC \type {Umathunderbarrule} \NC family dimension \NC \NC \NR
-\NC \type {Umathunderbarvgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathunderdelimiterbgap} \NC family dimension \NC \NC \NR
-\NC \type {Umathunderdelimitervgap} \NC family dimension \NC \NC \NR
-\NC \type {Udelimiter} \NC \NC \NC \NR
-\NC \type {Umathaccent} \NC \NC \NC \NR
-\NC \type {Umathchar} \NC \NC \NC \NR
-\NC \type {Umathcharnum} \NC \NC \NC \NR
-\NC \type {Ustack} \NC \NC \NC \NR
-\NC \type {Uradical} \NC \NC \NC \NR
-\NC \type {Uroot} \NC \NC \NC \NR
-\NC \type {Uunderdelimiter} \NC \NC \NC \NR
-\NC \type {Uoverdelimiter} \NC \NC \NC \NR
-\NC \type {Udelimiterunder} \NC \NC \NC \NR
-\NC \type {Udelimiterover} \NC \NC \NC \NR
-\NC \type {Uhextensible} \NC \NC \NC \NR
-\NC \type {Uchar} \NC \NC \NC \NR
-\NC \type {Umathcharclass} \NC \NC \NC \NR
-\NC \type {Umathcharfam} \NC \NC \NC \NR
-\NC \type {Umathcharslot} \NC \NC \NC \NR
-\NC \type {Uleft} \NC \NC \NC \NR
-\NC \type {Umiddle} \NC \NC \NC \NR
-\NC \type {Uright} \NC \NC \NC \NR
-\NC \type {Uvextensible} \NC \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Boxes and directions]
-
-\starttabulate[|||p|]
-\NC \type {pardirection} \NC direction \NC \NC \NR
-\NC \type {textdirection} \NC direction \NC \NC \NR
-\NC \type {mathdirection} \NC direction \NC \NC \NR
-\NC \type {linedirection} \NC direction \NC \NC \NR
-\NC \type {breakafterdirmode} \NC integer \NC \NC \NR
-\NC \type {shapemode} \NC integer \NC \NC \NR
-\NC \type {fixupboxesmode} \NC integer \NC \NC \NR
-\NC \type {boxdirection} \NC box direction \NC \NC \NR
-\NC \type {boxorientation} \NC box orientation \NC rotation over 90, 180, 270 degrees \NC \NR
-\NC \type {boxxoffset} \NC box xoffset \NC leaves dimensions untounched \NC \NR
-\NC \type {boxyoffset} \NC box yoffset \NC leaves dimensions untounched \NC \NR
-\NC \type {boxxmove} \NC box xmove \NC offsets that reflect on dimensions \NC \NR
-\NC \type {boxymove} \NC box ymove \NC offsets that reflect on dimensions \NC \NR
-\NC \type {boxtotal} \NC box ht+dp \NC height plus depth (and when assigned halfs) \NC \NR
-\NC \type {boxattr} \NC box attr value \NC (sets) a specific attribute to a value \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Scanning]
-
-\starttabulate[|||p|]
-\NC \type {aftergrouped} \NC text \NC like aftergroup but for given list \NC \NR
-\NC \type {alignmark} \NC \NC equivalent to hash token \NC \NR
-\NC \type {aligntab} \NC \NC equivalent to tab token \NC \NR
-\NC \type {begincsname} \NC command \NC variant of \type {\csname} that ignores undefined commands \NC \NR
-\NC \type {catcodetable} \NC integer \NC switch to catcode table \NC \NR
-\NC \type {csstring} \NC command \NC the command without preceding escape character \NC \NR
-\NC \type {endlocalcontrol} \NC command \NC switches back to the main control loop \NC \NR
-\NC \type {etoksapp} \NC tokenregister text \NC append expanded text to given tokenregister \NC \NR
-\NC \type {etokspre} \NC tokenregister text \NC prepend expanded text to given tokenregister \NC \NR
-\NC \type {expanded} \NC text \NC expands the given text \NC \NR
-\NC \type {frozen} \NN prefix \NC \NC \NR
-\NC \type {futureexpand} \NN token command command \NC expands second ot third token depending on first match \NC \NR
-\NC \type {futureexpandis} \NN token command command \NC as \type {futureexpand} but also skips pars \NC \NR
-\NC \type {futureexpandisap} \NN token command command \NC same as idem but doesn't push back skipped spaces \NC \NR
-\NC \type {gtoksapp} \NC tokenregister text \NC globally append text to given tokenregister \NC \NR
-\NC \type {gtokspre} \NC tokenregister text \NC globally prepend text to given tokenregister \NC \NR
-\NC \type {ifabsdim} \NC dimension <=> dimension \NC test the absolute value of the given dimension \NC \NR
-\NC \type {ifabsnum} \NC integer <=> integer \NC test the absolute value of the given integer \NC \NR
-\NC \type {ifcondition} \NC command \NC assume the next token is a test (so skip as if) \NC \NR
-\NC \type {ifdimen} \NC possibly a dimension \NC acts like an \type {\ifcase} with 1 for valid and 2 for invalid \NC \NR
-\NC \type {ifincsname} \NC command \NC check if we're inside a csname expansion \NC \NR
-\NC \type {ifnumval} \NC \NC \NC \NR
-\NC \type {ifdimval} \NC \NC \NC \NR
-\NC \type {ifchknum} \NC \NC \NC \NR
-\NC \type {ifchkdim} \NC \NC \NC \NR
-\NC \type {ifcmpnum} \NC \NC \NC \NR
-\NC \type {ifcmpdim} \NC \NC \NC \NR
-\NC \type {ifusercmd} \NC command \NC \NC \NR
-\NC \type {ifprotected} \NC command \NC \NC \NR
-\NC \type {iffrozen} \NC command \NC \NC \NR
-\NC \type {iftok} \NC \NC \NC \NR
-\NC \type {ifcstok} \NC \NC \NC \NR
-\NC \type {ifboolean} \NC \NC \NC \NR
-\NC \type {internalcodesmode} \NC integer \NC \NC \NR
-%NC \type {ifprimitive} \NC command \NC check if the given command is a primitive \NC \NR
-\NC \type {immediateassigned} \NC command \NC (todo) expand the following assignment now\NC \NR
-\NC \type {immediateassignment} \NC command \NC (todo) expand the following assignment now\NC \NR
-\NC \type {initcatcodetable} \NC integer \NC initialize catcode table \NC \NR
-\NC \type {lastnamedcs} \NC command \NC last found command of \type {\ifcsname} construction \NC \NR
-\NC \type {nospaces} \NC integer \NC don't inject spaces \NC \NR
-%NC \type {primitive} \NC command \NC expands the next primitive equivalent \NC \NR
-\NC \type {orelse} \NC condition \NC \NC \NR
-\NC \type {pxdimen} \NC dimension \NC multiplier for the \type {px} unit \NC \NR
-\NC \type {savecatcodetable} \NC integer \NC save catcode table \NC \NR
-\NC \type {scantextokens} \NC text \NC \type {\scantokens} without file side effects \NC \NR
-\NC \type {suppressifcsnameerror} \NC integer \NC recover from issues in csname testing \NC \NR
-\NC \type {suppresslongerror} \NC integer \NC make \type {\long} a nop \NC \NR
-\NC \type {suppressmathparerror} \NC integer \NC accepts \type {\par} and empty lines in math \NC \NR
-\NC \type {suppressoutererror} \NC integer \NC make \type {\outer} a nop \NC \NR
-\NC \type {suppressprimitiveerror} \NC integer \NC don't report an invalid \type {\primitive} \NC \NR
-\NC \type {toksapp} \NC tokenregister text \NC append text to given tokenregister \NC \NR
-\NC \type {tokspre} \NC tokenregister text \NC prepend text to given tokenregister \NC \NR
-\NC \type {xtoksapp} \NC tokenregister text \NC globally append expanded text to given tokenregister \NC \NR
-\NC \type {xtokspre} \NC tokenregister text \NC globally prepend expanded text to given tokenregister \NC \NR
-% new (some end-of-the-year experiment)
-\NC \type {letfrozen} \NC macro \NC sets the frozen property of a macro \NC \NR
-\NC \type {letprotected} \NC macro \NC sets the protected property of a macro \NC \NR
-\NC \type {unletfrozen} \NC macro \NC unsets the frozen property of a macro \NC \NR
-\NC \type {unletprotected} \NC macro \NC unsets the protected property of a macro \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Typesetting]
-
-\starttabulate[|||p|]
-\NC \type {protrudechars} \NC integer \NC \NC \NR
-\NC \type {localbrokenpenalty} \NC integer \NC \NC \NR
-\NC \type {localinterlinepenalty} \NC integer \NC \NC \NR
-\NC \type {adjustspacing} \NC integer \NC \NC \NR
-\NC \type {boundary} \NC command \NC \NC \NR
-\NC \type {noboundary} \NC command \NC \NC \NR
-\NC \type {protrusionboundary} \NC command \NC \NC \NR
-\NC \type {wordboundary} \NC command \NC \NC \NR
-\NC \type {nohrule} \NC command \NC \NC \NR
-\NC \type {novrule} \NC command \NC \NC \NR
-\NC \type {insertht} \NC dimension \NC \NC \NR
-\NC \type {quitvmode} \NC command \NC \NC \NR
-\NC \type {leftmarginkern} \NC dimension \NC \NC \NR
-\NC \type {rightmarginkern} \NC dimension \NC \NC \NR
-\NC \type {localleftbox} \NC box \NC \NC \NR
-\NC \type {localrightbox} \NC box \NC \NC \NR
-\NC \type {gleaders} \NC command \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=\LUA]
-
-\starttabulate[|||p|]
-\NC \type {luacopyinputnodes} \NC integer \NC \NC \NR
-\NC \type {luadef} \NC \NC \NC \NR
-\NC \type {luabytecodecall} \NC \NC \NC \NR
-\NC \type {luafunctioncall} \NC \NC \NC \NR
-\NC \type {latelua} \NC \NC \NC \NR
-\NC \type {lateluafunction} \NC \NC \NC \NR
-\NC \type {luabytecode} \NC \NC \NC \NR
-\NC \type {luaescapestring} \NC \NC \NC \NR
-\NC \type {luafunction} \NC \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Management]
-
-\starttabulate[|||p|]
-\NC \type {outputbox} \NC integer \NC \NC \NR
-\NC \type {clearmarks} \NC \NC \NC \NR
-\NC \type {attribute} \NC \NC \NC \NR
-\NC \type {glet} \NC \NC \NC \NR
-\NC \type {letcharcode} \NC \NC \NC \NR
-\NC \type {attributedef} \NC \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\startsection[title=Miscellaneous]
-
-\starttabulate[|||p|]
-\NC \type {luatexversion} \NC \NC \NC \NR
-\NC \type {formatname} \NC \NC \NC \NR
-\NC \type {luatexbanner} \NC \NC \NC \NR
-\NC \type {luatexrevision} \NC \NC \NC \NR
-\stoptabulate
-
-\stopsection
-
-\stopchapter
-
-\stopcomponent
+\starttext \ctxlua {table.save(tex.jobname .. '.lua',tex.primitives())} \stoptext \ No newline at end of file
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex b/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex
index 40e6b5a84..175ad30fa 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex
@@ -2316,6 +2316,8 @@ need to know that boundary condition.
\libindex{set_char}
\libindex{set_lua}
\libindex{get_functions_table}
+\libindex{push_macro}
+\libindex{pop_macro}
The \type {set_macro} function can get upto 4 arguments:
@@ -2365,6 +2367,11 @@ that you can access with \type {lua.get_functions_table}. It is the companion
to \lpr {luadef}. When the first (and only) argument is true the size will preset
to the value of \type {texconfig.function_size}.
+The \type {push_macro} and \type {pop_macro} function are very experimental and
+can be used to get and set an existing macro. The push call returns a user data
+object and the pop takes such a userdata object. These object have no accessors
+and are to be seen as abstractions.
+
\stopsubsection
\startsubsection[title={Pushing back}]
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 2460e83ce..083a54921 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{2020.05.12 16:17}
+\newcontextversion{2020.05.18 16:46}
%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 41553e217..2fa248da0 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{2020.05.12 16:17}
+\edef\contextversion{2020.05.18 16:46}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/back-pdf.mkiv b/tex/context/base/mkiv/back-pdf.mkiv
index 697aa311f..b8c3d429b 100644
--- a/tex/context/base/mkiv/back-pdf.mkiv
+++ b/tex/context/base/mkiv/back-pdf.mkiv
@@ -88,7 +88,7 @@
\appendtoks
\edef\p_file{\backendparameter{xmpfile}}%
- \ifx\p_file\empty\else
+ \ifempty\p_file\else
\clf_setxmpfile{\p_file}%
\fi
\to \everysetupbackend
diff --git a/tex/context/base/mkiv/buff-ver.mkxl b/tex/context/base/mkiv/buff-ver.mkxl
index dec4dfb4a..058681a85 100644
--- a/tex/context/base/mkiv/buff-ver.mkxl
+++ b/tex/context/base/mkiv/buff-ver.mkxl
@@ -78,7 +78,7 @@
\edef\p_buff_option{\typeparameter\c!option}%
\ifx\p_buff_option\v!none
\usetypestyleandcolor\c!style\c!color
- \orelse\ifx\p_buff_option\empty
+ \orelse\ifempty\p_buff_option
\usetypestyleandcolor\c!style\c!color
\else
\usetypestyleparameter\c!style % no color
@@ -120,7 +120,7 @@
\edef\p_buff_option{\typingparameter\c!option}%
\ifx\p_buff_option\v!none
\usetypingstyleandcolor\c!style\c!color
- \orelse\ifx\p_buff_option\empty
+ \orelse\ifempty\p_buff_option
\usetypingstyleandcolor\c!style\c!color
\else
\usetypingstyleparameter\c!style % no color !
@@ -177,7 +177,7 @@
\appendtoks
\setuevalue{\e!start\currenttyping}{\buff_verbatim_typing_start{\currenttyping}}%
\setuevalue{\e!stop \currenttyping}{\buff_verbatim_typing_stop {\currenttyping}}%
- \ifx\currenttypingparent\empty
+ \ifempty\currenttypingparent
\normalexpanded{\definelinenumbering[\currenttyping]}%
\else
\normalexpanded{\definelinenumbering[\currenttyping][\currenttypingparent]}%
@@ -610,10 +610,10 @@
\unexpanded\def\doifelsetypingfile#1%
{\edef\askedtypingfile{\locfilename{#1}}%
- \ifx\askedtypingfile\empty
+ \ifempty\askedtypingfile
\edef\askedtypingfile{\locfilename{#1.tex}}% downward compatible
\fi
- \ifx\askedtypingfile\empty
+ \ifempty\askedtypingfile
\expandafter\secondoftwoarguments
\else
\expandafter\firstoftwoarguments
diff --git a/tex/context/base/mkiv/colo-ini.mkxl b/tex/context/base/mkiv/colo-ini.mkxl
index ee2dc64a6..d2c3e610d 100644
--- a/tex/context/base/mkiv/colo-ini.mkxl
+++ b/tex/context/base/mkiv/colo-ini.mkxl
@@ -167,7 +167,7 @@
\unexpanded\def\coloronly[#1]%
{\bgroup
\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
\colo_helpers_activate_nop_only
\else
\colo_helpers_activate_yes_only
@@ -177,7 +177,7 @@
\unexpanded\def\startcoloronly[#1]%$
{\begingroup
\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
\colo_helpers_activate_nop_only
\else
\colo_helpers_activate_yes_only
@@ -191,7 +191,7 @@
\unexpanded\def\color[#1]%
{\bgroup
\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
\colo_helpers_activate_nop
\else
\colo_helpers_activate_yes
@@ -206,7 +206,7 @@
\unexpanded\def\startcolor[#1]%$
{\begingroup
\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
\colo_helpers_activate_nop
\else
\colo_helpers_activate_yes
@@ -232,7 +232,7 @@
\unexpanded\def\fastcolor[#1]#2%
{\begingroup % is this command still needed?
\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
\colo_helpers_activate_nop
\else
\colo_helpers_activate_yes
@@ -242,7 +242,7 @@
\unexpanded\def\directcolor[#1]%
{\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
\colo_helpers_activate_nop
\else
\colo_helpers_activate_yes
@@ -250,7 +250,7 @@
%D The following command is obsolete:
-\unexpanded\def\startcolorpage {\startcolor[\ifx\maintextcolor\empty\defaulttextcolor\else\maintextcolor\fi]}
+\unexpanded\def\startcolorpage {\startcolor[\ifempty\maintextcolor\defaulttextcolor\else\maintextcolor\fi]}
\unexpanded\def\stopcolorpage {\stopcolor}
\unexpanded\def\getcolorattributevalue#1#2% obsolete, use \thecolorattribute instead ...
@@ -546,7 +546,7 @@
\def\colo_palets_setup[#1]%
{\edef\currentcolorpalet{#1}%
- \ifx\currentcolorpalet\empty
+ \ifempty\currentcolorpalet
% seems to be a reset
\let\currentcolorprefix\empty
%\t_colo_prefix\emptytoks
@@ -728,7 +728,7 @@
% new: expandable (see tbl)
\def\colo_helpers_fast_activate
- {\ifx\currentcolorprefix\empty
+ {\ifempty\currentcolorprefix
\expandafter\colo_helpers_fast_activate_nop
\else
\expandafter\colo_helpers_fast_activate_yes
@@ -759,7 +759,7 @@
\def\colo_helpers_activate#1% two-step is not that much faster but less tracing
{\edef\currentcolorname{#1}%
- \ifx\currentcolorprefix\empty
+ \ifempty\currentcolorprefix
%\expandafter
\colo_helpers_activate_nop
\else
@@ -1097,10 +1097,10 @@
\def\s!themaintextcolor{themaintextcolor}
\unexpanded\def\inheritmaintextcolor
- {\ifx\maintextcolor\empty\else\colo_helpers_activate\maintextcolor\fi}
+ {\ifempty\maintextcolor\else\colo_helpers_activate\maintextcolor\fi}
\unexpanded\def\onlyinheritmaintextcolor
- {\ifx\maintextcolor\empty
+ {\ifempty\maintextcolor
\deactivatecolor
\else
\colo_helpers_activate\maintextcolor
@@ -1127,7 +1127,7 @@
\def\colo_helpers_initialize_maintextcolor
{\edef\p_colo_textcolor{\directcolorsparameter\c!textcolor}%
- \ifx\p_colo_textcolor\empty
+ \ifempty\p_colo_textcolor
\colo_helpers_switch_to_maintextcolor\defaulttextcolor
\else
\colo_helpers_switch_to_maintextcolor\p_colo_textcolor
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 93fc7b12c..1857b934a 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{2020.05.12 16:17}
+\newcontextversion{2020.05.18 16:46}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 7adad8602..de600c70b 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -45,7 +45,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2020.05.12 16:17}
+\edef\contextversion{2020.05.18 16:46}
\edef\contextkind {beta}
%D Kind of special:
diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl
index 1e4d4b45c..8054489ff 100644
--- a/tex/context/base/mkiv/context.mkxl
+++ b/tex/context/base/mkiv/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2020.05.12 16:17}
+\edef\contextversion{2020.05.18 16:46}
\edef\contextkind {beta}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-emp.mklx b/tex/context/base/mkiv/font-emp.mklx
index 2bd6f3cf9..8ceee2723 100644
--- a/tex/context/base/mkiv/font-emp.mklx
+++ b/tex/context/base/mkiv/font-emp.mklx
@@ -46,7 +46,7 @@
#slanted%
\orelse\ifx\m_font_emphasized_typeface\v!italic
#italic%
- \orelse\ifx\m_font_emphasized_typeface\empty
+ \orelse\ifempty\m_font_emphasized_typeface
#slanted%
\else
\csname\m_font_emphasized_typeface\endcsname
diff --git a/tex/context/base/mkiv/font-fil.mklx b/tex/context/base/mkiv/font-fil.mklx
index 6cc25db10..2b8224dfe 100644
--- a/tex/context/base/mkiv/font-fil.mklx
+++ b/tex/context/base/mkiv/font-fil.mklx
@@ -78,7 +78,7 @@
\unexpanded\def\definefontsynonym[#name]#crap[#file]%
{\edef\m_font_name{#name}%
\edef\m_font_file{#file}%
- \ifx\fontclass\empty
+ \ifempty\fontclass
\expandafter\font_basics_define_font_synonym_nop
\else
\expandafter\font_basics_define_font_synonym_yes
@@ -95,7 +95,7 @@
\unexpanded\def\edefinefontsynonym[#name]#crap[#file]%
{\edef\m_font_name{#name}%
\edef\m_font_file{#file}%
- \ifx\fontclass\empty
+ \ifempty\fontclass
\expandafter\font_basics_define_font_synonym_nop_expanded
\else
\expandafter\font_basics_define_font_synonym_yes_expanded
@@ -207,7 +207,7 @@
\def\font_helpers_true_fontname#name*#first#rest*#crap\relax
{\ifcsname\??fontfile\fontclass#name\endcsname
- \ifx#first\empty
+ \ifempty#first%
%\expandafter\truefontname\csname\??fontfile\fontclass#name\endcsname
\expandafter\truefontname\lastnamedcs
\else
@@ -215,7 +215,7 @@
\expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
\fi
\orelse\ifcsname\??fontfile\defaultfontclass#name\endcsname
- \ifx#first\empty
+ \ifempty#first%
%\expandafter\truefontname\csname\??fontfile\defaultfontclass#name\endcsname
\expandafter\truefontname\lastnamedcs
\else
@@ -223,7 +223,7 @@
\expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
\fi
\orelse\ifcsname\??fontfile#name\endcsname
- \ifx#first\empty
+ \ifempty#first%
%\expandafter\truefontname\csname\??fontfile#name\endcsname
\expandafter\truefontname\lastnamedcs
\else
@@ -231,7 +231,7 @@
\expandafter\font_helpers_true_fontname_check\lastnamedcs*#first#rest%
\fi
\else
- #name\ifx#first\empty\else*#first#rest\fi
+ #name\ifempty#first\else*#first#rest\fi
\fi}
\def\font_helpers_true_fontname_check#name%
@@ -401,7 +401,7 @@
\font_helpers_set_designsize_nop\somefontname}
\def\font_helpers_update_font_parameters
- {\ifx\fontclass\empty\font_helpers_update_font_parameters_nop\else\font_helpers_update_font_parameters_yes\fi}
+ {\ifempty\fontclass\font_helpers_update_font_parameters_nop\else\font_helpers_update_font_parameters_yes\fi}
\installcorenamespace{fontclass}
diff --git a/tex/context/base/mkiv/font-ini.mklx b/tex/context/base/mkiv/font-ini.mklx
index 4b112322d..db031ba42 100644
--- a/tex/context/base/mkiv/font-ini.mklx
+++ b/tex/context/base/mkiv/font-ini.mklx
@@ -756,7 +756,7 @@
\font_helpers_update_font_class_parameters
%\writestatus{fonts}{low level define: #csname/\somefontfile/\number\d_font_scaled_font_size/\fontface/\number\d_font_scaled_text_face}%
\clf_definefont_two
- \ifx\fontclass\empty\s!false\else\s!true\fi
+ \ifempty\fontclass\s!false\else\s!true\fi
{#csname}%
{\somefontfile}%
\d_font_scaled_font_size
@@ -1440,7 +1440,7 @@
\processcommalist[#assignments]\font_basics_define_body_font_defs}
\unexpanded\def\font_basics_define_body_font_defs
- {\ifx\fontclass\empty
+ {\ifempty\fontclass
\expandafter\font_basics_define_body_font_defs_nop
\else
\expandafter\font_basics_define_body_font_defs_yes
@@ -1670,7 +1670,7 @@
\def\font_helpers_set_font#method#specification%
{\edef\m_font_specification{#specification}%
- \ifx\m_font_specification\empty \else
+ \ifempty\m_font_specification \else
\ifx\m_font_specification\v!global % we can have all kind of presets
\restoreglobalbodyfont
\else
@@ -1680,7 +1680,7 @@
\font_preloads_at_definition
\font_basics_switch_points\normalizedbodyfontsize
\font_basics_switch_style\fontstyle
- \ifx\defaultfontclass\empty
+ \ifempty\defaultfontclass
\let\defaultfontclass\fontclass
\fi
\fi
@@ -1829,7 +1829,7 @@
\font_helpers_synchronize_font}
\unexpanded\def\font_helpers_synchronize_font % we can have dups i.e. no need to let fontstrategy
- {\ifx\fontclass\empty
+ {\ifempty\fontclass
\applyfontstrategies
\else
\applyfontclassstrategies
@@ -2227,7 +2227,7 @@
\unexpanded\def\font_basics_switchtobodyfont#specification%
{\edef\m_font_step{\font_bodyfontvariable{#specification}}%
- \ifx\m_font_step\empty
+ \ifempty\m_font_step
\font_helpers_set_font\zerocount{#specification}%
\else
\font_helpers_switch_bodyfont_step % so we have a fast [small] switch
@@ -2240,7 +2240,7 @@
\unexpanded\def\usebodyfontparameter#1%
{\edef\m_font_bodyfont_asked{#1\c!bodyfont}%
- \ifx\m_font_bodyfont_asked\empty\else
+ \ifempty\m_font_bodyfont_asked\else
\font_basics_switchtobodyfont\m_font_bodyfont_asked
\fi}
@@ -2285,7 +2285,7 @@
%D \stoptyping
\unexpanded\def\usebodyfont[#1]%
- {\ifx\fontclass\empty
+ {\ifempty\fontclass
\setupbodyfont[#1]%
\else
\switchtobodyfont[#1]%
diff --git a/tex/context/base/mkiv/font-sty.mklx b/tex/context/base/mkiv/font-sty.mklx
index 81884333b..f0fe65183 100644
--- a/tex/context/base/mkiv/font-sty.mklx
+++ b/tex/context/base/mkiv/font-sty.mklx
@@ -148,7 +148,7 @@
\unexpanded\def\doconvertfont#specification% takes second argument / this command is obsolete
{\edef\m_current_convert_font{#specification}%
- \ifx\m_current_convert_font\empty
+ \ifempty\m_current_convert_font
%\expandafter\firstofoneargument
\else
\expandafter\font_helpers_do_convert_font
@@ -183,7 +183,7 @@
\unexpanded\def\dousestyleparameter#value%
{\edef\currentstyleparameter{#value}%
- \ifx\currentstyleparameter\empty\else
+ \ifempty\currentstyleparameter\else
\expandafter\dousecurrentstyleparameter
\fi}
diff --git a/tex/context/base/mkiv/lang-ini.mkxl b/tex/context/base/mkiv/lang-ini.mkxl
index 8bcba01d8..f86628069 100644
--- a/tex/context/base/mkiv/lang-ini.mkxl
+++ b/tex/context/base/mkiv/lang-ini.mkxl
@@ -121,7 +121,7 @@
\unexpanded\def\setusedlanguage#1%
{\edef\currentusedlanguage{\reallanguagetag{#1}}%
- \ifx\currentusedlanguage\empty
+ \ifempty\currentusedlanguage
\let\currentusedlanguage \currentlanguage
\let\usedlanguageparameter\languageparameter
\orelse\ifx\currentusedlanguage\v!global
@@ -139,14 +139,14 @@
\unexpanded\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current)
{\edef\xaskedlanguage{#1}% otherwise clash with \askedlanguage
- \ifx\xaskedlanguage\empty \else
- \ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi
+ \ifempty\xaskedlanguage \else
+ \ifempty\currentmainlanguage\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi
\let\currentmainlanguage\xaskedlanguage
\setsystemmode{\systemmodeprefix\currentmainlanguage}%
\fi
\edef\xaskedlanguage{#2}%
- \ifx\xaskedlanguage\empty \else
- \ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi
+ \ifempty\xaskedlanguage \else
+ \ifempty\currentlanguage\else\resetsystemmode\currentlanguage\fi
\let\currentlanguage\xaskedlanguage
\setsystemmode\currentlanguage
\fi}
@@ -454,7 +454,7 @@
\appendtoks
\edef\currentlanguagesetups{\languageparameter\c!setups}%
- \ifx\currentlanguagesetups\empty \else
+ \ifempty\currentlanguagesetups \else
\setups[\currentlanguagesetups]%
\fi
\to \everylanguage
@@ -492,7 +492,7 @@
\appendtoks
\edef\p_language_font{\languageparameter\s!font}%
- \ifx\p_language_font\empty
+ \ifempty\p_language_font
\orelse\ifx\p_language_font\v!auto
\doaddfeature\currentlanguage
\else
@@ -513,15 +513,15 @@
\unexpanded\def\uselanguageparameter#1%
{\edef\askedlanguage{#1\c!language}%
- \ifx\askedlanguage\empty\else\lang_basics_switch_asked\fi}
+ \ifempty\askedlanguage\else\lang_basics_switch_asked\fi}
\unexpanded\def\douselanguageparameter#1% fast setter
{\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty\else\lang_basics_switch_asked\fi}
+ \ifempty\askedlanguage\else\lang_basics_switch_asked\fi}
\unexpanded\def\lang_basics_set_current[#1]%
{\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty\else\lang_basics_switch_asked\fi}
+ \ifempty\askedlanguage\else\lang_basics_switch_asked\fi}
\unexpanded\def\language
{\doifelsenextoptionalcs\lang_basics_set_current\normallanguage}
@@ -542,7 +542,7 @@
\unexpanded\def\mainlanguage[#1]%
{\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty
+ \ifempty\askedlanguage
\orelse\ifcsname\??languagelinked\askedlanguage\endcsname
%\edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}%
\edef\askedlanguage{\lastnamedcs}%
@@ -699,7 +699,7 @@
\def\lang_basics_start_exceptions[#1]#2\stopexceptions % multilingual or not?
{\begingroup
\edef\askedlanguage{\reallanguagetag{#1}}%
- \ifx\askedlanguage\empty
+ \ifempty\askedlanguage
\let\askedlanguage\currentlanguage
\fi
\clf_setlanguageexceptions{\askedlanguage}{#2}%
diff --git a/tex/context/base/mkiv/lang-lab.mkxl b/tex/context/base/mkiv/lang-lab.mkxl
index a527224e9..117aa9e2b 100644
--- a/tex/context/base/mkiv/lang-lab.mkxl
+++ b/tex/context/base/mkiv/lang-lab.mkxl
@@ -223,8 +223,8 @@
% \def\lang_labels_text_prefix_assign_yes#1[#2,#3,#4]%
% {\def\m_lang_labels_left {#2}% no longer an edef ... else \Word undefined expansion issues
% \def\m_lang_labels_right{#3}% no longer an edef ... else \Word undefined expansion issues
-% \ifx\m_lang_labels_right\empty
-% \ifx\m_lang_labels_left\empty
+% \ifempty\m_lang_labels_right
+% \ifempty\m_lang_labels_left
% \expandafter\def\csname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname{\empty\empty}%
% \else
% \expandafter\def\csname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname{{#2}\empty}%
@@ -239,8 +239,8 @@
{\def\m_lang_labels_left {#2}% no longer an edef ... else \Word undefined expansion issues
\def\m_lang_labels_right{#3}% no longer an edef ... else \Word undefined expansion issues
\expandafter\def\csname\??label\currenttextprefixclass:\currenttextprefixtag:#1%
- \ifx\m_lang_labels_right\empty
- \ifx\m_lang_labels_left\empty
+ \ifempty\m_lang_labels_right
+ \ifempty\m_lang_labels_left
\endcsname{\empty\empty}%
\else
\endcsname{{#2}\empty}%
diff --git a/tex/context/base/mkiv/lpdf-lmt.lua b/tex/context/base/mkiv/lpdf-lmt.lua
index f4e30274a..43c4c1059 100644
--- a/tex/context/base/mkiv/lpdf-lmt.lua
+++ b/tex/context/base/mkiv/lpdf-lmt.lua
@@ -803,7 +803,7 @@ local flushsave, flushrestore, flushsetmatrix do
rx, sx, sy, ry = tonumber(rx), tonumber(sx), tonumber(sy), tonumber(ry)
local tx = pos_h * (1 - rx) - pos_v * sy
local ty = pos_v * (1 - ry) - pos_h * sx
- if nofmatrices > 1 then
+ if nofmatrices > 0 then
local t = matrices[nofmatrices]
local r_x, s_x, s_y, r_y, te, tf = t[1], t[2], t[3], t[4], t[5], t[6]
rx, sx = rx * r_x + sx * s_y, rx * s_x + sx * r_y
diff --git a/tex/context/base/mkiv/math-ini.mkxl b/tex/context/base/mkiv/math-ini.mkxl
index 00f70cf07..9cc3dfe1f 100644
--- a/tex/context/base/mkiv/math-ini.mkxl
+++ b/tex/context/base/mkiv/math-ini.mkxl
@@ -446,7 +446,7 @@
\appendtoks
\edef\p_stylealternative{\mathematicsparameter\c!stylealternative}%
- \ifx\p_stylealternative\empty\else
+ \ifempty\p_stylealternative\else
\clf_presetmathalternate\defaultmathfamily{\p_stylealternative}%
\fi
\to \everymathematics
@@ -829,7 +829,7 @@
{\begingroup
\usemathematicscolorparameter\c!functioncolor
\edef\p_functionstyle{\mathematicsparameter\c!functionstyle}%
- \ifx\p_functionstyle\empty
+ \ifempty\p_functionstyle
\expandafter\math_mfunction_styled_none
\orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname
\doubleexpandafter\math_mfunction_styled_text
@@ -1308,7 +1308,7 @@
\enabledirectives\disabledirectives[math.virtual.optional]}
\appendtoks
- \ifx\currentmathematics\empty
+ \ifempty\currentmathematics
\math_basics_check_compact % less tracing
\fi
\to \everysetupmathematics
@@ -1813,7 +1813,7 @@
% 7 = crampedscriptscript
\def\uncramped#1%
- {{\ifcase\normalmathstyle
+ {{\ifmathstyle
\or \displaystyle \or
\or \textstyle \or
\or \scriptstyle \or
@@ -1821,7 +1821,7 @@
#1}}
\def\cramped#1%
- {{\ifcase\normalmathstyle
+ {{\ifmathstyle
\crampeddisplaystyle \or \or % 0 -> 1
\crampedtextstyle \or \or % 2 -> 3
\crampedscriptstyle \or \or % 4 -> 5
@@ -2040,7 +2040,7 @@
%D \stoptabulate
\def\triggerdisplaystyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\displaystyle \or
\crampeddisplaystyle \or
\displaystyle \or
@@ -2052,7 +2052,7 @@
\fi}
\def\triggertextstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\textstyle \or
\crampedtextstyle \or
\textstyle \or
@@ -2064,7 +2064,7 @@
\fi}
\def\triggerscriptstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\scriptstyle \or
\crampedscriptstyle \or
\scriptstyle \or
@@ -2076,7 +2076,7 @@
\fi}
\def\triggerscriptscriptstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\scriptscriptstyle \or
\crampedscriptscriptstyle \or
\scriptscriptstyle \or
@@ -2088,21 +2088,21 @@
\fi}
\def\triggeruncrampedstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\or \displaystyle \or
\or \textstyle \or
\or \scriptstyle \or
\or \scriptscriptstyle \fi}
\def\triggercrampedstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\crampeddisplaystyle \or \or
\crampedtextstyle \or \or
\crampedscriptstyle \or \or
\crampedscriptscriptstyle \fi}
\def\triggersmallstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\scriptstyle \or
\crampedscriptstyle \or
\scriptstyle \or
@@ -2114,7 +2114,7 @@
\fi}
\def\triggeruncrampedsmallstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\scriptstyle \or
\scriptstyle \or
\scriptstyle \or
@@ -2126,7 +2126,7 @@
\fi}
\def\triggercrampedsmallstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\crampedscriptstyle \or
\crampedscriptstyle \or
\crampedscriptstyle \or
@@ -2138,7 +2138,7 @@
\fi}
\def\triggerbigstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\displaystyle \or
\crampeddisplaystyle \or
\textstyle \or
@@ -2150,7 +2150,7 @@
\fi}
\def\triggeruncrampedbigstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\displaystyle \or
\displaystyle \or
\textstyle \or
@@ -2162,7 +2162,7 @@
\fi}
\def\triggercrampedbigstyle
- {\ifcase\normalmathstyle\relax
+ {\ifmathstyle
\crampeddisplaystyle \or
\crampeddisplaystyle \or
\crampedtextstyle \or
@@ -2265,7 +2265,7 @@
\unexpanded\def\math_style_set#1%
{\edef\m_math_style_asked{#1}%
- \ifx\m_math_style_asked\empty \else
+ \ifempty\m_math_style_asked \else
\math_style_set_indeed
\fi}
@@ -2294,13 +2294,13 @@
\unexpanded\def\setupmathstyle[#1]%
{\edef\m_math_style_asked{#1}%
- \ifx\m_math_style_asked\empty \else
+ \ifempty\m_math_style_asked \else
\math_style_set_indeed
\fi}
\unexpanded\def\usemathstyleparameter#1% faster local variant
{\edef\m_math_style_asked{#1\c!mathstyle}%
- \ifx\m_math_style_asked\empty \else
+ \ifempty\m_math_style_asked \else
\math_style_set_indeed
\fi}
@@ -2385,7 +2385,7 @@
\unexpanded\def\startmathstyle[#1]%
{\edef\m_math_style_asked{#1}%
- \ifx\m_math_style_asked\empty
+ \ifempty\m_math_style_asked
\let\stopmathstyle\relax
\else
\bgroup
@@ -2397,7 +2397,7 @@
\unexpanded\def\startusemathstyleparameter#1%
{\edef\m_math_style_asked{#1\c!mathstyle}%
- \ifx\m_math_style_asked\empty
+ \ifempty\m_math_style_asked
\let\stopusemathstyleparameter\relax
\else
\bgroup
@@ -2587,7 +2587,7 @@
\appendtoks
\edef\p_setups{\mathematicsparameter\c!setups}%
- \ifx\p_setups\empty\else
+ \ifempty\p_setups\else
\directsetup\p_setups
\fi
\to \everyswitchmathematics
@@ -2779,7 +2779,7 @@
\appendtoks
\edef\p_domain{\mathematicsparameter\c!domain}%
- \ifx\p_domain\empty
+ \ifempty\p_domain
\c_math_domain_attribute\attributeunsetvalue
\else
\c_math_domain_attribute\clf_getmathdomain\p_domain\relax
@@ -2905,7 +2905,7 @@
% \ifcondition\mdim#1\scriptscriptstyle \frozen#1\scriptscriptstyle #2\dimexpr#1\scriptscriptstyle \relax\fi
% \ifcondition\mdim#1\crampedscriptscriptstyle\frozen#1\crampedscriptscriptstyle#2\dimexpr#1\crampedscriptscriptstyle\relax\fi}
-% \Umathparameter : 0=zero, 1=set, 2=unset (les stracing clutter this way)
+% \ifmathparameter : 0=zero, 1=set, 2=unset (les stracing clutter this way)
%D New stuff:
%D
@@ -2914,14 +2914,14 @@
%D \stoptyping
\unexpanded\def\mathopenupparameter#1#2%
- {\ifcase\Umathparameter#1\displaystyle \or\frozen#1\displaystyle #2#1\displaystyle \fi
- \ifcase\Umathparameter#1\crampeddisplaystyle \or\frozen#1\crampeddisplaystyle #2#1\crampeddisplaystyle \fi
- \ifcase\Umathparameter#1\textstyle \or\frozen#1\textstyle #2#1\textstyle \fi
- \ifcase\Umathparameter#1\crampedtextstyle \or\frozen#1\crampedtextstyle #2#1\crampedtextstyle \fi
- \ifcase\Umathparameter#1\scriptstyle \or\frozen#1\scriptstyle #2#1\scriptstyle \fi
- \ifcase\Umathparameter#1\crampedscriptstyle \or\frozen#1\crampedscriptstyle #2#1\crampedscriptstyle \fi
- \ifcase\Umathparameter#1\scriptscriptstyle \or\frozen#1\scriptscriptstyle #2#1\scriptscriptstyle \fi
- \ifcase\Umathparameter#1\crampedscriptscriptstyle\or\frozen#1\crampedscriptscriptstyle#2#1\crampedscriptscriptstyle\fi}
+ {\ifmathparameter#1\displaystyle \or\frozen#1\displaystyle #2#1\displaystyle \fi
+ \ifmathparameter#1\crampeddisplaystyle \or\frozen#1\crampeddisplaystyle #2#1\crampeddisplaystyle \fi
+ \ifmathparameter#1\textstyle \or\frozen#1\textstyle #2#1\textstyle \fi
+ \ifmathparameter#1\crampedtextstyle \or\frozen#1\crampedtextstyle #2#1\crampedtextstyle \fi
+ \ifmathparameter#1\scriptstyle \or\frozen#1\scriptstyle #2#1\scriptstyle \fi
+ \ifmathparameter#1\crampedscriptstyle \or\frozen#1\crampedscriptstyle #2#1\crampedscriptstyle \fi
+ \ifmathparameter#1\scriptscriptstyle \or\frozen#1\scriptscriptstyle #2#1\scriptscriptstyle \fi
+ \ifmathparameter#1\crampedscriptscriptstyle\or\frozen#1\crampedscriptscriptstyle#2#1\crampedscriptscriptstyle\fi}
%D New stuff:
%D
diff --git a/tex/context/base/mkiv/meta-ini.mkxl b/tex/context/base/mkiv/meta-ini.mkxl
index e08aa560a..0f632c854 100644
--- a/tex/context/base/mkiv/meta-ini.mkxl
+++ b/tex/context/base/mkiv/meta-ini.mkxl
@@ -93,7 +93,7 @@
\def\meta_start_definitions#1#2\stopMPdefinitions
{\let\m_meta_saved_instance\currentMPinstance
\edef\currentMPinstance{#1}%
- \ifx\currentMPinstance\empty
+ \ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
\gtoksapp\t_meta_definitions{#2}%
@@ -124,7 +124,7 @@
\def\meta_start_inclusions_indeed#1#2\stopMPinclusions
{\let\m_meta_saved_instance\currentMPinstance
\edef\currentMPinstance{#1}%
- \ifx\currentMPinstance\empty
+ \ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
\ifx\m_meta_option\!!plustoken \else
@@ -145,7 +145,7 @@
\def\meta_inclusions_indeed#1#2%
{\let\m_meta_saved_instance\currentMPinstance
\edef\currentMPinstance{#1}%
- \ifx\currentMPinstance\empty
+ \ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
\ifx\m_meta_option\!!plustoken \else
@@ -194,7 +194,7 @@
\unexpanded\def\meta_analyze_graphicname_indeed[#1::#2::#3]% instance ::
{\edef\currentMPgraphicname{#2}%
- \ifx\currentMPgraphicname\empty
+ \ifempty\currentMPgraphicname
\edef\currentMPgraphicname{#1}%
\let\currentMPinstance\defaultMPinstance
\orelse\ifcsname\??mpdefinitions#1\endcsname
@@ -262,7 +262,7 @@
\setfalse\c_meta_include_initializations
\fi
\edef\p_setups{\MPinstanceparameter\c!setups}%
- \ifx\p_setups\empty \else
+ \ifempty\p_setups \else
\setups[\p_setups]%
\fi
\useMPinstancestyleparameter\c!textstyle}
@@ -289,7 +289,7 @@
\unexpanded\def\meta_process_graphic_instance#1%
{\edef\currentMPinstance{#1}%
- \ifx\currentMPinstance\empty
+ \ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
\edef\currentMPformat{\MPinstanceparameter\s!format}%
@@ -539,7 +539,7 @@
{\??graphicvariable\currentmpvariableclass:#1}%
\edef\m_meta_current_variable
{\begincsname\m_meta_current_variable_template\endcsname}%
- \ifx\m_meta_current_variable\empty
+ \ifempty\m_meta_current_variable
\expandafter\meta_prepare_variable_nop
\else
\expandafter\meta_prepare_variable_yes
@@ -557,7 +557,7 @@
\else
\begincsname\??graphicvariable\currentMPgraphicname:#1\endcsname
\fi}%
- \ifx\m_meta_current_variable\empty
+ \ifempty\m_meta_current_variable
\expandafter\meta_prepare_variable_nop
\else
\expandafter\meta_prepare_variable_yes
@@ -712,7 +712,7 @@
{\begingroup
\edef\currentmpvariableclass{#1}%
\edef\m_meta_instance_variables{#2}%
- \ifx\m_meta_instance_variables\empty \else
+ \ifempty\m_meta_instance_variables \else
\meta_prepare_instance_variables
\fi
\meta_enable_include % redundant
@@ -745,7 +745,7 @@
{\begingroup
\edef\currentmpvariableclass{#1}%
\edef\m_meta_instance_variables{#2}%
- \ifx\m_meta_instance_variables\empty \else
+ \ifempty\m_meta_instance_variables \else
\meta_prepare_instance_variables
\fi
\meta_enable_include % redundant
@@ -778,7 +778,7 @@
\else
\let\usedMPgraphicname\empty
\fi
- \ifx\usedMPgraphicname\empty
+ \ifempty\usedMPgraphicname
% message
\else
\doifsomething{#2}{\setupMPvariables[\usedMPgraphicname][#2]}%
@@ -1072,8 +1072,8 @@
%D that fails with spot colors.
\startMPinitializations
- def OverlayLineColor=\ifx\overlaylinecolor\empty black \else\MPcolor{\overlaylinecolor} \fi enddef;
- def OverlayColor =\ifx\overlaycolor \empty black \else\MPcolor{\overlaycolor} \fi enddef;
+ def OverlayLineColor=\ifempty\overlaylinecolor black \else\MPcolor{\overlaylinecolor} \fi enddef;
+ def OverlayColor =\ifempty\overlaycolor black \else\MPcolor{\overlaycolor} \fi enddef;
\stopMPinitializations
% \newcount\c_overlay_colormodel
@@ -1448,7 +1448,7 @@
\appendtoks
\edef\p_mpy{\directMPgraphicsparameter{mpy}}%
- \ifx\p_mpy\empty \else
+ \ifempty\p_mpy \else
\let\MPdataMPYfile\p_mpy
\clf_registermpyfile{\p_mpy}%
\fi
diff --git a/tex/context/base/mkiv/mult-aux.mkxl b/tex/context/base/mkiv/mult-aux.mkxl
index 7a5e60b29..f8eceb9a1 100644
--- a/tex/context/base/mkiv/mult-aux.mkxl
+++ b/tex/context/base/mkiv/mult-aux.mkxl
@@ -112,7 +112,18 @@
\def\mult_interfaces_get_parameters_error_indeed#1#2%
{\showassignerror{#2}{\the\inputlineno\space(#1)}}
-\def\mult_interfaces_get_parameters_assign#1=#2=#3#4^^^^0004%
+% \def\mult_interfaces_get_parameters_assign#1=#2=#3#4^^^^0004%
+% {\ifx\empty#1\empty
+% \expandafter\mult_interfaces_get_parameters_error
+% \orelse\ifx#3\empty
+% \expandafter\mult_interfaces_get_parameters_error
+% \else
+% \expandafter\mult_interfaces_adef % assignment def
+% \fi
+% \m_mult_interfaces_namespace{#1}{#2}%
+% \doubleexpandafter\mult_interfaces_get_parameters_item}
+
+\def\mult_interfaces_get_parameters_assign#1=#2=#3#0^^^^0004%
{\ifx\empty#1\empty
\expandafter\mult_interfaces_get_parameters_error
\orelse\ifx#3\empty
@@ -129,13 +140,29 @@
\let\mult_interfaces_get_parameters_error\undefined
- \def\mult_interfaces_get_parameters_error_one#1\csname#2#3\endcsname#4%
+% \def\mult_interfaces_get_parameters_error_one#1\csname#2#3\endcsname#4%
+% {\mult_interfaces_get_parameters_error_indeed{#2}{#3}\iftrue}
+
+% \def\mult_interfaces_get_parameters_error_two#1\csname#2#3\endcsname#4%
+% {\mult_interfaces_get_parameters_error_indeed{#2}{#3}}
+
+% \def\mult_interfaces_get_parameters_assign#1=#2=#3#4^^^^0004%
+% {\ifx\empty#1\empty
+% \mult_interfaces_get_parameters_error_one
+% \orelse\ifx#3\empty
+% \mult_interfaces_get_parameters_error_two
+% \else
+% \expandafter\def\csname\m_mult_interfaces_namespace#1\endcsname{#2}%
+% \fi
+% \doubleexpandafter\mult_interfaces_get_parameters_item}
+
+ \def\mult_interfaces_get_parameters_error_one#1\csname#2#3\endcsname#0%
{\mult_interfaces_get_parameters_error_indeed{#2}{#3}\iftrue}
- \def\mult_interfaces_get_parameters_error_two#1\csname#2#3\endcsname#4%
+ \def\mult_interfaces_get_parameters_error_two#1\csname#2#3\endcsname#0%
{\mult_interfaces_get_parameters_error_indeed{#2}{#3}}
- \def\mult_interfaces_get_parameters_assign#1=#2=#3#4^^^^0004%
+ \def\mult_interfaces_get_parameters_assign#1=#2=#3#0^^^^0004%
{\ifx\empty#1\empty
\mult_interfaces_get_parameters_error_one
\orelse\ifx#3\empty
@@ -149,10 +176,16 @@
\newif\ifassignment
-\def\mult_check_for_assignment_indeed#1=#2#3^^^^0004%
+% \def\mult_check_for_assignment_indeed#1=#2#3^^^^0004%
+% {\if#2^^^^0003\assignmentfalse\else\assignmenttrue\fi}
+
+% \def\mult_check_for_assignment_indeed_begin_#1=#2#3^^^^0004%
+% {\if#2^^^^0003}
+
+\def\mult_check_for_assignment_indeed#0=#2#0^^^^0004%
{\if#2^^^^0003\assignmentfalse\else\assignmenttrue\fi}
-\def\mult_check_for_assignment_indeed_begin_#1=#2#3^^^^0004%
+\def\mult_check_for_assignment_indeed_begin_#0=#2#0^^^^0004%
{\if#2^^^^0003}
\def\mult_check_for_assignment#1%
@@ -250,7 +283,8 @@
\def#5##1##2{\ifx##1\relax\else#4##1{##2}\fi}%
\def#6{#1#2:}%
\def#7##1{#1##1:}%
- \def#8{\ifx#2\empty\orelse\ifcsname#1#2:\s!parent\endcsname\else\expandafter\let\csname#1#2:\s!parent\endcsname#1\fi}%
+ %\def#8{\ifx#2\empty\orelse\ifcsname#1#2:\s!parent\endcsname\else\expandafter\let\csname#1#2:\s!parent\endcsname#1\fi}%
+ \def#8{\ifempty#2\orelse\ifcsname#1#2:\s!parent\endcsname\else\expandafter\let\csname#1#2:\s!parent\endcsname#1\fi}%
\unexpanded\def#9##1{\expandafter\edef\csname#1##1:\s!parent\endcsname{#1#2}}}
\unexpanded\def\installparameterhashhandler#1#2%
@@ -306,15 +340,19 @@
\unexpanded\def\mult_interfaces_install_style_and_color_handler#1#2#3#4%
{\unexpanded\def#2##1##2% style color
{\edef\currentstyleparameter{#1{##1}}% this name is public (can also set color e.g. in underline)
- \ifx\currentstyleparameter\empty\else\dousecurrentstyleparameter\fi
+ %\ifx\currentstyleparameter\empty\else\dousecurrentstyleparameter\fi
+ \ifempty\currentstyleparameter\else\dousecurrentstyleparameter\fi
\edef\currentcolorparameter{#1{##2}}% this name is public (so we do this after the style switch)
- \ifx\currentcolorparameter\empty\else\dousecurrentcolorparameter\fi}%
+ %\ifx\currentcolorparameter\empty\else\dousecurrentcolorparameter\fi}%
+ \ifempty\currentcolorparameter\else\dousecurrentcolorparameter\fi}%
\unexpanded\def#3##1% style
{\edef\currentstyleparameter{#1{##1}}% this name is public
- \ifx\currentstyleparameter\empty\else\dousecurrentstyleparameter\fi}%
+ %\ifx\currentstyleparameter\empty\else\dousecurrentstyleparameter\fi}%
+ \ifempty\currentstyleparameter\else\dousecurrentstyleparameter\fi}%
\unexpanded\def#4##1% color
{\edef\currentcolorparameter{#1{##1}}% this name is public
- \ifx\currentcolorparameter\empty\else\dousecurrentcolorparameter\fi}}
+ %\ifx\currentcolorparameter\empty\else\dousecurrentcolorparameter\fi}}
+ \ifempty\currentcolorparameter\else\dousecurrentcolorparameter\fi}}
\unexpanded\def\installstyleandcolorhandler#1#2%
{\normalexpanded
@@ -1044,7 +1082,8 @@
\unexpanded\def\mult_interfaces_install_parent_injector#1#2#3#4%
{\unexpanded\def#4##1%
- {\ifx#3\empty
+ %{\ifx#3\empty
+ {\ifempty#3%
\expandafter\def\csname#1#2:\s!parent\endcsname{#1##1}%
\fi}}
@@ -1058,24 +1097,40 @@
% Faster but not used that much to make a dent in performance. But, because it's
% cleaner anyway and also gives less tracing, we apply it a few times.
-\unexpanded\def\syst_helpers_install_macro_stack#1#2#3%
- {\xdef\m_syst_helpers_push_macro{\csstring#1}%
- \ifcsname#3\m_syst_helpers_push_macro\endcsname\else
- \expandafter\newcount\csname#3\m_syst_helpers_push_macro\endcsname
- \expandafter\edef\csname push_macro_\m_syst_helpers_push_macro\endcsname
- {\noexpand\expandafter\glet
- \noexpand\csname\m_syst_helpers_push_macro\noexpand\the\csname#3\m_syst_helpers_push_macro\endcsname\endcsname
- \noexpand#1%
- \global\advance\csname#3\m_syst_helpers_push_macro\endcsname\plusone}%
- \expandafter\edef\csname pop_macro_\m_syst_helpers_push_macro\endcsname
- {\global\advance\csname#3\m_syst_helpers_push_macro\endcsname\minusone
- \noexpand\expandafter#2%
- \noexpand\expandafter\noexpand#1%
- \noexpand\csname\m_syst_helpers_push_macro\noexpand\the\csname#3\m_syst_helpers_push_macro\endcsname\endcsname}%
- \fi}
+% \unexpanded\def\syst_helpers_install_macro_stack#1#2#3%
+% {\xdef\m_syst_helpers_push_macro{\csstring#1}%
+% \ifcsname#3\m_syst_helpers_push_macro\endcsname\else
+% \expandafter\newcount\csname#3\m_syst_helpers_push_macro\endcsname
+% \expandafter\edef\csname push_macro_\m_syst_helpers_push_macro\endcsname
+% {\noexpand\expandafter\glet
+% \noexpand\csname\m_syst_helpers_push_macro\noexpand\the\csname#3\m_syst_helpers_push_macro\endcsname\endcsname
+% \noexpand#1%
+% \global\advance\csname#3\m_syst_helpers_push_macro\endcsname\plusone}%
+% \expandafter\edef\csname pop_macro_\m_syst_helpers_push_macro\endcsname
+% {\global\advance\csname#3\m_syst_helpers_push_macro\endcsname\minusone
+% \noexpand\expandafter#2%
+% \noexpand\expandafter\noexpand#1%
+% \noexpand\csname\m_syst_helpers_push_macro\noexpand\the\csname#3\m_syst_helpers_push_macro\endcsname\endcsname}%
+% \fi}
+%
+% \unexpanded\def\installmacrostack #1{\syst_helpers_install_macro_stack#1\let \??localpushedmacro }
+% \unexpanded\def\installglobalmacrostack#1{\syst_helpers_install_macro_stack#1\glet\??globalpushedmacro}
+
+% The \LUA\ based variant is twice as fast as the above but as said, we don't use
+% this one that often. It's more about less tracing than speed here.
+
+\unexpanded\def\installmacrostack#1%
+ {\ifdefined#1\else\let#1\empty\fi
+ \unexpanded\expandafter\gdef\csname push_macro_\csstring#1\endcsname{\localpushmacro#1}%
+ \unexpanded\expandafter\gdef\csname pop_macro_\csstring#1\endcsname{\localpopmacro #1}}
+
+
+\unexpanded\def\installglobalmacrostack#1%
+ {\ifdefined#1\else\glet#1\empty\fi
+ \unexpanded\expandafter\gdef\csname push_macro_\csstring#1\endcsname{\globalpushmacro#1}%
+ \unexpanded\expandafter\gdef\csname pop_macro_\csstring#1\endcsname{\globalpopmacro #1}}
-\unexpanded\def\installmacrostack #1{\syst_helpers_install_macro_stack#1\let \??localpushedmacro }
-\unexpanded\def\installglobalmacrostack#1{\syst_helpers_install_macro_stack#1\glet\??globalpushedmacro}
+% \showmacrostack can be used to see if there are different entries
% \unprotect
%
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 5a77349c5..469fab85c 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -160,7 +160,6 @@ return {
"Umathoverbarvgap",
"Umathoverdelimiterbgap",
"Umathoverdelimitervgap",
- "Umathparameter",
"Umathpunctbinspacing",
"Umathpunctclosespacing",
"Umathpunctinnerspacing",
@@ -238,6 +237,7 @@ return {
"aftergrouped",
"alignmark",
"aligntab",
+ "atendofgrouped",
"attribute",
"attributedef",
"automaticdiscretionary",
@@ -301,8 +301,11 @@ return {
"ifcondition",
"ifcstok",
"ifdimval",
+ "ifempty",
"iffrozen",
"ifincsname",
+ "ifmathparameter",
+ "ifmathstyle",
"ifnumval",
"ifprotected",
"iftok",
@@ -354,6 +357,7 @@ return {
"mathstyle",
"mathsurroundmode",
"mathsurroundskip",
+ "noalignmode",
"noboundary",
"nohrule",
"nokerns",
@@ -522,8 +526,10 @@ return {
"accent",
"adjdemerits",
"advance",
+ "afterassigned",
"afterassignment",
"aftergroup",
+ "atendofgroup",
"atop",
"atopwithdelims",
"badness",
@@ -665,6 +671,7 @@ return {
"leqno",
"let",
"limits",
+ "linepar",
"linepenalty",
"lineskip",
"lineskiplimit",
diff --git a/tex/context/base/mkiv/pack-lyr.mkxl b/tex/context/base/mkiv/pack-lyr.mkxl
index 43460092e..419c9f279 100644
--- a/tex/context/base/mkiv/pack-lyr.mkxl
+++ b/tex/context/base/mkiv/pack-lyr.mkxl
@@ -342,7 +342,7 @@
\let\p_pack_layers_height \zeropoint
\let\p_pack_layers_position\v!yes
\fi
- \ifx\p_pack_layers_rotation\empty \else
+ \ifempty\p_pack_layers_rotation \else
% use direct call
\setbox\nextbox\hpack
{\rotate[\c!location=\v!high,\c!rotation=\layerparameter\c!rotation]{\box\nextbox}}%
@@ -359,7 +359,7 @@
\pack_layers_set_last_position_nop
\fi
%
- \ifx\m_pack_layers_page\empty \else % is expanded
+ \ifempty\m_pack_layers_page \else % is expanded
\edef\m_pack_layers_page{:\m_pack_layers_page}%
\ifcsname\??layerbox\m_pack_layers_target\currentlayer\m_pack_layers_page\endcsname \else
\expandafter\newbox\csname\??layerbox\m_pack_layers_target\currentlayer\m_pack_layers_page\endcsname
@@ -670,8 +670,7 @@
% \edef\p_pack_layers_position{\layerparameter\c!position}% local
\ifx\p_pack_layers_position\v!yes
\edef\p_pack_layers_region{\layerparameter\c!region}%
- \ifx\p_pack_layers_region\empty
- \else
+ \ifempty\p_pack_layers_region\else
\anch_mark_tagged_box\nextbox\p_pack_layers_region % was \layeranchor
\fi
\fi
diff --git a/tex/context/base/mkiv/pack-rul.mkxl b/tex/context/base/mkiv/pack-rul.mkxl
index 8131c3fc5..4fef06ad0 100644
--- a/tex/context/base/mkiv/pack-rul.mkxl
+++ b/tex/context/base/mkiv/pack-rul.mkxl
@@ -345,7 +345,7 @@
\def\pack_framed_background_box_color
{\edef\p_framed_backgroundcolor{\framedparameter\c!backgroundcolor}%
- \ifx\p_framed_backgroundcolor\empty \else
+ \ifempty\p_framed_backgroundcolor \else
\doifcolor\p_framed_backgroundcolor\pack_framed_background_box_color_indeed
\fi}
@@ -605,7 +605,7 @@
\d_framed_target_ht\dimexpr\framedbackgroundheight+ \framedbackgroundoffset\relax
\d_framed_target_dp\dimexpr\framedbackgrounddepth + \framedbackgroundoffset+\framedparameter\c!backgrounddepth\relax
\let\pack_framed_overlay_initialize\pack_framed_overlay_initialize_indeed
- \ifx\p_framed_component\empty
+ \ifempty\p_framed_component
\resetlayoutcomponentattribute
\else
\setlayoutcomponentattribute{\v!background:\p_framed_component}%
@@ -663,7 +663,7 @@
\setbox\b_framed_extra\hpack
{\kern-\d_framed_frameoffset
\raise\scratchdimen
- \hpack{\ifx\overlaylinecolor\empty\else\dousecolorparameter\overlaylinecolor\fi\pack_framed_stroked_box}}%
+ \hpack{\ifempty\overlaylinecolor\else\dousecolorparameter\overlaylinecolor\fi\pack_framed_stroked_box}}%
\wd\b_framed_extra\wd\b_framed_normal
\ht\b_framed_extra\ht\b_framed_normal
\dp\b_framed_extra\dp\b_framed_normal
@@ -920,7 +920,7 @@
\setbox\b_framed_normal\hbox{#4}%
\iftrialtypesetting \else
\edef\m_overlay_region{\framedparameter\c!region}%
- \ifx\m_overlay_region\empty\else
+ \ifempty\m_overlay_region\else
\pack_framed_set_region
\fi
\fi
@@ -932,12 +932,12 @@
% not here, in calling macro: setups
\pack_framed_remove_depth
\ifx\p_framed_frame\v!overlay \orelse \ifx\p_framed_frame\v!none \else
- \ifx\p_framed_rulethickness\empty\else
+ \ifempty\p_framed_rulethickness\else
\d_framed_linewidth\p_framed_rulethickness\relax
\fi
\pack_framed_add_outline % real or invisible frame
\fi
- \ifx\p_framed_background\empty \else
+ \ifempty\p_framed_background \else
\edef\p_framed_backgroundoffset{\framedparameter\c!backgroundoffset}%
\d_framed_backgroundoffset
\ifx\p_framed_backgroundoffset\v!frame
@@ -949,7 +949,7 @@
\pack_framed_add_background
\fi
\pack_framed_restore_depth
- \iftrialtypesetting\orelse\ifx\m_overlay_region\empty\else
+ \iftrialtypesetting\orelse\ifempty\m_overlay_region\else
\pack_framed_add_region
\fi
\box\b_framed_normal
@@ -961,7 +961,7 @@
\unexpanded\def\pack_framed_process_box_indeed#1#2% component box (assumes parameters set and grouped usage)
{\setbox\b_framed_normal\box#2% could actually be \let\b_framed_normal#2
\edef\m_overlay_region{\framedparameter\c!region}%
- \ifx\m_overlay_region\empty\else
+ \ifempty\m_overlay_region\else
\pack_framed_set_region
\fi
\edef\p_framed_rulethickness{\framedparameter\c!rulethickness}% also used in backgrounds
@@ -969,12 +969,12 @@
\edef\p_framed_frame{\framedparameter\c!frame}%
\edef\p_framed_background{\framedparameter\c!background}%
\ifx\p_framed_frame\v!overlay \orelse \ifx\p_framed_frame\v!none \else
- \ifx\p_framed_rulethickness\empty \else
+ \ifempty\p_framed_rulethickness \else
\d_framed_linewidth\p_framed_rulethickness\relax
\fi
\pack_framed_add_outline % real or invisible frame
\fi
- \ifx\p_framed_background\empty \else
+ \ifempty\p_framed_background \else
\edef\p_framed_backgroundoffset{\framedparameter\c!backgroundoffset}%
\d_framed_backgroundoffset
\ifx\p_framed_backgroundoffset\v!frame
@@ -985,7 +985,7 @@
\edef\p_framed_component{#1}%
\pack_framed_add_background
\fi
- \ifx\m_overlay_region\empty\else
+ \ifempty\m_overlay_region\else
\pack_framed_add_region
\fi
\box\b_framed_normal
@@ -1073,7 +1073,7 @@
\framedparameter\c!extras
% to get the right spacing
\edef\p_framed_foregroundstyle{\framedparameter\c!foregroundstyle}%
- \ifx\p_framed_foregroundstyle\empty\else\dousestyleparameter\p_framed_foregroundstyle\fi
+ \ifempty\p_framed_foregroundstyle\else\dousestyleparameter\p_framed_foregroundstyle\fi
% beware, both the frame and background offset can be overruled
%
\edef\p_framed_setups{\framedparameter\c!setups}%
@@ -1103,7 +1103,7 @@
\fi
\ifconditional\c_framed_has_frame
\edef\p_framed_rulethickness{\framedparameter\c!rulethickness}%
- \ifx\p_framed_rulethickness\empty\else
+ \ifempty\p_framed_rulethickness\else
\d_framed_linewidth\p_framed_rulethickness\relax
\fi
\else
@@ -1116,7 +1116,7 @@
%
\forgetall % should happen after \localwidth but before align
%
- \ifx\localformat\empty
+ \ifempty\localformat
\setfalse\c_framed_has_format
\else
\settrue\c_framed_has_format
@@ -1143,7 +1143,7 @@
% obey user set height, also downward compatible
\else
\edef\p_framed_lines{\framedparameter\c!lines}%
- \ifx\p_framed_lines\empty
+ \ifempty\p_framed_lines
\orelse\ifcase\p_framed_lines
\else
\d_framed_height\p_framed_lines\lineheight
@@ -1226,7 +1226,7 @@
\fi
\pack_framed_check_extra_offsets
\edef\p_framed_background{\framedparameter\c!background}%
-% \ifx\p_framed_background\empty
+% \ifempty\p_framed_background
% \let\pack_framed_forgetall\forgetall
% \else
% \let\pack_framed_forgetall\relax
@@ -1235,7 +1235,7 @@
\edef\framedwidth {\the\ifdim\d_framed_width >\zeropoint \d_framed_width \else\zeropoint\fi}% public
\edef\framedheight{\the\ifdim\d_framed_height>\zeropoint \d_framed_height\else\zeropoint\fi}% public
\edef\framedoffset{\the\dimexpr\ifconditional\c_framed_has_offset\localoffset \else\zeropoint\fi}% public
- \ifx\p_framed_orientation\empty
+ \ifempty\p_framed_orientation
\let\pack_framed_stop_orientation\relax
\else
\pack_framed_start_orientation
@@ -1419,7 +1419,7 @@
\def\doassigncheckedframeoffset#1#2% could be a fast \csname .. \endcsname
{\edef\checkedframeoffset{#2}%
#1%
- \ifx\checkedframeoffset\empty \zeropoint\orelse
+ \ifempty\checkedframeoffset \zeropoint\orelse
\ifx\checkedframeoffset\v!overlay\zeropoint\orelse
\ifx\checkedframeoffset\v!none \zeropoint\orelse
\ifx\checkedframeoffset\v!frame \zeropoint\orelse
@@ -1493,7 +1493,7 @@
\ifconditional\c_framed_has_format
%\ifconditional\c_framed_has_height \else
% \edef\p_profile{\framedparameter\c!profile}%
- % \ifx\p_profile\empty\else
+ % \ifempty\p_profile\else
% \pack_framed_profile_box
% \fi
%\fi
@@ -1512,7 +1512,7 @@
\fi
\ifconditional\c_framed_has_height \else
\edef\p_profile{\framedparameter\c!profile}%
- \ifx\p_profile\empty\else
+ \ifempty\p_profile\else
\pack_framed_profile_box
\fi
\fi
@@ -1530,7 +1530,7 @@
\ht\b_framed_normal\d_framed_height
\else
\edef\p_framed_minheight{\framedparameter\c!minheight}%
- \ifx\p_framed_minheight\empty \else
+ \ifempty\p_framed_minheight \else
\ifdim\ht\b_framed_normal<\p_framed_minheight
\ht\b_framed_normal\p_framed_minheight
\fi
@@ -1540,13 +1540,13 @@
\ifx\p_framed_empty\v!yes
\pack_framed_fake_box
\fi
- \ifx\p_framed_anchoring\empty\else
+ \ifempty\p_framed_anchoring\else
\pack_framed_handle_anchoring
\fi
\pack_framed_stop_orientation % moved here at 2014-05-25
\iftrialtypesetting \else
\edef\m_overlay_region{\framedparameter\c!region}%
- \ifx\m_overlay_region\empty\else
+ \ifempty\m_overlay_region\else
\pack_framed_set_region
\fi
\fi
@@ -1579,14 +1579,14 @@
\ifconditional\c_framed_has_frame % real or invisible frame
\pack_framed_add_outline
\fi
- \ifx\p_framed_background\empty \else
+ \ifempty\p_framed_background \else
\edef\p_framed_component{\framedparameter\c!component}%
\pack_framed_add_background
\fi
\fi
\pack_framed_locator_after\p_framed_location
\iftrialtypesetting \else
- \ifx\m_overlay_region\empty\else
+ \ifempty\m_overlay_region\else
\pack_framed_add_region
\fi
\fi
@@ -1630,8 +1630,8 @@
% using the keyword approachs works ok, don't mess with orientation
% directly here using \boxorientation ... it doesn't work that well
\s!orientation\scratchcounter
- \ifx\p_xanchor\empty\else \s!xoffset \p_xanchor\fi
- \ifx\p_yanchor\empty\else \s!yoffset \p_yanchor\fi
+ \ifempty\p_xanchor\else \s!xoffset \p_xanchor\fi
+ \ifempty\p_yanchor\else \s!yoffset \p_yanchor\fi
{\box\b_framed_normal}}}
\installcorenamespace{framedlocatorbefore}
@@ -2172,10 +2172,10 @@
\def\pack_framed_set_foregroundcolor
{\edef\p_framed_foregroundcolor{\framedparameter\c!foregroundcolor}%
- \ifx\p_framed_foregroundcolor\empty\else\dousecolorparameter\p_framed_foregroundcolor\fi}
+ \ifempty\p_framed_foregroundcolor\else\dousecolorparameter\p_framed_foregroundcolor\fi}
\def\pack_framed_do_setups
- {\ifx\p_framed_setups\empty \else
+ {\ifempty\p_framed_setups \else
\setups[\p_framed_setups]% \texsetup (or only one!)
% \fastsetup\p_framed_setup % singular would have been better
\fi}
@@ -2197,6 +2197,7 @@
\bgroup
\synchronizeinlinedirection
\localbegstrut
+ %\aftergrouped{\localendstrut\pack_framed_do_bottom\egroup}%
\aftergroup\localendstrut
\aftergroup\pack_framed_do_bottom
\aftergroup\egroup
@@ -3083,7 +3084,7 @@
\immediateassignment\edef\tempstring{#1\c!bottomframe}\ifx\tempstring\v!on +\plusone\fi
\immediateassignment\edef\tempstring{#1\c!leftframe }\ifx\tempstring\v!on +\plusone\fi
\immediateassignment\edef\tempstring{#1\c!rightframe }\ifx\tempstring\v!on +\plusone\fi
- \immediateassignment\edef\tempstring{#1\c!background }\ifx\tempstring\empty\else+\plusone\fi
+ \immediateassignment\edef\tempstring{#1\c!background }\ifempty\tempstring\else+\plusone\fi
\relax\expandafter\secondoftwoarguments\else\expandafter\firstoftwoarguments\fi}
\protect \endinput
diff --git a/tex/context/base/mkiv/page-txt.mklx b/tex/context/base/mkiv/page-txt.mklx
index b8184e443..ff582e561 100644
--- a/tex/context/base/mkiv/page-txt.mklx
+++ b/tex/context/base/mkiv/page-txt.mklx
@@ -88,7 +88,7 @@
\fi}
\appendtoks
- \ifx\currentlayoutelement\empty\else
+ \ifempty\currentlayoutelement\else
\page_layouts_synchronize_element\currentlayoutelement % brr, can be vertical:horizontal
\fi
\to \everysetuplayoutelement
@@ -251,7 +251,7 @@
\begincsname\??layouttextstrut\layoutelementparameter\c!strut\endcsname
\ignorecrlf
\edef\currentlayoutelementwidth{\layoutelementparameter#width}%
- \ifx\currentlayoutelementwidth\empty\else
+ \ifempty\currentlayoutelementwidth\else
\expandafter\page_layouts_process_element_limited
\fi\p_text
\endgroup}
@@ -500,7 +500,7 @@
\def\page_layouts_left_edge_element_indeed#text#style#color#width%
{\letfromlayoutelementparameter\p_text#text%
- \ifx\p_text\empty
+ \ifempty\p_text
\kern\leftedgewidth
\else
\hbox to \leftedgewidth\bgroup
@@ -517,7 +517,7 @@
\def\page_layouts_right_edge_element_indeed#text#style#color#width%
{\letfromlayoutelementparameter\p_text#text%
- \ifx\p_text\empty
+ \ifempty\p_text
\kern\rightedgewidth
\else
\hbox to \rightedgewidth\bgroup
@@ -536,7 +536,7 @@
\def\page_layouts_left_margin_element_indeed#text#style#color#width#margintoo%
{\letfromlayoutelementparameter\p_text#text%
- \ifx\p_text\empty
+ \ifempty\p_text
\kern\leftmarginwidth
\else
\hbox to \leftmarginwidth\bgroup
@@ -546,7 +546,7 @@
\fi
\ifcase#margintoo\or
\letfromlayoutelementparameter\p_text\c!margintext
- \ifx\p_text\empty\else
+ \ifempty\p_text\else
\kern-\leftmarginwidth
\hbox to \leftmarginwidth\bgroup
\hss
@@ -563,7 +563,7 @@
\def\page_layouts_right_margin_element_indeed#text#style#color#width#margintoo%
{\letfromlayoutelementparameter\p_text#text%
- \ifx\p_text\empty
+ \ifempty\p_text
\kern\rightmarginwidth
\else
\hbox to \rightmarginwidth\bgroup
@@ -573,7 +573,7 @@
\fi
\ifcase#margintoo\or
\letfromlayoutelementparameter\p_text\c!margintext
- \ifx\p_text\empty\else
+ \ifempty\p_text\else
\kern-\rightmarginwidth
\hbox to \rightmarginwidth\bgroup
\p_text % ? styling
@@ -590,8 +590,8 @@
\def\page_layouts_text_body_element_indeed_l_m_r_e
{\letfromlayoutelementparameter\p_text\c!lefttext
- \ifx\p_text\empty
- \ifx\page_layouts_place_extra_text_left\empty\else
+ \ifempty\p_text
+ \ifempty\page_layouts_place_extra_text_left\else
\hbox to \makeupwidth\bgroup
\page_layouts_place_extra_text_left
\hss
@@ -607,7 +607,7 @@
\kern-\makeupwidth
\fi
\letfromlayoutelementparameter\p_text\c!middletext
- \ifx\p_text\empty\else
+ \ifempty\p_text\else
\hbox to \makeupwidth\bgroup
\hss
\page_layouts_process_element_indeed\c!middlestyle\c!middlecolor\c!middlewidth
@@ -616,7 +616,7 @@
\kern-\makeupwidth
\fi
\letfromlayoutelementparameter\p_text\c!righttext
- \ifx\p_text\empty
+ \ifempty\p_text
\kern\makeupwidth
\else
\hbox to \makeupwidth\bgroup
@@ -627,7 +627,7 @@
\def\page_layouts_text_body_element_indeed_e_r_m_l
{\letfromlayoutelementparameter\p_text\c!righttext
- \ifx\p_text\empty\else
+ \ifempty\p_text\else
\hbox to \makeupwidth\bgroup
\page_layouts_process_element_indeed\c!rightstyle\c!rightcolor\c!rightwidth
\hss
@@ -635,7 +635,7 @@
\kern-\makeupwidth
\fi
\letfromlayoutelementparameter\p_text\c!middletext
- \ifx\p_text\empty\else
+ \ifempty\p_text\else
\hbox to \makeupwidth\bgroup
\hss
\page_layouts_process_element_indeed\c!middlestyle\c!middlecolor\c!middlewidth
@@ -644,8 +644,8 @@
\kern-\makeupwidth
\fi
\letfromlayoutelementparameter\p_text\c!lefttext
- \ifx\p_text\empty
- \ifx\page_layouts_place_extra_text_right\empty
+ \ifempty\p_text
+ \ifempty\page_layouts_place_extra_text_right
\kern\makeupwidth
\else
\hbox to \makeupwidth\bgroup
@@ -824,7 +824,7 @@
\else
\let\m_page_layouts_page_number_location\p_strc_pagenumbers_location
\page_layouts_reset_page_number_location
- \ifx\p_strc_pagenumbers_location\empty
+ \ifempty\p_strc_pagenumbers_location
% set otherwise
\orelse\ifx\p_strc_pagenumbers_location\v!none
% set otherwise
@@ -839,7 +839,7 @@
\setbox\scratchbox\hbox{\ignorespaces\layoutelementparameter\c!marginedgetext\removeunwantedspaces}%
\ifzeropt\wd\scratchbox\else
\edef\p_strc_pagenumbers_width{\directpagenumberingparameter\c!width}%
- \ifx\p_strc_pagenumbers_width\empty
+ \ifempty\p_strc_pagenumbers_width
\box\scratchbox\tfskip
\else
\hpack to \p_strc_pagenumbers_width{\box\scratchbox\hss}%
@@ -852,7 +852,7 @@
\setbox\scratchbox\hbox{\ignorespaces\layoutelementparameter\c!marginedgetext\removeunwantedspaces}%
\ifzeropt\wd\scratchbox\else
\edef\p_strc_pagenumbers_width{\directpagenumberingparameter\c!width}%
- \ifx\p_strc_pagenumbers_width\empty
+ \ifempty\p_strc_pagenumbers_width
\tfskip\box\scratchbox
\else
\hpack to \p_strc_pagenumbers_width{\hss\box\scratchbox}%
diff --git a/tex/context/base/mkiv/spac-hor.mkiv b/tex/context/base/mkiv/spac-hor.mkiv
index 0f65eea33..5c7163822 100644
--- a/tex/context/base/mkiv/spac-hor.mkiv
+++ b/tex/context/base/mkiv/spac-hor.mkiv
@@ -210,12 +210,12 @@
%D Here come the handlers (still rather messy ... we need states).
-\newif\ifindentation \indentationtrue % will become a mode
+%newif\ifindentation \indentationtrue % will become a mode
\let\checkindentation\relax
\installmacrostack\checkindentation
-\installmacrostack\ifindentation
+%installmacrostack\ifindentation
\def\spac_indentation_remove
{\ifzeropt\parindent \else
@@ -225,20 +225,20 @@
\fi}
\def\spac_indentation_kill_indeed
- {\global\indentationfalse
+ {%\global\indentationfalse
\spac_indentation_remove}
\def\spac_indentation_do_toggle_indeed
- {\global\indentationfalse
+ {%\global\indentationfalse
\glet\checkindentation\spac_indentation_no_toggle_indeed
\spac_indentation_remove}
\def\spac_indentation_no_toggle_indeed
- {\global\indentationtrue
+ {%\global\indentationtrue
\glet\checkindentation\spac_indentation_do_toggle_indeed}
\def\spac_indentation_do_indeed
- {\global\indentationtrue}
+ {}%\global\indentationtrue}
\def\spac_indentation_do_toggle
{\glet\checkindentation\spac_indentation_do_toggle_indeed}
@@ -264,13 +264,13 @@
\def\spac_indentation_variant_no % made global
{\ifinpagebody \else
- \global\indentationfalse
+ %\global\indentationfalse
\glet\checkindentation\spac_indentation_no_next_check
\fi}
\def\nonoindentation % bv bij floats
{\ifinpagebody \else
- \global\indentationtrue
+ %\global\indentationtrue
\glet\checkindentation\spac_indentation_do_indeed
\fi}
diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv
index 6ed1847c5..e75ea4e1b 100644
--- a/tex/context/base/mkiv/spac-ver.mkiv
+++ b/tex/context/base/mkiv/spac-ver.mkiv
@@ -2655,6 +2655,8 @@
% test \par
% test \par
+% only main vertical list
+
\unexpanded\def\ignoreparskip{\c_spac_vspacing_ignore_parskip\plusone}
\protect \endinput
diff --git a/tex/context/base/mkiv/spac-ver.mkxl b/tex/context/base/mkiv/spac-ver.mkxl
index 0151fe311..f719e1f09 100644
--- a/tex/context/base/mkiv/spac-ver.mkxl
+++ b/tex/context/base/mkiv/spac-ver.mkxl
@@ -88,7 +88,7 @@
{\edef\normallineheight{\interlinespaceparameter\c!line}%
\iflocalinterlinespace \else
\edef\m_spac_normallineheight{\bodyfontinterlinespace}%
- \ifx\m_spac_normallineheight\empty \else
+ \ifempty\m_spac_normallineheight \else
\let\normallineheight\m_spac_normallineheight
\fi
\fi}
@@ -144,7 +144,7 @@
\fi}
\def\spac_linespacing_set_relative_interlinespace
- {\ifx\currentrelativeinterlinespace\empty\else
+ {\ifempty\currentrelativeinterlinespace\else
\spacing\currentrelativeinterlinespace
\fi}
@@ -158,7 +158,7 @@
\unexpanded\def\useinterlinespaceparameter#1% see footnotes
{\edef\m_spac_interlinespace{#1\c!interlinespace}%
- \ifx\m_spac_interlinespace\empty \else
+ \ifempty\m_spac_interlinespace \else
\spac_linespacing_setup_use
\fi}
@@ -210,7 +210,7 @@
\unexpanded\def\dosetupcheckedinterlinespace#1% often a chain
{\edef\p_spac_checked_interlinespace{#1}%
- \ifx\p_spac_checked_interlinespace\empty
+ \ifempty\p_spac_checked_interlinespace
\spac_linespacing_synchronize_local
\orelse\ifcsname\namedinterlinespacehash\p_spac_checked_interlinespace\s!parent\endcsname % we could have a \s!check
\push_macro_currentinterlinespace
@@ -373,7 +373,7 @@
\def\spac_whitespace_setup_yes[#1]%
{\edef\m_spac_whitespace_asked{#1}%
- \ifx\m_spac_whitespace_asked\empty
+ \ifempty\m_spac_whitespace_asked
\spac_whitespace_setup_nop
\else
\let\v_spac_whitespace_current\m_spac_whitespace_asked
@@ -1524,7 +1524,7 @@
\def\spac_grids_expand_snapper#1%
{\edef\m_spac_snapper
- {\ifx\m_spac_snapper\empty\else\m_spac_snapper,\fi
+ {\ifempty\m_spac_snapper\else\m_spac_snapper,\fi
\ifcsname\??gridsnappersets#1\endcsname
\lastnamedcs\else#1%
\fi}}
@@ -1546,7 +1546,7 @@
\unexpanded\def\usegridparameter#1% no checking here
{\edef\m_spac_grid_asked{#1\c!grid}%
- \ifx\m_spac_grid_asked\empty
+ \ifempty\m_spac_grid_asked
\attribute \snapvboxattribute\attributeunsetvalue
\else
\spac_grids_snap_value_set\m_spac_grid_asked
@@ -1742,7 +1742,7 @@
\spac_grids_check_nop
\orelse\ifx\askedgridmode\v!off % for taco and luigi
\spac_grids_check_nop
- \orelse\ifx\askedgridmode\empty % to be sure
+ \orelse\ifempty\askedgridmode % to be sure
\spac_grids_check_nop
\else
\spac_grids_check_yes
@@ -1753,12 +1753,12 @@
\unexpanded\def\checkgridmethod#1%
{\edef\p_grid{#1}%
- \ifx\p_grid\empty
+ \ifempty\p_grid
\let\checkedgridmethod\empty
\let\checkedgridscope \v!local
\else
\splitatcolon\p_grid\checkedgridscope\checkedgridmethod
- \ifx\checkedgridmethod\empty
+ \ifempty\checkedgridmethod
\ifx\checkedgridscope\v!local\orelse\ifx\checkedgridscope\v!global\else
\let\checkedgridmethod\checkedgridscope
\let\checkedgridscope \v!local
@@ -1769,7 +1769,7 @@
\unexpanded\def\applygridmethod#1#2#3% content localsettings (used in head rendering)
{\checkgridmethod{#1}%
\ifx\checkedgridscope\v!global
- \ifx\checkedgridmethod\empty \else
+ \ifempty\checkedgridmethod \else
% we assume that the call is grouped because grouping here has the side
% effect that the eventually constructed line will get the value outside
% the group
@@ -1784,7 +1784,7 @@
% we really need that in this case (compatibility etc etc) so here we don't
% het an already done hit (otherwise we would not snap)
\hbox\bgroup
- \ifx\checkedgridmethod\empty\orelse\ifconditional\headisdisplay
+ \ifempty\checkedgridmethod\orelse\ifconditional\headisdisplay
#2%
\fi
\snaptogrid[\checkedgridmethod]\hbox{#3}%
@@ -2165,7 +2165,7 @@
\unexpanded\def\useblankparameter#1% faster local variant
{\edef\m_spac_blank_asked{#1\c!blank}%
- \ifx\m_spac_blank_asked\empty\else
+ \ifempty\m_spac_blank_asked\else
\directvspacing\m_spac_blank_asked
\fi}
@@ -2200,7 +2200,7 @@
}
\def\setupvspacing_nop
- {\ifx\empty\currentvspacing % mistakenly had an \else
+ {\ifempty\currentvspacing % mistakenly had an \else
\let\currentvspacing\s!default
\fi
\spac_whitespace_setup_nop}
@@ -2426,7 +2426,7 @@
{\let\m_spac_hanging_location\empty
\setupcurrenthanging[#1]}%
{\edef\m_spac_hanging_location{#1}}%
- \ifx\m_spac_hanging_location\empty
+ \ifempty\m_spac_hanging_location
\edef\m_spac_hanging_location{\directhangingparameter\c!location}%
\fi
\dowithnextboxcs\spac_hanging_finish\hbox}
@@ -2552,7 +2552,7 @@
\unexpanded\def\checkedblank[#1]%
{\edef\p_blank{#1}%
- \ifx\p_blank\empty
+ \ifempty\p_blank
% ignore
\orelse\ifx\p_blank\v!none
% ignore
@@ -2569,7 +2569,7 @@
\unexpanded\def\prerollblank[#1]%
{\begingroup
\edef\p_blank{#1}%
- \ifx\p_blank\empty
+ \ifempty\p_blank
\global\prerolledblank\zeropoint
\orelse\ifx\p_blank\v!none
\global\prerolledblank\zeropoint
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index fe106c62b..d153ea9cd 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 551550e7d..eb92931f3 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-itm.mklx b/tex/context/base/mkiv/strc-itm.mklx
index 60fe3ee74..2f3cc8425 100644
--- a/tex/context/base/mkiv/strc-itm.mklx
+++ b/tex/context/base/mkiv/strc-itm.mklx
@@ -248,12 +248,12 @@
% todo: \dodosetreference -> \strc_counters_register_component (to be checked)
\def\strc_itemgroups_insert_reference % we will make a decent number helper
- {\iftrialtypesetting \orelse \ifx\currentitemreference \empty \else
+ {\iftrialtypesetting \orelse \ifempty\currentitemreference \else
\strc_itemgroups_insert_reference_indeed
\fi}
\def\strc_itemgroups_insert_extra_reference
- {\iftrialtypesetting \orelse \ifx\currentitemreference \empty \else
+ {\iftrialtypesetting \orelse \ifempty\currentitemreference \else
\normalexpanded{\textreference[\currentitemreference]{\strc_itemgroups_extra_symbol}}%
\fi}
@@ -396,9 +396,9 @@
\def\strc_itemgroups_process_option#option%
{\edef\itemgroupconstantvalue{#option}%
- \ifx\itemgroupconstantvalue\empty\else
+ \ifempty\itemgroupconstantvalue\else
\splitatasterisk\itemgroupconstantvalue\itemgroupfirst\itemgroupsecond
- \ifx\itemgroupsecond\empty
+ \ifempty\itemgroupsecond
\let\itemgroupsecond\itemgroupfirst
\let\itemgroupfirst\!!plusone
\fi
@@ -424,7 +424,7 @@
\setvalue{\??itemgroupkeyword\v!unpacked }{\strc_itemgroups_process_set_option_unpack}
\setvalue{\??itemgroupkeyword\v!intro }{\settrue\c_strc_itemgroups_intro} % here? not set to false
\setvalue{\??itemgroupkeyword\v!autointro }{\settrue\c_strc_itemgroups_auto_intro}
-\setvalue{\??itemgroupkeyword\v!broad }{\ifx\itemgroupfirst\empty
+\setvalue{\??itemgroupkeyword\v!broad }{\ifempty\itemgroupfirst
\let\itemgroupfirst\!!plusone
\fi
\letitemgroupparameter\c!factor\itemgroupfirst}
@@ -450,7 +450,7 @@
\setvalue{\??itemgroupkeyword\v!joinedup }{\settrue\c_strc_itemgroups_joined
\strc_itemgroups_process_set_option_pack}
\setvalue{\??itemgroupkeyword\v!notjoinedup}{\setfalse\c_strc_itemgroups_joined}
-\setvalue{\??itemgroupkeyword\v!serried }{\edef\itemgroupfirst{-\ifx\itemgroupfirst\empty1\else\itemgroupfirst\fi}%
+\setvalue{\??itemgroupkeyword\v!serried }{\edef\itemgroupfirst{-\ifempty\itemgroupfirst1\else\itemgroupfirst\fi}%
\letitemgroupparameter\c!factor\itemgroupfirst}
\setvalue{\??itemgroupkeyword\v!stopper }{\letitemgroupparameter\c!placestopper\v!yes} % keep {}
\setvalue{\??itemgroupkeyword\v!nostopper }{\letitemgroupparameter\c!placestopper\v!no} % keep {}
@@ -658,7 +658,7 @@
\def\strc_itemgroups_increment_item_counter
{\ifconditional\c_strc_itemgroups_sub \else
- \ifconditional\c_strc_itemgroups_symbol \else % \ifx\strc_itemgroups_extra_symbol\empty
+ \ifconditional\c_strc_itemgroups_symbol \else % \ifempty\strc_itemgroups_extra_symbol
\strc_counters_increment_sub\v_strc_itemgroups_counter\currentitemlevel
\fi
\fi}
@@ -733,7 +733,7 @@
\def\strc_itemgroups_set_symbol#symbol%
{\edef\strc_itemgroups_tmp_symbol{#symbol}%
- \ifx\strc_itemgroups_tmp_symbol\empty \else
+ \ifempty\strc_itemgroups_tmp_symbol \else
\doifelsesymboldefined\strc_itemgroups_tmp_symbol
\strc_itemgroups_set_symbol_symbol
{\doifelseconversiondefined\strc_itemgroups_tmp_symbol
@@ -813,9 +813,9 @@
\def\strc_itemgroups_start_indeed[#options][#settings]%
{\edef\itemgroupoptions{\itemgroupparameter\c!option}%
\edef\itemgroupextraoptions{#options}%
- \ifx\itemgroupoptions\empty
+ \ifempty\itemgroupoptions
\let\itemgroupoptions\itemgroupextraoptions
- \orelse\ifx\itemgroupextraoptions\empty
+ \orelse\ifempty\itemgroupextraoptions
% ok
\else
\edef\itemgroupoptions{\itemgroupoptions,\itemgroupextraoptions}%
@@ -844,7 +844,7 @@
\fi
\c_strc_itemgroups_n_of_items\zerocount
\strc_itemgroups_check_n_of_items
- \ifx\itemgroupoptions\empty
+ \ifempty\itemgroupoptions
\strc_itemgroups_setup_symbol_default
\strc_itemgroups_reset_continue_state
\setupcurrentitemgroup[#settings]%
@@ -896,9 +896,9 @@
\strc_counters_restart_sub\v_strc_itemgroups_counter\currentitemlevel{\numexpr\itemgroupparameter\c!start-\plusone\relax}%
\fi
\fi
- \ifx\strc_itemgroups_used_symbol\empty
+ \ifempty\strc_itemgroups_used_symbol
\strc_itemgroups_set_symbol\strc_itemgroups_asked_symbol % ** default value
- \ifx\strc_itemgroups_used_symbol\empty
+ \ifempty\strc_itemgroups_used_symbol
\let\currentitemgroupsymbol\currentitemlevel % ** fall back
\fi
\fi
@@ -932,7 +932,7 @@
\advance\leftskip\d_strc_itemgroups_list_width\relax
\fi
\fi
- \ifx\m_strc_itemgroups_repeat_start\empty
+ \ifempty\m_strc_itemgroups_repeat_start
\let\currentitemgroupconversionset \currentitemgroupsymbol
\edef\currentitemgroupsegments {\currentitemlevel}%
\else
@@ -1453,13 +1453,13 @@
{\box\b_strc_itemgroups\hskip\itemgroupparameter\c!distance}}}
\def\strc_itemgroups_make_destination_box
- {\iftrialtypesetting \orelse \ifx\m_strc_itemgroups_destination\empty \else
+ {\iftrialtypesetting \orelse \ifempty\m_strc_itemgroups_destination \else
\setbox\b_strc_itemgroups\hbox{\directgotobox{\box\b_strc_itemgroups}[\m_strc_itemgroups_destination]}%
\fi}
\def\strc_itemgroups_check_indenting
{\setfalse\c_strc_itemgroups_indented_first
- \ifx\m_strc_itemgroups_indenting\empty \else
+ \ifempty\m_strc_itemgroups_indenting \else
\normalexpanded{\setupindenting[\v!reset,\v!yes,\m_strc_itemgroups_indenting]}%
\ifconditional\c_spac_indentation_indent_first % better is to have a mode
\doifnot{\itemgroupparameter\c!alignsymbol}\v!yes
@@ -1469,7 +1469,7 @@
\def\strc_itemgroups_check_for_repeated
{\ifconditional\c_strc_itemgroups_repeat
- \ifx\m_strc_itemgroups_repeat_start\empty
+ \ifempty\m_strc_itemgroups_repeat_start
\edef\m_strc_itemgroups_repeat_start{\currentitemlevel}%
\fi
\else
@@ -1546,7 +1546,7 @@
\unexpanded\def\strc_itemgroups_set_text_item_distance
{\edef\m_strc_itemgroups_text_distance{\itemgroupparameter\c!textdistance}%
- \ifx\m_strc_itemgroups_text_distance\empty
+ \ifempty\m_strc_itemgroups_text_distance
%
\orelse\ifcsname\??itemgroupdistance\m_strc_itemgroups_text_distance\endcsname
\lastnamedcs
diff --git a/tex/context/base/mkiv/supp-box.mkxl b/tex/context/base/mkiv/supp-box.mkxl
index 912eefc63..454e1fab7 100644
--- a/tex/context/base/mkiv/supp-box.mkxl
+++ b/tex/context/base/mkiv/supp-box.mkxl
@@ -1252,7 +1252,7 @@
%
% \unexpanded\def\limitatetext#1#2#3% \expanded added 2003/01/16
% {\splitatcomma{#2}\leftlimit\rightlimit
-% \ifx\rightlimit\empty
+% \ifempty\rightlimit
% \normallimitatetext {#1}\leftlimit {#3}%
% \else
% \speciallimitatetext{#1}\leftlimit\rightlimit{#3}%
@@ -1262,7 +1262,7 @@
{\splitatcomma{#2}\leftlimit\rightlimit
\limitated
left \leftlimit
- \ifx\rightlimit\empty\else
+ \ifempty\rightlimit\else
right \rightlimit
\fi
strip true
diff --git a/tex/context/base/mkiv/syst-aux.lua b/tex/context/base/mkiv/syst-aux.lua
index e28e23be0..09232488d 100644
--- a/tex/context/base/mkiv/syst-aux.lua
+++ b/tex/context/base/mkiv/syst-aux.lua
@@ -409,7 +409,12 @@ implement {
arguments = "integer",
actions = function(n)
statistics.stoptiming("whatever")
- context("%0.9f",statistics.elapsed("whatever")/(n > 0 and n or 1))
+ local t = statistics.elapsed("whatever")/(n > 0 and n or 1)
+ if t > 0 then
+ context("%0.9f",t)
+ else
+ context(0)
+ end
end
}
@@ -835,3 +840,99 @@ implement {
public = true,
actions = function() getshape("widowpenalties") end,
}
+
+if CONTEXTLMTXMODE > 0 then
+
+ -- This is kind of tricky and might not work for all csnames but as long as we use
+ -- it in a controlled way, we're okay. The engine implementation might be changed
+ -- a bit (no need to go through strings, but fetching a cs index and passing that
+ -- back also takes time).
+
+ -- Another approach is to have the predefined stack operate use private stacks and
+ -- then the pop doesn't need the cs. But ... we then also need to store stuff in
+ -- the format so that complicates maters more than I'm willing to do.
+
+ local insert, remove = table.insert, table.remove
+
+ local push_macro = token.push_macro
+ local pop_macro = token.pop_macro
+ local scan_csname = token.scan_csname
+
+ local stack = table.setmetatableindex("table")
+
+ local report = logs.reporter("system","macrostack")
+
+ local function pushmacro(name,global)
+ local s = push_macro(name,global)
+ if s then
+ insert(stack[name],s)
+ else
+ report("no macro %a",name)
+ insert(stack[name],false)
+ end
+ end
+
+ local function popmacro(name)
+ local s = remove(stack[name])
+ if s then
+ pop_macro(s)
+ else
+ -- error
+ end
+ end
+
+ tokens.pushmacro = pushmacro
+ tokens.popmacro = popmacro
+
+ interfaces.implement {
+ name = "localpushmacro",
+ public = true,
+ protected = true,
+ actions = function()
+ pushmacro(scan_csname())
+ end
+ }
+
+ interfaces.implement {
+ name = "globalpushmacro",
+ public = true,
+ protected = true,
+ actions = function()
+ pushmacro(scan_csname(),true)
+ end
+ }
+
+ interfaces.implement {
+ name = "localpopmacro",
+ public = true,
+ protected = true,
+ actions = function()
+ popmacro(scan_csname())
+ end
+ }
+
+ interfaces.implement {
+ name = "globalpopmacro",
+ public = true,
+ protected = true,
+ actions = function()
+ popmacro(scan_csname())
+ end
+ }
+
+ interfaces.implement {
+ name = "showmacrostack",
+ public = true,
+ protected = true,
+ actions = function()
+ local n = scan_csname()
+ local s = stack[n]
+ local m = #s
+ report("%s : %i stack slots used",n,m)
+ for i=1,m do
+ report("% 3i %S",i,s[i])
+ end
+ end
+ }
+
+end
diff --git a/tex/context/base/mkiv/syst-aux.mkxl b/tex/context/base/mkiv/syst-aux.mkxl
index be48007c9..1506e26b1 100644
--- a/tex/context/base/mkiv/syst-aux.mkxl
+++ b/tex/context/base/mkiv/syst-aux.mkxl
@@ -194,22 +194,38 @@
%D The next set of macros just do nothing, except that they get rid of a number of
%D arguments.
-\def\gobbleoneargument #1{}
-\def\gobbletwoarguments #1#2{}
-\def\gobblethreearguments#1#2#3{}
-\def\gobblefourarguments #1#2#3#4{}
-\def\gobblefivearguments #1#2#3#4#5{}
-\def\gobblesixarguments #1#2#3#4#5#6{}
-\def\gobblesevenarguments#1#2#3#4#5#6#7{}
-\def\gobbleeightarguments#1#2#3#4#5#6#7#8{}
-\def\gobbleninearguments #1#2#3#4#5#6#7#8#9{}
-\def\gobbletenarguments #1{\gobbleninearguments}
-
-\def\gobbleoneoptional [#1]{}
-\def\gobbletwooptionals [#1][#2]{}
-\def\gobblethreeoptionals[#1][#2][#3]{}
-\def\gobblefouroptionals [#1][#2][#3][#4]{}
-\def\gobblefiveoptionals [#1][#2][#3][#4][#5]{}
+% \def\gobbleoneargument #1{}
+% \def\gobbletwoarguments #1#2{}
+% \def\gobblethreearguments#1#2#3{}
+% \def\gobblefourarguments #1#2#3#4{}
+% \def\gobblefivearguments #1#2#3#4#5{}
+% \def\gobblesixarguments #1#2#3#4#5#6{}
+% \def\gobblesevenarguments#1#2#3#4#5#6#7{}
+% \def\gobbleeightarguments#1#2#3#4#5#6#7#8{}
+% \def\gobbleninearguments #1#2#3#4#5#6#7#8#9{}
+% \def\gobbletenarguments #1{\gobbleninearguments}
+
+% \def\gobbleoneoptional [#1]{}
+% \def\gobbletwooptionals [#1][#2]{}
+% \def\gobblethreeoptionals[#1][#2][#3]{}
+% \def\gobblefouroptionals [#1][#2][#3][#4]{}
+% \def\gobblefiveoptionals [#1][#2][#3][#4][#5]{}
+
+\def\gobbleoneargument #0{}
+\def\gobbletwoarguments #0#0{}
+\def\gobblethreearguments #0#0#0{}
+\def\gobblefourarguments #0#0#0#0{}
+\def\gobblefivearguments #0#0#0#0{}
+\def\gobblesixarguments #0#0#0#0{}
+\def\gobblesevenarguments #0#0#0#0#0{}
+\def\gobbleeightarguments #0#0#0#0#0#0{}
+\def\gobbleninearguments #0#0#0#0#0#0#0{}
+
+\def\gobbleoneoptional [#0]{}
+\def\gobbletwooptionals [#0][#0]{}
+\def\gobblethreeoptionals[#0][#0][#0]{}
+\def\gobblefouroptionals [#0][#0][#0][#0]{}
+\def\gobblefiveoptionals [#0][#0][#0][#0][#0]{}
%D Reserved macros for tests:
@@ -667,7 +683,7 @@
\unexpanded\def\doifelseempty#1%
{\def\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
@@ -677,7 +693,7 @@
\unexpanded\def\doifempty#1%
{\def\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
@@ -685,7 +701,7 @@
\unexpanded\def\doifnotempty#1%
{\def\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
@@ -1017,7 +1033,7 @@
\unexpanded\def\processaction[#1]#2[%
{\edef\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\let\syst_helpers_do_compare_process_action\syst_helpers_do_compare_process_action_a
\else
\let\syst_helpers_do_compare_process_action\syst_helpers_do_compare_process_action_b
@@ -1042,7 +1058,7 @@
\unexpanded\def\processfirstactioninset[#1]%
{\edef\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\expandafter\processaction
\else
\expandafter\syst_helpers_process_first_action_in_set_indeed
@@ -1077,7 +1093,7 @@
\unexpanded\def\processallactionsinset[#1]%
{\edef\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\expandafter\processaction
\else
\expandafter\syst_helpers_process_all_actions_in_set_indeed
@@ -1140,7 +1156,7 @@
\unexpanded\def\doifelseinstring#1%
{\edef\m_syst_sub_string{#1}% expand #1 here
- \ifx\m_syst_sub_string\empty
+ \ifempty\m_syst_sub_string
\expandafter\thirdofthreearguments
\else
\expandafter\syst_helpers_do_if_in_string_else_indeed
@@ -1157,7 +1173,7 @@
\unexpanded\def\doifinstring#1%%
{\edef\m_syst_sub_string{#1}% expand #1 here
- \ifx\m_syst_sub_string\empty
+ \ifempty\m_syst_sub_string
\expandafter\gobbletwoarguments
\else
\expandafter\syst_helpers_do_if_in_string_indeed
@@ -1172,7 +1188,7 @@
\unexpanded\def\doifnotinstring#1%%
{\edef\m_syst_sub_string{#1}% expand #1 here
- \ifx\m_syst_sub_string\empty
+ \ifempty\m_syst_sub_string
\expandafter\gobbletwoarguments
\else
\expandafter\syst_helpers_do_if_not_in_string_indeed
@@ -1296,7 +1312,7 @@
\unexpanded\def\makerawcommalist[#1]#2% use \processnext ... here
{\def\syst_helpers_do_make_raw_comma_list##1% we don't expand ##1
- {\ifx#2\empty
+ {\ifempty#2%
\def#2{##1}%
\else
\expandafter\def\expandafter#2\expandafter{#2,##1}%
@@ -1385,7 +1401,7 @@
{\edef\m_syst_string_one{#1}%
\edef\m_syst_string_two{undefined}% better \!!undefined
\let\m_syst_helpers_process_action\m_syst_string_two
- \ifx\m_syst_string_one\empty
+ \ifempty\m_syst_string_one
\expandafter\syst_helpers_do_raw_process_action\expandafter[\s!default][#3]%
\else
\expandafter\syst_helpers_do_raw_process_action\expandafter[\m_syst_string_one][#3]%
@@ -2607,41 +2623,77 @@
%D The next six macros (dedicated to Taco) can conveniently used to select
%D arguments. Their names explain their functionality.
+% \def\firstofoneargument #1{#1}
+%
+% \def\firstoftwoarguments #1#2{#1}
+% \def\secondoftwoarguments #1#2{#2}
+%
+% \def\firstofthreearguments #1#2#3{#1}
+% \def\secondofthreearguments #1#2#3{#2}
+% \def\thirdofthreearguments #1#2#3{#3}
+%
+% \def\firstoffourarguments #1#2#3#4{#1}
+% \def\secondoffourarguments #1#2#3#4{#2}
+% \def\thirdoffourarguments #1#2#3#4{#3}
+% \def\fourthoffourarguments #1#2#3#4{#4}
+%
+% \def\firstoffivearguments #1#2#3#4#5{#1}
+% \def\secondoffivearguments #1#2#3#4#5{#2}
+% \def\thirdoffivearguments #1#2#3#4#5{#3}
+% \def\fourthoffivearguments #1#2#3#4#5{#4}
+% \def\fifthoffivearguments #1#2#3#4#5{#5}
+%
+% \def\firstofsixarguments #1#2#3#4#5#6{#1}
+% \def\secondofsixarguments#1#2#3#4#5#6{#2}
+% \def\thirdofsixarguments #1#2#3#4#5#6{#3}
+% \def\fourthofsixarguments#1#2#3#4#5#6{#4}
+% \def\fifthofsixarguments #1#2#3#4#5#6{#5}
+% \def\sixthofsixarguments #1#2#3#4#5#6{#6}
+
\def\firstofoneargument #1{#1}
-\def\firstoftwoarguments #1#2{#1}
-\def\secondoftwoarguments #1#2{#2}
+\def\firstoftwoarguments #1#0{#1}
+\def\secondoftwoarguments #0#2{#2}
-\def\firstofthreearguments #1#2#3{#1}
-\def\secondofthreearguments #1#2#3{#2}
-\def\thirdofthreearguments #1#2#3{#3}
+\def\firstofthreearguments #1#0#0{#1}
+\def\secondofthreearguments #0#2#0{#2}
+\def\thirdofthreearguments #0#0#3{#3}
-\def\firstoffourarguments #1#2#3#4{#1}
-\def\secondoffourarguments #1#2#3#4{#2}
-\def\thirdoffourarguments #1#2#3#4{#3}
-\def\fourthoffourarguments #1#2#3#4{#4}
+\def\firstoffourarguments #1#0#0#0{#1}
+\def\secondoffourarguments #0#2#0#0{#2}
+\def\thirdoffourarguments #0#0#3#0{#3}
+\def\fourthoffourarguments #0#0#0#4{#4}
-\def\firstoffivearguments #1#2#3#4#5{#1}
-\def\secondoffivearguments #1#2#3#4#5{#2}
-\def\thirdoffivearguments #1#2#3#4#5{#3}
-\def\fourthoffivearguments #1#2#3#4#5{#4}
-\def\fifthoffivearguments #1#2#3#4#5{#5}
+\def\firstoffivearguments #1#0#0#0#0{#1}
+\def\secondoffivearguments #0#2#0#0#0{#2}
+\def\thirdoffivearguments #0#0#3#0#0{#3}
+\def\fourthoffivearguments #0#0#0#4#0{#4}
+\def\fifthoffivearguments #0#0#0#0#5{#5}
-\def\firstofsixarguments #1#2#3#4#5#6{#1}
-\def\secondofsixarguments#1#2#3#4#5#6{#2}
-\def\thirdofsixarguments #1#2#3#4#5#6{#3}
-\def\fourthofsixarguments#1#2#3#4#5#6{#4}
-\def\fifthofsixarguments #1#2#3#4#5#6{#5}
-\def\sixthofsixarguments #1#2#3#4#5#6{#6}
+\def\firstofsixarguments #1#0#0#0#0#0{#1}
+\def\secondofsixarguments#0#2#0#0#0#0{#2}
+\def\thirdofsixarguments #0#0#3#0#0#0{#3}
+\def\fourthofsixarguments#0#0#0#4#0#0{#4}
+\def\fifthofsixarguments #0#0#0#0#5#0{#5}
+\def\sixthofsixarguments #0#0#0#0#0#6{#6}
+
+% \unexpanded\def\firstofoneunexpanded #1{#1}
+%
+% \unexpanded\def\firstoftwounexpanded #1#2{#1}
+% \unexpanded\def\secondoftwounexpanded #1#2{#2}
+%
+% \unexpanded\def\firstofthreeunexpanded #1#2#3{#1}
+% \unexpanded\def\secondofthreeunexpanded#1#2#3{#2}
+% \unexpanded\def\thirdofthreeunexpanded #1#2#3{#3}
\unexpanded\def\firstofoneunexpanded #1{#1}
-\unexpanded\def\firstoftwounexpanded #1#2{#1}
-\unexpanded\def\secondoftwounexpanded #1#2{#2}
+\unexpanded\def\firstoftwounexpanded #1#0{#1}
+\unexpanded\def\secondoftwounexpanded #0#2{#2}
-\unexpanded\def\firstofthreeunexpanded #1#2#3{#1}
-\unexpanded\def\secondofthreeunexpanded#1#2#3{#2}
-\unexpanded\def\thirdofthreeunexpanded #1#2#3{#3}
+\unexpanded\def\firstofthreeunexpanded #1#0#0{#1}
+\unexpanded\def\secondofthreeunexpanded#0#2#0{#2}
+\unexpanded\def\thirdofthreeunexpanded #0#0#3{#3}
%D \macros
%D {globalletempty,letempty,
@@ -4414,7 +4466,7 @@
\unexpanded\def\removetoks#1\from#2%
{\def\syst_helpers_remove_toks##1#1##2\empty\empty\empty##3^^^^0004%
{\def\m_syst_string_one{##3}%
- \ifx\m_syst_string_one\empty#2{##1}\else#2{##1##2}\fi}%
+ \ifempty\m_syst_string_one#2{##1}\else#2{##1##2}\fi}%
\expandafter\syst_helpers_remove_toks\the#2\empty\empty\empty#1\empty\empty\empty^^^^0004}
%D Also:
@@ -4481,7 +4533,7 @@
{\def\syst_helpers_split_string##1#2##2\empty\empty\empty##3\\%
{\def#3{##1}%
\def\syst_helpers_split_string{##3}%
- \ifx\syst_helpers_split_string\empty
+ \ifempty\syst_helpers_split_string
\let#4\empty
\else
\def#4{##2}%
@@ -4495,7 +4547,7 @@
\let#4\empty
\doloop
{\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib
- \ifx\asciib\empty
+ \ifempty\asciib
\exitloop
\else
% not \edef#3{\ifx#3\empty\else#3#2\fi\asciia} else
@@ -4503,7 +4555,7 @@
\edef#3{\ifcase\recurselevel\or\else#3#2\fi\asciia}%
\let#4\asciib
\fi}%
- \ifx#3\empty\let#3\asciic\fi}
+ \ifempty#3\let#3\asciic\fi}
%D \macros
%D {beforetestandsplitstring,
@@ -4512,17 +4564,17 @@
\unexpanded\def\beforetestandsplitstring#1\at#2\to#3%
{\def\syst_helpers_split_string##1#2##2#2##3##4\\%
- {\ifx##3\empty\let#3\empty\else\def#3{##1}\fi}%
+ {\ifempty##3\let#3\empty\else\def#3{##1}\fi}%
\expandafter\syst_helpers_split_string#1#2#2\empty\\}
\unexpanded\def\aftertestandsplitstring#1\at#2\to#3%
{\def\syst_helpers_split_string ##1#2##2@@@##3##4\\%
- {\ifx##3\empty\let#3\empty\else\def#3{##2}\fi}%
+ {\ifempty##3\let#3\empty\else\def#3{##2}\fi}%
\expandafter\syst_helpers_split_string #1@@@#2@@@\empty\\}
\def\testandsplitstring#1\at#2\to#3\and#4%
{\def\syst_helpers_split_string##1#2##2#2##3##4\\%
- {\ifx##3\empty\let#3\empty\let#4\empty\else\def#3{##1}\def#4{##2}\fi}%
+ {\ifempty##3\let#3\empty\let#4\empty\else\def#3{##1}\def#4{##2}\fi}%
\expandafter\syst_helpers_split_string#1#2#2\empty\\}
%D \macros
@@ -4613,18 +4665,18 @@
%D The faster alternatives are:
\unexpanded\def\appendtocommalist#1#2%
- {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}
+ {\dodoglobal\edef#2{\ifempty#2\else#2,\fi#1}}
\unexpanded\def\prependtocommalist#1#2%
- {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}
+ {\dodoglobal\edef#2{#1\ifempty#2\else,#2\fi}}
\unexpanded\def\addtocommalist#1#2% {item} \cs
{\rawdoifelseinset{#1}#2\resetglobal
- {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}}
+ {\dodoglobal\edef#2{\ifempty#2\else#2,\fi#1}}}
\unexpanded\def\pretocommalist#1#2% {item} \cs
{\rawdoifelseinset{#1}#2\resetglobal
- {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}}
+ {\dodoglobal\edef#2{#1\ifempty#2\else,#2\fi}}}
\unexpanded\def\robustdoifelseinset#1#2%
{\edef\m_syst_string_one{\detokenize\expandafter{\normalexpanded{#1}}}%
@@ -4635,11 +4687,11 @@
\unexpanded\def\robustaddtocommalist#1#2% {item} \cs
{\robustdoifelseinset{#1}#2\resetglobal
- {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}}
+ {\dodoglobal\edef#2{\ifempty#2\else#2,\fi#1}}}
\unexpanded\def\robustpretocommalist#1#2% {item} \cs
{\robustdoifelseinset{#1}#2\resetglobal
- {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}}
+ {\dodoglobal\edef#2{#1\ifempty#2\else,#2\fi}}}
\unexpanded\def\xsplitstring#1#2% \cs {str}
{\def\syst_helpers_split_string##1,#2,##2,#2,##3\\%
@@ -4655,10 +4707,10 @@
{\rawdoifelseinset{#1}#2%
{\normalexpanded{\xsplitstring\noexpand#2{#1}}%
\dodoglobal\edef#2%
- {\ifx\m_syst_string_one\empty
+ {\ifempty\m_syst_string_one
\m_syst_string_two
\else
- \m_syst_string_one\ifx\m_syst_string_two\empty\else,\m_syst_string_two\fi
+ \m_syst_string_one\ifempty\m_syst_string_two\else,\m_syst_string_two\fi
\fi}}
\resetglobal}
@@ -4674,11 +4726,11 @@
\def\syst_helpers_substitute_in_comma_list_step#1%
{\edef\m_syst_string_three{#1}%
\ifx\m_syst_string_one\m_syst_string_three
- \ifx\m_syst_string_two\empty \else
- \edef\m_syst_string_four{\ifx\m_syst_string_four\empty\else\m_syst_string_four,\fi\m_syst_string_two}%
+ \ifempty\m_syst_string_two \else
+ \edef\m_syst_string_four{\ifempty\m_syst_string_four\else\m_syst_string_four,\fi\m_syst_string_two}%
\fi
\else
- \edef\m_syst_string_four{\ifx\m_syst_string_four\empty\else\m_syst_string_four,\fi#1}%
+ \edef\m_syst_string_four{\ifempty\m_syst_string_four\else\m_syst_string_four,\fi#1}%
\fi}
\unexpanded\def\substituteincommalist#1#2#3% old, new, list (slooow)
@@ -4717,8 +4769,8 @@
\def\syst_helpers_replace_in_comma_list_step#1%
{\ifnum\commalistcounter=\c_syst_helpers_comma_list_index\relax
- \ifx\newcommalistelement\empty\else
- \ifx\m_syst_helpers_comma_list_target\empty
+ \ifempty\newcommalistelement\else
+ \ifempty\m_syst_helpers_comma_list_target
\let\m_syst_helpers_comma_list_target\newcommalistelement
\else
\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter
@@ -4728,7 +4780,7 @@
\fi
\def\commalistelement{#1}%
\else
- \ifx\m_syst_helpers_comma_list_target\empty
+ \ifempty\m_syst_helpers_comma_list_target
\ifx\nexttoken\bgroup % is known -)
\def\m_syst_helpers_comma_list_target{{#1}}%
\else
@@ -4845,50 +4897,50 @@
%D
%D Beware: global!
-\installsystemnamespace{localpushedmacro}
-\installsystemnamespace{globalpushedmacro}
-
-\let\m_syst_helpers_push_macro\empty
-
-\newcount\c_syst_helpers_pop_count
-
-\def\syst_helpers_push_macro_new_global
- {\expandafter\newcount\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
- \global\advance\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname\plusone}
-
-\def\syst_helpers_push_macro_new_local
- {\expandafter\newcount\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
- \global\advance\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname\plusone}
-
-\unexpanded\def\globalpushmacro#1%
- {\xdef\m_syst_helpers_push_macro{\csstring#1}%
- \ifcsname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
- \global\advance\lastnamedcs\plusone
- \else
- \syst_helpers_push_macro_new_global
- \fi
- \expandafter\glet\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
-
-\unexpanded\def\localpushmacro#1% this one can be used to push a value over an \egroup
- {\xdef\m_syst_helpers_push_macro{\csstring#1}%
- \ifcsname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
- \global\advance\lastnamedcs\plusone
- \else
- \syst_helpers_push_macro_new_local
- \fi
- \expandafter\glet\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
-
-\unexpanded\def\globalpopmacro#1%
- {\xdef\m_syst_helpers_push_macro{\csstring#1}%
- \c_syst_helpers_pop_count\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
- \global\advance\lastnamedcs \minusone
- \expandafter\glet\expandafter#1\csname\the\c_syst_helpers_pop_count\m_syst_helpers_push_macro\endcsname}
-
-\unexpanded\def\localpopmacro#1%
- {\xdef\m_syst_helpers_push_macro{\csstring#1}%
- \c_syst_helpers_pop_count\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
- \global\advance\lastnamedcs \minusone
- \expandafter\let\expandafter#1\csname\the\c_syst_helpers_pop_count\m_syst_helpers_push_macro\endcsname}
+% \installsystemnamespace{localpushedmacro}
+% \installsystemnamespace{globalpushedmacro}
+%
+% \let\m_syst_helpers_push_macro\empty
+%
+% \newcount\c_syst_helpers_pop_count
+%
+% \def\syst_helpers_push_macro_new_global
+% {\expandafter\newcount\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
+% \global\advance\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname\plusone}
+%
+% \def\syst_helpers_push_macro_new_local
+% {\expandafter\newcount\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
+% \global\advance\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname\plusone}
+%
+% \unexpanded\def\globalpushmacro#1%
+% {\xdef\m_syst_helpers_push_macro{\csstring#1}%
+% \ifcsname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
+% \global\advance\lastnamedcs\plusone
+% \else
+% \syst_helpers_push_macro_new_global
+% \fi
+% \expandafter\glet\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
+%
+% \unexpanded\def\localpushmacro#1% this one can be used to push a value over an \egroup
+% {\xdef\m_syst_helpers_push_macro{\csstring#1}%
+% \ifcsname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
+% \global\advance\lastnamedcs\plusone
+% \else
+% \syst_helpers_push_macro_new_local
+% \fi
+% \expandafter\glet\csname\the\lastnamedcs\m_syst_helpers_push_macro\endcsname#1}
+%
+% \unexpanded\def\globalpopmacro#1%
+% {\xdef\m_syst_helpers_push_macro{\csstring#1}%
+% \c_syst_helpers_pop_count\csname\??globalpushedmacro\m_syst_helpers_push_macro\endcsname
+% \global\advance\lastnamedcs \minusone
+% \expandafter\glet\expandafter#1\csname\the\c_syst_helpers_pop_count\m_syst_helpers_push_macro\endcsname}
+%
+% \unexpanded\def\localpopmacro#1%
+% {\xdef\m_syst_helpers_push_macro{\csstring#1}%
+% \c_syst_helpers_pop_count\csname\??localpushedmacro\m_syst_helpers_push_macro\endcsname
+% \global\advance\lastnamedcs \minusone
+% \expandafter\let\expandafter#1\csname\the\c_syst_helpers_pop_count\m_syst_helpers_push_macro\endcsname}
\let\pushmacro\localpushmacro
\let\popmacro \localpopmacro
@@ -5028,7 +5080,7 @@
%D Also handy:
\def\doifelseemptyvalue#1%
- {\expandafter\ifx\csname#1\endcsname\empty
+ {\expandafter\ifempty\csname#1\endcsname
\expandafter\firstoftwoarguments
\else
\expandafter\secondoftwoarguments
@@ -5037,14 +5089,14 @@
\let\doifemptyvalueelse\doifelseemptyvalue
\def\doifemptyvalue#1%
- {\expandafter\ifx\csname#1\endcsname\empty
+ {\expandafter\ifempty\csname#1\endcsname
\expandafter\firstofoneargument
\else
\expandafter\gobbleoneargument
\fi}
\def\doifnotemptyvalue#1%
- {\expandafter\ifx\csname#1\endcsname\empty
+ {\expandafter\ifempty\csname#1\endcsname
\expandafter\gobbleoneargument
\else
\expandafter\firstofoneargument
@@ -6125,7 +6177,7 @@
\unexpanded\def\syst_helpers_if_has_space_else#1 #2#3\relax % \space\empty\relax
{\ifx\m_syst_string_one\space
\expandafter\firstoftwoarguments
- \orelse\ifx#2\empty
+ \orelse\ifempty#2%
\expandafter\secondoftwoarguments
\else
\expandafter\firstoftwoarguments
@@ -6255,11 +6307,16 @@
\c_syst_helpers_test_feature_n\zerocount
\syst_helpers_test_feature_nop
\clf_benchmarktimer
- \writestatus\m!system{starting feature test (n=\number\c_syst_helpers_test_feature_m)}\wait
+ \writestatus\m!system
+ {starting feature test: %
+ \number\c_syst_helpers_test_feature_m\space steps}%
\c_syst_helpers_test_feature_n\zerocount
\syst_helpers_test_feature_yes
- \writestatus\m!system{\number\c_syst_helpers_test_feature_m\space feature tests done (\elapsedseconds s)}%
- \wait
+ \writestatus\m!system
+ {feature test done: %
+ \number\c_syst_helpers_test_feature_m\space steps, %
+ \clf_elapsedtime\space seconds, %
+ \clf_elapsedsteptime\elapsedsteps\space\space per step}%
\egroup}
\unexpanded\def\showtimer#1%
@@ -6327,7 +6384,7 @@
\def\syst_helpers_with_range#1%
{\splitstring#1\at:\to\m_syst_helpers_range_from\and\m_syst_helpers_range_to
- \ifx\m_syst_helpers_range_to\empty\let\m_syst_helpers_range_to\m_syst_helpers_range_from\fi
+ \ifempty\m_syst_helpers_range_to\let\m_syst_helpers_range_to\m_syst_helpers_range_from\fi
\dostepwiserecurse\m_syst_helpers_range_from\m_syst_helpers_range_to\plusone{\m_helpers_range_action{##1}}}%
\unexpanded\def\processranges[#1]#2% #1= n:m,p,q:r
@@ -6480,7 +6537,7 @@
\fi}
\def\constantemptyargument#1%
- {\ifx#1\empty
+ {\ifempty#1%
\noexpand\empty
\else
{#1}%
@@ -6588,6 +6645,6 @@
\unexpanded\def\emptyargumentcondition#1%
{\edef\m_syst_string_one{#1}%
- \ifx\m_syst_string_one\empty}
+ \ifempty\m_syst_string_one}
\protect \endinput
diff --git a/tex/context/base/mkiv/tabl-ntb.mkxl b/tex/context/base/mkiv/tabl-ntb.mkxl
index adabc3139..cc2df4c69 100644
--- a/tex/context/base/mkiv/tabl-ntb.mkxl
+++ b/tex/context/base/mkiv/tabl-ntb.mkxl
@@ -711,12 +711,12 @@
\edef\m_tabl_ntb_n{\naturaltableparameter\c!n}%
\edef\m_tabl_ntb_m{\naturaltableparameter\c!m}%
%
- \ifx\m_tabl_ntb_n\empty
+ \ifempty\m_tabl_ntb_n
\global\advance\c_tabl_ntb_spn\c_tabl_ntb_nx\relax
\orelse\ifnum\m_tabl_ntb_n=\c_tabl_ntb_running_col\else
\tabl_ntb_td_pass_n{#1}%
\fi
- \ifx\m_tabl_ntb_m\empty \else
+ \ifempty\m_tabl_ntb_m \else
\ifnum\m_tabl_ntb_m=\c_tabl_ntb_running_col\else
\tabl_ntb_td_pass_m{#1}%
\fi
@@ -1351,7 +1351,7 @@
\ifnum\scratchcounter>\c_tabl_ntb_n_of_hdnx_lines\relax
\ifnum\scratchcounter<\c_tabl_ntb_maximum_row\relax
\edef\p_spaceinbetween{\naturaltablelocalparameter\c!spaceinbetween}%
- \ifx\p_spaceinbetween\empty\else
+ \ifempty\p_spaceinbetween\else
\blank[\p_spaceinbetween]%
\fi
\fi
@@ -1515,7 +1515,7 @@
\fi
\dp\scratchbox\zeropoint
\edef\!!stringa{\tabl_ntb_get_ref{#1}{#2}}%
- \ifx\!!stringa\empty
+ \ifempty\!!stringa
\box\scratchbox
\else
\normalexpanded{\noexpand\directgotobox{\box\scratchbox}[\!!stringa]}% to be checked
@@ -1534,7 +1534,7 @@
% nothing
\orelse\ifx\localwidth\v!broad
% nothing
- \orelse\ifx\localwidth\empty
+ \orelse\ifempty\localwidth
% nothing (safeguard)
\else
\tabl_ntb_cell_finalize_indeed
@@ -1729,7 +1729,7 @@
\setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}% \vpack ?
\fi
\edef\p_spaceinbetween{\naturaltablelocalparameter\c!spaceinbetween}%
- \ifx\p_spaceinbetween\empty\else
+ \ifempty\p_spaceinbetween\else
\blank[\p_spaceinbetween]%
\fi
\def\postprocesstsplit{\postprocessTABLEsplitbox{\box\tsplitresult}}%
@@ -2057,7 +2057,7 @@
\fi
\ifcase\c_anch_backgrounds_text_count\else
\edef\p_region{\naturaltablelocalparameter\c!region}%
- \ifx\p_region\empty\ifnum\tabl_ntb_get_bck{#1}{#2}>\zerocount
+ \ifempty\p_region\ifnum\tabl_ntb_get_bck{#1}{#2}>\zerocount
\letnaturaltablelocalparameter\c!region\v!yes
\fi\fi
\fi
diff --git a/tex/context/base/mkiv/tabl-tbl.mkxl b/tex/context/base/mkiv/tabl-tbl.mkxl
index dc8ae0214..3a1d835ea 100644
--- a/tex/context/base/mkiv/tabl-tbl.mkxl
+++ b/tex/context/base/mkiv/tabl-tbl.mkxl
@@ -297,7 +297,9 @@
% 1 = RC column raw RQ equal column raw
% 2 = HC column hook HQ equal column hook
-% handy helper
+% handy helper (problem: we have an extra group when we nest; playing with en engine
+% solution turned out to be too messy due to states; an ignoreendgroup trick also is
+% messy and interferes).
\def\tabulatenoalign % public ?
{\noalign
@@ -364,7 +366,7 @@
\unexpanded\def\tabl_tabulate_check_local_color_second#1#2%
{\relax
- \ifx\m_tabl_tabulate_color_local\empty
+ \ifempty\m_tabl_tabulate_color_local
\xdef\m_tabl_tabulate_color{#1}%
\else
\glet\m_tabl_tabulate_color\m_tabl_tabulate_color_local
@@ -391,7 +393,7 @@
\unexpanded\def\tabl_tabulate_check_local_vrule_color_second#1%
{\relax
- \ifx\m_tabl_tabulate_vrule_color_local\empty
+ \ifempty\m_tabl_tabulate_vrule_color_local
\xdef\m_tabl_tabulate_vrule_color{#1}%
\else
\glet\m_tabl_tabulate_vrule_color\m_tabl_tabulate_vrule_color_local
@@ -475,7 +477,7 @@
\bgroup % we cannot combine the if because a cell may have only one ##
\tabl_tabulate_hook_b
\c_tabl_tabulate_align\constantnumber\c_tabl_tabulate_align % needed in tag passing
- \ifx\m_tabl_tabulate_alignment\empty \else
+ \ifempty\m_tabl_tabulate_alignment \else
\spac_align_use_now{\m_tabl_tabulate_alignment}%
\fi
\noexpand\dostarttagged\noexpand\t!tabulatecell\noexpand\empty
@@ -490,7 +492,7 @@
\the\t_tabl_tabulate_font
\the\t_tabl_tabulate_settings
\the\t_tabl_tabulate_before
- \ifx\m_tabl_tabulate_text_color\empty
+ \ifempty\m_tabl_tabulate_text_color
\expandafter\gobbleoneargument
\else
\expandafter\dofastcoloractivation
@@ -818,7 +820,7 @@
\global\advance\c_tabl_tabulate_columns\plusone
\expandafter\let\csname\??tabulatesetup\the\c_tabl_tabulate_columns\endcsname\donothing % here ?
\edef\currenttabulationtrulespec{#1}%
- \ifx\currenttabulationtrulespec\empty
+ \ifempty\currenttabulationtrulespec
\global\d_tabl_tabulate_vrulethickness\zeropoint
\else
\global\d_tabl_tabulate_vrulethickness\d_tabl_tabulate_vrulethickness_default
@@ -839,7 +841,7 @@
{\glet\m_tabl_tabulate_color\empty
\glet\m_tabl_tabulate_vrule_color\empty
\edef\currenttabulationtrulespec{#1}%
- \ifx\currenttabulationtrulespec\empty
+ \ifempty\currenttabulationtrulespec
\global\d_tabl_tabulate_vrulethickness\zeropoint
\else
\global\d_tabl_tabulate_vrulethickness\d_tabl_tabulate_vrulethickness_default
@@ -1099,8 +1101,8 @@
\def\tabl_tabulate_check_full_content % - needed, else confusion with \c!header
{\ifcsname\??tabulatehead\currenttabulation\endcsname
- %\expandafter\ifx\csname\??tabulatehead\currenttabulation\endcsname\empty
- \expandafter\ifx\lastnamedcs\empty
+ %\expandafter\ifempty\csname\??tabulatehead\currenttabulation\endcsname
+ \expandafter\ifempty\lastnamedcs
\let\tabl_tabulate_insert_head\empty
\else
\let\tabl_tabulate_insert_head\tabl_tabulate_insert_head_content
@@ -1109,8 +1111,8 @@
\let\tabl_tabulate_insert_head\empty
\fi
\ifcsname\??tabulatefoot\currenttabulation\endcsname
- \expandafter\ifx\csname\??tabulatefoot\currenttabulation\endcsname\empty
- %\expandafter\ifx\lastnamedcs\empty
+ \expandafter\ifempty\csname\??tabulatefoot\currenttabulation\endcsname
+ %\expandafter\ifempty\lastnamedcs
\let\tabl_tabulate_insert_foot\empty
\else
\let\tabl_tabulate_insert_foot\tabl_tabulate_insert_foot_content
@@ -1213,7 +1215,7 @@
\setupcurrenttabulation[#1]%
\else
\def\p_format{#1}%
- \ifx\p_format\empty
+ \ifempty\p_format
\def\p_format{|l|p|}%
\fi
\lettabulationparameter\c!format\p_format
@@ -1222,7 +1224,7 @@
\def\tabl_start_regular_two[#1][#2]%
{\def\p_format{#1}%
- \ifx\p_format\empty
+ \ifempty\p_format
\let\p_format\tabl_default_format
\fi
\lettabulationparameter\c!format\p_format
@@ -1368,7 +1370,7 @@
\let\m_tabl_tabulate_hrule_color_default\p_rulecolor
\d_tabl_tabulate_vrulethickness_default\p_rulethickness
\d_tabl_tabulate_hrulethickness_default\p_rulethickness
- \ifx\p_bodyfont\empty\else
+ \ifempty\p_bodyfont\else
\switchtobodyfont[\p_bodyfont]%
\fi
\postponenotes % new, to be tested / will be configurable
@@ -1379,7 +1381,7 @@
\d_tabl_tabulate_indent\dimexpr\leftskip+\hangindent\ifx\p_indenting\v!yes+\parindent\fi\relax
\global\c_tabl_tabulate_column\zerocount
\processcontent
- {\ifconditional\c_tabl_generic stoptabulate\else\e!stop\ifx\currenttabulationparent\empty\v!tabulate\else\currenttabulationparent\fi\fi}
+ {\ifconditional\c_tabl_generic stoptabulate\else\e!stop\ifempty\currenttabulationparent\v!tabulate\else\currenttabulationparent\fi\fi}
\tabl_tabulate_insert_body
\tabl_tabulate_process}
@@ -1421,13 +1423,13 @@
\to \t_tabl_tabulate_every_row
\unexpanded\def\tabl_tabulate_color_side_right_second
- {\ifx\m_tabl_tabulate_color_previous\empty \else
+ {\ifempty\m_tabl_tabulate_color_previous \else
\tabl_tabulate_color_set\m_tabl_tabulate_color_previous
\glet\m_tabl_tabulate_color_previous\empty
\fi}
\unexpanded\def\tabl_tabulate_color_side_left_second
- {\ifx\m_tabl_tabulate_color\empty \else
+ {\ifempty\m_tabl_tabulate_color \else
\ifcase\c_tabl_tabulate_colorspan
\or
\tabl_tabulate_color_set\m_tabl_tabulate_color
@@ -1437,7 +1439,7 @@
\fi}
\unexpanded\def\tabl_tabulate_color_side_both_second
- {\ifx\m_tabl_tabulate_color\empty \else
+ {\ifempty\m_tabl_tabulate_color \else
\tabl_tabulate_color_set\m_tabl_tabulate_color
\ifcase\c_tabl_tabulate_colorspan
%\glet\m_tabl_tabulate_color_previous\empty
@@ -1572,7 +1574,7 @@
\unexpanded\def\tabl_tabulate_column_vrule_inject_second
{\ifcase\d_tabl_tabulate_vrulethickness\else
- \ifx\m_tabl_tabulate_vrule_color\empty
+ \ifempty\m_tabl_tabulate_vrule_color
\tabl_tabulate_column_vruled_normal
\else
\tabl_tabulate_column_vruled_colored
@@ -1622,7 +1624,7 @@
\def\tabl_tabulate_column_rule_separator_inject % can be sped up (will do when used frequently)
{\bgroup
\s_tabl_tabulate_separator\strutdp
- \ifx\p_distance\empty\else
+ \ifempty\p_distance\else
\let\m_tabl_tabulate_separator_factor\plusone
\processcommacommand[\p_distance]\tabl_tabulate_column_rule_separator_step
\s_tabl_tabulate_separator\m_tabl_tabulate_separator_factor\s_tabl_tabulate_separator
@@ -1671,7 +1673,7 @@
\unexpanded\def\tabl_tabulate_hrule_inject_second
{\ifcase\d_tabl_tabulate_hrulethickness_local\else
- \ifx\currenttabulationlocalhrulecolor\empty
+ \ifempty\currenttabulationlocalhrulecolor
\tabl_tabulate_hrule_inject_normal
\else
\tabl_tabulate_hrule_inject_colored
@@ -2005,7 +2007,7 @@
\unexpanded\def\tabl_tabulate_bbskip_second_split_yes
{\ifvoid\b_tabl_tabulate_current\c_tabl_tabulate_column
- \ifx\tabl_tabulate_flush_collected_indeed\empty\else
+ \ifempty\tabl_tabulate_flush_collected_indeed\else
\setbox0\hbox
\fi
\fi}
@@ -2501,7 +2503,7 @@
\def\tabl_tabulate_TB_indeed[#1]%
{\iffirstargument
\blank[#1]
- \orelse\ifx\m_tabl_tabulate_blank_default\empty
+ \orelse\ifempty\m_tabl_tabulate_blank_default
\blank
\else
\blank[\m_tabl_tabulate_blank_default]%
@@ -2820,8 +2822,8 @@
\unexpanded\def\tabl_synchronize_row_background
{\iftrialtypesetting\else
- \ifx\m_table_current_row_background_filler\empty
- \ifx\m_table_current_row_background\empty
+ \ifempty\m_table_current_row_background_filler
+ \ifempty\m_table_current_row_background
% nothing
\tabl_synchronize_row_background_dummy
\else
@@ -2952,8 +2954,8 @@
\unexpanded\def\tabl_tabulate_BC_first % overloaded
{\tabl_tabulate_column_normal\plusone\zerocount
\let\fontstyle\globalfontstyle
- \ifx\m_table_current_row_background\empty
- \ifx\m_table_current_row_background_filler\empty
+ \ifempty\m_table_current_row_background
+ \ifempty\m_table_current_row_background_filler
\usetabulationstyleandcolor\c!headstyle\c!headcolor
\else
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
@@ -2965,11 +2967,11 @@
\unexpanded\def\tabl_tabulate_A_first
{\global\advance\c_tabl_tabulate_autocolor\plusone
\edef\m_table_current_row_background_auto{\tabulateparameter{\c!backgroundcolor:\number\c_tabl_tabulate_autocolor}}%
- \ifx\m_table_current_row_background_auto\empty
+ \ifempty\m_table_current_row_background_auto
\global\c_tabl_tabulate_autocolor\plusone
\edef\m_table_current_row_background_auto{\tabulateparameter{\c!backgroundcolor:\number\c_tabl_tabulate_autocolor}}%
\fi
- \ifx\m_table_current_row_background_auto\empty
+ \ifempty\m_table_current_row_background_auto
\let\m_table_current_row_background_auto\empty % \m_table_current_row_background_default
\fi
\tabl_register_row_background{\m_table_current_row_background_auto}}
diff --git a/tex/context/base/mkiv/type-ini.mklx b/tex/context/base/mkiv/type-ini.mklx
index 5470c9016..b4eee64d8 100644
--- a/tex/context/base/mkiv/type-ini.mklx
+++ b/tex/context/base/mkiv/type-ini.mklx
@@ -337,7 +337,7 @@
\def\font_typescripts_check#asked#target#followup[#value]% script use value next
{\donefalse
\edef\m_font_typescripts_check{#value}%
- \ifx\m_font_typescripts_check\empty % no longer needed / met
+ \ifempty\m_font_typescripts_check % no longer needed / met
\ifcase\typescriptmethod\or\donetrue\fi
\orelse\ifx#asked\s!all
\donetrue
@@ -504,7 +504,7 @@
\the\everybeforedefinetypeface}
\def\tsvar#key#default% undocumented and unofficial
- {\expandafter\ifx\csname\??ts#key\endcsname\empty
+ {\expandafter\ifempty\csname\??ts#key\endcsname
#default%
\else
\csname\??ts#key\endcsname
@@ -532,7 +532,7 @@
\let\globalfontclass\fontclass
\ifsecondargument
\setupbodyfont[#settings]%
- \orelse\ifx\fontclass\empty
+ \orelse\ifempty\fontclass
\setupbodyfont[\s!rm]%
\orelse\ifcsname\??typescriptdefaultstyles\fontclass\endcsname
%\setupbodyfont[\csname\??typescriptdefaultstyles\fontclass\endcsname]%
@@ -547,7 +547,7 @@
\let\globalfontclass\globalfontclass
\ifsecondargument
\switchtobodyfont[#settings]%
- \orelse\ifx\fontclass\empty
+ \orelse\ifempty\fontclass
\switchtobodyfont[\s!rm]%
\orelse\ifcsname\??typescriptdefaultstyles\fontclass\endcsname
%\switchtobodyfont[\csname\??typescriptdefaultstyles\fontclass\endcsname]%
@@ -606,7 +606,7 @@
\s!Serif \fi\fi\fi}
\unexpanded\def\font_helpers_set_fontstyle_of_fontclass
- {\ifx\fontclass\empty
+ {\ifempty\fontclass
\let\fontstyle\s!rm
\orelse\ifcsname\??typescriptdefaultstyles\fontclass\endcsname
%\edef\fontstyle{\csname\??typescriptdefaultstyles\fontclass\endcsname}%
diff --git a/tex/context/modules/mkiv/m-visual.mkiv b/tex/context/modules/mkiv/m-visual.mkiv
index 6ec0a52b0..a7cecef93 100644
--- a/tex/context/modules/mkiv/m-visual.mkiv
+++ b/tex/context/modules/mkiv/m-visual.mkiv
@@ -56,9 +56,7 @@
\unexpanded\def\fakelines#1#2% min max / 3 10
{\fakeparindent
\scratchdimen\hsize
- \ifindentation
- \advance\scratchdimen -\parindent
- \fi
+ \advance\scratchdimen -\parindent
\fakerule\scratchdimen\break
\getrandomcount\scratchcounter{\ifcase0#1 3\else#1\fi}{\ifcase0#2 10\else#2\fi}%
\dorecurse\scratchcounter{\fakerule\hsize}%
@@ -128,7 +126,7 @@
\unexpanded\def\fakeparindent
{\noindent
- \ifindentation
+ \ifzeropt\parindent\else
\ifx\dofakedroppedcaps\relax
{\fakeparindentcolor
\vrule
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 6c07e67f2..eec0c0a5b 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 : 2020-05-12 16:17
+-- merge date : 2020-05-18 16:46
do -- begin closure to overcome local limits and interference