From ede5a2aae42ff502be35d800e97271cf0bdc889b Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Fri, 27 Dec 2019 17:59:09 +0100 Subject: 2019-12-27 16:45:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-en.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/file-job.lua | 10 +- tex/context/base/mkiv/font-imp-spacekerns.lua | 258 +++++++++++++++++++++ tex/context/base/mkiv/font-lib.mkvi | 1 + tex/context/base/mkiv/font-ots.lua | 65 +++--- tex/context/base/mkiv/node-bck.lua | 2 +- tex/context/base/mkiv/spac-ver.mkiv | 7 +- tex/context/base/mkiv/status-files.pdf | Bin 26568 -> 26608 bytes tex/context/base/mkiv/status-lua.pdf | Bin 269667 -> 269667 bytes tex/context/base/mkiv/strc-flt.mkvi | 39 ++-- tex/context/interface/mkii/keys-en.xml | 2 + tex/context/interface/mkiv/context-en.xml | 3 + tex/context/interface/mkiv/i-context.pdf | Bin 894235 -> 894023 bytes tex/context/interface/mkiv/i-floats.xml | 3 + tex/context/interface/mkiv/i-readme.pdf | Bin 61165 -> 61165 bytes .../modules/common/s-abbreviations-logos.tex | 8 +- .../modules/common/s-abbreviations-mixed.mkiv | 2 +- .../modules/mkiv/s-abbreviations-mixed.mkiv | 2 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 45 ++-- 24 files changed, 375 insertions(+), 84 deletions(-) create mode 100644 tex/context/base/mkiv/font-imp-spacekerns.lua (limited to 'tex') diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 9c85b9f26..8b4260470 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2019.12.24 19:44} +\newcontextversion{2019.12.27 16:34} %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 b971a9461..882e7ccf0 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2019.12.24 19:44} +\edef\contextversion{2019.12.27 16:34} %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 6a1962c7b..3d7935db7 100644 --- a/tex/context/base/mkii/mult-en.mkii +++ b/tex/context/base/mkii/mult-en.mkii @@ -232,6 +232,7 @@ \setinterfacevariable{handwritten}{handwritten} \setinterfacevariable{hang}{hang} \setinterfacevariable{hanging}{hanging} +\setinterfacevariable{hangingboth}{hangingboth} \setinterfacevariable{head}{head} \setinterfacevariable{header}{header} \setinterfacevariable{headintext}{headintext} @@ -1044,6 +1045,7 @@ \setinterfaceconstant{overprint}{overprint} \setinterfaceconstant{ownerpassword}{ownerpassword} \setinterfaceconstant{ownnumber}{ownnumber} +\setinterfaceconstant{packcriterium}{packcriterium} \setinterfaceconstant{page}{page} \setinterfaceconstant{pageboundaries}{pageboundaries} \setinterfaceconstant{pagecolor}{pagecolor} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index ac206ab26..a315210ca 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{2019.12.24 19:44} +\newcontextversion{2019.12.27 16:34} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 49337bfee..72c920101 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{2019.12.24 19:44} +\edef\contextversion{2019.12.27 16:34} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl index 331dfdfab..ee9d0b344 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{2019.12.24 19:44} +\edef\contextversion{2019.12.27 16:34} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/file-job.lua b/tex/context/base/mkiv/file-job.lua index 2c854b504..4b29f57ec 100644 --- a/tex/context/base/mkiv/file-job.lua +++ b/tex/context/base/mkiv/file-job.lua @@ -1114,11 +1114,11 @@ function document.setfilenames() end end -implement { name = "setdocumentcommandline", actions = document.setcommandline, onlyonce = true } -implement { name = "setdocumentmodes", actions = document.setmodes, onlyonce = true } -implement { name = "setdocumentmodules", actions = document.setmodules, onlyonce = true } -implement { name = "setdocumentenvironments", actions = document.setenvironments, onlyonce = true } -implement { name = "setdocumentfilenames", actions = document.setfilenames, onlyonce = true } +implement { name = "setdocumentcommandline", actions = document.setcommandline, onlyonce = true } +implement { name = "setdocumentmodes", actions = document.setmodes, onlyonce = true } +implement { name = "setdocumentmodules", actions = document.setmodules, onlyonce = true } +implement { name = "setdocumentenvironments", actions = document.setenvironments, onlyonce = true } +implement { name = "setdocumentfilenames", actions = document.setfilenames, onlyonce = true } do diff --git a/tex/context/base/mkiv/font-imp-spacekerns.lua b/tex/context/base/mkiv/font-imp-spacekerns.lua new file mode 100644 index 000000000..0e2b0f9b0 --- /dev/null +++ b/tex/context/base/mkiv/font-imp-spacekerns.lua @@ -0,0 +1,258 @@ +if not modules then modules = { } end modules ['font-imp-spacekerns'] = { + version = 1.001, + comment = "companion to font-ini.mkiv and hand-ini.mkiv", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +if not context then return end + +-- This is an experiment. See font-ots.lua for original implementation. + +local type, next = type, next +local insert, setmetatableindex = table.insert, table.setmetatableindex + +local fonts = fonts +local otf = fonts.handlers.otf +local fontdata = fonts.hashes.identifiers +local fontfeatures = fonts.hashes.features +local otffeatures = fonts.constructors.features.otf +local registerotffeature = otffeatures.register +local handlers = otf.handlers +local setspacekerns = nodes.injections.setspacekerns + +function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,attr) + local features = fontfeatures[font] + local enabled = features and features.spacekern + if enabled then + setspacekerns(font,sequence) -- called quite often, each glyphrun + end + return head, enabled +end + +local function hasspacekerns(data) + local resources = data.resources + local sequences = resources.sequences + local validgpos = resources.features.gpos + if validgpos and sequences then + for i=1,#sequences do + local sequence = sequences[i] + local steps = sequence.steps + if steps then -- and sequence.features[tag] then + local kind = sequence.type + if kind == "gpos_pair" then -- or kind == "gpos_single" then + for i=1,#steps do + local step = steps[i] + local coverage = step.coverage + local rules = step.rules + -- if rules then + -- -- not now: analyze (simple) rules + -- elseif not coverage then + -- -- nothing to do + -- elseif kind == "gpos_single" then + -- -- maybe a message that we ignore + -- elseif kind == "gpos_pair" then + if coverage and not rules then + local format = step.format + if format == "move" or format == "kern" then + local kerns = coverage[32] + if kerns then + return true + end + for k, v in next, coverage do + if v[32] then + return true + end + end + elseif format == "pair" then + local kerns = coverage[32] + if kerns then + for k, v in next, kerns do + local one = v[1] + if one and one ~= true then + return true + end + end + end + for k, v in next, coverage do + local kern = v[32] + if kern then + local one = kern[1] + if one and one ~= true then + return true + end + end + end + end + end + end + end + end + end + end + return false +end + +otf.readers.registerextender { + name = "spacekerns", + action = function(data) + data.properties.hasspacekerns = hasspacekerns(data) + end +} + +local function newdata(t,k) + local v = { + left = { }, + right = { }, + last = 0, + feat = nil, + } + t[k] = v + return v +end + +local function spaceinitializer(tfmdata,value) -- attr + local resources = tfmdata.resources + local spacekerns = resources and resources.spacekerns + if value and spacekerns == nil then + local rawdata = tfmdata.shared and tfmdata.shared.rawdata + local properties = rawdata.properties + if properties and properties.hasspacekerns then + local sequences = resources.sequences + local validgpos = resources.features.gpos + if validgpos and sequences then + local data = setmetatableindex(newdata) + for i=1,#sequences do + local sequence = sequences[i] + local steps = sequence.steps + if steps then + -- we don't support space kerns in other features + -- local kern = sequence.features[tag] + -- if kern then + for tag, kern in next, sequence.features do + + local d = data[tag] + local left = d.left + local right = d.right + local last = d.last + local feat = d.feat + + local kind = sequence.type + if kind == "gpos_pair" then -- or kind == "gpos_single" then + if feat then + for script, languages in next, kern do + local f = feat[script] + if f then + for l in next, languages do + f[l] = true + end + else + feat[script] = languages + end + end + else + feat = kern + d.feat = feat + end + for i=1,#steps do + local step = steps[i] + local coverage = step.coverage + local rules = step.rules + -- if rules then + -- -- not now: analyze (simple) rules + -- elseif not coverage then + -- -- nothing to do + -- elseif kind == "gpos_single" then + -- -- makes no sense in TeX + -- elseif kind == "gpos_pair" then + if coverage and not rules then + local format = step.format + if format == "move" or format == "kern" then + local kerns = coverage[32] + if kerns then + for k, v in next, kerns do + right[k] = v + end + end + for k, v in next, coverage do + local kern = v[32] + if kern then + left[k] = kern + end + end + elseif format == "pair" then + local kerns = coverage[32] + if kerns then + for k, v in next, kerns do + local one = v[1] + if one and one ~= true then + right[k] = one[3] + end + end + end + for k, v in next, coverage do + local kern = v[32] + if kern then + local one = kern[1] + if one and one ~= true then + left[k] = one[3] + end + end + end + end + end + end + last = i + end +d.last = last + end + end + end + + for tag, d in next, data do + local left = d.left + local right = d.right + left = next(left) and left or false + right = next(right) and right or false + if left or right then + + local last = d.last + local feat = d.feat + + if last > 0 then + local triggersequence = { + -- no steps, see (!!) + features = { [tag] = feat or { dflt = { dflt = true, } } }, + flags = noflags, + name = "trigger_space_kerns", + order = { tag }, + type = "trigger_space_kerns", + left = left, + right = right, + } + insert(sequences,last,triggersequence) + d.last = d.last + 1 + spacekerns = true + end + end + + end + end + end + if not spacekerns then + spacekerns = false + end + resources.spacekerns = spacekerns + end + return spacekerns +end + +registerotffeature { + name = "spacekern", + description = "space kern injection", + default = true, + initializers = { + node = spaceinitializer, + }, +} diff --git a/tex/context/base/mkiv/font-lib.mkvi b/tex/context/base/mkiv/font-lib.mkvi index 7d4fbb71c..ac138da07 100644 --- a/tex/context/base/mkiv/font-lib.mkvi +++ b/tex/context/base/mkiv/font-lib.mkvi @@ -115,6 +115,7 @@ \registerctxluafile{font-imp-quality}{} \registerctxluafile{font-imp-italics}{} \registerctxluafile{font-imp-dimensions}{} +\registerctxluafile{font-imp-spacekerns}{} \doifelsefileexists{font-imp-scripts.lua} { \registerctxluafile{font-imp-scripts}{} diff --git a/tex/context/base/mkiv/font-ots.lua b/tex/context/base/mkiv/font-ots.lua index c37008d0e..c4f89c156 100644 --- a/tex/context/base/mkiv/font-ots.lua +++ b/tex/context/base/mkiv/font-ots.lua @@ -4235,9 +4235,26 @@ registerotffeature { } } +-- Moved here (up) a bit. This doesn't really belong in generic so it will +-- move to a context module some day. + +local function markinitializer(tfmdata,value) + local properties = tfmdata.properties + properties.checkmarks = value +end + +registerotffeature { + name = "checkmarks", + description = "check mark widths", + default = true, + initializers = { + node = markinitializer, + }, +} + -- This can be used for extra handlers, but should be used with care! We implement one -- here but some more can be found in the osd (script devanagary) file. Now watch out: --- when a handlers has steps, it is called as the other ones, but when we have no steps, +-- when a handler has steps, it is called as the other ones, but when we have no steps, -- we use a different call: -- -- function(head,dataset,sequence,initialrl,font,attr) @@ -4248,22 +4265,28 @@ registerotffeature { otf.handlers = handlers +if context then + return +else + -- todo: move the following code someplace else +end + local setspacekerns = nodes.injections.setspacekerns if not setspacekerns then os.exit() end -local tag = "kern" -- maybe some day a merge +local tag = "kern" -if fontfeatures then +-- if fontfeatures then - function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,attr) - local features = fontfeatures[font] - local enabled = features and features.spacekern and features[tag] - if enabled then - setspacekerns(font,sequence) - end - return head, enabled - end +-- function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,attr) +-- local features = fontfeatures[font] +-- local enabled = features and features.spacekern and features[tag] +-- if enabled then +-- setspacekerns(font,sequence) +-- end +-- return head, enabled +-- end -else -- generic (no hashes) +-- else -- generic (no hashes) function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,attr) local shared = fontdata[font].shared @@ -4275,7 +4298,7 @@ else -- generic (no hashes) return head, enabled end -end +-- end -- There are fonts out there that change the space but we don't do that kind of -- things in TeX. @@ -4393,7 +4416,7 @@ local function spaceinitializer(tfmdata,value) -- attr if rules then -- not now: analyze (simple) rules elseif not coverage then - -- nothng to do + -- nothing to do elseif kind == "gpos_single" then -- makes no sense in TeX elseif kind == "gpos_pair" then @@ -4477,17 +4500,3 @@ registerotffeature { node = spaceinitializer, }, } - -local function markinitializer(tfmdata,value) - local properties = tfmdata.properties - properties.checkmarks = value -end - -registerotffeature { - name = "checkmarks", - description = "check mark widths", - default = true, - initializers = { - node = markinitializer, - }, -} diff --git a/tex/context/base/mkiv/node-bck.lua b/tex/context/base/mkiv/node-bck.lua index a19e5e969..53ace65e9 100644 --- a/tex/context/base/mkiv/node-bck.lua +++ b/tex/context/base/mkiv/node-bck.lua @@ -170,7 +170,7 @@ end local function add_backgrounds(head,id,list) if list then - for current, id, subtype, list in nextlist, list do + for current, id, subtype, list in nextlist, list do if list then if alignments and subtype == alignmentlist_code then local l = add_alignbackgrounds(current,list) diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv index 326547a49..6ed1847c5 100644 --- a/tex/context/base/mkiv/spac-ver.mkiv +++ b/tex/context/base/mkiv/spac-ver.mkiv @@ -2168,12 +2168,15 @@ \doubleexpandafter\gobbleoneargument \fi\fi} -\unexpanded\def\useblankparameter#1% faster local variant - {\edef\m_spac_blank_asked{#1\c!blank}% +\unexpanded\def\usespecificblankparameter#1#2% faster local variant + {\edef\m_spac_blank_asked{#1#2}% \ifx\m_spac_blank_asked\empty\else \directvspacing\m_spac_blank_asked \fi} +\unexpanded\def\useblankparameter#1% faster local variant + {\usespecificblankparameter#1\c!blank} + %D Handy (and faster): \unexpanded\def\directvpenalty#1% diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index 95e132621..a3b5ea975 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 425fd5cb8..368a539cd 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/mkiv/strc-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi index 584cf915f..d6a6723d7 100644 --- a/tex/context/base/mkiv/strc-flt.mkvi +++ b/tex/context/base/mkiv/strc-flt.mkvi @@ -418,25 +418,34 @@ \noindent \gdef\lastcaptiontag{\strut\thecurrentfloatnumber}% was xdef ... needs checking \begingroup - \usefloatcaptionstyleandcolor\c!style\c!color - \clf_doifelselisthastitle{\currentfloat}\numexpr\currentfloatnumber\relax - \donothing - \emptyfloatcaptiontrue - \ifnofloatnumber - \else - \hbox{\usefloatcaptionstyleandcolor\c!headstyle\c!headcolor\thecurrentfloatnumber}% - \ifnofloatcaption \else \ifemptyfloatcaption \else - \doifelsenothing{\floatcaptionparameter\c!spaceinbetween} - {\floatcaptionparameter\c!headseparator\relax - \scratchskip\floatcaptionparameter\c!distance\relax - \dotfskip\scratchskip\emergencystretch.5\scratchskip} - {\blank[\floatcaptionparameter\c!spaceinbetween]}% - \fi \fi - \fi \ifnofloatcaption \global\d_strc_floats_caption_height\zeropoint \global\d_strc_floats_caption_depth \zeropoint \else + \usefloatcaptionstyleandcolor\c!style\c!color + \clf_doifelselisthastitle{\currentfloat}\numexpr\currentfloatnumber\relax + \donothing + \emptyfloatcaptiontrue + \ifnofloatnumber \else \ifnofloatcaption \else + \ifemptyfloatcaption + \hbox{\usefloatcaptionstyleandcolor\c!headstyle\c!headcolor\thecurrentfloatnumber}% + \else + \doifelsenothing{\floatcaptionparameter\c!spaceinbetween} + {\scratchskip\floatcaptionparameter\c!distance\relax + \setbox\scratchbox\hbox + {\usefloatcaptionstyleandcolor\c!headstyle\c!headcolor + \thecurrentfloatnumber + \floatcaptionparameter\c!headseparator + \dotfskip\scratchskip}% + \doifelse{\floatcaptionparameter\c!hang}\v!yes + {\leftskip\wd\scratchbox + \llap{\box\scratchbox}} + {\unhbox\scratchbox}% + \emergencystretch.5\scratchskip} + {\hbox{\usefloatcaptionstyleandcolor\c!headstyle\c!headcolor\thecurrentfloatnumber}% + \blank[\floatcaptionparameter\c!spaceinbetween]}% + \fi + \fi \fi \usefloatcaptionstyleandcolor\c!textstyle\c!textcolor \global\d_strc_floats_caption_height\strutheight \global\d_strc_floats_caption_depth \strutdepth diff --git a/tex/context/interface/mkii/keys-en.xml b/tex/context/interface/mkii/keys-en.xml index 2dcfbd236..d8c5c9c81 100644 --- a/tex/context/interface/mkii/keys-en.xml +++ b/tex/context/interface/mkii/keys-en.xml @@ -235,6 +235,7 @@ + @@ -1050,6 +1051,7 @@ + diff --git a/tex/context/interface/mkiv/context-en.xml b/tex/context/interface/mkiv/context-en.xml index a652126ab..0ebeb7d87 100644 --- a/tex/context/interface/mkiv/context-en.xml +++ b/tex/context/interface/mkiv/context-en.xml @@ -10484,6 +10484,9 @@ + + + diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf index f80e50193..3ae23f53b 100644 Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ diff --git a/tex/context/interface/mkiv/i-floats.xml b/tex/context/interface/mkiv/i-floats.xml index 8c15b2098..7714e5ccc 100644 --- a/tex/context/interface/mkiv/i-floats.xml +++ b/tex/context/interface/mkiv/i-floats.xml @@ -452,6 +452,9 @@ + + + diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf index 41c0f4f36..41f2d5ab8 100644 Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ diff --git a/tex/context/modules/common/s-abbreviations-logos.tex b/tex/context/modules/common/s-abbreviations-logos.tex index 81fb060d8..5dc37abcc 100644 --- a/tex/context/modules/common/s-abbreviations-logos.tex +++ b/tex/context/modules/common/s-abbreviations-logos.tex @@ -181,7 +181,6 @@ \logo [MAPPING] {map} \logo [MAPS] {Maps} \logo [MATHML] {MathML} -\logo [MB] {MB} \logo [METAFONT] {\MetaFont} \logo [LUAMETAFUN] {\Lua\wordboundary\MetaFun} \logo [METAFUN] {\MetaFun} @@ -216,6 +215,7 @@ \logo [OPENBSD] {OpenBSD} \logo [OPENMATH] {OpenMath} \logo [OPENTYPE] {OpenType} +\logo [OPENOFFICE] {OpenOffice} \logo [OPI] {opi} \logo [OSX] {os-x} \logo [OTEX] {Oriental \TeXsuffix} @@ -223,6 +223,7 @@ \logo [OTP] {otp} \logo [OVF] {ovf} \logo [PASCAL] {Pascal} +\logo [PATGEN] {Patgen} \logo [PCTEX] {pc\TeXsuffix} \logo [PDF] {pdf} \logo [PDFETEX] {pdfe\TeXsuffix} @@ -357,4 +358,9 @@ \logo [YOUTUBE] {YouTube} \logo [ZIP] {zip} +\logo [KB] {KB} +\logo [MB] {MB} +\logo [GB] {GB} +\logo [TB] {TB} + \stopmodule diff --git a/tex/context/modules/common/s-abbreviations-mixed.mkiv b/tex/context/modules/common/s-abbreviations-mixed.mkiv index f7b2121d0..d5294fd56 100644 --- a/tex/context/modules/common/s-abbreviations-mixed.mkiv +++ b/tex/context/modules/common/s-abbreviations-mixed.mkiv @@ -1,5 +1,5 @@ %D \module -%D [ file= s-abbreviations-mixed, % was: s-abr-04 +%D [ file=s-abbreviations-mixed, % was: s-abr-04 %D version=1996.01.01, %D title=\CONTEXT\ Style File, %D subtitle=General Abbreviations Mixed, diff --git a/tex/context/modules/mkiv/s-abbreviations-mixed.mkiv b/tex/context/modules/mkiv/s-abbreviations-mixed.mkiv index f7b2121d0..d5294fd56 100644 --- a/tex/context/modules/mkiv/s-abbreviations-mixed.mkiv +++ b/tex/context/modules/mkiv/s-abbreviations-mixed.mkiv @@ -1,5 +1,5 @@ %D \module -%D [ file= s-abbreviations-mixed, % was: s-abr-04 +%D [ file=s-abbreviations-mixed, % was: s-abr-04 %D version=1996.01.01, %D title=\CONTEXT\ Style File, %D subtitle=General Abbreviations Mixed, diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 49279839c..5ed7e29d4 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 : 12/24/19 19:44:19 +-- merge date : 12/27/19 16:34:49 do -- begin closure to overcome local limits and interference @@ -29615,19 +29615,27 @@ registerotffeature { plug=otf.pluginprocessor, } } +local function markinitializer(tfmdata,value) + local properties=tfmdata.properties + properties.checkmarks=value +end +registerotffeature { + name="checkmarks", + description="check mark widths", + default=true, + initializers={ + node=markinitializer, + }, +} otf.handlers=handlers +if context then + +--removed + +else +end local setspacekerns=nodes.injections.setspacekerns if not setspacekerns then os.exit() end -local tag="kern" -if fontfeatures then - function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,attr) - local features=fontfeatures[font] - local enabled=features and features.spacekern and features[tag] - if enabled then - setspacekerns(font,sequence) - end - return head,enabled - end -else +local tag="kern" function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,attr) local shared=fontdata[font].shared local features=shared and shared.features @@ -29637,7 +29645,6 @@ else end return head,enabled end -end local function hasspacekerns(data) local resources=data.resources local sequences=resources.sequences @@ -29822,18 +29829,6 @@ registerotffeature { node=spaceinitializer, }, } -local function markinitializer(tfmdata,value) - local properties=tfmdata.properties - properties.checkmarks=value -end -registerotffeature { - name="checkmarks", - description="check mark widths", - default=true, - initializers={ - node=markinitializer, - }, -} end -- closure -- cgit v1.2.3