summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2019-05-29 21:10:47 +0200
committerContext Git Mirror Bot <phg@phi-gamma.net>2019-05-29 21:10:47 +0200
commite2658addf306f729945c184e46f98df39dd7026c (patch)
tree0d4b3ec934773cc4e33fa88eda5a8041be2ec36b
parent8b678f473da7b81842dbc13b50c6303991570521 (diff)
downloadcontext-e2658addf306f729945c184e46f98df39dd7026c.tar.gz
2019-05-29 19:20:00
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-context.lua2
-rw-r--r--context/data/scite/context/scite-context-data-context.properties3
-rw-r--r--context/data/textadept/context/data/scite-context-data-context.lua2
-rw-r--r--doc/context/documents/general/leaflets/leaflet-context.pdfbin0 -> 86621 bytes
-rw-r--r--doc/context/documents/general/leaflets/leaflet-luametatex.pdfbin0 -> 82912 bytes
-rw-r--r--doc/context/documents/general/leaflets/leaflet-mixing.pdfbin0 -> 65347 bytes
-rw-r--r--doc/context/documents/general/manuals/fonts-mkiv.pdf (renamed from doc/context/documents/general/fonts/fonts-mkiv.pdf)bin1216898 -> 1216898 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin858660 -> 858594 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin858516 -> 858447 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin865512 -> 865449 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin857185 -> 857078 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin862583 -> 862487 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-cs.pdfbin348930 -> 348788 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-de.pdfbin433539 -> 433312 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-en.pdfbin346191 -> 346043 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-fr.pdfbin349115 -> 348964 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-it.pdfbin347532 -> 347392 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-nl.pdfbin346879 -> 346723 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-ro.pdfbin510594 -> 510448 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin852127 -> 852039 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin856162 -> 856073 bytes
-rw-r--r--doc/context/sources/general/fonts/manuals-explaining-contents.tex11
-rw-r--r--doc/context/sources/general/fonts/manuals-explaining-cover.tex199
-rw-r--r--doc/context/sources/general/fonts/manuals-explaining-environment.tex325
-rw-r--r--doc/context/sources/general/leaflets/leaflet-common.tex80
-rw-r--r--doc/context/sources/general/leaflets/leaflet-context.tex129
-rw-r--r--doc/context/sources/general/leaflets/leaflet-luametatex.tex106
-rw-r--r--doc/context/sources/general/leaflets/leaflet-mixing.tex450
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-appendix.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-appendix.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-demo-rule.lua (renamed from doc/context/sources/general/fonts/fonts/fonts-demo-rule.lua)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-environment.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-environment.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-extensions.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-extensions.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-features.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-features.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-formats.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-formats.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-hooks.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-hooks.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-introduction.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-introduction.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-lookups.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-lookups.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-math.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-math.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-methods.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-methods.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-mkiv.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-mkiv.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-modes.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-modes.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-scripts.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-scripts.tex)0
-rw-r--r--doc/context/sources/general/manuals/fonts/fonts-tricks.tex (renamed from doc/context/sources/general/fonts/fonts/fonts-tricks.tex)0
-rw-r--r--doc/context/sources/general/manuals/musings/musings.tex1
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-cs.mkii1
-rw-r--r--tex/context/base/mkii/mult-de.mkii1
-rw-r--r--tex/context/base/mkiv/buff-ver.mkiv10
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv4
-rw-r--r--tex/context/base/mkiv/context.mkiv12
-rw-r--r--tex/context/base/mkiv/core-env.mkiv98
-rw-r--r--tex/context/base/mkiv/font-osd.lua23
-rw-r--r--tex/context/base/mkiv/font-ots.lua4
-rw-r--r--tex/context/base/mkiv/font-shp.lua108
-rw-r--r--tex/context/base/mkiv/lpdf-pde.lua61
-rw-r--r--tex/context/base/mkiv/luat-cod.lua5
-rw-r--r--tex/context/base/mkiv/luat-fio.lua2
-rw-r--r--tex/context/base/mkiv/mult-def.lua4
-rw-r--r--tex/context/base/mkiv/mult-low.lua4
-rw-r--r--tex/context/base/mkiv/node-rul.lua84
-rw-r--r--tex/context/base/mkiv/node-rul.mkiv6
-rw-r--r--tex/context/base/mkiv/node-scn.lua2
-rw-r--r--tex/context/base/mkiv/pack-mrl.mkiv54
-rw-r--r--tex/context/base/mkiv/spac-hor.mkiv9
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26631 -> 26639 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin266539 -> 266566 bytes
-rw-r--r--tex/context/base/mkiv/strc-bkm.lua13
-rw-r--r--tex/context/base/mkiv/strc-itm.mkvi6
-rw-r--r--tex/context/base/mkiv/syst-aux.mkiv19
-rw-r--r--tex/context/base/mkiv/syst-ini.mkiv4
-rw-r--r--tex/context/interface/mkii/keys-cs.xml1
-rw-r--r--tex/context/interface/mkii/keys-de.xml1
-rw-r--r--tex/context/interface/mkiv/context-en.xml12
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin865512 -> 865449 bytes
-rw-r--r--tex/context/interface/mkiv/i-itemgroup.xml6
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin61165 -> 61165 bytes
-rw-r--r--tex/context/modules/common/s-abbreviations-logos.tex1
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua20
79 files changed, 1089 insertions, 798 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-context.lua b/context/data/scite/context/lexers/data/scite-context-data-context.lua
index 520fbcea5..d91b9d393 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-context.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-context.lua
@@ -1,4 +1,4 @@
return {
- ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextkind", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode" },
+ ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextkind", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol" },
["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "pickupgroupedcommand", "normalbaselineskip", "normallineskip", "normallineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs" },
} \ No newline at end of file
diff --git a/context/data/scite/context/scite-context-data-context.properties b/context/data/scite/context/scite-context-data-context.properties
index 907df8049..5eeb244a5 100644
--- a/context/data/scite/context/scite-context-data-context.properties
+++ b/context/data/scite/context/scite-context-data-context.properties
@@ -72,7 +72,8 @@ fourperemspace fiveperemspace sixperemspace figurespace punctuationspace \
hairspace enquad emquad zerowidthspace zerowidthnonjoiner \
zerowidthjoiner zwnj zwj optionalspace asciispacechar \
softhyphen Ux eUx Umathaccents parfillleftskip \
-parfillrightskip startlmtxmode stoplmtxmode startmkivmode stopmkivmode
+parfillrightskip startlmtxmode stoplmtxmode startmkivmode stopmkivmode \
+wildcardsymbol
keywordclass.context.helpers=\
startsetups stopsetups startxmlsetups stopxmlsetups \
diff --git a/context/data/textadept/context/data/scite-context-data-context.lua b/context/data/textadept/context/data/scite-context-data-context.lua
index 520fbcea5..d91b9d393 100644
--- a/context/data/textadept/context/data/scite-context-data-context.lua
+++ b/context/data/textadept/context/data/scite-context-data-context.lua
@@ -1,4 +1,4 @@
return {
- ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextkind", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode" },
+ ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextkind", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "Ux", "eUx", "Umathaccents", "parfillleftskip", "parfillrightskip", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol" },
["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "autorule", "strippedcsname", "checkedstrippedcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "vkern", "hkern", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "mathortext", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "pickupgroupedcommand", "normalbaselineskip", "normallineskip", "normallineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchmin", "scratchmax", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "superscript", "subscript", "nosuperscript", "nosubscript", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "lastlinewidth", "assumelongusagecs", "Umathbotaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs" },
} \ No newline at end of file
diff --git a/doc/context/documents/general/leaflets/leaflet-context.pdf b/doc/context/documents/general/leaflets/leaflet-context.pdf
new file mode 100644
index 000000000..1f7afe97f
--- /dev/null
+++ b/doc/context/documents/general/leaflets/leaflet-context.pdf
Binary files differ
diff --git a/doc/context/documents/general/leaflets/leaflet-luametatex.pdf b/doc/context/documents/general/leaflets/leaflet-luametatex.pdf
new file mode 100644
index 000000000..551b9ba8e
--- /dev/null
+++ b/doc/context/documents/general/leaflets/leaflet-luametatex.pdf
Binary files differ
diff --git a/doc/context/documents/general/leaflets/leaflet-mixing.pdf b/doc/context/documents/general/leaflets/leaflet-mixing.pdf
new file mode 100644
index 000000000..a023f9e88
--- /dev/null
+++ b/doc/context/documents/general/leaflets/leaflet-mixing.pdf
Binary files differ
diff --git a/doc/context/documents/general/fonts/fonts-mkiv.pdf b/doc/context/documents/general/manuals/fonts-mkiv.pdf
index d388df3e9..d388df3e9 100644
--- a/doc/context/documents/general/fonts/fonts-mkiv.pdf
+++ b/doc/context/documents/general/manuals/fonts-mkiv.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index 3cd5aa523..7679fdb76 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 68ab4835c..1cd01bed1 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index e1f854a34..479e16737 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index 1bb2d1fbf..86f70bc73 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 611aadc71..7b863fabf 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
index 99f5e258d..6c13ca4af 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
index 37d64abe8..1675610f4 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
index 35df67720..561220390 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
index 8259467fe..a99ea5ac6 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
index 9056f7453..db48c25d7 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
index 827a82fdb..8fed3b6f3 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
index 61bf080d8..7d213c131 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index bdd91d283..d78433474 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index ed009f568..251dbb387 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/sources/general/fonts/manuals-explaining-contents.tex b/doc/context/sources/general/fonts/manuals-explaining-contents.tex
deleted file mode 100644
index 3e1fadabc..000000000
--- a/doc/context/sources/general/fonts/manuals-explaining-contents.tex
+++ /dev/null
@@ -1,11 +0,0 @@
-% language=uk
-
-\startcomponent manuals-explaining-contents
-
- \starttitle[title=Contents][color=darkgray]
-
- \placelist[chapter][criterium=text]
-
- \stoptitle
-
-\stopcomponent
diff --git a/doc/context/sources/general/fonts/manuals-explaining-cover.tex b/doc/context/sources/general/fonts/manuals-explaining-cover.tex
deleted file mode 100644
index 8b4f3e891..000000000
--- a/doc/context/sources/general/fonts/manuals-explaining-cover.tex
+++ /dev/null
@@ -1,199 +0,0 @@
-% language=uk
-
-% Please try to be original and don't just copy this cover page as I don't want
-% confusion and be associated with (or responsibility for the look of) similar
-% looking documents.
-
-\startenvironment manuals-explaining-cover
-
-\startsetups document:abstract
- \framed [
- foregroundstyle=bold,
- foregroundcolor=white,
- width=7.5cm,
- align={normal,tolerant},
- frame=off,
- strut=no,
- ] {
- \getbuffer[abstract]
- }
-\stopsetups
-
-\startMPinclusions
-
- def DrawCoverPage (expr what) =
-
- numeric variant ; variant := 1 ;
-
- StartCover ;
-
- save width, height, size, anchor, offset, colors ;
-
- numeric width, height, size ; pair anchor, offset ; string colors[] ;
-
- colors[1] := "\documentvariable{cover:color:1}" ;
- colors[2] := "\documentvariable{cover:color:2}" ;
- colors[3] := "\documentvariable{cover:color:3}" ;
- colors[4] := "\documentvariable{cover:color:4}" ;
- colors[5] := "\documentvariable{cover:color:5}" ;
-
- fill CoverPage enlarged PaperBleed withcolor colors[5] ;
-
- fill Spine bottomenlarged -.5PaperHeight withcolor colors[3] ;
- fill Spine topenlarged -.5PaperHeight withcolor colors[2] ;
-
- width := FrontPageWidth ;
- height := FrontPageHeight ;
- size := 4 * width / 3 ;
- offset := (-1cm,1cm) ;
- anchor := .5[lrcorner CoverPage,urcorner CoverPage] ;
-
- fill anchored.llft(lltriangle scaled size, urcorner FrontPage) withcolor colors[1] ;
- fill anchored.urt (urtriangle scaled size, llcorner FrontPage) withcolor colors[2] ;
- fill anchored.lrt (lrtriangle scaled size, ulcorner FrontPage) withcolor colors[3] ;
- fill anchored.ulft(ultriangle scaled size, lrcorner FrontPage) withcolor colors[4] ;
-
- fill anchored.lrt (lrtriangle scaled size, ulcorner BackPage) withcolor colors[1] ;
- fill anchored.llft(lltriangle scaled size, urcorner BackPage) withcolor colors[3] ;
- fill anchored.ulft(ultriangle scaled size, lrcorner BackPage) withcolor colors[2] ;
- fill anchored.urt (urtriangle scaled size, llcorner BackPage) withcolor colors[4] ;
-
- draw thetextext.llft(
- textext("\bf \documentvariable{title}\hskip-.1em")
- rotated 45 ysized .350height,
- anchor shifted (6*offset+offset)
- ) withcolor white ;
- draw thetextext.llft(
- textext("\bf \documentvariable{subtitle}")
- rotated 45 ysized .275height,
- anchor shifted (5*offset+offset)
- ) withcolor white ;
- draw thetextext.llft(
- textext("\bf \documentvariable{author}")
- rotated 45 ysized .200height,
- anchor shifted (2*offset+offset)
- ) withcolor white ;
- draw thetextext.llft(
- textext("\bf \documentvariable{affiliation}")
- rotated 45 ysized .200height,
- anchor shifted (1*offset+offset)
- ) withcolor white ;
-
- % for the moment
-
- if (what = "back") or (what = "cover") :
-
- draw
- thetextext.top(
- textext("\bf \documentvariable{comment}")
- xsized 4cm,
- lrcorner Page shifted (-3cm,1cm)
- ) withcolor white ;
-
- fi ;
-
- % till here
-
- width := BackPageWidth ;
-
- if (what = "back") or (what = "cover") :
-
- draw thetextext(
- textext("\bf\setups[document:abstract]")
- xsized .65width rotated 45,
- center BackPage
- ) withcolor white ;
-
- fi ;
-
- if what = "cover" :
-
- draw thetextext.bot(
- textext("\bf \documentvariable{title}\hskip-.1em")
- rotated 90 xsized .8SpineWidth,
- .5[ulcorner Spine,urcorner Spine] shifted (0,-1cm)
- ) withcolor white ;
-
- draw thetextext.top(
- textext("\bf \documentvariable{author}")
- rotated 90 xsized .8SpineWidth,
- .5[llcorner Spine,lrcorner Spine] shifted (0,1cm)
- ) withcolor white ;
-
- fi ;
-
- StopCover ;
-
- if what = "front" :
- clip currentpicture to FrontPage ;
- elseif what = "back" :
- clip currentpicture to BackPage ;
- else :
- drawboundary CoverPage ;
- fi ;
-
- enddef ;
-
-\stopMPinclusions
-
-\startsetups document:start
-
- % \startcovermatter[front]
-
- \setupbackgrounds[page][background=]
-
- \doifmodeelse {simple} {
-
- \startMPpage
- DrawCoverPage("front") ;
- \stopMPpage
-
- } {
-
- \startMPpage
- DrawCoverPage("cover") ;
- \stopMPpage
-
- }
-
- \page[dummy]
-
- \setupbackgrounds[page][background=page]
-
- \resetuserpagenumber
-
- % \stopcovermatter
-
-\stopsetups
-
-\startsetups document:stop
-
- \doifmodeelse {simple} {
-
- % \startcovermatter[back]
-
- \page
-
- \setuppagenumbering[page=]
-
- \setupbackgrounds[page][background=]
-
- \page[empty,left]
-
- \setupmakeup[doublesided=no,page=no]
-
- \startMPpage
- DrawCoverPage("back") ;
- \stopMPpage
-
- % \stopcovermatter
-
- } {
-
- % not needed as it's part of the cover page
-
- }
-
-\stopsetups
-
-\stopenvironment
diff --git a/doc/context/sources/general/fonts/manuals-explaining-environment.tex b/doc/context/sources/general/fonts/manuals-explaining-environment.tex
deleted file mode 100644
index f896c219b..000000000
--- a/doc/context/sources/general/fonts/manuals-explaining-environment.tex
+++ /dev/null
@@ -1,325 +0,0 @@
-\startenvironment manuals-explaining-environment
-
-\usemodule[abr-01]
-\usemodule[visual]
-\usemodule[simulate]
-\usemodule[chart]
-\usemodule[nodechart]
-
-% done
-
-\dontcomplain
-
-\definepapersize
- [book]
- [width=18cm,
- height=24cm]
-
-\setuppapersize
- [book]
-
-\startmode[oversized]
-
- \setuppapersize
- [book]
- [oversized]
-
- \setuplayout
- [marking=on]
-
-\stopmode
-
-\setuplayout
- [location=middle,
- topspace=1.5cm,
- bottomspace=2cm,
- backspace=2cm,
- cutspace=2cm,
- header=0cm,
- footer=0cm,
- margindistance=.25cm,
- margin=1.25cm,
- width=middle,
- height=middle]
-
-\setuplayout
- [style=\ss]
-
-\usetypescript
- [dejavu-condensed]
-
-\setupbodyfont
- [ipaex,9pt]
-
-\setupbodyfont
- [dejavu,9pt]
-
-\definetyping
- [narrowtyping]
- [typing]
- [bodyfont=dejavu-condensed]
-
-% This is way too ugly for a manual:
-%
-% \setuptyping
-% [indentnext=no]
-%
-% \setupindenting
-% [medium,yes]
-
-\setupwhitespace
- [big]
-
-\defineoverlay
- [page]
- [\useMPgraphic{page}]
-
-\setupbackgrounds
- [page]
- [background=page]
-
-\setuphead
- [chapter,section,subsection]
- [color=\namedstructureuservariable{chapter}{color}]
-
-\setuphead
- [chapter]
- [style=\bfc]
-
-\setuphead
- [section]
- [style=\bfb]
-
-\setuphead
- [subsection]
- [style=\bf,
- before=\blank,
- after=\blank]
-
-\startsetups document:chapter:inside
- \definecolor[maincolor][1.0(\namedheadparameter{chapter}{color})] % this expands the color
- \definecolor[halfcolor][0.5(maincolor,white)]
-\stopsetups
-
-\setuphead
- [chapter]
- [insidesection=\directsetup{document:chapter:inside}]
-
-\setuppagenumbering
- [alternative=doublesided,
- location=]
-
-\setuplist
- [aligntitle=yes]
-
-\setuplist
- [chapter]
- [pagenumber=no,
- style=bold,
- before={\blank\startcolor[\structurelistuservariable{color}]},
- after={\placelist[section]\stopcolor}]
-
-\setuplist
- [chapter,section]
- [width=3em]
-
-\startuseMPgraphic{page}
-
- StartPage ;
-
- linecap := butt ;
-
- if OnRightPage :
-
- path p ; p := (
- urcorner Page shifted (-2cm,0) --
- urcorner Page --
- urcorner Page shifted (0,-2cm) -- cycle
- ) shifted (-2.5mm,-2.5mm) ;
-
- else :
-
- path p ; p := (
- ulcorner Page shifted (2cm,0) --
- ulcorner Page --
- ulcorner Page shifted (0,-2cm) -- cycle
- ) shifted (2.5mm,-2.5mm) ;
-
- fi ;
-
- fill p
- withpen pencircle scaled 1mm
- withcolor "maincolor" ;
-
- draw thetextext("\bf\userpagenumber",
- if OnRightPage : urcorner p shifted (-5mm,-5mm) else : ulcorner p shifted (5mm,-5mm) fi)
- withcolor white ;
-
- if OnRightPage :
-
- path p ; p := (
- lrcorner Page shifted (-5cm,0) --
- lrcorner Page
- ) shifted (-5mm,10mm)
-
- else :
-
- path p ; p := (
- llcorner Page shifted (5cm,0) --
- llcorner Page
- ) shifted (5mm,10mm) ;
-
- fi ;
-
- draw p
- withpen pencircle scaled 1mm
- withcolor "maincolor" ;
-
- draw if OnRightPage :
- thetextext.lft("\bf\getspecificstructuretitle{chapter}",lrcorner Page shifted (-5mm,5mm))
- else :
- thetextext.rt ("\bf\getspecificstructuretitle{chapter}",llcorner Page shifted ( 5mm,5mm))
- fi withcolor "\namedstructureuservariable{chapter}{color}" ;
-
- StopPage ;
-\stopuseMPgraphic
-
-\definecolor[orange] [r=1,g=.6,b=.1]
-
-\definecolor[middlegray] [s=.75]
-\definecolor[darkgray] [s=.25]
-\definecolor[darkred] [r=.5]
-\definecolor[darkgreen] [g=.5]
-\definecolor[darkblue] [b=.5]
-
-\definecolor[darkyellow] [.5(red,green)]
-\definecolor[darkmagenta][.5(red,blue)]
-\definecolor[darkcyan] [.5(green,blue)]
-
-\definecolor[darkorange] [.5(orange)]
-
-\definecolor[maincolor] [darkgray]
-
-\definecolor [mix-1] [r=1,g=.75,b=.25] \definecolor [darkmix-1][.5(mix-1)]
-\definecolor [mix-2] [r=1,g=.25,b=.75] \definecolor [darkmix-2][.5(mix-2)]
-\definecolor [mix-3] [r=.75,g=1,b=.25] \definecolor [darkmix-3][.5(mix-3)]
-\definecolor [mix-4] [r=.75,g=.25,b=1] \definecolor [darkmix-4][.5(mix-4)]
-\definecolor [mix-5] [r=.25,g=1,b=.75] \definecolor [darkmix-5][.5(mix-5)]
-\definecolor [mix-6] [r=.25,g=.75,b=1] \definecolor [darkmix-6][.5(mix-6)]
-
-% \blackrule[height=1cm,width=10cm,color=mix-1] \blackrule[height=1cm,width=10cm,color=darkmix-1]
-% \blackrule[height=1cm,width=10cm,color=mix-2] \blackrule[height=1cm,width=10cm,color=darkmix-2]
-% \blackrule[height=1cm,width=10cm,color=mix-3] \blackrule[height=1cm,width=10cm,color=darkmix-3]
-% \blackrule[height=1cm,width=10cm,color=mix-4] \blackrule[height=1cm,width=10cm,color=darkmix-4]
-% \blackrule[height=1cm,width=10cm,color=mix-5] \blackrule[height=1cm,width=10cm,color=darkmix-5]
-% \blackrule[height=1cm,width=10cm,color=mix-6] \blackrule[height=1cm,width=10cm,color=darkmix-6]
-
-% modules
-
-\setupsorting
- [logo]
- [style=]
-
-\setupFLOWchart
- [width=6em,
- height=3em,
- offset=-2em, % maybe default : todo: hoffset and voffset
- dx=2em,
- dy=2em]
-
-\setupFLOWlines
- [color=maincolor]
-
-\setupFLOWshapes
- [rulecolor=maincolor]
-
-% tables
-
-\setuptabulate
- [rulethickness=.5mm,
- rulecolor=maincolor]
-
-% special commands
-
-\startuniqueMPgraphic{reference}{color}
- fill
- .5[llcorner OverlayBox,ulcorner OverlayBox] --
- .5[ulcorner OverlayBox,urcorner OverlayBox] --
- .5[urcorner OverlayBox,lrcorner OverlayBox] --
- .5[lrcorner OverlayBox,llcorner OverlayBox] -- cycle
- withcolor \MPvar{color} ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{reference}{color}
- path p ; p := OverlayBox enlarged -1mm ;
- filldraw
- ulcorner p --
- urcorner p --
- lrcorner p --
- .5[lrcorner p,llcorner p] shifted (0,-1ExHeight) --
- llcorner p -- cycle
- withpen pencircle scaled 1mm
- withcolor \MPvar{color} ;
- setbounds currentpicture to OverlayBox enlarged 1ExHeight ;
-\stopuniqueMPgraphic
-
-\defineoverlay
- [reference]
- [\uniqueMPgraphic{reference}{color=maincolor,}]
-
-\definecolor
- [maincolor]
- [red]
-
-\definemargindata
- [appendixdata]
- %[inner]
- [outer]
- [stack=yes]
-
-\definemarginframed
- [appendixdata]
- [width=3.5em,
- height=\lineheight, % we know what goes in there
- align=middle,
- offset=overlay,
- foregroundcolor=white,
- background=reference]
-
-% todo:
-%
-% \appendixdata[reference=bla]{}
-%
-% whole data
-
-% interaction
-
-\setupinteraction
- [state=start,
- click=no,
- color=,
- contrastcolor=,
- style=]
-
-% whatever
-
-\definestartstop
- [notabene]
- [before=\blank,
- after=\blank,
- style=\em]
-
-\setuphyphenation
- [method=default]
-
-
-\startbuffer[underconstruction]
-\startnotabene
- This document is still under construction. The functionality discussed here
- will stay and more might show up. Of course there are errors, and they're all
- mine. The text is not checked for spelling errors. Feel free to let me know
- what should get added.
-\stopnotabene
-\stopbuffer
-
-\stopenvironment
diff --git a/doc/context/sources/general/leaflets/leaflet-common.tex b/doc/context/sources/general/leaflets/leaflet-common.tex
new file mode 100644
index 000000000..52cc31797
--- /dev/null
+++ b/doc/context/sources/general/leaflets/leaflet-common.tex
@@ -0,0 +1,80 @@
+\startenvironment leaflet-common
+
+%D Please don't abuse this style for your own purpose as the look and feel
+%D is reserved for our own purpose. Be creative instead.
+
+\usemodule
+ [abbreviations-logos]
+
+\setupbodyfont
+ [plex,12pt]
+
+\setuplayout
+ [page]
+
+\setupalign
+ [verytolerant,stretch]
+
+\startluacode
+ function document.graphic()
+ local min, max, random, round = math.min, math.max, math.random, math.round
+
+ local width = 210
+ local height = 297
+ local r, g, b = 3, 3, 3
+
+ local bitmap = graphics.bitmaps.new(width,height,"rgb",1)
+ local data = bitmap.data
+
+ local graphic = tonumber(documentdata.variable("graphic"))
+
+ if graphic == 1 then
+ r, g, b = 4, 3, 2
+ elseif graphic == 2 then
+ r, g, b = 2, 3, 4
+ end
+
+ for i=1,height do
+ local d = data[i]
+ for j=1,width do
+ local c = random(128,255)
+ -- d[j] = { 0, 0, c }
+ d[j] = { c//r, c//g, c//b }
+ end
+ end
+
+ graphics.bitmaps.tocontext(bitmap,"210bp","297bp")
+ end
+\stopluacode
+
+\definelayer
+ [page]
+ [width=\paperwidth,
+ height=\paperheight]
+
+\setupcolors
+ [textcolor=white]
+
+\setupbackgrounds
+ [page]
+ [background=page]
+
+\setupmakeup
+ [page]
+ [style=\bf,
+ top=,
+ bottom=]
+
+\startsetups document:start
+
+ \setlayerframed
+ [page]
+ [offset=overlay]
+ {\scale
+ [width=\textwidth,
+ height=\textheight]
+ {\ctxlua{document.graphic()}}}
+
+\stopsetups
+
+\stopenvironment
diff --git a/doc/context/sources/general/leaflets/leaflet-context.tex b/doc/context/sources/general/leaflets/leaflet-context.tex
new file mode 100644
index 000000000..7bab43b12
--- /dev/null
+++ b/doc/context/sources/general/leaflets/leaflet-context.tex
@@ -0,0 +1,129 @@
+\environment leaflet-common
+
+\startdocument[graphic=1]
+
+\startbuffer[1]
+ There are several ways to deploy \CONTEXT. Most common is to let it render a
+ document, in which case you install it on a system and use an editor to input
+ your document and from a console or by clicking some key trigger a run. The
+ input can be structured using \TEX\ macros but it can also be \XML, or some
+ other format that gets converted to \CONTEXT\ commands before processing.
+\stopbuffer
+
+\startbuffer[2]
+ Instead you can also use \CONTEXT\ as a more hidden application, for instance
+ in a web service or rendering component in a larger application. In that case
+ the end user is not really aware that \TEX\ is being used.
+\stopbuffer
+
+\startbuffer[3]
+ No matter how you use \CONTEXT, you need to install it first. You can for
+ instance use \TEX live or another distribution to pick up \CONTEXT, but you
+ can also install it using the archive (snapshot), in which case you also need
+ to pick up the engine (for instance \LUATEX) and a basic set of fonts. In
+ order to make installation easy we provide a so called standalone
+ distribution that has all you need.
+\stopbuffer
+
+\startbuffer[4]
+
+ The standalone \CONTEXT\ distribution has the following characteristics:
+
+ \startitemize
+ \startitem
+ The installation is self contained. Apart from resources like fonts,
+ the \TEX\ macros, \LUA\ code and \METAPOST\ helpers are provided in
+ one package.
+ \stopitem
+ \startitem
+ There is only one binary involved: \LUAMETATEX. The source code of
+ this program is integral part of the \CONTEXT\ distribution (per end
+ 2019). A user should be able to compile the program if needed. There
+ is no dependency on additional libraries other than those that make
+ up the operating system.
+ \stopitem
+ \startitem
+ The core system is able to typeset documents in an efficient way. The
+ memory footprint is decent and performance acceptable, also on on low
+ power devices and virtual machines. We try not to provide bloatware.
+ \stopitem
+ \startitem
+ The official user interface is stable and the implementation of core
+ components will not change fundamentally. When something can be
+ improved it will be. One can use a snapshot for long term stability.
+ \stopitem
+ \startitem
+ Support is provided by means of a mailing list, a wiki,
+ documentation, meetings, etc. If needed you can consult (or hire)
+ support. There are enough experienced users out there to get you
+ going.
+ \stopitem
+ \stopitemize
+\stopbuffer
+
+\startbuffer[5]
+ The first version of \CONTEXT, now tagged \MKII, has been around since 1995
+ and (still) runs on top of \PDFTEX. The development of its successor \MKIV\
+ started in 2005 as part of the \LUATEX\ development and still carries on. The
+ most recent incarnation is \LMTX, which is \MKIV\ but tuned for \LUAMETATEX,
+ the lean and mean successor of \LUATEX.
+\stopbuffer
+
+% we could use a collector
+
+\startpagemakeup
+ \offinterlineskip
+ \vskip24pt
+ \hbox to \hsize \bgroup
+ \hss
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[1]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hskip1cm
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[2]
+ \stopframed
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hss
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[3]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hss
+ \setupitemize[after=]
+ \startframed[align=normal,width=\dimexpr\textwidth-2cm\relax,frame=off]
+ \getbuffer[4]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hss
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[5]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \vfill
+ \vfill
+ \hbox to \hsize \bgroup
+ \hskip1cm
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \bfd \CONTEXT\ \LMTX \enspace \emdash \enspace factsheet
+ \stopframed
+ \hss
+ \egroup
+ \vskip12pt
+\stoppagemakeup
+
+\stopdocument
diff --git a/doc/context/sources/general/leaflets/leaflet-luametatex.tex b/doc/context/sources/general/leaflets/leaflet-luametatex.tex
new file mode 100644
index 000000000..6532a8f9f
--- /dev/null
+++ b/doc/context/sources/general/leaflets/leaflet-luametatex.tex
@@ -0,0 +1,106 @@
+\environment leaflet-common
+
+\startdocument[graphic=2]
+
+\startbuffer[1]
+ The \LUAMETATEX\ engine is a follow up on \LUATEX. It integrates the \TEX\
+ text rendering engine, the \METAPOST\ graphic engine and the \LUA\ script
+ interpreter. The development is part of the \CONTEXT\ macro package
+ development. This macro package tightly integrates the three subsystems. The
+ \LUAMETATEX\ code is part of the \CONTEXT\ distribution.
+\stopbuffer
+
+\startbuffer[2]
+ The \LUAMETATEX\ engine is lean and mean. There is for instance no backend
+ code present. In \CONTEXT\ this is handled in \LUA. Graphic inclusion is also
+ delegated to \LUA. The \TEX\ frontend is a slightly extended version of the
+ \LUATEX\ one. System depedencies are minimized. Where possible we stay close
+ to the original \TEX\ concept because that is a well documented reference.
+ The binary can also be used as stand alone \LUA\ engine.
+\stopbuffer
+
+\startbuffer[3]
+ The \METAPOST\ library also has access to \LUA, which means that the language
+ can be enhanced and functionality added on demand. There are several graphic
+ libraries provided in \CONTEXT. This graphical language is efficient in
+ runtime and graphical output. In combination with \LUA\ we have a high
+ performance graphical subsystem that can handle a huge amount of data.
+ Additional text (like labels) is typeset at high quality.
+\stopbuffer
+
+\startbuffer[4]
+ The \LUA\ code that comes with \CONTEXT\ contains a lot of helper code which
+ means that one can set up selfcontained workflows without many extra
+ dependencies. Documents can be encoded in \TEX, \LUA, \XML\ or whatever
+ suits. There is support for databases too.
+\stopbuffer
+
+\startbuffer[5]
+ The \CONTEXT\ code base evolved over time. The basic functionality is quite stable.
+ The move from \MKII\ to \MKIV\ to \LMTX\ has been gradual. The efficiency in terms
+ of code and performance has been improved stepwise. Development continues and beta
+ releases occur on a regular basis. The \CONTEXT\ user community is quite willing
+ to experiment with betas that can be installed alongside stable snapshots.
+
+ \blank
+
+ The installation is relatively small (fonts make up much of it) and updating is
+ easy. We operate in the \TEX\ Directory Structure, which is a proven concept.
+\stopbuffer
+
+\startpagemakeup
+ \offinterlineskip
+ \vskip24pt
+ \hbox to \hsize \bgroup
+ \hss
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[1]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hskip1cm
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[2]
+ \stopframed
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hss
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[3]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hss
+ \setupitemize[after=]
+ \startframed[align=normal,width=\dimexpr\textwidth-2cm\relax,frame=off]
+ \getbuffer[4]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \hbox to \hsize \bgroup
+ \hss
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \getbuffer[5]
+ \stopframed
+ \hskip1cm
+ \egroup
+ \vfill
+ \vfill
+ \vfill
+ \hbox to \hsize \bgroup
+ \hskip1cm
+ \startframed[align=normal,width=.7\textwidth,frame=off]
+ \bfd \LUAMETATEX \enspace \emdash \enspace factsheet
+ \stopframed
+ \hss
+ \egroup
+ \vskip12pt
+\stoppagemakeup
+
+\stopdocument
diff --git a/doc/context/sources/general/leaflets/leaflet-mixing.tex b/doc/context/sources/general/leaflets/leaflet-mixing.tex
new file mode 100644
index 000000000..9f14525b3
--- /dev/null
+++ b/doc/context/sources/general/leaflets/leaflet-mixing.tex
@@ -0,0 +1,450 @@
+%D Please don't abuse this style for your own purpose as the look and feel
+%D is reserved for our own purpose. Be creative instead.
+
+\setupbodyfont
+ [plex,7pt]
+
+\setuppapersize
+ [A3,landscape]
+
+\setuplayout
+ [width=middle,
+ height=middle,
+ header=0pt,
+ footer=0pt,
+ backspace=5mm,
+ topspace=5mm]
+
+\definelayer
+ [page]
+ [width=\textwidth,
+ height=\textheight]
+
+\setupbackgrounds
+ [page]
+ [background=color,
+ backgroundcolor=middlegray]
+
+\setuptyping
+ [before=,after=]
+
+\usemodule
+ [abbreviations-logos]
+
+\startbuffer[style]
+ \setupbodyfont
+ [plex]
+ \setuplayout
+ [width=middle,
+ height=middle,
+ margin=1cm]
+ \setupcolors
+ [textcolor=white]
+ \usemodule
+ [abbreviations-logos]
+ \setupwhitespace
+ [big]
+ \setuphead
+ [chapter]
+ [style=\bfc]
+\stopbuffer
+
+\startbuffer[intro]
+
+ \starttitle[title={Using \CONTEXT}]
+
+ The \CONTEXT\ macro package is more than just a \TEX\ processor,
+ various input is possible, some we show here. An example of a
+ method not shown here is fetching data from a database. The
+ various input methods can be combined, so depending on what you
+ need you can mix \TEX\ (for typesetting text), \METAPOST\ (for
+ producing graphics) or \LUA\ (as language for manipulating
+ data.
+
+ All these methods are quite efficient and always have access to
+ the full power of the typesetting engine.
+
+ When you use \CONTEXT\ with \LUAMETATEX, you get a reasonable
+ small self contained component that can be used in workflows
+ that need quality rendering. The ecosystem is rather future
+ proof too.
+
+ The \CONTEXT\ macro package has been around for decades and
+ evolved from \MKII, to \MKIV\ and now \LMTX. The development
+ team has always been involved in the development of engines
+ like \PDFTEX, \LUATEX\ and \LUAMETATEX. There is an active
+ mailing list and there are \CONTEXT\ meetings.
+
+ \stoptitle
+
+\stopbuffer
+
+\startbuffer[tex]
+\starttext
+
+ \starttitle[title={Some \TEX}]
+
+ Just an example.
+
+ \starttabulate[|c|c|]
+ \NC first 1 \NC last 1 \NC \NR
+ \NC first 2 \NC last 2 \NC \NR
+ \stoptabulate
+
+ \stoptitle
+
+\stoptext
+\stopbuffer
+
+\startbuffer[xml]
+\startbuffer[demo]
+<?xml version="1.0"?>
+<document>
+ <title>Some XML</title>
+ <p>Just an example.</p>
+ <table>
+ <r> <c>first 1</c> <c>last 1</c> </r>
+ <r> <c>first 2</c> <c>last 2</c> </r>
+ </table>
+</document>
+\stopbuffer
+
+\startxmlsetups xml:basics
+ \xmlsetsetup{#1}{title|p|table}{xml:*}
+\stopxmlsetups
+\startxmlsetups xml:title
+ \title{\xmltext{#1}{.}}
+\stopxmlsetups
+\startxmlsetups xml:p
+ \xmlflush{#1}\par
+\stopxmlsetups
+\startxmlsetups xml:table
+ \starttabulate[|c|c|]
+ \xmlfilter{#1}{/r/command(xml:r)}
+ \stoptabulate
+\stopxmlsetups
+\startxmlsetups xml:r
+ \NC \xmlfilter{#1}{/c/command(xml:c)} \NR
+\stopxmlsetups
+\startxmlsetups xml:c
+ \xmlflush{#1} \NC
+\stopxmlsetups
+
+\xmlregistersetup{xml:basics}
+
+\starttext
+ \xmlprocessbuffer{demo}{demo}{}
+\stoptext
+\stopbuffer
+
+\startbuffer[lua]
+\startluacode
+ local tmp = {
+ { a = "first 1", b = "last 1" },
+ { b = "last 2", a = "first 2" },
+ }
+
+ -- local tmp = table.load("somefile.lua")
+
+ context.starttext()
+
+ context.starttitle { title = "Some Lua" }
+
+ context("Just an example.") context.par()
+
+ context.starttabulate { "|c|c|" }
+ for i=1,#tmp do
+ local t = tmp[i]
+ context.NC()
+ context(t.a) context.NC()
+ context(t.b) context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+
+ context.stoptitle()
+
+ context.stoptext()
+\stopluacode
+\stopbuffer
+
+\startbuffer[mp]
+\startMPpage
+ draw textext("\bf Some \MetaPost")
+ xsized 4cm
+ rotated(45)
+ withcolor "white" ;
+
+ draw textext("\bs\strut in \ConTeXt")
+ xsized 5cm
+ shifted (0,-40mm)
+ withcolor "white" ;
+
+ draw fullcircle
+ scaled 6cm
+ dashed evenly
+ withcolor "gray" ;
+\stopMPpage
+\stopbuffer
+
+\startbuffer[csv]
+\startluacode
+ local tmp = [[
+ first,second
+ first 1,last 1
+ first 2,last 2
+ ]]
+
+ -- local tmp = io.loaddata("somefile.csv")
+
+ local mycsvsplitter = utilities.parsers.rfc4180splitter()
+ local list, names = mycsvsplitter(tmp,true)
+
+ context.starttext()
+
+ context.starttitle { title = "Some CSV" }
+
+ context("Just an example.") context.par()
+
+ context.starttabulate { "|c|c|" }
+ for i=1,#list do
+ local l = list[i]
+ context.NC()
+ context(l[1]) context.NC()
+ context(l[2]) context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+
+ context.stoptitle()
+
+ context.stoptext()
+\stopluacode
+\stopbuffer
+
+\startbuffer[json]
+\startluacode
+ require("util-jsn")
+
+ -- local str = io.loaddata("somefile.json")
+
+ local str = [[ {
+ "title": "Some JSON",
+ "text" : "Just an example.",
+ "data" : [
+ { "a" : "first 1", "b" : "last 1" },
+ { "b" : "last 2", "a" : "first 2" }
+ ]
+ } ]]
+
+ local tmp = utilities.json.tolua(str)
+
+ context.starttext()
+
+ context.starttitle { title = tmp.title }
+
+ context(tmp.text) context.par()
+
+ context.starttabulate { "|c|c|" }
+ for i=1,#tmp.data do
+ local d = tmp.data[i]
+ context.NC()
+ context(d.a) context.NC()
+ context(d.b) context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+
+ context.stoptitle()
+
+ context.stoptext()
+\stopluacode
+\stopbuffer
+
+\startbuffer[mkxi]
+% normally there is already a file:
+
+\startbuffer[demo]
+\starttext
+ \starttitle[title={Some template}]
+
+ Just an example. \blank
+
+ \startlinecorrection
+ \bTABLE
+ <?lua for i=1,20 do ?>
+ \bTR
+ <?lua for j=1,5 do ?>
+ \bTD
+ cell (<?lua inject(i) ?>,<?lua inject(j) ?>)
+ is <?lua inject(variables.text or "unset") ?>
+ \eTD
+ <?lua end ?>
+ \eTR
+ <?lua end ?>
+ \eTABLE
+ \stoplinecorrection
+
+ \stoptitle
+\stoptext
+
+\stopbuffer
+
+\savebuffer[file=demo.mkxi,prefix=no,list=demo]
+
+% the action:
+
+\startluacode
+ document.variables.text = "set"
+\stopluacode
+
+\input{demo.mkxi}
+\stopbuffer
+
+\definemeasure[blobwidth] [\textwidth/4-3mm]
+\definemeasure[blobscale] [\textwidth/4-3mm-4mm]
+\definemeasure[blobheight][\textheight/2-2mm]
+
+\startbuffer[everything]
+
+\setlayerframed
+ [page]
+ [preset=lefttop]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkgray,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[intro]}{\typesetbuffer[style,intro][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=lefttop,
+ hoffset=4mm,
+ x=\measure{blobwidth}]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkred,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[tex]}{\typesetbuffer[style,tex][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=righttop,
+ hoffset=4mm,
+ x=\measure{blobwidth}]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkblue,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[xml]}{\typesetbuffer[style,xml][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=righttop]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkgreen,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[lua]}{\typesetbuffer[style,lua][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=lefttop,
+ voffset=4mm,
+ y=\measure{blobheight}]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkcyan,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[mp]}{\typesetbuffer[style,mp][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=lefttop,
+ hoffset=4mm,
+ x=\measure{blobwidth},
+ voffset=4mm,
+ y=\measure{blobheight}]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkmagenta,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[csv]}{\typesetbuffer[style,csv][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=righttop,
+ hoffset=4mm,
+ x=\measure{blobwidth},
+ voffset=4mm,
+ y=\measure{blobheight}]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkyellow,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[json]}{\typesetbuffer[style,json][frame=on,width=\measure{blobscale}]}}
+
+\setlayerframed
+ [page]
+ [preset=righttop,
+ voffset=4mm,
+ y=\measure{blobheight}]
+ [align=normal,
+ offset=2mm,
+ strut=no,
+ frame=off,
+ height=\measure{blobheight},
+ width=\measure{blobwidth},
+ background=color,
+ backgroundcolor=darkorange,
+ foregroundcolor=white]
+ {\doifelsemode{verbose}{\typebuffer[mkxi]}{\typesetbuffer[style,mkxi][frame=on,width=\measure{blobscale}]}}
+
+\startstandardmakeup
+ \tightlayer[page]
+\stopstandardmakeup
+
+\stopbuffer
+
+\starttext
+
+{\enablemode[verbose] \getbuffer[everything]}
+ \getbuffer[everything]
+
+\stoptext
+
diff --git a/doc/context/sources/general/fonts/fonts/fonts-appendix.tex b/doc/context/sources/general/manuals/fonts/fonts-appendix.tex
index 2eab26a93..2eab26a93 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-appendix.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-appendix.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-demo-rule.lua b/doc/context/sources/general/manuals/fonts/fonts-demo-rule.lua
index 667d1e43c..667d1e43c 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-demo-rule.lua
+++ b/doc/context/sources/general/manuals/fonts/fonts-demo-rule.lua
diff --git a/doc/context/sources/general/fonts/fonts/fonts-environment.tex b/doc/context/sources/general/manuals/fonts/fonts-environment.tex
index c884d97e5..c884d97e5 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-environment.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-environment.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-extensions.tex b/doc/context/sources/general/manuals/fonts/fonts-extensions.tex
index afe6fd823..afe6fd823 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-extensions.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-extensions.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-features.tex b/doc/context/sources/general/manuals/fonts/fonts-features.tex
index bf9f39385..bf9f39385 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-features.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-features.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-formats.tex b/doc/context/sources/general/manuals/fonts/fonts-formats.tex
index 9ad6bc9bd..9ad6bc9bd 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-formats.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-formats.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-hooks.tex b/doc/context/sources/general/manuals/fonts/fonts-hooks.tex
index 7ee5dc198..7ee5dc198 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-hooks.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-hooks.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-introduction.tex b/doc/context/sources/general/manuals/fonts/fonts-introduction.tex
index 0ca91ee9f..0ca91ee9f 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-introduction.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-introduction.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-lookups.tex b/doc/context/sources/general/manuals/fonts/fonts-lookups.tex
index e9448b884..e9448b884 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-lookups.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-lookups.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-math.tex b/doc/context/sources/general/manuals/fonts/fonts-math.tex
index 766204937..766204937 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-math.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-math.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-methods.tex b/doc/context/sources/general/manuals/fonts/fonts-methods.tex
index eac86d694..eac86d694 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-methods.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-methods.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-mkiv.tex b/doc/context/sources/general/manuals/fonts/fonts-mkiv.tex
index fa53492f0..fa53492f0 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-mkiv.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-mkiv.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-modes.tex b/doc/context/sources/general/manuals/fonts/fonts-modes.tex
index 95cb95732..95cb95732 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-modes.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-modes.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-scripts.tex b/doc/context/sources/general/manuals/fonts/fonts-scripts.tex
index aed4f0a5c..aed4f0a5c 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-scripts.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-scripts.tex
diff --git a/doc/context/sources/general/fonts/fonts/fonts-tricks.tex b/doc/context/sources/general/manuals/fonts/fonts-tricks.tex
index 65b210e2c..65b210e2c 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-tricks.tex
+++ b/doc/context/sources/general/manuals/fonts/fonts-tricks.tex
diff --git a/doc/context/sources/general/manuals/musings/musings.tex b/doc/context/sources/general/manuals/musings/musings.tex
index e2787dc99..3b6327f59 100644
--- a/doc/context/sources/general/manuals/musings/musings.tex
+++ b/doc/context/sources/general/manuals/musings/musings.tex
@@ -16,6 +16,7 @@
\component musings-staygo
\component musings-stability
\component musings-roadmap
+ % \component musings-names
\stopbodymatter
\stopproduct
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index c6ff7e991..704b2df88 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{2019.05.25 10:45}
+\newcontextversion{2019.05.29 19:11}
%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 e5c386698..814359e65 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{2019.05.25 10:45}
+\edef\contextversion{2019.05.29 19:11}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-cs.mkii b/tex/context/base/mkii/mult-cs.mkii
index 4ab875e4d..708c296cb 100644
--- a/tex/context/base/mkii/mult-cs.mkii
+++ b/tex/context/base/mkii/mult-cs.mkii
@@ -373,6 +373,7 @@
\setinterfacevariable{nohz}{nohz}
\setinterfacevariable{noline}{noline}
\setinterfacevariable{nomarking}{zadneznaceni}
+\setinterfacevariable{nomenubar}{nomenubar}
\setinterfacevariable{none}{zadny}
\setinterfacevariable{nonumber}{nonumber}
\setinterfacevariable{norepeat}{norepeat}
diff --git a/tex/context/base/mkii/mult-de.mkii b/tex/context/base/mkii/mult-de.mkii
index 5557eb7b8..45a9ded24 100644
--- a/tex/context/base/mkii/mult-de.mkii
+++ b/tex/context/base/mkii/mult-de.mkii
@@ -570,6 +570,7 @@
\setinterfacevariable{temporary}{temporaer}
\setinterfacevariable{test}{test}
\setinterfacevariable{text}{text}
+\setinterfacevariable{textnote}{textnote}
\setinterfacevariable{three}{drei}
\setinterfacevariable{thursday}{donnerstag}
\setinterfacevariable{tight}{tight}
diff --git a/tex/context/base/mkiv/buff-ver.mkiv b/tex/context/base/mkiv/buff-ver.mkiv
index e6c88cdb7..dbc9086bd 100644
--- a/tex/context/base/mkiv/buff-ver.mkiv
+++ b/tex/context/base/mkiv/buff-ver.mkiv
@@ -684,7 +684,9 @@
\else
\buff_verbatim_type_file_checked\v!file{#3}%
\fi\fi
- \endgroup}
+ \useindentnextparameter\typingparameter % needs checking
+ \endgroup
+ \dorechecknextindentation} % needs checking
\def\buff_verbatim_type_file_checked#1#2%
{\doifelsetypingfile{#2}
@@ -895,7 +897,8 @@
\else
\buff_verbatim_type_buffer_indeed\currenttyping\empty% []
\fi\fi
- \endgroup}
+ \endgroup
+ \dorechecknextindentation}
\unexpanded\def\buff_verbatim_type_buffer_class#1%
{\begingroup
@@ -934,7 +937,8 @@
\endofverbatimlines
\dostoptagged
\stoppacked
- \typingparameter\c!after}
+ \typingparameter\c!after
+ \dorechecknextindentation}
\unexpanded\def\typeinlinebuffer
{\dontleavehmode
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 0cd33a4eb..e3d427c21 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2019.05.25 10:45}
+% \normalend % uncomment this to get the real base runtime
+
+\newcontextversion{2019.05.29 19:11}
%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 2550292e1..daa21816a 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -22,10 +22,14 @@
%D shares cq. when no files are cached by the os it's of course much worse. A zero
%D run is .27 sec with luajittex. In luametatex it's faster anyway (2.4 sec).
-% http://build.contextgarden.net/waterfall?tag=c/luatex
+%D The real minimal startup time can be measured by uncommenting \type {\normalend}
+%D in the \type {cont-new.mkiv} file. When we subtract .250 for \LUA\ initialization
+%D from 0.300 runtime and also subtract some 0.030 for the resolver, we get about
+%D 0.020 for format loading which is pretty fast. We're talking \LUAMETATEX\ here.
-% Welcome to context, pronounced as kontekst (rather dutch) and not as
-% conτεχt.
+% http://build.contextgarden.net/waterfall?tag=c/lua(meta)tex
+
+%D Welcome to context, pronounced as kontekst (rather dutch) and not as conτεχt.
\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
@@ -41,7 +45,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.05.25 10:45}
+\edef\contextversion{2019.05.29 19:11}
\edef\contextkind {beta}
%D Kind of special:
diff --git a/tex/context/base/mkiv/core-env.mkiv b/tex/context/base/mkiv/core-env.mkiv
index 605a92486..27ae8c008 100644
--- a/tex/context/base/mkiv/core-env.mkiv
+++ b/tex/context/base/mkiv/core-env.mkiv
@@ -17,6 +17,8 @@
\unprotect
+\def\wildcardsymbol{*}
+
%D Modes:
%D
%D \starttyping
@@ -35,12 +37,11 @@
%D
%D system modes have a * as prefix
%D
-%D Sometimes, we want to prevent a mode for being set. Think
-%D of situations where a style enables a mode, but an outer
-%D level style does not want that. Preventing can be
-%D considered a permanent disabling on forehand.
+%D Sometimes, we want to prevent a mode for being set. Think of situations where a
+%D style enables a mode, but an outer level style does not want that. Preventing can
+%D be considered a permanent disabling on forehand.
-\def\systemmodeprefix{*}
+\let\systemmodeprefix\wildcardsymbol
% we will have \installcorenamespace{mode} but need some hackery at the lua end then
@@ -141,18 +142,6 @@
{\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
\syst_mode_prefix\lastnamedcs\preventedmode}
-% \def\syst_modes_enable_indeed#1% we can speed it up by moving the new outside
-% {\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
-% \ifnum\csname\??mode#1\endcsname=\preventedmode \else
-% \syst_mode_prefix\lastnamedcs\enabledmode
-% \fi}
-%
-% \def\syst_modes_disable_indeed#1%
-% {\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
-% \ifnum\csname\??mode#1\endcsname=\preventedmode \else
-% \syst_mode_prefix\lastnamedcs\disabledmode
-% \fi}
-
\def\syst_modes_enable_indeed#1% we can speed it up by moving the new outside
{\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
\ifnum\lastnamedcs=\preventedmode\else
@@ -181,18 +170,6 @@
% \rawprocesscommacommand[#1]\syst_modes_define_indeed}
\fastprocesscommacommand[#1]\syst_modes_define_indeed}
-% \def\syst_modes_define_indeed#1%
-% {\ifcsname\??mode#1\endcsname
-% % already set
-% \else
-% \syst_modes_new{#1}
-% \fi
-% \ifx\m_modes_asked\v!keep
-% % not changes, disabled when undefined
-% \else
-% \csname\??mode#1\endcsname\ifx\m_modes_asked\v!yes\enabledmode\else\disabledmode\fi
-% \fi}
-
\def\syst_modes_define_indeed#1%
{\ifcsname\??mode#1\endcsname
% already set
@@ -283,7 +260,6 @@
\def\syst_modes_check_all_lr#1#2#3%
{\let\syst_modes_check_all_step\syst_modes_check_all_indeed
- % \rawprocesscommacommand[#3]\syst_modes_check_all_step
\fastprocesscommacommand[#3]\syst_modes_check_all_step
\ifx\syst_modes_check_all_step\gobbleoneargument
\expandafter#2%
@@ -293,7 +269,6 @@
\def\syst_modes_check_all_ss#1#2[#3]%
{\let\syst_modes_check_all_step\syst_modes_check_all_indeed
- % \rawprocesscommacommand[#3]\syst_modes_check_all_step
\fastprocesscommacommand[#3]\syst_modes_check_all_step
\ifx\syst_modes_check_all_step\gobbleoneargument
\expandafter#2%
@@ -327,28 +302,6 @@
%D Pushing/popping:
-% \unexpanded\def\pushmode[#1]%
-% {\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
-% \expandafter\edef\csname\??modestack#1\endcsname{\number\csname\??mode#1\endcsname}%
-% \expandafter\pushmacro\csname\??modestack#1\endcsname}
-%
-% \unexpanded\def\popmode[#1]%
-% {\ifcsname\??modestack#1\endcsname
-% \expandafter\popmacro\csname\??modestack#1\endcsname
-% \csname\??mode#1\endcsname\csname\??modestack#1\endcsname\relax
-% \fi}
-%
-% \def\pushsystemmode#1%
-% {\ifcsname\??mode\systemmodeprefix#1\endcsname\else\syst_modes_new{\systemmodeprefix#1}\fi
-% \expandafter\edef\csname\??modestack\systemmodeprefix#1\endcsname{\number\csname\??mode\systemmodeprefix#1\endcsname}%
-% \expandafter\pushmacro\csname\??modestack\systemmodeprefix#1\endcsname}
-%
-% \def\popsystemmode#1%
-% {\ifcsname\??modestack\systemmodeprefix#1\endcsname
-% \expandafter\popmacro\csname\??modestack\systemmodeprefix#1\endcsname
-% \csname\??mode\systemmodeprefix#1\endcsname\csname\??modestack\systemmodeprefix#1\endcsname\relax
-% \fi}
-
\unexpanded\def\pushmode[#1]%
{\ifcsname\??mode#1\endcsname\else\syst_modes_new{#1}\fi
\expandafter\edef\csname\??modestack#1\expandafter\endcsname\expandafter{\number\lastnamedcs}%
@@ -458,14 +411,6 @@
\unexpanded\def\startsetups{} % to please dep checker
\unexpanded\def\stopsetups {} % to please dep checker
-% \expanded % will become obsolete
-% {\def\expandafter\noexpand\csname\e!start\v!setups\endcsname
-% {\begingroup\noexpand\doifnextoptionalcselse
-% {\noexpand\dostartsetupsA\expandafter\noexpand\csname\e!stop\v!setups\endcsname}
-% {\noexpand\dostartsetupsB\expandafter\noexpand\csname\e!stop\v!setups\endcsname}}}
-%
-% \letvalue{\e!stop\v!setups}\relax
-
\unexpanded\def\setups{\doifelsenextbgroup\syst_setups_a\syst_setups_b} % {..} or [..]
\unexpanded\def\setup {\doifelsenextbgroup\syst_setups \syst_setups_c} % {..} or [..]
@@ -507,9 +452,6 @@
\expandafter\syst_setups_process_local
\fi}
-% \def\syst_setups_process_local
-% {\expandafter\processcommalist\expandafter[\m_syst_setups_asked]\syst_setups}
-
% setups=S1
% setups=lua(S2)
% setups=S3
@@ -674,9 +616,9 @@
\def\luasetup#1{\ctxlua{\syst_setups{#1}}}
-% % % %
+%D System setups:
-\def\systemsetupsprefix{*}
+\let\systemsetupsprefix\wildcardsymbol
\def\systemsetups#1{\syst_setups{\systemsetupsprefix#1}}
@@ -687,19 +629,9 @@
\dodoglobal\undefinevalue{\??setup:#1}%
\fi}
-% \unexpanded\def\resetsetups[#1]% see x-fo for usage
-% {\dodoglobal\expandafter\let\csname\??setup
-% \ifgridsnapping\ifcsname\??setup\v!grid:#1\endcsname\v!grid\fi
-% :#1\endcsname\undefined}
-
\unexpanded\def\copysetups
{\dodoubleargument\syst_setups_copy}
-% \def\syst_setups_copy[#1][#2]%
-% {\ifcsname\??setup:#2\endcsname
-% \expandafter\let\csname\??setup:#1\expandafter\endcsname\csname\??setup:#2\endcsname
-% \fi}
-
\def\syst_setups_copy[#1][#2]%
{\ifcsname\??setup:#2\endcsname
\expandafter\let\csname\??setup:#1\expandafter\endcsname\lastnamedcs
@@ -747,11 +679,6 @@
\unexpanded\def\setgvariable#1#2#3{\expandafter\gdef\csname\??variables#1:#2\endcsname{#3}}
\unexpanded\def\setxvariable#1#2#3{\expandafter\xdef\csname\??variables#1:#2\endcsname{#3}}
-% \def\getvariable#1#2%
-% {\csname
-% \ifcsname\??variables#1:#2\endcsname\??variables#1:#2\else\s!empty\fi
-% \endcsname}
-
\def\getvariable#1#2%
{\begincsname\??variables#1:#2\endcsname}
@@ -775,7 +702,6 @@
\def\syst_variables_check_value#1#2#3%
{\ifcsname\??variables#1:#2\endcsname
- %\edef\m_syst_variables_temp{\csname\??variables#1:#2\endcsname}%
\edef\m_syst_variables_temp{\lastnamedcs}%
\ifx\m_syst_variables_temp\empty
\expandafter\def\csname\??variables#1:#2\endcsname{#3}%
@@ -812,13 +738,12 @@
\expandafter\firstofoneargument
\fi}
-%D A few more (we could use a public test variable so that we only need
-%D to expand once, assuming expandable variables):
+%D A few more (we could use a public test variable so that we only need to expand
+%D once, assuming expandable variables):
\letvalue{\??variables:}\empty
\unexpanded\def\doifelseemptyvariable#1#2%
- %{\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}%
{\edef\m_syst_string_one{\begincsname\??variables#1:#2\endcsname}%
\ifx\m_syst_string_one\empty
\expandafter\firstoftwoarguments
@@ -829,7 +754,6 @@
\let\doifemptyvariableelse\doifelseemptyvariable
\unexpanded\def\doifemptyvariable#1#2%
- %{\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}%
{\edef\m_syst_string_one{\begincsname\??variables#1:#2\endcsname}%
\ifx\m_syst_string_one\empty
\expandafter\firstofoneargument
@@ -838,7 +762,6 @@
\fi}
\unexpanded\def\doifnotemptyvariable#1#2%
- %{\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}%
{\edef\m_syst_string_one{\begincsname\??variables#1:#2\endcsname}%
\ifx\m_syst_string_one\empty
\expandafter\gobbleoneargument
@@ -847,7 +770,6 @@
\fi}
\def\getvariabledefault#1#2% #3% can be command
- %{\executeifdefined{\??variables#1:#2}}% {#3}
{\ifcsname\??variables#1:#2\endcsname
\expandafter\expandafter\expandafter\lastnamedcs\expandafter\gobbleoneargument
\else
diff --git a/tex/context/base/mkiv/font-osd.lua b/tex/context/base/mkiv/font-osd.lua
index 91cf1522c..3c30910ab 100644
--- a/tex/context/base/mkiv/font-osd.lua
+++ b/tex/context/base/mkiv/font-osd.lua
@@ -81,7 +81,7 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
-- malayalam, oriya, tamil and tolugu but not all are checked. Also, some of the
-- code below might need to be adapted to the extra scripts.
-local insert, imerge, copy = table.insert, table.imerge, table.copy
+local insert, imerge, copy, tohash = table.insert, table.imerge, table.copy, table.tohash
local next, type = next, type
local report = logs.reporter("otf","devanagari")
@@ -332,8 +332,8 @@ local two_defaults = {
}
local one_defaults = {
- dev2 = dflt_true,
- deva = dflt_true,
+ dev2 = dflt_true, -- set later
+ deva = dflt_true, -- set later
}
local false_flags = { false, false, false, false }
@@ -455,6 +455,8 @@ local scripts = { }
local scripts_one = { "deva", "mlym", "beng", "gujr", "guru", "knda", "orya", "taml", "telu" }
local scripts_two = { "dev2", "mlm2", "bng2", "gjr2", "gur2", "knd2", "ory2", "tml2", "tel2" }
+local scripts_old = { } for i=1,#scripts_one do local v = scripts_one[i] scripts_old[v] = v end -- self
+
local nofscripts = #scripts_one
for i=1,nofscripts do
@@ -532,6 +534,8 @@ local function initializedevanagi(tfmdata)
--
resources.devanagari = devanagari
--
+ local old = scripts_old[script] or false
+ --
for s=1,#sequences do
local sequence = sequences[s]
local steps = sequence.steps
@@ -539,9 +543,9 @@ local function initializedevanagi(tfmdata)
local features = sequence.features
local has_rphf = features.rphf
local has_blwf = features.blwf
- if has_rphf and has_rphf.deva then
+ if has_rphf and has_rphf[old] then
devanagari.reph = true
- elseif has_blwf and has_blwf.deva then
+ elseif has_blwf and has_blwf[old] then
devanagari.vattu = true
for i=1,nofsteps do
local step = steps[i]
@@ -617,13 +621,15 @@ local function initializedevanagi(tfmdata)
--
-- needs checking: this might be needed per instance ?
--
- if script == "deva" then
+ if script == "deva" or script == "knda" then
sharedfeatures["dv04"] = true -- dv04_remove_joiners
- elseif script == "dev2" then
+ elseif script == "dev2" or script == "knd2" then
sharedfeatures["dv01"] = true -- dv01_reorder_matras
sharedfeatures["dv02"] = true -- dv02_reorder_reph
sharedfeatures["dv03"] = true -- dv03_reorder_pre_base_reordering_consonants
sharedfeatures["dv04"] = true -- dv04_remove_joiners
+ -- elseif script == "knda" then -- see deva, needs checking by Kai
+ -- elseif script == "knd2" then -- see dev2, needs checking by Kai
elseif script == "mlym" then
sharedfeatures["pstf"] = true
elseif script == "mlm2" then
@@ -638,8 +644,6 @@ local function initializedevanagi(tfmdata)
-- elseif script == "gjr2" then
-- elseif script == "guru" then
-- elseif script == "gur2" then
- -- elseif script == "knda" then
- -- elseif script == "knd2" then
elseif script == "taml" then
sharedfeatures["dv04"] = true -- dv04_remove_joiners
sharedfeatures["pstf"] = true
@@ -699,7 +703,6 @@ local function initialize_one(font,attr) -- we need a proper hook into the datas
datasets.devanagari = devanagaridata
local resources = tfmdata.resources
local devanagari = resources.devanagari
-
for s=1,#datasets do
local dataset = datasets[s]
if dataset and dataset[1] then -- value
diff --git a/tex/context/base/mkiv/font-ots.lua b/tex/context/base/mkiv/font-ots.lua
index 24a868887..631302200 100644
--- a/tex/context/base/mkiv/font-ots.lua
+++ b/tex/context/base/mkiv/font-ots.lua
@@ -3178,7 +3178,7 @@ local function testrun(disc,t_run,c_run,...)
end
local pre, post, replace, pretail, posttail, replacetail = getdisc(disc,true)
local renewed = false
- if (post or replace) and prev then
+ if (post or replace) then -- and prev then -- hm, we can start with a disc
if post then
setlink(posttail,next)
else
@@ -3419,6 +3419,7 @@ local function t_run_single(start,stop,font,attr,lookupcache)
ss = nil
end
end
+lookupmatch = lg
else
break
end
@@ -3588,6 +3589,7 @@ local function t_run_multiple(start,stop,font,attr,steps,nofsteps)
ss = nil
end
end
+lookupmatch = lg
else
break
end
diff --git a/tex/context/base/mkiv/font-shp.lua b/tex/context/base/mkiv/font-shp.lua
index a6788bc62..631f3086e 100644
--- a/tex/context/base/mkiv/font-shp.lua
+++ b/tex/context/base/mkiv/font-shp.lua
@@ -40,26 +40,27 @@ local function packoutlines(data,makesequence)
return
end
if makesequence then
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
+ for index=0,#glyphs do
local glyph = glyphs[index]
- local segments = glyph.segments
- if segments then
- local sequence = { }
- local nofsequence = 0
- for i=1,#segments do
- local segment = segments[i]
- local nofsegment = #segment
- -- why last first ... needs documenting
- nofsequence = nofsequence + 1
- sequence[nofsequence] = segment[nofsegment]
- for i=1,nofsegment-1 do
+ if glyph then
+ local segments = glyph.segments
+ if segments then
+ local sequence = { }
+ local nofsequence = 0
+ for i=1,#segments do
+ local segment = segments[i]
+ local nofsegment = #segment
+ -- why last first ... needs documenting
nofsequence = nofsequence + 1
- sequence[nofsequence] = segment[i]
+ sequence[nofsequence] = segment[nofsegment]
+ for i=1,nofsegment-1 do
+ nofsequence = nofsequence + 1
+ sequence[nofsequence] = segment[i]
+ end
end
+ glyph.sequence = sequence
+ glyph.segments = nil
end
- glyph.sequence = sequence
- glyph.segments = nil
end
end
else
@@ -67,32 +68,36 @@ local function packoutlines(data,makesequence)
local common = { }
local reverse = { }
local last = 0
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
- local segments = glyphs[index].segments
- if segments then
- for i=1,#segments do
- local h = concat(segments[i]," ")
- hash[h] = (hash[h] or 0) + 1
+ for index=0,#glyphs do
+ local glyph = glyphs[index]
+ if glyph then
+ local segments = glyph.segments
+ if segments then
+ for i=1,#segments do
+ local h = concat(segments[i]," ")
+ hash[h] = (hash[h] or 0) + 1
+ end
end
end
end
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
- local segments = glyphs[index].segments
- if segments then
- for i=1,#segments do
- local segment = segments[i]
- local h = concat(segment," ")
- if hash[h] > 1 then -- minimal one shared in order to hash
- local idx = reverse[h]
- if not idx then
- last = last + 1
- reverse[h] = last
- common[last] = segment
- idx = last
+ for index=0,#glyphs do
+ local glyph = glyphs[index]
+ if glyph then
+ local segments = glyph.segments
+ if segments then
+ for i=1,#segments do
+ local segment = segments[i]
+ local h = concat(segment," ")
+ if hash[h] > 1 then -- minimal one shared in order to hash
+ local idx = reverse[h]
+ if not idx then
+ last = last + 1
+ reverse[h] = last
+ common[last] = segment
+ idx = last
+ end
+ segments[i] = idx
end
- segments[i] = idx
end
end
end
@@ -119,14 +124,16 @@ local function unpackoutlines(data)
if not glyphs then
return
end
--- for index=1,#glyphs do
- for index=0,#glyphs-1 do
- local segments = glyphs[index].segments
- if segments then
- for i=1,#segments do
- local c = common[segments[i]]
- if c then
- segments[i] = c
+ for index=0,#glyphs do
+ local glyph = glyphs[index]
+ if glyph then
+ local segments = glyph.segments
+ if segments then
+ for i=1,#segments do
+ local c = common[segments[i]]
+ if c then
+ segments[i] = c
+ end
end
end
end
@@ -219,8 +226,13 @@ local function loadstreams(cache,filename,sub,instance)
local glyphs = data.glyphs
local streams = { }
if glyphs then
- for i=0,#glyphs-1 do
- streams[i] = glyphs[i].stream or ""
+ for i=0,#glyphs do
+ local glyph = glyphs[i]
+ if glyph then
+ streams[i] = glyph.stream or ""
+ else
+ streams[i] = ""
+ end
end
end
data.streams = streams
diff --git a/tex/context/base/mkiv/lpdf-pde.lua b/tex/context/base/mkiv/lpdf-pde.lua
index cb6c112e7..8c5c6ffc1 100644
--- a/tex/context/base/mkiv/lpdf-pde.lua
+++ b/tex/context/base/mkiv/lpdf-pde.lua
@@ -518,6 +518,7 @@ lpdf_epdf.expanded = expanded
local spaces = lpegpatterns.whitespace^1
local optspaces = lpegpatterns.whitespace^0
+local comment = P("%") * (1 - lpegpatterns.newline)^0
local numchar = P("\\")/"" * (R("09")^3/function(s) return char(tonumber(s,8)) end)
+ P("\\") * P(1)
local key = P("/") * C(R("AZ","az","09","__")^1)
@@ -526,7 +527,7 @@ local keyword = Ct(Cc("name") * key)
local operator = C((R("AZ","az")+P("*")+P("'")+P('"'))^1)
local grammar = P { "start",
- start = (keyword + number + V("dictionary") + V("array") + V("hexstring") + V("decstring") + spaces)^1,
+ start = (comment + keyword + number + V("dictionary") + V("array") + V("hexstring") + V("decstring") + spaces)^1,
keyvalue = key * optspaces * V("start"),
array = Ct(Cc("array") * P("[") * Ct(V("start")^1) * P("]")),
dictionary = Ct(Cc("dict") * P("<<") * Ct(V("keyvalue")^1) * P(">>")),
@@ -634,6 +635,8 @@ local function analyzefonts(document,resources) -- unfinished, see mtx-pdf for b
return fonts
end
+lpdf_epdf.analyzefonts = analyzefonts
+
local more = 0
local unic = nil -- cheaper than passing each time as Carg(1)
@@ -679,27 +682,34 @@ function lpdf_epdf.getpagecontent(document,pagenumber)
local size = #entry
local operator = entry[size]
if operator == "Tf" then
- font = fonts[entry[1]]
- unic = font.tounicode
- elseif operator == "TJ" then -- { array, TJ }
- local list = entry[1]
+ font = fonts[entry[1][2]]
+ unic = font and font.tounicode or { }
+ elseif operator == "TJ" then
+ local data = entry[1] -- { "array", { ... } }
+ local list = data[2] -- { { ... }, { ... } }
for i=1,#list do
local li = list[i]
- if type(li) == "table" then
- if li[1] == "hex" then
+-- if type(li) == "table" then
+ local kind = li[1]
+ if kind == "hex" then
list[i] = lpegmatch(p_hex_to_utf,li[2])
- else
+ elseif kind == "string" then
list[i] = lpegmatch(p_dec_to_utf,li[2])
+ else
+ list[i] = li[2] -- kern
end
- else
- -- kern
- end
+-- else
+-- -- kern
+-- end
end
- elseif operator == "Tj" or operator == "'" or operator == '"' then -- { string, Tj } { string, ' } { n, m, string, " }
- local list = entry[size-1]
- if list[1] == "hex" then
+ elseif operator == "Tj" or operator == "'" or operator == '"' then
+ -- { string, Tj } { string, ' } { n, m, string, " }
+ local data = entry[size-1]
+ local list = data[2]
+ local kind = list[1]
+ if kind == "hex" then
list[2] = lpegmatch(p_hex_to_utf,li[2])
- else
+ elseif kind == "string" then
list[2] = lpegmatch(p_dec_to_utf,li[2])
end
end
@@ -728,25 +738,32 @@ function lpdf_epdf.contenttotext(document,list) -- maybe signal fonts
local size = #entry
local operator = entry[size]
if operator == "Tf" then
- last_f = entry[2]
+ last_f = entry[2][2] -- size
elseif operator == "TJ" then
- local list = entry[1]
+ local data = entry[1] -- { "array", { ... } }
+ local list = data[2] -- { { ... }, { ... } }
for i=1,#list do
local li = list[i]
- if type(li) == "string" then
+ local kind = type(li)
+ if kind == "string" then
last = last + 1
text[last] = li
- elseif li < -50 then
+ elseif kind == "number" and li < -50 then
last = last + 1
text[last] = " "
end
end
- line = concat(list)
elseif operator == "Tj" then
last = last + 1
- text[last] = entry[size-1]
+ local li = entry[size-1]
+ local kind = type(li)
+ if kind == "string" then
+ last = last + 1
+ text[last] = li
+ end
elseif operator == "cm" or operator == "Tm" then
- local ty = entry[6]
+ local data = entry
+ local ty = entry[6][2]
local dy = abs(last_y - ty)
if dy > linefactor*last_f then
if last > 0 then
diff --git a/tex/context/base/mkiv/luat-cod.lua b/tex/context/base/mkiv/luat-cod.lua
index 6f79a54e1..522de886c 100644
--- a/tex/context/base/mkiv/luat-cod.lua
+++ b/tex/context/base/mkiv/luat-cod.lua
@@ -260,6 +260,10 @@ local function find_write_file(id,name)
return target_file(name)
end
+local function find_log_file(name)
+ return target_file(name)
+end
+
local function open_read_file(name)
local f = io.open(name,'rb')
return {
@@ -278,6 +282,7 @@ local open_data_file = open_read_file
callback.register('find_read_file' , find_read_file )
callback.register('open_read_file' , open_read_file )
callback.register('find_write_file', find_write_file)
+callback.register('find_log_file', find_log_file)
callback.register('find_data_file' , find_data_file )
callback.register('open_data_file' , open_data_file )
diff --git a/tex/context/base/mkiv/luat-fio.lua b/tex/context/base/mkiv/luat-fio.lua
index 2996ae66a..26db46a88 100644
--- a/tex/context/base/mkiv/luat-fio.lua
+++ b/tex/context/base/mkiv/luat-fio.lua
@@ -117,6 +117,8 @@ if not resolvers.initialized() then
-- register('read_cidmap_file' , function(file) return loadbinfile(file,"cidmap") end, true)
register('find_write_file' , function(id,name) return name end, true)
+
+ register('find_log_file' , function(name) return name end, true)
register('find_format_file' , function(name) return name end, true)
end
diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua
index 0fb19e18e..8dfee915a 100644
--- a/tex/context/base/mkiv/mult-def.lua
+++ b/tex/context/base/mkiv/mult-def.lua
@@ -13368,6 +13368,10 @@ return {
["pe"]="ته‌نوشت",
["ro"]="endnote",
},
+ ["textnote"]={
+ ["en"]="textnote",
+ ["nl"]="tekstnoot",
+ },
["enumeration"]={
["cs"]="vycet",
["de"]="nummerierung",
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index e19f4aa76..846380027 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -142,7 +142,9 @@ return {
--
"parfillleftskip", "parfillrightskip",
--
- "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode"
+ "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode",
+ --
+ "wildcardsymbol",
},
["helpers"] = {
--
diff --git a/tex/context/base/mkiv/node-rul.lua b/tex/context/base/mkiv/node-rul.lua
index 61d78668f..5a8fdc48a 100644
--- a/tex/context/base/mkiv/node-rul.lua
+++ b/tex/context/base/mkiv/node-rul.lua
@@ -224,7 +224,7 @@ local trace_ruled = false trackers.register("nodes.rules", function(v) trace_
local report_ruled = logs.reporter("nodes","rules")
function rules.define(settings)
- local nofdata = #data+1
+ local nofdata = #data + 1
data[nofdata] = settings
local text = settings.text
if text then
@@ -236,7 +236,7 @@ function rules.define(settings)
settings.text = nil
end
end
- context(nofdata)
+ return nofdata
end
local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but acceptable for this purpose
@@ -265,7 +265,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
if not f then
return head
end
- local w, ht, dp = getrangedimensions(parent,f,getnext(l))
+ local wd, ht, dp = getrangedimensions(parent,f,getnext(l))
local method = d.method
local empty = d.empty == v_yes
local offset = d.offset
@@ -306,7 +306,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
m = 0
end
- local function inject(r,w,ht,dp)
+ local function inject(r,wd,ht,dp)
if layer then
setattr(r,a_viewerlayer,layer)
end
@@ -317,7 +317,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
setnext(l)
flushlist(f)
else
- local k = new_kern(-w)
+ local k = new_kern(-wd)
if foreground then
insert_node_after(head,l,k)
insert_node_after(head,k,r)
@@ -329,12 +329,12 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
end
if trace_ruled then
report_ruled("level %a, width %p, height %p, depth %p, nodes %a, text %a",
- level,w,ht,dp,n_tostring(f,l),n_tosequence(f,l,true))
+ level,wd,ht,dp,n_tostring(f,l),n_tosequence(f,l,true))
end
end
if mp and mp ~= "" then
local r = usernutrule {
- width = w,
+ width = wd,
height = ht,
depth = dp,
type = "mp",
@@ -346,22 +346,26 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
ca = color,
ta = transparency,
}
- inject(r,w,ht,dp)
+ inject(r,wd,ht,dp)
else
local tx = d.text
if tx then
local l = copy_list(tx)
if d["repeat"] == v_yes then
- l = new_leader(w,l)
+ l = new_leader(wd,l)
setattrlist(l,tx)
end
- l = hpack_nodes(l,w,"exactly")
- inject(l,w,ht,dp)
+ l = hpack_nodes(l,wd,"exactly")
+ inject(l,wd,ht,dp)
else
for i=1,level do
- local ht = (offset+(i-1)*dy)*e + rulethickness - m
- local dp = -(offset+(i-1)*dy)*e + rulethickness + m
- local r = new_rule(w,ht,dp)
+ local hd = (offset+(i-1)*dy)*e - m
+-- local ht = hd + rulethickness - m
+-- local dp = -hd + rulethickness + m
+ local ht = hd + rulethickness
+ local dp = -hd + rulethickness
+ local r = new_rule(wd,ht,dp)
+ -- can be done more efficient
if color then
setattr(r,a_colormodel,colorspace)
setattr(r,a_color,color)
@@ -369,7 +373,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
if transparency then
setattr(r,a_transparency,transparency)
end
- inject(r,w,ht,dp)
+ inject(r,wd,ht,dp)
end
end
end
@@ -390,16 +394,18 @@ local report_shifted = logs.reporter("nodes","shifting")
local a_shifted = attributes.private('shifted')
-nodes.shifts = nodes.shifts or { }
-nodes.shifts.data = nodes.shifts.data or { }
+local shifts = nodes.shifts or { }
+nodes.shifts = shifts
+shifts.data = shifts.data or { }
-storage.register("nodes/shifts/data", nodes.shifts.data, "nodes.shifts.data")
+storage.register("nodes/shifts/data", shifts.data, "nodes.shifts.data")
-local data = nodes.shifts.data
+local data = shifts.data
-function nodes.shifts.define(settings)
- data[#data+1] = settings
- context(#data)
+function shifts.define(settings)
+ local nofdata = #data + 1
+ data[nofdata] = settings
+ return nofdata
end
local function flush_shifted(head,first,last,data,level,parent,strip) -- not that fast but acceptable for this purpose
@@ -430,26 +436,28 @@ local function flush_shifted(head,first,last,data,level,parent,strip) -- not tha
return head
end
-nodes.shifts.handler = function(head)
+shifts.handler = function(head)
return processwords(a_shifted,data,flush_shifted,head)
end
-function nodes.shifts.enable()
+function shifts.enable()
enableaction("shipouts","nodes.shifts.handler")
end
-- linefillers
-nodes.linefillers = nodes.linefillers or { }
-nodes.linefillers.data = nodes.linefillers.data or { }
+local linefillers = nodes.linefillers or { }
+nodes.linefillers = linefillers
+linefillers.data = linefillers.data or { }
-storage.register("nodes/linefillers/data", nodes.linefillers.data, "nodes.linefillers.data")
+storage.register("nodes/linefillers/data", linefillers.data, "nodes.linefillers.data")
-local data = nodes.linefillers.data
+local data = linefillers.data
-function nodes.linefillers.define(settings)
- data[#data+1] = settings
- context(#data)
+function linefillers.define(settings)
+ local nofdata = #data + 1
+ data[nofdata] = settings
+ return nofdata
end
local function linefiller(current,data,width,location)
@@ -486,7 +494,7 @@ local function linefiller(current,data,width,location)
end
end
-function nodes.linefillers.filler(current,data,width,height,depth)
+function linefillers.filler(current,data,width,height,depth)
if width and width > 0 then
local height = height or data.height or 0
local depth = depth or data.depth or 0
@@ -534,7 +542,7 @@ local function find_attr(head,attr)
end
end
-function nodes.linefillers.handler(head)
+function linefillers.handler(head)
for current, subtype, list in nexthlist, head do
if list and subtype == linelist_code then
-- why doesn't leftskip take the attributes
@@ -658,7 +666,7 @@ end
local enable = false
-function nodes.linefillers.enable()
+function linefillers.enable()
if not enable then
-- we could now nil it
enableaction("finalizers","nodes.linefillers.handler")
@@ -700,7 +708,7 @@ implement {
implement {
name = "defineshift",
- actions = { nodes.shifts.define, context },
+ actions = { shifts.define, context },
arguments = {
{
{ "continue" },
@@ -714,12 +722,12 @@ implement {
implement {
name = "enableshifts",
onlyonce = true,
- actions = nodes.shifts.enable
+ actions = shifts.enable
}
implement {
name = "definelinefiller",
- actions = { nodes.linefillers.define, context },
+ actions = { linefillers.define, context },
arguments = {
{
{ "method", "integer" },
@@ -741,7 +749,7 @@ implement {
implement {
name = "enablelinefillers",
onlyonce = true,
- actions = nodes.linefillers.enable
+ actions = linefillers.enable
}
-- We add a bonus feature here (experiment):
diff --git a/tex/context/base/mkiv/node-rul.mkiv b/tex/context/base/mkiv/node-rul.mkiv
index 19f398eb9..7f2093bf2 100644
--- a/tex/context/base/mkiv/node-rul.mkiv
+++ b/tex/context/base/mkiv/node-rul.mkiv
@@ -146,6 +146,12 @@
{\node_rules_set{#1}\barparameter\c!left}%
{\relax\barparameter\c!right}}
+\unexpanded\def\inlinebar[#1]%
+ {\node_rules_direct{#1}}
+
+% \unexpanded\def\inlinecurrentbar
+% {\node_rules_direct{\currentbar}}
+
% store in properties
\unexpanded\def\node_rules_set#1% maybe reverse the 1000 (also maybe use more attributes instead of settings)
diff --git a/tex/context/base/mkiv/node-scn.lua b/tex/context/base/mkiv/node-scn.lua
index a40a5271a..055f5e20d 100644
--- a/tex/context/base/mkiv/node-scn.lua
+++ b/tex/context/base/mkiv/node-scn.lua
@@ -124,7 +124,7 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
local continue, leaders, done, strip, level = false, false, false, true, -1
while n do
local id = getid(n)
- if id == glyph_code or id == rule_code or (id == hlist_code and getattr(n,a_runningtext) == 1) then
+ if id == glyph_code or id == rule_code or (id == hlist_code and getattr(n,a_runningtext)) then
local aa = getattr(n,attribute)
if aa and aa ~= skip then
if aa == a then
diff --git a/tex/context/base/mkiv/pack-mrl.mkiv b/tex/context/base/mkiv/pack-mrl.mkiv
index 4a0b68332..cd04781c7 100644
--- a/tex/context/base/mkiv/pack-mrl.mkiv
+++ b/tex/context/base/mkiv/pack-mrl.mkiv
@@ -843,32 +843,32 @@
\unexpanded\def\fillinline
{\dosingleempty\pack_fillinline}
-\ifdefined\endpar % experiment with \endpar
-
- \def\pack_fillinline[#1]%
- {% \endpar % no, as it interferes with \definedescription cum suis
- \begingroup
- \setupcurrentfillinlines[#1]%
- \directfillinlinesparameter\c!before
- \begingroup
- \advance\rightskip \directfillinlinesparameter\c!margin\relax
- \parfillskip\zeropoint
- \pushmacro\endpar
- \def\endpar
- {\popmacro\endpar
- \ifhmode\unskip\hfill\fi
- \scratchwidth\dimexpr\directfillinlinesparameter\c!width-\directfillinlinesparameter\c!distance\relax
- \ifdim\scratchwidth>\directfillinlinesparameter\c!margin\else\expandafter\rlap\fi
- {\kern\directfillinlinesparameter\c!distance
- \scratchheight\dimexpr\directfillinlinesparameter\c!rulethickness/\plustwo\relax
- \color[\directfillinlinesparameter\c!color]{\vrule\s!width\scratchwidth\s!height\scratchheight\s!depth\scratchheight}}%
- \endpar
- \endgroup
- \endpar
- \directfillinlinesparameter\c!after
- \endgroup}} % carryover ?
-
-\else
+% \ifdefined\endpar % experiment with \endpar
+%
+% \def\pack_fillinline[#1]%
+% {% \endpar % no, as it interferes with \definedescription cum suis
+% \begingroup
+% \setupcurrentfillinlines[#1]%
+% \directfillinlinesparameter\c!before
+% \begingroup
+% \advance\rightskip \directfillinlinesparameter\c!margin\relax
+% \parfillskip\zeropoint
+% \pushmacro\endpar
+% \def\endpar
+% {\popmacro\endpar
+% \ifhmode\unskip\hfill\fi
+% \scratchwidth\dimexpr\directfillinlinesparameter\c!width-\directfillinlinesparameter\c!distance\relax
+% \ifdim\scratchwidth>\directfillinlinesparameter\c!margin\else\expandafter\rlap\fi
+% {\kern\directfillinlinesparameter\c!distance
+% \scratchheight\dimexpr\directfillinlinesparameter\c!rulethickness/\plustwo\relax
+% \color[\directfillinlinesparameter\c!color]{\vrule\s!width\scratchwidth\s!height\scratchheight\s!depth\scratchheight}}%
+% \endpar
+% \endgroup
+% \endpar
+% \directfillinlinesparameter\c!after
+% \endgroup}} % carryover ?
+%
+% \else
\def\pack_fillinline[#1]%
{%\endgraf % no, as it interferes with \definedescription cum suis
@@ -892,6 +892,6 @@
\directfillinlinesparameter\c!after
\endgroup}} % carryover ?
-\fi
+% \fi
\protect \endinput
diff --git a/tex/context/base/mkiv/spac-hor.mkiv b/tex/context/base/mkiv/spac-hor.mkiv
index c0c7d95d2..e51e54f29 100644
--- a/tex/context/base/mkiv/spac-hor.mkiv
+++ b/tex/context/base/mkiv/spac-hor.mkiv
@@ -1273,4 +1273,13 @@
\def\obeyfollowingtoken{{}} % end \cs scanning
+%D Something new:
+
+\unexpanded\def\interwordspacebefore{\wordboundary\zwnj\hskip\interwordspace\relax}
+\unexpanded\def\interwordspaceafter {\hskip\interwordspace\relax\zwnj\wordboundary}
+
+\unexpanded\def\interwordspacesbefore#1{\dofastloopcs{#1}\interwordspacebefore}
+\unexpanded\def\interwordspacesafter #1{\dofastloopcs{#1}\interwordspaceafter}
+\unexpanded\def\interwordspaces #1{\wordboundary\zwnj\dofastloopcs{\numexpr#1+\minusone}\interwordspaceafter}
+
\protect \endinput
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 328354ee5..ee13ad39a 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 94132234a..e3b70eaa0 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-bkm.lua b/tex/context/base/mkiv/strc-bkm.lua
index ee9233a9a..41a128333 100644
--- a/tex/context/base/mkiv/strc-bkm.lua
+++ b/tex/context/base/mkiv/strc-bkm.lua
@@ -42,6 +42,19 @@ local opened = { }
local forced = { }
local numbered = { }
+function bookmarks.setopened(key,value)
+ if value == nil then
+ value = true
+ end
+ if type(key) == "table" then
+ for i=1,#key do
+ opened[key[i]] = value
+ end
+ else
+ opened[key] = value
+ end
+end
+
function bookmarks.register(settings)
local force = settings.force == variables.yes
local number = settings.number == variables.yes
diff --git a/tex/context/base/mkiv/strc-itm.mkvi b/tex/context/base/mkiv/strc-itm.mkvi
index 7895b7968..eea42f2de 100644
--- a/tex/context/base/mkiv/strc-itm.mkvi
+++ b/tex/context/base/mkiv/strc-itm.mkvi
@@ -906,6 +906,10 @@
\doadaptleftskip {\itemgroupparameter\c!leftmargin}%
\doadaptrightskip{\itemgroupparameter\c!rightmargin}%
\fi
+ %
+ \doadaptleftskip {\itemgroupparameter\c!leftmargindistance}%
+ \doadaptrightskip{\itemgroupparameter\c!rightmargindistance}%
+ %
\usealignparameter\itemgroupparameter
\edef\m_strc_itemgroups_indenting{\itemgroupparameter\c!indenting}%
\ifnum\c_strc_itemgroups_nesting>\zerocount
@@ -1808,6 +1812,8 @@
[\c!margin=\zeropoint,
\c!leftmargin=\zeropoint,
\c!rightmargin=\zeropoint,
+ \c!leftmargindistance=\zeropoint,
+ \c!rightmargindistance=\zeropoint,
\c!indentnext=\v!yes,
\c!width=1.5\emwidth,
\c!factor=0,
diff --git a/tex/context/base/mkiv/syst-aux.mkiv b/tex/context/base/mkiv/syst-aux.mkiv
index d6f54f7d0..924043849 100644
--- a/tex/context/base/mkiv/syst-aux.mkiv
+++ b/tex/context/base/mkiv/syst-aux.mkiv
@@ -5149,19 +5149,26 @@
\let\m_syst_helpers_fast_loop_cs\relax
-\unexpanded\def\dofastloopcs#1#2%
- {\let\m_syst_helpers_fast_loop_cs#2%
+\unexpanded\def\dofastloopcs#1%
+ {\fastloopfinal#1\relax
+ \ifcase\fastloopfinal
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\syst_helpers_fast_loop_cs
+ \fi}
+
+\unexpanded\def\syst_helpers_fast_loop_cs#1%
+ {\let\m_syst_helpers_fast_loop_cs#1%
\fastloopindex\plusone
- \fastloopfinal#1\relax
- \syst_helpers_fast_loop_cs}
+ \syst_helpers_fast_loop_cs_step}
-\unexpanded\def\syst_helpers_fast_loop_cs
+\unexpanded\def\syst_helpers_fast_loop_cs_step
{\ifnum\fastloopindex>\fastloopfinal
\let\m_syst_helpers_fast_loop_cs\relax
\else
\m_syst_helpers_fast_loop_cs
\advance\fastloopindex\plusone
- \expandafter\syst_helpers_fast_loop_cs
+ \expandafter\syst_helpers_fast_loop_cs_step
\fi}
% Helper:
diff --git a/tex/context/base/mkiv/syst-ini.mkiv b/tex/context/base/mkiv/syst-ini.mkiv
index 2a2d48311..7664074c5 100644
--- a/tex/context/base/mkiv/syst-ini.mkiv
+++ b/tex/context/base/mkiv/syst-ini.mkiv
@@ -1141,4 +1141,8 @@
\let\normalstartdmath \Ustartdisplaymath
\let\normalstopdmath \Ustopdisplaymath
+%D Also better here:
+
+\def\wildcardsymbol{*}
+
\protect \endinput
diff --git a/tex/context/interface/mkii/keys-cs.xml b/tex/context/interface/mkii/keys-cs.xml
index f4e65c527..37736a2d7 100644
--- a/tex/context/interface/mkii/keys-cs.xml
+++ b/tex/context/interface/mkii/keys-cs.xml
@@ -376,6 +376,7 @@
<cd:variable name='nohz' value='nohz'/>
<cd:variable name='noline' value='noline'/>
<cd:variable name='nomarking' value='zadneznaceni'/>
+ <cd:variable name='nomenubar' value='nomenubar'/>
<cd:variable name='none' value='zadny'/>
<cd:variable name='nonumber' value='nonumber'/>
<cd:variable name='norepeat' value='norepeat'/>
diff --git a/tex/context/interface/mkii/keys-de.xml b/tex/context/interface/mkii/keys-de.xml
index e76ea9340..97a18d711 100644
--- a/tex/context/interface/mkii/keys-de.xml
+++ b/tex/context/interface/mkii/keys-de.xml
@@ -573,6 +573,7 @@
<cd:variable name='temporary' value='temporaer'/>
<cd:variable name='test' value='test'/>
<cd:variable name='text' value='text'/>
+ <cd:variable name='textnote' value='textnote'/>
<cd:variable name='three' value='drei'/>
<cd:variable name='thursday' value='donnerstag'/>
<cd:variable name='tight' value='tight'/>
diff --git a/tex/context/interface/mkiv/context-en.xml b/tex/context/interface/mkiv/context-en.xml
index 87182c2a3..e358b27e7 100644
--- a/tex/context/interface/mkiv/context-en.xml
+++ b/tex/context/interface/mkiv/context-en.xml
@@ -17583,6 +17583,18 @@
<cd:constant type="standard"/>
<cd:constant type="cd:dimension"/>
</cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
<cd:parameter name="align">
<cd:inherit name="setupalign"/>
</cd:parameter>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index e1f854a34..479e16737 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-itemgroup.xml b/tex/context/interface/mkiv/i-itemgroup.xml
index 84cae20bb..c27c729f7 100644
--- a/tex/context/interface/mkiv/i-itemgroup.xml
+++ b/tex/context/interface/mkiv/i-itemgroup.xml
@@ -113,6 +113,12 @@
<cd:parameter name="rightmargin">
<cd:resolve name="value-rightskip"/>
</cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:resolve name="value-rightskip"/>
+ </cd:parameter>
<cd:parameter name="align">
<cd:inherit name="setupalign"/>
</cd:parameter>
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 007fc0e61..e428d7f39 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/modules/common/s-abbreviations-logos.tex b/tex/context/modules/common/s-abbreviations-logos.tex
index 54a969593..410aa1824 100644
--- a/tex/context/modules/common/s-abbreviations-logos.tex
+++ b/tex/context/modules/common/s-abbreviations-logos.tex
@@ -43,6 +43,7 @@
\logo [ASCIIMATH] {AsciiMath}
\logo [ASCIITEX] {ascii\TeXsuffix}
\logo [BACHOTEX] {Bacho\TeXsuffix}
+\logo [BASIC] {Basic}
\logo [BIBTEX] {bib\TeXsuffix}
\logo [BLUESKY] {BlueSky}
\logo [BMP] {bmp}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 4379ead13..cf93d030c 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 : 05/25/19 10:45:25
+-- merge date : 05/29/19 19:11:02
do -- begin closure to overcome local limits and interference
@@ -28095,7 +28095,7 @@ local function testrun(disc,t_run,c_run,...)
end
local pre,post,replace,pretail,posttail,replacetail=getdisc(disc,true)
local renewed=false
- if (post or replace) and prev then
+ if (post or replace) then
if post then
setlink(posttail,next)
else
@@ -28288,6 +28288,7 @@ local function t_run_single(start,stop,font,attr,lookupcache)
ss=nil
end
end
+lookupmatch=lg
else
break
end
@@ -28441,6 +28442,7 @@ local function t_run_multiple(start,stop,font,attr,steps,nofsteps)
ss=nil
end
end
+lookupmatch=lg
else
break
end
@@ -29145,7 +29147,7 @@ if not modules then modules={} end modules ['font-osd']={
copyright="TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
-local insert,imerge,copy=table.insert,table.imerge,table.copy
+local insert,imerge,copy,tohash=table.insert,table.imerge,table.copy,table.tohash
local next,type=next,type
local report=logs.reporter("otf","devanagari")
fonts=fonts or {}
@@ -29436,6 +29438,7 @@ local valid={
local scripts={}
local scripts_one={ "deva","mlym","beng","gujr","guru","knda","orya","taml","telu" }
local scripts_two={ "dev2","mlm2","bng2","gjr2","gur2","knd2","ory2","tml2","tel2" }
+local scripts_old={} for i=1,#scripts_one do local v=scripts_one[i] scripts_old[v]=v end
local nofscripts=#scripts_one
for i=1,nofscripts do
local one=scripts_one[i]
@@ -29498,6 +29501,7 @@ local function initializedevanagi(tfmdata)
local pre_base_reordering_consonants={}
reorder_pre_base_reordering_consonants.steps[1].coverage=pre_base_reordering_consonants
resources.devanagari=devanagari
+ local old=scripts_old[script] or false
for s=1,#sequences do
local sequence=sequences[s]
local steps=sequence.steps
@@ -29505,9 +29509,9 @@ local function initializedevanagi(tfmdata)
local features=sequence.features
local has_rphf=features.rphf
local has_blwf=features.blwf
- if has_rphf and has_rphf.deva then
+ if has_rphf and has_rphf[old] then
devanagari.reph=true
- elseif has_blwf and has_blwf.deva then
+ elseif has_blwf and has_blwf[old] then
devanagari.vattu=true
for i=1,nofsteps do
local step=steps[i]
@@ -29578,13 +29582,13 @@ local function initializedevanagi(tfmdata)
end
end
end
- if script=="deva" then
+ if script=="deva" or script=="knda" then
sharedfeatures["dv04"]=true
- elseif script=="dev2" then
+ elseif script=="dev2" or script=="knd2" then
sharedfeatures["dv01"]=true
sharedfeatures["dv02"]=true
sharedfeatures["dv03"]=true
- sharedfeatures["dv04"]=true
+ sharedfeatures["dv04"]=true
elseif script=="mlym" then
sharedfeatures["pstf"]=true
elseif script=="mlm2" then