diff options
Diffstat (limited to 'tex/context/base/mkiv')
-rw-r--r-- | tex/context/base/mkiv/char-def.lua | 8 | ||||
-rw-r--r-- | tex/context/base/mkiv/cont-new.mkiv | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/context.mkiv | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/font-oup.lua | 4 | ||||
-rw-r--r-- | tex/context/base/mkiv/lang-imp-simpleascii-data.lgz | bin | 0 -> 554570 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/lang-imp-simpleascii.lua | 114 | ||||
-rw-r--r-- | tex/context/base/mkiv/lang-rep.lua | 2 | ||||
-rw-r--r-- | tex/context/base/mkiv/mult-low.lua | 10 | ||||
-rw-r--r-- | tex/context/base/mkiv/mult-prm.lua | 23 | ||||
-rw-r--r-- | tex/context/base/mkiv/publ-imp-apa.mkvi | 59 | ||||
-rw-r--r-- | tex/context/base/mkiv/publ-ini.mkiv | 5 | ||||
-rw-r--r-- | tex/context/base/mkiv/status-files.pdf | bin | 24652 -> 24659 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/status-lua.pdf | bin | 271456 -> 270690 bytes | |||
-rw-r--r-- | tex/context/base/mkiv/util-zip.lua | 55 |
14 files changed, 212 insertions, 72 deletions
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua index 1d4c130e9..de3ded98b 100644 --- a/tex/context/base/mkiv/char-def.lua +++ b/tex/context/base/mkiv/char-def.lua @@ -67014,7 +67014,7 @@ characters.data={ description="NABLA", direction="on", linebreak="ai", - mathclass="ordinary", + mathclass="differential", mathname="nabla", synonyms={ "backward difference", "del" }, unicodeslot=0x2207, @@ -234204,6 +234204,7 @@ characters.data={ description="MATHEMATICAL BOLD NABLA", direction="l", linebreak="al", + mathclass="differential", specials={ "font", 0x2207 }, unicodeslot=0x1D6C1, visual="bf", @@ -234727,7 +234728,7 @@ characters.data={ description="MATHEMATICAL ITALIC NABLA", direction="l", linebreak="al", - mathclass="ordinary", + mathclass="differential", specials={ "font", 0x2207 }, unicodeslot=0x1D6FB, visual="it", @@ -235256,6 +235257,7 @@ characters.data={ description="MATHEMATICAL BOLD ITALIC NABLA", direction="l", linebreak="al", + mathclass="differential", specials={ "font", 0x2207 }, unicodeslot=0x1D735, visual="bi", @@ -235779,6 +235781,7 @@ characters.data={ description="MATHEMATICAL SANS-SERIF BOLD NABLA", direction="l", linebreak="al", + mathclass="differential", specials={ "font", 0x2207 }, unicodeslot=0x1D76F, visual="bf", @@ -236302,6 +236305,7 @@ characters.data={ description="MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA", direction="l", linebreak="al", + mathclass="differential", specials={ "font", 0x2207 }, unicodeslot=0x1D7A9, visual="bi", diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index d262c380f..596dd0299 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.05.08 17:36} +\newcontextversion{2023.05.27 12:11} %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 e6522ec5c..c5be65048 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.05.08 17:36} +\edef\contextversion{2023.05.27 12:11} %D Kind of special: diff --git a/tex/context/base/mkiv/font-oup.lua b/tex/context/base/mkiv/font-oup.lua index 198e62bee..0d1f9d6a6 100644 --- a/tex/context/base/mkiv/font-oup.lua +++ b/tex/context/base/mkiv/font-oup.lua @@ -945,7 +945,9 @@ local function unifyglyphs(fontdata,usenames) if colors then for i=1,#colors do local c = colors[i] - c.slot = indices[c.slot] + if c then -- safeguard + c.slot = indices[c.slot] + end end end end diff --git a/tex/context/base/mkiv/lang-imp-simpleascii-data.lgz b/tex/context/base/mkiv/lang-imp-simpleascii-data.lgz Binary files differnew file mode 100644 index 000000000..9bbcc6afc --- /dev/null +++ b/tex/context/base/mkiv/lang-imp-simpleascii-data.lgz diff --git a/tex/context/base/mkiv/lang-imp-simpleascii.lua b/tex/context/base/mkiv/lang-imp-simpleascii.lua new file mode 100644 index 000000000..8fe664a27 --- /dev/null +++ b/tex/context/base/mkiv/lang-imp-simpleascii.lua @@ -0,0 +1,114 @@ +-- The data is taken from: +-- +-- https://github.com/anyascii/anyascii/blob/master/table.tsv +-- +-- by Hunter WB under the ISC License (2020-2023). +-- +-- Updating: +-- +-- -- copy table.tsv to lang-imp-simpleascii-data.tsv +-- -- mtxrun --script lang-imp-simpleascii +-- -- copy lang-imp-simpleascii-data.lgz over old file +-- +-- Usage: +-- +-- \usetransliteration[simpleascii] +-- +-- \definetransliteration +-- [simpleascii] +-- [color=blue, +-- vector={simple ascii}] +-- +-- \settransliteration[simpleascii] +-- +-- \starttext +-- +-- \startchapter[title={深圳 ଗଜପତି Blöße}] +-- 深圳 ଗଜପତି Blöße\par +-- 深圳 ଗଜପତି Blöße\par +-- 深圳 ଗଜପତି Blöße\par +-- 深圳 ଗଜପତି Blöße\par +-- \stopchapter +-- +-- \stoptext + +local textfile = "lang-imp-simpleascii-data.tsv" -- a copy of table.tsv +local datafile = "lang-imp-simpleascii-data.lua" -- for tracing +local compfile = "lang-imp-simpleascii-data.lgz" -- idem in distribution + +local verbose = false -- when true, saved uncompressed file for tracing +local report = logs.reporter("simpleascii") + +if not context and lfs.isfile(textfile) then + + -- We save it in the local path so we need to move it explicitly into + -- the tree which prevents errors. + + local data = io.loaddata(textfile) + if data and data ~= "" then + local mapping = { } + for k, v in string.gmatch(data,"(%S+)[\t]*([^\n\r]-)[\n\r]") do + if k ~= "" and v ~= "" and k ~= v then + mapping[k] = v + end + end + if verbose then + table.save(datafile,mapping) + else + mapping = gzip.compress(table.fastserialize(mapping)) -- zlib.compress(d,9) + datafile = compfile + io.savedata(compfile,mapping) + end + report("data from %a saved in %a",textfile,datafile) + else + report("no data file %a",textfile) + end + +else + + local mapping = false + + if not verbose then + mapping = io.loaddata(resolvers.findfile(compfile) or "") + if mapping then + mapping = table.deserialize(gzip.decompress(mapping)) -- zlib.decompress(d) + if mapping then + datafile = compfile + else + report("data file %a is corrupt",compfile) + end + end + end + if not mapping then + mapping = table.load(resolvers.findfile(datafile) or "") + end + + if mapping then + + report("data file %a loaded",datafile) + + -- for i = 0, 127 do + -- mapping[utfchar(i)] = utfchar(i) -- not needed + -- end + + return { + + name = "simple ascii", + version = "1.00", + comment = "Unicode to ASCII transliteration", + author = "Jairo A. del Rio & Hans Hagen", + copyright = "ConTeXt development team & whoever made this list", + + transliterations = { + ["simple ascii"] = { + mapping = mapping + }, + } + + } + + else + report("no data file %a",datafile) + end + +end diff --git a/tex/context/base/mkiv/lang-rep.lua b/tex/context/base/mkiv/lang-rep.lua index d2c47f5ba..a07524a93 100644 --- a/tex/context/base/mkiv/lang-rep.lua +++ b/tex/context/base/mkiv/lang-rep.lua @@ -266,7 +266,7 @@ local function replace(head,first,last,final,hasspace,overload) current = getnext(current) end end - current = getnext(final) + -- current = getnext(final) -- some left over? no next! elseif oldlength < newlength then for i=1,newlength-oldlength do local n = copy_node(current) diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index a250fdefd..d57c686a2 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -193,7 +193,7 @@ return { -- "Ux", "eUx", -- - "parfillleftskip", "parfillrightskip", + -- "parfillleftskip", "parfillrightskip", -- "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", -- @@ -209,7 +209,7 @@ return { "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "flattenhleadersnormalizecode", -- - "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode", + "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode", "limitprevgrafnormalizeparcode", -- "nopreslackclassoptioncode", "nopostslackclassoptioncode", "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode", @@ -219,7 +219,7 @@ return { "flattenclassoptioncode", "omitpenaltyclassoptioncode", "unpackclassoptioncode", "raiseprimeclassoptioncode", "carryoverlefttopkernclassoptioncode", "carryoverleftbottomkernclassoptioncode", "carryoverrighttopkernclassoptioncode", "carryoverrightbottomkernclassoptioncode", "preferdelimiterdimensionsclassoptioncode", "autoinjectclassoptioncode", "removeitaliccorrectionclassoptioncode", - "operatoritaliccorrectionclassoptioncode", + "operatoritaliccorrectionclassoptioncode", "shortinlineclassoptioncode", -- "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode", "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode", @@ -270,6 +270,8 @@ return { -- "autorule", -- + "tobits", "tohexa", + -- "strippedcsname","checkedstrippedcsname", -- "nofarguments", @@ -281,7 +283,7 @@ return { "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", -- - "vkern", "hkern", "vpenalty", "hpenalty", + -- "vkern", "hkern", "vpenalty", "hpenalty", -- native in mkxl -- "doglobal", "dodoglobal", "redoglobal", "resetglobal", -- diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua index 37779ec57..cf83244cf 100644 --- a/tex/context/base/mkiv/mult-prm.lua +++ b/tex/context/base/mkiv/mult-prm.lua @@ -249,6 +249,7 @@ return { "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", + "advanceby", "afterassigned", "aftergrouped", "aliased", @@ -320,10 +321,12 @@ return { "dbox", "defcsname", "deferred", + "detokened", "detokenized", "dimensiondef", "dimexpression", "directlua", + "divideby", "dpack", "dsplit", "edefcsname", @@ -403,6 +406,7 @@ return { "hmcode", "holdingmigrations", "hpack", + "hpenalty", "hyphenationmin", "hyphenationmode", "ifabsdim", @@ -429,6 +433,9 @@ return { "ifhasxtoks", "ifincsname", "ifinsert", + "ifintervaldim", + "ifintervalfloat", + "ifintervalnum", "ifmathparameter", "ifmathstyle", "ifnumexpression", @@ -571,6 +578,7 @@ return { "meaningles", "meaningless", "mugluespecdef", + "multiplyby", "mutable", "noaligned", "noatomruling", @@ -598,18 +606,24 @@ return { "parametermark", "parattribute", "pardirection", + "parfillleftskip", + "parfillrightskip", + "parinitleftskip", + "parinitrightskip", "permanent", "pettymuskip", "positdef", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", + "postshortinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", + "preshortinlinepenalty", "protrudechars", "protrusionboundary", "pxdimen", @@ -691,6 +705,7 @@ return { "virtualhrule", "virtualvrule", "vpack", + "vpenalty", "wordboundary", "wrapuppar", "xdefcsname", @@ -829,7 +844,6 @@ return { "accent", "adjdemerits", "advance", - "advanceby", "afterassignment", "aftergroup", "atop", @@ -874,7 +888,6 @@ return { "displaywidowpenalty", "displaywidth", "divide", - "divideby", "doublehyphendemerits", "dp", "dump", @@ -923,6 +936,7 @@ return { "hfill", "hfilneg", "hfuzz", + "hkern", "holdinginserts", "hrule", "hsize", @@ -1000,7 +1014,6 @@ return { "moveright", "mskip", "multiply", - "multiplyby", "muskip", "muskipdef", "newlinechar", @@ -1031,11 +1044,8 @@ return { "pagestretch", "pagetotal", "par", - "parfillleftskip", "parfillskip", "parindent", - "parinitleftskip", - "parinitrightskip", "parshape", "parskip", "patterns", @@ -1125,6 +1135,7 @@ return { "vfill", "vfilneg", "vfuzz", + "vkern", "vrule", "vsize", "vskip", diff --git a/tex/context/base/mkiv/publ-imp-apa.mkvi b/tex/context/base/mkiv/publ-imp-apa.mkvi index 65f33fa9f..bfbc97a57 100644 --- a/tex/context/base/mkiv/publ-imp-apa.mkvi +++ b/tex/context/base/mkiv/publ-imp-apa.mkvi @@ -941,8 +941,6 @@ \btxlabeltext{apa:Translator} \btxrightparenthesis } - \btxperiod - % TODO: this period may NOT be wanted, as in: Title (2nd ed.). } \stoptexdefinition @@ -951,7 +949,7 @@ \resetmode{btx:apa:title-placed} } { \btxdoif {title} { - \btxspace + \btxperiod \texdefinition {btx:apa:title} } } @@ -1087,7 +1085,6 @@ \btxrightparenthesis } % outside of interaction - \btxperiod \doif {\btxfoundname{author}} {title} { \setmode{btx:apa:title-placed} } @@ -1095,6 +1092,7 @@ \starttexdefinition mutable protected btx:apa:editor-in \btxdoif {booktitle} { + \btxperiod \btxlabeltext{In} \btxspace \doifnot {\btxfoundname{author}} {editor} { @@ -1104,7 +1102,6 @@ } } \texdefinition{btx:apa:composed-title}{booktitle} - \btxperiod } \stoptexdefinition @@ -1118,9 +1115,6 @@ } \stoptexdefinition -% TODO: The title is terminated with period. However, -% we probably don't want this before the parenthesis. - \starttexdefinition mutable protected btx:apa:leftparenthesis-or-comma \doifelsemode {btx:apa:editionset-is-empty} { \btxleftparenthesis @@ -1180,8 +1174,9 @@ \btxflush{pages} } \doifnotmode {btx:apa:editionset-is-empty} { - \btxrightparenthesisperiod + \btxrightparenthesis } + \btxperiod \stoptexdefinition \starttexdefinition mutable protected btx:apa:journal @@ -1275,36 +1270,26 @@ \btxperiod \stoptexdefinition -\definebreakpoints[doi] -\definebreakpoint [doi][:][nleft=3,type=1] -\definebreakpoint [doi][/][nleft=3,type=1] -\definebreakpoint [doi][-][nleft=3,type=1] -\definebreakpoint [doi][.][nleft=3,type=1] - % use \btxentry here? +\sethyphenatedurlafter{:./-_} % question of taste + \starttexdefinition mutable protected btx:apa:url - \begingroup - \setbreakpoints[doi] - \texdefinition {btx:format:goto} { - url(\btxflush{url}) - } { - \hyphenatedurl{\btxflush{url}} - } - \endgroup + \texdefinition {btx:format:goto} { + url(\btxflush{url}) + } { + \hyphenatedurl{\btxflush{url}} + } \stoptexdefinition % use \btxentry here? \starttexdefinition mutable protected btx:apa:doi - \begingroup - \setbreakpoints[doi] - \texdefinition {btx:format:goto} { - url(http://dx.doi.org/\btxflush{doi}) - } { - \hyphenatedurl{doi:\btxflush{doi}} - } - \endgroup + \texdefinition {btx:format:goto} { + url(http://dx.doi.org/\btxflush{doi}) + } { + \hyphenatedurl{doi:\btxflush{doi}} + } \stoptexdefinition \starttexdefinition mutable protected btx:apa:note @@ -1326,13 +1311,14 @@ \btxspace \texdefinition{btx:apa:doi} } + % should the following be hyperlinks? To where? \btxdoif {issn} { \btxspace - issn\colon\btxflush{issn} + \hyphenatedurl{issn:\btxflush{issn}} } \btxdoif {isbn} { \btxspace - isbn\colon\btxflush{isbn} + \hyphenatedurl{isbn:\btxflush{isbn}} } \texdefinition{btx:apa:note} \removeunwantedspaces @@ -1342,7 +1328,7 @@ \btxdoif {type} { \btxleftbracket \btxflush{type} - \btxrightbracketperiod + \btxrightbracket } \stoptexdefinition @@ -1357,6 +1343,7 @@ \texdefinition{btx:apa:authoryear} \texdefinition{btx:apa:title-if-not-placed} \texdefinition{btx:apa:type} + \btxperiod \texdefinition{btx:apa:journal-volume-number-pages} \texdefinition{btx:apa:url-doi-note} \stopsetups @@ -1394,6 +1381,7 @@ \startsetups btx:apa:list:standard \texdefinition{btx:apa:authoryear} \texdefinition{btx:apa:title-if-not-placed} + \btxperiod \texdefinition{btx:apa:url-doi-note} \stopsetups @@ -1636,10 +1624,10 @@ } \doifnot {\btxfoundname{title}} {album} { \btxdoif {album} { + \btxperiod \btxlabeltext{In} \btxspace \btxflush{album} - \btxperiod } } \texdefinition{btx:apa:type} @@ -1662,6 +1650,7 @@ \startsetups btx:apa:list:misc \texdefinition{btx:apa:authoryear} \texdefinition{btx:apa:title-if-not-placed} + \btxperiod \btxdoif {howpublished} { \btxspace \btxflush{howpublished} diff --git a/tex/context/base/mkiv/publ-ini.mkiv b/tex/context/base/mkiv/publ-ini.mkiv index d75006b18..9410e007d 100644 --- a/tex/context/base/mkiv/publ-ini.mkiv +++ b/tex/context/base/mkiv/publ-ini.mkiv @@ -420,6 +420,7 @@ \unexpanded\def\btxcommabreak {\removeunwantedspaces,\hskip\zeropoint plus .5\emwidth\relax} \unexpanded\def\btxcolon {\removeunwantedspaces:\space} \unexpanded\def\btxsemicolon {\removeunwantedspaces;\space} +\unexpanded\def\btxhyphen {\removeunwantedspaces-} \unexpanded\def\btxlparent {\removeunwantedspaces\space(} % obsolete \unexpanded\def\btxrparent {\removeunwantedspaces)\space} % obsolete \unexpanded\def\btxleftparenthesis {\removeunwantedspaces\space(} @@ -1995,9 +1996,9 @@ \c!otherstext={\btxspace et al.}, \c!separator:firstnames={\btxspace}, \c!separator:juniors={\btxspace}, - \c!separator:vons={\btxspace}, + \c!separator:vons={\btxnobreakspace}, \c!separator:initials={\btxspace}, - \c!connector:initials={-}, + \c!connector:initials={\btxhyphen}, \c!stopper:initials={.}, %\c!surnamesep={\btxcomma}, % is this used anywhere? \c!separator:invertedinitials={\btxcomma}, diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex dad92835c..dff0084d6 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex 25fae18e2..3c16a859d 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/util-zip.lua b/tex/context/base/mkiv/util-zip.lua index 84539492c..404b39713 100644 --- a/tex/context/base/mkiv/util-zip.lua +++ b/tex/context/base/mkiv/util-zip.lua @@ -619,11 +619,13 @@ if xzip then -- flate then do end end - local function unzipdir(zipname,path,verbose) + local function unzipdir(zipname,path,verbose,collect,validate) if type(zipname) == "table" then - verbose = zipname.verbose - path = zipname.path - zipname = zipname.zipname + validate = zipname.validate + collect = zipname.collect + verbose = zipname.verbose + path = zipname.path + zipname = zipname.zipname end if not zipname or zipname == "" then return @@ -641,34 +643,49 @@ if xzip then -- flate then do local done = 0 local steps = verbose == "steps" local time = steps and osclock() + -- local skip = 0 + if collect then + collect = { } + else + collect = false + end for i=1,count do local l = list[i] local n = l.filename - local d = unzipfile(z,n) -- true for check - if d then - local p = filejoin(path,n) - if mkdirs(dirname(p)) then - if steps then - total = total + #d - done = done + 1 - if done >= step then - done = 0 - logwriter(format("%4i files of %4i done, %10i bytes, %0.3f seconds",i,count,total,osclock()-time)) + if not validate or validate(n) then + local d = unzipfile(z,n) -- true for check + if d then + local p = filejoin(path,n) + if mkdirs(dirname(p)) then + if steps then + total = total + #d + done = done + 1 + if done >= step then + done = 0 + logwriter(format("%4i files of %4i done, %10i bytes, %0.3f seconds",i,count,total,osclock()-time)) + end + elseif verbose then + logwriter(n) + end + savedata(p,d) + if collect then + collect[#collect+1] = p end - elseif verbose then - logwriter(n) end - savedata(p,d) + else + logwriter(format("problem with file %s",n)) end else - logwriter(format("problem with file %s",n)) + -- skip = skip + 1 end end if steps then logwriter(format("%4i files of %4i done, %10i bytes, %0.3f seconds",count,count,total,osclock()-time)) end closezipfile(z) - return true + if collect then + return collect + end else closezipfile(z) end |