From a0e79ce94348b934dcefc38133cd8fed08bd38e3 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 27 Apr 2023 17:10:58 +0200 Subject: 2023-04-27 16:57:00 --- .../context/lexers/data/scite-context-data-tex.lua | 2 +- .../context/scite-context-data-tex.properties | 100 +++++++------- source/luametatex/source/lua/lmttokenlib.c | 20 +++ source/luametatex/source/luametatex.h | 6 +- source/luametatex/source/tex/texcommands.c | 2 +- source/luametatex/source/tex/texscanning.c | 3 +- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-en.mkii | 3 + tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/mult-prm.lua | 2 +- tex/context/base/mkiv/status-files.pdf | Bin 24649 -> 24650 bytes tex/context/base/mkiv/status-lua.pdf | Bin 271246 -> 271361 bytes tex/context/base/mkxl/cldf-pos.lmt | 152 ++++++++++++++------- tex/context/base/mkxl/cldf-pos.mkxl | 20 ++- tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 2 +- tex/context/base/mkxl/luat-cnf.lmt | 2 +- tex/context/base/mkxl/toks-ini.lmt | 2 + tex/context/base/mkxl/toks-scn.lmt | 2 + tex/context/interface/mkii/keys-en.xml | 3 + tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 23 files changed, 214 insertions(+), 119 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 6d7a79360..4ed203784 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", "tracingnesting", "unexpanded", "unless", "widowpenalties" }, - ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelimited", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbasedepth", "Umathaccentbaseheight", "Umathaccentbottomovershoot", "Umathaccentbottomshiftdown", "Umathaccentextendmargin", "Umathaccentsuperscriptdrop", "Umathaccentsuperscriptpercent", "Umathaccenttopovershoot", "Umathaccenttopshiftup", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbottomaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharslot", "Umathclass", "Umathcode", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterextendmargin", "Umathdelimiterovervariant", "Umathdelimiterpercent", "Umathdelimitershortfall", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathdict", "Umathdictdef", "Umathdiscretionary", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathflattenedaccentbasedepth", "Umathflattenedaccentbaseheight", "Umathflattenedaccentbottomshiftdown", "Umathflattenedaccenttopshiftup", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpresubshiftdistance", "Umathpresupshiftdistance", "Umathprimeraise", "Umathprimeraisecomposed", "Umathprimeshiftdrop", "Umathprimeshiftup", "Umathprimespaceafter", "Umathprimevariant", "Umathprimewidth", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalextensibleafter", "Umathradicalextensiblebefore", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathsource", "Umathspaceafterscript", "Umathspacebeforescript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdistance", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdistance", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uprimescript", "Uradical", "Uright", "Uroot", "Urooted", "Ushiftedsubprescript", "Ushiftedsubscript", "Ushiftedsuperprescript", "Ushiftedsuperscript", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustartmathmode", "Ustopdisplaymath", "Ustopmath", "Ustopmathmode", "Ustretched", "Ustretchedwithdelims", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "aligncontent", "alignmark", "alignmentcellsource", "alignmentwrapsource", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmainstyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "allunsplitstyles", "amcode", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxadapt", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxfreeze", "boxgeometry", "boxorientation", "boxrepack", "boxshift", "boxsource", "boxtarget", "boxtotal", "boxvadjust", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "cdef", "cdefcsname", "cfcode", "clearmarks", "constant", "copymathatomrule", "copymathparent", "copymathspacing", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csactive", "csstring", "currentloopiterator", "currentloopnesting", "currentmarks", "dbox", "defcsname", "deferred", "detokenized", "dimensiondef", "dimexpression", "directlua", "dpack", "dsplit", "edefcsname", "efcode", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "eufactor", "everybeforepar", "everymathatom", "everytab", "exceptionpenalty", "expand", "expandactive", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandedloop", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "float", "floatdef", "flushmarks", "fontcharba", "fontcharta", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedname", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyph", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphxscaled", "glyphyoffset", "glyphyscale", "glyphyscaled", "gtoksapp", "gtokspre", "hccode", "hjcode", "hmcode", "holdingmigrations", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsfloat", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchkdimension", "ifchknum", "ifchknumber", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "iffloat", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ifzerodim", "ifzerofloat", "ifzeronum", "ignorearguments", "ignoredepthcriterium", "ignorepars", "immediate", "immutable", "indexofcharacter", "indexofregister", "inherited", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastatomclass", "lastboundary", "lastchkdim", "lastchknum", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastpageextra", "lastparcontext", "lastrightclass", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letmathatomrule", "letmathparent", "letmathspacing", "letprotected", "lettonothing", "linebreakcriterium", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledloop", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathaccent", "mathatom", "mathatomglue", "mathatomskip", "mathbackwardpenalties", "mathbeginclass", "mathbinary", "mathcheckfencesmode", "mathclose", "mathdictgroup", "mathdictproperties", "mathdirection", "mathdisplaymode", "mathdisplayskipmode", "mathdoublescriptmode", "mathendclass", "matheqnogapstep", "mathfenced", "mathfontcontrol", "mathforwardpenalties", "mathfraction", "mathghost", "mathgluemode", "mathgroupingmode", "mathinner", "mathleftclass", "mathlimitsmode", "mathmainstyle", "mathmiddle", "mathnolimitsmode", "mathopen", "mathoperator", "mathordinary", "mathoverline", "mathpenaltiesmode", "mathpunctuation", "mathradical", "mathrelation", "mathrightclass", "mathrulesfam", "mathrulesmode", "mathscale", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mathunderline", "meaningasis", "meaningful", "meaningfull", "meaningles", "meaningless", "mugluespecdef", "mutable", "noaligned", "noatomruling", "noboundary", "nohrule", "norelax", "normalizelinemode", "normalizeparmode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "overshoot", "pageboundary", "pageextragoal", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "pettymuskip", "posexpr", "positdef", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitvmode", "resetmathspacing", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledfontdimen", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledmathstyle", "scaledslantperpoint", "scantextokens", "semiexpand", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathdisplaypostpenalty", "setmathdisplayprepenalty", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "srule", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tinymuskip", "todimension", "tohexadecimal", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tosparsedimension", "tosparsescaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracinglevels", "tracinglists", "tracingmarks", "tracingmath", "tracingnodes", "tracingpenalties", "tsplit", "uleaders", "undent", "unexpandedloop", "unhpack", "unletfrozen", "unletprotected", "untraced", "unvpack", "variablefam", "virtualhrule", "virtualvrule", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" }, + ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Uchar", "Udelcode", "Udelimited", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbasedepth", "Umathaccentbaseheight", "Umathaccentbottomovershoot", "Umathaccentbottomshiftdown", "Umathaccentextendmargin", "Umathaccentsuperscriptdrop", "Umathaccentsuperscriptpercent", "Umathaccenttopovershoot", "Umathaccenttopshiftup", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbottomaccentvariant", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharslot", "Umathclass", "Umathcode", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterextendmargin", "Umathdelimiterovervariant", "Umathdelimiterpercent", "Umathdelimitershortfall", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathdict", "Umathdictdef", "Umathdiscretionary", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathflattenedaccentbasedepth", "Umathflattenedaccentbaseheight", "Umathflattenedaccentbottomshiftdown", "Umathflattenedaccenttopshiftup", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpresubshiftdistance", "Umathpresupshiftdistance", "Umathprimeraise", "Umathprimeraisecomposed", "Umathprimeshiftdrop", "Umathprimeshiftup", "Umathprimespaceafter", "Umathprimevariant", "Umathprimewidth", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalextensibleafter", "Umathradicalextensiblebefore", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathsource", "Umathspaceafterscript", "Umathspacebeforescript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptvariant", "Umathsubshiftdistance", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptvariant", "Umathsupshiftdistance", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Unosubprescript", "Unosubscript", "Unosuperprescript", "Unosuperscript", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uprimescript", "Uradical", "Uright", "Uroot", "Urooted", "Ushiftedsubprescript", "Ushiftedsubscript", "Ushiftedsuperprescript", "Ushiftedsuperscript", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustartmathmode", "Ustopdisplaymath", "Ustopmath", "Ustopmathmode", "Ustretched", "Ustretchedwithdelims", "Ustyle", "Usubprescript", "Usubscript", "Usuperprescript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "afterassigned", "aftergrouped", "aliased", "aligncontent", "alignmark", "alignmentcellsource", "alignmentwrapsource", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmainstyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "allunsplitstyles", "amcode", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxadapt", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxfreeze", "boxgeometry", "boxorientation", "boxrepack", "boxshift", "boxsource", "boxtarget", "boxtotal", "boxvadjust", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "cdef", "cdefcsname", "cfcode", "clearmarks", "constant", "copymathatomrule", "copymathparent", "copymathspacing", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csactive", "csstring", "currentloopiterator", "currentloopnesting", "currentmarks", "dbox", "defcsname", "deferred", "detokenized", "dimensiondef", "dimexpression", "directlua", "dpack", "dsplit", "edefcsname", "efcode", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "eufactor", "everybeforepar", "everymathatom", "everytab", "exceptionpenalty", "expand", "expandactive", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandedloop", "expandtoken", "explicitdiscretionary", "explicithyphenpenalty", "firstvalidlanguage", "float", "floatdef", "floatexpr", "flushmarks", "fontcharba", "fontcharta", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedname", "fontspecifiedsize", "fontspecscale", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyph", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphstatefield", "glyphtextscale", "glyphxoffset", "glyphxscale", "glyphxscaled", "glyphyoffset", "glyphyscale", "glyphyscaled", "gtoksapp", "gtokspre", "hccode", "hjcode", "hmcode", "holdingmigrations", "hpack", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsfloat", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchkdimension", "ifchknum", "ifchknumber", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "iffloat", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifincsname", "ifinsert", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ifzerodim", "ifzerofloat", "ifzeronum", "ignorearguments", "ignoredepthcriterium", "ignorepars", "immediate", "immutable", "indexofcharacter", "indexofregister", "inherited", "initcatcodetable", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastatomclass", "lastboundary", "lastchkdim", "lastchknum", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastpageextra", "lastparcontext", "lastrightclass", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letmathatomrule", "letmathparent", "letmathspacing", "letprotected", "lettonothing", "linebreakcriterium", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledloop", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localrightbox", "localrightboxbox", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathaccent", "mathatom", "mathatomglue", "mathatomskip", "mathbackwardpenalties", "mathbeginclass", "mathbinary", "mathcheckfencesmode", "mathclose", "mathdictgroup", "mathdictproperties", "mathdirection", "mathdisplaymode", "mathdisplayskipmode", "mathdoublescriptmode", "mathendclass", "matheqnogapstep", "mathfenced", "mathfontcontrol", "mathforwardpenalties", "mathfraction", "mathghost", "mathgluemode", "mathgroupingmode", "mathinner", "mathleftclass", "mathlimitsmode", "mathmainstyle", "mathmiddle", "mathnolimitsmode", "mathopen", "mathoperator", "mathordinary", "mathoverline", "mathpenaltiesmode", "mathpunctuation", "mathradical", "mathrelation", "mathrightclass", "mathrulesfam", "mathrulesmode", "mathscale", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mathunderline", "meaningasis", "meaningful", "meaningfull", "meaningles", "meaningless", "mugluespecdef", "mutable", "noaligned", "noatomruling", "noboundary", "nohrule", "norelax", "normalizelinemode", "normalizeparmode", "nospaces", "novrule", "numericscale", "numexpression", "orelse", "orphanpenalties", "orphanpenalty", "orunless", "outputbox", "overloaded", "overloadmode", "overshoot", "pageboundary", "pageextragoal", "pagevsize", "parametercount", "parametermark", "parattribute", "pardirection", "permanent", "pettymuskip", "positdef", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitvmode", "resetmathspacing", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledfontdimen", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledmathstyle", "scaledslantperpoint", "scantextokens", "semiexpand", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathdisplaypostpenalty", "setmathdisplayprepenalty", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "snapshotpar", "srule", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tinymuskip", "todimension", "tohexadecimal", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tosparsedimension", "tosparsescaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfonts", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracinglevels", "tracinglists", "tracingmarks", "tracingmath", "tracingnodes", "tracingpenalties", "tsplit", "uleaders", "undent", "unexpandedloop", "unhpack", "unletfrozen", "unletprotected", "untraced", "unvpack", "variablefam", "virtualhrule", "virtualvrule", "vpack", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" }, ["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" }, ["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfomitinfodict", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" }, ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "advanceby", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "divideby", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathcode", "mathop", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "multiplyby", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillleftskip", "parfillskip", "parindent", "parinitleftskip", "parinitrightskip", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "unboundary", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" }, diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties index 395f6f8e7..c1d632957 100644 --- a/context/data/scite/context/scite-context-data-tex.properties +++ b/context/data/scite/context/scite-context-data-tex.properties @@ -74,56 +74,56 @@ etoks etoksapp etokspre eufactor everybeforepar \ everymathatom everytab exceptionpenalty expand expandactive \ expandafterpars expandafterspaces expandcstoken expanded expandedafter \ expandedloop expandtoken explicitdiscretionary explicithyphenpenalty firstvalidlanguage \ -float floatdef flushmarks fontcharba fontcharta \ -fontid fontmathcontrol fontspecdef fontspecid fontspecifiedname \ -fontspecifiedsize fontspecscale fontspecxscale fontspecyscale fonttextcontrol \ -formatname frozen futurecsname futuredef futureexpand \ -futureexpandis futureexpandisap gdefcsname gleaders glet \ -gletcsname glettonothing gluespecdef glyph glyphdatafield \ -glyphoptions glyphscale glyphscriptfield glyphscriptscale glyphscriptscriptscale \ -glyphstatefield glyphtextscale glyphxoffset glyphxscale glyphxscaled \ -glyphyoffset glyphyscale glyphyscaled gtoksapp gtokspre \ -hccode hjcode hmcode holdingmigrations hpack \ -hyphenationmin hyphenationmode ifabsdim ifabsfloat ifabsnum \ -ifarguments ifboolean ifchkdim ifchkdimension ifchknum \ -ifchknumber ifcmpdim ifcmpnum ifcondition ifcstok \ -ifdimexpression ifdimval ifempty ifflags iffloat \ -ifhaschar ifhastok ifhastoks ifhasxtoks ifincsname \ -ifinsert ifmathparameter ifmathstyle ifnumexpression ifnumval \ -ifparameter ifparameters ifrelax iftok ifzerodim \ -ifzerofloat ifzeronum ignorearguments ignoredepthcriterium ignorepars \ -immediate immutable indexofcharacter indexofregister inherited \ -initcatcodetable insertbox insertcopy insertdepth insertdistance \ -insertheight insertheights insertlimit insertmaxdepth insertmode \ -insertmultiplier insertpenalty insertprogress insertstorage insertstoring \ -insertunbox insertuncopy insertwidth instance integerdef \ -lastarguments lastatomclass lastboundary lastchkdim lastchknum \ -lastleftclass lastloopiterator lastnamedcs lastnodesubtype lastpageextra \ -lastparcontext lastrightclass leftmarginkern letcharcode letcsname \ -letfrozen letmathatomrule letmathparent letmathspacing letprotected \ -lettonothing linebreakcriterium linedirection localbrokenpenalty localcontrol \ -localcontrolled localcontrolledloop localinterlinepenalty localleftbox localleftboxbox \ -localmiddlebox localmiddleboxbox localrightbox localrightboxbox lpcode \ -luabytecode luabytecodecall luacopyinputnodes luadef luaescapestring \ -luafunction luafunctioncall luatexbanner luatexrevision luatexversion \ -mathaccent mathatom mathatomglue mathatomskip mathbackwardpenalties \ -mathbeginclass mathbinary mathcheckfencesmode mathclose mathdictgroup \ -mathdictproperties mathdirection mathdisplaymode mathdisplayskipmode mathdoublescriptmode \ -mathendclass matheqnogapstep mathfenced mathfontcontrol mathforwardpenalties \ -mathfraction mathghost mathgluemode mathgroupingmode mathinner \ -mathleftclass mathlimitsmode mathmainstyle mathmiddle mathnolimitsmode \ -mathopen mathoperator mathordinary mathoverline mathpenaltiesmode \ -mathpunctuation mathradical mathrelation mathrightclass mathrulesfam \ -mathrulesmode mathscale mathscriptsmode mathslackmode mathspacingmode \ -mathstackstyle mathstyle mathstylefontid mathsurroundmode mathsurroundskip \ -maththreshold mathunderline meaningasis meaningful meaningfull \ -meaningles meaningless mugluespecdef mutable noaligned \ -noatomruling noboundary nohrule norelax normalizelinemode \ -normalizeparmode nospaces novrule numericscale numexpression \ -orelse orphanpenalties orphanpenalty orunless outputbox \ -overloaded overloadmode overshoot pageboundary pageextragoal \ -pagevsize parametercount parametermark parattribute pardirection \ -permanent pettymuskip posexpr positdef postexhyphenchar \ +float floatdef floatexpr flushmarks fontcharba \ +fontcharta fontid fontmathcontrol fontspecdef fontspecid \ +fontspecifiedname fontspecifiedsize fontspecscale fontspecxscale fontspecyscale \ +fonttextcontrol formatname frozen futurecsname futuredef \ +futureexpand futureexpandis futureexpandisap gdefcsname gleaders \ +glet gletcsname glettonothing gluespecdef glyph \ +glyphdatafield glyphoptions glyphscale glyphscriptfield glyphscriptscale \ +glyphscriptscriptscale glyphstatefield glyphtextscale glyphxoffset glyphxscale \ +glyphxscaled glyphyoffset glyphyscale glyphyscaled gtoksapp \ +gtokspre hccode hjcode hmcode holdingmigrations \ +hpack hyphenationmin hyphenationmode ifabsdim ifabsfloat \ +ifabsnum ifarguments ifboolean ifchkdim ifchkdimension \ +ifchknum ifchknumber ifcmpdim ifcmpnum ifcondition \ +ifcstok ifdimexpression ifdimval ifempty ifflags \ +iffloat ifhaschar ifhastok ifhastoks ifhasxtoks \ +ifincsname ifinsert ifmathparameter ifmathstyle ifnumexpression \ +ifnumval ifparameter ifparameters ifrelax iftok \ +ifzerodim ifzerofloat ifzeronum ignorearguments ignoredepthcriterium \ +ignorepars immediate immutable indexofcharacter indexofregister \ +inherited initcatcodetable insertbox insertcopy insertdepth \ +insertdistance insertheight insertheights insertlimit insertmaxdepth \ +insertmode insertmultiplier insertpenalty insertprogress insertstorage \ +insertstoring insertunbox insertuncopy insertwidth instance \ +integerdef lastarguments lastatomclass lastboundary lastchkdim \ +lastchknum lastleftclass lastloopiterator lastnamedcs lastnodesubtype \ +lastpageextra lastparcontext lastrightclass leftmarginkern letcharcode \ +letcsname letfrozen letmathatomrule letmathparent letmathspacing \ +letprotected lettonothing linebreakcriterium linedirection localbrokenpenalty \ +localcontrol localcontrolled localcontrolledloop localinterlinepenalty localleftbox \ +localleftboxbox localmiddlebox localmiddleboxbox localrightbox localrightboxbox \ +lpcode luabytecode luabytecodecall luacopyinputnodes luadef \ +luaescapestring luafunction luafunctioncall luatexbanner luatexrevision \ +luatexversion mathaccent mathatom mathatomglue mathatomskip \ +mathbackwardpenalties mathbeginclass mathbinary mathcheckfencesmode mathclose \ +mathdictgroup mathdictproperties mathdirection mathdisplaymode mathdisplayskipmode \ +mathdoublescriptmode mathendclass matheqnogapstep mathfenced mathfontcontrol \ +mathforwardpenalties mathfraction mathghost mathgluemode mathgroupingmode \ +mathinner mathleftclass mathlimitsmode mathmainstyle mathmiddle \ +mathnolimitsmode mathopen mathoperator mathordinary mathoverline \ +mathpenaltiesmode mathpunctuation mathradical mathrelation mathrightclass \ +mathrulesfam mathrulesmode mathscale mathscriptsmode mathslackmode \ +mathspacingmode mathstackstyle mathstyle mathstylefontid mathsurroundmode \ +mathsurroundskip maththreshold mathunderline meaningasis meaningful \ +meaningfull meaningles meaningless mugluespecdef mutable \ +noaligned noatomruling noboundary nohrule norelax \ +normalizelinemode normalizeparmode nospaces novrule numericscale \ +numexpression orelse orphanpenalties orphanpenalty orunless \ +outputbox overloaded overloadmode overshoot pageboundary \ +pageextragoal pagevsize parametercount parametermark parattribute \ +pardirection permanent pettymuskip positdef postexhyphenchar \ posthyphenchar postinlinepenalty prebinoppenalty predisplaygapfactor preexhyphenchar \ prehyphenchar preinlinepenalty prerelpenalty protrudechars protrusionboundary \ pxdimen quitloop quitvmode resetmathspacing retokenized \ diff --git a/source/luametatex/source/lua/lmttokenlib.c b/source/luametatex/source/lua/lmttokenlib.c index 1b50f18d2..c8f7f9039 100644 --- a/source/luametatex/source/lua/lmttokenlib.c +++ b/source/luametatex/source/lua/lmttokenlib.c @@ -1291,6 +1291,21 @@ static int tokenlib_scan_dimen(lua_State *L) } } +static int tokenlib_scan_posit(lua_State *L) +{ + saved_tex_scanner texstate = tokenlib_aux_save_tex_scanner(); + int eq = lua_toboolean(L, 1); + int fl = lua_toboolean(L, 1); + halfword val = tex_scan_posit(eq); + if (fl) { + lua_pushnumber(L, tex_posit_to_double(val)); + } else { + lua_pushinteger(L, val); + } + tokenlib_aux_unsave_tex_scanner(texstate); + return 1; +} + static int tokenlib_gobble_dimen(lua_State *L) { saved_tex_scanner texstate = tokenlib_aux_save_tex_scanner(); @@ -3597,6 +3612,7 @@ static const struct luaL_Reg tokenlib_function_list[] = { { "scanluacardinal", tokenlib_scan_luacardinal }, { "scanscale", tokenlib_scan_scale }, { "scandimen", tokenlib_scan_dimen }, + { "scanposit", tokenlib_scan_posit }, { "scanskip", tokenlib_scan_skip }, { "scanglue", tokenlib_scan_glue }, { "scantoks", tokenlib_scan_toks }, @@ -3867,6 +3883,10 @@ int lmt_function_call_by_category(int slot, int property, halfword *value) break; } case lua_value_float_code: + { + *value = tex_double_to_posit(lua_tonumber(L, -1)).v; + break; + } case lua_value_string_code: { category = lua_value_none_code; diff --git a/source/luametatex/source/luametatex.h b/source/luametatex/source/luametatex.h index eac028cb2..8d5aa4e9a 100644 --- a/source/luametatex/source/luametatex.h +++ b/source/luametatex/source/luametatex.h @@ -90,9 +90,9 @@ # include "tex/textypes.h" # define luametatex_version 210 -# define luametatex_revision 8 -# define luametatex_version_string "2.10.08" -# define luametatex_development_id 20230426 +# define luametatex_revision 9 +# define luametatex_version_string "2.10.09" +# define luametatex_development_id 20230427 # define luametatex_name_camelcase "LuaMetaTeX" # define luametatex_name_lowercase "luametatex" diff --git a/source/luametatex/source/tex/texcommands.c b/source/luametatex/source/tex/texcommands.c index 73f509a96..91e6d75b8 100644 --- a/source/luametatex/source/tex/texcommands.c +++ b/source/luametatex/source/tex/texcommands.c @@ -621,7 +621,7 @@ void tex_initialize_commands(void) tex_primitive(etex_command, "mutoglue", some_item_cmd, mu_to_glue_code, 0); tex_primitive(etex_command, "gluetomu", some_item_cmd, glue_to_mu_code, 0); tex_primitive(etex_command, "numexpr", some_item_cmd, numexpr_code, 0); - tex_primitive(luatex_command, "posexpr", some_item_cmd, posexpr_code, 0); + tex_primitive(luatex_command, "floatexpr", some_item_cmd, posexpr_code, 0); tex_primitive(etex_command, "dimexpr", some_item_cmd, dimexpr_code, 0); tex_primitive(etex_command, "glueexpr", some_item_cmd, glueexpr_code, 0); tex_primitive(etex_command, "muexpr", some_item_cmd, muexpr_code, 0); diff --git a/source/luametatex/source/tex/texscanning.c b/source/luametatex/source/tex/texscanning.c index 5b60c15c0..8ae7090cf 100644 --- a/source/luametatex/source/tex/texscanning.c +++ b/source/luametatex/source/tex/texscanning.c @@ -354,8 +354,7 @@ static void tex_aux_set_cur_val_by_lua_value_cmd(halfword index, halfword proper cur_val_level = int_val_level; break; case lua_value_float_code: - /*tex We assume a proper print back. */ - cur_val_level = tok_val_level; + cur_val_level = posit_val_level; break; case lua_value_string_code: cur_val_level = no_val_level; diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index e41443a84..1b418833b 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2023.04.27 09:34} +\newcontextversion{2023.04.27 16:54} %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 74541280a..5f1fbaa04 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2023.04.27 09:34} +\edef\contextversion{2023.04.27 16:54} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-en.mkii b/tex/context/base/mkii/mult-en.mkii index e6c9225e0..ec4f634f8 100644 --- a/tex/context/base/mkii/mult-en.mkii +++ b/tex/context/base/mkii/mult-en.mkii @@ -450,6 +450,7 @@ \setinterfacevariable{printable}{printable} \setinterfacevariable{process}{process} \setinterfacevariable{product}{product} +\setinterfacevariable{profile}{profile} \setinterfacevariable{program}{program} \setinterfacevariable{project}{project} \setinterfacevariable{protected}{protected} @@ -831,6 +832,7 @@ \setinterfaceconstant{exitoffset}{exitoffset} \setinterfaceconstant{expansion}{expansion} \setinterfaceconstant{export}{export} +\setinterfaceconstant{extradata}{extradata} \setinterfaceconstant{extras}{extras} \setinterfaceconstant{factor}{factor} \setinterfaceconstant{fallback}{fallback} @@ -954,6 +956,7 @@ \setinterfaceconstant{lastpage}{lastpage} \setinterfaceconstant{lastpagesep}{lastpagesep} \setinterfaceconstant{lastpubsep}{lastpubsep} +\setinterfaceconstant{lasttextseparator}{lasttextseparator} \setinterfaceconstant{layout}{layout} \setinterfaceconstant{left}{left} \setinterfaceconstant{leftclass}{leftclass} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 1342dc41a..cbe448fc7 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2023.04.27 09:34} +\newcontextversion{2023.04.27 16:54} %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 71f8d3f74..7c3567153 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -49,7 +49,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2023.04.27 09:34} +\edef\contextversion{2023.04.27 16:54} %D Kind of special: diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua index 239e97a04..37779ec57 100644 --- a/tex/context/base/mkiv/mult-prm.lua +++ b/tex/context/base/mkiv/mult-prm.lua @@ -354,6 +354,7 @@ return { "firstvalidlanguage", "float", "floatdef", + "floatexpr", "flushmarks", "fontcharba", "fontcharta", @@ -599,7 +600,6 @@ return { "pardirection", "permanent", "pettymuskip", - "posexpr", "positdef", "postexhyphenchar", "posthyphenchar", diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index cae5837bf..dddda9577 100644 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index a47b73f9f..087e77bf3 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkxl/cldf-pos.lmt b/tex/context/base/mkxl/cldf-pos.lmt index 40c88c716..9378b01be 100644 --- a/tex/context/base/mkxl/cldf-pos.lmt +++ b/tex/context/base/mkxl/cldf-pos.lmt @@ -21,13 +21,15 @@ local posittonumber = posit.tonumber local values = tokens.values local boolean_code = values.boolean +local float_code = values.float -do +local scanners = tokens.scanners +local scanposit = scanners.posit +local scanfloat = scanners.float +local scaninteger = scanners.integer +local scancsname = scanners.csname - local scanners = tokens.scanners - local scanfloat = scanners.float - local scaninteger = scanners.integer - local scancsname = scanners.csname +do -- these are only for testing and might go to a module eventually local codes = tex.codes @@ -78,60 +80,108 @@ do end, } -end + do -do - - local p_number = lpeg.patterns.number - local p = lpeg.Cs( - lpeg.Cc("local new = new ; return ") - * ( - lpeg.C(p_number) / function(s) - return "new(" .. s .. ")" - end - + lpeg.P(1) - )^0 - ) + local p_number = lpeg.patterns.number + local p = lpeg.Cs( + lpeg.Cc("local new = new ; return ") + * ( + lpeg.C(p_number) / function(s) + return "new(" .. s .. ")" + end + + lpeg.P(1) + )^0 + ) - local t = setmetatableindex({ new = posit.new }, posit) + local t = setmetatableindex({ new = posit.new }, posit) - local function calculate(s) - local new = lpegmatch(p,s) - new = load(new,nil,nil,t) - if new then - new = new() + local function calculate(s) + local new = lpegmatch(p,s) + new = load(new,nil,nil,t) if new then - return new + new = new() + if new then + return new + end end + return old end - return old - end - implement { - name = "positunum", - public = true, - arguments = "string", - actions = function(s) - local r = calculate(s) - local t = type(r) - if t == "boolean" then - context(tostring(r)) - elseif t == "string" then - context(r) - else - context("%N",posittonumber(r)) + implement { + name = "positunum", + public = true, + arguments = "string", + actions = function(s) + local r = calculate(s) + local t = type(r) + if t == "boolean" then + context(tostring(r)) + elseif t == "string" then + context(r) + else + context("%N",posittonumber(r)) + end end - end - } + } + + implement { + name = "ifpositunum", + public = true, + usage = "condition", + arguments = "string", + actions = function(s) + return boolean_code, calculate(s) and true or false + end, + } - implement { - name = "ifpositunum", - public = true, - usage = "condition", - arguments = "string", - actions = function(s) - return boolean_code, calculate(s) and true or false - end, - } + end + +end + +do + + local xsin = xmath.sin local xasin = xmath.asin local xsinh = xmath.sinh local xasinh = xmath.asinh + local xcos = xmath.cos local xacos = xmath.acos local xcosh = xmath.cosh local xacosh = xmath.acosh + local xtan = xmath.tan local xatan = xmath.atan local xtanh = xmath.tanh local xatanh = xmath.atanh + + local xsqrt = xmath.sqrt + local xlog = xmath.log + local xexp = xmath.exp + local xpow = xmath.pow + local xceil = xmath.ceil + local xfloor = xmath.floor + local xround = xmath.round + local xabs = xmath.fabs + local xmod = xmath.fmod + local xrem = xmath.remainder + local xrad = xmath.rad + local xdeg = xmath.deg + local xatan2 = xmath.atan2 + + implement { name = "pfsin", public = true, usage = "value", actions = function() return float_code, xsin (scanposit(true)) end } + implement { name = "pfcos", public = true, usage = "value", actions = function() return float_code, xcos (scanposit(true)) end } + implement { name = "pftan", public = true, usage = "value", actions = function() return float_code, xtan (scanposit(true)) end } + implement { name = "pfasin", public = true, usage = "value", actions = function() return float_code, xasin (scanposit(true)) end } + implement { name = "pfacos", public = true, usage = "value", actions = function() return float_code, xacos (scanposit(true)) end } + implement { name = "pfatan", public = true, usage = "value", actions = function() return float_code, xatan (scanposit(true)) end } + implement { name = "pfsinh", public = true, usage = "value", actions = function() return float_code, xsinh (scanposit(true)) end } + implement { name = "pfcosh", public = true, usage = "value", actions = function() return float_code, xcosh (scanposit(true)) end } + implement { name = "pftanh", public = true, usage = "value", actions = function() return float_code, xtanh (scanposit(true)) end } + implement { name = "pfasinh", public = true, usage = "value", actions = function() return float_code, xasinh(scanposit(true)) end } + implement { name = "pfacosh", public = true, usage = "value", actions = function() return float_code, xacosh(scanposit(true)) end } + implement { name = "pfatanh", public = true, usage = "value", actions = function() return float_code, xatanh(scanposit(true)) end } + implement { name = "pfsqrt", public = true, usage = "value", actions = function() return float_code, xsqrt (scanposit(true)) end } + implement { name = "pflog", public = true, usage = "value", actions = function() return float_code, xlog (scanposit(true)) end } + implement { name = "pfexp", public = true, usage = "value", actions = function() return float_code, xexp (scanposit(true)) end } + implement { name = "pfceil", public = true, usage = "value", actions = function() return float_code, xceil (scanposit(true)) end } + implement { name = "pffloor", public = true, usage = "value", actions = function() return float_code, xfloor(scanposit(true)) end } + implement { name = "pfround", public = true, usage = "value", actions = function() return float_code, xround(scanposit(true)) end } + implement { name = "pfabs", public = true, usage = "value", actions = function() return float_code, xabs (scanposit(true)) end } + implement { name = "pfrad", public = true, usage = "value", actions = function() return float_code, xrad (scanposit(true)) end } + implement { name = "pfdeg", public = true, usage = "value", actions = function() return float_code, xdeg (scanposit(true)) end } + implement { name = "pfatantwo", public = true, usage = "value", actions = function() return float_code, xatan2(scanposit(true),scanposit(true)) end } + implement { name = "pfpow", public = true, usage = "value", actions = function() return float_code, xpow (scanposit(true),scanposit(true)) end } + implement { name = "pfmod", public = true, usage = "value", actions = function() return float_code, xmod (scanposit(true),scanposit(true)) end } + implement { name = "pfrem", public = true, usage = "value", actions = function() return float_code, xrem (scanposit(true),scanposit(true)) end } end diff --git a/tex/context/base/mkxl/cldf-pos.mkxl b/tex/context/base/mkxl/cldf-pos.mkxl index e8868eece..fb419d070 100644 --- a/tex/context/base/mkxl/cldf-pos.mkxl +++ b/tex/context/base/mkxl/cldf-pos.mkxl @@ -13,8 +13,24 @@ \writestatus{loading}{ConTeXt Posit Numbers / Initialization} -% \newcount\trialtypesettingstate % gets aliased at the Lua end - \registerctxluafile{cldf-pos}{autosuffix} +\newposit\pfpi \pfpi 3.1415926535897932384626433832795028841971 +\newposit\pftwopi \pftwopi \floatexpr \pfpi * 2 \relax + +% \newfloat\fooA +% +% \scratchdimen=123.456pt\relax [\type{dim:} \the\scratchdimen==123.456pt]\par +% \fooA =123.456\relax [\type{pos:} \the\fooA ==123.456] \par +% \fooA =\scratchdimen\relax [\type{pos:} \the\fooA ==123.456] \par +% \scratchdimen=\fooA\relax [\type{dim:} \the\scratchdimen==123.456pt]\par +% \scratchdimen\dimexpr\fooA+10pt\relax[\type{dim:} \the\scratchdimen==133.456pt]\par +% +% \fooA\pfsin \pfpi [\the\fooA]\par +% \fooA\pfcos \pfpi [\the\fooA]\par +% \fooA\pfsqrt\pfpi [\the\fooA]\par +% \fooA\pfexp \pfpi [\the\fooA]\par +% \fooA\pflog \pfpi [\the\fooA]\par +% \fooA\pfpow \pfpi 2 [\the\fooA]\par + \endinput diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl index ebc5e13fc..23dc6bbef 100644 --- a/tex/context/base/mkxl/cont-new.mkxl +++ b/tex/context/base/mkxl/cont-new.mkxl @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2023.04.27 09:34} +\newcontextversion{2023.04.27 16:54} %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 1e286f461..9ee1d3803 100644 --- a/tex/context/base/mkxl/context.mkxl +++ b/tex/context/base/mkxl/context.mkxl @@ -29,7 +29,7 @@ %D {YYYY.MM.DD HH:MM} format. \immutable\edef\contextformat {\jobname} -\immutable\edef\contextversion{2023.04.27 09:34} +\immutable\edef\contextversion{2023.04.27 16:54} %overloadmode 1 % check frozen / warning %overloadmode 2 % check frozen / error diff --git a/tex/context/base/mkxl/luat-cnf.lmt b/tex/context/base/mkxl/luat-cnf.lmt index ea9eb0d89..585941173 100644 --- a/tex/context/base/mkxl/luat-cnf.lmt +++ b/tex/context/base/mkxl/luat-cnf.lmt @@ -60,7 +60,7 @@ function texconfig.init() -- not in luametatex "unicode", "utf", "gzip", "zip", "zlib", -- in luametatex - "xzip", "xmath", "xcomplex", "xdecimal", "basexx", + "xzip", "xmath", "xcomplex", "xdecimal", "basexx", "posit", -- maybe some day in luametatex "lz4", "lzo", -- always (mime can go) diff --git a/tex/context/base/mkxl/toks-ini.lmt b/tex/context/base/mkxl/toks-ini.lmt index e4bf7626f..d45e3ae1c 100644 --- a/tex/context/base/mkxl/toks-ini.lmt +++ b/tex/context/base/mkxl/toks-ini.lmt @@ -48,6 +48,7 @@ local scanvalue = token.scanvalue local scanchar = token.scanchar local scancsname = token.scancsname local scannextchar = token.scannextchar +local scanposit = token.scanposit local scanreal = token.scanreal local scanfloat = token.scanfloat local scanluanumber = token.scanluanumber @@ -160,6 +161,7 @@ tokens.scanners = { -- these expand gluespec = scanskip, integer = scaninteger, cardinal = scancardinal, + posit = scanposit, real = scanreal, float = scanfloat, luanumber = scanluanumber, diff --git a/tex/context/base/mkxl/toks-scn.lmt b/tex/context/base/mkxl/toks-scn.lmt index c08e8415a..855bca6ad 100644 --- a/tex/context/base/mkxl/toks-scn.lmt +++ b/tex/context/base/mkxl/toks-scn.lmt @@ -29,6 +29,7 @@ local scantoks = scanners.toks local scaninteger = scanners.integer local scancardinal = scanners.cardinal local scannumber = scanners.number +local scanfloat = scanners.float local scankeyword = scanners.keyword local scankeywordcs = scanners.keywordcs local scanword = scanners.word @@ -226,6 +227,7 @@ local shortcuts = { scaninteger = scaninteger, scancardinal = scancardinal, scannumber = scannumber, + scanfloat = scanfloat, scantable = scantable, -- not directly useable scankeyword = scankeyword, scankeywordcs = scankeywordcs, diff --git a/tex/context/interface/mkii/keys-en.xml b/tex/context/interface/mkii/keys-en.xml index fae9ee691..80624e8dc 100644 --- a/tex/context/interface/mkii/keys-en.xml +++ b/tex/context/interface/mkii/keys-en.xml @@ -453,6 +453,7 @@ + @@ -837,6 +838,7 @@ + @@ -960,6 +962,7 @@ + diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 5b8498cd4..917ab1b94 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 2023-04-27 09:34 +-- merge date : 2023-04-27 16:54 do -- begin closure to overcome local limits and interference -- cgit v1.2.3