summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv')
-rw-r--r--tex/context/base/mkiv/char-ini.lua29
-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-cft.lua2
-rw-r--r--tex/context/base/mkiv/font-con.lua22
-rw-r--r--tex/context/base/mkiv/font-dsp.lua38
-rw-r--r--tex/context/base/mkiv/font-ini.mkvi47
-rw-r--r--tex/context/base/mkiv/font-mis.lua2
-rw-r--r--tex/context/base/mkiv/font-otl.lua40
-rw-r--r--tex/context/base/mkiv/font-oto.lua3
-rw-r--r--tex/context/base/mkiv/font-oup.lua55
-rw-r--r--tex/context/base/mkiv/font-sel.lua31
-rw-r--r--tex/context/base/mkiv/font-shp.lua2
-rw-r--r--tex/context/base/mkiv/font-ttf.lua24
-rw-r--r--tex/context/base/mkiv/lang-def.mkiv21
-rw-r--r--tex/context/base/mkiv/lang-txt.lua158
-rw-r--r--tex/context/base/mkiv/mtx-context-setters.tex9
-rw-r--r--tex/context/base/mkiv/mult-low.lua5
-rw-r--r--tex/context/base/mkiv/mult-prm.lua1
-rw-r--r--tex/context/base/mkiv/mult-sys.mkiv4
-rw-r--r--tex/context/base/mkiv/spac-chr.lua24
-rw-r--r--tex/context/base/mkiv/spac-chr.mkiv3
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24600 -> 24564 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin263132 -> 263628 bytes
-rw-r--r--tex/context/base/mkiv/type-set.mkiv6
25 files changed, 411 insertions, 119 deletions
diff --git a/tex/context/base/mkiv/char-ini.lua b/tex/context/base/mkiv/char-ini.lua
index 6fe56a062..8f1bc4fb0 100644
--- a/tex/context/base/mkiv/char-ini.lua
+++ b/tex/context/base/mkiv/char-ini.lua
@@ -817,6 +817,19 @@ local is_symbol = allocate ( tohash {
"sm", "sc", "sk", "so",
} )
+local can_have_space = allocate ( tohash {
+ "lu", "ll", "lt", "lm", "lo", -- letters
+ -- "mn", "mc", "me", -- marks
+ "nd", "nl", "no", -- numbers
+ "ps", "pi", -- initial
+ -- "pe", "pf", -- final
+ -- "pc", "pd", "po", -- punctuation
+ "sm", "sc", "sk", "so", -- symbols
+ -- "zs", "zl", "zp", -- separators
+ -- "cc", "cf", "cs", "co", "cn", -- others
+} )
+
+
-- to be redone: store checked characters
characters.is_character = is_character
@@ -827,6 +840,7 @@ characters.is_mark = is_mark
characters.is_punctuation = is_punctuation
characters.is_hyphenator = is_hyphenator
characters.is_symbol = is_symbol
+characters.can_have_space = can_have_space
local mti = function(t,k)
if type(k) == "number" then
@@ -837,13 +851,14 @@ local mti = function(t,k)
end
end
-setmetatableindex(characters.is_character, mti)
-setmetatableindex(characters.is_letter, mti)
-setmetatableindex(characters.is_command, mti)
-setmetatableindex(characters.is_spacing, mti)
-setmetatableindex(characters.is_punctuation,mti)
-setmetatableindex(characters.is_hyphenator, mti)
-setmetatableindex(characters.is_symbol, mti)
+setmetatableindex(characters.is_character, mti)
+setmetatableindex(characters.is_letter, mti)
+setmetatableindex(characters.is_command, mti)
+setmetatableindex(characters.is_spacing, mti)
+setmetatableindex(characters.is_punctuation, mti)
+setmetatableindex(characters.is_hyphenator, mti)
+setmetatableindex(characters.is_symbol, mti)
+setmetatableindex(characters.can_have_space, mti)
-- todo: also define callers for the above
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 4c07bceb5..333a3dc54 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.10.22 11:20}
+\newcontextversion{2022.11.14 22:54}
%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 86374e2d7..db4a0a66f 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.10.22 11:20}
+\edef\contextversion{2022.11.14 22:54}
%D Kind of special:
diff --git a/tex/context/base/mkiv/font-cft.lua b/tex/context/base/mkiv/font-cft.lua
index 267c63f7a..d6afc01f7 100644
--- a/tex/context/base/mkiv/font-cft.lua
+++ b/tex/context/base/mkiv/font-cft.lua
@@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['font-cft'] = {
license = "see context related readme files"
}
--- context font tables (needs updating)
+-- context font tables (needs updating, only okay for mkiv)
--
-- todo: extra:
--
diff --git a/tex/context/base/mkiv/font-con.lua b/tex/context/base/mkiv/font-con.lua
index 5c156c2ba..820e45f52 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -388,20 +388,20 @@ function constructors.scale(tfmdata,specification)
--
local mathsize = tonumber(specification.mathsize) or 0
local textsize = tonumber(specification.textsize) or scaledpoints
- local forcedsize = tonumber(parameters.mathsize ) or 0 -- can be set by the feature "mathsize"
+ -- 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 (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
targetparameters.mathsize = mathsize -- context specific
targetparameters.textsize = textsize -- context specific
- targetparameters.forcedsize = forcedsize -- context specific
+ -- targetparameters.forcedsize = forcedsize -- context specific
targetparameters.extrafactor = extrafactor -- context specific
--
local addtounicode = constructors.addtounicode
diff --git a/tex/context/base/mkiv/font-dsp.lua b/tex/context/base/mkiv/font-dsp.lua
index 1735b4cdc..f5e12c0ef 100644
--- a/tex/context/base/mkiv/font-dsp.lua
+++ b/tex/context/base/mkiv/font-dsp.lua
@@ -2332,12 +2332,11 @@ do
local reported = { }
- local function report_issue(i,what,sequence,kind)
- local name = sequence.name
- if not reported[name] then
- report("rule %i in %s lookup %a has %s lookups",i,what,name,kind)
- reported[name] = true
- end
+ local function report_issue(i,what,step,kind)
+-- if not reported[step] then
+ report("rule %i in step %i of %s has %s lookups",i,step,what,kind)
+-- reported[name] = true
+-- end
end
-- for i=lastsequence+1,nofsequences do
@@ -2346,18 +2345,18 @@ do
-- for i=1,#steps do
-- local step = steps[i]
- for i=1,#allsteps do -- new per 2022-09-25
- local step = allsteps[i] -- new per 2022-09-25
+ for s=1,#allsteps do -- new per 2022-09-25
+ local step = allsteps[s] -- new per 2022-09-25
local rules = step.rules
if rules then
for i=1,#rules do
local rule = rules[i]
local rlookups = rule.lookups
if not rlookups then
- report_issue(i,what,sequence,"no")
+ report_issue(i,what,s,"no")
elseif not next(rlookups) then
-- can be ok as it aborts a chain sequence
- -- report_issue(i,what,sequence,"empty")
+ -- report_issue(i,what,s,"empty")
rule.lookups = nil
else
-- we can have holes in rlookups flagged false and we can have multiple lookups
@@ -2398,12 +2397,12 @@ do
sublookupcheck[lookupid] = 1
h = nofsublookups
else
- report_issue(i,what,sequence,"missing")
+ report_issue(i,what,s,"missing")
rule.lookups = nil
break
end
else
- report_issue(i,what,sequence,"bad")
+ report_issue(i,what,s,"bad")
rule.lookups = nil
break
end
@@ -2977,7 +2976,7 @@ local function readmathvariants(f,fontdata,offset)
-- advance = readushort(f),
-- }
- local function get(offset,coverage,nofglyphs,construction,kvariants,kparts,kitalic)
+ local function get(offset,coverage,nofglyphs,construction,kvariants,kparts,kitalic,korientation,orientation)
if coverage ~= 0 and nofglyphs > 0 then
local coverage = readcoverage(f,offset+coverage,true)
for i=1,nofglyphs do
@@ -3042,14 +3041,23 @@ local function readmathvariants(f,fontdata,offset)
if italic and italic ~= 0 then
math[kitalic] = italic
end
+ if orientation then
+ math[korientation] = orientation
+ end
end
end
end
end
end
- get(offset,vcoverage,vnofglyphs,vconstruction,"vvariants","vparts","vitalic")
- get(offset,hcoverage,hnofglyphs,hconstruction,"hvariants","hparts","hitalic")
+ -- if LUATEXENGINE == "luametatex" then
+ if CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
+ get(offset,hcoverage,hnofglyphs,hconstruction,"variants","parts","partsitalic","partsorientation","horizontal")
+ get(offset,vcoverage,vnofglyphs,vconstruction,"variants","parts","partsitalic","partsorientation","vertical")
+ else
+ get(offset,vcoverage,vnofglyphs,vconstruction,"vvariants","vparts","vitalic")
+ get(offset,hcoverage,hnofglyphs,hconstruction,"hvariants","hparts","hitalic")
+ end
end
function readers.math(f,fontdata,specification)
diff --git a/tex/context/base/mkiv/font-ini.mkvi b/tex/context/base/mkiv/font-ini.mkvi
index ccd034106..c51019fdd 100644
--- a/tex/context/base/mkiv/font-ini.mkvi
+++ b/tex/context/base/mkiv/font-ini.mkvi
@@ -474,15 +474,52 @@
\installcorenamespace{mappedfontsize}
+% \unexpanded\def\mapfontsize
+% {\dodoubleargument\font_basics_map_fontsize}
+
+% \def\font_basics_map_fontsize[#from][#to]%
+% {\setvalue{\??mappedfontsize\the\dimexpr#from\relax}{#to}}
+
+% \def\font_basics_set_mapped_fontsize#from%
+% {\ifcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname
+% \lastnamedcs\else#from%
+% \fi}
+
+%letcsname\??mappedfontsize\s!text \endcsname\!!plusone
+\letcsname\??mappedfontsize\s!script \endcsname\!!plustwo
+\letcsname\??mappedfontsize\s!scriptscript\endcsname\!!plusthree
+
\unexpanded\def\mapfontsize
- {\dodoubleargument\font_basics_map_fontsize}
+ {\dotripleargument\font_basics_map_fontsize}
+
+\def\font_basics_map_fontsize[#class][#from][#to]%
+ {\setvalue{%
+ \??mappedfontsize
+ #class:%
+ \ifcsname\??mappedfontsize#from\endcsname\lastnamedcs\else1\fi
+ }{#to}}
+
+\permanent\tolerant\protected\def\checkedmapfontsize[#class]#spacer[#from]#spacer[#to]%
+ {\ifcsname\??mappedfontsize#class:\csname\??mappedfontsize#from\endcsname\endcsname
+ % keep (user) value
+ \else
+ \mapfontsize[#class][#from][#to]%
+ \fi}
-\def\font_basics_map_fontsize[#from][#to]%
- {\setvalue{\??mappedfontsize\the\dimexpr#from\relax}{#to}}
+\permanent\tolerant\def\mappedfontsize#class#from%
+ {\begincsname
+ \??mappedfontsize
+ #class:%
+ \ifcsname\??mappedfontsize#from\endcsname\lastnamedcs\else1\fi
+ \endcsname}
\def\font_basics_set_mapped_fontsize#from%
- {\ifcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname
- \lastnamedcs\else#from%
+ {\ifcsname\??mappedfontsize\fontclass:\fontface\endcsname
+ %\the\dimexpr\lastnamedcs\dimexpr#from\relax\relax
+ %\the\dimexpr\lastnamedcs\dimexpr\bodyfontsize\relax\relax
+ \the\dimexpr\lastnamedcs\dimexpr\normalizedbodyfontsize\relax\relax
+ \else % we could use default
+ #from%
\fi}
\installcorenamespace{fontbodyknown}
diff --git a/tex/context/base/mkiv/font-mis.lua b/tex/context/base/mkiv/font-mis.lua
index 5ae6659c5..4937dca31 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.121
+ otf.version = otf.version or 3.130
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-otl.lua b/tex/context/base/mkiv/font-otl.lua
index 9493bd03c..4199db03f 100644
--- a/tex/context/base/mkiv/font-otl.lua
+++ b/tex/context/base/mkiv/font-otl.lua
@@ -52,7 +52,7 @@ local report_otf = logs.reporter("fonts","otf loading")
local fonts = fonts
local otf = fonts.handlers.otf
-otf.version = 3.121 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.version = 3.130 -- 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)
@@ -643,25 +643,25 @@ 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 !
- end
-end
-
-registerotffeature {
- name = "mathsize",
- description = "apply mathsize specified in the font",
- initializers = {
- base = checkmathsize,
- node = checkmathsize,
- }
-}
+-- 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
+--
+-- registerotffeature {
+-- name = "mathsize",
+-- description = "apply mathsize specified in the font",
+-- initializers = {
+-- base = checkmathsize,
+-- node = checkmathsize,
+-- }
+-- }
-- readers
diff --git a/tex/context/base/mkiv/font-oto.lua b/tex/context/base/mkiv/font-oto.lua
index 1475fcf67..e8b92c077 100644
--- a/tex/context/base/mkiv/font-oto.lua
+++ b/tex/context/base/mkiv/font-oto.lua
@@ -504,6 +504,9 @@ local function featuresinitializer(tfmdata,value)
local value = features[feature]
if value then
local validlookups, lookuplist = collectlookups(rawdata,feature,script,language)
+-- if not validlookups and not lookuplist and script == "math" then
+-- validlookups, lookuplist = collectlookups(rawdata,feature,"dflt","dflt")
+-- end
if not validlookups then
-- skip
elseif basesubstitutions and basesubstitutions[feature] then
diff --git a/tex/context/base/mkiv/font-oup.lua b/tex/context/base/mkiv/font-oup.lua
index 248aad04d..198e62bee 100644
--- a/tex/context/base/mkiv/font-oup.lua
+++ b/tex/context/base/mkiv/font-oup.lua
@@ -898,26 +898,42 @@ local function unifyglyphs(fontdata,usenames)
end
end
--
- for index=1,nofglyphs do
- local math = glyphs[index].math
- if math then
- local list = math.vparts
- if list then
- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- end
- local list = math.hparts
- if list then
- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- end
- local list = math.vvariants
- if list then
- -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- for i=1,#list do list[i] = indices[list[i]] end
+ if LUATEXENGINE == "luametatex" then
+ for index=1,nofglyphs do
+ local math = glyphs[index].math
+ if math then
+ local list = math.parts
+ if list then
+ for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ end
+ local list = math.variants
+ if list then
+ for i=1,#list do list[i] = indices[list[i]] end
+ end
end
- local list = math.hvariants
- if list then
- -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- for i=1,#list do list[i] = indices[list[i]] end
+ end
+ else
+ for index=1,nofglyphs do
+ local math = glyphs[index].math
+ if math then
+ local list = math.vparts
+ if list then
+ for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ end
+ local list = math.hparts
+ if list then
+ for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ end
+ local list = math.vvariants
+ if list then
+ -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ for i=1,#list do list[i] = indices[list[i]] end
+ end
+ local list = math.hvariants
+ if list then
+ -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ for i=1,#list do list[i] = indices[list[i]] end
+ end
end
end
end
@@ -947,7 +963,6 @@ end
local stripredundant do
-
local p_hex = R("af","AF","09")
local p_digit = R("09")
local p_done = S("._-")^0 + P(-1)
diff --git a/tex/context/base/mkiv/font-sel.lua b/tex/context/base/mkiv/font-sel.lua
index 04dd4379b..ab6297f40 100644
--- a/tex/context/base/mkiv/font-sel.lua
+++ b/tex/context/base/mkiv/font-sel.lua
@@ -77,19 +77,24 @@ local report_typescript = logs.reporter("selectfont","typescripts")
defaults["rm"] = { features = { ["sc"] = "*,f:smallcaps" } }
defaults["ss"] = { features = { ["sc"] = "*,f:smallcaps" } }
-defaults["asanamath"] = { options = { extras = "asana-math", features = "math\\mathsizesuffix", goodies = "anana-math" } }
-defaults["cambriamath"] = { options = { extras = "cambria-math", features = "math\\mathsizesuffix", goodies = "cambria-math" } }
-defaults["dejavumath"] = { options = { extras = "dejavu", features = "math\\mathsizesuffix" } }
-defaults["neoeuler"] = { options = { extras = "euler-math", features = "math\\mathsizesuffix" } }
-defaults["latinmodernmath"] = { options = { extras = "lm,lm-math", features = "math\\mathsizesuffix,lm-math", goodies = "lm" } }
-defaults["lucidabrightmathot"] = { options = { extras = "lucida-opentype-math", features = "math\\mathsizesuffix", goodies = "lucida-opentype-math" } }
-defaults["minionmath"] = { options = { extras = "minion-math", features = "math\\mathsizesuffix", goodies = "minion-math" } }
-defaults["texgyredejavumath"] = { options = { extras = "dejavu", features = "math\\mathsizesuffix" } }
-defaults["texgyrepagellamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["texgyrebonummath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["texgyrescholamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["texgyretermesmath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["xitsmath"] = { options = { extras = "xits-math", features = "math\\mathsizesuffix", goodies = "xits-math" } }
+-- WS: we need to check the extras with the typescripts
+
+defaults["asanamath"] = { options = { extras = "asana-math", features = "math\\mathsizesuffix,mathextra", goodies = "anana-math" } }
+defaults["cambriamath"] = { options = { extras = "cambria-math", features = "math\\mathsizesuffix,mathextra", goodies = "cambria-math" } }
+defaults["euler"] = { options = { extras = "euler-math", features = "math\\mathsizesuffix,mathextra", goodies = "euler-math" } }
+defaults["latinmodernmath"] = { options = { extras = "lm,lm-math", features = "math\\mathsizesuffix,mathextra,lm-math", goodies = "modern" } }
+defaults["lucidabrightmathot"] = { options = { extras = "lucida-opentype-math", features = "math\\mathsizesuffix,mathextra", goodies = "lucida-math" } }
+defaults["minionmath"] = { options = { extras = "minion-math", features = "math\\mathsizesuffix,mathextra", goodies = "minion-math" } }
+defaults["stixtwomath"] = { options = { extras = "stix-two-math", features = "math\\mathsizesuffix,mathextra", goodies = "stixtwo-math" } }
+defaults["texgyredejavumath"] = { options = { extras = "dejavu", features = "math\\mathsizesuffix,mathextra", goodies = "dejavu-math" } }
+defaults["texgyrepagellamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "pagella-math" } }
+defaults["texgyrebonummath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "bonum-math" } }
+defaults["texgyrescholamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "schola-math" } }
+defaults["texgyretermesmath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "termes-math" } }
+defaults["xitsmath"] = { options = { extras = "xits-math", features = "math\\mathsizesuffix,mathextra", goodies = "xits-math" } }
+
+defaults["neoeuler"] = defaults["euler"]
+defaults["dejavumath"] = defaults["texgyredejavumath"]
extras["features"] = function(data,alternative,features)
local d = data.options.features
diff --git a/tex/context/base/mkiv/font-shp.lua b/tex/context/base/mkiv/font-shp.lua
index cab4b7540..feae0ba1c 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.013
+local version = otf.version or 0.014
local shapescache = containers.define("fonts", "shapes", version, true)
local streamscache = containers.define("fonts", "streams", version, true)
diff --git a/tex/context/base/mkiv/font-ttf.lua b/tex/context/base/mkiv/font-ttf.lua
index d1a3972b2..0f3838c88 100644
--- a/tex/context/base/mkiv/font-ttf.lua
+++ b/tex/context/base/mkiv/font-ttf.lua
@@ -263,20 +263,28 @@ local function applyaxis(glyph,shape,deltas,dowidth)
end
if found == last then
lastindex = currentindex
- break;
+ break
elseif found > last then
+
+-- \definefontfeature[book][default][axis={weight=800}]
+-- \definefont[testfont][file:Commissioner-vf-test.ttf*book]
+-- \testfont EΘÄΞ
+while lastindex > 1 and dpoints[lastindex] > last do
+ lastindex = lastindex - 1
+end
+
break
end
end
end
- -- print("unicode: ",glyph.unicode or "?")
- -- print("contour: ",first,contour,last)
- -- print("index : ",firstindex,lastindex,cnt)
- -- print("points : ",dpoints[firstindex],dpoints[lastindex])
+ -- print("unicode: ",glyph.unicode or "?")
+ -- print("contour: ",first,contour,last)
+ -- print("index : ",firstindex,lastindex,cnt)
+ -- print("points : ",dpoints[firstindex],dpoints[lastindex])
local function find(i)
local prv = lastindex
for j=firstindex,lastindex do
- local nxt = dpoints[j]
+ local nxt = dpoints[j] -- we could save this lookup when we return it
if nxt == i then
return false, j, false
elseif nxt > i then
@@ -980,8 +988,8 @@ local function readglyph(f,nofcontours) -- read deltas here, saves space
local x = 0
for i=1,nofpoints do
local flag = flags[i]
- -- local short = band(flag,0x04) ~= 0
- -- local same = band(flag,0x20) ~= 0
+ -- local short = band(flag,0x02) ~= 0
+ -- local same = band(flag,0x10) ~= 0
if band(flag,0x02) ~= 0 then
if band(flag,0x10) ~= 0 then
x = x + readbyte(f)
diff --git a/tex/context/base/mkiv/lang-def.mkiv b/tex/context/base/mkiv/lang-def.mkiv
index 441d328c8..19f431ebf 100644
--- a/tex/context/base/mkiv/lang-def.mkiv
+++ b/tex/context/base/mkiv/lang-def.mkiv
@@ -269,6 +269,23 @@
\c!rightquotation=\leftguillemot,
\c!date={\v!day,{.},\space,\v!month,\space,\v!year}]
+\installlanguage
+ [\s!hy]
+ [\c!spacing=\v!packed,
+ \c!leftsentence=\endash, % *sentences not confirmed
+ \c!rightsentence=\endash,
+ \c!leftsubsentence=\endash,
+ \c!rightsubsentence=\endash,
+ \c!leftquote=\guilsingleleft,
+ \c!rightquote=\guilsingleright,
+ \c!leftquotation=\leftguillemot
+ \c!rightquotation=\rightguillemot
+ \c!date={\v!day,\space,\v!month,\space,\v!year}, % word
+ % \c!date={\v!day,{.},\v!month,{.},\v!year}, % numbers
+ \s!patterns=\s!hy,
+ \s!lefthyphenmin=2,
+ \s!righthyphenmin=2]
+
\installlanguage [\s!polish] [\s!pl]
\installlanguage [\s!czech] [\s!cs]
\installlanguage [\s!slovak] [\s!sk]
@@ -276,6 +293,10 @@
\installlanguage [\s!slovenian] [\s!sl]
\installlanguage [slovene] [\s!sl] % both possible (mojca: still needed?)
+\installlanguage [\s!armenian] [\s!hy]
+\installlanguage [\s!hye] [\s!hy] % Eastern Armenian
+\installlanguage [\s!hyw] [\s!hy] % Western Armenian
+
% Cyrillic Languages
\installlanguage
diff --git a/tex/context/base/mkiv/lang-txt.lua b/tex/context/base/mkiv/lang-txt.lua
index 834f9ce43..c4f3603ec 100644
--- a/tex/context/base/mkiv/lang-txt.lua
+++ b/tex/context/base/mkiv/lang-txt.lua
@@ -32,11 +32,13 @@ if not modules then modules = { } end modules ['lang-txt'] = {
-- eo Esperanto Alain Delmotte (2021)
-- es Spanish Andrés Montoya, ...
-- et Estonian Clyde Johnston (2018)
--- fi Finish ...
+-- fa Persian Mohammad Hossein Bateni (2016)
+-- fi Finnish ...
-- fr French Daniel Flipo, Arthur Reutenauer
-- gr Greek Apostolos Syropoulos, Thomas Schmitz
-- hr Croatian Željko Vrba, Richard Gabriel, Vedran Miletić
-- hu Hungarian Adam Reviczky
+-- hy Armenian Kristina Nazarjanová (2022)
-- it Italian Giuseppe Bilotta, Luigi Scarso
-- ja Japanese Richard Gabriel
-- kr Korean Jeong Dalyoung
@@ -46,7 +48,6 @@ if not modules then modules = { } end modules ['lang-txt'] = {
-- nb Norwegian Hans Fredrik Nordhaug, ...
-- nn Norwegian Hans Fredrik Nordhaug, ...
-- nl Dutch Hans Hagen
--- pe Persian Mohammad Hossein Bateni (2016)
-- pl Polish Grzegorz Sapijaszko (2011)
-- pt Portuguese Pedro F. M. Mendonça
-- ro Romanian Dan Seracu, ...
@@ -88,6 +89,7 @@ data.labels={
["es"]="En",
["fa"]="در",
["fr"]="Dans",
+ ["hy"]="Մեջ",
["mk"]="во",
["sr"]="У",
["sr-latn"]="U",
@@ -102,6 +104,7 @@ data.labels={
["eo"]="Nombro",
["fa"]="شماره",
["fr"]="Numéro",
+ ["hy"]="Համար",
["mk"]="Број",
["nl"]="Nummer",
["sr"]="Број",
@@ -117,10 +120,11 @@ data.labels={
["eo"]="Volumo",
["et"]="Köide",
["fa"]="جلد",
+ ["hy"]="Ծավալ",
["mk"]="Том",
["nl"]="Deel",
- ["sr"]="Том",
["sr-latn"]="Tom",
+ ["sr"]="Том",
},
},
["and"]={
@@ -134,6 +138,7 @@ data.labels={
["et"]="ja",
["fa"]="و",
["fr"]="et",
+ ["hy"]="և",
["it"]="e",
["mk"]="и",
["nl"]="en",
@@ -152,6 +157,7 @@ data.labels={
["et"]="väljaanne",
["fa"]="ویرایش",
["fr"]="édition",
+ ["hy"]="հրատարակություն",
["it"]="edizione",
["mk"]="издание",
["nl"]="editie",
@@ -169,6 +175,7 @@ data.labels={
["et"]="toimetaja",
["fa"]="ویراستار",
["fr"]="éditeur",
+ ["hy"]="խմբագիր",
["it"]="a cura di",
["mk"]="уредник",
["sr"]="уредник",
@@ -185,6 +192,7 @@ data.labels={
["es"]="editores",
["et"]="toimetajad",
["fr"]="éditeurs",
+ ["hy"]="խմբագիրներ",
["it"]="a cura di",
["mk"]="уредници",
["sr"]="уредници",
@@ -201,6 +209,7 @@ data.labels={
["es"]="en",
["fa"]="در",
["fr"]="dans",
+ ["hy"]="մեջ",
["mk"]="во",
["sr"]="у",
["sr-latn"]="u",
@@ -217,6 +226,7 @@ data.labels={
["et"]="magistritöö",
["fa"]="پایان‌نامه کارشناسی ارشد",
["fr"]="Thèse de master (DEA, DESS, master)",
+ ["hy"]="Մագիստրոսական թեզ",
["it"]="Tesi di laurea",
["mk"]="Магистерска дисертација",
["nl"]="Masterproef",
@@ -233,6 +243,7 @@ data.labels={
["eo"]="numero",
["fa"]="شماره",
["fr"]="numéro",
+ ["hy"]="համար",
["mk"]="број",
["nl"]="nummer",
["sr"]="број",
@@ -247,6 +258,7 @@ data.labels={
["en"]="of",
["eo"]="de",
["fr"]="de",
+ ["hy"]="-ից",
["mk"]="од",
["nl"]="van",
["sr"]="од",
@@ -259,6 +271,7 @@ data.labels={
["en"]="et al.",
["eo"]="aliaj",
["et"]="jt",
+ ["hy"]="եւ այլն",
["mk"]="и др.",
["sr"]="и др.",
["sr-latn"]="i dr.",
@@ -272,6 +285,7 @@ data.labels={
["eo"]="p.",
["et"]="lk",
["fa"]="ص",
+ ["hy"]="էջ",
["mk"]="стр.",
["sr"]="стр.",
["sr-latn"]="str.",
@@ -286,6 +300,7 @@ data.labels={
["eo"]="paĝoj",
["et"]="leheküljed",
["fa"]="صفحات",
+ ["hy"]="էջեր",
["mk"]="страници",
["nl"]="paginas",
["sr"]="страницa",
@@ -302,6 +317,7 @@ data.labels={
["es"]="Patente",
["et"]="Patent",
["fr"]="Brevet",
+ ["hy"]="Արտոնագիր",
["it"]="Brevetto",
["mk"]="Патент",
["nl"]="Octrooi",
@@ -320,6 +336,7 @@ data.labels={
["et"]="doktoritöö",
["fa"]="رساله دکتری",
["fr"]="Thèse de doctorat",
+ ["hy"]="Դոկտորական թեզ",
["it"]="Tesi di dottorato",
["mk"]="Докторска дисертација",
["nl"]="Proefschrift",
@@ -334,6 +351,7 @@ data.labels={
["eo"]="pp.",
["et"]="lk-d",
["fa"]="صص",
+ ["hy"]="էջ",
["mk"]="стр.",
["sr"]="стр.",
["sr-latn"]="str.",
@@ -350,6 +368,7 @@ data.labels={
["et"]="tehniline raport",
["fa"]="گزارش فنی",
["fr"]="Rapport technique",
+ ["hy"]="Տեխնիկական հաշվետվություն",
["it"]="Relazione tecnica",
["mk"]="Технички извештај",
["nl"]="Technisch rapport",
@@ -366,6 +385,7 @@ data.labels={
["eo"]="volumo",
["et"]="köide",
["fa"]="جلد",
+ ["hy"]="ծավալ",
["mk"]="том",
["nl"]="deel",
["sr"]="том",
@@ -382,6 +402,7 @@ data.labels={
["es"]="con",
["et"]="koos",
["fr"]="avec",
+ ["hy"]="ի հետ",
["it"]="con",
["mk"]="со",
["nl"]="met",
@@ -396,6 +417,7 @@ data.labels={
["cs"]="P",
["en"]="Pr",
["eo"]="P",
+ ["hy"]="P",
["mk"]="P",
["sk"]="P",
["sr"]="P",
@@ -409,6 +431,7 @@ data.labels={
["eo"]="arccos",
["es"]="arc\\sixperemspace cos",
["hr"]="arc\\sixperemspace cos",
+ ["hy"]="arccos",
["mk"]="arccos",
["pl"]="arc\\sixperemspace cos",
["sk"]="arccos",
@@ -423,6 +446,7 @@ data.labels={
["eo"]="arccosh",
["es"]="arc\\sixperemspace cosh",
["hr"]="arc\\sixperemspace cosh",
+ ["hy"]="arccosh",
["mk"]="arccosh",
["pl"]="arc\\sixperemspace cosh",
["sk"]="arccosh",
@@ -437,6 +461,7 @@ data.labels={
["eo"]="arcctan",
["es"]="arc\\sixperemspace cot",
["hr"]="arc\\sixperemspace ctg",
+ ["hy"]="arcctg",
["mk"]="arccotg",
["pl"]="arc\\sixperemspace ctg",
["sk"]="arccotg",
@@ -451,6 +476,7 @@ data.labels={
["eo"]="arcsin",
["es"]="arc\\sixperemspace sen",
["hr"]="arc\\sixperemspace sin",
+ ["hy"]="arcsin",
["mk"]="arcsin",
["pl"]="arc\\sixperemspace sin",
["sk"]="arcsin",
@@ -465,6 +491,7 @@ data.labels={
["eo"]="arcsinh",
["es"]="arc\\sixperemspace senh",
["hr"]="arc\\sixperemspace sinh",
+ ["hy"]="arcsinh",
["mk"]="arcsinh",
["pl"]="arc\\sixperemspace sinh",
["sk"]="arcsinh",
@@ -479,6 +506,7 @@ data.labels={
["eo"]="arctang",
["es"]="arc\\sixperemspace tan",
["hr"]="arc\\sixperemspace tg",
+ ["hy"]="arctan",
["mk"]="arctg",
["pl"]="arc\\sixperemspace tg",
["sk"]="arctg",
@@ -493,6 +521,7 @@ data.labels={
["eo"]="arctanh",
["es"]="arc\\sixperemspace tanh",
["hr"]="arc\\sixperemspace tgh",
+ ["hy"]="arctanh",
["mk"]="arctgh",
["pl"]="arc\\sixperemspace tgh",
["sk"]="arctgh",
@@ -506,6 +535,7 @@ data.labels={
["en"]="arg",
["eo"]="arg",
["es"]="arg",
+ ["hy"]="arg",
["mk"]="arg",
["sk"]="arg",
["sr"]="arg",
@@ -518,6 +548,7 @@ data.labels={
["en"]="cos",
["eo"]="cos",
["es"]="cos",
+ ["hy"]="cos",
["mk"]="cos",
["sk"]="cos",
["sr"]="cos",
@@ -530,6 +561,7 @@ data.labels={
["en"]="cosh",
["eo"]="cosh",
["es"]="cosh",
+ ["hy"]="cosh",
["mk"]="cosh",
["sk"]="cosh",
["sr"]="cosh",
@@ -543,6 +575,7 @@ data.labels={
["eo"]="cotan",
["es"]="cot",
["hr"]="ctg",
+ ["hy"]="cot",
["mk"]="ctg",
["pl"]="ctg",
["sk"]="cotg",
@@ -556,6 +589,7 @@ data.labels={
["en"]="coth",
["eo"]="cotanh",
["es"]="coth",
+ ["hy"]="coth",
["mk"]="ctgh",
["sk"]="cotgh",
["sr"]="ctgh",
@@ -568,6 +602,7 @@ data.labels={
["en"]="csc",
["eo"]="cosec",
["es"]="csc",
+ ["hy"]="csc",
["mk"]="cosec",
["sk"]="cosec",
["sr"]="cosec",
@@ -581,6 +616,7 @@ data.labels={
["eo"]="cotan",
["es"]="cot",
["hr"]="ctg",
+ ["hy"]="cot",
["mk"]="ctg",
["pl"]="ctg",
["sk"]="cotg",
@@ -594,6 +630,7 @@ data.labels={
["en"]="deg",
["eo"]="gr",
["es"]="gr",
+ ["hy"]="deg",
["mk"]="deg",
["sk"]="deg",
["sr"]="deg",
@@ -606,6 +643,7 @@ data.labels={
["en"]="det",
["eo"]="det",
["es"]="det",
+ ["hy"]="det",
["sk"]="det",
["sr"]="det",
["sr-latn"]="det",
@@ -615,6 +653,7 @@ data.labels={
["labels"]={
["en"]="d",
["eo"]="dif",
+ ["hy"]="diff",
},
},
["dim"]={
@@ -623,6 +662,7 @@ data.labels={
["en"]="dim",
["eo"]="dim",
["es"]="dim",
+ ["hy"]="dim",
["mk"]="dim",
["sk"]="dim",
["sr"]="dim",
@@ -635,6 +675,7 @@ data.labels={
["en"]="exp",
["eo"]="eksp",
["es"]="exp",
+ ["hy"]="exp",
["sk"]="exp",
["sr"]="exp",
["sr-latn"]="exp",
@@ -648,6 +689,7 @@ data.labels={
["eo"]="",
["es"]="mcd",
["hr"]="nzd",
+ ["hy"]="ԱԸԲ",
["mk"]="НЗД",
["nl"]="ggd",
["sk"]="NSD",
@@ -661,6 +703,7 @@ data.labels={
["en"]="hom",
["eo"]="hom",
["es"]="hom",
+ ["hy"]="հոմ",
["sk"]="Hom",
},
},
@@ -670,6 +713,7 @@ data.labels={
["en"]="inf",
["eo"]="inf",
["es"]="inf",
+ ["hy"]="inf",
["mk"]="inf",
["sk"]="inf",
["sr"]="inf",
@@ -682,6 +726,7 @@ data.labels={
["en"]="inv",
["eo"]="inv",
["es"]="inv",
+ ["hy"]="inv",
["mk"]="inv",
["sk"]="inv",
["sr"]="inv",
@@ -694,6 +739,7 @@ data.labels={
["en"]="inj\\sixperemspace lim",
["eo"]="",
["es"]="lím\\sixperemspace iny",
+ ["hy"]="inj\\sixperemspace lim",
["sk"]="inj\\sixperemspace lim",
["sr"]="inj\\sixperemspace lim",
["sr-latn"]="inj\\sixperemspace lim",
@@ -705,6 +751,7 @@ data.labels={
["en"]="ker",
["eo"]="",
["es"]="Ker",
+ ["hy"]="ker",
["sk"]="ker",
["sr"]="ker",
["sr-latn"]="ker",
@@ -718,6 +765,7 @@ data.labels={
["eo"]="",
["es"]="MCM",
["hr"]="nzv",
+ ["hy"]="աըբ",
["mk"]="НЗС",
["nl"]="kgv",
["sk"]="NSN",
@@ -732,6 +780,7 @@ data.labels={
["en"]="lg",
["eo"]="log",
["es"]="log",
+ ["hy"]="lg",
["mk"]="lg",
["sk"]="log",
["sr"]="lg",
@@ -744,6 +793,7 @@ data.labels={
["en"]="lim",
["eo"]="lim",
["es"]="lím",
+ ["hy"]="lim",
["mk"]="lim",
["sk"]="lim",
["sr"]="lim",
@@ -756,6 +806,7 @@ data.labels={
["en"]="lim\\sixperemspace inf",
["eo"]="subinf",
["es"]="lím\\sixperemspace inf",
+ ["hy"]="lim\\sixperemspace infs",
["mk"]="lim\\sixperemspace inf",
["sk"]="lim\\sixperemspace inf",
["sr"]="lim\\sixperemspace inf",
@@ -768,6 +819,7 @@ data.labels={
["en"]="lim\\sixperemspace sup",
["eo"]="suplim",
["es"]="lím\\sixperemspace sup",
+ ["hy"]="lim\\sixperemspace sup",
["mk"]="lim\\sixperemspace sup",
["sk"]="lim\\sixperemspace sup",
["sr"]="lim\\sixperemspace sup",
@@ -780,6 +832,7 @@ data.labels={
["en"]="ln",
["eo"]="ln",
["es"]="ln",
+ ["hy"]="ln",
["mk"]="ln",
["sk"]="ln",
["sr"]="ln",
@@ -792,6 +845,7 @@ data.labels={
["en"]="log",
["eo"]="log",
["es"]="log",
+ ["hy"]="log",
["mk"]="log",
["sk"]="log",
["sr"]="log",
@@ -804,6 +858,7 @@ data.labels={
["en"]="max",
["eo"]="maks",
["es"]="máx",
+ ["hy"]="max",
["mk"]="max",
["sk"]="max",
["sr"]="max",
@@ -816,6 +871,7 @@ data.labels={
["en"]="median",
["eo"]="mediano",
["es"]="Mediana",
+ ["hy"]="միջին",
["sk"]="\\tilde",
["sr"]="median",
["sr-latn"]="median",
@@ -827,6 +883,7 @@ data.labels={
["en"]="min",
["eo"]="min",
["es"]="mín",
+ ["hy"]="min",
["mk"]="min",
["sk"]="min",
["sr"]="min",
@@ -839,6 +896,7 @@ data.labels={
["en"]="mod",
["eo"]="mod",
["es"]="mod",
+ ["hy"]="mod",
["mk"]="mod",
["sk"]="mod",
["sr"]="mod",
@@ -851,6 +909,7 @@ data.labels={
["en"]="proj\\sixperemspace lim",
["eo"]="",
["es"]="lím\\sixperemspace proy",
+ ["hy"]="proj\\sixperemspace lim",
["sk"]="proj\\sixperemspace lim",
["sr"]="proj\\sixperemspace lim",
["sr-latn"]="proj\\sixperemspace lim",
@@ -862,6 +921,7 @@ data.labels={
["en"]="sec",
["eo"]="sek",
["es"]="sec",
+ ["hy"]="sec",
["mk"]="sec",
["sk"]="sec",
["sr"]="sec",
@@ -874,6 +934,7 @@ data.labels={
["en"]="sin",
["eo"]="sin",
["es"]="sen",
+ ["hy"]="sin",
["mk"]="sin",
["sk"]="sin",
["sr"]="sin",
@@ -886,6 +947,7 @@ data.labels={
["en"]="sinh",
["eo"]="sinh",
["es"]="senh",
+ ["hy"]="sinh",
["mk"]="sinh",
["sk"]="sinh",
["sr"]="sinh",
@@ -898,6 +960,7 @@ data.labels={
["en"]="sup",
["eo"]="sup",
["es"]="sup",
+ ["hy"]="sup",
["mk"]="sup",
["sk"]="sup",
["sr"]="sup",
@@ -911,6 +974,7 @@ data.labels={
["eo"]="tan",
["es"]="tan",
["hr"]="tg",
+ ["hy"]="tan",
["mk"]="tg",
["pl"]="tg",
["sk"]="tg",
@@ -924,6 +988,7 @@ data.labels={
["en"]="tanh",
["eo"]="tanh",
["es"]="tanh",
+ ["hy"]="tanh",
["mk"]="tgh",
["sk"]="tgh",
["sr"]="tgh",
@@ -949,6 +1014,7 @@ data.labels={
["gr"]="",
["hr"]=" i ",
["hu"]=" és ",
+ ["hy"]=" և ",
["it"]="",
["la"]="",
["lt"]="",
@@ -991,6 +1057,7 @@ data.labels={
["gr"]="Παράρτημα ",
["hr"]="Dodatak ",
["hu"]="Melléklet ",
+ ["hy"]="Հավելված ",
["it"]="",
["ja"]="付録",
["kr"]="부록",
@@ -1038,6 +1105,7 @@ data.labels={
["gr"]="Απρίλιος",
["hr"]="travnja",
["hu"]="április",
+ ["hy"]="Ապրիլ",
["it"]="aprile",
["ja"]="4",
["kr"]="4",
@@ -1066,6 +1134,7 @@ data.labels={
["labels"]={
["en"]="Tir",
["fa"]="تیر",
+ ["hy"]="Տիր",
},
},
["april:mnem"]={
@@ -1085,6 +1154,7 @@ data.labels={
["gr"]="",
["hr"]="tra",
["hu"]="ápr.",
+ ["hy"]="Ապր",
["it"]="",
["la"]="",
["lt"]="apr",
@@ -1125,6 +1195,7 @@ data.labels={
["gr"]="",
["hr"]="na stranici ",
["hu"]="oldal ",
+ ["hy"]="էջում ",
["it"]="a pagina ",
["la"]="",
["lt"]="puslapyje ",
@@ -1171,6 +1242,7 @@ data.labels={
["gr"]="Αύγουστος",
["hr"]="kolovoza",
["hu"]="augusztus",
+ ["hy"]="Օգոստոս",
["it"]="agosto",
["ja"]="8",
["kr"]="8",
@@ -1199,6 +1271,7 @@ data.labels={
["labels"]={
["en"]="Aban",
["fa"]="آبان",
+ ["hy"]="Աբան",
},
},
["august:mnem"]={
@@ -1218,6 +1291,7 @@ data.labels={
["gr"]="",
["hr"]="kol",
["hu"]="aug.",
+ ["hy"]="Օգ",
["it"]="",
["la"]="",
["lt"]="aug",
@@ -1262,6 +1336,7 @@ data.labels={
["gr"]="Κεφάλαιο",
["hr"]="Poglavlje ",
["hu"]={ "", " fejezet" },
+ ["hy"]="Գլուխ ",
["it"]="",
["ja"]={ "第", "章" },
["kr"]={ "제", "장" },
@@ -1305,6 +1380,7 @@ data.labels={
["gr"]="",
["hr"]=" (nastavak)",
["hu"]=" (folytatás)",
+ ["hy"]=" (շարունակություն)",
["it"]="",
["la"]="",
["lt"]="",
@@ -1335,6 +1411,7 @@ data.labels={
["eo"]="tago",
["et"]="päev",
["fa"]="روز",
+ ["hy"]="օր",
["kr"]="일",
["mk"]="ден",
["nl"]="dag",
@@ -1365,6 +1442,7 @@ data.labels={
["gr"]="Δεκέμβριος",
["hr"]="prosinca",
["hu"]="december",
+ ["hy"]="Դեկտեմբեր",
["it"]="dicembre",
["ja"]="12",
["kr"]="12",
@@ -1393,6 +1471,7 @@ data.labels={
["labels"]={
["en"]="Esfand",
["fa"]="اسفند",
+ ["hy"]="Էսֆանդ",
},
},
["december:mnem"]={
@@ -1412,6 +1491,7 @@ data.labels={
["gr"]="",
["hr"]="pro",
["hu"]="dec.",
+ ["hy"]="Դեկ",
["it"]="",
["la"]="",
["lt"]="dec",
@@ -1457,6 +1537,7 @@ data.labels={
["gr"]="Φεβρουάριος",
["hr"]="veljače",
["hu"]="február",
+ ["hy"]="Պետրվար",
["it"]="febbraio",
["ja"]="2",
["kr"]="2",
@@ -1485,6 +1566,7 @@ data.labels={
["labels"]={
["en"]="Ordibehesht",
["fa"]="اردیبهشت",
+ ["hy"]="Օրդիբեհեշթ",
},
},
["february:mnem"]={
@@ -1504,6 +1586,7 @@ data.labels={
["gr"]="",
["hr"]="velj",
["hu"]="feb.",
+ ["hy"]="Փետ",
["it"]="",
["la"]="",
["lt"]="feb",
@@ -1547,6 +1630,7 @@ data.labels={
["gr"]="Σχήμα",
["hr"]="Slika ",
["hu"]={ "", " ábra" },
+ ["hy"]="Նկար ",
["it"]="Fig. ",
["ja"]="図",
["kr"]="그림 ",
@@ -1577,6 +1661,7 @@ data.labels={
["en"]="ff.",
["eo"]="sekvv",
["fr"]=hairspace .. "sqq",
+ ["hy"]="ff.",
},
},
["following:singular"]={
@@ -1585,6 +1670,7 @@ data.labels={
["en"]="f.",
["eo"]="sekv",
["fr"]=hairspace .. "sq",
+ ["hy"]="f.",
},
},
["followingpage"]={
@@ -1594,6 +1680,7 @@ data.labels={
["eo"]="je sekvanta paĝo",
["et"]="järgmisel leheküljel",
["fa"]="در صفحات آینده",
+ ["hy"]="Հաջորդ էջում",
["mk"]="на следната страница",
["nl"]="op een volgende bladzijde",
["sr"]="на следећој страници",
@@ -1621,6 +1708,7 @@ data.labels={
["gr"]="Παρασκευή",
["hr"]="petak",
["hu"]="péntek",
+ ["hy"]="ուրբաթ",
["it"]="venerdì",
["ja"]="金曜日",
["kr"]="금요일",
@@ -1652,6 +1740,7 @@ data.labels={
["de"]="Fr.",
["en"]="fri",
["eo"]="ven.",
+ ["hy"]="Ուրբ",
["sk"]="pi",
["sr"]="пет",
["sr-latn"]="pet",
@@ -1678,6 +1767,7 @@ data.labels={
["gr"]="Γραφικό",
["hr"]="Slika ",
["hu"]={ "", " kép" },
+ ["hy"]="Գրաֆ",
["it"]="Grafico ",
["ja"]="イラスト",
["la"]="Typus ",
@@ -1721,6 +1811,7 @@ data.labels={
["gr"]="",
["hr"]="vidi gore",
["hu"]="lásd feljebb",
+ ["hy"]="ստորև նշված",
["it"]="come mostrato sopra",
["kr"]="그러므로",
["la"]="",
@@ -1764,6 +1855,7 @@ data.labels={
["gr"]="",
["hr"]="vidi ispod",
["hu"]="lásd lejjebb",
+ ["hy"]="ինչպես ցույց է տրված ստորև",
["it"]="come mostrato sotto",
["kr"]="이후로",
["la"]="",
@@ -1807,6 +1899,7 @@ data.labels={
["gr"]="Παύση",
["hr"]="Intermeco ",
["hu"]={ "", " intermezzo" },
+ ["hy"]="Ինտերմեցո",
["it"]="Intermezzo ",
["ja"]="間奏曲",
["kr"]="간주곡",
@@ -1854,6 +1947,7 @@ data.labels={
["gr"]="Ιανουάριος",
["hr"]="siječnja",
["hu"]="január",
+ ["hy"]="Հունվար",
["it"]="gennaio",
["ja"]="1",
["kr"]="1",
@@ -1882,6 +1976,7 @@ data.labels={
["labels"]={
["en"]="Farvardin",
["fa"]="فروردین",
+ ["hy"]="Ֆարվարդին",
},
},
["january:mnem"]={
@@ -1901,6 +1996,7 @@ data.labels={
["gr"]="",
["hr"]="sij",
["hu"]="jan.",
+ ["hy"]="Հունվ",
["it"]="",
["la"]="",
["lt"]="jan",
@@ -1947,6 +2043,7 @@ data.labels={
["gr"]="Ιούλιος",
["hr"]="srpnja",
["hu"]="július",
+ ["hy"]="Հուլիս",
["it"]="luglio",
["ja"]="7",
["kr"]="7",
@@ -1975,6 +2072,7 @@ data.labels={
["labels"]={
["en"]="Mehr",
["fa"]="مهر",
+ ["hy"]="Մեհր",
},
},
["july:mnem"]={
@@ -1994,6 +2092,7 @@ data.labels={
["gr"]="",
["hr"]="srp",
["hu"]="júl.",
+ ["hy"]="Հուլ",
["it"]="",
["la"]="",
["lt"]="jul",
@@ -2039,6 +2138,7 @@ data.labels={
["gr"]="Ιούνιος",
["hr"]="lipnja",
["hu"]="június",
+ ["hy"]="Հունիսի",
["it"]="giugno",
["ja"]="6",
["kr"]="6",
@@ -2067,6 +2167,7 @@ data.labels={
["labels"]={
["en"]="Shahrivar",
["fa"]="شهریور",
+ ["hy"]="Շահրիվար",
},
},
["june:mnem"]={
@@ -2086,6 +2187,7 @@ data.labels={
["gr"]="",
["hr"]="lip",
["hu"]="jún.",
+ ["hy"]="Հուն",
["it"]="",
["la"]="",
["lt"]="jun",
@@ -2129,6 +2231,7 @@ data.labels={
["gr"]="Γραμμή",
["hr"]="redak ",
["hu"]={ "", " sor" },
+ ["hy"]="Տող ",
["it"]="riga ",
["ja"]="線",
["kr"]="행",
@@ -2174,6 +2277,7 @@ data.labels={
["gr"]="Γραμμές",
["hr"]="retci ",
["hu"]="sorok ",
+ ["hy"]="Տողեր ",
["it"]="righe ",
["ja"]="線",
["kr"]="행",
@@ -2220,6 +2324,7 @@ data.labels={
["gr"]="Μάρτιος",
["hr"]="ožujka",
["hu"]="március",
+ ["hy"]="Մարտ",
["it"]="marzo",
["ja"]="3",
["kr"]="3",
@@ -2248,6 +2353,7 @@ data.labels={
["labels"]={
["en"]="Khordad",
["fa"]="خرداد",
+ ["hy"]="Խորդադ",
},
},
["march:mnem"]={
@@ -2267,6 +2373,7 @@ data.labels={
["gr"]="",
["hr"]="ožu",
["hu"]="már.",
+ ["hy"]="Մարտ",
["it"]="",
["la"]="",
["lt"]="mar",
@@ -2313,6 +2420,7 @@ data.labels={
["gr"]="Μάιος",
["hr"]="svibnja",
["hu"]="május",
+ ["hy"]="Մայիս",
["it"]="maggio",
["ja"]="5",
["kr"]="5",
@@ -2341,6 +2449,7 @@ data.labels={
["labels"]={
["en"]="Mordad",
["fa"]="مرداد",
+ ["hy"]="Մորդադ",
},
},
["may:mnem"]={
@@ -2360,6 +2469,7 @@ data.labels={
["gr"]="",
["hr"]="svi",
["hu"]="máj.",
+ ["hy"]="Մայ",
["it"]="",
["la"]="",
["lt"]="may",
@@ -2403,6 +2513,7 @@ data.labels={
["gr"]="Δευτέρα",
["hr"]="ponedjeljak",
["hu"]="hétfő",
+ ["hy"]="երկուշաբթի",
["it"]="lunedì",
["ja"]="月曜日",
["kr"]="월요일",
@@ -2434,6 +2545,7 @@ data.labels={
["de"]="Mo.",
["en"]="mon",
["eo"]="lun.",
+ ["hy"]="Երկ",
["sk"]="po",
["sr"]="пон",
["sr-latn"]="pon",
@@ -2448,6 +2560,7 @@ data.labels={
["eo"]="monato",
["et"]="kuu",
["fa"]="ماه",
+ ["hy"]="ամիս",
["kr"]="월",
["mk"]="месец",
["nl"]="maand",
@@ -2478,6 +2591,7 @@ data.labels={
["gr"]="Νοέμβριος",
["hr"]="studenog",
["hu"]="november",
+ ["hy"]="Նոյեմբեր",
["it"]="novembre",
["ja"]="11",
["kr"]="11",
@@ -2506,6 +2620,7 @@ data.labels={
["labels"]={
["en"]="Bahman",
["fa"]="بهمن",
+ ["hy"]="Բահման",
},
},
["november:mnem"]={
@@ -2525,6 +2640,7 @@ data.labels={
["gr"]="",
["hr"]="stu",
["hu"]="nov.",
+ ["hy"]="Նոյ",
["it"]="",
["la"]="",
["lt"]="nov",
@@ -2569,6 +2685,7 @@ data.labels={
["gr"]="Οκτώβριος",
["hr"]="listopada",
["hu"]="október",
+ ["hy"]="հոկտեմբեր",
["it"]="ottobre",
["ja"]="10",
["kr"]="10",
@@ -2597,6 +2714,7 @@ data.labels={
["labels"]={
["en"]="Dey",
["fa"]="دی",
+ ["hy"]="Դեյ",
},
},
["october:mnem"]={
@@ -2616,6 +2734,7 @@ data.labels={
["gr"]="",
["hr"]="lis",
["hu"]="okt.",
+ ["hy"]="Հոկ",
["it"]="",
["la"]="",
["lt"]="oct",
@@ -2658,6 +2777,7 @@ data.labels={
["gr"]="",
["hr"]="stranica ",
["hu"]="oldal ",
+ ["hy"]="էջ ",
["it"]="pagina ",
["kr"]="쪽",
["la"]="",
@@ -2702,6 +2822,7 @@ data.labels={
["gr"]="Μέρος",
["hr"]="Dio ",
["hu"]={ "", " rész" },
+ ["hy"]="Մաս ",
["it"]="Parte ",
["ja"]={ "第", "パート" },
["kr"]={ "제", "부" },
@@ -2733,6 +2854,7 @@ data.labels={
["eo"]="sur antaŭa paĝo",
["et"]="eelmisel lehel",
["fa"]="در صفحات گذشته",
+ ["hy"]="նախորդ էջ",
["mk"]="на претходната страница",
["nl"]="op een voorgaande bladzijde",
["sr"]="на претходној страници",
@@ -2760,6 +2882,7 @@ data.labels={
["gr"]="Σάββατο",
["hr"]="subota",
["hu"]="szombat",
+ ["hy"]="շաբաթ",
["it"]="sabato",
["ja"]="土曜日",
["kr"]="토요일",
@@ -2791,6 +2914,7 @@ data.labels={
["de"]="Sa.",
["en"]="sat",
["eo"]="sab.",
+ ["hy"]="Շաբ",
["sk"]="so",
["sr"]="суб",
["sr-latn"]="sub",
@@ -2817,6 +2941,7 @@ data.labels={
["gr"]="Ενότητα",
["hr"]="Odjeljak ",
["hu"]="Fejezet ",
+ ["hy"]="Բաժին ",
["it"]="",
["ja"]={ "第", "項" },
["kr"]={ "제", "절" },
@@ -2861,6 +2986,7 @@ data.labels={
["gr"]="",
["hr"]="vidi ",
["hu"]="lásd ",
+ ["hy"]="Նայել ",
["it"]="cf. ",
["kr"]="",
["la"]="",
@@ -2907,6 +3033,7 @@ data.labels={
["gr"]="Σεπτέμβριος",
["hr"]="rujna",
["hu"]="szeptember",
+ ["hy"]="Սեպտեմբեր",
["it"]="settembre",
["ja"]="9",
["kr"]="9",
@@ -2935,6 +3062,7 @@ data.labels={
["labels"]={
["en"]="Azar",
["fa"]="آذر",
+ ["hy"]="Ազար",
},
},
["september:mnem"]={
@@ -2954,6 +3082,7 @@ data.labels={
["gr"]="",
["hr"]="ruj",
["hu"]="szep.",
+ ["hy"]="Սեպ",
["it"]="",
["la"]="",
["lt"]="sep",
@@ -2997,6 +3126,7 @@ data.labels={
["gr"]="Υπόενότητα",
["hr"]="Pododjeljak ",
["hu"]="Alfejezet ",
+ ["hy"]=" Ենթաբաժին ",
["it"]="",
["ja"]="",
["la"]="",
@@ -3041,6 +3171,7 @@ data.labels={
["gr"]="",
["hr"]="Podpododjeljak ",
["hu"]="Al-alfejezet ",
+ ["hy"]="Ենթաենթաբաժին ",
["it"]="",
["ja"]="",
["la"]="",
@@ -3085,6 +3216,7 @@ data.labels={
["gr"]="",
["hr"]="Podpodpododjeljak ",
["hu"]="Al-al-alfejezet ",
+ ["hy"]="Ենթաենթաենթաբաժին ",
["it"]="",
["ja"]="",
["la"]="",
@@ -3129,6 +3261,7 @@ data.labels={
["gr"]="Κυριακή",
["hr"]="nedjelja",
["hu"]="vasárnap",
+ ["hy"]="կիրակի",
["it"]="domenica",
["ja"]="日曜日",
["kr"]="일요일",
@@ -3160,6 +3293,7 @@ data.labels={
["de"]="So.",
["en"]="sun",
["eo"]="dim.",
+ ["hy"]="Կիր",
["sk"]="ne",
["sr"]="нед",
["sr-latn"]="ned",
@@ -3186,6 +3320,7 @@ data.labels={
["gr"]="Πίνακας",
["hr"]="Tablica ",
["hu"]={ "", " táblázat" },
+ ["hy"]="Աղյուսակ ",
["it"]="Tabella ",
["ja"]="表",
["kr"]="표 ",
@@ -3231,6 +3366,7 @@ data.labels={
["gr"]="Πέμπτη",
["hr"]="četvrtak",
["hu"]="csütörtök",
+ ["hy"]="հինգշաբթի",
["it"]="giovedì",
["ja"]="木曜日",
["kr"]="목요일",
@@ -3262,6 +3398,7 @@ data.labels={
["de"]="Do.",
["en"]="thu",
["eo"]="ĵaŭ.",
+ ["hy"]="Հնգ",
["sk"]="št",
["sr"]="чет",
["sr-latn"]="čet",
@@ -3288,6 +3425,7 @@ data.labels={
["gr"]="Τρίτη",
["hr"]="utorak",
["hu"]="kedd",
+ ["hy"]="երեքշաբթի",
["it"]="martedì",
["ja"]="火曜日",
["kr"]="화요일",
@@ -3319,6 +3457,7 @@ data.labels={
["de"]="Di.",
["en"]="tue",
["eo"]="mar.",
+ ["hy"]="Երք",
["sk"]="út",
["sr"]="уто",
["sr-latn"]="uto",
@@ -3345,6 +3484,7 @@ data.labels={
["gr"]="Τετάρτη",
["hr"]="srijeda",
["hu"]="szerda",
+ ["hy"]="չորեքշաբթի",
["it"]="mercoledì",
["ja"]="水曜日",
["kr"]="수요일",
@@ -3376,6 +3516,7 @@ data.labels={
["de"]="Mi.",
["en"]="wed",
["eo"]="mer.",
+ ["hy"]="չոր",
["sk"]="st",
["sr"]="сре",
["sr-latn"]="sre",
@@ -3389,6 +3530,7 @@ data.labels={
["eo"]="jaro",
["et"]="aasta",
["fa"]="سال",
+ ["hy"]="Տարի",
["kr"]="년",
["mk"]="година",
["nl"]="jaar",
@@ -3419,6 +3561,7 @@ data.labels={
["gr"]="Συντομογραφίες",
["hr"]="Kratice",
["hu"]="Rövidítések",
+ ["hy"]="Հապավումներ",
["it"]="Abbreviazioni",
["ja"]="略語",
["kr"]="약어",
@@ -3464,6 +3607,7 @@ data.labels={
["gr"]="Περιεχόμενα",
["hr"]="Sadržaj",
["hu"]="Tartalom",
+ ["hy"]="Բովանդակություն",
["it"]="Indice",
["ja"]="目次",
["kr"]="목차",
@@ -3508,6 +3652,7 @@ data.labels={
["gr"]="Σχήματα",
["hr"]="Slike",
["hu"]="Ábrák",
+ ["hy"]="Նկարազարդումներ",
["it"]="Figure",
["ja"]="図",
["kr"]="그림 ",
@@ -3553,6 +3698,7 @@ data.labels={
["gr"]="Γραφικά",
["hr"]="Slike",
["hu"]="Grafikák",
+ ["hy"]="Գծապատկեր",
["it"]="Grafici",
["ja"]="グラフ",
["kr"]="그래픽 ",
@@ -3598,6 +3744,7 @@ data.labels={
["gr"]="Ευρετήριο",
["hr"]="Indeks",
["hu"]="Index",
+ ["hy"]="Այբբենական ցուցիչ",
["it"]="Indice",
["ja"]="目次",
["kr"]="찾아보기",
@@ -3642,6 +3789,7 @@ data.labels={
["gr"]="Παύσεις",
["hr"]="Intermeci",
["hu"]="Intermezzok",
+ ["hy"]="Ինտերլյուդներ",
["it"]="Intermezzi",
["ja"]="間奏曲",
["kr"]="간주곡",
@@ -3687,6 +3835,7 @@ data.labels={
["gr"]="Λογότυπα",
["hr"]="Logotipi",
["hu"]="Fejlécek",
+ ["hy"]="Լոգոներ",
["it"]="Logotipi",
["ja"]="理性",
["kr"]="이성",
@@ -3728,6 +3877,7 @@ data.labels={
["gr"]="",
["hr"]="Literatura",
["hu"]="Bibliográfia",
+ ["hy"]="Գրականութիւն",
["it"]="Bibliografia",
["kr"]="참고문헌",
["la"]="",
@@ -3771,6 +3921,7 @@ data.labels={
["gr"]="Πίνακες",
["hr"]="Tablice",
["hu"]="Táblázatok",
+ ["hy"]="Աղյուսակներ",
["it"]="Tabelle",
["ja"]="机",
["kr"]="표 ",
@@ -3816,6 +3967,7 @@ data.labels={
["gr"]="Μονάδες",
["hr"]="Jedinice",
["hu"]="Mértékegységek",
+ ["hy"]="Չափման միավորներ",
["it"]="Unità",
["ja"]="ユニッツ",
["kr"]="측정단위",
diff --git a/tex/context/base/mkiv/mtx-context-setters.tex b/tex/context/base/mkiv/mtx-context-setters.tex
index 3201ae3ba..c90c385c5 100644
--- a/tex/context/base/mkiv/mtx-context-setters.tex
+++ b/tex/context/base/mkiv/mtx-context-setters.tex
@@ -24,9 +24,12 @@
\starttext
-\doifdocumentargument {trackers} { \ctxlua {trackers .show(environment.arguments.pattern) } }
-\doifdocumentargument {directives} { \ctxlua {directives .show(environment.arguments.pattern) } }
-\doifdocumentargument {experiments} { \ctxlua {experiments.show(environment.arguments.pattern) } }
+\doifdocumentargument {trackers} { \ctxlua {trackers .show(environment.arguments.pattern) } }
+\doifdocumentargument {directives} { \ctxlua {directives .show(environment.arguments.pattern) } }
+\doifdocumentargument {experiments} { \ctxlua {experiments.show(environment.arguments.pattern) } }
+\doifdocumentargument {showtrackers} { \ctxlua {trackers .show(environment.arguments.pattern) } }
+\doifdocumentargument {showdirectives} { \ctxlua {directives .show(environment.arguments.pattern) } }
+\doifdocumentargument {showexperiments} { \ctxlua {experiments.show(environment.arguments.pattern) } }
\stoptext
diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua
index e4566b7e4..835588e46 100644
--- a/tex/context/base/mkiv/mult-low.lua
+++ b/tex/context/base/mkiv/mult-low.lua
@@ -112,7 +112,8 @@ return {
"applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode",
"checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode",
"analyzescriptnucleuscharmathcontrolcode", "analyzescriptnucleuslistmathcontrolcode", "analyzescriptnucleusboxmathcontrolcode",
- "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode",
+ "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode", "ignoreflataccentsmathcontrolcode",
+ "extendaccentsmathcontrolcode",
--
"noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode",
"noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode",
@@ -188,7 +189,7 @@ return {
"twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace",
"figurespace", "punctuationspace", "hairspace", "enquad", "emquad",
"zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj",
- "optionalspace", "asciispacechar", "softhyphen",
+ "optionalspace", "asciispacechar", "softhyphen", "autoinsertedspace",
--
"Ux", "eUx", "Umathaccents",
--
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 60fb704d4..32b8aa440 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -648,6 +648,7 @@ return {
"unletprotected",
"untraced",
"unvpack",
+ "variablefam",
"vpack",
"wordboundary",
"wrapuppar",
diff --git a/tex/context/base/mkiv/mult-sys.mkiv b/tex/context/base/mkiv/mult-sys.mkiv
index 149a7ac24..07ec16e2b 100644
--- a/tex/context/base/mkiv/mult-sys.mkiv
+++ b/tex/context/base/mkiv/mult-sys.mkiv
@@ -44,6 +44,10 @@
% definesystemconstant {vn}
\definesystemconstant {afrikaans} \definesystemconstant {af}
+\definesystemconstant {albanian} \definesystemconstant {sq}
+\definesystemconstant {armenian} \definesystemconstant {hy}
+ \definesystemconstant {hye}
+ \definesystemconstant {hyw}
\definesystemconstant {ancientgreek} \definesystemconstant {agr}
\definesystemconstant {ancientlatin} \definesystemconstant {ala}
\definesystemconstant {arabic} \definesystemconstant {ar}
diff --git a/tex/context/base/mkiv/spac-chr.lua b/tex/context/base/mkiv/spac-chr.lua
index 233552460..f9b4da31a 100644
--- a/tex/context/base/mkiv/spac-chr.lua
+++ b/tex/context/base/mkiv/spac-chr.lua
@@ -28,7 +28,10 @@ local nodes, node = nodes, node
local nuts = nodes.nuts
+local getid = nuts.getid
local getboth = nuts.getboth
+local getsubtype = nuts.getsubtype
+local setsubtype = nuts.setsubtype
local getnext = nuts.getnext
local getprev = nuts.getprev
local getattr = nuts.getattr
@@ -37,7 +40,6 @@ local getlanguage = nuts.getlanguage
local setchar = nuts.setchar
local setattrlist = nuts.setattrlist
local getfont = nuts.getfont
-local setsubtype = nuts.setsubtype
local isglyph = nuts.isglyph
local setcolor = nodes.tracers.colors.set
@@ -60,10 +62,12 @@ local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
local spaceskip_code = gluecodes.spaceskip
local chardata = characters.data
-local is_punctuation = characters.is_punctuation
+local ispunctuation = characters.is_punctuation
+local canhavespace = characters.can_have_space
local typesetters = typesetters
@@ -182,13 +186,27 @@ local methods = {
-- maybe also 0x0008 : backspace
+ [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)
+ end
+ end
+ end
+ end,
+
[0x001F] = function(head,current) -- kind of special
local next = getnext(current)
if next then
local char, font = isglyph(next)
if char then
head, current = remove_node(head,current,true)
- if not is_punctuation[char] then
+ 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
diff --git a/tex/context/base/mkiv/spac-chr.mkiv b/tex/context/base/mkiv/spac-chr.mkiv
index 9113dc6a1..4c7cc9492 100644
--- a/tex/context/base/mkiv/spac-chr.mkiv
+++ b/tex/context/base/mkiv/spac-chr.mkiv
@@ -95,7 +95,8 @@
\popoverloadmode
-\chardef\optionalspace"1F % will be space unless before punctuation
+\chardef\optionalspace "1F % will be space unless before punctuation
+\chardef\autoinsertedspace"1E % a more clever \autoinsertspace
% Shortcuts:
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index c02ca06bf..13b79a990 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 8c4741da4..bd256d4ec 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/type-set.mkiv b/tex/context/base/mkiv/type-set.mkiv
index 269d41966..c87129e94 100644
--- a/tex/context/base/mkiv/type-set.mkiv
+++ b/tex/context/base/mkiv/type-set.mkiv
@@ -62,9 +62,9 @@
\definefilesynonym [type-imp-latin-modern.mkiv] [type-imp-latinmodern.mkiv]
\definefilesynonym [type-imp-modern-latin.mkiv] [type-imp-modernlatin.mkiv]
-\definefilesynonym [type-imp-lucida.mkiv] [type-imp-lucida-typeone.mkiv]
-\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida-opentype.mkiv]
-\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida-opentype.mkiv]
+\definefilesynonym [type-imp-lucida-opentype.mkiv] [type-imp-lucida.mkiv]
+\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida.mkiv]
+\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida.mkiv]
\definefilesynonym [type-imp-dejavu-condensed.mkiv] [type-imp-dejavu.mkiv]