From f46fe99c7c361a66c68987b22d235fe9f793fad6 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Wed, 17 Jun 2020 19:59:19 +0200 Subject: 2020-06-17 18:59:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/context.mkxl | 2 +- tex/context/base/mkiv/driv-shp.lua | 8 +- tex/context/base/mkiv/file-ini.mkvi | 54 +++-- tex/context/base/mkiv/lxml-ini.lua | 230 +++++++++++---------- tex/context/base/mkiv/lxml-ini.mkiv | 197 +++++++++--------- tex/context/base/mkiv/lxml-tex.lua | 10 +- tex/context/base/mkiv/math-ali.mkiv | 4 +- tex/context/base/mkiv/mult-low.lua | 2 +- tex/context/base/mkiv/pack-rul.mkxl | 30 --- tex/context/base/mkiv/spac-flr.mkiv | 17 ++ tex/context/base/mkiv/status-files.pdf | Bin 0 -> 27767 bytes tex/context/base/mkiv/status-lua.pdf | Bin 0 -> 253280 bytes tex/context/base/mkiv/syst-aux.mkiv | 4 +- tex/context/base/mkiv/syst-aux.mkxl | 4 + tex/context/base/mkiv/syst-fnt.mkiv | 7 +- tex/context/base/mkiv/toks-ini.lua | 2 +- tex/context/base/mkiv/trac-vis.lua | 8 +- tex/context/base/mkiv/type-ini.mklx | 7 + tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 23 files changed, 297 insertions(+), 299 deletions(-) create mode 100644 tex/context/base/mkiv/status-files.pdf create mode 100644 tex/context/base/mkiv/status-lua.pdf (limited to 'tex') diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 7a8184ee4..3f7db0e5d 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2020.06.14 22:04} +\newcontextversion{2020.06.17 18:56} %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 8fcff83d3..595650caf 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2020.06.14 22:04} +\edef\contextversion{2020.06.17 18:56} %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 58a3ef3e4..397aed038 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2020.06.14 22:04} +\newcontextversion{2020.06.17 18:56} %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 fc883aa5e..dec0327ff 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2020.06.14 22:04} +\edef\contextversion{2020.06.17 18:56} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl index fa498190b..0ca2406ea 100644 --- a/tex/context/base/mkiv/context.mkxl +++ b/tex/context/base/mkiv/context.mkxl @@ -29,7 +29,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2020.06.14 22:04} +\edef\contextversion{2020.06.17 18:56} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/driv-shp.lua b/tex/context/base/mkiv/driv-shp.lua index e7f19aea0..569a1f8dc 100644 --- a/tex/context/base/mkiv/driv-shp.lua +++ b/tex/context/base/mkiv/driv-shp.lua @@ -547,7 +547,7 @@ local hlist_out, vlist_out do pos_r = getdirection(this_box) local boxwidth, boxheight, - boxdepth = getwhd(this_box) + boxdepth = getwhd(this_box) local cur_h = 0 local cur_v = 0 @@ -675,10 +675,10 @@ local hlist_out, vlist_out do end end elseif id == hlist_code or id == vlist_code then - local boxdir = getdirection(current) or lefttoright_code local width, height, depth = getwhd(current) local list = getlist(current) if list then + local boxdir = getdirection(current) or lefttoright_code local shift, orientation = getshift(current) if not orientation then local basepoint_h = boxdir ~= pos_r and width or 0 @@ -896,7 +896,7 @@ local hlist_out, vlist_out do local boxwidth, boxheight, - boxdepth = getwhd(this_box) + boxdepth = getwhd(this_box) local cur_h = 0 local cur_v = - boxheight @@ -997,10 +997,10 @@ local hlist_out, vlist_out do end end elseif id == hlist_code or id == vlist_code then - local boxdir = getdirection(current) or lefttoright_code local width, height, depth = getwhd(current) local list = getlist(current) if list then + local boxdir = getdirection(current) or lefttoright_code local shift, orientation = getshift(current) if not orientation then -- local basepoint_h = shift diff --git a/tex/context/base/mkiv/file-ini.mkvi b/tex/context/base/mkiv/file-ini.mkvi index 225b6b40d..5341cc07b 100644 --- a/tex/context/base/mkiv/file-ini.mkvi +++ b/tex/context/base/mkiv/file-ini.mkvi @@ -10,9 +10,8 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -%D \TEX\ operates on files, so one wouldn't wonder that there -%D is a separate module for file commands. In \CONTEXT\ files -%D are used for several purposes: +%D \TEX\ operates on files, so one wouldn't wonder that there is a separate module +%D for file commands. In \CONTEXT\ files are used for several purposes: %D %D \startitemize[packed] %D \item general textual input @@ -21,10 +20,9 @@ %D \item buffering defered textual input %D \stopitemize %D -%D When dealing with files we can load them as a whole, using -%D the \type{\input} primitive or load them on a line||by||line -%D basis, using \type{\read}. Writing is always done line by -%D line, using \type{\write}. +%D When dealing with files we can load them as a whole, using the \type {\input} +%D primitive or load them on a line||by||line basis, using \type {\read}. Writing is +%D always done line by line, using \type {\write}. \writestatus{loading}{ConTeXt File Macros / Helpers} @@ -35,9 +33,9 @@ %D \macros %D {scratchread, scratchwrite} %D -%D We define a scratch file for reading. Keep in mind that -%D the number of files is limited to~16, so use this one when -%D possible. We also define a scratch output file. +%D We define a scratch file for reading. Keep in mind that the number of files is +%D limited to~16, so use this one when possible. We also define a scratch output +%D file. In \MKIV\ and \LMTX\ we never use these file handles. \ifdefined\scratchread \else \newread \scratchread \fi \ifdefined\scratchwrite \else \newwrite\scratchwrite \fi @@ -60,12 +58,10 @@ %D \macros %D {pushendofline,popendofline} %D -%D When we are loading files in the middle of the typesetting -%D process, for instance when we load references, we have to be -%D sure that the reading process does not generate so called -%D 'spurious spaces'. This can be prevented by assigning the -%D line ending character the \CATCODE\ comment. This is -%D accomplished by +%D When we are loading files in the middle of the typesetting process, for instance +%D when we load references, we have to be sure that the reading process does not +%D generate so called 'spurious spaces'. This can be prevented by assigning the line +%D ending character the \CATCODE\ comment. This is accomplished by %D %D \starttyping %D \pushendofline @@ -114,11 +110,10 @@ %D \macros %D {input, normalinput} %D -%D Sometimes we run into troubles when \type {\input} wants to get -%D expanded, e.g. in a \type {\write} (which happens in the metafun -%D manual when we permit long MP lines). So, instead of fixing that, -%D we go for a redefinition of \type {\input}. Of course it's better -%D to use \type {\readfile} or \type {\processfile}. +%D Sometimes we run into troubles when \type {\input} wants to get expanded, e.g. in +%D a \type {\write} (which happens in the metafun manual when we permit long MP +%D lines). So, instead of fixing that, we go for a redefinition of \type {\input}. +%D Of course it's better to use \type {\readfile} or \type {\processfile}. \unexpanded\def\input{\normalinput} @@ -127,8 +122,8 @@ %D \macros %D {doifelsefile} %D -%D The next alternative only looks if a file is present. No -%D loading is done. This one obeys the standard \TEX\ lookup. +%D The next alternative only looks if a file is present. No loading is done. This +%D one obeys the standard \TEX\ lookup. %D %D \starttyping %D \doiffileelse {filename} {found} {not found} @@ -155,7 +150,7 @@ %D \doifparentfileelse{filename}{yes}{no} %D \stoptyping -\ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi +\ifdefined\outputfilename \else \def\outputfilename{\jobname} \fi \unexpanded\def\doifelseparentfile{\clf_doifelseparentfile} @@ -200,10 +195,9 @@ %D \macros %D {doonlyonce, doinputonce, doendinputonce} %D -%D Especially macropackages need only be loaded once. -%D Repetitive loading not only costs time, relocating registers -%D often leads to abortion of the processing because \TEX's -%D capacity is limited. One can prevent multiple execution and +%D Especially macropackages need only be loaded once. Repetitive loading not only +%D costs time, relocating registers often leads to abortion of the processing +%D because \TEX's capacity is limited. One can prevent multiple execution and %D loading by using one of both: %D %D \starttyping @@ -212,8 +206,8 @@ %D \doendinputonce{filename} %D \stoptyping %D -%D This command obeys the standard method for locating files. We could -%D move this function to the \LUA\ end. +%D This command obeys the standard method for locating files. We could move this +%D function to the \LUA\ end. \installsystemnamespace {fileonce} diff --git a/tex/context/base/mkiv/lxml-ini.lua b/tex/context/base/mkiv/lxml-ini.lua index 348ecbbe4..f9ba96ece 100644 --- a/tex/context/base/mkiv/lxml-ini.lua +++ b/tex/context/base/mkiv/lxml-ini.lua @@ -21,120 +21,122 @@ local implement = interfaces.implement -- lxml.id -implement { name = "lxmlid", actions = lxml.getid, arguments = "string" } - -implement { name = "xmldoif", actions = lxml.doif, arguments = "2 strings" } -implement { name = "xmldoifnot", actions = lxml.doifnot, arguments = "2 strings" } -implement { name = "xmldoifelse", actions = lxml.doifelse, arguments = "2 strings" } -implement { name = "xmldoiftext", actions = lxml.doiftext, arguments = "2 strings" } -implement { name = "xmldoifnottext", actions = lxml.doifnottext, arguments = "2 strings" } -implement { name = "xmldoifelsetext", actions = lxml.doifelsetext, arguments = "2 strings" } - -implement { name = "xmldoifempty", actions = lxml.doifempty, arguments = "2 strings" } -implement { name = "xmldoifnotempty", actions = lxml.doifnotempty, arguments = "2 strings" } -implement { name = "xmldoifelseempty", actions = lxml.doifelseempty, arguments = "2 strings" } -implement { name = "xmldoifselfempty", actions = lxml.doifempty, arguments = "string" } -- second arg is not passed (used) -implement { name = "xmldoifnotselfempty", actions = lxml.doifnotempty, arguments = "string" } -- second arg is not passed (used) -implement { name = "xmldoifelseselfempty", actions = lxml.doifelseempty, arguments = "string" } -- second arg is not passed (used) - ---------- { name = "xmlcontent", actions = lxml.content, arguments = "string" } ---------- { name = "xmlflushstripped", actions = lxml.strip, arguments = { "string", true } } - -implement { name = "xmlall", actions = lxml.all, arguments = "2 strings" } -implement { name = "xmlatt", actions = lxml.att, arguments = "2 strings" } -implement { name = "xmlattdef", actions = lxml.att, arguments = "3 strings" } -implement { name = "xmlattribute", actions = lxml.attribute, arguments = "3 strings" } -implement { name = "xmlattributedef", actions = lxml.attribute, arguments = "4 strings" } -implement { name = "xmlbadinclusions", actions = lxml.badinclusions, arguments = "string" } -implement { name = "xmlchainatt", actions = lxml.chainattribute, arguments = { "string", "'/'", "string" } } -implement { name = "xmlchainattdef", actions = lxml.chainattribute, arguments = { "string", "'/'", "string", "string" } } -implement { name = "xmlchecknamespace", actions = xml.checknamespace, arguments = { "lxmlid", "string", "string" } } -implement { name = "xmlcommand", actions = lxml.command, arguments = "3 strings" } -implement { name = "xmlconcat", actions = lxml.concat, arguments = "3 strings" } -- \detokenize{#3} -implement { name = "xmlconcatrange", actions = lxml.concatrange, arguments = { "string", "string", "string", "string", "string" } } -- \detokenize{#5} -implement { name = "xmlcontext", actions = lxml.context, arguments = "2 strings" } -implement { name = "xmlcount", actions = lxml.count, arguments = "2 strings" } -implement { name = "xmldelete", actions = lxml.delete, arguments = "2 strings" } -implement { name = "xmldirect", actions = lxml.direct, arguments = "string" } -implement { name = "xmldirectives", actions = lxml.directives.setup, arguments = "string" } -implement { name = "xmldirectivesafter", actions = lxml.directives.after, arguments = "string" } -implement { name = "xmldirectivesbefore", actions = lxml.directives.before, arguments = "string" } -implement { name = "xmldisplayverbatim", actions = lxml.displayverbatim, arguments = "string" } -implement { name = "xmlelement", actions = lxml.element, arguments = "2 strings" } -- could be integer but now we can alias -implement { name = "xmlfilter", actions = lxml.filter, arguments = "2 strings" } -implement { name = "xmlfilterlist", actions = lxml.filterlist, arguments = "2 strings" } -implement { name = "xmlfirst", actions = lxml.first, arguments = "2 strings" } -implement { name = "xmlflush", actions = lxml.flush, arguments = "string" } -implement { name = "xmlflushcontext", actions = lxml.context, arguments = "string" } -implement { name = "xmlflushlinewise", actions = lxml.flushlinewise, arguments = "string" } -implement { name = "xmlflushpure", actions = lxml.pure, arguments = "string" } -implement { name = "xmlflushspacewise", actions = lxml.flushspacewise, arguments = "string" } -implement { name = "xmlflushtext", actions = lxml.text, arguments = "string" } -implement { name = "xmlfunction", actions = lxml.applyfunction, arguments = "2 strings" } -implement { name = "xmlinclude", actions = lxml.include, arguments = { "string", "string", "string", true } } -implement { name = "xmlincludeoptions", actions = lxml.include, arguments = "4 strings" } -implement { name = "xmlinclusion", actions = lxml.inclusion, arguments = "string" } -implement { name = "xmlinclusionbase", actions = lxml.inclusion, arguments = { "string", false, true } } -implement { name = "xmlinclusions", actions = lxml.inclusions, arguments = "string" } -implement { name = "xmlindex", actions = lxml.index, arguments = "3 strings" } -- can be integer but now we can alias -implement { name = "xmlinlineverbatim", actions = lxml.inlineverbatim, arguments = "string" } -implement { name = "xmllast", actions = lxml.last, arguments = "2 strings" } -implement { name = "xmllastatt", actions = lxml.lastatt } -implement { name = "xmllastmatch", actions = lxml.lastmatch } -implement { name = "xmllastpar", actions = lxml.lastpar } -implement { name = "xmlloadfile", actions = lxml.load, arguments = "3 strings" } -implement { name = "xmlloadbuffer", actions = lxml.loadbuffer, arguments = "3 strings" } -implement { name = "xmlloaddata", actions = lxml.loaddata, arguments = "3 strings" } -implement { name = "xmlloaddirectives", actions = lxml.directives.load, arguments = "string" } -implement { name = "xmlmain", actions = lxml.main, arguments = "string" } -implement { name = "xmlmatch", actions = lxml.match, arguments = "string" } -implement { name = "xmlname", actions = lxml.name, arguments = "string" } -implement { name = "xmlnamespace", actions = lxml.namespace, arguments = "string" } -implement { name = "xmlnonspace", actions = lxml.nonspace, arguments = "2 strings" } -implement { name = "xmlpar", actions = lxml.par, arguments = "2 strings" } -implement { name = "xmlparam", actions = lxml.param, arguments = "3 strings" } -implement { name = "xmlpath", actions = lxml.path, arguments = { "string", "'/'" } } -implement { name = "xmlpopmatch", actions = lxml.popmatch } -implement { name = "xmlpos", actions = lxml.pos, arguments = "string" } -implement { name = "xmlpure", actions = lxml.pure, arguments = "2 strings" } -implement { name = "xmlpushmatch", actions = lxml.pushmatch } -implement { name = "xmlraw", actions = lxml.raw, arguments = "2 strings" } -implement { name = "xmlrawtex", actions = lxml.rawtex, arguments = "2 strings" } -implement { name = "xmlrefatt", actions = lxml.refatt, arguments = "2 strings" } -implement { name = "xmlregisterns", actions = xml.registerns, arguments = "2 strings" } -implement { name = "xmlremapname", actions = xml.remapname, arguments = { "lxmlid", "string","string","string" } } -implement { name = "xmlremapnamespace", actions = xml.renamespace, arguments = { "lxmlid", "string", "string" } } -implement { name = "xmlsave", actions = lxml.save, arguments = "2 strings" } -implement { name = "xmlsetatt", actions = lxml.setatt, arguments = "3 strings" } -implement { name = "xmlsetattribute", actions = lxml.setattribute, arguments = "4 strings" } -implement { name = "xmlsetpar", actions = lxml.setpar, arguments = "3 strings" } -implement { name = "xmlsetparam", actions = lxml.setparam, arguments = "4 strings" } -implement { name = "xmlsetsetup", actions = lxml.setsetup, arguments = "3 strings" } -implement { name = "xmlsnippet", actions = lxml.snippet, arguments = "2 strings" } -implement { name = "xmlstrip", actions = lxml.strip, arguments = "2 strings" } -implement { name = "xmlstripanywhere", actions = lxml.strip, arguments = { "string", "string", true, true } } -implement { name = "xmlstripnolines", actions = lxml.strip, arguments = { "string", "string", true } } -implement { name = "xmlstripped", actions = lxml.stripped, arguments = "2 strings" } -implement { name = "xmlstrippednolines", actions = lxml.stripped, arguments = { "string", "string", true } } -implement { name = "xmltag", actions = lxml.tag, arguments = "string" } -implement { name = "xmltext", actions = lxml.text, arguments = "2 strings" } -implement { name = "xmltobuffer", actions = lxml.tobuffer, arguments = "3 strings" } -implement { name = "xmltobuffertextonly", actions = lxml.tobuffer, arguments = { "string", "string", "string", false } } -implement { name = "xmltobufferverbose", actions = lxml.tobuffer, arguments = { "string", "string", "string", true, true } } -implement { name = "xmltofile", actions = lxml.tofile, arguments = "3 strings" } -implement { name = "xmltoparameters", actions = lxml.toparameters, arguments = "string" } -implement { name = "xmlverbatim", actions = lxml.verbatim, arguments = "string" } - -implement { name = "xmlstartraw", actions = lxml.startraw } -implement { name = "xmlstopraw", actions = lxml.stopraw } - -implement { name = "xmlprependsetup", actions = lxml.installsetup, arguments = { 1, "string", "string" } } -- 2:* -implement { name = "xmlappendsetup", actions = lxml.installsetup, arguments = { 2, "string", "string" } } -- 2:* -implement { name = "xmlbeforesetup", actions = lxml.installsetup, arguments = { 3, "string", "string", "string" } } -- 2:* -implement { name = "xmlaftersetup", actions = lxml.installsetup, arguments = { 4, "string", "string", "string" } } -- 2:* -implement { name = "xmlremovesetup", actions = lxml.removesetup, arguments = "2 strings" } -- 1:* -implement { name = "xmlflushsetups", actions = lxml.flushsetups, arguments = "3 strings" } -- 2:* -implement { name = "xmlresetsetups", actions = lxml.resetsetups, arguments = "string" } +implement { name = "lxmlid", public = true, actions = lxml.getid, arguments = "string" } + +implement { name = "xmldoif", public = true, actions = lxml.doif, arguments = "2 strings" } +implement { name = "xmldoifnot", public = true, actions = lxml.doifnot, arguments = "2 strings" } +implement { name = "xmldoifelse", public = true, actions = lxml.doifelse, arguments = "2 strings" } +implement { name = "xmldoiftext", public = true, actions = lxml.doiftext, arguments = "2 strings" } +implement { name = "xmldoifnottext", public = true, actions = lxml.doifnottext, arguments = "2 strings" } +implement { name = "xmldoifelsetext", public = true, actions = lxml.doifelsetext, arguments = "2 strings" } + +implement { name = "xmldoifempty", public = true, actions = lxml.doifempty, arguments = "2 strings" } +implement { name = "xmldoifnotempty", public = true, actions = lxml.doifnotempty, arguments = "2 strings" } +implement { name = "xmldoifelseempty", public = true, actions = lxml.doifelseempty, arguments = "2 strings" } +implement { name = "xmldoifselfempty", public = true, actions = lxml.doifempty, arguments = "string" } -- second arg is not passed (used) +implement { name = "xmldoifnotselfempty", public = true, actions = lxml.doifnotempty, arguments = "string" } -- second arg is not passed (used) +implement { name = "xmldoifelseselfempty", public = true, actions = lxml.doifelseempty, arguments = "string" } -- second arg is not passed (used) + +--------- { name = "xmlcontent", actions = lxml.content, arguments = "string" } +--------- { name = "xmlflushstripped", actions = lxml.strip, arguments = { "string", true } } + +implement { name = "xmlall", public = true, actions = lxml.all, arguments = "2 strings" } +implement { name = "xmlatt", public = true, actions = lxml.att, arguments = "2 strings" } +implement { name = "xmlattdef", public = true, actions = lxml.att, arguments = "3 strings" } +implement { name = "xmlattribute", public = true, actions = lxml.attribute, arguments = "3 strings" } +implement { name = "xmlattributedef", public = true, actions = lxml.attribute, arguments = "4 strings" } +implement { name = "xmlbadinclusions", public = true, actions = lxml.badinclusions, arguments = "string" } +implement { name = "xmlchainatt", public = true, actions = lxml.chainattribute, arguments = { "string", "'/'", "string" } } +implement { name = "xmlchainattdef", public = true, actions = lxml.chainattribute, arguments = { "string", "'/'", "string", "string" } } +implement { name = "xmlchecknamespace", public = true, actions = xml.checknamespace, arguments = { "lxmlid", "string", "string" } } +implement { name = "xmlcommand", public = true, actions = lxml.command, arguments = "3 strings" } +implement { name = "xmlconcat", actions = lxml.concat, arguments = "3 strings" } -- \detokenize{#3} +implement { name = "xmlconcatrange", actions = lxml.concatrange, arguments = "5 strings" } -- \detokenize{#5} +--------- { name = "xmlconcat", actions = lxml.concat, arguments = { "string", "string", "verbatim" } } +--------- { name = "xmlconcatrange", actions = lxml.concatrange, arguments = { "string", "string", "string", "string", "verbatim" } } +implement { name = "xmlcontext", public = true, actions = lxml.context, arguments = "2 strings" } +implement { name = "xmlcount", public = true, actions = lxml.count, arguments = "2 strings" } +implement { name = "xmldelete", public = true, actions = lxml.delete, arguments = "2 strings" } +implement { name = "xmldirect", public = true, actions = lxml.direct, arguments = "string" } +implement { name = "xmldirectives", public = true, actions = lxml.directives.setup, arguments = "string" } +implement { name = "xmldirectivesafter", public = true, actions = lxml.directives.after, arguments = "string" } +implement { name = "xmldirectivesbefore", public = true, actions = lxml.directives.before, arguments = "string" } +implement { name = "xmldisplayverbatim", public = true, actions = lxml.displayverbatim, arguments = "string" } +implement { name = "xmlelement", public = true, actions = lxml.element, arguments = "2 strings" } -- could be integer but now we can alias +implement { name = "xmlfilter", public = true, actions = lxml.filter, arguments = "2 strings" } +implement { name = "xmlfilterlist", public = true, actions = lxml.filterlist, arguments = "2 strings" } +implement { name = "xmlfirst", public = true, actions = lxml.first, arguments = "2 strings" } +implement { name = "xmlflush", public = true, actions = lxml.flush, arguments = "string" } +implement { name = "xmlflushcontext", public = true, actions = lxml.context, arguments = "string" } +implement { name = "xmlflushlinewise", public = true, actions = lxml.flushlinewise, arguments = "string" } +implement { name = "xmlflushpure", public = true, actions = lxml.pure, arguments = "string" } +implement { name = "xmlflushspacewise", public = true, actions = lxml.flushspacewise, arguments = "string" } +implement { name = "xmlflushtext", public = true, actions = lxml.text, arguments = "string" } +implement { name = "xmlfunction", public = true, actions = lxml.applyfunction, arguments = "2 strings" } +implement { name = "xmlinclude", public = true, actions = lxml.include, arguments = { "string", "string", "string", true } } +implement { name = "xmlincludeoptions", public = true, actions = lxml.include, arguments = "4 strings" } +implement { name = "xmlinclusion", public = true, actions = lxml.inclusion, arguments = "string" } +implement { name = "xmlinclusionbase", public = true, actions = lxml.inclusion, arguments = { "string", false, true } } +implement { name = "xmlinclusions", public = true, actions = lxml.inclusions, arguments = "string" } +implement { name = "xmlindex", public = true, actions = lxml.index, arguments = "3 strings" } -- can be integer but now we can alias +implement { name = "xmlinlineverbatim", public = true, actions = lxml.inlineverbatim, arguments = "string" } +implement { name = "xmllast", public = true, actions = lxml.last, arguments = "2 strings" } +implement { name = "xmllastatt", public = true, actions = lxml.lastatt } +implement { name = "xmllastmatch", public = true, actions = lxml.lastmatch } +implement { name = "xmllastpar", public = true, actions = lxml.lastpar } +implement { name = "xmlloadfile", actions = lxml.load, arguments = "3 strings" } +implement { name = "xmlloadbuffer", actions = lxml.loadbuffer, arguments = "3 strings" } +implement { name = "xmlloaddata", actions = lxml.loaddata, arguments = "3 strings" } +implement { name = "xmlloaddirectives", public = true, actions = lxml.directives.load, arguments = "string" } +implement { name = "xmlmain", public = true, actions = lxml.main, arguments = "string" } +implement { name = "xmlmatch", public = true, actions = lxml.match, arguments = "string" } +implement { name = "xmlname", public = true, actions = lxml.name, arguments = "string" } +implement { name = "xmlnamespace", public = true, actions = lxml.namespace, arguments = "string" } +implement { name = "xmlnonspace", public = true, actions = lxml.nonspace, arguments = "2 strings" } +implement { name = "xmlpar", public = true, actions = lxml.par, arguments = "2 strings" } +implement { name = "xmlparam", public = true, actions = lxml.param, arguments = "3 strings" } +implement { name = "xmlpath", public = true, actions = lxml.path, arguments = { "string", "'/'" } } +implement { name = "xmlpopmatch", public = true, actions = lxml.popmatch } +implement { name = "xmlpos", public = true, actions = lxml.pos, arguments = "string" } +implement { name = "xmlpure", public = true, actions = lxml.pure, arguments = "2 strings" } +implement { name = "xmlpushmatch", public = true, actions = lxml.pushmatch } +implement { name = "xmlraw", public = true, actions = lxml.raw, arguments = "2 strings" } +implement { name = "xmlrawtex", actions = lxml.rawtex, arguments = "2 strings" } +implement { name = "xmlrefatt", public = true, actions = lxml.refatt, arguments = "2 strings" } +implement { name = "xmlregisterns", public = true, actions = xml.registerns, arguments = "2 strings" } +implement { name = "xmlremapname", public = true, actions = xml.remapname, arguments = { "lxmlid", "string","string","string" } } +implement { name = "xmlremapnamespace", public = true, actions = xml.renamespace, arguments = { "lxmlid", "string", "string" } } +implement { name = "xmlsave", public = true, actions = lxml.save, arguments = "2 strings" } +implement { name = "xmlsetatt", public = true, actions = lxml.setatt, arguments = "3 strings" } +implement { name = "xmlsetattribute", public = true, actions = lxml.setattribute, arguments = "4 strings" } +implement { name = "xmlsetpar", public = true, actions = lxml.setpar, arguments = "3 strings" } +implement { name = "xmlsetparam", public = true, actions = lxml.setparam, arguments = "4 strings" } +implement { name = "xmlsetsetup", public = true, actions = lxml.setsetup, arguments = "3 strings" } +implement { name = "xmlsnippet", public = true, actions = lxml.snippet, arguments = "2 strings" } +implement { name = "xmlstrip", public = true, actions = lxml.strip, arguments = "2 strings" } +implement { name = "xmlstripanywhere", public = true, actions = lxml.strip, arguments = { "string", "string", true, true } } +implement { name = "xmlstripnolines", public = true, actions = lxml.strip, arguments = { "string", "string", true } } +implement { name = "xmlstripped", public = true, actions = lxml.stripped, arguments = "2 strings" } +implement { name = "xmlstrippednolines", public = true, actions = lxml.stripped, arguments = { "string", "string", true } } +implement { name = "xmltag", public = true, actions = lxml.tag, arguments = "string" } +implement { name = "xmltext", public = true, actions = lxml.text, arguments = "2 strings" } +implement { name = "xmltobuffer", public = true, actions = lxml.tobuffer, arguments = "3 strings" } +implement { name = "xmltobuffertextonly", public = true, actions = lxml.tobuffer, arguments = { "string", "string", "string", false } } +implement { name = "xmltobufferverbose", public = true, actions = lxml.tobuffer, arguments = { "string", "string", "string", true, true } } +implement { name = "xmltofile", public = true, actions = lxml.tofile, arguments = "3 strings" } +implement { name = "xmltoparameters", public = true, actions = lxml.toparameters, arguments = "string" } +implement { name = "xmlverbatim", public = true, actions = lxml.verbatim, arguments = "string" } + +implement { name = "xmlstartraw", actions = lxml.startraw } +implement { name = "xmlstopraw", actions = lxml.stopraw } + +implement { name = "xmlprependsetup", actions = lxml.installsetup, arguments = { 1, "string", "string" } } -- 2:* +implement { name = "xmlappendsetup", actions = lxml.installsetup, arguments = { 2, "string", "string" } } -- 2:* +implement { name = "xmlbeforesetup", actions = lxml.installsetup, arguments = { 3, "string", "string", "string" } } -- 2:* +implement { name = "xmlaftersetup", actions = lxml.installsetup, arguments = { 4, "string", "string", "string" } } -- 2:* +implement { name = "xmlremovesetup", actions = lxml.removesetup, arguments = "2 strings" } -- 1:* +implement { name = "xmlflushsetups", actions = lxml.flushsetups, arguments = "3 strings" } -- 2:* +implement { name = "xmlresetsetups", actions = lxml.resetsetups, arguments = "string" } implement { name = "xmlgetindex", actions = lxml.getindex, arguments = "2 strings" } implement { name = "xmlwithindex", actions = lxml.withindex, arguments = "3 strings" } diff --git a/tex/context/base/mkiv/lxml-ini.mkiv b/tex/context/base/mkiv/lxml-ini.mkiv index 09358e11c..1c7006f57 100644 --- a/tex/context/base/mkiv/lxml-ini.mkiv +++ b/tex/context/base/mkiv/lxml-ini.mkiv @@ -34,7 +34,7 @@ \def\ctxlxml #1{\ctxlua{lxml.#1}} -% for now indirect +% for now indirect .. this will change when we have updated luatex (scan_argument) \def\xmlconcat #1#2#3{\clf_xmlconcat {#1}{#2}{\detokenize{#3}}} \def\xmlconcatrange #1#2#3#4#5{\clf_xmlconcatrange{#1}{#2}{#3}{#4}{\detokenize{#5}}} @@ -49,85 +49,86 @@ % aliased -\let\xmlall \clf_xmlall -\let\xmlatt \clf_xmlatt -\let\xmlattdef \clf_xmlattdef -\let\xmlattribute \clf_xmlattribute -\let\xmlattributedef \clf_xmlattributedef -\let\xmlbadinclusions \clf_xmlbadinclusions -\let\xmlchainatt \clf_xmlchainatt -\let\xmlchainattdef \clf_xmlchainattdef -\let\xmlchecknamespace \clf_xmlchecknamespace -\let\xmlcommand \clf_xmlcommand -\let\xmlcontext \clf_xmlcontext -\let\xmlcount \clf_xmlcount -\let\xmldelete \clf_xmldelete -\let\xmldirect \clf_xmldirect % in loops, not dt but root -\let\xmldirectives \clf_xmldirectives -\let\xmldirectivesafter \clf_xmldirectivesafter -\let\xmldirectivesbefore \clf_xmldirectivesbefore -\let\xmldisplayverbatim \clf_xmldisplayverbatim -\let\xmlelement \clf_xmlelement -\let\xmlfilter \clf_xmlfilter -\let\xmlfilterlist \clf_xmlfilterlist -\let\xmlfirst \clf_xmlfirst -\let\xmlflush \clf_xmlflush -\let\xmlflushcontext \clf_xmlflushcontext -\let\xmlflushlinewise \clf_xmlflushlinewise -\let\xmlflushpure \clf_xmlflushpure -\let\xmlflushspacewise \clf_xmlflushspacewise -\let\xmlflushtext \clf_xmlflushtext -\let\xmlfunction \clf_xmlfunction -\let\xmlinclude \clf_xmlinclude -\let\xmlincludeoptions \clf_xmlincludeoptions -\let\xmlinclusion \clf_xmlinclusion -\let\xmlinclusionbase \clf_xmlinclusionbase -\let\xmlinclusions \clf_xmlinclusions -\let\xmlindex \clf_xmlindex -\let\xmlinlineverbatim \clf_xmlinlineverbatim -\let\xmllast \clf_xmllast -\let\xmllastatt \clf_xmllastatt -\let\xmllastmatch \clf_xmllastmatch -\let\xmllastpar \clf_xmllastpar -\let\xmlloaddirectives \clf_xmlloaddirectives -\let\xmlmain \clf_xmlmain -\let\xmlmatch \clf_xmlmatch -\let\xmlname \clf_xmlname -\let\xmlnamespace \clf_xmlnamespace -\let\xmlnonspace \clf_xmlnonspace -\let\xmlpar \clf_xmlpar -\let\xmlparam \clf_xmlparam -\let\xmlpath \clf_xmlpath -\let\xmlpopmatch \clf_xmlpopmatch -\let\xmlpos \clf_xmlpos -\let\xmlposition \clf_xmlindex -\let\xmlpure \clf_xmlpure -\let\xmlpushmatch \clf_xmlpushmatch -\let\xmlraw \clf_xmlraw -\let\xmlrefatt \clf_xmlrefatt -\let\xmlregisterns \clf_xmlregisterns % document -\let\xmlremapname \clf_xmlremapname % element -\let\xmlremapnamespace \clf_xmlremapnamespace % document -\let\xmlsave \clf_xmlsave -\let\xmlsetatt \clf_xmlsetatt -\let\xmlsetattribute \clf_xmlsetattribute -\let\xmlsetpar \clf_xmlsetpar -\let\xmlsetparam \clf_xmlsetparam -\let\xmlsetsetup \clf_xmlsetsetup -\let\xmlsnippet \clf_xmlsnippet -\let\xmlstrip \clf_xmlstrip -\let\xmlstripanywhere \clf_xmlstripanywhere -\let\xmlstripnolines \clf_xmlstripnolines -\let\xmlstripped \clf_xmlstripped -\let\xmlstrippednolines \clf_xmlstrippednolines -\let\xmltag \clf_xmltag -\let\xmltext \clf_xmltext -\let\xmltobuffer \clf_xmltobuffer % id pattern name -\let\xmltobuffertextonly \clf_xmltobuffertextonly % id pattern name -\let\xmltobufferverbose \clf_xmltobufferverbose % id pattern name -\let\xmltofile \clf_xmltofile % id pattern filename -\let\xmltoparameters \clf_xmltoparameters -\let\xmlverbatim \clf_xmlverbatim +%let\xmlall \clf_xmlall +%let\xmlatt \clf_xmlatt +%let\xmlattdef \clf_xmlattdef +%let\xmlattribute \clf_xmlattribute +%let\xmlattributedef \clf_xmlattributedef +%let\xmlbadinclusions \clf_xmlbadinclusions +%let\xmlchainatt \clf_xmlchainatt +%let\xmlchainattdef \clf_xmlchainattdef +%let\xmlchecknamespace \clf_xmlchecknamespace +%let\xmlcommand \clf_xmlcommand +%let\xmlcontext \clf_xmlcontext +%let\xmlcount \clf_xmlcount +%let\xmldelete \clf_xmldelete +%let\xmldirect \clf_xmldirect % in loops, not dt but root +%let\xmldirectives \clf_xmldirectives +%let\xmldirectivesafter \clf_xmldirectivesafter +%let\xmldirectivesbefore \clf_xmldirectivesbefore +%let\xmldisplayverbatim \clf_xmldisplayverbatim +%let\xmlelement \clf_xmlelement +%let\xmlfilter \clf_xmlfilter +%let\xmlfilterlist \clf_xmlfilterlist +%let\xmlfirst \clf_xmlfirst +%let\xmlflush \clf_xmlflush +%let\xmlflushcontext \clf_xmlflushcontext +%let\xmlflushlinewise \clf_xmlflushlinewise +%let\xmlflushpure \clf_xmlflushpure +%let\xmlflushspacewise \clf_xmlflushspacewise +%let\xmlflushtext \clf_xmlflushtext +%let\xmlfunction \clf_xmlfunction +%let\xmlinclude \clf_xmlinclude +%let\xmlincludeoptions \clf_xmlincludeoptions +%let\xmlinclusion \clf_xmlinclusion +%let\xmlinclusionbase \clf_xmlinclusionbase +%let\xmlinclusions \clf_xmlinclusions +%let\xmlindex \clf_xmlindex +%let\xmlinlineverbatim \clf_xmlinlineverbatim +%let\xmllast \clf_xmllast +%let\xmllastatt \clf_xmllastatt +%let\xmllastmatch \clf_xmllastmatch +%let\xmllastpar \clf_xmllastpar +%let\xmlloaddirectives \clf_xmlloaddirectives +%let\xmlmain \clf_xmlmain +%let\xmlmatch \clf_xmlmatch +%let\xmlname \clf_xmlname +%let\xmlnamespace \clf_xmlnamespace +%let\xmlnonspace \clf_xmlnonspace +%let\xmlpar \clf_xmlpar +%let\xmlparam \clf_xmlparam +%let\xmlpath \clf_xmlpath +%let\xmlpopmatch \clf_xmlpopmatch +%let\xmlpos \clf_xmlpos +%let\xmlpure \clf_xmlpure +%let\xmlpushmatch \clf_xmlpushmatch +%let\xmlraw \clf_xmlraw +%let\xmlrefatt \clf_xmlrefatt +%let\xmlregisterns \clf_xmlregisterns % document +%let\xmlremapname \clf_xmlremapname % element +%let\xmlremapnamespace \clf_xmlremapnamespace % document +%let\xmlsave \clf_xmlsave +%let\xmlsetatt \clf_xmlsetatt +%let\xmlsetattribute \clf_xmlsetattribute +%let\xmlsetpar \clf_xmlsetpar +%let\xmlsetparam \clf_xmlsetparam +%let\xmlsetsetup \clf_xmlsetsetup +%let\xmlsnippet \clf_xmlsnippet +%let\xmlstrip \clf_xmlstrip +%let\xmlstripanywhere \clf_xmlstripanywhere +%let\xmlstripnolines \clf_xmlstripnolines +%let\xmlstripped \clf_xmlstripped +%let\xmlstrippednolines \clf_xmlstrippednolines +%let\xmltag \clf_xmltag +%let\xmltext \clf_xmltext +%let\xmltobuffer \clf_xmltobuffer % id pattern name +%let\xmltobuffertextonly \clf_xmltobuffertextonly % id pattern name +%let\xmltobufferverbose \clf_xmltobufferverbose % id pattern name +%let\xmltofile \clf_xmltofile % id pattern filename +%let\xmltoparameters \clf_xmltoparameters +%let\xmlverbatim \clf_xmlverbatim + +\let\xmlposition \xmlindex \unexpanded\def\xmlinfo#1{\hbox{\ttxx[\clf_xmlname{#1}]}} \unexpanded\def\xmlshow#1{\startpacked\ttx\xmlverbatim{#1}\stoppacked} @@ -135,7 +136,7 @@ % the next one is handy for mode runs because it enforces a consistent % #1 indexing (needed when using \xmltext{main:123}{...} like calls -\let\xmladdindex \clf_xmladdindex +%let\xmladdindex \clf_xmladdindex % we need to pass the last argument as function, so @@ -185,23 +186,23 @@ % these are expandable! todo: \xmldoifelseattribute -\let\xmldoif \clf_xmldoif -\let\xmldoifnot \clf_xmldoifnot -\let\xmldoifelse \clf_xmldoifelse -\let\xmldoiftext \clf_xmldoiftext -\let\xmldoifnottext \clf_xmldoifnottext -\let\xmldoifelsetext \clf_xmldoifelsetext - -\let\xmldoifatt \clf_xmldoifatt -\let\xmldoifnotatt \clf_xmldoifnotatt -\let\xmldoifelseatt \clf_xmldoifelseatt - -\let\xmldoifempty \clf_xmldoifempty -\let\xmldoifnotempty \clf_xmldoifnotempty -\let\xmldoifelseempty \clf_xmldoifelseempty -\let\xmldoifselfempty \clf_xmldoifselfempty -\let\xmldoifnotselfempty \clf_xmldoifnotselfempty -\let\xmldoifelseselfempty \clf_xmldoifelseselfempty +%let\xmldoif \clf_xmldoif +%let\xmldoifnot \clf_xmldoifnot +%let\xmldoifelse \clf_xmldoifelse +%let\xmldoiftext \clf_xmldoiftext +%let\xmldoifnottext \clf_xmldoifnottext +%let\xmldoifelsetext \clf_xmldoifelsetext + +%let\xmldoifatt \clf_xmldoifatt +%let\xmldoifnotatt \clf_xmldoifnotatt +%let\xmldoifelseatt \clf_xmldoifelseatt + +%let\xmldoifempty \clf_xmldoifempty +%let\xmldoifnotempty \clf_xmldoifnotempty +%let\xmldoifelseempty \clf_xmldoifelseempty +%let\xmldoifselfempty \clf_xmldoifselfempty +%let\xmldoifnotselfempty \clf_xmldoifnotselfempty +%let\xmldoifelseselfempty \clf_xmldoifelseselfempty \let\xmldoiftextelse \xmldoifelsetext \let\xmldoifemptyelse \xmldoifelseempty diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua index 9ab8cafc6..079ab29da 100644 --- a/tex/context/base/mkiv/lxml-tex.lua +++ b/tex/context/base/mkiv/lxml-tex.lua @@ -472,6 +472,7 @@ lxml.addindex = addindex implement { name = "xmladdindex", arguments = "string", + public = true, actions = addindex, } @@ -2070,7 +2071,8 @@ do implement { name = "xmldoifatt", arguments = "3 strings", - actions = function(id,k,v) + public = true, + actions = function(id,k,v) local e = getid(id) ctx_doif(e and e.at[k] == v or false) end @@ -2079,7 +2081,8 @@ do implement { name = "xmldoifnotatt", arguments = "3 strings", - actions = function(id,k,v) + public = true, + actions = function(id,k,v) local e = getid(id) ctx_doifnot(e and e.at[k] == v or false) end @@ -2088,7 +2091,8 @@ do implement { name = "xmldoifelseatt", arguments = "3 strings", - actions = function(id,k,v) + public = true, + actions = function(id,k,v) local e = getid(id) ctx_doifelse(e and e.at[k] == v or false) end diff --git a/tex/context/base/mkiv/math-ali.mkiv b/tex/context/base/mkiv/math-ali.mkiv index 400326d26..7f210bb41 100644 --- a/tex/context/base/mkiv/math-ali.mkiv +++ b/tex/context/base/mkiv/math-ali.mkiv @@ -1012,12 +1012,12 @@ \let\mathmatrixleft \empty % experimental hook \let\mathmatrixright\empty % experimental hook -\setvalue{\??mathmatrixalignlocation\v!top }{\raise\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\textfont\zerocount\relax} +\setvalue{\??mathmatrixalignlocation\v!top }{\raise\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\mathstyle\relax} \setvalue{\??mathmatrixalignlocation\v!high }{\raise\dimexpr(\nextboxdp-\nextboxht)/2\relax} \setvalue{\??mathmatrixalignlocation\v!center}{\relax} \setvalue{\??mathmatrixalignlocation\v!lohi} {\relax} \setvalue{\??mathmatrixalignlocation\v!normal}{\relax} -\setvalue{\??mathmatrixalignlocation\v!bottom}{\lower\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\textfont\zerocount\relax} +\setvalue{\??mathmatrixalignlocation\v!bottom}{\lower\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\mathstyle\relax} \setvalue{\??mathmatrixalignlocation\v!low }{\lower\dimexpr(\nextboxdp-\nextboxht)/2\relax} \def\math_matrix_finish_nextbox diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index 58202fa1a..16eb3e68b 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -90,7 +90,7 @@ return { "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", - "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", + "mathaxisheight", "muquad", -- -- maybe a different class diff --git a/tex/context/base/mkiv/pack-rul.mkxl b/tex/context/base/mkiv/pack-rul.mkxl index 6268aad3e..97cb82968 100644 --- a/tex/context/base/mkiv/pack-rul.mkxl +++ b/tex/context/base/mkiv/pack-rul.mkxl @@ -469,29 +469,6 @@ {\def\pack_framed_define_overlay_indeed##1{\setvalue{\??overlay##1}{\executedefinedoverlay{##1}{#2}}}% \processcommalist[#1]\pack_framed_define_overlay_indeed} -% \unexpanded\def\executedefinedoverlay#1#2% we can share the definitions -% {\bgroup % redundant grouping -% \setbox\scratchbox\hbox\bgroup -% \ifzeropt\d_framed_target_dp -% \the\everyoverlay#2% saves wrapping (and lua call) -% \else -% \lower\d_framed_target_dp -% \hbox{\the\everyoverlay#2}% -% \fi -% \egroup -% \setlayoutcomponentattribute{\v!overlay:#1}% -% \setbox\scratchbox\hpack \layoutcomponentboxattribute -% {\kern -.5\dimexpr\wd\scratchbox-\d_framed_target_wd\relax % was \d_overlay_width -% \raise-.5\dimexpr\ht\scratchbox-\d_framed_target_ht\relax % not \d_overlay_height ! -% \box\scratchbox}% -% \wd\scratchbox\d_framed_target_wd -% \ht\scratchbox\d_framed_target_ht -% \dp\scratchbox\d_framed_target_dp -% \box\scratchbox -% \egroup} - -% 20191231: moved from cont-exp: - \unexpanded\def\executedefinedoverlay#1#2% we can share the definitions {\bgroup % redundant grouping \setlayoutcomponentattribute{\v!overlay:#1}% @@ -507,13 +484,6 @@ %D \macros %D {overlayfakebox} -% \unexpanded\def\overlayfakebox -% {\hpack -% {\setbox\scratchbox\emptyhbox -% \wd\scratchbox\d_overlay_width -% \ht\scratchbox\d_overlay_height -% \box\scratchbox}} - \unexpanded\def\overlayfakebox {\hpack % redundant but needs testing {\novrule diff --git a/tex/context/base/mkiv/spac-flr.mkiv b/tex/context/base/mkiv/spac-flr.mkiv index 4c3c0c042..a64171247 100644 --- a/tex/context/base/mkiv/spac-flr.mkiv +++ b/tex/context/base/mkiv/spac-flr.mkiv @@ -168,6 +168,23 @@ [\c!alternative=\v!space, \c!distance=3\emwidth] +% bonus: + +\definefiller + [dotfill] + [\c!symbol=\textperiod, + \c!style=\v!normal, + \c!method=\v!middle, + \c!width=.5\emwidth, + \c!leftmargin=.2\emwidth, + \c!rightmargin=.2\emwidth] + +\let\mathdotfill\dotfill + +\unexpanded\def\textdotfill{\filler[dotfill]} + +\unexpanded\def\dotfill{\mathortext\mathdotfill\textdotfill} + % maybe box -> symbol \protect \endinput diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf new file mode 100644 index 000000000..9ef6ddd19 Binary files /dev/null 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 new file mode 100644 index 000000000..e967a7798 Binary files /dev/null and b/tex/context/base/mkiv/status-lua.pdf differ diff --git a/tex/context/base/mkiv/syst-aux.mkiv b/tex/context/base/mkiv/syst-aux.mkiv index d268f2fb6..20716786d 100644 --- a/tex/context/base/mkiv/syst-aux.mkiv +++ b/tex/context/base/mkiv/syst-aux.mkiv @@ -4492,7 +4492,9 @@ \unexpanded\def\resetrecurselevel{\let\recurselevel\!!zerocount} -\let\recurselevel\!!zerocount +\let\recurselevel \!!zerocount +\let\recurseaction\relax +\let\recursestring\empty % \appendtoks \resetrecurselevel \to \everydump diff --git a/tex/context/base/mkiv/syst-aux.mkxl b/tex/context/base/mkiv/syst-aux.mkxl index 8188577e6..956d43f89 100644 --- a/tex/context/base/mkiv/syst-aux.mkxl +++ b/tex/context/base/mkiv/syst-aux.mkxl @@ -2979,6 +2979,9 @@ \def\recursedepth{\the\outerrecurse} \def\recurselevel{0} +\let\recurseaction\relax +\let\recursestring\empty + \let\syst_helpers_stepwise_next\relax \unexpanded\def\syst_helpers_stepwise_recurse#1#2#3% from to step @@ -3088,6 +3091,7 @@ \let\endofloop\donothing % maybe \syst_helpers_loop_end + \unexpanded\def\doloop#1% {\global\advance\outerrecurse \plusone \globalpushmacro\recurselevel diff --git a/tex/context/base/mkiv/syst-fnt.mkiv b/tex/context/base/mkiv/syst-fnt.mkiv index cacc5f517..764e486d2 100644 --- a/tex/context/base/mkiv/syst-fnt.mkiv +++ b/tex/context/base/mkiv/syst-fnt.mkiv @@ -31,12 +31,7 @@ \def\emwidth {\fontdimen\plussix \font} \def\extraspace {\fontdimen\plusseven\font} -\def\mathsupdisplay {\fontdimen13 } % to be remapped -\def\mathsupnormal {\fontdimen14 } % to be remapped -\def\mathsupcramped {\fontdimen15 } % to be remapped -\def\mathsubnormal {\fontdimen16 } % to be remapped -\def\mathsubcombined {\fontdimen17 } % to be remapped -\def\mathaxisheight {\fontdimen22 } % to be remapped +\def\mathaxisheight {\Umathaxis} % takes style \def\currentspaceskip {\interwordspace\s!plus\interwordstretch\s!minus\interwordshrink\relax} diff --git a/tex/context/base/mkiv/toks-ini.lua b/tex/context/base/mkiv/toks-ini.lua index da5affa63..8fc60335e 100644 --- a/tex/context/base/mkiv/toks-ini.lua +++ b/tex/context/base/mkiv/toks-ini.lua @@ -192,7 +192,7 @@ tokens.scanners = { -- these expand string = scan_string, argument = scan_argument, tokenlist = scan_tokenlist, - verbatim = scan_verbatim, + verbatim = scan_verbatim, -- detokenize code = scan_code, tokencode = scan_token_code, word = scan_word, diff --git a/tex/context/base/mkiv/trac-vis.lua b/tex/context/base/mkiv/trac-vis.lua index 760ba8726..f89043547 100644 --- a/tex/context/base/mkiv/trac-vis.lua +++ b/tex/context/base/mkiv/trac-vis.lua @@ -874,6 +874,7 @@ local ruledglue do local userskip_code = gluecodes.userskip local spaceskip_code = gluecodes.spaceskip local xspaceskip_code = gluecodes.xspaceskip + local zerospaceskip_code = gluecodes.zerospaceskip or gluecodes.userskip local leftskip_code = gluecodes.leftskip local rightskip_code = gluecodes.rightskip local parfillskip_code = gluecodes.parfillskip @@ -914,6 +915,7 @@ local ruledglue do [rightskip_code] = "RS", [spaceskip_code] = "SP", [xspaceskip_code] = "XS", + [zerospaceskip_code] = "ZS", [parfillskip_code] = "PF", [indentskip_code] = "IN", [correctionskip_code] = "CS", @@ -929,7 +931,7 @@ local ruledglue do if info then -- print("glue hit") else - if subtype == spaceskip_code or subtype == xspaceskip_code then + if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then info = sometext(amount,l_glue,c_space) elseif subtype == leftskip_code or subtype == rightskip_code then info = sometext(amount,l_glue,c_skip_a) @@ -958,7 +960,7 @@ local ruledglue do -- ruledspace = function(head,current,parent) -- local subtype = getsubtype(current) - -- if subtype == spaceskip_code or subtype == xspaceskip_code then + -- if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then -- local width = effectiveglue(current,parent) -- local amount = formatters["%s:%0.3f"](tags[subtype] or "HS",width*pt_factor) -- local info = g_cache_h[amount] @@ -981,7 +983,7 @@ local ruledglue do ruledspace = function(head,current,parent) local subtype = getsubtype(current) - if subtype == spaceskip_code or subtype == xspaceskip_code then -- not yet all space + if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then -- not yet all space local width = effectiveglue(current,parent) local info if subtype == spaceskip_code then diff --git a/tex/context/base/mkiv/type-ini.mklx b/tex/context/base/mkiv/type-ini.mklx index c710fbec5..1cb9bc2e5 100644 --- a/tex/context/base/mkiv/type-ini.mklx +++ b/tex/context/base/mkiv/type-ini.mklx @@ -90,6 +90,13 @@ \installmacrostack\typescriptmethod \installmacrostack\typescriptstate +%D When these are loaded it is possible to get spaces but the whole idea is to do +%D that loading in vertical mode. Adding \type {\pushendofline} and \type +%D {\popendofline} is an option but not watertight as it can still interfere, for +%D instance work comments and leading spaces. Also, in horizontal mode it is likely +%D that one is also grouped and loading bodyfonts grouped is a real bad idea. +%D Ignoring all spaces is also not a solution. So, our verdict is: no catch. + \unexpanded\def\starttypescriptcollection {\dosingleempty\font_typescripts_collection_start} diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index f2a2b7d9e..a1c027064 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 2020-06-14 22:04 +-- merge date : 2020-06-17 18:56 do -- begin closure to overcome local limits and interference -- cgit v1.2.3