summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2019-12-27 17:59:09 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2019-12-27 17:59:09 +0100
commitede5a2aae42ff502be35d800e97271cf0bdc889b (patch)
tree47e50c111004bf97110d2ebdf6b92e3d2767a367 /tex
parentd40e81dea53da7bbc91df306814003f7720a167f (diff)
downloadcontext-ede5a2aae42ff502be35d800e97271cf0bdc889b.tar.gz
2019-12-27 16:45:00
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-en.mkii2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkxl2
-rw-r--r--tex/context/base/mkiv/file-job.lua10
-rw-r--r--tex/context/base/mkiv/font-imp-spacekerns.lua258
-rw-r--r--tex/context/base/mkiv/font-lib.mkvi1
-rw-r--r--tex/context/base/mkiv/font-ots.lua65
-rw-r--r--tex/context/base/mkiv/node-bck.lua2
-rw-r--r--tex/context/base/mkiv/spac-ver.mkiv7
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26568 -> 26608 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin269667 -> 269667 bytes
-rw-r--r--tex/context/base/mkiv/strc-flt.mkvi39
-rw-r--r--tex/context/interface/mkii/keys-en.xml2
-rw-r--r--tex/context/interface/mkiv/context-en.xml3
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin894235 -> 894023 bytes
-rw-r--r--tex/context/interface/mkiv/i-floats.xml3
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin61165 -> 61165 bytes
-rw-r--r--tex/context/modules/common/s-abbreviations-logos.tex8
-rw-r--r--tex/context/modules/common/s-abbreviations-mixed.mkiv2
-rw-r--r--tex/context/modules/mkiv/s-abbreviations-mixed.mkiv2
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua45
24 files changed, 375 insertions, 84 deletions
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
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 425fd5cb8..368a539cd 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-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 @@
<cd:variable name='handwritten' value='handwritten'/>
<cd:variable name='hang' value='hang'/>
<cd:variable name='hanging' value='hanging'/>
+ <cd:variable name='hangingboth' value='hangingboth'/>
<cd:variable name='head' value='head'/>
<cd:variable name='header' value='header'/>
<cd:variable name='headintext' value='headintext'/>
@@ -1050,6 +1051,7 @@
<cd:constant name='overprint' value='overprint'/>
<cd:constant name='ownerpassword' value='ownerpassword'/>
<cd:constant name='ownnumber' value='ownnumber'/>
+ <cd:constant name='packcriterium' value='packcriterium'/>
<cd:constant name='page' value='page'/>
<cd:constant name='pageboundaries' value='pageboundaries'/>
<cd:constant name='pagecolor' value='pagecolor'/>
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 @@
<cd:parameter name="headseparator">
<cd:constant type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
<cd:parameter name="inbetween">
<cd:constant type="cd:command"/>
</cd:parameter>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index f80e50193..3ae23f53b 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files 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 @@
<cd:parameter name="headseparator">
<cd:constant type="cd:text"/>
</cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
<cd:parameter name="inbetween">
<cd:constant type="cd:command"/>
</cd:parameter>
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 41c0f4f36..41f2d5ab8 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files 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