summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-tex.lua2
-rw-r--r--context/data/scite/context/scite-context-data-tex.properties10
-rw-r--r--context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json2
-rw-r--r--doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex14
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/font-imp-dimensions.lua1
-rw-r--r--tex/context/base/mkiv/mult-prm.lua1
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24772 -> 24780 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin256680 -> 257126 bytes
-rw-r--r--tex/context/base/mkiv/strc-mat.mkiv1
-rw-r--r--tex/context/base/mkiv/strc-ref.mkvi2
-rw-r--r--tex/context/base/mkxl/char-brl.lmt405
-rw-r--r--tex/context/base/mkxl/char-ini.mkxl1
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl2
-rw-r--r--tex/context/base/mkxl/core-env.mkxl8
-rw-r--r--tex/context/base/mkxl/driv-shp.lmt125
-rw-r--r--tex/context/base/mkxl/font-con.lmt1
-rw-r--r--tex/context/base/mkxl/font-imp-braille.lmt130
-rw-r--r--tex/context/base/mkxl/font-vfc.lmt15
-rw-r--r--tex/context/base/mkxl/grph-fig.mkxl74
-rw-r--r--tex/context/base/mkxl/grph-inc.mkxl9
-rw-r--r--tex/context/base/mkxl/math-act.lmt11
-rw-r--r--tex/context/base/mkxl/math-fnt.lmt10
-rw-r--r--tex/context/base/mkxl/math-ini.mkxl1
-rw-r--r--tex/context/base/mkxl/math-pre.lmt123
-rw-r--r--tex/context/base/mkxl/node-nut.lmt1
-rw-r--r--tex/context/base/mkxl/node-res.lmt8
-rw-r--r--tex/context/base/mkxl/strc-mat.mkxl3
-rw-r--r--tex/context/base/mkxl/strc-ref.mklx2
-rw-r--r--tex/context/base/mkxl/syst-aux.mkxl33
-rw-r--r--tex/context/base/mkxl/trac-vis.lmt8
-rw-r--r--tex/context/base/mkxl/type-imp-braille.mkxl84
-rw-r--r--tex/context/fonts/mkiv/asana-math.lfg13
-rw-r--r--tex/context/fonts/mkiv/bonum-math.lfg97
-rw-r--r--tex/context/fonts/mkiv/cambria-math.lfg8
-rw-r--r--tex/context/fonts/mkiv/dejavu-math.lfg13
-rw-r--r--tex/context/fonts/mkiv/ebgaramond.lfg89
-rw-r--r--tex/context/fonts/mkiv/kpfonts-math.lfg6
-rw-r--r--tex/context/fonts/mkiv/libertinus-math.lfg13
-rw-r--r--tex/context/fonts/mkiv/lm.lfg9
-rw-r--r--tex/context/fonts/mkiv/lucida-opentype-math.lfg10
-rw-r--r--tex/context/fonts/mkiv/minion-math.lfg6
-rw-r--r--tex/context/fonts/mkiv/pagella-math.lfg21
-rw-r--r--tex/context/fonts/mkiv/schola-math.lfg13
-rw-r--r--tex/context/fonts/mkiv/stix-two-math.lfg13
-rw-r--r--tex/context/fonts/mkiv/termes-math.lfg13
-rw-r--r--tex/context/fonts/mkiv/type-imp-dejavu.mkiv4
-rw-r--r--tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv33
-rw-r--r--tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv4
-rw-r--r--tex/context/fonts/mkiv/xits-math.lfg6
-rw-r--r--tex/context/modules/mkxl/s-braille-basic.mkxl178
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
56 files changed, 1384 insertions, 264 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
index 4958e5eaf..efc689e4c 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-tex.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
@@ -1,7 +1,7 @@
return {
["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracinglevels", "tracingnesting", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathextrasubpreshift", "Umathextrasubshift", "Umathextrasuppreshift", "Umathextrasupshift", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathvextensiblevariant", "Umathvoid", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "currentmarks", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "flushmarks", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathlimitsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "pageboundary", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "semiexpanded", "semiprotected", "setfontid", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tokenized", "toksapp", "tokspre", "tolerant", "tpack", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracingmarks", "tracingmath", "undent", "unletfrozen", "unletprotected", "untraced", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" },
+ ["luatex"]={ "UUskewed", "UUskewedwithdelims", "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbaseheight", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathbotaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclass", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterovervariant", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathextrasubpreshift", "Umathextrasubshift", "Umathextrasuppreshift", "Umathextrasupshift", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacingmode", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathvextensiblevariant", "Umathvoid", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "alignmark", "aligntab", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "boundary", "boxattribute", "boxdirection", "boxorientation", "boxtotal", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "clearmarks", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csstring", "currentmarks", "defcsname", "dimensiondef", "dimexpression", "directlua", "edefcsname", "efcode", "endlocalcontrol", "enforced", "etoksapp", "etokspre", "everybeforepar", "everytab", "exceptionpenalty", "expand", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "flushmarks", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphyoffset", "glyphyscale", "gtoksapp", "gtokspre", "hccode", "hjcode", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchknum", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ignorearguments", "ignorepars", "immediate", "immutable", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastchkdim", "lastchknum", "lastnamedcs", "lastnodesubtype", "lastparcontext", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letprotected", "lettonothing", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathcontrolmode", "mathdelimitersmode", "mathdirection", "mathdisplayskipmode", "matheqnogapstep", "mathflattenmode", "mathfontcontrol", "mathlimitsmode", "mathnolimitsmode", "mathpenaltiesmode", "mathrulesfam", "mathrulesmode", "mathrulethicknessmode", "mathscale", "mathscriptboxmode", "mathscriptcharmode", "mathscriptsmode", "mathstyle", "mathsurroundmode", "mathsurroundskip", "mugluespecdef", "mutable", "noaligned", "noboundary", "nohrule", "norelax", "normalizelinemode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "pageboundary", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "postexhyphenchar", "posthyphenchar", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitvmode", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scantextokens", "semiexpanded", "semiprotected", "setfontid", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tokenized", "toksapp", "tokspre", "tolerant", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracingmarks", "tracingmath", "undent", "unletfrozen", "unletprotected", "untraced", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoksapp", "xtokspre" },
["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" },
["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" },
["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "aligncontent", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "beginsimplegroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "endsimplegroup", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "fontspecifiedname", "futurelet", "gdef", "global", "globaldefs", "glyph", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "meaningasis", "meaningfull", "meaningless", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overshoot", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scaledfontdimen", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "todimension", "tointeger", "toks", "toksdef", "tolerance", "topmark", "topskip", "toscaled", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "underline", "unhbox", "unhcopy", "unhpack", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "unvpack", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties
index 801745fa8..456353729 100644
--- a/context/data/scite/context/scite-context-data-tex.properties
+++ b/context/data/scite/context/scite-context-data-tex.properties
@@ -108,11 +108,11 @@ pxdimen quitvmode retokenized rightmarginkern rpcode \
savecatcodetable scantextokens semiexpanded semiprotected setfontid \
shapingpenaltiesmode shapingpenalty snapshotpar supmarkmode swapcsvalues \
tabsize textdirection thewithoutunit tokenized toksapp \
-tokspre tolerant tpack tracingalignments tracingexpressions \
-tracingfonts tracingfullboxes tracinghyphenation tracinginserts tracingmarks \
-tracingmath undent unletfrozen unletprotected untraced \
-vpack wordboundary wrapuppar xdefcsname xtoksapp \
-xtokspre
+tokspre tolerant tpack tracingadjusts tracingalignments \
+tracingexpressions tracingfonts tracingfullboxes tracinghyphenation tracinginserts \
+tracingmarks tracingmath undent unletfrozen unletprotected \
+untraced vpack wordboundary wrapuppar xdefcsname \
+xtoksapp xtokspre
keywordclass.tex.omega=\
Omegaminorversion Omegarevision Omegaversion
diff --git a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
index 536074bdd..12900b801 100644
--- a/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
+++ b/context/data/vscode/extensions/context/syntaxes/context-syntax-tex.json
@@ -216,7 +216,7 @@
]
},
"primitive" : {
- "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|untraced|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|underline|undent|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmath|tracingmarks|tracingmacros|tracinglostchars|tracinglevels|tracinginserts|tracingifs|tracinghyphenation|tracinggroups|tracingfullboxes|tracingfonts|tracingexpressions|tracingcommands|tracingassigns|tracingalignments|tpack|toscaled|topskip|topmarks|topmark|tolerant|tolerance|tokspre|toksdef|toksapp|toks|tokenized|tointeger|todimension|time|thinmuskip|thickmuskip|thewithoutunit|the|textstyle|textfont|textdirection|tabskip|tabsize|swapcsvalues|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|snapshotpar|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapingpenalty|shapingpenaltiesmode|sfcode|setlanguage|setfontid|setbox|semiprotected|semiexpanded|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|scaledfontdimen|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|retokenized|relpenalty|relax|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|protected|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|permanent|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|parattribute|parametermark|parametercount|par|pagevsize|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|pageboundary|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orphanpenalty|orphanpenalties|orelse|or|omit|numexpression|numexpr|numericscale|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdefcsname|normalxdef|normalwrapuppar|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvpack|normalunvcopy|normalunvbox|normaluntraced|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhpack|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normalundent|normaluchyph|normaluccode|normaltracingstats|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmath|normaltracingmarks|normaltracingmacros|normaltracinglostchars|normaltracinglevels|normaltracinginserts|normaltracingifs|normaltracinghyphenation|normaltracinggroups|normaltracingfullboxes|normaltracingfonts|normaltracingexpressions|normaltracingcommands|normaltracingassigns|normaltracingalignments|normaltpack|normaltoscaled|normaltopskip|normaltopmarks|normaltopmark|normaltolerant|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltokenized|normaltointeger|normaltodimension|normaltime|normalthinmuskip|normalthickmuskip|normalthewithoutunit|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normaltabsize|normalswapcsvalues|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalsnapshotpar|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapingpenalty|normalshapingpenaltiesmode|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalsemiprotected|normalsemiexpanded|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalscaledfontdimen|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalretokenized|normalrelpenalty|normalrelax|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpermanent|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalparfillleftskip|normalpardirection|normalparattribute|normalparametermark|normalparametercount|normalpar|normalpagevsize|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normalpageboundary|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorphanpenalty|normalorphanpenalties|normalorelse|normalor|normalomit|normalnumexpression|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaningasis|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathlimitsmode|normalmathinner|normalmathfontcontrol|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcontrolmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightboxbox|normallocalrightbox|normallocalmiddleboxbox|normallocalmiddlebox|normallocalleftboxbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinedirection|normallimits|normallettonothing|normalletprotected|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastparcontext|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|normalinsertstoring|normalinsertstorage|normalinsertprogress|normalinsertpenalty|normalinsertpenalties|normalinsertmultiplier|normalinsertmode|normalinsertmaxdepth|normalinsertlimit|normalinsertheights|normalinsertheight|normalinsertdistance|normalinsertdepth|normalinsertcopy|normalinsertbox|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmutable|normalimmediate|normalignorespaces|normalignorepars|normalignorearguments|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normaliftok|normalifrelax|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifparameters|normalifparameter|normalifodd|normalifnumval|normalifnumexpression|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normalifhaschar|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdimexpression|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglettonothing|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfuturecsname|normalfrozen|normalformatname|normalfonttextcontrol|normalfontspecyscale|normalfontspecxscale|normalfontspecscale|normalfontspecifiedsize|normalfontspecifiedname|normalfontspecid|normalfontspecdef|normalfontname|normalfontmathcontrol|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalflushmarks|normalfloatingpenalty|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandtoken|normalexpanded|normalexpandcstoken|normalexpandafterspaces|normalexpandafterpars|normalexpandafter|normalexpand|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaleverybeforepar|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalenforced|normalendsimplegroup|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledefcsname|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpression|normaldimexpr|normaldimensiondef|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefcsname|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentmarks|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalclubpenalty|normalclubpenalties|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxorientation|normalboxmaxdepth|normalboxdirection|normalboxattribute|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginsimplegroup|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbaselineskip|normalbadness|normalautoparagraphmode|normalautomigrationmode|normalautomatichyphenpenalty|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalaligntab|normalalignmark|normalaligncontent|normalaliased|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathvoid|normalUmathvextensiblevariant|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathphantom|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenupheight|normalUmathopenupdepth|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathnolimits|normalUmathnoaxis|normalUmathlimits|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathextrasupshift|normalUmathextrasuppreshift|normalUmathextrasubshift|normalUmathextrasubpreshift|normalUmathdenominatorvariant|normalUmathdelimiterundervariant|normalUmathdelimiterovervariant|normalUmathdegreevariant|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbotaccentvariant|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathadapttoright|normalUmathadapttoleft|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaningasis|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathlimitsmode|mathinner|mathfontcontrol|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcontrolmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightboxbox|localrightbox|localmiddleboxbox|localmiddlebox|localleftboxbox|localleftbox|localinterlinepenalty|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|limits|lettonothing|letprotected|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastparcontext|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|insertstoring|insertstorage|insertprogress|insertpenalty|insertpenalties|insertmultiplier|insertmode|insertmaxdepth|insertlimit|insertheights|insertheight|insertdistance|insertdepth|insertcopy|insertbox|insert|inputlineno|input|initcatcodetable|indent|immutable|immediate|ignorespaces|ignorepars|ignorearguments|ifx|ifvoid|ifvmode|ifvbox|iftrue|iftok|ifrelax|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifparameters|ifparameter|ifodd|ifnumval|ifnumexpression|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|ifhaschar|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdimexpression|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|glettonothing|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|futurecsname|frozen|formatname|fonttextcontrol|fontspecyscale|fontspecxscale|fontspecscale|fontspecifiedsize|fontspecifiedname|fontspecid|fontspecdef|fontname|fontmathcontrol|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|flushmarks|floatingpenalty|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandtoken|expandcstoken|expandafterspaces|expandafterpars|expandafter|expand|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|everybeforepar|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|enforced|endsimplegroup|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edefcsname|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpression|dimexpr|dimensiondef|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defcsname|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentmarks|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|clubpenalty|clubpenalties|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxorientation|boxmaxdepth|boxdirection|boxattribute|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginsimplegroup|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|autoparagraphmode|automigrationmode|automatichyphenpenalty|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|aligntab|alignmark|aligncontent|aliased|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathvoid|Umathvextensiblevariant|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathphantom|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenupheight|Umathopenupdepth|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathnolimits|Umathnoaxis|Umathlimits|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathextrasupshift|Umathextrasuppreshift|Umathextrasubshift|Umathextrasubpreshift|Umathdenominatorvariant|Umathdelimiterundervariant|Umathdelimiterovervariant|Umathdegreevariant|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbotaccentvariant|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathadapttoright|Umathadapttoleft|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])",
+ "match" : "\u005C\u005C(year|xtokspre|xtoksapp|xspaceskip|xleaders|xdefcsname|xdef|wrapuppar|wordboundary|widowpenalty|widowpenalties|wd|vtop|vss|vsplit|vskip|vsize|vrule|vpack|vfuzz|vfilneg|vfill|vfil|vcenter|vbox|vbadness|valign|vadjust|uppercase|unvpack|unvcopy|unvbox|untraced|unskip|unpenalty|unletprotected|unletfrozen|unless|unkern|unhpack|unhcopy|unhbox|underline|undent|uchyph|uccode|tracingstats|tracingrestores|tracingparagraphs|tracingpages|tracingoutput|tracingonline|tracingnesting|tracingmath|tracingmarks|tracingmacros|tracinglostchars|tracinglevels|tracinginserts|tracingifs|tracinghyphenation|tracinggroups|tracingfullboxes|tracingfonts|tracingexpressions|tracingcommands|tracingassigns|tracingalignments|tracingadjusts|tpack|toscaled|topskip|topmarks|topmark|tolerant|tolerance|tokspre|toksdef|toksapp|toks|tokenized|tointeger|todimension|time|thinmuskip|thickmuskip|thewithoutunit|the|textstyle|textfont|textdirection|tabskip|tabsize|swapcsvalues|supmarkmode|string|splittopskip|splitmaxdepth|splitfirstmarks|splitfirstmark|splitdiscards|splitbotmarks|splitbotmark|span|spaceskip|spacefactor|snapshotpar|skipdef|skip|skewchar|showtokens|showthe|shownodedetails|showlists|showifs|showgroups|showboxdepth|showboxbreadth|showbox|show|shipout|shapingpenalty|shapingpenaltiesmode|sfcode|setlanguage|setfontid|setbox|semiprotected|semiexpanded|scrollmode|scriptstyle|scriptspace|scriptscriptstyle|scriptscriptfont|scriptfont|scantokens|scantextokens|scaledfontdimen|savingvdiscards|savinghyphcodes|savecatcodetable|rpcode|romannumeral|rightskip|rightmarginkern|righthyphenmin|right|retokenized|relpenalty|relax|raise|radical|quitvmode|pxdimen|protrusionboundary|protrudechars|protected|prevgraf|prevdepth|pretolerance|prerelpenalty|prehyphenchar|preexhyphenchar|predisplaysize|predisplaypenalty|predisplaygapfactor|predisplaydirection|prebinoppenalty|posthyphenchar|postexhyphenchar|postdisplaypenalty|permanent|penalty|pdfximage|pdfxformresources|pdfxformname|pdfxformmargin|pdfxformattr|pdfxform|pdfvorigin|pdfuniqueresname|pdfuniformdeviate|pdftrailerid|pdftrailer|pdftracingfonts|pdfthreadmargin|pdfthread|pdftexversion|pdftexrevision|pdftexbanner|pdfsuppressptexinfo|pdfsuppressoptionalinfo|pdfstartthread|pdfstartlink|pdfsetrandomseed|pdfsetmatrix|pdfsavepos|pdfsave|pdfretval|pdfrestore|pdfreplacefont|pdfrefximage|pdfrefxform|pdfrefobj|pdfrecompress|pdfrandomseed|pdfpxdimen|pdfprotrudechars|pdfprimitive|pdfpkresolution|pdfpkmode|pdfpkfixeddpi|pdfpagewidth|pdfpagesattr|pdfpageresources|pdfpageref|pdfpageheight|pdfpagebox|pdfpageattr|pdfoutput|pdfoutline|pdfomitcidset|pdfomitcharset|pdfobjcompresslevel|pdfobj|pdfnormaldeviate|pdfnoligatures|pdfnames|pdfminorversion|pdfmapline|pdfmapfile|pdfmajorversion|pdfliteral|pdflinkmargin|pdflastypos|pdflastxpos|pdflastximagepages|pdflastximage|pdflastxform|pdflastobj|pdflastlink|pdflastlinedepth|pdflastannot|pdfinsertht|pdfinfoomitdate|pdfinfo|pdfinclusionerrorlevel|pdfinclusioncopyfonts|pdfincludechars|pdfimageresolution|pdfimagehicolor|pdfimagegamma|pdfimageapplygamma|pdfimageaddfilename|pdfignoreunknownimages|pdfignoreddimen|pdfhorigin|pdfglyphtounicode|pdfgentounicode|pdfgamma|pdffontsize|pdffontobjnum|pdffontname|pdffontexpand|pdffontattr|pdffirstlineheight|pdfendthread|pdfendlink|pdfeachlineheight|pdfeachlinedepth|pdfdraftmode|pdfdestmargin|pdfdest|pdfdecimaldigits|pdfcreationdate|pdfcopyfont|pdfcompresslevel|pdfcolorstackinit|pdfcolorstack|pdfcatalog|pdfannot|pdfadjustspacing|pausing|patterns|parskip|parshapelength|parshapeindent|parshapedimen|parshape|parindent|parfillskip|pardirection|parattribute|parametermark|parametercount|par|pagevsize|pagetotal|pagestretch|pageshrink|pagegoal|pagefilstretch|pagefillstretch|pagefilllstretch|pagediscards|pagedepth|pageboundary|overwithdelims|overshoot|overloadmode|overloaded|overline|overfullrule|over|outputpenalty|outputbox|output|outer|orunless|orphanpenalty|orphanpenalties|orelse|or|omit|numexpression|numexpr|numericscale|number|nullfont|nulldelimiterspace|novrule|nospaces|normalyear|normalxtokspre|normalxtoksapp|normalxspaceskip|normalxleaders|normalxdefcsname|normalxdef|normalwrapuppar|normalwordboundary|normalwidowpenalty|normalwidowpenalties|normalwd|normalvtop|normalvss|normalvsplit|normalvskip|normalvsize|normalvrule|normalvpack|normalvfuzz|normalvfilneg|normalvfill|normalvfil|normalvcenter|normalvbox|normalvbadness|normalvalign|normalvadjust|normaluppercase|normalunvpack|normalunvcopy|normalunvbox|normaluntraced|normalunskip|normalunpenalty|normalunletprotected|normalunletfrozen|normalunless|normalunkern|normalunhpack|normalunhcopy|normalunhbox|normalunexpanded|normalunderline|normalundent|normaluchyph|normaluccode|normaltracingstats|normaltracingrestores|normaltracingparagraphs|normaltracingpages|normaltracingoutput|normaltracingonline|normaltracingnesting|normaltracingmath|normaltracingmarks|normaltracingmacros|normaltracinglostchars|normaltracinglevels|normaltracinginserts|normaltracingifs|normaltracinghyphenation|normaltracinggroups|normaltracingfullboxes|normaltracingfonts|normaltracingexpressions|normaltracingcommands|normaltracingassigns|normaltracingalignments|normaltracingadjusts|normaltpack|normaltoscaled|normaltopskip|normaltopmarks|normaltopmark|normaltolerant|normaltolerance|normaltokspre|normaltoksdef|normaltoksapp|normaltoks|normaltokenized|normaltointeger|normaltodimension|normaltime|normalthinmuskip|normalthickmuskip|normalthewithoutunit|normalthe|normaltextstyle|normaltextfont|normaltextdirection|normaltabskip|normaltabsize|normalswapcsvalues|normalsupmarkmode|normalstring|normalsplittopskip|normalsplitmaxdepth|normalsplitfirstmarks|normalsplitfirstmark|normalsplitdiscards|normalsplitbotmarks|normalsplitbotmark|normalspan|normalspaceskip|normalspacefactor|normalsnapshotpar|normalskipdef|normalskip|normalskewchar|normalshowtokens|normalshowthe|normalshownodedetails|normalshowlists|normalshowifs|normalshowgroups|normalshowboxdepth|normalshowboxbreadth|normalshowbox|normalshow|normalshipout|normalshapingpenalty|normalshapingpenaltiesmode|normalsfcode|normalsetlanguage|normalsetfontid|normalsetbox|normalsemiprotected|normalsemiexpanded|normalscrollmode|normalscriptstyle|normalscriptspace|normalscriptscriptstyle|normalscriptscriptfont|normalscriptfont|normalscantokens|normalscantextokens|normalscaledfontdimen|normalsavingvdiscards|normalsavinghyphcodes|normalsavecatcodetable|normalrpcode|normalromannumeral|normalrightskip|normalrightmarginkern|normalrighthyphenmin|normalright|normalretokenized|normalrelpenalty|normalrelax|normalraise|normalradical|normalquitvmode|normalpxdimen|normalprotrusionboundary|normalprotrudechars|normalprotected|normalprevgraf|normalprevdepth|normalpretolerance|normalprerelpenalty|normalprehyphenchar|normalpreexhyphenchar|normalpredisplaysize|normalpredisplaypenalty|normalpredisplaygapfactor|normalpredisplaydirection|normalprebinoppenalty|normalposthyphenchar|normalpostexhyphenchar|normalpostdisplaypenalty|normalpermanent|normalpenalty|normalpdfximage|normalpdfxformresources|normalpdfxformname|normalpdfxformmargin|normalpdfxformattr|normalpdfxform|normalpdfvorigin|normalpdfuniqueresname|normalpdfuniformdeviate|normalpdftrailerid|normalpdftrailer|normalpdftracingfonts|normalpdfthreadmargin|normalpdfthread|normalpdftexversion|normalpdftexrevision|normalpdftexbanner|normalpdfsuppressptexinfo|normalpdfsuppressoptionalinfo|normalpdfstartthread|normalpdfstartlink|normalpdfsetrandomseed|normalpdfsetmatrix|normalpdfsavepos|normalpdfsave|normalpdfretval|normalpdfrestore|normalpdfreplacefont|normalpdfrefximage|normalpdfrefxform|normalpdfrefobj|normalpdfrecompress|normalpdfrandomseed|normalpdfpxdimen|normalpdfprotrudechars|normalpdfprimitive|normalpdfpkresolution|normalpdfpkmode|normalpdfpkfixeddpi|normalpdfpagewidth|normalpdfpagesattr|normalpdfpageresources|normalpdfpageref|normalpdfpageheight|normalpdfpagebox|normalpdfpageattr|normalpdfoutput|normalpdfoutline|normalpdfomitcidset|normalpdfomitcharset|normalpdfobjcompresslevel|normalpdfobj|normalpdfnormaldeviate|normalpdfnoligatures|normalpdfnames|normalpdfminorversion|normalpdfmapline|normalpdfmapfile|normalpdfmajorversion|normalpdfliteral|normalpdflinkmargin|normalpdflastypos|normalpdflastxpos|normalpdflastximagepages|normalpdflastximage|normalpdflastxform|normalpdflastobj|normalpdflastlink|normalpdflastlinedepth|normalpdflastannot|normalpdfinsertht|normalpdfinfoomitdate|normalpdfinfo|normalpdfinclusionerrorlevel|normalpdfinclusioncopyfonts|normalpdfincludechars|normalpdfimageresolution|normalpdfimagehicolor|normalpdfimagegamma|normalpdfimageapplygamma|normalpdfimageaddfilename|normalpdfignoreunknownimages|normalpdfignoreddimen|normalpdfhorigin|normalpdfglyphtounicode|normalpdfgentounicode|normalpdfgamma|normalpdffontsize|normalpdffontobjnum|normalpdffontname|normalpdffontexpand|normalpdffontattr|normalpdffirstlineheight|normalpdfendthread|normalpdfendlink|normalpdfeachlineheight|normalpdfeachlinedepth|normalpdfdraftmode|normalpdfdestmargin|normalpdfdest|normalpdfdecimaldigits|normalpdfcreationdate|normalpdfcopyfont|normalpdfcompresslevel|normalpdfcolorstackinit|normalpdfcolorstack|normalpdfcatalog|normalpdfannot|normalpdfadjustspacing|normalpausing|normalpatterns|normalparskip|normalparshapelength|normalparshapeindent|normalparshapedimen|normalparshape|normalparindent|normalparfillskip|normalparfillleftskip|normalpardirection|normalparattribute|normalparametermark|normalparametercount|normalpar|normalpagevsize|normalpagetotal|normalpagestretch|normalpageshrink|normalpagegoal|normalpagefilstretch|normalpagefillstretch|normalpagefilllstretch|normalpagediscards|normalpagedepth|normalpageboundary|normaloverwithdelims|normalovershoot|normaloverloadmode|normaloverloaded|normaloverline|normaloverfullrule|normalover|normaloutputpenalty|normaloutputbox|normaloutput|normalouter|normalorunless|normalorphanpenalty|normalorphanpenalties|normalorelse|normalor|normalomit|normalnumexpression|normalnumexpr|normalnumericscale|normalnumber|normalnullfont|normalnulldelimiterspace|normalnovrule|normalnospaces|normalnormalizelinemode|normalnorelax|normalnonstopmode|normalnonscript|normalnolimits|normalnoindent|normalnohrule|normalnoexpand|normalnoboundary|normalnoaligned|normalnoalign|normalnewlinechar|normalmutoglue|normalmutable|normalmuskipdef|normalmuskip|normalmultiply|normalmugluespecdef|normalmuexpr|normalmskip|normalmoveright|normalmoveleft|normalmonth|normalmkern|normalmiddle|normalmessage|normalmedmuskip|normalmeaningless|normalmeaningfull|normalmeaningasis|normalmeaning|normalmaxdepth|normalmaxdeadcycles|normalmathsurroundskip|normalmathsurroundmode|normalmathsurround|normalmathstyle|normalmathscriptsmode|normalmathscriptcharmode|normalmathscriptboxmode|normalmathscale|normalmathrulethicknessmode|normalmathrulesmode|normalmathrulesfam|normalmathrel|normalmathpunct|normalmathpenaltiesmode|normalmathord|normalmathopen|normalmathop|normalmathnolimitsmode|normalmathlimitsmode|normalmathinner|normalmathfontcontrol|normalmathflattenmode|normalmatheqnogapstep|normalmathdisplayskipmode|normalmathdirection|normalmathdelimitersmode|normalmathcontrolmode|normalmathcode|normalmathclose|normalmathchoice|normalmathchardef|normalmathchar|normalmathbin|normalmathaccent|normalmarks|normalmark|normalluatexversion|normalluatexrevision|normalluatexbanner|normalluafunctioncall|normalluafunction|normalluaescapestring|normalluadef|normalluacopyinputnodes|normalluabytecodecall|normalluabytecode|normallpcode|normallowercase|normallower|normallooseness|normallong|normallocalrightboxbox|normallocalrightbox|normallocalmiddleboxbox|normallocalmiddlebox|normallocalleftboxbox|normallocalleftbox|normallocalinterlinepenalty|normallocalcontrolled|normallocalcontrol|normallocalbrokenpenalty|normallineskiplimit|normallineskip|normallinepenalty|normallinedirection|normallimits|normallettonothing|normalletprotected|normalletfrozen|normalletcsname|normalletcharcode|normallet|normalleqno|normalleftskip|normalleftmarginkern|normallefthyphenmin|normalleft|normalleaders|normallccode|normallastskip|normallastpenalty|normallastparcontext|normallastnodetype|normallastnodesubtype|normallastnamedcs|normallastlinefit|normallastkern|normallastchknum|normallastchkdim|normallastbox|normallastarguments|normallanguage|normalkern|normaljobname|normalizelinemode|normalinterlinepenalty|normalinterlinepenalties|normalinteractionmode|normalintegerdef|normalinstance|normalinsertwidth|normalinsertuncopy|normalinsertunbox|normalinsertstoring|normalinsertstorage|normalinsertprogress|normalinsertpenalty|normalinsertpenalties|normalinsertmultiplier|normalinsertmode|normalinsertmaxdepth|normalinsertlimit|normalinsertheights|normalinsertheight|normalinsertdistance|normalinsertdepth|normalinsertcopy|normalinsertbox|normalinsert|normalinputlineno|normalinput|normalinitcatcodetable|normalindent|normalimmutable|normalimmediate|normalignorespaces|normalignorepars|normalignorearguments|normalifx|normalifvoid|normalifvmode|normalifvbox|normaliftrue|normaliftok|normalifrelax|normalifpdfprimitive|normalifpdfabsnum|normalifpdfabsdim|normalifparameters|normalifparameter|normalifodd|normalifnumval|normalifnumexpression|normalifnum|normalifmmode|normalifmathstyle|normalifmathparameter|normalifinsert|normalifinner|normalifincsname|normalifhmode|normalifhbox|normalifhasxtoks|normalifhastoks|normalifhastok|normalifhaschar|normaliffontchar|normalifflags|normaliffalse|normalifempty|normalifdimval|normalifdimexpression|normalifdim|normalifdefined|normalifcstok|normalifcsname|normalifcondition|normalifcmpnum|normalifcmpdim|normalifchknum|normalifchkdim|normalifcat|normalifcase|normalifboolean|normalifarguments|normalifabsnum|normalifabsdim|normalif|normalhyphenpenalty|normalhyphenchar|normalhyphenationmode|normalhyphenationmin|normalhyphenation|normalht|normalhss|normalhskip|normalhsize|normalhrule|normalhpack|normalholdinginserts|normalhjcode|normalhfuzz|normalhfilneg|normalhfill|normalhfil|normalhccode|normalhbox|normalhbadness|normalhangindent|normalhangafter|normalhalign|normalgtokspre|normalgtoksapp|normalglyphyscale|normalglyphyoffset|normalglyphxscale|normalglyphxoffset|normalglyphtextscale|normalglyphstatefield|normalglyphscriptscriptscale|normalglyphscriptscale|normalglyphscriptfield|normalglyphscale|normalglyphoptions|normalglyphdatafield|normalglyph|normalgluetomu|normalgluestretchorder|normalgluestretch|normalgluespecdef|normalglueshrinkorder|normalglueshrink|normalglueexpr|normalglobaldefs|normalglobal|normalglettonothing|normalgletcsname|normalglet|normalgleaders|normalgdefcsname|normalgdef|normalfuturelet|normalfutureexpandisap|normalfutureexpandis|normalfutureexpand|normalfuturedef|normalfuturecsname|normalfrozen|normalformatname|normalfonttextcontrol|normalfontspecyscale|normalfontspecxscale|normalfontspecscale|normalfontspecifiedsize|normalfontspecifiedname|normalfontspecid|normalfontspecdef|normalfontname|normalfontmathcontrol|normalfontid|normalfontdimen|normalfontcharwd|normalfontcharic|normalfontcharht|normalfontchardp|normalfont|normalflushmarks|normalfloatingpenalty|normalfirstvalidlanguage|normalfirstmarks|normalfirstmark|normalfinalhyphendemerits|normalfi|normalfam|normalexplicithyphenpenalty|normalexplicitdiscretionary|normalexpandtoken|normalexpanded|normalexpandcstoken|normalexpandafterspaces|normalexpandafterpars|normalexpandafter|normalexpand|normalexhyphenpenalty|normalexhyphenchar|normalexceptionpenalty|normaleveryvbox|normaleverytab|normaleverypar|normaleverymath|normaleveryjob|normaleveryhbox|normaleveryeof|normaleverydisplay|normaleverycr|normaleverybeforepar|normaletokspre|normaletoksapp|normalescapechar|normalerrorstopmode|normalerrorcontextlines|normalerrmessage|normalerrhelp|normaleqno|normalenforced|normalendsimplegroup|normalendlocalcontrol|normalendlinechar|normalendinput|normalendgroup|normalendcsname|normalend|normalemergencystretch|normalelse|normalefcode|normaledefcsname|normaledef|normaldump|normaldp|normaldoublehyphendemerits|normaldivide|normaldisplaywidth|normaldisplaywidowpenalty|normaldisplaywidowpenalties|normaldisplaystyle|normaldisplaylimits|normaldisplayindent|normaldiscretionary|normaldirectlua|normaldimexpression|normaldimexpr|normaldimensiondef|normaldimendef|normaldimen|normaldetokenize|normaldelimitershortfall|normaldelimiterfactor|normaldelimiter|normaldelcode|normaldefcsname|normaldefaultskewchar|normaldefaulthyphenchar|normaldef|normaldeadcycles|normalday|normalcurrentmarks|normalcurrentiftype|normalcurrentiflevel|normalcurrentifbranch|normalcurrentgrouptype|normalcurrentgrouplevel|normalcsstring|normalcsname|normalcrcr|normalcrampedtextstyle|normalcrampedscriptstyle|normalcrampedscriptscriptstyle|normalcrampeddisplaystyle|normalcr|normalcountdef|normalcount|normalcopy|normalclubpenalty|normalclubpenalties|normalclearmarks|normalcleaders|normalchardef|normalchar|normalcatcodetable|normalcatcode|normalbrokenpenalty|normalboxyoffset|normalboxymove|normalboxxoffset|normalboxxmove|normalboxtotal|normalboxorientation|normalboxmaxdepth|normalboxdirection|normalboxattribute|normalbox|normalboundary|normalbotmarks|normalbotmark|normalbinoppenalty|normalbelowdisplayskip|normalbelowdisplayshortskip|normalbeginsimplegroup|normalbeginlocalcontrol|normalbegingroup|normalbegincsname|normalbatchmode|normalbaselineskip|normalbadness|normalautoparagraphmode|normalautomigrationmode|normalautomatichyphenpenalty|normalautomaticdiscretionary|normalattributedef|normalattribute|normalatopwithdelims|normalatop|normalatendofgrouped|normalatendofgroup|normalaligntab|normalalignmark|normalaligncontent|normalaliased|normalaftergrouped|normalaftergroup|normalafterassignment|normalafterassigned|normaladvance|normaladjustspacingstretch|normaladjustspacingstep|normaladjustspacingshrink|normaladjustspacing|normaladjdemerits|normalaccent|normalabovewithdelims|normalabovedisplayskip|normalabovedisplayshortskip|normalabove|normalXeTeXversion|normalUvextensible|normalUunderdelimiter|normalUsuperscript|normalUsuperprescript|normalUsubscript|normalUsubprescript|normalUstyle|normalUstopmath|normalUstopdisplaymath|normalUstartmath|normalUstartdisplaymath|normalUstack|normalUskewedwithdelims|normalUskewed|normalUroot|normalUright|normalUradical|normalUoverwithdelims|normalUoverdelimiter|normalUover|normalUnosuperscript|normalUnosuperprescript|normalUnosubscript|normalUnosubprescript|normalUmiddle|normalUmathvoid|normalUmathvextensiblevariant|normalUmathunderlinevariant|normalUmathunderdelimitervgap|normalUmathunderdelimitervariant|normalUmathunderdelimiterbgap|normalUmathunderbarvgap|normalUmathunderbarrule|normalUmathunderbarkern|normalUmathtopaccentvariant|normalUmathsupsubbottommax|normalUmathsupshiftup|normalUmathsupshiftdrop|normalUmathsuperscriptvariant|normalUmathsupbottommin|normalUmathsubtopmax|normalUmathsubsupvgap|normalUmathsubsupshiftdown|normalUmathsubshiftdrop|normalUmathsubshiftdown|normalUmathsubscriptvariant|normalUmathstackvgap|normalUmathstackvariant|normalUmathstacknumup|normalUmathstackdenomdown|normalUmathspacingmode|normalUmathspacebeforescript|normalUmathspaceafterscript|normalUmathskewedfractionvgap|normalUmathskewedfractionhgap|normalUmathrelrelspacing|normalUmathrelpunctspacing|normalUmathrelordspacing|normalUmathrelopspacing|normalUmathrelopenspacing|normalUmathrelinnerspacing|normalUmathrelclosespacing|normalUmathrelbinspacing|normalUmathradicalvgap|normalUmathradicalvariant|normalUmathradicalrule|normalUmathradicalkern|normalUmathradicaldegreeraise|normalUmathradicaldegreebefore|normalUmathradicaldegreeafter|normalUmathquad|normalUmathpunctrelspacing|normalUmathpunctpunctspacing|normalUmathpunctordspacing|normalUmathpunctopspacing|normalUmathpunctopenspacing|normalUmathpunctinnerspacing|normalUmathpunctclosespacing|normalUmathpunctbinspacing|normalUmathphantom|normalUmathoverlinevariant|normalUmathoverlayaccentvariant|normalUmathoverdelimitervgap|normalUmathoverdelimitervariant|normalUmathoverdelimiterbgap|normalUmathoverbarvgap|normalUmathoverbarrule|normalUmathoverbarkern|normalUmathordrelspacing|normalUmathordpunctspacing|normalUmathordordspacing|normalUmathordopspacing|normalUmathordopenspacing|normalUmathordinnerspacing|normalUmathordclosespacing|normalUmathordbinspacing|normalUmathoprelspacing|normalUmathoppunctspacing|normalUmathopordspacing|normalUmathopopspacing|normalUmathopopenspacing|normalUmathopinnerspacing|normalUmathoperatorsize|normalUmathopenupheight|normalUmathopenupdepth|normalUmathopenrelspacing|normalUmathopenpunctspacing|normalUmathopenordspacing|normalUmathopenopspacing|normalUmathopenopenspacing|normalUmathopeninnerspacing|normalUmathopenclosespacing|normalUmathopenbinspacing|normalUmathopclosespacing|normalUmathopbinspacing|normalUmathnumeratorvariant|normalUmathnolimitsupfactor|normalUmathnolimitsubfactor|normalUmathnolimits|normalUmathnoaxis|normalUmathlimits|normalUmathlimitbelowvgap|normalUmathlimitbelowkern|normalUmathlimitbelowbgap|normalUmathlimitabovevgap|normalUmathlimitabovekern|normalUmathlimitabovebgap|normalUmathinnerrelspacing|normalUmathinnerpunctspacing|normalUmathinnerordspacing|normalUmathinneropspacing|normalUmathinneropenspacing|normalUmathinnerinnerspacing|normalUmathinnerclosespacing|normalUmathinnerbinspacing|normalUmathhextensiblevariant|normalUmathfractionvariant|normalUmathfractionrule|normalUmathfractionnumvgap|normalUmathfractionnumup|normalUmathfractiondenomvgap|normalUmathfractiondenomdown|normalUmathfractiondelsize|normalUmathextrasupshift|normalUmathextrasuppreshift|normalUmathextrasubshift|normalUmathextrasubpreshift|normalUmathdenominatorvariant|normalUmathdelimiterundervariant|normalUmathdelimiterovervariant|normalUmathdegreevariant|normalUmathconnectoroverlapmin|normalUmathcodenum|normalUmathcode|normalUmathcloserelspacing|normalUmathclosepunctspacing|normalUmathcloseordspacing|normalUmathcloseopspacing|normalUmathcloseopenspacing|normalUmathcloseinnerspacing|normalUmathcloseclosespacing|normalUmathclosebinspacing|normalUmathclass|normalUmathcharslot|normalUmathcharnumdef|normalUmathcharnum|normalUmathcharfam|normalUmathchardef|normalUmathcharclass|normalUmathchar|normalUmathbotaccentvariant|normalUmathbinrelspacing|normalUmathbinpunctspacing|normalUmathbinordspacing|normalUmathbinopspacing|normalUmathbinopenspacing|normalUmathbininnerspacing|normalUmathbinclosespacing|normalUmathbinbinspacing|normalUmathaxis|normalUmathadapttoright|normalUmathadapttoleft|normalUmathaccentvariant|normalUmathaccentbaseheight|normalUmathaccent|normalUleft|normalUhextensible|normalUdelimiterunder|normalUdelimiterover|normalUdelimiter|normalUdelcodenum|normalUdelcode|normalUchar|normalUatopwithdelims|normalUatop|normalUabovewithdelims|normalUabove|normalUUskewedwithdelims|normalUUskewed|normalOmegaversion|normalOmegarevision|normalOmegaminorversion|normalAlephversion|normalAlephrevision|normalAlephminorversion|normal |norelax|nonstopmode|nonscript|nolimits|noindent|nohrule|noexpand|noboundary|noaligned|noalign|newlinechar|mutoglue|mutable|muskipdef|muskip|multiply|mugluespecdef|muexpr|mskip|moveright|moveleft|month|mkern|middle|message|medmuskip|meaningless|meaningfull|meaningasis|meaning|maxdepth|maxdeadcycles|mathsurroundskip|mathsurroundmode|mathsurround|mathstyle|mathscriptsmode|mathscriptcharmode|mathscriptboxmode|mathscale|mathrulethicknessmode|mathrulesmode|mathrulesfam|mathrel|mathpunct|mathpenaltiesmode|mathord|mathopen|mathop|mathnolimitsmode|mathlimitsmode|mathinner|mathfontcontrol|mathflattenmode|matheqnogapstep|mathdisplayskipmode|mathdirection|mathdelimitersmode|mathcontrolmode|mathcode|mathclose|mathchoice|mathchardef|mathchar|mathbin|mathaccent|marks|mark|luatexversion|luatexrevision|luatexbanner|luafunctioncall|luafunction|luaescapestring|luadef|luacopyinputnodes|luabytecodecall|luabytecode|lpcode|lowercase|lower|looseness|long|localrightboxbox|localrightbox|localmiddleboxbox|localmiddlebox|localleftboxbox|localleftbox|localinterlinepenalty|localcontrolled|localcontrol|localbrokenpenalty|lineskiplimit|lineskip|linepenalty|linedirection|limits|lettonothing|letprotected|letfrozen|letcsname|letcharcode|let|leqno|leftskip|leftmarginkern|lefthyphenmin|left|leaders|lccode|lastskip|lastpenalty|lastparcontext|lastnodetype|lastnodesubtype|lastnamedcs|lastlinefit|lastkern|lastchknum|lastchkdim|lastbox|lastarguments|language|kern|jobname|interlinepenalty|interlinepenalties|interactionmode|integerdef|instance|insertwidth|insertuncopy|insertunbox|insertstoring|insertstorage|insertprogress|insertpenalty|insertpenalties|insertmultiplier|insertmode|insertmaxdepth|insertlimit|insertheights|insertheight|insertdistance|insertdepth|insertcopy|insertbox|insert|inputlineno|input|initcatcodetable|indent|immutable|immediate|ignorespaces|ignorepars|ignorearguments|ifx|ifvoid|ifvmode|ifvbox|iftrue|iftok|ifrelax|ifpdfprimitive|ifpdfabsnum|ifpdfabsdim|ifparameters|ifparameter|ifodd|ifnumval|ifnumexpression|ifnum|ifmmode|ifmathstyle|ifmathparameter|ifinsert|ifinner|ifincsname|ifhmode|ifhbox|ifhasxtoks|ifhastoks|ifhastok|ifhaschar|iffontchar|ifflags|iffalse|ifempty|ifdimval|ifdimexpression|ifdim|ifdefined|ifcstok|ifcsname|ifcondition|ifcmpnum|ifcmpdim|ifchknum|ifchkdim|ifcat|ifcase|ifboolean|ifarguments|ifabsnum|ifabsdim|if|hyphenpenalty|hyphenchar|hyphenationmode|hyphenationmin|hyphenation|ht|hss|hskip|hsize|hrule|hpack|holdinginserts|hjcode|hfuzz|hfilneg|hfill|hfil|hccode|hbox|hbadness|hangindent|hangafter|halign|gtokspre|gtoksapp|glyphyscale|glyphyoffset|glyphxscale|glyphxoffset|glyphtextscale|glyphstatefield|glyphscriptscriptscale|glyphscriptscale|glyphscriptfield|glyphscale|glyphoptions|glyphdatafield|glyph|gluetomu|gluestretchorder|gluestretch|gluespecdef|glueshrinkorder|glueshrink|glueexpr|globaldefs|global|glettonothing|gletcsname|glet|gleaders|gdefcsname|gdef|futurelet|futureexpandisap|futureexpandis|futureexpand|futuredef|futurecsname|frozen|formatname|fonttextcontrol|fontspecyscale|fontspecxscale|fontspecscale|fontspecifiedsize|fontspecifiedname|fontspecid|fontspecdef|fontname|fontmathcontrol|fontid|fontdimen|fontcharwd|fontcharic|fontcharht|fontchardp|font|flushmarks|floatingpenalty|firstvalidlanguage|firstmarks|firstmark|finalhyphendemerits|fi|fam|explicithyphenpenalty|explicitdiscretionary|expandtoken|expandcstoken|expandafterspaces|expandafterpars|expandafter|expand|exhyphenpenalty|exhyphenchar|exceptionpenalty|everyvbox|everytab|everypar|everymath|everyjob|everyhbox|everyeof|everydisplay|everycr|everybeforepar|etokspre|etoksapp|escapechar|errorstopmode|errorcontextlines|errmessage|errhelp|eqno|enforced|endsimplegroup|endlocalcontrol|endlinechar|endinput|endgroup|endcsname|end|emergencystretch|else|efcode|edefcsname|edef|dump|dp|doublehyphendemerits|divide|displaywidth|displaywidowpenalty|displaywidowpenalties|displaystyle|displaylimits|displayindent|discretionary|directlua|dimexpression|dimexpr|dimensiondef|dimendef|dimen|detokenize|delimitershortfall|delimiterfactor|delimiter|delcode|defcsname|defaultskewchar|defaulthyphenchar|def|deadcycles|day|currentmarks|currentiftype|currentiflevel|currentifbranch|currentgrouptype|currentgrouplevel|csstring|csname|crcr|crampedtextstyle|crampedscriptstyle|crampedscriptscriptstyle|crampeddisplaystyle|cr|countdef|count|copy|clubpenalty|clubpenalties|clearmarks|cleaders|chardef|char|catcodetable|catcode|brokenpenalty|boxyoffset|boxymove|boxxoffset|boxxmove|boxtotal|boxorientation|boxmaxdepth|boxdirection|boxattribute|box|boundary|botmarks|botmark|binoppenalty|belowdisplayskip|belowdisplayshortskip|beginsimplegroup|beginlocalcontrol|begingroup|begincsname|batchmode|baselineskip|badness|autoparagraphmode|automigrationmode|automatichyphenpenalty|automaticdiscretionary|attributedef|attribute|atopwithdelims|atop|atendofgrouped|atendofgroup|aligntab|alignmark|aligncontent|aliased|aftergrouped|aftergroup|afterassignment|afterassigned|advance|adjustspacingstretch|adjustspacingstep|adjustspacingshrink|adjustspacing|adjdemerits|accent|abovewithdelims|abovedisplayskip|abovedisplayshortskip|above|XeTeXversion|Uvextensible|Uunderdelimiter|Usuperscript|Usuperprescript|Usubscript|Usubprescript|Ustyle|Ustopmath|Ustopdisplaymath|Ustartmath|Ustartdisplaymath|Ustack|Uskewedwithdelims|Uskewed|Uroot|Uright|Uradical|Uoverwithdelims|Uoverdelimiter|Uover|Unosuperscript|Unosuperprescript|Unosubscript|Unosubprescript|Umiddle|Umathvoid|Umathvextensiblevariant|Umathunderlinevariant|Umathunderdelimitervgap|Umathunderdelimitervariant|Umathunderdelimiterbgap|Umathunderbarvgap|Umathunderbarrule|Umathunderbarkern|Umathtopaccentvariant|Umathsupsubbottommax|Umathsupshiftup|Umathsupshiftdrop|Umathsuperscriptvariant|Umathsupbottommin|Umathsubtopmax|Umathsubsupvgap|Umathsubsupshiftdown|Umathsubshiftdrop|Umathsubshiftdown|Umathsubscriptvariant|Umathstackvgap|Umathstackvariant|Umathstacknumup|Umathstackdenomdown|Umathspacingmode|Umathspacebeforescript|Umathspaceafterscript|Umathskewedfractionvgap|Umathskewedfractionhgap|Umathrelrelspacing|Umathrelpunctspacing|Umathrelordspacing|Umathrelopspacing|Umathrelopenspacing|Umathrelinnerspacing|Umathrelclosespacing|Umathrelbinspacing|Umathradicalvgap|Umathradicalvariant|Umathradicalrule|Umathradicalkern|Umathradicaldegreeraise|Umathradicaldegreebefore|Umathradicaldegreeafter|Umathquad|Umathpunctrelspacing|Umathpunctpunctspacing|Umathpunctordspacing|Umathpunctopspacing|Umathpunctopenspacing|Umathpunctinnerspacing|Umathpunctclosespacing|Umathpunctbinspacing|Umathphantom|Umathoverlinevariant|Umathoverlayaccentvariant|Umathoverdelimitervgap|Umathoverdelimitervariant|Umathoverdelimiterbgap|Umathoverbarvgap|Umathoverbarrule|Umathoverbarkern|Umathordrelspacing|Umathordpunctspacing|Umathordordspacing|Umathordopspacing|Umathordopenspacing|Umathordinnerspacing|Umathordclosespacing|Umathordbinspacing|Umathoprelspacing|Umathoppunctspacing|Umathopordspacing|Umathopopspacing|Umathopopenspacing|Umathopinnerspacing|Umathoperatorsize|Umathopenupheight|Umathopenupdepth|Umathopenrelspacing|Umathopenpunctspacing|Umathopenordspacing|Umathopenopspacing|Umathopenopenspacing|Umathopeninnerspacing|Umathopenclosespacing|Umathopenbinspacing|Umathopclosespacing|Umathopbinspacing|Umathnumeratorvariant|Umathnolimitsupfactor|Umathnolimitsubfactor|Umathnolimits|Umathnoaxis|Umathlimits|Umathlimitbelowvgap|Umathlimitbelowkern|Umathlimitbelowbgap|Umathlimitabovevgap|Umathlimitabovekern|Umathlimitabovebgap|Umathinnerrelspacing|Umathinnerpunctspacing|Umathinnerordspacing|Umathinneropspacing|Umathinneropenspacing|Umathinnerinnerspacing|Umathinnerclosespacing|Umathinnerbinspacing|Umathhextensiblevariant|Umathfractionvariant|Umathfractionrule|Umathfractionnumvgap|Umathfractionnumup|Umathfractiondenomvgap|Umathfractiondenomdown|Umathfractiondelsize|Umathextrasupshift|Umathextrasuppreshift|Umathextrasubshift|Umathextrasubpreshift|Umathdenominatorvariant|Umathdelimiterundervariant|Umathdelimiterovervariant|Umathdegreevariant|Umathconnectoroverlapmin|Umathcodenum|Umathcode|Umathcloserelspacing|Umathclosepunctspacing|Umathcloseordspacing|Umathcloseopspacing|Umathcloseopenspacing|Umathcloseinnerspacing|Umathcloseclosespacing|Umathclosebinspacing|Umathclass|Umathcharslot|Umathcharnumdef|Umathcharnum|Umathcharfam|Umathchardef|Umathcharclass|Umathchar|Umathbotaccentvariant|Umathbinrelspacing|Umathbinpunctspacing|Umathbinordspacing|Umathbinopspacing|Umathbinopenspacing|Umathbininnerspacing|Umathbinclosespacing|Umathbinbinspacing|Umathaxis|Umathadapttoright|Umathadapttoleft|Umathaccentvariant|Umathaccentbaseheight|Umathaccent|Uleft|Uhextensible|Udelimiterunder|Udelimiterover|Udelimiter|Udelcodenum|Udelcode|Uchar|Uatopwithdelims|Uatop|Uabovewithdelims|Uabove|UUskewedwithdelims|UUskewed|Omegaversion|Omegarevision|Omegaminorversion|Alephversion|Alephrevision|Alephminorversion| )(?=[^a-zA-Z])",
"name" : "context.primitive.commands.primitive.tex"
},
"reserved" : {
diff --git a/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex b/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex
index bd9fd7b76..0521a43de 100644
--- a/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex
+++ b/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex
@@ -342,6 +342,20 @@ question is: where do we apply it in old mechanisms and where not.
% $$x = \vcenter{vcenter : \wrapuppar{1}test\par x\wrapuppar{2}test}$$\blank
% x\vadjust{vadjust : \wrapuppar{1}test\par x\wrapuppar{2}test}x\blank
+% \starttext
+% \starttabulate[|||]
+% \NC test \NC test \NC \NR
+% \NC test \NC \hbox{\hbox{\hbox{\vadjust pre {\kern-12pt}}}}test \NC \NR
+% \NC test \NC \hbox{\hbox{\hbox{\vadjust {\kern-12pt}}}}test \NC \NR
+% \NC test \NC test \NC \NR
+% \stoptabulate
+% \starttabulate[||p|]
+% \NC test \NC test \NC \NR
+% \NC test \NC \hbox{\vadjust{\kern-22pt}}test \NC \NR
+% \NC test \NC test \NC \NR
+% \stoptabulate
+% \stoptext
+
\stopsectionlevel
\startsectionlevel[title=Hanging]
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 060f187b9..607ada2e8 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2021.11.18 16:33}
+\newcontextversion{2021.11.22 22:27}
%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 48d7f3965..d57d70feb 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2021.11.18 16:33}
+\edef\contextversion{2021.11.22 22:27}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index ea1e6836c..2f16ce08f 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.11.18 16:33}
+\newcontextversion{2021.11.22 22:27}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 4138533e6..99f6ee104 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -49,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2021.11.18 16:33}
+\edef\contextversion{2021.11.22 22:27}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-imp-dimensions.lua b/tex/context/base/mkiv/font-imp-dimensions.lua
index 66e218e0f..9e664a684 100644
--- a/tex/context/base/mkiv/font-imp-dimensions.lua
+++ b/tex/context/base/mkiv/font-imp-dimensions.lua
@@ -103,6 +103,7 @@ local function initialize(tfmdata,key,value)
character.height = height
character.depth = depth
if oldwidth ~= width then
+ -- todo: xoffset
local commands = character.commands
local hshift = rightcommand[newshift or ((width - oldwidth) / 2)]
if commands then
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 3bde86c49..d29f06934 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -526,6 +526,7 @@ return {
"tokspre",
"tolerant",
"tpack",
+ "tracingadjusts",
"tracingalignments",
"tracingexpressions",
"tracingfonts",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 21b3cb86b..70dda4720 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 c4f320fb5..20e4c0345 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-mat.mkiv b/tex/context/base/mkiv/strc-mat.mkiv
index 976cb8c3a..d3f47adac 100644
--- a/tex/context/base/mkiv/strc-mat.mkiv
+++ b/tex/context/base/mkiv/strc-mat.mkiv
@@ -978,6 +978,7 @@
\rawprocesscommalist[\p_direct]\strc_formulas_option
\fi
% not : \def\strc_formulas_formula[##1]##2{\mathematics{##2}}%
+ \useformulastyleandcolor\c!style\c!color
\mathematics{#2}%
\endgroup}
diff --git a/tex/context/base/mkiv/strc-ref.mkvi b/tex/context/base/mkiv/strc-ref.mkvi
index 3bf339638..5032c20c4 100644
--- a/tex/context/base/mkiv/strc-ref.mkvi
+++ b/tex/context/base/mkiv/strc-ref.mkvi
@@ -1125,7 +1125,7 @@
\def\strc_references_handle_page_state_yes
{\markreferencepage
- \ifcase\referencepagedetail
+ \ifcase\referencepagedetail\relax
\expandafter\sixthofsixarguments \or
\expandafter\thirdofsixarguments \or
\expandafter\firstofsixarguments \or
diff --git a/tex/context/base/mkxl/char-brl.lmt b/tex/context/base/mkxl/char-brl.lmt
new file mode 100644
index 000000000..c9cdd3594
--- /dev/null
+++ b/tex/context/base/mkxl/char-brl.lmt
@@ -0,0 +1,405 @@
+if not modules then modules = { } end modules ['char-bri'] = {
+ version = 1.001,
+ comment = "companion to char-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We use a somewhat indirect approach because we generated the database and
+-- have to do that again probably. At some point we can move some to char-def
+-- so the interfaces here are kind of private and can change.
+--
+-- This is just an experiment. The data is taken from Wikipedia and the nemeth
+-- sequences come from a 2021 blog by Murray Sargent (from Microsoft):
+--
+-- https://devblogs.microsoft.com/math-in-office/unicode-math-braille-sequences/
+
+local next = next
+local gsub = string.gsub
+local utfbyte, utfsplit = utf.byte, string.utfvaluetable
+local sortedkeys = table.sortedkeys
+
+local braille = { }
+characters.braille = braille
+
+local codepoints = {
+ digits = {
+ [48] = "⠚",
+ [49] = "⠁",
+ [50] = "⠃",
+ [51] = "⠉",
+ [52] = "⠙",
+ [53] = "⠑",
+ [54] = "⠋",
+ [55] = "⠛",
+ [56] = "⠓",
+ [57] = "⠊",
+ },
+ letters = {
+ [97] = "⠁",
+ [98] = "⠃",
+ [99] = "⠉",
+ [100] = "⠙",
+ [101] = "⠑",
+ [102] = "⠋",
+ [103] = "⠛",
+ [104] = "⠓",
+ [105] = "⠊",
+ [106] = "⠚",
+ [107] = "⠅",
+ [108] = "⠇",
+ [109] = "⠍",
+ [110] = "⠝",
+ [111] = "⠕",
+ [112] = "⠏",
+ [113] = "⠟",
+ [114] = "⠗",
+ [115] = "⠎",
+ [116] = "⠞",
+ [117] = "⠥",
+ [118] = "⠧",
+ [119] = "⠺",
+ [120] = "⠭",
+ [121] = "⠽",
+ [122] = "⠵",
+ },
+ punctuation = {
+ [33] = "⠖",
+ [34] = "⠸⠡",
+ [40] = "⠐⠣",
+ [41] = "⠐⠜",
+ [44] = "⠂",
+ [45] = "⠤",
+ [46] = "⠲",
+ [47] = "⠸⠌",
+ [58] = "⠒",
+ [59] = "⠆",
+ [63] = "⠦",
+ [8211] = "⠠⠤",
+ [8212] = "⠐⠠⠤",
+ [8216] = "⠄⠦",
+ [8217] = "⠄⠴",
+ [8220] = "⠘⠦",
+ [8221] = "⠘⠴",
+ },
+ ueb = {
+ [33] = "⠖",
+ [34] = "⠠⠶",
+ [35] = "⠸⠹",
+ [36] = "⠈⠎",
+ [37] = "⠨⠴",
+ [38] = "⠈⠯",
+ [39] = "⠄",
+ [40] = "⠐⠣",
+ [41] = "⠐⠜",
+ [42] = "⠐⠔",
+ [43] = "⠐⠖",
+ [44] = "⠂",
+ [45] = "⠤",
+ [46] = "⠼⠲",
+ [47] = "⠸⠌",
+ [58] = "⠒",
+ [59] = "⠆",
+ [60] = "⠈⠣",
+ [61] = "⠐⠶",
+ [62] = "⠈⠜",
+ [63] = "⠦",
+ [64] = "⠈⠁",
+ [91] = "⠨⠣",
+ [92] = "⠸⠡",
+ [93] = "⠨⠜",
+ [94] = "⠈⠢",
+ [95] = "⠨⠤",
+ [123] = "⠸⠣",
+ [124] = "⠸⠳",
+ [125] = "⠸⠜",
+ [126] = "⠈⠔",
+ [162] = "⠈⠉",
+ [163] = "⠈⠇",
+ [167] = "⠘⠎",
+ [169] = "⠘⠉",
+ [172] = "⠈⠹",
+ [174] = "⠘⠗",
+ [176] = "⠘⠚",
+ [177] = "⠸⠖",
+ [182] = "⠘⠏",
+ [215] = "⠐⠦",
+ [247] = "⠐⠌",
+ [913] = "⠠⠨⠁",
+ [914] = "⠠⠨⠃",
+ [915] = "⠠⠨⠛",
+ [916] = "⠠⠨⠙",
+ [917] = "⠠⠨⠑",
+ [918] = "⠠⠨⠵",
+ [919] = "⠠⠨⠱",
+ [920] = "⠠⠨⠹",
+ [921] = "⠠⠨⠊",
+ [922] = "⠠⠨⠅",
+ [923] = "⠠⠨⠇",
+ [924] = "⠠⠨⠍",
+ [925] = "⠠⠨⠝",
+ [926] = "⠠⠨⠭",
+ [927] = "⠠⠨⠕",
+ [928] = "⠠⠨⠏",
+ [929] = "⠠⠨⠗",
+ [931] = "⠠⠨⠎",
+ [932] = "⠠⠨⠞",
+ [933] = "⠠⠨⠥",
+ [934] = "⠠⠨⠋",
+ [935] = "⠠⠨⠯",
+ [936] = "⠠⠨⠽",
+ [937] = "⠠⠨⠺",
+ [945] = "⠨⠁",
+ [946] = "⠨⠃",
+ [947] = "⠨⠛",
+ [948] = "⠨⠙",
+ [949] = "⠨⠑",
+ [950] = "⠨⠵",
+ [951] = "⠨⠱",
+ [952] = "⠨⠹",
+ [953] = "⠨⠊",
+ [954] = "⠨⠅",
+ [955] = "⠨⠇",
+ [956] = "⠨⠍",
+ [957] = "⠨⠝",
+ [958] = "⠨⠭",
+ [959] = "⠨⠕",
+ [960] = "⠨⠏",
+ [961] = "⠨⠗",
+ [962] = "⠨⠎",
+ [963] = "⠨⠎",
+ [964] = "⠨⠞",
+ [965] = "⠨⠥",
+ [966] = "⠨⠋",
+ [967] = "⠨⠯",
+ [968] = "⠨⠽",
+ [969] = "⠨⠺",
+ [8212] = "⠠⠤",
+ [8213] = "⠐⠠⠤",
+ [8216] = "⠠⠦",
+ [8217] = "⠠⠴",
+ [8220] = "⠘⠦",
+ [8221] = "⠘⠴",
+ [8224] = "⠈⠠⠹",
+ [8225] = "⠈⠠⠻",
+ [8226] = "⠸⠲",
+ [8242] = "⠶",
+ [8243] = "⠶⠶",
+ [8592] = "⠳⠪",
+ [8593] = "⠳⠬",
+ [8594] = "⠳⠕",
+ [8595] = "⠳⠩",
+ [8596] = "⠰⠳⠺⠗⠕",
+ [8598] = "⠳⠱",
+ [8599] = "⠳⠎",
+ [8600] = "⠳⠣",
+ [8601] = "⠳⠜",
+ [8656] = "⠰⠳⠶⠶⠪",
+ [8657] = "⠰⠳⠶⠶⠬",
+ [8658] = "⠰⠳⠶⠶⠕",
+ [8659] = "⠰⠳⠶⠶⠩",
+ [8704] = "⠘⠁",
+ [8706] = "⠈⠙",
+ [8707] = "⠘⠢",
+ [8709] = "⠈⠚",
+ [8711] = "⠘⠙",
+ [8712] = "⠘⠑",
+ [8715] = "⠈⠘⠑",
+ [8722] = "⠐⠤",
+ [8723] = "⠸⠤",
+ [8728] = "⠐⠴",
+ [8730] = "⠐⠩",
+ [8733] = "⠸⠐⠶",
+ [8734] = "⠼⠿",
+ [8736] = "⠸⠪",
+ [8737] = "⠨⠸⠪",
+ [8741] = "⠼⠇",
+ [8743] = "⠈⠦",
+ [8744] = "⠈⠖",
+ [8745] = "⠨⠦",
+ [8746] = "⠨⠖",
+ [8747] = "⠮",
+ [8748] = "⠮⠮",
+ [8749] = "⠮⠮⠮",
+ [8750] = "⠈⠮",
+ [8756] = "⠠⠡",
+ [8757] = "⠈⠌",
+ [8758] = "⠒",
+ [8759] = "⠒⠒",
+ [8771] = "⠸⠔",
+ [8773] = "⠐⠸⠔",
+ [8776] = "⠘⠔",
+ [8783] = "⠘⠐⠶",
+ [8785] = "⠨⠐⠶",
+ [8800] = "⠐⠶⠈⠱",
+ [8801] = "⠸⠿",
+ [8804] = "⠸⠈⠣",
+ [8805] = "⠸⠈⠜",
+ [8810] = "⠨⠈⠣",
+ [8811] = "⠨⠈⠜",
+ [8834] = "⠘⠣",
+ [8835] = "⠘⠜",
+ [8838] = "⠸⠘⠣",
+ [8839] = "⠸⠘⠜",
+ [8842] = "⠨⠘⠣",
+ [8843] = "⠨⠘⠜",
+ [8853] = "⠰⠫⠿⠪⠐⠖⠱",
+ [8867] = "⠈⠸⠒",
+ [8869] = "⠼⠤",
+ [8870] = "⠸⠒",
+ [8872] = "⠘⠸⠒",
+ [8882] = "⠈⠸⠣",
+ [8883] = "⠈⠸⠜",
+ [8884] = "⠸⠸⠣",
+ [8885] = "⠸⠸⠜",
+ [8894] = "⠼⠸⠪",
+ [8901] = "⠐⠲",
+ [9675] = "⠿",
+ [10764] = "⠮⠮⠮⠮",
+ },
+ specials = {
+ uppercase = "⠠",
+ space = "⠀",
+ number = "⠼",
+ rule = "⠒",
+ },
+ alphabets = {
+ ["lowercasenormal"] = "⠰",
+ ["lowercasegreeknormal"] = "⠨",
+ ["lowercasegreekitalic"] = "⠨⠨",
+ ["lowercaseitalic"] = "⠨",
+ ["lowercasebold"] = "⠸",
+ ["lowercasebolditalic"] = "⠸⠨",
+ ["lowercasefraktur"] = "⠸",
+ ["lowercaseboldfraktur"] = "⠸⠸",
+ ["lowercasescript"] = "⠈",
+ ["lowercaseboldscript"] = "⠸⠈",
+ ["lowercasesansserifnormal"] = "⠠⠨",
+ ["lowercasesansserifitalic"] = "⠠⠨⠨",
+ ["lowercasesansserifbold"] = "⠠⠨⠸",
+ ["lowercasesansserifbolditalic"] = "⠠⠨⠸⠨",
+
+ ["uppercase"] = "⠠",
+
+ -- ["russian"] = "⠈⠈",
+ -- ["hebrew"] = "⠠⠠",
+ -- ["altgreek"] = "⠨⠈",
+
+ -- ["lowercasedoublestruck"] = ""
+ -- ["lowercasegreekbold"] = ""
+ -- ["lowercasegreekbolditalic"] = ""
+ -- ["lowercasegreeksansserifbold"] = ""
+ -- ["lowercasegreeksansserifbolditalic"] = ""
+ -- ["lowercasemonospace"] = ""
+ },
+}
+
+braille.codepoints = codepoints
+
+local textunicodes, mathunicodes, textstrings, mathstrings, textlist, mathlist, specials
+
+local function prepare()
+
+ local charblocks = characters.blocks
+ local uccodes = characters.uccodes
+
+ local letters = codepoints.letters
+ local cspecials = codepoints.specials
+ local uppercase = cspecials.uppercase
+ local number = cspecials.number
+ local space = cspecials.space
+ local rule = cspecials.rule
+
+ -- filtered from the mentioned blog webpage:
+
+ local nemeth = table.load(resolvers.find_file("math-brl.lua")).nemeth
+ codepoints.nemeth = nemeth
+
+ -- we let the tex math engine do the spacing but it can become an option:
+
+ for k, v in next, nemeth do
+ nemeth[k] = gsub(v,space,"")
+ end
+
+ textstrings = { }
+ mathstrings = { }
+ textunicodes = { }
+ mathunicodes = { }
+
+ for k, v in next, codepoints.letters do
+ textstrings[k] = v
+ mathstrings[k] = v
+ local K = uccodes[k]
+ if K then
+ local V = uppercase .. v
+ textstrings[K] = V
+ mathstrings[K] = V
+ end
+ end
+
+ for k, v in next, codepoints.digits do
+ local d = number .. v
+ textstrings[k] = v
+ mathstrings[k] = v
+ end
+
+ for k, v in next, codepoints.punctuation do
+ textstrings[k] = v
+ mathstrings[k] = v
+ end
+ -- overlaps with the above
+
+ for k, v in next, codepoints.ueb do
+ textstrings[k] = v
+ mathstrings[k] = v
+ end
+
+ for k, v in next, codepoints.nemeth do
+ mathstrings[k] = v
+ if not textstrings[k] then
+ textstrings[k] = v
+ end
+ end
+
+ for k, v in next, codepoints.alphabets do
+ local block = charblocks[k]
+ if block then
+ local c = utfbyte('a')
+ for i=block.first,block.last do
+ mathstrings[i] = v..letters[c]
+ if not textstrings[i] then
+ textstrings[i] = v .. letters[c]
+ end
+ c = c + 1
+ end
+ end
+ end
+
+ for k, v in next, textstrings do
+ textunicodes[k] = utfsplit(v)
+ end
+ for k, v in next, mathstrings do
+ mathunicodes[k] = utfsplit(v)
+ end
+
+ textlist = sortedkeys(textstrings)
+ mathlist = sortedkeys(mathstrings)
+
+ specials = {
+ uppercase = utfbyte(uppercase),
+ number = utfbyte(number),
+ space = utfbyte(space),
+ rule = utfbyte(rule)
+ }
+end
+
+-- maybe an iterator
+
+function braille.textlist () if not textlist then prepare() end return textlist end
+function braille.mathlist () if not mathlist then prepare() end return mathlist end
+function braille.textunicode(n) if not textunicodes then prepare() end return textunicodes[n] end
+function braille.mathunicode(n) if not mathunicodes then prepare() end return mathunicodes[n] end
+function braille.textstring (n) if not textstrings then prepare() end return textstrings [n] end
+function braille.mathstring (n) if not mathstrings then prepare() end return mathstrings [n] end
+function braille.special (n) if not specials then prepare() end return specials [n] end
diff --git a/tex/context/base/mkxl/char-ini.mkxl b/tex/context/base/mkxl/char-ini.mkxl
index f512e02bc..baa5426cc 100644
--- a/tex/context/base/mkxl/char-ini.mkxl
+++ b/tex/context/base/mkxl/char-ini.mkxl
@@ -18,6 +18,7 @@
\registerctxluafile{char-tex}{autosuffix}
\registerctxluafile{char-ent}{}
\registerctxluafile{char-scr}{}
+%registerctxluafile{char-brl}{}
\unprotect
diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index 7ccad2f83..ce18d555f 100644
--- a/tex/context/base/mkxl/cont-new.mkxl
+++ b/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.11.18 16:33}
+\newcontextversion{2021.11.22 22:27}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl
index ba38b44c7..dd39ba19b 100644
--- a/tex/context/base/mkxl/context.mkxl
+++ b/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2021.11.18 16:33}
+\immutable\edef\contextversion{2021.11.22 22:27}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/core-env.mkxl b/tex/context/base/mkxl/core-env.mkxl
index c0cc44e5b..6c347b0d5 100644
--- a/tex/context/base/mkxl/core-env.mkxl
+++ b/tex/context/base/mkxl/core-env.mkxl
@@ -580,11 +580,11 @@
\permanent\def\systemsetups#1{\syst_setups{\systemsetupsprefix#1}}
-\permanent\protected\def\resetsetups[#1]% see x-fo for usage
- {\ifcsname\??setup\ifgridsnapping\v!grid\fi:#1\endcsname
- \dodoglobal\undefinevalue{\??setup\ifgridsnapping\v!grid\fi:#1}%
+\permanent\tolerant\protected\def\resetsetups[#1]#;#2%
+ {\ifcsname\??setup\ifgridsnapping\v!grid\fi:#1#2\endcsname
+ \dodoglobal\undefinevalue{\??setup\ifgridsnapping\v!grid\fi:#1#2}%
\else
- \dodoglobal\undefinevalue{\??setup:#1}%
+ \dodoglobal\undefinevalue{\??setup:#1#2}%
\fi}
\permanent\tolerant\protected\def\copysetups[#1]#*[#2]%
diff --git a/tex/context/base/mkxl/driv-shp.lmt b/tex/context/base/mkxl/driv-shp.lmt
index eb2ec63c9..3a3d3e6e7 100644
--- a/tex/context/base/mkxl/driv-shp.lmt
+++ b/tex/context/base/mkxl/driv-shp.lmt
@@ -223,9 +223,13 @@ local flush_character do
end
if csx then
csx = csx * sx
+else
+ csx = sx
end
if csy then
csy = csy * sy
+else
+ csy = sy
end
-- here no current!
return flush_character(false,fnt,chr,factor,nest,pos_h,pos_v,pos_r,csx,csy)
@@ -708,9 +712,10 @@ local hlist_out, vlist_out do
if subtype >= leaders_code then
local leader = getleader(current)
if leader then
- local width, height, depth = getwhd(leader)
- if getid(leader) == rule_code then
+ local id = getid(leader)
+ if id == rule_code then
if gluewidth > 0 then
+ local width, height, depth = getwhd(leader)
if height == runningrule then
height = boxheight
end
@@ -727,67 +732,73 @@ local hlist_out, vlist_out do
end
cur_h = cur_h + gluewidth
end
- elseif width > 0 and gluewidth > 0 then
- local boxdir = getdirection(leader) or lefttoright_code
- gluewidth = gluewidth + 10
- local edge = cur_h + gluewidth
- local lx = 0
- if subtype == gleaders_code then
- local save_h = cur_h
- if pos_r == righttoleft_code then
- cur_h = ref_h - shipbox_h + cur_h
+ elseif id == hlist_code or id == vlist_code and gluewidth > 0 then
+ local width, height, depth = getwhd(leader)
+ if width > 0 then
+ local boxdir = getdirection(leader) or lefttoright_code
+ gluewidth = gluewidth + 10
+ local edge = cur_h + gluewidth
+ local lx = 0
+ if subtype == gleaders_code then
+ local save_h = cur_h
+ if pos_r == righttoleft_code then
+ cur_h = ref_h - shipbox_h + cur_h
+ cur_h = width * (cur_h // width)
+ cur_h = ref_h - shipbox_h - cur_h
+ else
+ cur_h = ref_h - shipbox_h - cur_h
+ cur_h = width * (cur_h // width)
+ cur_h = ref_h - shipbox_h - cur_h
+ end
+ if cur_h < save_h then
+ cur_h = cur_h + width
+ end
+ elseif subtype == leaders_code then
+ local save_h = cur_h
cur_h = width * (cur_h // width)
- cur_h = ref_h - shipbox_h - cur_h
+ if cur_h < save_h then
+ cur_h = cur_h + width
+ end
else
- cur_h = ref_h - shipbox_h - cur_h
- cur_h = width * (cur_h // width)
- cur_h = ref_h - shipbox_h - cur_h
- end
- if cur_h < save_h then
- cur_h = cur_h + width
+ lq = gluewidth / width
+ lr = gluewidth % width
+ if subtype == cleaders_code then
+ cur_h = cur_h + lr // 2
+ else
+ lx = lr // (lq + 1)
+ cur_h = cur_h + (lr - (lq - 1) * lx) // 2
+ end
end
- elseif subtype == leaders_code then
- local save_h = cur_h
- cur_h = width * (cur_h // width)
- if cur_h < save_h then
- cur_h = cur_h + width
+ local shift = getshift(leader)
+ pushleaderlevel()
+ while cur_h + width <= edge do
+ local basepoint_h = 0
+ -- local basepoint_v = shift
+ if boxdir ~= pos_r then
+ basepoint_h = boxwidth
+ end
+ -- synch_pos_with_cur(ref_h,ref_v,cur_h + basepoint_h,shift)
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h)
+ end
+ pos_v = ref_v - shift
+ -- synced
+ if getid(leader) == vlist_code then
+ vlist_out(leader,getlist(leader))
+ else
+ hlist_out(leader,getlist(leader))
+ end
+ cur_h = cur_h + width + lx
end
+ popleaderlevel()
+ cur_h = edge - 10
else
- lq = gluewidth / width
- lr = gluewidth % width
- if subtype == cleaders_code then
- cur_h = cur_h + lr // 2
- else
- lx = lr // (lq + 1)
- cur_h = cur_h + (lr - (lq - 1) * lx) // 2
- end
- end
- local shift = getshift(leader)
- pushleaderlevel()
- while cur_h + width <= edge do
- local basepoint_h = 0
- -- local basepoint_v = shift
- if boxdir ~= pos_r then
- basepoint_h = boxwidth
- end
- -- synch_pos_with_cur(ref_h,ref_v,cur_h + basepoint_h,shift)
- if pos_r == righttoleft_code then
- pos_h = ref_h - (cur_h + basepoint_h)
- else
- pos_h = ref_h + (cur_h + basepoint_h)
- end
- pos_v = ref_v - shift
- -- synced
- if getid(leader) == vlist_code then
- vlist_out(leader,getlist(leader))
- else
- hlist_out(leader,getlist(leader))
- end
- cur_h = cur_h + width + lx
+ cur_h = cur_h + gluewidth
end
- popleaderlevel()
- cur_h = edge - 10
else
+ -- maybe some day also glyphs
cur_h = cur_h + gluewidth
end
else
@@ -832,12 +843,14 @@ local hlist_out, vlist_out do
pos_h = ref_h + (cur_h + basepoint_h + xoffset)
end
pos_v = ref_v - (shift - yoffset)
+ -- pushorientation(orientation,pos_h,pos_v,pos_r)
-- synced
if id == vlist_code then
vlist_out(current,list)
else
hlist_out(current,list)
end
+ -- poporientation(orientation,pos_h,pos_v,pos_r)
else
local orientation, xoffset, yoffset, woffset, hoffset, doffset = getorientation(current)
local orientation, basepoint_h, basepoint_v = applyanchor(orientation,0,shift,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
diff --git a/tex/context/base/mkxl/font-con.lmt b/tex/context/base/mkxl/font-con.lmt
index d1a15e92c..b452f5a12 100644
--- a/tex/context/base/mkxl/font-con.lmt
+++ b/tex/context/base/mkxl/font-con.lmt
@@ -797,6 +797,7 @@ function constructors.scale(tfmdata,specification)
end
end
end
+ -- only in old school fonts (otherwise we set commands later in context)
local vc = character.commands
if vc then
chr.commands = scalecommands(vc,hdelta,vdelta)
diff --git a/tex/context/base/mkxl/font-imp-braille.lmt b/tex/context/base/mkxl/font-imp-braille.lmt
new file mode 100644
index 000000000..2bbf0fd16
--- /dev/null
+++ b/tex/context/base/mkxl/font-imp-braille.lmt
@@ -0,0 +1,130 @@
+if not modules then modules = { } end modules ['font-imp-braille'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA ADE",
+ copyright = "ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not context then return end
+
+-- require("char-brl.lmt") -- we delay this one
+
+-- we can omit spaces and tweak the math parameters instead
+
+-- callback.register("math_rule", function(kind,font,width,height,attr)
+-- return nodes.tonode(nodes.nuts.pool.rule(width,5*height,5*height))
+-- end)
+
+local braille = characters.braille -- so this one is nil
+
+local braille_math_rule do
+
+ local nuts = nodes.nuts
+ local tonut = nodes.tonut
+ local tonode = nodes.tonode
+ local nodepool = nuts.pool
+ local setattrlist = nuts.setattrlist
+ local hpack = nuts.hpack
+ -- local getwhd = nuts.getwhd
+ -- local setwhd = nuts.setwhd
+ -- local setoffsets = nuts.setoffsets
+ local newmathglyph = nuts.newmathglyph
+ local newleader = nodepool.leader
+
+ local braillerule
+
+ braille_math_rule = function(kind,font,width,height,attr)
+ if not braillerule then
+ braillerule = braille.special("rule")
+ end
+ local attlst = tonut(attr)
+ local glyph = newmathglyph(font,braillerule,attlst)
+ local box = hpack(glyph)
+ --
+ -- local w, h, d = getwhd(box)
+ -- local t = (h + d) / 2
+ -- setwhd(box,w,t,t)
+ -- setoffsets(glyph,0,-t) -- setting the offset of the box messes up (visual) things
+ --
+ local leader = newleader(width,box)
+ local result = hpack(leader,width,"exactly")
+ setattrlist(leader,attlst)
+ return tonode(result)
+ end
+
+end
+
+local setmetatableindex = table.setmetatableindex
+
+local cache = table.setmetatableindex(function(t,w)
+ local v = table.setmetatableindex(function(t,u)
+ local v = { "offset", w, 0, u }
+ t[u] = v
+ return v
+ end)
+ t[w] = v
+ return v
+end)
+
+local function initialize(tfmdata,value)
+ if value then
+ if not braille then
+ require("char-brl.lmt")
+ braille = characters.braille
+ end
+ callback.register("math_rule", braille_math_rule)
+ local characters = tfmdata.characters
+ local numberdata = characters[braille.special("number")]
+ if numberdata then
+ local ismath = value ~= "text" and (value == "math" or tfmdata.mathparameters)
+ local list = ismath and braille.mathlist() or braille.textlist()
+ local unicode = ismath and braille.mathunicode or braille.textunicode
+ local width = numberdata.width
+ local height = numberdata.height
+ local depth = numberdata.depth
+ for i=1,#list do
+ local u = list[i]
+ local t = unicode(u)
+ local d = characters[u]
+ local w = 0
+ local c = { }
+ local n = #t
+ for i=1,n do
+ local ub = t[i]
+ local db = characters[ub]
+ if db then
+ c[i] = cache[w][ub]
+ w = w + width
+ end
+ end
+ if d then
+ d.width = n * width
+ d.height = height
+ d.depth = depth
+ d.commands = c
+ else
+ characters[u] = {
+ width = n * width,
+ height = height,
+ depth = depth,
+ commands = c,
+ unicode = u,
+ }
+ end
+ end
+ characters[0xAD] = characters[45]
+ end
+ end
+end
+
+local specification = {
+ name = "braille",
+ description = "braille",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+fonts.handlers.otf.features.register(specification)
diff --git a/tex/context/base/mkxl/font-vfc.lmt b/tex/context/base/mkxl/font-vfc.lmt
index c28b8b988..57344d18e 100644
--- a/tex/context/base/mkxl/font-vfc.lmt
+++ b/tex/context/base/mkxl/font-vfc.lmt
@@ -169,22 +169,27 @@ local scaled = {
-- additional ones are never scaled (color etc)
}
+-- normally we don't have these, and if so, only in old school fonts
+-- in which case we don't have extensions so ...
+
function helpers.scalecommands(list,hdelta,vdelta)
local n = #list
for i=1,n do
- local key = list[i][1]
- if scaled[list[i][1]] then
+ local cmd = list[i]
+ if scaled[cmd[1]] then
local result = { }
for i=1,n do
local cmd = list[i]
- local key = ivc[1]
+ local key = cmd[1]
if key == "right" or key == "left" then
result[i] = { key, cmd[2]*hdelta }
elseif key == "down" or key == "up" then
result[i] = { key, cmd[2]*vdelta }
- elseif key == "offset" or key == "rule" then -- or key == "compose"
+ elseif key == "offset" then
+ result[i] = { key, cmd[2]*hdelta, cmd[3]*vdelta, cmd[4], cmd[5], cmd[6] }
+ elseif key == "rule" then
result[i] = { key, cmd[2]*hdelta, cmd[3]*vdelta }
- elseif key == "line" then -- or key == "compose"
+ elseif key == "line" then
result[i] = { key, cmd[2]*hdelta, cmd[3]*vdelta, cmd[4]*vdelta, cmd[5] }
-- elseif key == "frame" then
-- result[i] = cmd -- already scaled, for now
diff --git a/tex/context/base/mkxl/grph-fig.mkxl b/tex/context/base/mkxl/grph-fig.mkxl
index 4a717a8c9..9f16747e3 100644
--- a/tex/context/base/mkxl/grph-fig.mkxl
+++ b/tex/context/base/mkxl/grph-fig.mkxl
@@ -102,8 +102,16 @@
\endgroup}
%D Whatever ... hardly used ... but historic ... needs checking ... will probably
-%D become m-fig-nn.mkiv .. or I will extend it cq. clean it up when I needed it.
-%D After all, it's documented in old manuals.
+%D become m-fig-nn.mkiv .. or I will extend it cq. clean it up when I needed it;
+%D after all, it's documented in old manuals.
+%D
+%D \stoptyping
+%D \startfigure[mycow][t:/sources/cow.pdf][width=4cm]
+%D % one can also use layers
+%D \stopfigure
+%D
+%D \externalfigure[mycow]
+%D \stoptyping
\newcount\c_grph_steps_reference
\newdimen\d_grph_steps_x
@@ -115,32 +123,36 @@
\ifdefined\remark \else \mutable\let\remark \relax \fi
\ifdefined\colorbar \else \mutable\let\colorbar \relax \fi
-\tolerant\protected\def\grph_steps_place_figure#1#2#3#4[#5]%
- {\hpack
- {\setbox\scratchbox\hpack
- {\useexternalfigure[\s!dummy][#2][#3,#5]%
- \externalfigure[\s!dummy]}%
- \grph_steps_calculate
- \startpositioning
- \enforced\let\referring\grph_steps_one_referring
- \enforced\let\marking \grph_steps_one_marking
- \enforced\let\remark \grph_steps_one_remark
- \enforced\let\colorbar \grph_steps_one_colorbar
- \position(0,0){\box\scratchbox}%
- \linewidth\onepoint
- \setuppositioning
- [\c!unit=pt,%
- \c!xscale=\withoutpt\the\d_grph_steps_x,%
- \c!yscale=\withoutpt\the\d_grph_steps_y,%
- \c!factor=1]%
- \ignorespaces#4%
- \enforced\let\referring\grph_steps_two_referring
- \enforced\let\marking \grph_steps_two_marking
- \enforced\let\remark \grph_steps_two_remark
- \enforced\let\colorbar \grph_steps_two_colorbar
- \ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced
- \stoppositioning
- \ifvoid\b_grph_steps_colorbar\else\box\b_grph_steps_colorbar\fi}} % not really needed
+\tolerant\protected\def\grph_steps_place_figure#1#2#3#4#5%
+ {\hbox\bgroup
+ \setbox\scratchbox\hbox % somehow a space creeps in
+ {% we can use \nospaces\plusone
+ \useexternalfigure[\s!dummy][#2][#3,#5]%
+ \externalfigure[\s!dummy]}%
+ \setbox\scratchbox\hbox
+ {\externalfigure[#2][#3,#5]}%
+ \grph_steps_calculate
+ \startpositioning
+ \enforced\let\referring\grph_steps_one_referring
+ \enforced\let\marking \grph_steps_one_marking
+ \enforced\let\remark \grph_steps_one_remark
+ \enforced\let\colorbar \grph_steps_one_colorbar
+ \position(0,0){\box\scratchbox}%
+ \linewidth\onepoint
+ \setuppositioning
+ [\c!unit=pt,%
+ \c!xscale=\withoutpt\the\d_grph_steps_x,%
+ \c!yscale=\withoutpt\the\d_grph_steps_y,%
+ \c!factor=1]%
+ \ignorespaces#4%
+ \enforced\let\referring\grph_steps_two_referring
+ \enforced\let\marking \grph_steps_two_marking
+ \enforced\let\remark \grph_steps_two_remark
+ \enforced\let\colorbar \grph_steps_two_colorbar
+ \ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced
+ \stoppositioning
+ \ifvoid\b_grph_steps_colorbar\else\box\b_grph_steps_colorbar\fi
+ \egroup}
\protected\def\grph_steps_one_referring(#1,#2)#*(#3,#4)#*[#5]%
{\position(#1,#2){\grph_steps_goto(#3,#4){\externalfigureparameter\c!frames}[#5]}}
@@ -176,8 +188,10 @@
{\grph_steps_test_figure{#1}{#2}{#3}{#4}%
\letexternalfigureparameter\c!frames\v!on}%
{\letexternalfigureparameter\c!frames\v!off}%
- \setvalue{\??externalfigureinstance#1}%
- {\grph_steps_place_figure{#1}{#2}{#3}{#4}}}
+ \tolerant\defcsname\??externalfigureinstance#1\endcsname[##1]%
+ {\grph_steps_place_figure{#1}{#2}{#3}{#4}{##1}%
+ % this is a dirty hack but ok for an old macro
+ \enforced\let\figurestatus\plusone}}
\permanent\protected\lettonothing\stopfigure
diff --git a/tex/context/base/mkxl/grph-inc.mkxl b/tex/context/base/mkxl/grph-inc.mkxl
index ace3e581d..a4b42e009 100644
--- a/tex/context/base/mkxl/grph-inc.mkxl
+++ b/tex/context/base/mkxl/grph-inc.mkxl
@@ -211,7 +211,7 @@
\fi}
\def\grph_include_use_indeed#1#2#3#4%
- {\dodoglobal\setvalue{\??externalfigureinstance#1}{\grph_include_setup{#2}{#3}{#4}}%
+ {\dodoglobal\defcsname\??externalfigureinstance#1\endcsname{\grph_include_setup{#2}{#3}{#4}}%
\grph_include_analyze_collection[#2][#4]}
% inclusion
@@ -717,11 +717,8 @@
\mutable\let\feedbackexternalfigure\relax % hook
-\permanent\protected\def\getfiguredimensions
- {\dodoubleempty\grph_include_get_dimensions}
-
-\def\grph_include_get_dimensions[#1][#2]%
- {\startnointerference
+\permanent\tolerant\protected\def\getfiguredimensions[#1]#*[#2]%
+ {\startnointerference % we can use \nospaces\plusone
\settrue\c_grph_include_test_only
\externalfigure[#1][#2,\c!display=,\c!mask=,\c!object=\v!no]%
\stopnointerference}
diff --git a/tex/context/base/mkxl/math-act.lmt b/tex/context/base/mkxl/math-act.lmt
index 374b5d73a..05df5eea6 100644
--- a/tex/context/base/mkxl/math-act.lmt
+++ b/tex/context/base/mkxl/math-act.lmt
@@ -587,17 +587,22 @@ end
do
+ local reported = { }
+
function mathtweaks.version(target,original,parameters)
local metadata = original.shared.rawdata.metadata
if metadata then
- local version = metadata.version
+ local version = string.strip(metadata.version or "") -- some have trailing spaces
if version then
local expected = parameters.expected
+ local fontname = metadata.fontname or false
-- version = tonumber(string.match(version,"%d+.%d+"))
- if version ~= expected then
+ if version ~= expected and not reported[fontname] then
report_tweak("version %a found, version %a expected",target,original,version,expected)
- reported[fontname] = true
+ elseif trace_tweaking then
+ report_tweak("version %a found",target,original,version)
end
+ reported[fontname] = true
end
end
end
diff --git a/tex/context/base/mkxl/math-fnt.lmt b/tex/context/base/mkxl/math-fnt.lmt
index a3ac1aea3..e6978d6cd 100644
--- a/tex/context/base/mkxl/math-fnt.lmt
+++ b/tex/context/base/mkxl/math-fnt.lmt
@@ -15,7 +15,8 @@ local vlist_code = nodes.nodecodes.vlist
local new_hlist = nodepool.hlist
local new_vlist = nodepool.vlist
-local new_glyph = nodepool.glyph
+----- new_glyph = nodepool.glyph
+local new_glyph = nuts.newmathglyph
local getattrlst = nuts.getattributelist
local setattrlst = nuts.setattributelist
@@ -25,6 +26,8 @@ local getid = nuts.getid
local chardata = fonts.hashes.characters
+-- not yet ok for compact fonts .. needs checking .. or just make this non-compact only
+
local function register_extensible(font,char,style,box)
local bx = tonut(box)
nodes.handlers.finalizelist(bx)
@@ -32,8 +35,9 @@ local function register_extensible(font,char,style,box)
local al = getattrlst(bx)
local wd, ht, dp = getwhd(bx)
local private = fonts.helpers.setboxdirectly(font,chardata[font][char].unicode or char,box)
- local g = new_glyph(font,private)
- setattrlst(g,al)
+ -- local g = new_glyph(font,private)
+ -- setattrlst(g,al)
+ local g = new_glyph(font,private,al)
local n = new_hlist(g)
setwhd(n,wd,ht,dp)
setattrlst(n,al)
diff --git a/tex/context/base/mkxl/math-ini.mkxl b/tex/context/base/mkxl/math-ini.mkxl
index 74e438fc3..774a7ff28 100644
--- a/tex/context/base/mkxl/math-ini.mkxl
+++ b/tex/context/base/mkxl/math-ini.mkxl
@@ -78,6 +78,7 @@
\registerctxluafile{math-dir}{}
\registerctxluafile{math-spa}{}
\registerctxluafile{math-fnt}{autosuffix}
+\registerctxluafile{math-pre}{autosuffix}
%D A starter:
%D
diff --git a/tex/context/base/mkxl/math-pre.lmt b/tex/context/base/mkxl/math-pre.lmt
new file mode 100644
index 000000000..d10f80cfe
--- /dev/null
+++ b/tex/context/base/mkxl/math-pre.lmt
@@ -0,0 +1,123 @@
+if not modules then modules = { } end modules ['math-pre'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type = type
+local gmatch = string.gmatch
+
+local h1 = table.swapped(tex.getmathparametervalues())
+local h2 = table.swapped(tex.getmathstylenamevalues())
+
+local axis = h1.axis
+
+local getmath = tex.getmath
+local setmath = tex.setmath
+
+function setmathparameters(t)
+ if t then
+ for i=1,#t do
+ local ti = t[i]
+ local list = ti.list
+ local factor = ti.factor or 1
+ local styles = ti.styles
+ local value = ti.value
+ local unit = ti.unit
+
+ local function set(li,si,value)
+ if value then
+ setmath(li,si,value)
+ elseif factor == 0 then
+ setmath(li,si,0)
+ elseif unit == "axis" then
+ setmath(li,si,factor * getmath(axis,i))
+ else
+ setmath(li,si,factor * getmath(li,i))
+ end
+ end
+
+ for i=1,#list do
+ local li = h1[list[i]]
+ if li then
+ if styles == "all" then
+ for si=0,7 do
+ set(li,si,value)
+ end
+ elseif type(styles) == "string" then
+ local si = h2[styles]
+ if si then
+ set(li,si,value)
+ end
+ else
+ for s=1,#styles do
+ local si = h2[styles[s]]
+ if si then
+ set(li,si,value)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local stacklist = {
+ "fractionnumvgap",
+ "fractiondenomvgap",
+ "fractionnumup",
+ "fractiondenomdown",
+ "stackdenomdown",
+ "stacknumup",
+ "stackvgap",
+}
+
+local presets = {
+ less = {
+ {
+ factor = .5,
+ -- factor = 0,
+ -- value = 655360,
+ -- unit = "axis",
+ list = stacklist,
+ -- styles = { "display" },
+ -- styles = "display",
+ styles = "all"
+ },
+ },
+ more = {
+ {
+ factor = 2,
+ list = stacklist,
+ styles = "all"
+ },
+ },
+ zero = {
+ {
+ factor = 0,
+ list = stacklist,
+ styles = "all"
+ },
+ },
+}
+
+mathematics.presets = presets
+
+function mathematics.preset(list)
+ for s in gmatch(list,"[%S,]+") do
+ setmathparameters(presets[s])
+ end
+end
+
+interfaces.implement {
+ name = "presetmathematics",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = mathematics.preset,
+}
+
diff --git a/tex/context/base/mkxl/node-nut.lmt b/tex/context/base/mkxl/node-nut.lmt
index 8675ba05e..0cd6eb051 100644
--- a/tex/context/base/mkxl/node-nut.lmt
+++ b/tex/context/base/mkxl/node-nut.lmt
@@ -172,6 +172,7 @@ local nuts = {
naturalhsize = direct.naturalhsize,
naturalwidth = direct.naturalwidth,
new = direct.new,
+ newmathglyph = direct.newmathglyph,
protectglyph = direct.protectglyph,
protectglyphs = direct.protectglyphs,
protrusionskippable = direct.protrusionskippable,
diff --git a/tex/context/base/mkxl/node-res.lmt b/tex/context/base/mkxl/node-res.lmt
index 4c456b263..93dc65b7b 100644
--- a/tex/context/base/mkxl/node-res.lmt
+++ b/tex/context/base/mkxl/node-res.lmt
@@ -392,7 +392,7 @@ function nutpool.boxrule(width,height,depth) -- w/h/d == nil will let them adapt
return n
end
-function nutpool.leader(width,list)
+local function new_leader(width,list)
local n = copy_nut(cleader)
if width then
setwidth(n,width)
@@ -403,6 +403,12 @@ function nutpool.leader(width,list)
return n
end
+nutpool.leader = new_leader
+
+function nodepool.leader(width,list)
+ return tonode(new_leader(width,list and tonut(list)))
+end
+
function nutpool.leftmarginkern(glyph,width)
local n = copy_nut(left_margin_kern)
if not glyph then
diff --git a/tex/context/base/mkxl/strc-mat.mkxl b/tex/context/base/mkxl/strc-mat.mkxl
index 5f929b5db..74ca24f7b 100644
--- a/tex/context/base/mkxl/strc-mat.mkxl
+++ b/tex/context/base/mkxl/strc-mat.mkxl
@@ -978,11 +978,12 @@
% \protected\def\switchtoformulabodyfont
% {\switchtobodyfont}
-\tolerant\permanent\protected\def\formula[#1];#2% todo: tagged
+\tolerant\permanent\protected\def\formula[#1]#;#2% todo: tagged
{\begingroup
\ifparameters#1\else
\rawprocesscommacommand[#1]\strc_formulas_option
\fi
+ \useformulastyleandcolor\c!style\c!color
\mathematics{#2}%
\endgroup}
diff --git a/tex/context/base/mkxl/strc-ref.mklx b/tex/context/base/mkxl/strc-ref.mklx
index da1b6a42e..f335764bf 100644
--- a/tex/context/base/mkxl/strc-ref.mklx
+++ b/tex/context/base/mkxl/strc-ref.mklx
@@ -1134,7 +1134,7 @@
\def\strc_references_handle_page_state_yes
{\markreferencepage
- \ifcase\referencepagedetail
+ \ifcase\referencepagedetail\relax
\expandafter\sixthofsixarguments \or
\expandafter\thirdofsixarguments \or
\expandafter\firstofsixarguments \or
diff --git a/tex/context/base/mkxl/syst-aux.mkxl b/tex/context/base/mkxl/syst-aux.mkxl
index 2f7acdca0..aceb52aac 100644
--- a/tex/context/base/mkxl/syst-aux.mkxl
+++ b/tex/context/base/mkxl/syst-aux.mkxl
@@ -484,24 +484,41 @@
%D When we were developing the scientific units module, we encountered different
%D behavior in text and math mode, which was due to this grouping subtilities. We
%D therefore decided to use \type {\begingroup} instead of \type {\bgroup}.
+%D
+%D \stoptyping
+%D \doifelsealldefined {foo,ofo} {YES}{NOP}
+%D \doifelseallundefined{foo,ofo} {YES}{NOP}
+%D \doifelsealldefined {relax,ofo}{YES}{NOP}
+%D \doifelseallundefined{foo,relax}{YES}{NOP}
+%D \stoptyping
+
+\def\syst_helpers_do_if_all_defined_else#1%
+ {\ifcsname#1\endcsname\else
+ \donefalse
+ \expandafter\quitcommalist % added
+ \fi}
-\permanent\protected\def\doifelsealldefined#1%
+\def\syst_helpers_do_if_all_undefined_else#1%
+ {\ifcsname#1\endcsname
+ \donefalse
+ \expandafter\quitcommalist
+ \fi}
+
+\permanent\protected\def\syst_helpers_do_if_all_else#1#2%
{\begingroup
\donetrue % we could use a reserved one and avoid the group
- \processcommalist[#1]\syst_helpers_do_if_all_defined_else
+ \processcommalist[#2]#1%
\ifdone
\endgroup\expandafter\firstoftwoarguments
\else
\endgroup\expandafter\secondoftwoarguments
\fi}
-\aliased\let\doifalldefinedelse\doifelsealldefined
+\permanent\protected\def\doifelsealldefined {\syst_helpers_do_if_all_else\syst_helpers_do_if_all_defined_else}
+\permanent\protected\def\doifelseallundefined{\syst_helpers_do_if_all_else\syst_helpers_do_if_all_undefined_else}
-\def\syst_helpers_do_if_all_defined_else#1%
- {\ifcsname#1\endcsname\else
- \donefalse
- \expandafter\quitcommalist % added
- \fi}
+\aliased\let\doifalldefinedelse \doifelsealldefined
+\aliased\let\doifallundefinedelse\doifelseallundefined
%D \macros
%D {doif,doifelse,doifnot}
diff --git a/tex/context/base/mkxl/trac-vis.lmt b/tex/context/base/mkxl/trac-vis.lmt
index f8aecbf12..59d9a01f6 100644
--- a/tex/context/base/mkxl/trac-vis.lmt
+++ b/tex/context/base/mkxl/trac-vis.lmt
@@ -791,7 +791,9 @@ local ruledbox do
local b_cache = caches["box"]
local o_cache = caches["origin"]
- local getshift = nuts.getshift
+ local getshift = nuts.getshift
+ local getorientation = nuts.getorientation
+ local setorientation = nuts.setorientation
setmetatableindex(o_cache,function(t,size)
local rule = new_rule(2*size,size,size)
@@ -807,6 +809,7 @@ local ruledbox do
local wd, ht, dp = getwhd(current)
local force_origin = wd == 0 or (dp + ht) == 0
local shift = getshift(current)
+local orientation, xoffset, yoffset = getorientation(current)
local next = getnext(current)
local prev = previous
setboth(current)
@@ -882,6 +885,7 @@ local ruledbox do
end
info = new_hlist(info,wd,ht,dp,shift)
end
+-- setorientation(info,orientation,xoffset,yoffset)
if next then
setlink(info,next)
end
@@ -1359,6 +1363,7 @@ do
local setleader = nuts.setleader
local setdisc = nuts.setdisc
+ local hpack = nuts.hpack
-- local cache
@@ -1539,6 +1544,7 @@ do
::glue::
content = getleader(current)
if content then
+ -- setleader(current,hpack(visualize(content,false,nil,parent)))
setleader(current,visualize(content,false,nil,parent))
elseif trace_glue then
head, current = ruledglue(head,current,vertical,parent)
diff --git a/tex/context/base/mkxl/type-imp-braille.mkxl b/tex/context/base/mkxl/type-imp-braille.mkxl
new file mode 100644
index 000000000..738874ec8
--- /dev/null
+++ b/tex/context/base/mkxl/type-imp-braille.mkxl
@@ -0,0 +1,84 @@
+%D \module
+%D [ file=type-imp-vraille,
+%D version=2021.11.17,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Braille (using Dejavu fonts),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D There is no need to waste money on a commercial braille font if we have dejavu. After
+%D all it's just dots. We also don't need features.
+
+\registerctxluafile{font-imp-braille}{autosuffix}
+
+% todo : not fallback, just replace directly .. special case anyway .. now inefficient and slow
+
+\starttypescriptcollection[braille]
+
+ \doifunknownfontfeature {dejavu-math-bold} {\definefontfeature[dejavu-math-bold][boldened]}
+
+ \definefontfeature[brailletext] [braille=text] % no ligatures, no kerning etc
+ \definefontfeature[braillemath] [braille=math] % no ligatures, no kerning etc
+ \definefontfeature[serifbraille] [features=none] % no ligatures, no kerning etc
+ \definefontfeature[sansbraille] [features=none] % no ligatures, no kerning etc
+ \definefontfeature[monobraille] [features=none] % no ligatures, no kerning etc
+ \definefontfeature[mathbraille] [features=none] % [compactmath=yes] % no ssty so compact anyway
+
+ % Maybe some day sans and mono will also have braille but it doesn't really matter because we
+ % don't really need sans and for mono we only need the fixed spacing.
+
+ \definefontfallback[BrailleMono] [\s!name:dejavuserif*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSerif][\s!name:dejavuserif*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSans] [\s!name:dejavuserif*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleMath] [\s!name:dejavuserif*braillemath][0x0000-0x1FFFF][force=yes]
+
+ \definefontfallback[BrailleMonoBold] [\s!name:dejavuserifbold*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSerifBold][\s!name:dejavuserifbold*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSansBold] [\s!name:dejavuserifbold*brailletext][0x0000-0x1FFFF][force=yes]
+
+ \starttypescript [\s!serif] [braille] [\s!name]
+ \definefontsynonym [\s!Serif] [\s!name:dejavuserif] [\s!features=serifbraille,\s!fallbacks=BrailleSerif]
+ \definefontsynonym [\s!SerifBold] [\s!name:dejavuserifbold][\s!features=serifbraille,\s!fallbacks=BrailleSerifBold]
+ \definefontsynonym [\s!SerifItalic] [\s!Serif]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!SerifBold]
+ \definefontsynonym [\s!SerifSlanted] [\s!Serif]
+ \definefontsynonym [\s!SerifBoldSlanted][\s!SerifBold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [braille] [\s!name]
+ \definefontsynonym [\s!Sans] [\s!name:dejavusans] [\s!features=sansbraille,\s!fallbacks=BrailleSans]
+ \definefontsynonym [\s!SansBold] [\s!name:dejavusansbold][\s!features=sansbraille,\s!fallbacks=BrailleSansBold]
+ \definefontsynonym [\s!SansItalic] [\s!Sans]
+ \definefontsynonym [\s!SansBoldItalic] [\s!SansBold]
+ \definefontsynonym [\s!SansSlanted] [\s!Sans]
+ \definefontsynonym [\s!SansBoldSlanted][\s!SansBold]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [braille] [\s!name]
+ \definefontsynonym [\s!Mono] [\s!name:dejavusansmono] [\s!features=monobraille,\s!fallbacks=BrailleMono]
+ \definefontsynonym [\s!MonoBold] [\s!name:dejavusansmonobold][\s!features=monobraille,\s!fallbacks=BrailleMonoBold]
+ \definefontsynonym [\s!MonoItalic] [\s!Mono]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!MonoBold]
+ \definefontsynonym [\s!MonoSlanted] [\s!Mono]
+ \definefontsynonym [\s!MonoBoldSlanted][\s!MonoBold]
+ \stoptypescript
+
+ \starttypescript [\s!math][braille] [\s!name]
+ \loadfontgoodies[dejavu-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={mathbraille,\s!math\mathsizesuffix},\s!fallbacks=BrailleMath]
+ \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={mathbraille,\s!math\mathsizesuffix,dejavu-math-bold},\s!fallbacks=BrailleMath]
+ \stoptypescript
+
+ \starttypescript[braille]
+ \definetypeface [braille] [\s!rm] [\s!serif] [braille] [\s!default]
+ \definetypeface [braille] [\s!ss] [\s!sans] [braille] [\s!default]
+ \definetypeface [braille] [\s!tt] [\s!mono] [braille] [\s!default]
+ \definetypeface [braille] [\s!mm] [\s!math] [braille] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/fonts/mkiv/asana-math.lfg b/tex/context/fonts/mkiv/asana-math.lfg
index fc83887a0..f7fd4ba96 100644
--- a/tex/context/fonts/mkiv/asana-math.lfg
+++ b/tex/context/fonts/mkiv/asana-math.lfg
@@ -34,21 +34,26 @@ return {
name = "asana-math",
version = "1.00",
comment = "Goodies that complement asana.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 000.958",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
}
},
{
- tweak = "fixprimes",
- factor = 1.05,
- scale = 0.65,
+ tweak = "fixprimes",
+ factor = 0.85,
+ scale = 0.65,
+ smaller = true,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/bonum-math.lfg b/tex/context/fonts/mkiv/bonum-math.lfg
index 2b35612e6..65f51446a 100644
--- a/tex/context/fonts/mkiv/bonum-math.lfg
+++ b/tex/context/fonts/mkiv/bonum-math.lfg
@@ -21,21 +21,106 @@ return {
name = "bonum-math",
version = "1.00",
comment = "Goodies that complement bonum.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.005",
+ },
+ {
tweak = "dimensions",
- list = {
- [0x1D453] = { .40, 1.60, .5 }, -- offset width italic
+ list = { -- offset width italic
+ [0x00393] = { -0.05, 0.875, 0 }, -- \Gamma
+ [0x00394] = { -0.05, 0.875, 0 }, -- \Delta
+ [0x00398] = { -0.05, 0.9, 0 }, -- \Theta
+ [0x0039B] = { -0.075, 0.85, 0 }, -- \Lambda
+ [0x0039E] = { -0.075, 0.85, 0 }, -- \Xi
+ [0x003A0] = { -0.075, 0.85, 0 }, -- \Pi
+ [0x003A3] = { -0.075, 0.85, 0 }, -- \Sigma
+ [0x003A5] = { -0.075, 0.85, 0 }, -- \Upsilon
+ [0x003A6] = { -0.05, 0.9, 0 }, -- \Phi
+ [0x003A8] = { -0.05, 0.9, 0 }, -- \Psi
+ [0x003A9] = { -0.05, 0.9, 0 }, -- \Omega
+ [0x02202] = { -0.075, 0.825, 0 }, -- \partial
+ [0x1D436] = { -0.1, 1, 0 }, -- C
+ [0x1D43A] = { -0.1, 1, 0 }, -- G
+ [0x1D442] = { -0.1, 1, 0 }, -- O
+ [0x1D444] = { -0.05, 1.025, 0 }, -- Q
+ [0x1D445] = { -0.025, 1.05, 0 }, -- R
+ [0x1D446] = { -0.05, 1, 0 }, -- S
+ [0x1D447] = { -0.05, 1.05, 0.7 }, -- T
+ [0x1D448] = { -0.125, 1, 0.3 }, -- U
+ [0x1D449] = { -0.125, 1, 0.3 }, -- V
+ [0x1D44A] = { -0.075, 1, 0.3 }, -- W
+ [0x1D44B] = { 0.05, 1.1, 0.35 }, -- X
+ [0x1D44C] = { -0.075, 1.1, 0.35 }, -- Y
+ [0x1D44E] = { -0.05, 1.1, 0 }, -- a
+ [0x1D44F] = { -0.05, 1.1, 0 }, -- b
+ [0x1D450] = { -0.05, 1.1, 0 }, -- c
+ [0x1D451] = { -0.05, 1.1, 0 }, -- d
+ [0x1D452] = { -0.05, 1.1, 0 }, -- e
+ [0x1D453] = { 0.45, 1.85, 0.45 }, -- f
+ [0x1D454] = { 0.05, 1.1, 0 }, -- g
+ [0x0210E] = { -0.1, 1.05, 0 }, -- h
+ [0x1D456] = { -0.2, 1.1, 0 }, -- i
+ [0x1D457] = { 0.6, 1.7, 0.45 }, -- j
+ [0x1D458] = { -0.05, 1.1, 0 }, -- k
+ [0x1D459] = { -0.15, 1.1, 0 }, -- l
+ [0x1D45A] = { -0.05, 1, 0 }, -- m
+ [0x1D45B] = { -0.1, 1, 0 }, -- n
+ [0x1D45C] = { -0.05, 1.1, 0 }, -- o
+ [0x1D45D] = { 0, 1.05, 0 }, -- p
+ [0x1D45E] = { -0.05, 1.05, 0 }, -- q
+ [0x1D45F] = { -0.1, 1.15, 0 }, -- r
+ [0x1D460] = { -0.05, 1.05, 0 }, -- s
+ [0x1D461] = { -0.15, 1.1, 0 }, -- t
+ [0x1D462] = { -0.1, 1.05, 0 }, -- u
+ [0x1D463] = { -0.1, 1.05, 0 }, -- v
+ [0x1D464] = { -0.05, 1.05, 0 }, -- w
+ [0x1D465] = { 0, 1.175, 0 }, -- x
+ [0x1D466] = { -0.05, 1.05, 0 }, -- y
+ [0x1D467] = { -0.05, 1.1, 0 }, -- z
+ [0x1D6FC] = { -0.075, 0.825, 0 }, -- \alpha
+ [0x1D6FD] = { 0, 0.85, 0 }, -- \beta
+ [0x1D6FE] = { -0.075, 0.825, 0.05 }, -- \gamma
+ [0x1D6FF] = { -0.1, 0.8, 0 }, -- \delta
+ [0x1D716] = { -0.1, 0.8, 0 }, -- \epsilon
+ [0x1D700] = { -0.1, 0.8, 0 }, -- \varepsilon
+ [0x1D701] = { -0.1, 0.8, 0 }, -- \zeta
+ [0x1D702] = { -0.1, 0.8, 0 }, -- \eta
+ [0x1D703] = { -0.1, 0.8, 0 }, -- \theta
+ [0x1D717] = { -0.075, 0.85, 0 }, -- \vartheta
+ [0x1D704] = { -0.1, 0.8, 0 }, -- \iota
+ [0x1D705] = { -0.075, 0.825, 0 }, -- \kappa
+ [0x1D718] = { -0.075, 0.825, 0 }, -- \varkappa
+ [0x1D706] = { -0.075, 0.825, 0 }, -- \lambda
+ [0x1D707] = { -0.075, 0.825, 0 }, -- \mu
+ [0x1D708] = { -0.075, 0.825, 0 }, -- \nu
+ [0x1D709] = { -0.075, 0.825, 0 }, -- \xi
+ [0x1D70A] = { -0.075, 0.825, 0 }, -- \omicron
+ [0x1D70B] = { -0.075, 0.825, 0 }, -- \pi
+ [0x1D71B] = { -0.07, 0.85, 0 }, -- \varpi
+ [0x1D70C] = { -0.075, 0.85, 0 }, -- \rho
+ [0x1D71A] = { -0.075, 0.85, 0 }, -- \varrho
+ [0x1D70E] = { -0.075, 0.85, 0 }, -- \sigma
+ [0x1D70D] = { -0.075, 0.85, 0 }, -- \varsigma
+ [0x1D70F] = { -0.08, 0.825, 0 }, -- \tau
+ [0x1D710] = { -0.08, 0.825, 0 }, -- \upsilon
+ [0x1D719] = { -0.075, 0.85, 0 }, -- \phi
+ [0x1D711] = { -0.075, 0.85, 0 }, -- \varphi
+ [0x1D712] = { -0.075, 0.85, 0 }, -- \chi
+ [0x1D713] = { -0.075, 0.85, 0 }, -- \psi
+ [0x1D714] = { -0.05, 0.875, 0 }, -- \omega
},
},
{
- tweak = "fixprimes",
- -- smaller = true,
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.8,
+ smaller = true,
+ factor = 0.9,
},
{
tweak = "addscripts",
diff --git a/tex/context/fonts/mkiv/cambria-math.lfg b/tex/context/fonts/mkiv/cambria-math.lfg
index 6db382c45..d641784d7 100644
--- a/tex/context/fonts/mkiv/cambria-math.lfg
+++ b/tex/context/fonts/mkiv/cambria-math.lfg
@@ -73,12 +73,14 @@ return {
{
tweak = "dimensions",
list = {
- -- nothing yet
+ [0x1D43D] = { 0.25, 1.15, 0.2}, -- J
},
},
{
- tweak = "fixprimes",
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.7,
+ smaller = true,
+ factor = 0.8,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/dejavu-math.lfg b/tex/context/fonts/mkiv/dejavu-math.lfg
index a610b8596..f214f0bb5 100644
--- a/tex/context/fonts/mkiv/dejavu-math.lfg
+++ b/tex/context/fonts/mkiv/dejavu-math.lfg
@@ -14,12 +14,16 @@ return {
name = "dejavu-math",
version = "1.00",
comment = "Goodies that complement dejavu.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.106",
+ },
+ {
tweak = "dimensions",
list = {
-- [0x1D449] = { 0, .8, .2 },
@@ -28,9 +32,10 @@ return {
}
},
{
- tweak = "fixprimes",
- -- smaller = true,
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.9,
+ smaller = true,
+ factor = 0.8,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/ebgaramond.lfg b/tex/context/fonts/mkiv/ebgaramond.lfg
index 763df652d..0e91141d4 100644
--- a/tex/context/fonts/mkiv/ebgaramond.lfg
+++ b/tex/context/fonts/mkiv/ebgaramond.lfg
@@ -8,47 +8,60 @@ return {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 2019-08-16",
+ },
+ {
tweak = "dimensions",
list = {
-- offset width italic
[0x00393] = { 0.05, 1.05, 0.075 }, -- \Gamma
+ -- [0x003A6] = { 0.05, 1.05, 0 }, -- \Phi difficult!
[0x003A8] = { 0.05, 1.05, 0.075 }, -- \Psi
[0x02113] = { 0, 1, 0.075 }, -- \ell
[0x1D436] = { 0, 1, 0.05 }, -- C
- [0x1D43D] = { 0.3, 1.3, 0.2 }, -- J
+ [0x1D43D] = { 0.3, 1.4, 0.1 }, -- J
[0x1D44B] = { 0, 1, 0.05 }, -- X
+ [0x1D450] = { 0, 1.1, 0 }, -- c
[0x1D451] = { 0, 1, 0.05 }, -- d
- [0x1D453] = { 0.15, 1.05, 0.2 }, -- f
- [0x1D454] = { 0.2, 1.05, 0.25 }, -- g
- [0x1D457] = { 0.2, 1.05, 0.25 }, -- j
+ [0x1D452] = { 0, 1.1, 0.05 }, -- e
+ [0x1D453] = { 0.15, 1.15, 0.1 }, -- f
+ [0x1D454] = { 0.1, 1.2, 0.1 }, -- g
+ [0xF0276] = { 0, 1.1, 0 }, -- h
+ [0x1D457] = { 0.2, 1.25, 0.05 }, -- j
[0x1D459] = { 0, 1, 0.05 }, -- l
[0x1D45D] = { 0.15, 1.15, 0 }, -- p
+ [0x1D45E] = { 0, 1.05, 0 }, -- q
+ [0x1D45F] = { 0, 1.05, 0 }, -- r
[0x1D461] = { 0, 1, 0.1 }, -- t
[0x1D465] = { 0.05, 1.1, 0.05 }, -- x
- [0x1D466] = { 0.2, 1.15, 0 }, -- y
- [0x1D6FD] = { 0.1, 1.1, 0.05 }, -- \beta
- [0x1D6FE] = { 0.05, 1.05, 0.05 }, -- \gamma
+ [0x1D466] = { 0.2, 1.2, 0 }, -- y
+ [0x1D6FD] = { 0.05, 1.1, 0.05 }, -- \beta
+ [0x1D6FE] = { 0, 1.05, 0 }, -- \gamma
[0x1D6FF] = { 0, 1, 0.1 }, -- \delta
+ [0x1D716] = { 0, 1.1, 0 }, -- \epsilon
+ [0x1D700] = { 0, 1.1, 0 }, -- \varepsilon
[0x1D701] = { 0, 1, 0.15 }, -- \zeta
[0x1D703] = { 0, 1, 0.1 }, -- \theta
[0x1D705] = { 0, 1, 0.1 }, -- \kappa
- [0x1D706] = { 0.1, 1.2, 0 }, -- \lambda
- [0x1D707] = { 0.1, 1.1, 0.1 }, -- \mu
- [0x1D708] = { 0, 1, 0.1 }, -- \nu
+ [0x1D706] = { 0.05, 1.1, 0 }, -- \lambda
+ [0x1D707] = { 0.05, 1.05, 0 }, -- \mu
+ [0x1D708] = { 0, 1.1, 0 }, -- \nu
[0x1D709] = { 0, 1.1, 0 }, -- \xi
- [0x1D70B] = { 0.05, 1.05, 0.1 }, -- \pi
+ [0x1D70B] = { 0, 1.05, 0 }, -- \pi
[0x1D70C] = { 0.2, 1.2, 0 }, -- \rho
- [0x1D70E] = { 0.05, 1.1, 0.1 }, -- \sigma
+ [0x1D70E] = { 0, 1, 0.1 }, -- \sigma
[0x1D70F] = { 0.05, 1.05, 0.1 }, -- \tau
- [0x1D712] = { 0.2, 1.25, 0.05 }, -- \chi
- [0x1D713] = { 0.1, 1.05, 0.1 }, -- \psi
+ [0x1D712] = { 0.15, 1.2, 0.05 }, -- \chi
+ [0x1D713] = { 0.05, 1.05, 0.05 }, -- \psi
},
},
{
tweak = "fixprimes",
- scale = 0.7,
+ scale = 0.75,
smaller = true,
- factor = 0.75,
+ factor = 0.8,
+ fake = 0.75,
},
{
tweak = "checkspacing",
@@ -69,50 +82,6 @@ return {
largeoperators = { feature = 'ss11', value = 1, comment = "Larger operators" },
},
},
- designsizes = {
- ["EBGaramond-Italic"] = {
- ["8pt"] = "file:EBGaramond08-Italic",
- ["9pt"] = "file:EBGaramond08-Italic",
- ["9.5pt"] = "file:EBGaramond08-Italic",
- ["10pt"] = "file:EBGaramond12-Italic",
- ["11pt"] = "file:EBGaramond12-Italic",
- ["12pt"] = "file:EBGaramond12-Italic",
- default = "file:EBGaramond12-Italic",
- },
- ["EBGaramond-Regular"] = {
- ["8pt"] = "file:EBGaramond08-Regular",
- ["9pt"] = "file:EBGaramond08-Regular",
- ["9.5pt"] = "file:EBGaramond08-Regular",
- ["10pt"] = "file:EBGaramond12-Regular",
- ["11pt"] = "file:EBGaramond12-Regular",
- ["12pt"] = "file:EBGaramond12-Regular",
- default = "file:EBGaramond12-Regular",
- },
- ["EBGaramond-SC"] = {
- ["8pt"] = "file:EBGaramond08-SC",
- ["9pt"] = "file:EBGaramond08-SC",
- ["9.5pt"] = "file:EBGaramond08-SC",
- ["10pt"] = "file:EBGaramond12-SC",
- ["11pt"] = "file:EBGaramond12-SC",
- ["12pt"] = "file:EBGaramond12-SC",
- default = "file:EBGaramond12-SC",
- },
- ["EBGaramond-Bold"] = {
- default = "file:EBGaramond12-Bold",
- },
- ["EBGaramond-AllSC"] = {
- default = "file:EBGaramond12-AllSC",
- },
- ["EBGaramond-Initials"] = {
- default = "file:EBGaramondInitials",
- },
- ["EBGaramond-InitialsF1"] = {
- default = "file:EBGaramondInitialsF1",
- },
- ["EBGaramond-InitialsF2"] = {
- default = "file:EBGaramondInitialsF2",
- },
- }
}
diff --git a/tex/context/fonts/mkiv/kpfonts-math.lfg b/tex/context/fonts/mkiv/kpfonts-math.lfg
index f47cb6bb5..bdeadd25a 100644
--- a/tex/context/fonts/mkiv/kpfonts-math.lfg
+++ b/tex/context/fonts/mkiv/kpfonts-math.lfg
@@ -2,12 +2,16 @@ return {
name = "kpfonts-math",
version = "1.00",
comment = "KP Fonts.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 0.40",
+ },
+ {
tweak = "dimensions",
list = {
-- whatever
diff --git a/tex/context/fonts/mkiv/libertinus-math.lfg b/tex/context/fonts/mkiv/libertinus-math.lfg
index b1ac2f894..908d78eea 100644
--- a/tex/context/fonts/mkiv/libertinus-math.lfg
+++ b/tex/context/fonts/mkiv/libertinus-math.lfg
@@ -8,21 +8,26 @@ return {
name = "libertinus-math",
version = "1.00",
comment = "Goodies that complement libertinus.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 6.8",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
},
},
{
- tweak = "fixprimes",
- -- smaller = true,
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.8,
+ smaller = true,
+ factor = 0.85,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/lm.lfg b/tex/context/fonts/mkiv/lm.lfg
index fe6f73659..243087850 100644
--- a/tex/context/fonts/mkiv/lm.lfg
+++ b/tex/context/fonts/mkiv/lm.lfg
@@ -52,12 +52,16 @@ return {
name = "latin modern",
version = "1.00",
comment = "Goodies that complement latin modern.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.958",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
@@ -67,7 +71,8 @@ return {
tweak = "fixprimes",
factor = 0.85,
smaller = true,
- -- scale = 0.70,
+ scale = 0.70,
+ fake = 0.6,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/lucida-opentype-math.lfg b/tex/context/fonts/mkiv/lucida-opentype-math.lfg
index 1c126c92c..3f5c8cff7 100644
--- a/tex/context/fonts/mkiv/lucida-opentype-math.lfg
+++ b/tex/context/fonts/mkiv/lucida-opentype-math.lfg
@@ -40,12 +40,16 @@ return {
name = "lucida-opentype-math",
version = "1.00",
comment = "Goodies that complement lucida opentype.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.802",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
@@ -53,10 +57,10 @@ return {
},
{
tweak = "fixprimes",
- factor = 0.85, -- accent base height
+ factor = 0.8, -- accent base height
smaller = true, -- replace multiples
scale = 0.75, -- glyph scale
- fake = 0.75, -- replace multiples with this width proportion
+ fake = 0.65, -- replace multiples with this width proportion
-- keep = true, -- keep the text size prime (aka minute)
},
{
diff --git a/tex/context/fonts/mkiv/minion-math.lfg b/tex/context/fonts/mkiv/minion-math.lfg
index 064c567f4..e4f42e18b 100644
--- a/tex/context/fonts/mkiv/minion-math.lfg
+++ b/tex/context/fonts/mkiv/minion-math.lfg
@@ -14,7 +14,7 @@ return {
name = "minion-math",
version = "1.00",
comment = "Goodies that complement minion math.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
designsizes = {
["Minion-Math"] = {
@@ -32,6 +32,10 @@ return {
mathematics = {
tweaks = {
aftercopying = {
+ -- {
+ -- tweak = "version",
+ -- expected = "unknown",
+ -- },
{
tweak = "dimensions",
-- smaller = true,
diff --git a/tex/context/fonts/mkiv/pagella-math.lfg b/tex/context/fonts/mkiv/pagella-math.lfg
index 7e0bb0b9d..3ea465cf9 100644
--- a/tex/context/fonts/mkiv/pagella-math.lfg
+++ b/tex/context/fonts/mkiv/pagella-math.lfg
@@ -31,15 +31,15 @@ return {
name = "pagella-math",
version = "1.00",
comment = "Goodies that complement pagella.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
- -- {
- -- tweak = "version",
- -- expected = "Version 1.632",
- -- },
+ {
+ tweak = "version",
+ expected = "Version 1.632",
+ },
-- {
-- comment = "example"
-- tweak = "action",
@@ -54,15 +54,20 @@ return {
-- },
{
tweak = "dimensions",
- list = {
- [0x1D453] = { .40, 1.60, .5 }, -- offset width italic
- },
+ list = { -- offset width italic
+ [0x1D453] = { 0.50, 1.70, 0.6 }, -- f
+ [0x1D454] = { 0.10, 1.15, 0.2 }, -- g
+ [0x1D70F] = { -.10, 1, 0 }, -- \tau
+ [0x1D712] = { 0.1, 1.2, 0.1 }, -- \chi
+ [0x1D713] = { -0.05, 0.95, 0.1 }, -- \psi
+ },
},
{
tweak = "fixprimes",
factor = 0.85,
smaller = true,
scale = 0.70,
+ fake = 0.65,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/schola-math.lfg b/tex/context/fonts/mkiv/schola-math.lfg
index 9e1a014dd..f2e6d2e9b 100644
--- a/tex/context/fonts/mkiv/schola-math.lfg
+++ b/tex/context/fonts/mkiv/schola-math.lfg
@@ -14,21 +14,26 @@ return {
name = "schola-math",
version = "1.00",
comment = "Goodies that complement schola.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.533",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
}
},
{
- tweak = "fixprimes",
- -- smaller = true,
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.8,
+ smaller = true,
+ factor = 0.9,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/stix-two-math.lfg b/tex/context/fonts/mkiv/stix-two-math.lfg
index 06427281c..4c382babb 100644
--- a/tex/context/fonts/mkiv/stix-two-math.lfg
+++ b/tex/context/fonts/mkiv/stix-two-math.lfg
@@ -2,7 +2,7 @@ return {
name = "stix-two-math",
version = "1.00",
comment = "Goodies that complement stix two opentype.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
alternates = {
@@ -23,15 +23,20 @@ return {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 2.12 b168",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
},
},
{
- tweak = "fixprimes",
- -- smaller = true,
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.7,
+ smaller = true,
+ factor = 0.85,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/termes-math.lfg b/tex/context/fonts/mkiv/termes-math.lfg
index 41d535ada..1de85483c 100644
--- a/tex/context/fonts/mkiv/termes-math.lfg
+++ b/tex/context/fonts/mkiv/termes-math.lfg
@@ -22,21 +22,26 @@ return {
name = "termes-math",
version = "1.00",
comment = "Goodies that complement termes.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.543",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
},
},
{
- tweak = "fixprimes",
- -- smaller = true,
- factor = 0.85,
+ tweak = "fixprimes",
+ scale = 0.7,
+ smaller = true,
+ factor = 0.9,
},
{
tweak = "checkspacing",
diff --git a/tex/context/fonts/mkiv/type-imp-dejavu.mkiv b/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
index 092e1fde6..fdd1ec5e3 100644
--- a/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
@@ -46,8 +46,8 @@
\starttypescript [\s!math][dejavu] [\s!name]
\loadfontgoodies[dejavu-math]
- \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=dejavu-math]
- \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,dejavu-math-bold,mathextra},\s!goodies=dejavu-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=dejavu-math,\s!fallbacks=\s!Math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,dejavu-math-bold,mathextra},\s!goodies=dejavu-math,\s!fallbacks=\s!Math]
\stoptypescript
\starttypescript[dejavu]
diff --git a/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv b/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
index 8fdeee83b..05ac2f1fa 100644
--- a/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
@@ -29,8 +29,9 @@
\definefontfeature
[eb-garamond-normal]
[default]
- [mode=node,ccmp=yes,calt=yes,
- liga=yes,dlig=yes,hlig=yes,
+ [mode=node,ccmp=yes,
+ calt=yes,liga=yes,
+ dlig=yes,hlig=yes,
kern=yes,mark=yes,mkmk=yes,
onum=yes,pnum=yes,salt=yes,
script=latn]
@@ -40,22 +41,20 @@
[eb-garamond-normal]
[smcp=yes,c2sc=yes]
-\starttypescriptcollection[ebgaramond]
-
- % \starttypescript [serif] [ebgaramond]
- % \loadfontgoodies[ebgaramond]
- % \setups[font:fallback:serif]
- % \definefontsynonym [Serif] [file:ebgaramond-regular] [features=eb-garamond-normal]
- % \definefontsynonym [SerifItalic] [file:ebgaramond-italic] [features=eb-garamond-normal]
- % \definefontsynonym [SerifBold] [file:ebgaramond-regular] [features=eb-garamond-normal] % there is no bold
- % \definefontsynonym [SerifCaps] [Serif] [features=eb-garamond-smallcaps]
- % \stoptypescript
+% \loadtypescriptfile[ebgaramond]
+%
+% \definefontfeature
+% [eb-garamond-normal]
+% [eb-garamond-normal]
+% [dlig=no,hlig=no]
+%
+% \setupbodyfont[ebgaramond]
+%
+% \starttext
+% No weird over the top ligatures.
+% \stoptext
- % \starttypescript[ebgaramond]
- % \definetypeface [ebgaramond] [rm] [serif] [ebgaramond] [default] [designsize=auto]
- % \definetypeface [ebgaramond] [tt] [mono] [dejavu] [default] [rscale=0.8] % rather arbitrary but seldom mixed anyway
- % \definetypeface [ebgaramond] [mm] [math] [bonum] [default] [rscale=0.8] % rather arbitrary but seldom mixed anyway
- % \stoptypescript
+\starttypescriptcollection[ebgaramond]
\starttypescript [\s!serif] [ebgaramond]
\setups[font:fallback:serif]
diff --git a/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv b/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
index 6ffb38161..0ee8a3a65 100644
--- a/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
@@ -79,8 +79,8 @@
\starttypescript [\s!math][newcomputermodern-book] [\s!name]
% \loadfontgoodies[newcomputermodern-math] ,\s!goodies=newcomputermodern-math
- \definefontsynonym[\s!MathRoman] [\s!file:newcmmath-book][\s!features={\s!math\mathsizesuffix,newcm-mathextra,mathextra}]
- \definefontsynonym[\s!MathRomanBold][\s!file:newcmmath-book][\s!features={\s!math\mathsizesuffix,newcm-mathextra,newcomputermodern-math-bold,mathextra}]
+ \definefontsynonym[\s!MathRoman] [\s!file:newcmmath-book][\s!features={\s!math\mathsizesuffix,newcm-mathextra,mathextra},\s!goodies=lm]
+ \definefontsynonym[\s!MathRomanBold][\s!file:newcmmath-book][\s!features={\s!math\mathsizesuffix,newcm-mathextra,newcomputermodern-math-bold,mathextra},\s!goodies=lm]
\stoptypescript
\starttypescript[newcomputermodern,newcomputermodern-book]
diff --git a/tex/context/fonts/mkiv/xits-math.lfg b/tex/context/fonts/mkiv/xits-math.lfg
index f1f88705e..d85e4b1b6 100644
--- a/tex/context/fonts/mkiv/xits-math.lfg
+++ b/tex/context/fonts/mkiv/xits-math.lfg
@@ -2,7 +2,7 @@ return {
name = "xits-math",
version = "1.00",
comment = "Goodies that complement xits (by Khaled Hosny).",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
filenames = {
["xitsmath-regular.otf"] = {
@@ -18,6 +18,10 @@ return {
tweaks = {
aftercopying = {
{
+ tweak = "version",
+ expected = "Version 1.302",
+ },
+ {
tweak = "dimensions",
list = {
-- nothing yet
diff --git a/tex/context/modules/mkxl/s-braille-basic.mkxl b/tex/context/modules/mkxl/s-braille-basic.mkxl
new file mode 100644
index 000000000..0a10f6ad6
--- /dev/null
+++ b/tex/context/modules/mkxl/s-braille-basic.mkxl
@@ -0,0 +1,178 @@
+%D \module
+%D [ file=s-braille-basic,
+%D version=2021.11.17,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Playground for spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This style is triggered by the 2021 blog by Murray Sargent (from Microsoft)
+%D about nemeth sequences:
+%D
+%D \starttyping
+%D https://devblogs.microsoft.com/math-in-office/unicode-math-braille-sequences/
+%D \stoptyping
+%D
+%D I ran into it when Mikael Sundqvist and I were working on an upgrade of the lfg
+%D (goodie) files for math. Being sort of monospaces a braille font is a good
+%D candidate for exploring al these math spacing parameters.
+%D
+%D More settings might show up and existing ones might change so it's mostly an
+%D example style. Fell free to contribute. We use color so that we can see what
+%D we're dealing with. Braille looks kind of interesting anyway although it was
+%D never meant to be seen but felt.
+%D
+%D Musical timestamp: Nothing but the truth (PT with GH drum cam 5.1 bluray) ...
+%D ... I'm always amazed of the power of music and wonder how that evolved with
+%D and in humans.
+
+\startmodule[braille-basic]
+
+\unprotect
+
+\definemeasure [braille:margin] [\paperheight/15]
+
+\definelayout
+ [braille]
+ [\c!topspace=\measure{braille:margin},
+ \c!bottomspace=\measure{braille:margin},
+ \c!backspace=\measure{braille:margin},
+ \c!header=\measure{braille:margin},
+ \c!footer=\zeropoint,
+ \c!width=\v!middle,
+ \c!height=\v!middle]
+
+\setuplayout
+ [braille]
+
+\enableexperiments[fonts.compact]
+
+\setupbodyfont
+ [braille,11pt]
+
+\setupwhitespace
+ [\v!big]
+
+\setuphead
+ [\v!chapter]
+ [\c!style=\bfd,
+ \c!color=darkblue,
+ \c!headerstate=\v!high,
+ \c!interaction=\v!all]
+
+\setuphead
+ [\v!section]
+ [\c!style=\bfc,
+ \c!color=darkblue]
+
+\setuphead
+ [\v!subsection]
+ [\c!style=\bfb]
+
+\setuphead
+ [\v!subsubsection]
+ [\c!style=\bfa,
+ \c!after=]
+
+\setuplist
+ [\c!interaction=\v!all]
+
+\setupdocument
+ [\c!before=\directsetup{document:titlepage}]
+
+\setupalign
+ [\v!verytolerant,\v!flushleft]
+
+\setupitemgroup[\v!itemize][1][\c!width=4em,\c!style=\s!bold,\c!color=darkred]
+\setupitemgroup[\v!itemize][2][\c!width=5em,\c!style=\s!bold,\c!color=darkred]
+\setupitemgroup[\v!itemize][3][\c!width=6em,\c!style=\s!bold,\c!color=darkred]
+
+\setuptyping
+ [\c!color=darkyellow]
+
+\setuptype
+ [\c!color=darkyellow]
+
+\setupformulas
+ [\c!color=darkgreen]
+
+\protect
+
+\stopmodule
+
+\continueifinputfile{s-braille-basic.mkxl}
+
+\starttext
+
+\showframe \showglyphs \showboxes \dontcomplain
+
+\startchapter[title=The first]
+
+\startsection[title=Tufte] {\tf \samplefile{tufte}\par} \stopsection
+\startsection[title=Ward] {\bf \samplefile{ward} \par} \stopsection
+\startsection[title=Davis] {\bi \samplefile{davis}\par} \stopsection
+
+\startsection[title=Four]
+
+ Here is some simple inline math: \formula {$x_2 = 10 \neq \alpha$} and here is
+ some (quick and dirty) display:
+
+ \startformula
+ y = \sqrt[2]{\frac{1+x^2}{2x+x^2+4}}
+ \stopformula
+
+ but there are rules for that. So we need to look into those so that:
+
+ \startformula
+ y = \frac{1+x^2}{2x+x^2+4}
+ \stopformula
+
+ and
+
+ \startformula
+ y = \overline{2x+x^2+4} + \underline{2x+x^2+4}
+ % y = \overbar{2x+x^2+4}
+ \stopformula
+
+ come out right.
+
+\stopsection
+
+\stopchapter
+
+\startchapter[title=The second]
+
+The monospaced font has no braille but actually all is kind of monospace apart
+from spacing:
+
+\starttyping
+Let's show some {\bf fancy tex} code,
+assuming that mono has gotten the
+braille glyphs.
+\stoptyping
+
+And some itemize:
+
+\startitemize[n]
+ \startitem first one \stopitem
+ \startitem second one \stopitem
+\stopitemize
+
+\startitemize
+ \startitem first one \stopitem
+ \startitem second one \stopitem
+\stopitemize
+
+\startitemize[a]
+ \startitem first one \stopitem
+ \startitem second one \stopitem
+\stopitemize
+
+\stopchapter
+
+\stoptext
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 35634ce96..6709446e6 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 2021-11-18 16:33
+-- merge date : 2021-11-22 22:27
do -- begin closure to overcome local limits and interference