summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metapost/context/base/mpxl/mp-lmtx.mpxl63
-rw-r--r--scripts/context/lua/mtx-fonts.lua2
-rw-r--r--source/luametatex/source/tex/texmaincontrol.c2
-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-cs.mkii4
-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-cff.lua80
-rw-r--r--tex/context/base/mkiv/font-enc.lua2
-rw-r--r--tex/context/base/mkiv/font-mis.lua2
-rw-r--r--tex/context/base/mkiv/font-shp.lua2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24598 -> 24576 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin265646 -> 265606 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/font-onr.lmt14
-rw-r--r--tex/context/base/mkxl/font-otl.lmt2
-rw-r--r--tex/context/base/mkxl/font-tpk.lmt2
-rw-r--r--tex/context/base/mkxl/lpdf-lmt.lmt5
-rw-r--r--tex/context/base/mkxl/math-act.lmt14
-rw-r--r--tex/context/base/mkxl/math-fnt.lmt5
-rw-r--r--tex/context/base/mkxl/math-vfu.lmt95
-rw-r--r--tex/context/interface/mkii/keys-cs.xml4
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua45
25 files changed, 182 insertions, 173 deletions
diff --git a/metapost/context/base/mpxl/mp-lmtx.mpxl b/metapost/context/base/mpxl/mp-lmtx.mpxl
index e6daff660..edbc44bd2 100644
--- a/metapost/context/base/mpxl/mp-lmtx.mpxl
+++ b/metapost/context/base/mpxl/mp-lmtx.mpxl
@@ -1016,6 +1016,7 @@ presetparameters "chart" [
originsize = 1mm,
trace = false,
showlabels = true,
+ showlegend = true,
center = false,
samples = { },
@@ -1145,32 +1146,34 @@ vardef lmt_do_chart_text(expr s, i, value) =
enddef ;
def lmt_do_chart_legend =
- n := getparametercount "legend" ;
- if n > 0 :
- save dx, dy, p, l, w, o, d, ddy ; picture l ;
- dx := xpart urcorner currentpicture + EmWidth ;
- dy := ypart urcorner currentpicture ;
- labelcolor := getparameter "legendcolor" ;
- labelstyle := getparameter "legendstyle" ;
- w := 2EmWidth ;
- o := .25EmWidth ;
- d := ExHeight ;
- ddy := .8LineHeight ;
- for i=1 upto n :
- dy := dy - ddy ;
- l := lmt_text [
- text = getparameter "legend" i,
- anchor = "rt"
- style = labelstyle,
- color = labelcolor,
- background = "",
- ] ;
- fill leftboundary l rightenlarged w
- shifted (dx,dy+d)
- withcolor getparameter "fillcolors" i ;
- draw l
- shifted (dx+w+o,dy+d) ;
- endfor ;
+ if getparameter "showlegend" :
+ n := getparametercount "legend" ;
+ if n > 0 :
+ save dx, dy, p, l, w, o, d, ddy ; picture l ;
+ dx := xpart urcorner currentpicture + EmWidth ;
+ dy := ypart urcorner currentpicture ;
+ labelcolor := getparameter "legendcolor" ;
+ labelstyle := getparameter "legendstyle" ;
+ w := 2EmWidth ;
+ o := .25EmWidth ;
+ d := ExHeight ;
+ ddy := .8LineHeight ;
+ for i=1 upto n :
+ dy := dy - ddy ;
+ l := lmt_text [
+ text = getparameter "legend" i,
+ anchor = "rt"
+ style = labelstyle,
+ color = labelcolor,
+ background = "",
+ ] ;
+ fill leftboundary l rightenlarged w
+ shifted (dx,dy+d)
+ withcolor getparameter "fillcolors" i ;
+ draw l
+ shifted (dx+w+o,dy+d) ;
+ endfor ;
+ fi ;
fi ;
enddef ;
@@ -1319,14 +1322,14 @@ vardef lmt_do_chart_histogram =
endfor ;
endfor ;
setbounds currentpicture to unitsquare xyscaled (maxwidth,height) ;
- for s = 1 upto nofsamplesets :
- if getparameter "showlabels" :
+ if getparameter "showlabels" :
+ for s = 1 upto nofsamplesets :
for i = 1 upto nofsamples :
draw lmt_do_chart_text (s,i,getparameter "samples" s i)
shifted (nofsamplesets*((i-1)*width)+width/2+(s-1)*width+(i-1)*distance,0) ;
endfor ;
- fi ;
- endfor ;
+ endfor ;
+ fi ;
lmt_do_chart_legend ;
fi ;
lmt_do_chart_stop ;
diff --git a/scripts/context/lua/mtx-fonts.lua b/scripts/context/lua/mtx-fonts.lua
index ab04cec13..37107ea1e 100644
--- a/scripts/context/lua/mtx-fonts.lua
+++ b/scripts/context/lua/mtx-fonts.lua
@@ -16,7 +16,7 @@ local lower, gsub = string.lower, string.gsub
local concat = table.concat
local write_nl = (logs and logs.writer) or (texio and texio.write_nl) or print
-local otlversion = 3.132
+local otlversion = 3.133
local helpinfo = [[
<?xml version="1.0"?>
diff --git a/source/luametatex/source/tex/texmaincontrol.c b/source/luametatex/source/tex/texmaincontrol.c
index 783de2b8b..8af8020a7 100644
--- a/source/luametatex/source/tex/texmaincontrol.c
+++ b/source/luametatex/source/tex/texmaincontrol.c
@@ -1148,7 +1148,7 @@ static void tex_aux_run_new_paragraph(void) {
void tex_page_boundary_message(const char *s, halfword n)
{
- if (tracing_pages_par >= 0) {
+ if (tracing_pages_par > 0) {
tex_begin_diagnostic();
tex_print_format("[page: boundary, %s, trigger %i]", s, n);
tex_end_diagnostic();
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 37361a1dc..c61c97d8a 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{2023.02.06 17:55}
+\newcontextversion{2023.02.07 19:02}
%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 ea7523043..b62aa3a85 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{2023.02.06 17:55}
+\edef\contextversion{2023.02.07 19:02}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-cs.mkii b/tex/context/base/mkii/mult-cs.mkii
index 8f5571627..b8c7f3fda 100644
--- a/tex/context/base/mkii/mult-cs.mkii
+++ b/tex/context/base/mkii/mult-cs.mkii
@@ -450,6 +450,7 @@
\setinterfacevariable{printable}{tisknutelne}
\setinterfacevariable{process}{process}
\setinterfacevariable{product}{produkt}
+\setinterfacevariable{profile}{profile}
\setinterfacevariable{program}{program}
\setinterfacevariable{project}{projekt}
\setinterfacevariable{protected}{chranene}
@@ -591,6 +592,7 @@
\setinterfacevariable{temporary}{docasne}
\setinterfacevariable{test}{test}
\setinterfacevariable{text}{text}
+\setinterfacevariable{textdisplay}{textdisplay}
\setinterfacevariable{textnote}{textnote}
\setinterfacevariable{three}{tri}
\setinterfacevariable{thursday}{ctvrtek}
@@ -718,6 +720,7 @@
\setinterfaceconstant{bookmark}{zalozka}
\setinterfaceconstant{bottom}{spodek}
\setinterfaceconstant{bottomafter}{bottomafter}
+\setinterfaceconstant{bottomalign}{bottomalign}
\setinterfaceconstant{bottombefore}{bottombefore}
\setinterfaceconstant{bottomcolor}{bottomcolor}
\setinterfaceconstant{bottomcommand}{bottomcommand}
@@ -1332,6 +1335,7 @@
\setinterfaceconstant{toffset}{toffset}
\setinterfaceconstant{tolerance}{tolerance}
\setinterfaceconstant{top}{vrsek}
+\setinterfaceconstant{topalign}{topalign}
\setinterfaceconstant{topcolor}{topcolor}
\setinterfaceconstant{topcommand}{topcommand}
\setinterfaceconstant{topdistance}{vzdalenostvrsku}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 97de2e2d5..d524240e6 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2023.02.06 17:55}
+\newcontextversion{2023.02.07 19:02}
%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 ee8b3bfe0..1e3ce084e 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -49,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2023.02.06 17:55}
+\edef\contextversion{2023.02.07 19:02}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-cff.lua b/tex/context/base/mkiv/font-cff.lua
index ee6b843bc..c71c3aef3 100644
--- a/tex/context/base/mkiv/font-cff.lua
+++ b/tex/context/base/mkiv/font-cff.lua
@@ -1714,7 +1714,8 @@ end
-- todo: round in blend
- local encode = { }
+ local encode = { }
+ local typeone = false
-- this eventually can become a helper
@@ -1865,7 +1866,7 @@ end
-- stack[top] = -t*256 + 251*256 - tab[i+1] - 108
stack[top] = -t*256 + 64148 - tab[i+1]
i = i + 2
- elseif version == "cff" then
+ elseif typeone then
local n = 0x1000000 * tab[i+1] + 0x10000 * tab[i+2] + 0x100 * tab[i+3] + tab[i+4]
if n >= 0x8000000 then
n = n - 0xFFFFFFFF - 1
@@ -2282,13 +2283,14 @@ result = nil
return privatedata.nominalwidthx or 0, privatedata.defaultwidthx or 0
end
- parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams,nobias)
+ parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams,nobias,istypeone)
local dictionary = data.dictionaries[1]
local charstrings = dictionary.charstrings
keepcurve = doshapes
version = tversion
+ typeone = istypeone or false
strings = data.strings
globals = data.routines or { }
locals = dictionary.subroutines or { }
@@ -2526,7 +2528,7 @@ local function readnoselect(f,fontdata,data,glyphs,doshapes,version,streams)
parseprivates(data,data.dictionaries)
readlocals(f,data,dictionary,version)
startparsing(fontdata,data,streams)
- parsecharstrings(fontdata,data,glyphs,doshapes,version,streams)
+ parsecharstrings(fontdata,data,glyphs,doshapes,version,streams,false)
stopparsing(fontdata,data)
end
@@ -2746,38 +2748,38 @@ end
-- temporary helper needed for checking backend patches
-function readers.cffcheck(filename)
- local f = io.open(filename,"rb")
- if f then
- local fontdata = {
- glyphs = { },
- }
- local header = readheader(f)
- if header.major ~= 1 then
- report("only version %s is supported for table %a",1,"cff")
- return
- end
- local names = readfontnames(f)
- local dictionaries = readtopdictionaries(f)
- local strings = readstrings(f)
- local glyphs = { }
- local data = {
- header = header,
- names = names,
- dictionaries = dictionaries,
- strings = strings,
- glyphs = glyphs,
- nofglyphs = 0,
- }
- --
- parsedictionaries(data,dictionaries,"cff")
- --
- local cid = data.dictionaries[1].cid
- if cid and cid.fdselect then
- readfdselect(f,fontdata,data,glyphs,false)
- else
- readnoselect(f,fontdata,data,glyphs,false)
- end
- return data
- end
-end
+-- function readers.cffcheck(filename)
+-- local f = io.open(filename,"rb")
+-- if f then
+-- local fontdata = {
+-- glyphs = { },
+-- }
+-- local header = readheader(f)
+-- if header.major ~= 1 then
+-- report("only version %s is supported for table %a",1,"cff")
+-- return
+-- end
+-- local names = readfontnames(f)
+-- local dictionaries = readtopdictionaries(f)
+-- local strings = readstrings(f)
+-- local glyphs = { }
+-- local data = {
+-- header = header,
+-- names = names,
+-- dictionaries = dictionaries,
+-- strings = strings,
+-- glyphs = glyphs,
+-- nofglyphs = 0,
+-- }
+-- --
+-- parsedictionaries(data,dictionaries,"cff")
+-- --
+-- local cid = data.dictionaries[1].cid
+-- if cid and cid.fdselect then
+-- readfdselect(f,fontdata,data,glyphs,false)
+-- else
+-- readnoselect(f,fontdata,data,glyphs,false)
+-- end
+-- return data
+-- end
+-- end
diff --git a/tex/context/base/mkiv/font-enc.lua b/tex/context/base/mkiv/font-enc.lua
index 608539c59..f2f0595dd 100644
--- a/tex/context/base/mkiv/font-enc.lua
+++ b/tex/context/base/mkiv/font-enc.lua
@@ -26,7 +26,7 @@ local report_encoding = logs.reporter("fonts","encoding")
local encodings = fonts.encodings or { }
fonts.encodings = encodings
-encodings.version = 1.03
+encodings.version = 1.04
encodings.cache = containers.define("fonts", "enc", fonts.encodings.version, true)
encodings.known = allocate { -- sort of obsolete
texnansi = true,
diff --git a/tex/context/base/mkiv/font-mis.lua b/tex/context/base/mkiv/font-mis.lua
index 42dc0bd3c..f721be0ef 100644
--- a/tex/context/base/mkiv/font-mis.lua
+++ b/tex/context/base/mkiv/font-mis.lua
@@ -21,7 +21,7 @@ local readers = otf.readers
if readers then
- otf.version = otf.version or 3.132
+ otf.version = otf.version or 3.133
otf.cache = otf.cache or containers.define("fonts", "otl", otf.version, true)
function fonts.helpers.getfeatures(name,save)
diff --git a/tex/context/base/mkiv/font-shp.lua b/tex/context/base/mkiv/font-shp.lua
index 843f75eb8..197a3f1cc 100644
--- a/tex/context/base/mkiv/font-shp.lua
+++ b/tex/context/base/mkiv/font-shp.lua
@@ -17,7 +17,7 @@ local pfb = fonts.handlers.pfb
local hashes = fonts.hashes
local identifiers = hashes.identifiers
-local version = otf.version or 0.014
+local version = otf.version or 0.015
local shapescache = containers.define("fonts", "shapes", version, true)
local streamscache = containers.define("fonts", "streams", version, true)
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 4395a2a82..cf4d8480a 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 96871e62a..258228978 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 549404709..9a267bc5f 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{2023.02.06 17:55}
+\newcontextversion{2023.02.07 19:02}
%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 e51c3d732..143c67ffb 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{2023.02.06 17:55}
+\immutable\edef\contextversion{2023.02.07 19:02}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/font-onr.lmt b/tex/context/base/mkxl/font-onr.lmt
index f48b8e545..2c18f6e89 100644
--- a/tex/context/base/mkxl/font-onr.lmt
+++ b/tex/context/base/mkxl/font-onr.lmt
@@ -44,7 +44,7 @@ afm.version = 1.513 -- incrementing this number one up will force a
local pfb = handlers.pfb or { }
handlers.pfb = pfb
-pfb.version = 1.000
+pfb.version = 1.002
local readers = afm.readers or { }
afm.readers = readers
@@ -212,6 +212,7 @@ do
+ C("FontName") * nam
+ C("FontMatrix") * arr
+ C("FontBBox") * arr
+ + C("FontType") * num
) ) / function (t,k,v) t[lower(k)] = v end
+ P(1)
)^0 * Carg(1)
@@ -278,8 +279,12 @@ do
binary = decrypt(binary,55665,4)
- encoding = names or lpegmatch(p_filterencoding,ascii)
- metadata = names or lpegmatch(p_filtermetadata,ascii,1,{})
+ if not encoding then
+ encoding = lpegmatch(p_filterencoding,ascii)
+ end
+ if not metadata then
+ metadata = lpegmatch(p_filtermetadata,ascii,1,{})
+ end
glyphs = { }
routines = { }
@@ -299,8 +304,9 @@ do
}
},
}
+ local version = metadata.FontType or 1
-- only cff 1 in type 1 fonts
- fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams,true)
+ fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams,true,true)
elseif not names then
lpegmatch(p_filternames,binary,1,filename)
end
diff --git a/tex/context/base/mkxl/font-otl.lmt b/tex/context/base/mkxl/font-otl.lmt
index 0d654edf6..065a2c2ee 100644
--- a/tex/context/base/mkxl/font-otl.lmt
+++ b/tex/context/base/mkxl/font-otl.lmt
@@ -52,7 +52,7 @@ local report_otf = logs.reporter("fonts","otf loading")
local fonts = fonts
local otf = fonts.handlers.otf
-otf.version = 3.131 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.version = 3.133 -- beware: also sync font-mis.lua and in mtx-fonts
otf.cache = containers.define("fonts", "otl", otf.version, true)
otf.svgcache = containers.define("fonts", "svg", otf.version, true)
otf.pngcache = containers.define("fonts", "png", otf.version, true)
diff --git a/tex/context/base/mkxl/font-tpk.lmt b/tex/context/base/mkxl/font-tpk.lmt
index 2ad74d2a9..d265433c5 100644
--- a/tex/context/base/mkxl/font-tpk.lmt
+++ b/tex/context/base/mkxl/font-tpk.lmt
@@ -44,7 +44,7 @@ if not fonts then fonts = { handlers = { tfm = { } } } end
local handlers = fonts.handlers
local tfm = handlers.tfm or { }
handlers.tfm = tfm
-tfm.version = 1.005
+tfm.version = 1.006
local readers = tfm.readers or { }
tfm.readers = readers
diff --git a/tex/context/base/mkxl/lpdf-lmt.lmt b/tex/context/base/mkxl/lpdf-lmt.lmt
index 6c321ec54..1d47c1620 100644
--- a/tex/context/base/mkxl/lpdf-lmt.lmt
+++ b/tex/context/base/mkxl/lpdf-lmt.lmt
@@ -1192,6 +1192,7 @@ local flushimage do
local r = boxresources[objnum]
if r then
flushlist(l.list)
+ l.list = nil -- added
end
boxresources[objnum] = l
if immediate then
@@ -2131,6 +2132,10 @@ local finalize do
finalize = function(driver,details)
+ if not details then
+ report("something is wrong, no details in 'finalize'")
+ end
+
level = level + 1
pdf_goto_pagemode() -- for now
diff --git a/tex/context/base/mkxl/math-act.lmt b/tex/context/base/mkxl/math-act.lmt
index 3a7324586..faa0d2ae5 100644
--- a/tex/context/base/mkxl/math-act.lmt
+++ b/tex/context/base/mkxl/math-act.lmt
@@ -3452,8 +3452,18 @@ do
}
local chars = fontchars[id]
local dropin = fontdata[id]
- local index = #fonts + 1
- fonts[index] = { id = id, size = size }
+ local index = false
+ for i=1,#fonts do
+ local f = fonts[i]
+ if f.id == id and f.size == size then
+ index = i
+ break
+ end
+ end
+ if not index then
+ index = #fonts + 1
+ fonts[index] = { id = id, size = size }
+ end
-- copy characters
for s=firstsource,lastsource do
local t = s + offset
diff --git a/tex/context/base/mkxl/math-fnt.lmt b/tex/context/base/mkxl/math-fnt.lmt
index cf14b4aa2..911e0adb5 100644
--- a/tex/context/base/mkxl/math-fnt.lmt
+++ b/tex/context/base/mkxl/math-fnt.lmt
@@ -54,14 +54,13 @@ local cache = setmetatableindex(function(t,width)
return v
end)
-
local function register_extensible(font,char,style,box)
-- We don't share (yet)!
local fontdata = chardata[font]
local oldchar = fontdata[char]
if oldchar and oldchar.keepvirtual then
-- for now, needed for iwona etc
- return
+ return nil
else
local bx = tonut(box)
updaters.apply("tagging.state.disable") -- fast enough
@@ -81,7 +80,6 @@ local function register_extensible(font,char,style,box)
local p = fonts.hashes.parameters[font]
local sx = round(1000/p.extendfactor)
local sy = round(1000/p.squeezefactor)
- nuts.setscales(g,1000,sx,sy)
-- we saved a scaled glyph stream so we now use an unscaled one ... horrible hack:
if sx ~= 1000 then
wd = wd * 7200/7227
@@ -98,6 +96,7 @@ local function register_extensible(font,char,style,box)
cache[wd][ht][dp][font][unicode] = private
end
local glyph = new_glyph(font,private,al)
+ nuts.setscales(glyph,1000,sx,sy)
--
-- if fonts.hashes.properties[font].compactmath then
-- nuts.setscales(g,1000,1000,1000)
diff --git a/tex/context/base/mkxl/math-vfu.lmt b/tex/context/base/mkxl/math-vfu.lmt
index 1046a0c19..53988036c 100644
--- a/tex/context/base/mkxl/math-vfu.lmt
+++ b/tex/context/base/mkxl/math-vfu.lmt
@@ -17,6 +17,9 @@ if not modules then modules = { } end modules ['math-vfu'] = {
-- from when we emulated \UNICODE\ math and \OPENTYPE\ math fonts using traditional
-- fonts.
+-- Musical timestamp: Januari 2023 Riverside ID.Entity release date, after all we
+-- only use the following code for ther Polish Iwona, Kurier and Antykwa fonts.
+
local type, next, tonumber = type, next, tonumber
local max = math.max
local fastcopy, sortedhash = table.copy, table.sortedhash
@@ -674,52 +677,56 @@ local noitalics = true -- false can be used to test the engine
-- bit to suit that purpose. It might get even simpler.
local function virtualize(s,uni,fci,skewchar,move,mathparameters,unicode,parameters)
- local kerns = fci.kerns
- local width = fci.width
- local height = fci.height
- local depth = fci.depth
- local italic = fci.italic
- local advance = width
- local bottomright
- local topanchor
- local yoffset
- if kerns and skewchar then
- local k = kerns[skewchar]
- if k then
- topanchor = width/2 + k
+ if fci then
+ local kerns = fci.kerns
+ local width = fci.width
+ local height = fci.height
+ local depth = fci.depth
+ local italic = fci.italic
+ local advance = width
+ local bottomright
+ local topanchor
+ local yoffset
+ if kerns and skewchar then
+ local k = kerns[skewchar]
+ if k then
+ topanchor = width/2 + k
+ end
end
+ if italic and noitalics then
+ width = width + italic
+ bottomright = - italic
+ italic = nil
+ end
+ if move then -- 0x222B
+ local axis = move * mathparameters.axisheight
+ local half = (height + depth ) / 2
+ yoffset = depth - (half - axis)
+ height = half + axis
+ depth = half - axis
+ end
+ --
+ return {
+ advance = advance,
+ width = width,
+ height = height,
+ depth = depth,
+ italic = italic,
+ bottomright = bottomright,
+ topanchor = topanchor,
+ yoffset = yoffset,
+ commands = { slotcommand[s][uni] },
+ -- keepvirtual = true,
+ next = fci.next,
+ parts = fci.parts,
+ partsorientation = fci.partsorientation,
+ partsitalic = fci.partsitalic,
+ unicode = unicode,
+ name = fci.name,
+ }
+ else
+ -- error
end
- if italic and noitalics then
- width = width + italic
- bottomright = - italic
- italic = nil
- end
- if move then -- 0x222B
- local axis = move * mathparameters.axisheight
- local half = (height + depth ) / 2
- yoffset = depth - (half - axis)
- height = half + axis
- depth = half - axis
- end
- --
- return {
- advance = advance,
- width = width,
- height = height,
- depth = depth,
- italic = italic,
- bottomright = bottomright,
- topanchor = topanchor,
- yoffset = yoffset,
- commands = { slotcommand[s][uni] },
- -- keepvirtual = true,
- next = fci.next,
- parts = fci.parts,
- partsorientation = fci.partsorientation,
- partsitalic = fci.partsitalic,
- unicode = unicode,
- name = fci.name,
- }
end
function vfmath.define(specification,set,goodies)
diff --git a/tex/context/interface/mkii/keys-cs.xml b/tex/context/interface/mkii/keys-cs.xml
index c5e12f9a1..14f82227a 100644
--- a/tex/context/interface/mkii/keys-cs.xml
+++ b/tex/context/interface/mkii/keys-cs.xml
@@ -453,6 +453,7 @@
<cd:variable name='printable' value='tisknutelne'/>
<cd:variable name='process' value='process'/>
<cd:variable name='product' value='produkt'/>
+ <cd:variable name='profile' value='profile'/>
<cd:variable name='program' value='program'/>
<cd:variable name='project' value='projekt'/>
<cd:variable name='protected' value='chranene'/>
@@ -594,6 +595,7 @@
<cd:variable name='temporary' value='docasne'/>
<cd:variable name='test' value='test'/>
<cd:variable name='text' value='text'/>
+ <cd:variable name='textdisplay' value='textdisplay'/>
<cd:variable name='textnote' value='textnote'/>
<cd:variable name='three' value='tri'/>
<cd:variable name='thursday' value='ctvrtek'/>
@@ -724,6 +726,7 @@
<cd:constant name='bookmark' value='zalozka'/>
<cd:constant name='bottom' value='spodek'/>
<cd:constant name='bottomafter' value='bottomafter'/>
+ <cd:constant name='bottomalign' value='bottomalign'/>
<cd:constant name='bottombefore' value='bottombefore'/>
<cd:constant name='bottomcolor' value='bottomcolor'/>
<cd:constant name='bottomcommand' value='bottomcommand'/>
@@ -1338,6 +1341,7 @@
<cd:constant name='toffset' value='toffset'/>
<cd:constant name='tolerance' value='tolerance'/>
<cd:constant name='top' value='vrsek'/>
+ <cd:constant name='topalign' value='topalign'/>
<cd:constant name='topcolor' value='topcolor'/>
<cd:constant name='topcommand' value='topcommand'/>
<cd:constant name='topdistance' value='vzdalenostvrsku'/>
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index ac7c0e20b..9618051bd 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 : 2023-02-06 17:55
+-- merge date : 2023-02-07 19:02
do -- begin closure to overcome local limits and interference
@@ -14578,6 +14578,7 @@ end
end)
local c_endchar=chars[14]
local encode={}
+ local typeone=false
setmetatableindex(encode,function(t,i)
for i=-2048,-1130 do
t[i]=char(28,band(rshift(i,8),0xFF),band(i,0xFF))
@@ -14703,7 +14704,7 @@ end
elseif t<=254 then
stack[top]=-t*256+64148-tab[i+1]
i=i+2
- elseif version=="cff" then
+ elseif typeone then
local n=0x1000000*tab[i+1]+0x10000*tab[i+2]+0x100*tab[i+3]+tab[i+4]
if n>=0x8000000 then
n=n-0xFFFFFFFF-1
@@ -15027,11 +15028,12 @@ result=nil
end
return privatedata.nominalwidthx or 0,privatedata.defaultwidthx or 0
end
- parsecharstrings=function(fontdata,data,glphs,doshapes,tversion,streams,nobias)
+ parsecharstrings=function(fontdata,data,glphs,doshapes,tversion,streams,nobias,istypeone)
local dictionary=data.dictionaries[1]
local charstrings=dictionary.charstrings
keepcurve=doshapes
version=tversion
+ typeone=istypeone or false
strings=data.strings
globals=data.routines or {}
locals=dictionary.subroutines or {}
@@ -15236,7 +15238,7 @@ local function readnoselect(f,fontdata,data,glyphs,doshapes,version,streams)
parseprivates(data,data.dictionaries)
readlocals(f,data,dictionary,version)
startparsing(fontdata,data,streams)
- parsecharstrings(fontdata,data,glyphs,doshapes,version,streams)
+ parsecharstrings(fontdata,data,glyphs,doshapes,version,streams,false)
stopparsing(fontdata,data)
end
local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
@@ -15428,39 +15430,6 @@ function readers.cff2(f,fontdata,specification)
cleanup(data,dictionaries)
end
end
-function readers.cffcheck(filename)
- local f=io.open(filename,"rb")
- if f then
- local fontdata={
- glyphs={},
- }
- local header=readheader(f)
- if header.major~=1 then
- report("only version %s is supported for table %a",1,"cff")
- return
- end
- local names=readfontnames(f)
- local dictionaries=readtopdictionaries(f)
- local strings=readstrings(f)
- local glyphs={}
- local data={
- header=header,
- names=names,
- dictionaries=dictionaries,
- strings=strings,
- glyphs=glyphs,
- nofglyphs=0,
- }
- parsedictionaries(data,dictionaries,"cff")
- local cid=data.dictionaries[1].cid
- if cid and cid.fdselect then
- readfdselect(f,fontdata,data,glyphs,false)
- else
- readnoselect(f,fontdata,data,glyphs,false)
- end
- return data
- end
-end
end -- closure
@@ -37185,7 +37154,7 @@ local afm=fonts.handlers.afm
local pfb=fonts.handlers.pfb
local hashes=fonts.hashes
local identifiers=hashes.identifiers
-local version=otf.version or 0.014
+local version=otf.version or 0.015
local shapescache=containers.define("fonts","shapes",version,true)
local streamscache=containers.define("fonts","streams",version,true)
local compact_streams=false