summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
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/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/font-con.lua18
-rw-r--r--tex/context/base/mkiv/font-otl.lua40
-rw-r--r--tex/context/base/mkiv/font-pre.mkiv8
-rw-r--r--tex/context/base/mkiv/spac-chr.lua35
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24564 -> 24578 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin263628 -> 263632 bytes
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl2
-rw-r--r--tex/context/base/mkxl/driv-shp.lmt36
-rw-r--r--tex/context/base/mkxl/font-mat.mklx30
-rw-r--r--tex/context/base/mkxl/font-pre.mkxl16
-rw-r--r--tex/context/base/mkxl/math-act.lmt35
-rw-r--r--tex/context/base/mkxl/page-imp.mkxl13
-rw-r--r--tex/context/base/mkxl/spac-chr.lmt63
-rw-r--r--tex/context/base/mkxl/trac-vis.lmt4
-rw-r--r--tex/context/fonts/mkiv/bonum-math.lfg28
-rw-r--r--tex/context/fonts/mkiv/cambria-math.lfg2
-rw-r--r--tex/context/fonts/mkiv/concrete-math.lfg4
-rw-r--r--tex/context/fonts/mkiv/ebgaramond-math.lfg2
-rw-r--r--tex/context/fonts/mkiv/erewhon-math.lfg4
-rw-r--r--tex/context/fonts/mkiv/kpfonts-math.lfg4
-rw-r--r--tex/context/fonts/mkiv/stixtwo-math.lfg8
-rw-r--r--tex/context/fonts/mkiv/type-imp-cambria.mkiv16
-rw-r--r--tex/context/fonts/mkiv/type-imp-concrete.mkiv8
-rw-r--r--tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv8
-rw-r--r--tex/context/fonts/mkiv/type-imp-erewhon.mkiv8
-rw-r--r--tex/context/fonts/mkiv/type-imp-kpfonts.mkiv88
-rw-r--r--tex/context/fonts/mkiv/type-imp-libertinus.mkiv10
-rw-r--r--tex/context/fonts/mkiv/type-imp-lucida.mkiv12
-rw-r--r--tex/context/fonts/mkiv/type-imp-stix.mkiv2
-rw-r--r--tex/context/fonts/mkiv/type-imp-xcharter.mkiv8
-rw-r--r--tex/context/fonts/mkiv/xcharter-math.lfg4
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
37 files changed, 316 insertions, 212 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 0b5c9bdf9..ad689d99c 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{2022.11.14 22:54}
+\newcontextversion{2022.11.18 13:15}
%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 e4fb9c469..09f548302 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{2022.11.14 22:54}
+\edef\contextversion{2022.11.18 13:15}
%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 333a3dc54..db7e8f9a2 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{2022.11.14 22:54}
+\newcontextversion{2022.11.18 13:15}
%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 db4a0a66f..107874ffd 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{2022.11.14 22:54}
+\edef\contextversion{2022.11.18 13:15}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-con.lua b/tex/context/base/mkiv/font-con.lua
index 820e45f52..066ea33ed 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -390,15 +390,15 @@ function constructors.scale(tfmdata,specification)
local textsize = tonumber(specification.textsize) or scaledpoints
-- local forcedsize = tonumber(parameters.mathsize ) or 0 -- can be set by the feature "mathsize"
local extrafactor = tonumber(specification.factor ) or 1
- -- if (mathsize == 2 or forcedsize == 2) and parameters.scriptpercentage then
- -- scaledpoints = parameters.scriptpercentage * textsize / 100
- -- elseif (mathsize == 3 or forcedsize == 3) and parameters.scriptscriptpercentage then
- -- scaledpoints = parameters.scriptscriptpercentage * textsize / 100
- -- elseif forcedsize > 1000 then -- safeguard
- -- scaledpoints = forcedsize
- -- else
- -- -- in context x and xx also use mathsize
- -- end
+ -- if context then
+ -- -- do nothing, as we moved this upstream
+ -- elseif (mathsize == 2 or forcedsize == 2) and parameters.scriptpercentage then
+ -- scaledpoints = parameters.scriptpercentage * textsize / 100
+ -- elseif (mathsize == 3 or forcedsize == 3) and parameters.scriptscriptpercentage then
+ -- scaledpoints = parameters.scriptscriptpercentage * textsize / 100
+ -- elseif forcedsize > 1000 then -- safeguard
+ -- scaledpoints = forcedsize
+ -- end
targetparameters.mathsize = mathsize -- context specific
targetparameters.textsize = textsize -- context specific
-- targetparameters.forcedsize = forcedsize -- context specific
diff --git a/tex/context/base/mkiv/font-otl.lua b/tex/context/base/mkiv/font-otl.lua
index 4199db03f..fc101c9c9 100644
--- a/tex/context/base/mkiv/font-otl.lua
+++ b/tex/context/base/mkiv/font-otl.lua
@@ -643,25 +643,33 @@ local function read_from_otf(specification)
return tfmdata
end
--- local function checkmathsize(tfmdata,mathsize)
--- local mathdata = tfmdata.shared.rawdata.metadata.math
--- local mathsize = tonumber(mathsize)
--- if mathdata then -- we cannot use mathparameters as luatex will complain
--- local parameters = tfmdata.parameters
--- parameters.scriptpercentage = mathdata.ScriptPercentScaleDown
--- parameters.scriptscriptpercentage = mathdata.ScriptScriptPercentScaleDown
--- parameters.mathsize = mathsize -- only when a number !
+-- if context then
+--
+-- -- so the next will go to some generic module instead
+--
+-- else
+--
+-- local function checkmathsize(tfmdata,mathsize)
+-- local mathdata = tfmdata.shared.rawdata.metadata.math
+-- local mathsize = tonumber(mathsize)
+-- if mathdata then -- we cannot use mathparameters as luatex will complain
+-- local parameters = tfmdata.parameters
+-- parameters.scriptpercentage = mathdata.ScriptPercentScaleDown
+-- parameters.scriptscriptpercentage = mathdata.ScriptScriptPercentScaleDown
+-- parameters.mathsize = mathsize -- only when a number !
+-- end
-- end
--- end
--
--- registerotffeature {
--- name = "mathsize",
--- description = "apply mathsize specified in the font",
--- initializers = {
--- base = checkmathsize,
--- node = checkmathsize,
+-- registerotffeature {
+-- name = "mathsize",
+-- description = "apply mathsize specified in the font",
+-- initializers = {
+-- base = checkmathsize,
+-- node = checkmathsize,
+-- }
-- }
--- }
+--
+-- end
-- readers
diff --git a/tex/context/base/mkiv/font-pre.mkiv b/tex/context/base/mkiv/font-pre.mkiv
index 5cd107c23..91a2e818e 100644
--- a/tex/context/base/mkiv/font-pre.mkiv
+++ b/tex/context/base/mkiv/font-pre.mkiv
@@ -417,10 +417,14 @@
% [oldmath]
% [oldmath=yes]
-\ifdefined\mathnolimitsmode
- \mathnolimitsmode\plusone % font driven (only opentype)
+\ifdefined\variablefam
+ \variablefam\pluscclv
\fi
+% \ifdefined\mathnolimitsmode
+% \mathnolimitsmode\plusone % font driven (only opentype)
+% \fi
+
\ifdefined\mathitalicsmode
\mathitalicsmode\plusone % simple noads become zero
% \mathitalicsmode\plustwo % idem but inner is kept (for testing)
diff --git a/tex/context/base/mkiv/spac-chr.lua b/tex/context/base/mkiv/spac-chr.lua
index f9b4da31a..5bc8ae8f6 100644
--- a/tex/context/base/mkiv/spac-chr.lua
+++ b/tex/context/base/mkiv/spac-chr.lua
@@ -186,18 +186,20 @@ local methods = {
-- maybe also 0x0008 : backspace
+ -- Watch out: a return value means "remove"!
+
[0x001E] = function(head,current) -- kind of special
local next = getnext(current)
- head, current = remove_node(head,current,true)
if next and getid(next) == glue_code and getsubtype(next) == spaceskip_code then
local nextnext = getnext(next)
if nextnext then
local char, font = isglyph(nextnext)
if char and not canhavespace[char] then
- remove_node(head,next,true)
+ head, current = remove_node(head,next,true)
end
end
end
+ return head, current
end,
[0x001F] = function(head,current) -- kind of special
@@ -205,13 +207,13 @@ local methods = {
if next then
local char, font = isglyph(next)
if char then
- head, current = remove_node(head,current,true)
if not ispunctuation[char] then
local p = fontparameters[font]
head, current = insertnodebefore(head,current,new_glue(p.space,p.space_stretch,p.space_shrink))
end
end
end
+ return head, current
end,
[0x00A0] = function(head,current) -- nbsp
@@ -338,3 +340,30 @@ function characters.handler(head)
end
return head
end
+
+-- function characters.handler(head)
+-- local wiped = false
+-- for current, char in nextchar, head do
+-- local method = methods[char]
+-- if method then
+-- if wiped then
+-- wiped[#wiped+1] = current
+-- else
+-- wiped = { current }
+-- end
+-- if trace_characters then
+-- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
+-- end
+-- local h = method(head,current)
+-- if h then
+-- head = h
+-- end
+-- end
+-- end
+-- if wiped then
+-- for i=1,#wiped do
+-- head = remove_node(head,wiped[i],true)
+-- end
+-- end
+-- return head
+-- end
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 13b79a990..c5ec75d70 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 bd256d4ec..afc189b09 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/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index 48532ede6..2d953077e 100644
--- a/tex/context/base/mkxl/cont-new.mkxl
+++ b/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2022.11.14 22:54}
+\newcontextversion{2022.11.18 13:15}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl
index d111761b0..47a9ffb4b 100644
--- a/tex/context/base/mkxl/context.mkxl
+++ b/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2022.11.14 22:54}
+\immutable\edef\contextversion{2022.11.18 13:15}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/driv-shp.lmt b/tex/context/base/mkxl/driv-shp.lmt
index 1dfb73f17..941365f59 100644
--- a/tex/context/base/mkxl/driv-shp.lmt
+++ b/tex/context/base/mkxl/driv-shp.lmt
@@ -640,11 +640,7 @@ interfaces.implement {
arguments = { "integer", "integer", "box" },
actions = function(anchor,where,box)
box = tonut(box)
- if where < 0 then
- insert(befores[anchor],box)
- else
- insert(afters[anchor],box)
- end
+ insert(where < 0 and befores[anchor] or afters[anchor],box)
stored = true
end
}
@@ -655,31 +651,25 @@ local hlist_out, vlist_out do
local flushnode = nuts.flushnode
local function flushstored(current,source,before)
- local s = nil
- if before then
- s = rawget(befores,source)
- else
- s = rawget(afters,source)
- end
+ local t = before and befores or afters
+ local s = rawget(t,source)
if s then
for i=1,#s do
local si = s[i]
if si then
- finalize(si) -- tricky: we might need to group
- if getid(si) == vlist_code then
- vlist_out(current,si)
+ local box = si -- si[1]
+ finalize(box) -- tricky: we might need to group
+-- print(getanchors(box))
+ if getid(box) == vlist_code then
+ vlist_out(current,box)
else
- hlist_out(current,si)
+ hlist_out(current,box)
end
- flushnode(si)
+ flushnode(box)
s[i] = false
end
end
- if before then
- rawset(befores,source,nil)
- else
- rawset(afters,source,nil)
- end
+ rawset(t,source,nil)
end
end
@@ -834,8 +824,8 @@ local hlist_out, vlist_out do
-- cur_h = cur_h + wd - right -- hm, no left here?
cur_h = cur_h + wd -- see new tabulate alignment code
elseif id == glue_code then
--- local gluewidth = effectiveglue(current,this_box)
-local gluewidth = effectiveglue(current,this_box,true)
+ -- local gluewidth = effectiveglue(current,this_box)
+ local gluewidth = effectiveglue(current,this_box,true)
if gluewidth ~= 0 then
if subtype >= leaders_code then
local leader = getleader(current)
diff --git a/tex/context/base/mkxl/font-mat.mklx b/tex/context/base/mkxl/font-mat.mklx
index d9337d1b0..39ed13069 100644
--- a/tex/context/base/mkxl/font-mat.mklx
+++ b/tex/context/base/mkxl/font-mat.mklx
@@ -47,7 +47,8 @@
\ifdefined\??fontinstancebasic \else \installcorenamespace{fontinstancebasic} \fi
\ifdefined\??fontinstanceclass \else \installcorenamespace{fontinstanceclass} \fi
-%D The order 3 2 1 of size matters: needed for math-fbk relative size storage!
+%D The order 3 2 1 of size matters is historic and was needed for math-fbk relative
+%D size storage! It is no longer relevant.
%D \macros
%D {textonly}
@@ -124,13 +125,11 @@
\mutable\let\fontfamily\relax % for now public but it is a helper
-%newconditional\c_math_last_family_set
\newcount \c_math_last_family_used
\def\font_helpers_set_math_family_indeed_normal#mrtag#family% \fontface etc are also used later on
{\let\savedfontbody\fontbody
\let\fontfamily#family%
-% \settrue\c_math_last_family_set
\c_math_last_family_used\zerocount
% the order is important as we depend on known id's when completing fonts
% enabling is needed when we have fallbacks which spoils the families; per
@@ -163,7 +162,6 @@
\def\font_helpers_set_math_family_indeed_compact#mrtag#family% \fontface etc are also used later on
{\let\savedfontbody\fontbody
\let\fontfamily#family%
-% \settrue\c_math_last_family_set
\c_math_last_family_used\zerocount
\font_helpers_set_math_family_set_scales_compact
% the order is important as we depend on known id's when completing fonts
@@ -189,7 +187,6 @@
\let\defaultfontclass\fontclass % else truefontname falls back on the wrong one
\let\savedfontbody\fontbody
\let\fontfamily#familytag%
-% \settrue\c_math_last_family_set
\c_math_last_family_used\zerocount
\font_helpers_set_math_family_set_scales_normal
\let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusthree
@@ -211,11 +208,10 @@
\let\defaultfontclass\fontclass % else truefontname falls back on the wrong one
\let\savedfontbody\fontbody
\let\fontfamily#familytag%
-% \settrue\c_math_last_family_set
\c_math_last_family_used\zerocount
\let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone
\font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% defines
-% \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% enables / still needed ?
+ \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% enables / still needed ?
\scriptfont #mbfam\textfont#mbfam% reuses
\scriptscriptfont#mbfam\textfont#mbfam% reuses
\let\mathsizesuffix\empty \let\fontface\!!zerocount
@@ -480,14 +476,6 @@
\mutable\let\bigmathfontsize\empty
-% \permanent\protected\def\synchronizebigmath
-% {\ifx\bigmathfontsize\fontsize
-% % already in sync
-% \else
-% \let\bigmathfontsize\fontsize
-% \font_helpers_synchronize_math
-% \fi}
-
\permanent\protected\def\synchronizebigmath
{\ifconditional\c_font_compact
% no need
@@ -517,18 +505,6 @@
%D This is nasty, as the engine only stores the last set family parameters (per style) which
%D in our case can be bold.
-% \def\font_helpers_synchronize_math_parameters
-% {\textfont \zerocount\textfont \zerocount
-% \scriptfont \zerocount\scriptfont \zerocount
-% \scriptscriptfont\zerocount\scriptscriptfont\zerocount
-% \setfalse\c_math_last_family_set}
-%
-% \appendtoks
-% \ifconditional\c_math_last_family_set
-% \font_helpers_synchronize_math_parameters
-% \fi
-% \to\everybodyfont
-
\def\font_helpers_synchronize_math_parameters
{\c_math_last_family_used\mathstylefontid\textstyle\zerocount
\textfont \zerocount\textfont \zerocount
diff --git a/tex/context/base/mkxl/font-pre.mkxl b/tex/context/base/mkxl/font-pre.mkxl
index 2918a7e8c..2fc0aef26 100644
--- a/tex/context/base/mkxl/font-pre.mkxl
+++ b/tex/context/base/mkxl/font-pre.mkxl
@@ -433,6 +433,10 @@
\mathnolimitsmode\plusone % font driven (only opentype)
\fi
+% \ifdefined\variablefam
+% \variablefam 63
+% \fi
+
% \adaptfontfeature[*math*][mathnolimitsmode=1000] % only subscript
\definefontfeature
@@ -456,9 +460,13 @@
% \definefontfeature[virtualmath-l2r] [mathematics-l2r] % obsolete
% \definefontfeature[virtualmath-r2l] [mathematics-r2l] % obsolete
-\definefontfeature[math-text] [mathematics] % [ssty=no]
-\definefontfeature[math-script] [mathematics] [ssty=1,mathsize=yes]
-\definefontfeature[math-scriptscript] [mathematics] [ssty=2,mathsize=yes]
+\definefontfeature[math-text] [mathematics] [ssty=no]
+\definefontfeature[math-script] [mathematics] [ssty=1]
+\definefontfeature[math-scriptscript] [mathematics] [ssty=2]
+
+% \definefontfeature[math-text] [mathematics] [ssty=no]
+% \definefontfeature[math-script] [mathematics] [ssty=1,mathsize=yes]
+% \definefontfeature[math-scriptscript] [mathematics] [ssty=2,mathsize=yes]
% \definefontfeature[math-text-l2r] [mathematics-l2r] [ssty=no] % obsolete
% \definefontfeature[math-script-l2r] [mathematics-l2r] [ssty=1,mathsize=yes] % obsolete
@@ -516,7 +524,7 @@
%D \stoptext
%D \stoptyping
-\definefontfeature[primes] [primes=yes]
+\definefontfeature[primes] [primes=yes] % text
\definefontfeature[uppercasing][uppercasing=yes]
\definefontfeature[lowercasing][lowercasing=yes]
\definefontfeature[camelcasing][camelcasing=yes]
diff --git a/tex/context/base/mkxl/math-act.lmt b/tex/context/base/mkxl/math-act.lmt
index c18dcda29..2df708806 100644
--- a/tex/context/base/mkxl/math-act.lmt
+++ b/tex/context/base/mkxl/math-act.lmt
@@ -1453,6 +1453,7 @@ do
local kerns = parameters.list
if kerns then
local characters = target.characters
+ local done = false
local function setone(uc,data)
local function set(unicode)
unicode = mathgaps[unicode] or unicode
@@ -1463,6 +1464,13 @@ do
local k = data.topright ; if k and k ~= 0 then chardata.topright = k * width end
local k = data.bottomleft ; if k and k ~= 0 then chardata.bottomleft = k * width end
local k = data.bottomright ; if k and k ~= 0 then chardata.bottomright = k * width end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
end
end
local unicode = detail(characters,uc)
@@ -1478,6 +1486,7 @@ do
setone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
-- also smaller
end
+ feedback_tweak("kerns",target,original,done)
end
end
@@ -1489,8 +1498,10 @@ do
local margins = parameters.list
if margins then
local characters = target.characters
+ local done = false
local function setone(unicode,data)
- local chardata = characters[mathgaps[unicode] or unicode]
+ unicode = mathgaps[unicode] or unicode
+ local chardata = characters[unicode]
if chardata then
local width = chardata.width or 0
local total = (chardata.height or 0) + (chardata.depth or 0)
@@ -1498,12 +1509,20 @@ do
local k = data.right ; if k and k ~= 0 then chardata.rightmargin = k * width end
local k = data.top ; if k and k ~= 0 then chardata.topmargin = k * total end
local k = data.bottom ; if k and k ~= 0 then chardata.bottommargin = k * total end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
end
end
for unicode, data in next, margins do
setone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
-- also smaller
end
+ feedback_tweak("margins",target,original,done)
end
end
@@ -2874,6 +2893,8 @@ do
{ 0x208B, 0x2212, false },
}
+ datasets.addscripts = list
+
local function add(target,original,characters,unicode,template,super,baseheight,scale)
if not characters[unicode] then
local origdata = characters[template]
@@ -3178,6 +3199,7 @@ do
if list then
local characters = target.characters
local emwidth = target.parameters.quad
+ local done = false
for i=1,#list do
local entry = list[i]
local target = entry.target
@@ -3194,14 +3216,19 @@ do
local data = characters[unicode]
if data then
data.topovershoot = top * (quad or data.width or 0)
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[r] = true
+ else
+ done = { [r] = true }
+ end
end
end
- if trace_tweaking then
- report_mathtweak("setting overshoots for %a",target)
- end
end
end
end
+ feedback_tweak("setovershoots",target,original,done)
end
end
diff --git a/tex/context/base/mkxl/page-imp.mkxl b/tex/context/base/mkxl/page-imp.mkxl
index 4ef318985..5846fb22a 100644
--- a/tex/context/base/mkxl/page-imp.mkxl
+++ b/tex/context/base/mkxl/page-imp.mkxl
@@ -109,6 +109,19 @@
\protected\def\page_shipouts_rotate#1%
{\invokepagehandler\v!normal{\rotate[\c!rotation=\rootlayouttargetparameter\c!rotation]{#1}}}
+% inject an empty page after each page
+
+\def\page_shipouts_double#1%
+ {\page_shipouts_normal{#1}%
+ \page_shipouts_normal{\null}}
+
+\installshipoutmethod \v!doublesided
+ {\ifarrangingpages
+ \expandafter\page_shipouts_arrange
+ \else
+ \expandafter\page_shipouts_double
+ \fi}
+
% extension mechanism
\newcount\c_page_boxes_flush_n % set at the lua end
diff --git a/tex/context/base/mkxl/spac-chr.lmt b/tex/context/base/mkxl/spac-chr.lmt
index a71c4a0e1..7c8e02fb6 100644
--- a/tex/context/base/mkxl/spac-chr.lmt
+++ b/tex/context/base/mkxl/spac-chr.lmt
@@ -114,6 +114,7 @@ local function inject_nobreak_space(unicode,head,current,space,spacestretch,spac
local glue = new_glue(space,spacestretch,spaceshrink)
local penalty = new_penalty(10000)
setattrlist(glue,current)
+ setattrlist(penalty,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode) -- bombs
head, current = insertnodeafter(head,current,penalty)
@@ -149,6 +150,7 @@ function characters.replacenbsp(head,original)
end
function characters.replacenbspaces(head)
+ -- todo: wiping as in characters.handler(head)
local wipe = false
for current, char, font in nextglyph, head do -- can be anytime so no traversechar
if char == 0x00A0 then
@@ -186,9 +188,10 @@ local methods = {
-- maybe also 0x0008 : backspace
+ -- Watch out: a return value means "remove"!
+
[0x001E] = function(head,current) -- kind of special
local next = getnext(current)
- head, current = remove_node(head,current,true)
if next and getid(next) == glue_code and getsubtype(next) == spaceskip_code then
local nextnext = getnext(next)
if nextnext then
@@ -198,18 +201,19 @@ local methods = {
end
end
end
+ return head, current
end,
[0x001F] = function(head,current) -- kind of special
local next = getnext(current)
if next then
local char, font = isglyph(next)
- head, current = remove_node(head,current,true)
if char and not ispunctuation[char] then
local p = fontparameters[font]
head, current = insertnodebefore(head,current,new_glue(p.space,p.spacestretch,p.spaceshrink))
end
end
+ return head, current
end,
[0x00A0] = function(head,current) -- nbsp
@@ -309,34 +313,6 @@ local methods = {
characters.methods = methods
--- function characters.handler(head) -- todo: use traverseid
--- local current = head
--- while current do
--- local char, id = isglyph(current)
--- if char then
--- local next = getnext(current)
--- local method = methods[char]
--- if method then
--- if trace_characters then
--- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
--- end
--- local h = method(head,current)
--- if h then
--- head = remove_node(h,current,true)
--- end
--- end
--- current = next
--- else
--- current = getnext(current)
--- end
--- end
--- return head
--- end
-
--- this also works ok in math as we run over glyphs and these stay glyphs ... not sure
--- about scripts and such but that is not important anyway ... some day we can consider
--- special definitions in math
-
function characters.handler(head)
local wipe = false
for current, char in nextchar, head do
@@ -360,3 +336,30 @@ function characters.handler(head)
end
return head
end
+
+-- function characters.handler(head)
+-- local wiped = false
+-- for current, char in nextchar, head do
+-- local method = methods[char]
+-- if method then
+-- if wiped then
+-- wiped[#wiped+1] = current
+-- else
+-- wiped = { current }
+-- end
+-- if trace_characters then
+-- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
+-- end
+-- local h = method(head,current)
+-- if h then
+-- head = h
+-- end
+-- end
+-- end
+-- if wiped then
+-- for i=1,#wiped do
+-- head = remove_node(head,wiped[i],true)
+-- end
+-- end
+-- return head
+-- end
diff --git a/tex/context/base/mkxl/trac-vis.lmt b/tex/context/base/mkxl/trac-vis.lmt
index 09c0e020c..2b209e748 100644
--- a/tex/context/base/mkxl/trac-vis.lmt
+++ b/tex/context/base/mkxl/trac-vis.lmt
@@ -937,6 +937,10 @@ local ruledglyph do
-- line = linewidth,
-- type = "box",
-- },new_kern(-wd))
+-- if ht == 0 and dp == 0 then
+-- ht = linewidth/2
+-- dp = ht
+-- end
local info = (dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
width = wd,
height = ht,
diff --git a/tex/context/fonts/mkiv/bonum-math.lfg b/tex/context/fonts/mkiv/bonum-math.lfg
index cc7ae23dc..dfce35d80 100644
--- a/tex/context/fonts/mkiv/bonum-math.lfg
+++ b/tex/context/fonts/mkiv/bonum-math.lfg
@@ -131,12 +131,12 @@ return {
[0x27EB] = { topright = -0.1, bottomright = -0.1 },
["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
--
- -- [0x222B] = integral_variants, ["0x222B.variants.*"] = integral_variants, ["0x222B.parts.top"] = integral_top,
+ -- [0x222B] = integral_variants, ["0x222B.variants.*"] = integral_variants, ["0x222B.parts.top"] = integral_top,
["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint
- -- [0x222C] = integral_variants, ["0x222C.variants.*"] = integral_variants, ["0x222C.parts.top"] = integral_top,
+ -- [0x222C] = integral_variants, ["0x222C.variants.*"] = integral_variants, ["0x222C.parts.top"] = integral_top,
-- [0x222D] = integral_variants, ["0x222D.variants.*"] = integral_variants, ["0x222D.parts.top"] = integral_top, ["0x222D.parts.bottom"] = integral_bottom,
-- [0x222E] = integral_variants, ["0x222E.variants.*"] = integral_variants, ["0x222E.parts.top"] = integral_top, ["0x222E.parts.bottom"] = integral_bottom,
-- [0x222F] = integral_variants, ["0x222F.variants.*"] = integral_variants, ["0x222F.parts.top"] = integral_top, ["0x222F.parts.bottom"] = integral_bottom,
@@ -228,24 +228,24 @@ return {
[0x1D713] = { left = -.1, right = -.1 }, -- italic psi
[0x1D714] = { left = -.1, right = -.1 }, -- italic omega
- [0x003B1] = { left = -.1, right = -.1 }, -- upfight alpha
- [0x003B3] = { left = -.1, right = -.1 }, -- upfight gamma
- [0x003BA] = { left = -.1, right = -.1 }, -- upfight kappa
- [0x003BC] = { left = -.1, right = -.1 }, -- upfight mu
- [0x003C0] = { left = -.1, right = -.1 }, -- upfight pi
- [0x003C3] = { left = -.1, right = -.1 }, -- upfight sigma
- [0x003C5] = { left = -.1, right = -.1 }, -- upfight upsilon
- [0x003C6] = { left = -.1, right = -.1 }, -- upfight phi
- [0x003C8] = { left = -.1, right = -.1 }, -- upfight psi
- [0x003C9] = { left = -.1, right = -.1 }, -- upfight omega
+ [0x003B1] = { left = -.1, right = -.1 }, -- upright alpha
+ [0x003B3] = { left = -.1, right = -.1 }, -- upright gamma
+ [0x003BA] = { left = -.1, right = -.1 }, -- upright kappa
+ [0x003BC] = { left = -.1, right = -.1 }, -- upright mu
+ [0x003C0] = { left = -.1, right = -.1 }, -- upright pi
+ [0x003C3] = { left = -.1, right = -.1 }, -- upright sigma
+ [0x003C5] = { left = -.1, right = -.1 }, -- upright upsilon
+ [0x003C6] = { left = -.1, right = -.1 }, -- upright phi
+ [0x003C8] = { left = -.1, right = -.1 }, -- upright psi
+ [0x003C9] = { left = -.1, right = -.1 }, -- upright omega
-- Greek lowercase sans (bold, italic) can be improved
[0x1D451] = { left = -.1, right = -.1 }, -- italic d
[0x1D453] = { left = -.1, right = -.1 }, -- italic f
- [0x00394] = { left = .1, right = .1 }, -- upfight Delta
- [0x003A3] = { left = .1, right = .1 }, -- upfight Sigma
+ [0x00394] = { left = .1, right = .1 }, -- upright Delta
+ [0x003A3] = { left = .1, right = .1 }, -- upright Sigma
-- [0x0004A] = { left = .1, right = .1 }, -- J
[0x00046] = { left = .1, right = .1 }, -- F
diff --git a/tex/context/fonts/mkiv/cambria-math.lfg b/tex/context/fonts/mkiv/cambria-math.lfg
index 8feb94bcf..97cea6674 100644
--- a/tex/context/fonts/mkiv/cambria-math.lfg
+++ b/tex/context/fonts/mkiv/cambria-math.lfg
@@ -204,7 +204,7 @@ return {
},
{
tweak = "addfourier",
- variant = 1,
+ variant = 2,
},
-- { -- the ldots are squareshaped and the cdots are circular
-- tweak = "fixellipses",
diff --git a/tex/context/fonts/mkiv/concrete-math.lfg b/tex/context/fonts/mkiv/concrete-math.lfg
index 31ee4f1b9..c107cfdeb 100644
--- a/tex/context/fonts/mkiv/concrete-math.lfg
+++ b/tex/context/fonts/mkiv/concrete-math.lfg
@@ -75,6 +75,10 @@ return {
tweak = "addequals",
},
{
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
tweak = "setoptions",
set = { "ignorekerndimensions" }
},
diff --git a/tex/context/fonts/mkiv/ebgaramond-math.lfg b/tex/context/fonts/mkiv/ebgaramond-math.lfg
index 555b79bc1..afdd66279 100644
--- a/tex/context/fonts/mkiv/ebgaramond-math.lfg
+++ b/tex/context/fonts/mkiv/ebgaramond-math.lfg
@@ -230,7 +230,7 @@ return {
},
{
tweak = "addfourier",
- variant = 1,
+ variant = 2,
},
-- this is the mkiv section
{
diff --git a/tex/context/fonts/mkiv/erewhon-math.lfg b/tex/context/fonts/mkiv/erewhon-math.lfg
index 89b788b3f..cf2e7f28c 100644
--- a/tex/context/fonts/mkiv/erewhon-math.lfg
+++ b/tex/context/fonts/mkiv/erewhon-math.lfg
@@ -110,6 +110,10 @@ return {
tweak = "addequals",
},
{
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
tweak = "setoptions",
-- set = { "ignorekerndimensions" }
},
diff --git a/tex/context/fonts/mkiv/kpfonts-math.lfg b/tex/context/fonts/mkiv/kpfonts-math.lfg
index 8f2153077..385170aab 100644
--- a/tex/context/fonts/mkiv/kpfonts-math.lfg
+++ b/tex/context/fonts/mkiv/kpfonts-math.lfg
@@ -138,6 +138,10 @@ return {
tweak = "addequals",
},
{
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
tweak = "setoptions",
set = { "ignorekerndimensions" }
},
diff --git a/tex/context/fonts/mkiv/stixtwo-math.lfg b/tex/context/fonts/mkiv/stixtwo-math.lfg
index ab5b884ad..8e5489830 100644
--- a/tex/context/fonts/mkiv/stixtwo-math.lfg
+++ b/tex/context/fonts/mkiv/stixtwo-math.lfg
@@ -111,7 +111,7 @@ return {
["0x222B.parts.bottom"] = { bottomright = -0.30 }, -- int
-- ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint does not exist
-- ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint does not exist
- -- ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint does not exist
+ -- ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint does not exist
-- -- ["0x222B.variants.*"] = integral_variants, ["0x222B.parts.top"] = integral_top, ["0x222B.parts.bottom"] = integral_bottom,
-- ["0x222C.variants.*"] = integral_variants, ["0x222C.parts.top"] = integral_top, ["0x222C.parts.bottom"] = integral_bottom,
-- ["0x222D.variants.*"] = integral_variants, ["0x222D.parts.top"] = integral_top, ["0x222D.parts.bottom"] = integral_bottom,
@@ -209,6 +209,9 @@ return {
advance = 0.4,
},
{
+ tweak = "addactuarian",
+ },
+ {
tweak = "addfourier",
variant = 1,
},
@@ -220,7 +223,8 @@ return {
template = 0x2192,
sequence = {
{ glyph = "first", factor = 2 },
- { glyph = 0x2022, },
+-- { glyph = 0x2022 },
+ { glyph = 0x2218 },
{ glyph = "first", factor = 2 },
{ glyph = "last" },
}
diff --git a/tex/context/fonts/mkiv/type-imp-cambria.mkiv b/tex/context/fonts/mkiv/type-imp-cambria.mkiv
index 345778149..c8906df2c 100644
--- a/tex/context/fonts/mkiv/type-imp-cambria.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-cambria.mkiv
@@ -49,23 +49,23 @@
\starttypescript [\s!math] [cambria,cambria-m,cambria-a] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!math] [cambria-nt] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,mathextra}]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,mathextra}]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra}]
\stoptypescript
\starttypescript [\s!math] [cambria-x] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!math] [cambria-y] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!serif] [cambria,cambria-m,cambria-a,cambria-nt] [\s!name]
diff --git a/tex/context/fonts/mkiv/type-imp-concrete.mkiv b/tex/context/fonts/mkiv/type-imp-concrete.mkiv
index 0ecee3e8b..ff4033f81 100644
--- a/tex/context/fonts/mkiv/type-imp-concrete.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-concrete.mkiv
@@ -20,6 +20,8 @@
%\definefontfeature[default-slanted-concrete][default][slant=.2]
%\definefontfeature[none-slanted-concrete] [none] [slant=.2]
+ \doifunknownfontfeature {concrete-math-bold} {\definefontfeature[concrete-math-bold][boldened]}
+
\starttypescript [\s!serif] [concrete]
\definefontsynonym [\s!Serif] [\s!file:cmunorm] [\s!features=\s!default]
\definefontsynonym [\s!SerifItalic] [\s!file:cmunoti] [\s!features=\s!default]
@@ -54,12 +56,14 @@
\starttypescript [\s!math] [concrete] [\s!name]
\loadfontgoodies[concrete-math]
- \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,mathextra,concrete:mathextra},\s!goodies=concrete-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete:mathextra,mathextra},\s!goodies=concrete-math]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete-math-bold,concrete:mathextra,mathextra},\s!goodies=concrete-math]
\stoptypescript
\starttypescript [\s!math] [concrete-nt] [\s!name]
\loadfontgoodies[concrete-math]
- \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,mathextra,concrete:mathextra}]
+ \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete-math-bold,concrete:mathextra,mathextra}]
\stoptypescript
\starttypescript [concrete,concrete-nt]
diff --git a/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv b/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
index 1785eacc7..3be50a2de 100644
--- a/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
@@ -56,6 +56,8 @@
\starttypescriptcollection[ebgaramond]
+ \doifunknownfontfeature {ebgaramond-math-bold} {\definefontfeature[ebgaramond-math-bold][boldened]}
+
\starttypescript [\s!serif] [ebgaramond]
\setups[font:fallback:serif]
\definefontsynonym [\s!Serif] [\s!file:ebgaramond-regular] [\s!features=eb-garamond-normal]
@@ -71,11 +73,13 @@
\stoptypescript
\starttypescript [\s!math] [ebgaramond] [\s!name]
- \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=ebgaramond-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond:mathextra,mathextra},\s!goodies=ebgaramond-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond-math-bold,ebgaramond:mathextra,mathextra},\s!goodies=ebgaramond-math]
\stoptypescript
\starttypescript [\s!math] [ebgaramond-nt] [\s!name]
- \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
+ \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond-math-bold,ebgaramond:mathextra,mathextra}]
\stoptypescript
\starttypescript[ebgaramond,ebgaramond-nt]
diff --git a/tex/context/fonts/mkiv/type-imp-erewhon.mkiv b/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
index 5c705400f..c536caa0e 100644
--- a/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
@@ -20,6 +20,8 @@
%\definefontfeature[default-slanted-erewhon][default][slant=.2]
%\definefontfeature[none-slanted-erewhon] [none] [slant=.2]
+ \doifunknownfontfeature {erewhon-math-bold} {\definefontfeature[erewhon-math-bold][boldened]}
+
\starttypescript [\s!serif] [erewhon]
\definefontsynonym [\s!Serif] [\s!file:Erewhon-Regular] [\s!features=\s!default]
\definefontsynonym [\s!SerifItalic] [\s!file:Erewhon-Italic] [\s!features=\s!default]
@@ -49,11 +51,13 @@
\stoptypescript
\starttypescript [\s!math] [erewhon] [\s!name]
- \definefontsynonym [\s!MathRoman][\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon:mathextra,mathextra},\s!goodies=erewhon-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon:mathextra,mathextra},\s!goodies=erewhon-math]
+ \definefontsynonym [\s!MathRomanBold][\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon-math-bold,erewhon:mathextra,mathextra},\s!goodies=erewhon-math]
\stoptypescript
\starttypescript [\s!math] [erewhon-nt] [\s!name]
- \definefontsynonym [\s!MathRoman][\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRoman] [\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold][\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon-math-bold,erewhon:mathextra,mathextra}]
\stoptypescript
\starttypescript [erewhon,erewhon-nt]
diff --git a/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv b/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv
index 7f819fe3c..472619cd9 100644
--- a/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv
@@ -17,6 +17,11 @@
\doifunknownfontfeature {kp-sans-bold} {\definefontfeature[kp-sans-bold][boldened-15]}
+ \starttypescript [\s!math] [kpfonts,kpfonts-nt,kpfonts-bold,kpfonts-light,kpfonts-sans]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
+ \stoptypescript
+
\starttypescript [kpfonts,kpfonts-light,kpfonts-bold,kpfonts-sans,kpfonts-nt]
\loadfontgoodies[kpfonts-math]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!features=\s!default]
@@ -37,67 +42,62 @@
\definefontsynonym [\s!SerifBoldSlanted] [\s!SerifBoldItalic]
\stoptypescript
+ \starttypescript [\s!math] [kpfonts]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Semibold.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kpfonts-nt]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Semibold.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra}]
+ \stoptypescript
+
\starttypescript [\s!serif] [kpfonts-light]
\definefontsynonym [\s!Serif] [\s!file:KpRoman-Light.otf]
- \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-Semibold.otf]
+ \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-Regular.otf]
\definefontsynonym [\s!SerifItalic] [\s!file:KpRoman-LightItalic.otf]
- \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-SemiboldItalic.otf]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-Italic.otf]
\definefontsynonym [\s!SerifSlanted] [\s!SerifItalic]
\definefontsynonym [\s!SerifBoldSlanted] [\s!SerifBoldItalic]
\stoptypescript
- \starttypescript [\s!serif] [kpfonts-bold]
- \setups[\s!font:\s!fallback:\s!serif]
- \definefontsynonym [\s!Serif] [\s!file:KpRoman-Regular.otf]
- \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-Bold.otf]
- \definefontsynonym [\s!SerifItalic] [\s!file:KpRoman-Italic.otf]
- \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-BoldItalic.otf]
- \stoptypescript
-
- \starttypescript [\s!sans] [kpfonts,kpfonts-sans,kpfonts-light,kpfonts-bold,kpfonts-nt]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [\s!file:KpSans-Regular.otf]
- \definefontsynonym [\s!SansBold] [\s!file:KpSans-Bold.otf]
- \definefontsynonym [\s!SansItalic] [\s!file:KpSans-Italic.otf]
- \definefontsynonym [\s!SansBoldItalic] [\s!file:KpSans-BoldItalic.otf]
- \stoptypescript
-
- \starttypescript [\s!mono] [kpfonts,kpfonts-sans,kpfonts-light,kpfonts-bold,kpfonts-nt]
- \setups[\s!font:\s!fallback:\s!mono]
- \definefontsynonym [\s!Mono] [\s!file:KpMono-Regular.otf]
- \definefontsynonym [\s!MonoBold] [\s!file:KpMono-Bold.otf]
- \definefontsynonym [\s!MonoItalic] [\s!file:KpMono-Italic.otf]
- \definefontsynonym [\s!MonoBoldItalic] [\s!file:KpMono-BoldItalic.otf]
- \stoptypescript
-
- \starttypescript [\s!math] [kpfonts,kpfonts-nt,kpfonts-bold,kpfonts-light,kpfonts-sans]
- \checkedmapfontsize[\typescripttwo][\s!script] [.70]
- \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
- \stoptypescript
-
- \starttypescript [\s!math] [kpfonts]
- \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
- \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Semibold.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
+ \starttypescript [\s!math] [kpfonts-light]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Light.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
\stoptypescript
- \starttypescript [\s!math] [kpfonts-nt]
- \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
- \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Semibold.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
+ \starttypescript [\s!serif] [kpfonts-bold]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:KpRoman-Regular.otf]
+ \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-Bold.otf]
+ \definefontsynonym [\s!SerifItalic] [\s!file:KpRoman-Italic.otf]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-BoldItalic.otf]
\stoptypescript
\starttypescript [\s!math] [kpfonts-bold]
- \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
- \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Bold.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Bold.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
\stoptypescript
- \starttypescript [\s!math] [kpfonts-light]
- \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Light.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
- \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
+ \starttypescript [\s!sans] [kpfonts,kpfonts-sans,kpfonts-light,kpfonts-bold,kpfonts-nt]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:KpSans-Regular.otf]
+ \definefontsynonym [\s!SansBold] [\s!file:KpSans-Bold.otf]
+ \definefontsynonym [\s!SansItalic] [\s!file:KpSans-Italic.otf]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:KpSans-BoldItalic.otf]
\stoptypescript
\starttypescript [\s!math] [kpfonts-sans]
- \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Sans.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=kpfonts-math]
- \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Sans.otf] [\s!features={\s!math\mathsizesuffix,kp-sans-bold,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Sans.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Sans.otf] [\s!features={\s!math\mathsizesuffix,kp-sans-bold,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [kpfonts,kpfonts-sans,kpfonts-light,kpfonts-bold,kpfonts-nt]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:KpMono-Regular.otf]
+ \definefontsynonym [\s!MonoBold] [\s!file:KpMono-Bold.otf]
+ \definefontsynonym [\s!MonoItalic] [\s!file:KpMono-Italic.otf]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:KpMono-BoldItalic.otf]
\stoptypescript
\stoptypescriptcollection
diff --git a/tex/context/fonts/mkiv/type-imp-libertinus.mkiv b/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
index 6e084c14e..97e3b3493 100644
--- a/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
@@ -21,6 +21,8 @@
\starttypescriptcollection[libertinus]
+ \doifunknownfontfeature {libertinus-math-bold} {\definefontfeature[libertinus-math-bold][boldened]}
+
\starttypescript [\s!serif] [libertinus]
\definefontsynonym [LibertinusSerif-Regular] [\s!file:libertinusserif-regular]
\definefontsynonym [LibertinusSerif-Italic] [\s!file:libertinusserif-italic]
@@ -78,14 +80,14 @@
\starttypescript [\s!math] [libertinus] [\s!name]
\loadfontgoodies[libertinus-math]
- \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=libertinus-math.lfg]
- \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=libertinus-math.lfg]
+ \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus:mathextra,mathextra},\s!goodies=libertinus-math.lfg]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus-math-bold,libertinus:mathextra,mathextra},\s!goodies=libertinus-math.lfg]
\stoptypescript
\starttypescript [\s!math] [libertinus-nt] [\s!name]
\loadfontgoodies[libertinus-math]
- \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
- \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
+ \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus-math-bold,libertinus:mathextra,mathextra}]
\stoptypescript
\starttypescript [libertinus,libertinus-nt]
diff --git a/tex/context/fonts/mkiv/type-imp-lucida.mkiv b/tex/context/fonts/mkiv/type-imp-lucida.mkiv
index ced61dcd2..363b0d223 100644
--- a/tex/context/fonts/mkiv/type-imp-lucida.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-lucida.mkiv
@@ -21,6 +21,8 @@
\starttypescriptcollection[lucida-opentype]
+ \doifunknownfontfeature {lucida-math-bold} {\definefontfeature[lucida-math-bold][boldened]}
+
\starttypescript [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
\loadfontgoodies[lucida-opentype-math]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!features=\s!default]
@@ -74,13 +76,15 @@
\stoptypescript
\starttypescript [\s!math] [lucida,lucidaot,lucidadk]
- \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra},\s!goodies=lucida-math]
- \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra},\s!goodies=lucida-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,lucida:mathextra,mathextra},\s!goodies=lucida-math]
+% \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra},\s!goodies=lucida-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,lucida-math-bold,mathlucida,lucida:mathextra,mathextra},\s!goodies=lucida-math]
\stoptypescript
\starttypescript [\s!math] [lucidaot-nt,lucida-nt]
- \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra}]
- \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra}]
+ \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,lucida:mathextra,mathextra}]
+% \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,lucida-math-bold,mathlucida,lucida:mathextra,mathextra}]
\stoptypescript
\starttypescript [\s!handwriting] [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
diff --git a/tex/context/fonts/mkiv/type-imp-stix.mkiv b/tex/context/fonts/mkiv/type-imp-stix.mkiv
index 503566318..3ac0b7257 100644
--- a/tex/context/fonts/mkiv/type-imp-stix.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-stix.mkiv
@@ -53,7 +53,7 @@
\starttypescript [\s!math] [stix-nt,stixtwo-nt] [\s!name]
\definefontsynonym[\s!MathRoman][\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwomath,stixtwo:mathextra,mathextra}]
- \definefontsynonym[\s!MathRoman][\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwo-math-bold,stixtwomath,stixtwo:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwo-math-bold,stixtwomath,stixtwo:mathextra,mathextra}]
\stoptypescript
\starttypescript [\s!serif] [stix,stixtwo,xits] [\s!name]
diff --git a/tex/context/fonts/mkiv/type-imp-xcharter.mkiv b/tex/context/fonts/mkiv/type-imp-xcharter.mkiv
index d27f4bcba..6b6e5fc4e 100644
--- a/tex/context/fonts/mkiv/type-imp-xcharter.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-xcharter.mkiv
@@ -16,6 +16,8 @@
% \definefontfeature[default-slanted-xcharter][default][slant=.2]
% \definefontfeature[none-slanted-xcharter] [none] [slant=.2]
+ \doifunknownfontfeature {xcharter-math-bold} {\definefontfeature[xcharter-math-bold][boldened]}
+
\starttypescript [\s!serif] [xcharter] [\s!name]
\definefontsynonym [\s!Serif] [\s!file:XCharter-Roman] [\s!features=\s!default]
\definefontsynonym [\s!SerifItalic] [\s!file:XCharter-Italic] [\s!features=\s!default]
@@ -45,11 +47,13 @@
\stoptypescript
\starttypescript [\s!math] [xcharter][\s!name]
- \definefontsynonym [\s!MathRoman][\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter:mathextra,mathextra},\s!goodies=xcharter-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter:mathextra,mathextra},\s!goodies=xcharter-math]
+ \definefontsynonym [\s!MathRomanBold][\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter-math-bold,xcharter:mathextra,mathextra},\s!goodies=xcharter-math]
\stoptypescript
\starttypescript [\s!math] [xcharter-nt] [\s!name]
- \definefontsynonym [\s!MathRoman][\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRoman] [\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold][\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter-math-bold,xcharter:mathextra,mathextra}]
\stoptypescript
\starttypescript [xcharter,xcharter-nt]
diff --git a/tex/context/fonts/mkiv/xcharter-math.lfg b/tex/context/fonts/mkiv/xcharter-math.lfg
index c9b5a2690..be09720d1 100644
--- a/tex/context/fonts/mkiv/xcharter-math.lfg
+++ b/tex/context/fonts/mkiv/xcharter-math.lfg
@@ -108,6 +108,10 @@ return {
tweak = "addequals",
},
{
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
tweak = "setoptions",
-- set = { "ignorekerndimensions" }
},
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index c249372fb..376fa61db 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 : 2022-11-14 22:54
+-- merge date : 2022-11-18 13:15
do -- begin closure to overcome local limits and interference