summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2010-05-24 13:05:00 +0200
committerHans Hagen <pragma@wxs.nl>2010-05-24 13:05:00 +0200
commite08195a7149edffddb4b69b480676fad336a7613 (patch)
treefd8b871b50b1a1404610e2dc5d118bfdf4cc1a68
parent882238ac1ea6d9563ea4e1add879f82ee8e6d9d0 (diff)
downloadcontext-e08195a7149edffddb4b69b480676fad336a7613.tar.gz
stable 2010.05.24 13:05
-rw-r--r--scripts/context/lua/mtxrun.lua6
-rw-r--r--scripts/context/ruby/base/tex.rb8
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua6
-rwxr-xr-xscripts/context/stubs/unix/mtxrun6
-rw-r--r--tex/context/base/char-def.lua13
-rw-r--r--tex/context/base/char-ini.lua46
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.mkiv1
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/font-afm.lua83
-rw-r--r--tex/context/base/font-dum.lua21
-rw-r--r--tex/context/base/font-ext.lua48
-rw-r--r--tex/context/base/font-gds.lua144
-rw-r--r--tex/context/base/font-ini.mkiv31
-rw-r--r--tex/context/base/font-ota.lua38
-rw-r--r--tex/context/base/font-otf.lua110
-rw-r--r--tex/context/base/lxml-tab.lua2
-rw-r--r--tex/context/base/mult-ini.mkiv13
-rw-r--r--tex/context/base/node-fnt.lua2
-rw-r--r--tex/context/base/page-ini.mkiv10
-rw-r--r--tex/context/base/spac-hor.mkiv8
-rw-r--r--tex/context/base/strc-reg.lua2
-rw-r--r--tex/context/base/task-ini.lua2
-rw-r--r--tex/context/base/type-one.mkii135
-rw-r--r--tex/context/base/type-otf.mkii138
-rw-r--r--tex/context/base/type-otf.mkiv138
-rw-r--r--tex/context/base/typo-rep.lua135
-rw-r--r--tex/context/base/typo-rep.mkiv53
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua173
29 files changed, 930 insertions, 446 deletions
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index ae0ee162f..b99327692 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -3518,6 +3518,10 @@ function aux.accesstable(target)
return t
end
+--~ function string.commaseparated(str)
+--~ return gmatch(str,"([^,%s]+)")
+--~ end
+
-- as we use this a lot ...
--~ function aux.cachefunction(action,weak)
@@ -3920,7 +3924,7 @@ xml = xml or { }
local concat, remove, insert = table.concat, table.remove, table.insert
local type, next, setmetatable, getmetatable, tonumber = type, next, setmetatable, getmetatable, tonumber
-local format, lower, find, match = string.format, string.lower, string.find, string.match
+local format, lower, find, match, gsub = string.format, string.lower, string.find, string.match, string.gsub
local utfchar = unicode.utf8.char
local lpegmatch = lpeg.match
local P, S, R, C, V, C, Cs = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.C, lpeg.Cs
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index dd3def7d2..84025693b 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -761,7 +761,8 @@ class TEX
# utilities
report('start of analysis')
results = Array.new
- ['texexec','texutil','ctxtools'].each do |program|
+ # ['texexec','texutil','ctxtools'].each do |program|
+ ['texexec'].each do |program|
result = `texmfstart #{program} --help`
result.sub!(/.*?(#{program}[^\n]+)\n.*/mi) do $1 end
results.push("#{result}")
@@ -2052,7 +2053,10 @@ end
Kpse.runscript('ctxtools',rawbase,'--purge') if getvariable('purge')
Kpse.runscript('ctxtools',rawbase,'--purge --all') if getvariable('purgeall')
-# till here
+
+ # runcommand('mtxrun','--script','ctxtools',rawbase,'--purge') if getvariable('purge')
+ # runcommand('mtxrun','--script','ctxtools',rawbase,'--purge --all') if getvariable('purgeall')
+
when 'latex' then
ok = runtex(rawname)
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index ae0ee162f..b99327692 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -3518,6 +3518,10 @@ function aux.accesstable(target)
return t
end
+--~ function string.commaseparated(str)
+--~ return gmatch(str,"([^,%s]+)")
+--~ end
+
-- as we use this a lot ...
--~ function aux.cachefunction(action,weak)
@@ -3920,7 +3924,7 @@ xml = xml or { }
local concat, remove, insert = table.concat, table.remove, table.insert
local type, next, setmetatable, getmetatable, tonumber = type, next, setmetatable, getmetatable, tonumber
-local format, lower, find, match = string.format, string.lower, string.find, string.match
+local format, lower, find, match, gsub = string.format, string.lower, string.find, string.match, string.gsub
local utfchar = unicode.utf8.char
local lpegmatch = lpeg.match
local P, S, R, C, V, C, Cs = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.C, lpeg.Cs
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index ae0ee162f..b99327692 100755
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -3518,6 +3518,10 @@ function aux.accesstable(target)
return t
end
+--~ function string.commaseparated(str)
+--~ return gmatch(str,"([^,%s]+)")
+--~ end
+
-- as we use this a lot ...
--~ function aux.cachefunction(action,weak)
@@ -3920,7 +3924,7 @@ xml = xml or { }
local concat, remove, insert = table.concat, table.remove, table.insert
local type, next, setmetatable, getmetatable, tonumber = type, next, setmetatable, getmetatable, tonumber
-local format, lower, find, match = string.format, string.lower, string.find, string.match
+local format, lower, find, match, gsub = string.format, string.lower, string.find, string.match, string.gsub
local utfchar = unicode.utf8.char
local lpegmatch = lpeg.match
local P, S, R, C, V, C, Cs = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.C, lpeg.Cs
diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua
index 2ed91eb4b..b7abee0fb 100644
--- a/tex/context/base/char-def.lua
+++ b/tex/context/base/char-def.lua
@@ -14015,6 +14015,7 @@ characters.data={
category="cf",
description="ARABIC NUMBER SIGN",
direction="an",
+ visible="yes",
linebreak="al",
unicodeslot=0x0600,
},
@@ -14022,6 +14023,7 @@ characters.data={
category="cf",
description="ARABIC SIGN SANAH",
direction="an",
+ visible="yes",
linebreak="al",
unicodeslot=0x0601,
},
@@ -14029,6 +14031,7 @@ characters.data={
category="cf",
description="ARABIC FOOTNOTE MARKER",
direction="an",
+ visible="yes",
linebreak="al",
unicodeslot=0x0602,
},
@@ -14036,6 +14039,7 @@ characters.data={
category="cf",
description="ARABIC SIGN SAFHA",
direction="an",
+ visible="yes",
linebreak="al",
unicodeslot=0x0603,
},
@@ -15556,6 +15560,7 @@ characters.data={
category="cf",
description="ARABIC END OF AYAH",
direction="an",
+ visible="yes",
linebreak="al",
unicodeslot=0x06DD,
},
@@ -15905,6 +15910,7 @@ characters.data={
category="cf",
description="SYRIAC ABBREVIATION MARK",
direction="bn",
+ visible="yes",
linebreak="al",
unicodeslot=0x070F,
},
@@ -48844,6 +48850,7 @@ characters.data={
[0x200C]={
adobename="afii61664",
category="cf",
+ contextname="zwnj",
description="ZERO WIDTH NON-JOINER",
direction="bn",
linebreak="cm",
@@ -48852,6 +48859,7 @@ characters.data={
[0x200D]={
adobename="afii301",
category="cf",
+ contextname="zwj",
description="ZERO WIDTH JOINER",
direction="bn",
linebreak="cm",
@@ -49552,7 +49560,7 @@ characters.data={
[0x2061]={
category="cf",
comment="maybe: nulloperator",
- contextcommand="relax",
+ contextname="relax",
description="FUNCTION APPLICATION",
direction="bn",
linebreak="al",
@@ -108530,6 +108538,7 @@ characters.data={
category="cf",
description="INTERLINEAR ANNOTATION ANCHOR",
direction="on",
+ visible="yes",
linebreak="cm",
unicodeslot=0xFFF9,
},
@@ -108537,6 +108546,7 @@ characters.data={
category="cf",
description="INTERLINEAR ANNOTATION SEPARATOR",
direction="on",
+ visible="yes",
linebreak="cm",
unicodeslot=0xFFFA,
},
@@ -108544,6 +108554,7 @@ characters.data={
category="cf",
description="INTERLINEAR ANNOTATION TERMINATOR",
direction="on",
+ visible="yes",
linebreak="cm",
unicodeslot=0xFFFB,
},
diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua
index 9393feee7..5c4a40bad 100644
--- a/tex/context/base/char-ini.lua
+++ b/tex/context/base/char-ini.lua
@@ -422,6 +422,7 @@ function characters.define(tobelettered, tobeactivated) -- catcodetables
end
end
elseif is_command[category] then
+ -- this might change: contextcommand ipv contextname
-- texprint(format("{\\catcode %s=13\\unexpanded\\gdef %s{\\%s}}",u,utfchar(u),contextname))
texsprint("{\\catcode",u,"=13\\unexpanded\\gdef ",utfchar(u),"{\\"..contextname,"}}") -- no texprint
activated[#activated+1] = "\\c"..u.."\\a"
@@ -650,3 +651,48 @@ function characters.upper(str)
end
return concat(new)
end
+
+-- -- some day we might go this route, but it does not really save that much
+-- -- so not now (we can generate a lot using mtx-unicode that operates on the
+-- -- database)
+--
+-- -- category cjkwd direction linebreak
+--
+-- -- adobename comment contextcommand contextname description fallback lccode
+-- -- mathclass mathfiller mathname mathspec mathstretch mathsymbol mirror
+-- -- range shcode specials uccode uccodes unicodeslot
+--
+-- local data = {
+-- ['one']={
+-- common = {
+-- category="cc",
+-- direction="bn",
+-- linebreak="cm",
+-- },
+-- vector = {
+-- [0x0000] = {
+-- description="NULL",
+-- group='one',
+-- unicodeslot=0x0000,
+-- },
+-- {
+-- description="START OF HEADING",
+-- group='one',
+-- unicodeslot=0x0001,
+-- },
+-- }
+-- }
+-- }
+--
+-- local chardata, groupdata = { }, { }
+--
+-- for group, gdata in next, data do
+-- local common, vector = { __index = gdata.common }, gdata.vector
+-- for character, cdata in next, vector do
+-- chardata[character] = cdata
+-- setmetatable(cdata,common)
+-- end
+-- groupdata[group] = gdata
+-- end
+
+--~ characters.data, characters.groups = chardata, groupdata
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 65318a8ce..9c4fdba18 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2010.05.23 15:03}
+\newcontextversion{2010.05.24 13:05}
%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/context.mkiv b/tex/context/base/context.mkiv
index 7b5dfe613..33fa3a901 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -262,6 +262,7 @@
\loadmarkfile{typo-brk}
\loadmarkfile{typo-cap}
\loadmarkfile{typo-dig}
+\loadmarkfile{typo-rep}
\loadmarkfile{type-ini}
\loadmarkfile{type-set}
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 09404ab48..47489658e 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2010.05.23 15:03}
+\edef\contextversion{2010.05.24 13:05}
%D For those who want to use this:
diff --git a/tex/context/base/font-afm.lua b/tex/context/base/font-afm.lua
index 6aa3ef45a..87dec59c6 100644
--- a/tex/context/base/font-afm.lua
+++ b/tex/context/base/font-afm.lua
@@ -23,6 +23,7 @@ local trace_loading = false trackers.register("afm.loading", function(v) trac
local format, match, gmatch, lower, gsub = string.format, string.match, string.gmatch, string.lower, string.gsub
local lpegmatch = lpeg.match
+local abs = math.abs
fonts = fonts or { }
fonts.afm = fonts.afm or { }
@@ -466,74 +467,48 @@ function afm.copy_to_tfm(data)
local metadata, luatex = data.metadata, data.luatex
local unicodes, indices = luatex.unicodes, luatex.indices
local characters, parameters, descriptions = { }, { }, { }
- local tfm = {
- characters = characters,
- parameters = parameters,
- descriptions = descriptions,
- indices = indices,
- unicodes = unicodes,
- luatex = luatex,
- }
+ -- todo : merge into tfm
for u, i in next, indices do
local d = glyphs[i]
characters[u] = { }
descriptions[u] = d
end
- tfm.encodingbytes = 2 -- was metadata.encodingbytes or 2
- tfm.filename = fonts.tfm.checked_filename(luatex) -- was metadata.filename
- tfm.fontname = metadata.fontname or metadata.fullname
- tfm.fullname = metadata.fullname or metadata.fontname
- tfm.psname = tfm.fullname -- in otf: tfm.fontname or tfm.fullname
- tfm.name = tfm.filename or tfm.fullname or tfm.fontname
- tfm.format = fonts.fontformat(tfm.filename,"type1")
- tfm.type = 'real'
- tfm.units = 1000
- tfm.direction = 0
- tfm.boundarychar_label = 0
- tfm.boundarychar = 65536
- --~ tfm.false_boundarychar = 65536 -- produces invalid tfm in luatex
- tfm.designsize = (metadata.designsize or 10)*65536
- local spaceunits = 500
- tfm.spacer = "500 units"
+ local filename = fonts.tfm.checked_filename(luatex) -- was metadata.filename
+ local fontname = metadata.fontname or metadata.fullname
+ local fullname = metadata.fullname or metadata.fontname
+ local endash, emdash, space, spaceunits = unicodes['space'], unicodes['emdash'], "space", 500
-- same as otf
- local endash, emdash = unicodes['space'], unicodes['emdash']
if metadata.isfixedpitch then
if descriptions[endash] then
- spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ spaceunits, spacer = descriptions[endash].width, "space"
end
if not spaceunits and descriptions[emdash] then
- spaceunits, tfm.spacer = descriptions[emdash].width, "emdash"
+ spaceunits, spacer = descriptions[emdash].width, "emdash"
end
if not spaceunits and metadata.charwidth then
- spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ spaceunits, spacer = metadata.charwidth, "charwidth"
end
else
if descriptions[endash] then
- spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ spaceunits, spacer = descriptions[endash].width, "space"
end
- -- if not spaceunits and descriptions[emdash] then
- -- spaceunits, tfm.spacer = descriptions[emdash].width/2, "emdash/2"
- -- end
if not spaceunits and metadata.charwidth then
- spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ spaceunits, spacer = metadata.charwidth, "charwidth"
end
end
- --
spaceunits = tonumber(spaceunits)
+ if spaceunits < 200 then
+ -- todo: warning
+ end
+ --
parameters.slant = 0
parameters.space = spaceunits
parameters.space_stretch = 500
parameters.space_shrink = 333
parameters.x_height = 400
parameters.quad = 1000
- if spaceunits < 200 then
- -- todo: warning
- end
- tfm.ascender = math.abs(metadata.ascender or 0)
- tfm.descender = math.abs(metadata.descender or 0)
local italicangle = data.metadata.italicangle
if italicangle then
- tfm.italicangle = italicangle
parameters.slant = parameters.slant - math.round(math.tan(italicangle*math.pi/180))
end
if metadata.isfixedpitch then
@@ -563,8 +538,34 @@ function afm.copy_to_tfm(data)
parameters[k] = v
end
end
+ --
if next(characters) then
- return tfm
+ return {
+ characters = characters,
+ parameters = parameters,
+ descriptions = descriptions,
+ indices = indices,
+ unicodes = unicodes,
+ luatex = luatex,
+ encodingbytes = 2,
+ filename = filename,
+ fontname = fontname,
+ fullname = fullname,
+ psname = fullname, -- in otf: tfm.fontname or tfm.fullname
+ name = filename or fullname or fontname,
+ format = fonts.fontformat(filename,"type1"),
+ type = 'real',
+ units = 1000,
+ direction = 0,
+ boundarychar_label = 0,
+ boundarychar = 65536,
+ --~ false_boundarychar = 65536, -- produces invalid tfm in luatex
+ designsize = (metadata.designsize or 10)*65536,
+ spacer = spacer,
+ ascender = abs(metadata.ascender or 0),
+ descender = abs(metadata.descender or 0),
+ italicangle = italicangle,
+ }
end
end
end
diff --git a/tex/context/base/font-dum.lua b/tex/context/base/font-dum.lua
index 99ee45f36..0a9bcd301 100644
--- a/tex/context/base/font-dum.lua
+++ b/tex/context/base/font-dum.lua
@@ -10,7 +10,7 @@ fonts = fonts or { }
-- general
-fonts.otf.pack = false
+fonts.otf.pack = false -- only makes sense in context
fonts.tfm.resolve_vf = false -- no sure about this
fonts.tfm.fontname_mode = "specification" -- somehow latex needs this
@@ -280,3 +280,22 @@ function fonts.otf.char(n)
tex.sprint("\\char" .. n)
end
end
+
+-- another one:
+
+fonts.strippables = table.tohash {
+ 0x000AD, 0x017B4, 0x017B5, 0x0200B, 0x0200C, 0x0200D, 0x0200E, 0x0200F, 0x0202A, 0x0202B,
+ 0x0202C, 0x0202D, 0x0202E, 0x02060, 0x02061, 0x02062, 0x02063, 0x0206A, 0x0206B, 0x0206C,
+ 0x0206D, 0x0206E, 0x0206F, 0x0FEFF, 0x1D173, 0x1D174, 0x1D175, 0x1D176, 0x1D177, 0x1D178,
+ 0x1D179, 0x1D17A, 0xE0001, 0xE0020, 0xE0021, 0xE0022, 0xE0023, 0xE0024, 0xE0025, 0xE0026,
+ 0xE0027, 0xE0028, 0xE0029, 0xE002A, 0xE002B, 0xE002C, 0xE002D, 0xE002E, 0xE002F, 0xE0030,
+ 0xE0031, 0xE0032, 0xE0033, 0xE0034, 0xE0035, 0xE0036, 0xE0037, 0xE0038, 0xE0039, 0xE003A,
+ 0xE003B, 0xE003C, 0xE003D, 0xE003E, 0xE003F, 0xE0040, 0xE0041, 0xE0042, 0xE0043, 0xE0044,
+ 0xE0045, 0xE0046, 0xE0047, 0xE0048, 0xE0049, 0xE004A, 0xE004B, 0xE004C, 0xE004D, 0xE004E,
+ 0xE004F, 0xE0050, 0xE0051, 0xE0052, 0xE0053, 0xE0054, 0xE0055, 0xE0056, 0xE0057, 0xE0058,
+ 0xE0059, 0xE005A, 0xE005B, 0xE005C, 0xE005D, 0xE005E, 0xE005F, 0xE0060, 0xE0061, 0xE0062,
+ 0xE0063, 0xE0064, 0xE0065, 0xE0066, 0xE0067, 0xE0068, 0xE0069, 0xE006A, 0xE006B, 0xE006C,
+ 0xE006D, 0xE006E, 0xE006F, 0xE0070, 0xE0071, 0xE0072, 0xE0073, 0xE0074, 0xE0075, 0xE0076,
+ 0xE0077, 0xE0078, 0xE0079, 0xE007A, 0xE007B, 0xE007C, 0xE007D, 0xE007E, 0xE007F,
+}
+
diff --git a/tex/context/base/font-ext.lua b/tex/context/base/font-ext.lua
index 88de5f8b5..05bdaf2fc 100644
--- a/tex/context/base/font-ext.lua
+++ b/tex/context/base/font-ext.lua
@@ -13,7 +13,6 @@ local utfchar = utf.char
local trace_protrusion = false trackers.register("fonts.protrusion", function(v) trace_protrusion = v end)
local trace_expansion = false trackers.register("fonts.expansion", function(v) trace_expansion = v end)
-local trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end)
commands = commands or { }
@@ -25,9 +24,11 @@ of neutral.</p>
fonts.triggers = fonts.triggers or { }
fonts.initializers = fonts.initializers or { }
+fonts.methods = fonts.methods or { }
fonts.initializers.common = fonts.initializers.common or { }
local initializers = fonts.initializers
+local methods = fonts.methods
--[[ldx--
<p>This feature will remove inter-digit kerns.</p>
@@ -575,3 +576,48 @@ initializers.node.otf.extend = initializers.common.extend
initializers.base.afm.extend = initializers.common.extend
initializers.node.afm.extend = initializers.common.extend
+
+-- historic stuff, move from font-ota
+
+local delete_node = nodes.delete
+local glyph = node.id("glyph")
+local fontdata = fonts.ids
+
+fonts.strippables = fonts.strippables or { -- just a placeholder
+ [0x200C] = true, -- zwnj
+ [0x200D] = true, -- zwj
+}
+
+local strippables = fonts.strippables
+
+local function processformatters(head,font)
+ local how = fontdata[font].shared.features.formatters
+ if how == nil or how == "strip" then -- nil when forced
+ local current, done = head, false
+ while current do
+ if current.id == glyph and current.subtype<256 and current.font == font then
+ local char = current.char
+ if strippables[char] then
+ head, current = delete_node(head,current)
+ done = true
+ else
+ current = current.next
+ end
+ else
+ current = current.next
+ end
+ end
+ return head, done
+ else
+ return head, false
+ end
+end
+
+methods.node.otf.formatters = processformatters
+methods.base.otf.formatters = processformatters
+
+fonts.otf.tables.features['formatters'] = 'Hide Formatting Characters'
+
+fonts.otf.features.register("formatters")
+
+table.insert(fonts.manipulators,"formatters") -- at end
diff --git a/tex/context/base/font-gds.lua b/tex/context/base/font-gds.lua
index cace12509..e3db8c816 100644
--- a/tex/context/base/font-gds.lua
+++ b/tex/context/base/font-gds.lua
@@ -24,7 +24,6 @@ fonts.goodies.list = fonts.goodies.list or { }
local data = fonts.goodies.data
local list = fonts.goodies.list
-
function fonts.goodies.report(what,trace,goodies)
if trace_goodies or trace then
local whatever = goodies[what]
@@ -291,144 +290,5 @@ fonts.goodies.register("mathematics", initialize)
-- tex/context/fonts/goodies
-- tex/fonts/goodies/context
-- tex/fonts/data/foundry/collection
-
---~ local yes = "yes", "node"
-
---~ local basics = {
---~ analyze = yes,
---~ mode = "node",
---~ language = "dflt",
---~ script = "arab",
---~ }
-
---~ local analysis = {
---~ ccmp = yes,
---~ init = yes, medi = yes, fina = yes,
---~ }
-
---~ local regular = {
---~ rlig = yes, calt = yes, salt = yes, anum = yes,
---~ ss01 = yes, ss03 = yes, ss07 = yes, ss10 = yes, ss12 = yes, ss15 = yes, ss16 = yes,
---~ ss19 = yes, ss24 = yes, ss25 = yes, ss26 = yes, ss27 = yes, ss31 = yes, ss34 = yes,
---~ ss35 = yes, ss36 = yes, ss37 = yes, ss38 = yes, ss41 = yes, ss42 = yes, ss43 = yes,
---~ js16 = yes,
---~ }
-
---~ local positioning = {
---~ kern = yes, curs = yes, mark = yes, mkmk = yes,
---~ }
-
---~ return {
---~ name = "husayni",
---~ version = "1.00",
---~ comment = "Goodies that complement the Husayni font by Idris Samawi Hamid.",
---~ author = "Idris Samawi Hamid and Hans Hagen",
---~ featuresets = {
---~ default = {
---~ basics, analysis, regular, positioning, -- xxxx = yes, yyyy = 2,
---~ },
---~ },
---~ stylistics = {
---~ ss01 = "Allah, Muhammad",
---~ ss02 = "ss01 + Allah_final",
---~ ss03 = "level-1 stack over Jiim, initial entry only",
---~ ss04 = "level-1 stack over Jiim, initial/medial entry",
---~ ss05 = "multi-level Jiim stacking, initial/medial entry",
---~ ss06 = "aesthetic Faa/Qaaf for FJ_mm, FJ_mf connection",
---~ ss07 = "initial-entry stacking over Haa",
---~ ss08 = "initial/medial stacking over Haa, minus HM_mf strings",
---~ ss09 = "initial/medial Haa stacking plus HM_mf strings",
---~ ss10 = "basic dipped Miim, initial-entry B_S-stack over Miim",
---~ ss11 = "full dipped Miim, initial-entry B_S-stack over Miim",
---~ ss12 = "XBM_im initial-medial entry B_S-stack over Miim",
---~ ss13 = "full initial-medial entry B_S-stacked Miim",
---~ ss14 = "initial entry, stacked Laam on Miim",
---~ ss15 = "full stacked Laam-on-Miim",
---~ ss16 = "initial entry, stacked Ayn-on-Miim",
---~ ss17 = "full stacked Ayn-on-Miim",
---~ ss18 = "LMJ_im already contained in ss03--05, may remove",
---~ ss19 = "LM_im",
---~ ss20 = "KLM_m, sloped Miim",
---~ ss21 = "KLM_i_mm/LM_mm, sloped Miim",
---~ ss22 = "filled sloped Miim",
---~ ss23 = "LM_mm, non-sloped Miim",
---~ ss24 = "BR_i_mf, BN_i_mf",
---~ ss25 = "basic LH_im might merge with ss24",
---~ ss26 = "full Yaa.final special strings: BY_if, BY_mf, LY_mf",
---~ ss27 = "basic thin Miim.final",
---~ ss28 = "full thin Miim.final to be moved to jsnn",
---~ ss29 = "basic short Miim.final",
---~ ss30 = "full short Miim.final to be moved to jsnn",
---~ ss31 = "basic Raa.final strings: JR and SR",
---~ ss32 = "basic Raa.final strings: JR, SR, and BR",
---~ ss33 = "TtR to be moved to jsnn",
---~ ss34 = "AyR style also available in jsnn",
---~ ss35 = "full Kaaf contexts",
---~ ss36 = "full Laam contexts",
---~ ss37 = "Miim-Miim contexts",
---~ ss38 = "basic dipped Haa, B_SH_mm",
---~ ss39 = "full dipped Haa, B_S_LH_i_mm_Mf",
---~ ss40 = "aesthetic dipped medial Haa",
---~ ss41 = "high and low Baa strings",
---~ ss42 = "diagonal entry",
---~ ss43 = "initial alternates",
---~ ss44 = "hooked final alif",
---~ ss45 = "BMA_f",
---~ ss46 = "BM_mm_alt, for JBM combinations",
---~ ss47 = "Shaddah-<kasrah> combo",
---~ ss48 = "Auto-sukuun",
---~ ss49 = "No vowels",
---~ ss50 = "Shaddah/MaaddahHamzah only",
---~ ss51 = "No Skuun",
---~ ss52 = "No Waslah",
---~ ss53 = "No Waslah",
---~ ss54 = "chopped finals",
---~ ss55 = "idgham-tanwin",
---~ js01 = "Raawide",
---~ js02 = "Yaawide",
---~ js03 = "Kaafwide",
---~ js04 = "Nuunwide",
---~ js05 = "Kaafwide Nuunwide Siinwide Baawide",
---~ js06 = "final Haa wide",
---~ js07 = "thin Miim",
---~ js08 = "short Miim",
---~ js09 = "wide Siin",
---~ js10 = "thuluth-style initial Haa, final Miim, MRw_mf",
---~ js11 = "level-1 stretching",
---~ js12 = "level-2 stretching",
---~ js13 = "level-3 stretching",
---~ js14 = "final Alif",
---~ js15 = "hooked final Alif",
---~ js16 = "aesthetic medial Faa/Qaaf",
---~ js17 = "fancy isol Haa after Daal, Raa, and Waaw",
---~ js18 = "Laamwide, alternate substitution",
---~ js19 = "level-4 stretching, only siin and Hhaa for basmalah",
---~ js20 = "level-5 stretching, only siin and Hhaa for basmalah",
---~ js21 = "Haa.final_alt2",
---~ },
---~ colorschemes = {
---~ default = {
---~ [1] = {
---~ "Onedotabove", "Onedotbelow", "Twodotsabove", "Twodotsbelow", "Threedotsabove", "Twodotsabove.vrt", "Twodotsbelow.vrt", "Twodotsabove.KBA", "Threedotsabove.KBA", "Threedotsbelowinv",
---~ },
---~ [2] = {
---~ "Fathah", "Dammah", "Kasrah", "FathahVertical", "DammahInverted", "KasrahVertical", "FathahVertical.alt1", "KasrahVertical.alt1", "FathahTanwiin", "DammahTanwiin", "KasrahTanwiin", "Shaddah", "Sukuun", "MaaddahHamzah", "Jazm", "Maaddah", "DammahTanwiin_alt2", "DammahTanwiin_alt1", "FathahTanwiin_alt1", "KasrahTanwiin_alt1", "Fathah.mkmk", "Dammah.mkmk", "Kasrah.mkmk", "FathahVertical.mkmk", "DammahInverted.mkmk", "KasrahVertical.mkmk", "FathahTanwiin.mkmk", "DammahTanwiin.mkmk", "KasrahTanwiin.mkmk", "DammahTanwiin_alt1.mkmk",
---~ },
---~ [3] = {
---~ "Ttaa.waqf", "SsLY.waqf", "QLY.waqf", "Miim.waqf", "LA.waqf", "Jiim.waqf", "Threedotsabove.waqf", "Siin.waqf", "Ssaad.waqf", "Qaaf.waqf", "SsL.waqf", "QF.waqf", "SKTH.waqf", "WQFH.waqf", "Kaaf.waqf", "Ayn.ruku",
---~ },
---~ [4] = {
---~ "Hamzah","Hamzahabove", "Hamzahbelow", "MaaddahHamzah.identity", "Waslah",
---~ },
---~ [5] = {
---~ "Waawsmall", "Yaasmall", "FathahVertical.alt2", "Waawsmall.isol", "Yaasmall.isol", "FathahVertical.isol",
---~ },
---~ [6] = {
---~ "Miim.nuun_high", "Siin.Ssaad", "Nuunsmall", "emptydot_low", "emptydot_high", "Sifr.fill", "Miim.nuun_low", "Nuun.tanwiin",
---~ },
---~ [7] = {
---~ "Ayah", "Yaasmall", "Ayah.alt1", "Ayah.alt2", "Ayah.alt3", "Ayah2",
---~ }
---~ }
---~ }
---~ }
+--
+-- see lfg files in distribution
diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv
index 2eb790d5e..c7d515cca 100644
--- a/tex/context/base/font-ini.mkiv
+++ b/tex/context/base/font-ini.mkiv
@@ -1320,7 +1320,11 @@
%D have a similar meaning, and therefore can lead to an
%D unwanted loop, we temporary redefine \type{\c!text}. For
%D the moment this in only place that some trickery is needed
-%D to fool the multilingual interface.
+%D to fool the multilingual interface. However, long ago
+%D we decided to stick to \s!text in definitions as it closely
+%D relates to the math model where text, script and scriptscript
+%D are used untranslated. Also, we are now english at the low
+%D level so it cannot go wrong anymore.
%D
%D When instead of a size the keyword \type{unknown} is
%D passed, fractions (relations) are used instead of fixed
@@ -2079,15 +2083,38 @@
\settrue\autotypescripts
+% \def\trycurrentfontclass#1%
+% {\ifconditional\autotypescripts
+% \usetypescript[#1]%
+% \ifcsname\@fontclass@#1\endcsname
+% \edef\fontclass{#1}%
+% \else
+% \letvalue{\@no@fontclass@#1}\empty
+% \fi
+% \else
+% \letvalue{\@no@fontclass@#1}\empty
+% \fi}
+
\def\trycurrentfontclass#1%
{\ifconditional\autotypescripts
+ % try to load typescript #1
\usetypescript[#1]%
\ifcsname\@fontclass@#1\endcsname
\edef\fontclass{#1}%
\else
- \letvalue{\@no@fontclass@#1}\empty
+ % try to load type-#1.mkiv
+ \usetypescriptfile[\f!typeprefix#1]%
+ % try to load typescript #1
+ \usetypescript[#1]%
+ \ifcsname\@fontclass@#1\endcsname
+ \edef\fontclass{#1}%
+ \else
+ % todo: message
+ \letvalue{\@no@fontclass@#1}\empty
+ \fi
\fi
\else
+ % todo: message
\letvalue{\@no@fontclass@#1}\empty
\fi}
diff --git a/tex/context/base/font-ota.lua b/tex/context/base/font-ota.lua
index 558e2fc80..0b61e17d1 100644
--- a/tex/context/base/font-ota.lua
+++ b/tex/context/base/font-ota.lua
@@ -35,14 +35,8 @@ local penalty = node.id('penalty')
local set_attribute = node.set_attribute
local has_attribute = node.has_attribute
local traverse_id = node.traverse_id
-local delete_node = nodes.delete
-local replace_node = nodes.replace
-local insert_node_after = node.insert_after
-local insert_node_before = node.insert_before
local traverse_node_list = node.traverse
-local new_glue_node = nodes.glue
-
local fontdata = fonts.ids
local state = attributes.private('state')
@@ -56,7 +50,6 @@ local a_to_language = otf.a_to_language
-- font related value, but then we also need dynamic features which is
-- somewhat slower; and .. we need a chain of them
-
function fonts.initializers.node.otf.analyze(tfmdata,value,attr)
if attr and attr > 0 then
script, language = a_to_script[attr], a_to_language[attr]
@@ -195,8 +188,6 @@ function fonts.analyzers.methods.nocolor(head,font,attr)
return head, true
end
-otf.remove_joiners = false -- true -- for idris who want it as option
-
local function finish(first,last)
if last then
if first == last then
@@ -242,22 +233,10 @@ function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special ve
local tfmdata = fontdata[font]
local marks = tfmdata.marks
local first, last, current, done = nil, nil, head, false
- local joiners, nonjoiners
- local removejoiners = tfmdata.remove_joiners -- or otf.remove_joiners
- if removejoiners then
- joiners, nonjoiners = { }, { }
- end
while current do
if current.id == glyph and current.subtype<256 and current.font == font and not has_attribute(current,state) then
done = true
local char = current.char
- if removejoiners then
- if char == zwj then
- joiners[#joiners+1] = current
- elseif char == zwnj then
- nonjoiners[#nonjoiners+1] = current
- end
- end
if marks[char] then
set_attribute(current,state,5) -- mark
if trace_analyzing then fcs(current,"font:mark") end
@@ -303,22 +282,5 @@ function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special ve
current = current.next
end
first, last = finish(first,last)
- if removejoiners then
- -- is never head
- for i=1,#joiners do
- delete_node(head,joiners[i])
- end
- for i=1,#nonjoiners do
- replace_node(head,nonjoiners[i],new_glue_node(0)) -- or maybe a kern
- end
- end
return head, done
end
-
-table.insert(fonts.manipulators,"joiners")
-
-function fonts.initializers.node.otf.joiners(tfmdata,value)
- if value == "strip" then
- tfmdata.remove_joiners = true
- end
-end
diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua
index d68137c96..9cecf21f0 100644
--- a/tex/context/base/font-otf.lua
+++ b/tex/context/base/font-otf.lua
@@ -11,6 +11,7 @@ local utf = unicode.utf8
local concat, getn, utfbyte = table.concat, table.getn, utf.byte
local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
local type, next, tonumber, tostring = type, next, tonumber, tostring
+local abs = math.abs
local lpegmatch = lpeg.match
local trace_private = false trackers.register("otf.private", function(v) trace_private = v end)
@@ -1356,10 +1357,12 @@ function otf.features.register(name,default)
otf.features.default[name] = default
end
+-- for context this will become a task handler
+
function otf.set_features(tfmdata,features)
local processes = { }
if features and next(features) then
- local lists = {
+ local lists = { -- why local
fonts.triggers,
fonts.processors,
fonts.manipulators,
@@ -1396,7 +1399,7 @@ function otf.set_features(tfmdata,features)
end
end
end
- local fm = fonts.methods[mode]
+ local fm = fonts.methods[mode] -- todo: zonder node/mode otf/...
if fm then
local fmotf = fm.otf
if fmotf then
@@ -1505,14 +1508,11 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
local unicodes = luatex.unicodes -- names to unicodes
local indices = luatex.indices
local characters, parameters, math_parameters, descriptions = { }, { }, { }, { }
- local tfm = {
- characters = characters,
- parameters = parameters,
- math_parameters = math_parameters,
- descriptions = descriptions,
- indices = indices,
- unicodes = unicodes,
- }
+ local designsize = metadata.designsize or metadata.design_size or 100
+ if designsize == 0 then
+ designsize = 100
+ end
+ local spaceunits = 500
-- indices maps from unicodes to indices
for u, i in next, indices do
characters[u] = { } -- we need this because for instance we add protruding info and loop over characters
@@ -1565,65 +1565,49 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
end
end
-- end math
- local designsize = metadata.designsize or metadata.design_size or 100
- if designsize == 0 then
- designsize = 100
- end
- local spaceunits = 500
- -- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't we use the basename then?)
- tfm.filename = fonts.tfm.checked_filename(luatex)
- tfm.fontname = metadata.fontname
- tfm.fullname = metadata.fullname or tfm.fontname
- tfm.psname = tfm.fontname or tfm.fullname
- tfm.name = tfm.filename or tfm.fullname or tfm.fontname
- tfm.units = metadata.units_per_em or 1000
- tfm.encodingbytes = 2
- tfm.format = fonts.fontformat(tfm.filename,"opentype")
- tfm.cidinfo = data.cidinfo
- tfm.cidinfo.registry = tfm.cidinfo.registry or ""
- tfm.type = "real"
- tfm.direction = 0
- tfm.boundarychar_label = 0
- tfm.boundarychar = 65536
- tfm.designsize = (designsize/10)*65536
- tfm.spacer = "500 units"
- local endash, emdash = 0x20, 0x2014 -- unicodes['space'], unicodes['emdash']
+ local endash, emdash, space = 0x20, 0x2014, "space" -- unicodes['space'], unicodes['emdash']
if metadata.isfixedpitch then
if descriptions[endash] then
- spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ spaceunits, spacer = descriptions[endash].width, "space"
end
if not spaceunits and descriptions[emdash] then
- spaceunits, tfm.spacer = descriptions[emdash].width, "emdash"
+ spaceunits, spacer = descriptions[emdash].width, "emdash"
end
if not spaceunits and metadata.charwidth then
- spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ spaceunits, spacer = metadata.charwidth, "charwidth"
end
else
if descriptions[endash] then
- spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ spaceunits, spacer = descriptions[endash].width, "space"
end
if not spaceunits and descriptions[emdash] then
- spaceunits, tfm.spacer = descriptions[emdash].width/2, "emdash/2"
+ spaceunits, spacer = descriptions[emdash].width/2, "emdash/2"
end
if not spaceunits and metadata.charwidth then
- spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ spaceunits, spacer = metadata.charwidth, "charwidth"
end
end
spaceunits = tonumber(spaceunits) or tfm.units/2 -- 500 -- brrr
+ -- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't we use the basename then?)
+ local filename = fonts.tfm.checked_filename(luatex)
+ local fontname = metadata.fontname
+ local fullname = metadata.fullname or fontname
+ local cidinfo = data.cidinfo
+ local units = metadata.units_per_em or 1000
+ --
+ cidinfo.registry = cidinfo and cidinfo.registry or "" -- weird here, fix upstream
+ --
parameters.slant = 0
- parameters.space = spaceunits -- 3.333 (cmr10)
- parameters.space_stretch = tfm.units/2 -- 500 -- 1.666 (cmr10)
- parameters.space_shrink = 1*tfm.units/3 -- 333 -- 1.111 (cmr10)
- parameters.x_height = 2*tfm.units/5 -- 400
- parameters.quad = tfm.units -- 1000
- if spaceunits < 2*tfm.units/5 then
+ parameters.space = spaceunits -- 3.333 (cmr10)
+ parameters.space_stretch = units/2 -- 500 -- 1.666 (cmr10)
+ parameters.space_shrink = 1*units/3 -- 333 -- 1.111 (cmr10)
+ parameters.x_height = 2*units/5 -- 400
+ parameters.quad = units -- 1000
+ if spaceunits < 2*units/5 then
-- todo: warning
end
local italicangle = metadata.italicangle
- tfm.ascender = math.abs(metadata.ascent or 0)
- tfm.descender = math.abs(metadata.descent or 0)
if italicangle then -- maybe also in afm _
- tfm.italicangle = italicangle
parameters.slant = parameters.slant - math.round(math.tan(italicangle*math.pi/180))
end
if metadata.isfixedpitch then
@@ -1645,8 +1629,34 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
end
end
end
- -- [6]
- return tfm
+ --
+ return {
+ characters = characters,
+ parameters = parameters,
+ math_parameters = math_parameters,
+ descriptions = descriptions,
+ indices = indices,
+ unicodes = unicodes,
+ type = "real",
+ direction = 0,
+ boundarychar_label = 0,
+ boundarychar = 65536,
+ designsize = (designsize/10)*65536,
+ spacer = "500 units",
+ encodingbytes = 2,
+ filename = filename,
+ fontname = fontname,
+ fullname = fullname,
+ psname = fontname or fullname,
+ name = filename or fullname,
+ units = units,
+ format = fonts.fontformat(filename,"opentype"),
+ cidinfo = cidinfo,
+ ascender = abs(metadata.ascent or 0),
+ descender = abs(metadata.descent or 0),
+ spacer = spacer,
+ italicangle = italicangle,
+ }
else
return nil
end
diff --git a/tex/context/base/lxml-tab.lua b/tex/context/base/lxml-tab.lua
index 921030272..23cd1cf04 100644
--- a/tex/context/base/lxml-tab.lua
+++ b/tex/context/base/lxml-tab.lua
@@ -30,7 +30,7 @@ xml = xml or { }
local concat, remove, insert = table.concat, table.remove, table.insert
local type, next, setmetatable, getmetatable, tonumber = type, next, setmetatable, getmetatable, tonumber
-local format, lower, find, match = string.format, string.lower, string.find, string.match
+local format, lower, find, match, gsub = string.format, string.lower, string.find, string.match, string.gsub
local utfchar = unicode.utf8.char
local lpegmatch = lpeg.match
local P, S, R, C, V, C, Cs = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.V, lpeg.C, lpeg.Cs
diff --git a/tex/context/base/mult-ini.mkiv b/tex/context/base/mult-ini.mkiv
index c6a1ed2ae..e20548f9b 100644
--- a/tex/context/base/mult-ini.mkiv
+++ b/tex/context/base/mult-ini.mkiv
@@ -424,6 +424,12 @@
%D We already defined these auxiliary macros in the system
%D modules. Starting with this module however, we have to take
%D multi||linguality a bit more serious.
+%D
+%D The additional \type {\c!internal!n} prefixing is no longer
+%D needed as we now have separate interface files when dealing
+%D with setups (quick ref docs) and no longer reload the whole
+%D interface. (We no longer need the link back to the main
+%D internal interface.)
\def\doresetvalue#1#2%
{\dosetvalue{#1}{#2}{}}
@@ -690,7 +696,7 @@
%D depending on the actual language. In dutch we just say:
%D
%D \starttyping
-%D \setupblock [width=3cm, height=1cm]
+%D \stelblokin [breedte=3cm,hoogte=1cm]
%D \stoptyping
%D
%D and get ourselves \type{\@@bxwidth} and \type{\@@bxheight}
@@ -739,7 +745,10 @@
%D \stopnarrower
%D Anno 2003 I've forgotten why the \type {\c!internal} is
-%D still in there; it's probably a left over from an experiment.
+%D still in there; it's probably a left over from the time that
+%D the user interface documents were not using a specification
+%D alongside a keyword specification but used a shared file in
+%D which case we need to go in both directions.
\let\c!internal!y \string
\def\c!internal!n {-}
diff --git a/tex/context/base/node-fnt.lua b/tex/context/base/node-fnt.lua
index f2d8e1d77..b0d073425 100644
--- a/tex/context/base/node-fnt.lua
+++ b/tex/context/base/node-fnt.lua
@@ -45,6 +45,8 @@ if tex.attribute[0] < 0 then
end
+-- this will be redone and split in a generic one and a context one
+
function nodes.process_characters(head)
-- either next or not, but definitely no already processed list
starttiming(nodes)
diff --git a/tex/context/base/page-ini.mkiv b/tex/context/base/page-ini.mkiv
index 9f80fdcc5..07d342282 100644
--- a/tex/context/base/page-ini.mkiv
+++ b/tex/context/base/page-ini.mkiv
@@ -1065,9 +1065,13 @@
\executepagebreakhandler\v!yes
\fi
\ifnum\prevrealpageno<\realpageno
-\ifcase\pageornamentstate\or
- \global\chardef\pageornamentstate\zerocount
-\fi
+ % there must have been a reason why i added the ifcase
+ % but it fails on tests/mkiv/pages/ornaments-001.tex
+ % as WS found out so we have to wait till the next side
+ % effect shows up
+ % \ifcase\pageornamentstate\or
+ \global\chardef\pageornamentstate\zerocount
+ % \fi
\fi
\egroup}
diff --git a/tex/context/base/spac-hor.mkiv b/tex/context/base/spac-hor.mkiv
index c1dc7a60d..9f902678a 100644
--- a/tex/context/base/spac-hor.mkiv
+++ b/tex/context/base/spac-hor.mkiv
@@ -935,4 +935,12 @@
\def\outdented#1%
{\hskip-\hangindent#1\relax}
+%D Beware: due to char-def this becomes an active character but that
+%D might change sometime when we will replace all these specials to
+%D node insertions. We might even expand it to utf then as it then
+%D can be used in string comparison (not that much needed anyway).
+
+\chardef\zwnj="200C
+\chardef\zwj ="200D
+
\protect \endinput
diff --git a/tex/context/base/strc-reg.lua b/tex/context/base/strc-reg.lua
index 519396276..c5b2c9374 100644
--- a/tex/context/base/strc-reg.lua
+++ b/tex/context/base/strc-reg.lua
@@ -461,7 +461,7 @@ function jobregisters.flush(data,options,prefixspec,pagespec)
local function pagerange(f_entry,t_entry,is_last)
local er = f_entry.references
texsprint(ctxcatcodes,format("\\registerpagerange{%s}{%s}{",er.internal or 0,er.realpage or 0))
- local proc = entry.processors and entry.processors[2]
+ local proc = f_entry.processors and f_entry.processors[2]
if proc then
texsprint(ctxcatcodes,"\\applyprocessor{",proc,"}{")
helpers.prefixpage(f_entry,prefixspec,pagespec)
diff --git a/tex/context/base/task-ini.lua b/tex/context/base/task-ini.lua
index 5db86ee8d..aaa97ec49 100644
--- a/tex/context/base/task-ini.lua
+++ b/tex/context/base/task-ini.lua
@@ -28,6 +28,7 @@ tasks.appendaction("processors", "fonts", "nodes.inject_kerns")
tasks.appendaction("processors", "fonts", "nodes.protect_glyphs", nil, "nohead") -- maybe todo
tasks.appendaction("processors", "fonts", "kernel.ligaturing") -- always on
tasks.appendaction("processors", "fonts", "kernel.kerning") -- always on
+tasks.appendaction("processors", "fonts", "nodes.stripping.process") -- disabled (might move)
tasks.appendaction("processors", "lists", "lists.handle_spacing") -- disabled
tasks.appendaction("processors", "lists", "lists.handle_kerning") -- disabled
@@ -72,6 +73,7 @@ tasks.disableaction("processors", "chars.handle_mirroring")
tasks.disableaction("processors", "languages.words.check")
tasks.disableaction("processors", "lists.handle_spacing")
tasks.disableaction("processors", "lists.handle_kerning")
+tasks.disableaction("processors", "nodes.stripping.process")
tasks.disableaction("shipouts", "nodes.rules.process")
tasks.disableaction("shipouts", "nodes.shifts.process")
diff --git a/tex/context/base/type-one.mkii b/tex/context/base/type-one.mkii
index d7fa839f6..efe31ed21 100644
--- a/tex/context/base/type-one.mkii
+++ b/tex/context/base/type-one.mkii
@@ -1381,14 +1381,109 @@
\definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
\stoptypescript
+ \starttypescript [antykwa-torunska] [texnansi,ec,8r,uc,t5,t2a]
+ \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo]
+ \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05]
+ \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
+ \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo]
+ \quittypescriptscanning
+ \stoptypescript
+
% Antykwa Poltawskiego (GUST)
- \starttypescript [serif] [antykwa-poltawskiego] [texnansi,ec,8r]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-public-antp.map]
+ \starttypescript [serif] [antykwa-poltawskiego,antykwa-poltawskiego-light] [ec,texnansi,qx,t5]
+
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\typescriptthree-antpl17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\typescriptthree-antpli17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\typescriptthree-antpr17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\typescriptthree-antpri17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\typescriptthree-antpm17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\typescriptthree-antpmi17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\typescriptthree-antpb17] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\typescriptthree-antpbi17] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLight] [\typescriptthree-antpl17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLightItalic] [\typescriptthree-antpli17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsRegular] [\typescriptthree-antpr17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsItalic] [\typescriptthree-antpri17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMedium] [\typescriptthree-antpm17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMediumItalic] [\typescriptthree-antpmi17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBold] [\typescriptthree-antpb17-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBoldItalic] [\typescriptthree-antpbi17-sc] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\typescriptthree-antpl12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\typescriptthree-antpli12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\typescriptthree-antpr12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\typescriptthree-antpri12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\typescriptthree-antpm12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\typescriptthree-antpmi12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\typescriptthree-antpb12] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\typescriptthree-antpbi12] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\typescriptthree-antpl12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\typescriptthree-antpli12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\typescriptthree-antpr12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\typescriptthree-antpri12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMedium] [\typescriptthree-antpm12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMediumItalic] [\typescriptthree-antpmi12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBold] [\typescriptthree-antpb12-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBoldItalic] [\typescriptthree-antpbi12-sc] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-Light] [\typescriptthree-antpl10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\typescriptthree-antpli10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Medium] [\typescriptthree-antpm10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\typescriptthree-antpmi10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb10] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi10] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-CapsLight] [\typescriptthree-antpl10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsLightItalic] [\typescriptthree-antpli10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsRegular] [\typescriptthree-antpr10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsItalic] [\typescriptthree-antpri10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsMedium] [\typescriptthree-antpm10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsMediumItalic] [\typescriptthree-antpmi10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsBold] [\typescriptthree-antpb10-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-CapsBoldItalic] [\typescriptthree-antpbi10-sc] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Light] [\typescriptthree-antpl8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-LightItalic] [\typescriptthree-antpli8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Regular] [\typescriptthree-antpr8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Italic] [\typescriptthree-antpri8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Medium] [\typescriptthree-antpm8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-MediumItalic] [\typescriptthree-antpmi8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Bold] [\typescriptthree-antpb8] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-BoldItalic] [\typescriptthree-antpbi8] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsLight] [\typescriptthree-antpl8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsLightItalic] [\typescriptthree-antpli8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsRegular] [\typescriptthree-antpr8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsItalic] [\typescriptthree-antpri8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsMedium] [\typescriptthree-antpm8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsMediumItalic] [\typescriptthree-antpmi8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsBold] [\typescriptthree-antpb8-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsBoldItalic] [\typescriptthree-antpbi8-sc] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Light] [\typescriptthree-antpl6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-LightItalic] [\typescriptthree-antpli6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Regular] [\typescriptthree-antpr6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Italic] [\typescriptthree-antpri6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Medium] [\typescriptthree-antpm6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-MediumItalic] [\typescriptthree-antpmi6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Bold] [\typescriptthree-antpb6] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-BoldItalic] [\typescriptthree-antpbi6] [encoding=\typescriptthree]
+
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsLight] [\typescriptthree-antpl6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsLightItalic] [\typescriptthree-antpli6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsRegular] [\typescriptthree-antpr6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsItalic] [\typescriptthree-antpri6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsMedium] [\typescriptthree-antpm6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsMediumItalic] [\typescriptthree-antpmi6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsBold] [\typescriptthree-antpb6-sc] [encoding=\typescriptthree]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsBoldItalic] [\typescriptthree-antpbi6-sc] [encoding=\typescriptthree]
+
+ \loadmapfile[poltawski-\typescriptthree.map]
\stoptypescript
\starttypescript [serif] [antykwa-poltawskiego] [name]
@@ -1396,16 +1491,28 @@
\definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
\definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
\definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
+ \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-BoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsRegular]
\stoptypescript
- \starttypescript [antykwa-torunska] [texnansi,ec,8r,uc,t5,t2a]
- \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo]
- \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05]
- \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo]
+ \starttypescript [serif] [antykwa-poltawskiego-light] [name]
+ \definefontsynonym [Serif] [AntykwaPoltawskiego-Light]
+ \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Medium]
+ \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-LightItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-LightItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-MediumItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-MediumItalic]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsLight]
+ \stoptypescript
+
+ % condensed and extended variants are still missing
+
+ \starttypescript [antykwa-poltawskiego,antykwa-poltawskiego-light] [ec,texnansi,qx,t5]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling?
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling?
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling?
\quittypescriptscanning
\stoptypescript
diff --git a/tex/context/base/type-otf.mkii b/tex/context/base/type-otf.mkii
index 014ec59dc..1e22a9df2 100644
--- a/tex/context/base/type-otf.mkii
+++ b/tex/context/base/type-otf.mkii
@@ -1158,11 +1158,113 @@
% Antykwa Poltawskiego (GUST)
- \starttypescript [serif] [antykwa-poltawskiego]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [antpr]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [antpb]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [antpri]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [antpbi]
+ % \starttypescript [serif] [antykwa-poltawskiego]
+ % \definefontsynonym [AntykwaPoltawskiego-Regular] [antpr]
+ % \definefontsynonym [AntykwaPoltawskiego-Bold] [antpb]
+ % \definefontsynonym [AntykwaPoltawskiego-Italic] [antpri]
+ % \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [antpbi]
+ % \stoptypescript
+
+ % \starttypescript [serif] [antykwa-poltawskiego] [name]
+ % \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
+ % \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
+ % \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
+ % \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
+ % \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
+ % \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
+ % \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
+ % \stoptypescript
+
+ \starttypescript [serif] [antykwa-poltawskiego,antykwa-poltawskiego-light]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\s!file:AntPoltLtCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\s!file:AntPoltLtCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\s!file:AntPoltCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\s!file:AntPoltCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\s!file:AntPoltMdCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\s!file:AntPoltMdCond-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\s!file:AntPoltCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\s!file:AntPoltCond-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLight] [\s!file:AntPoltLtCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLightItalic] [\s!file:AntPoltLtCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsRegular] [\s!file:AntPoltCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsItalic] [\s!file:AntPoltCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMedium] [\s!file:AntPoltMdCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMediumItalic] [\s!file:AntPoltMdCond-BoldItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBold] [\s!file:AntPoltCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBoldItalic] [\s!file:AntPoltCond-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:AntPoltLtSemiCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:AntPoltLtSemiCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:AntPoltSemiCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:AntPoltSemiCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\s!file:AntPoltMdSemiCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\s!file:AntPoltMdSemiCond-BdItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\s!file:AntPoltSemiCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\s!file:AntPoltSemiCond-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\s!file:AntPoltLtSemiCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\s!file:AntPoltLtSemiCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\s!file:AntPoltSemiCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\s!file:AntPoltSemiCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMedium] [\s!file:AntPoltMdSemiCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMediumItalic] [\s!file:AntPoltMdSemiCond-BdItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBold] [\s!file:AntPoltSemiCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBoldItalic] [\s!file:AntPoltSemiCond-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-Light] [\s!file:AntPoltLt-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\s!file:AntPoltLt-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Regular] [\s!file:AntPolt-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Italic] [\s!file:AntPolt-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Medium] [\s!file:AntPoltMd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\s!file:AntPoltMd-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Bold] [\s!file:AntPolt-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\s!file:AntPolt-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-CapsLight] [\s!file:AntPoltLt-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsLightItalic] [\s!file:AntPoltLt-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsRegular] [\s!file:AntPolt-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsItalic] [\s!file:AntPolt-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsMedium] [\s!file:AntPoltMd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsMediumItalic] [\s!file:AntPoltMd-BoldItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsBold] [\s!file:AntPolt-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsBoldItalic] [\s!file:AntPolt-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Light] [\s!file:AntPoltLtSemiExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-LightItalic] [\s!file:AntPoltLtSemiExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Regular] [\s!file:AntPoltSemiExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Italic] [\s!file:AntPoltSemiExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Medium] [\s!file:AntPoltMdSemiExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-MediumItalic] [\s!file:AntPoltMdSemiExtd-BdItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Bold] [\s!file:AntPoltSemiExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-BoldItalic] [\s!file:AntPoltSemiExtd-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsLight] [\s!file:AntPoltLtSemiExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsLightItalic] [\s!file:AntPoltLtSemiExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsRegular] [\s!file:AntPoltSemiExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsItalic] [\s!file:AntPoltSemiExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsMedium] [\s!file:AntPoltMdSemiExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsMediumItalic] [\s!file:AntPoltMdSemiExtd-BdItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsBold] [\s!file:AntPoltSemiExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsBoldItalic] [\s!file:AntPoltSemiExtd-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Light] [\s!file:AntPoltLtExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-LightItalic] [\s!file:AntPoltLtExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Regular] [\s!file:AntPoltExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Italic] [\s!file:AntPoltExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Medium] [\s!file:AntPoltMdExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-MediumItalic] [\s!file:AntPoltMdExtd-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Bold] [\s!file:AntPoltExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-BoldItalic] [\s!file:AntPoltExtd-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsLight] [\s!file:AntPoltLtExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsLightItalic] [\s!file:AntPoltLtExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsRegular] [\s!file:AntPoltExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsItalic] [\s!file:AntPoltExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsMedium] [\s!file:AntPoltMdExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsMediumItalic] [\s!file:AntPoltMdExtd-BoldItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsBold] [\s!file:AntPoltExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsBoldItalic] [\s!file:AntPoltExtd-BoldItalic] [\s!features=\s!smallcaps]
\stoptypescript
\starttypescript [serif] [antykwa-poltawskiego] [name]
@@ -1170,9 +1272,29 @@
\definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
\definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
\definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
+ \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-BoldItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-BoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsRegular]
+ \stoptypescript
+
+ \starttypescript [serif] [antykwa-poltawskiego-light] [name]
+ \definefontsynonym [Serif] [AntykwaPoltawskiego-Light]
+ \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Medium]
+ \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-LightItalic]
+ \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-LightItalic]
+ \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-MediumItalic]
+ \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-MediumItalic]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsLight]
+ \stoptypescript
+
+ % condensed and extended variants are still missing
+
+ \starttypescript [antykwa-poltawskiego,antykwa-poltawskiego-light]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [rscale=1.05]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [rscale=1.05]
+ \definetypeface [\typescriptone] [mm] [math] [modern] [default] [rscale=1.05]
+ \quittypescriptscanning
\stoptypescript
\stoptypescriptcollection
diff --git a/tex/context/base/type-otf.mkiv b/tex/context/base/type-otf.mkiv
index 719512322..486fa1a57 100644
--- a/tex/context/base/type-otf.mkiv
+++ b/tex/context/base/type-otf.mkiv
@@ -865,51 +865,97 @@
% \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
% \stoptypescript
+ % names of "Caps" may still change
\starttypescript [serif] [antykwa-poltawskiego,antykwa-poltawskiego-light]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\s!file:AntPoltLtCond-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\s!file:AntPoltLtCond-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\s!file:AntPoltCond-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\s!file:AntPoltCond-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\s!file:AntPoltMdCond-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\s!file:AntPoltMdCond-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\s!file:AntPoltCond-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\s!file:AntPoltCond-BoldItalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:AntPoltLtSemiCond-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:AntPoltLtSemiCond-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:AntPoltSemiCond-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:AntPoltSemiCond-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\s!file:AntPoltMdSemiCond-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\s!file:AntPoltMdSemiCond-BdItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\s!file:AntPoltSemiCond-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\s!file:AntPoltSemiCond-BoldItalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-Light] [\s!file:AntPoltLt-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\s!file:AntPoltLt-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [\s!file:AntPolt-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [\s!file:AntPolt-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Medium] [\s!file:AntPoltMd-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\s!file:AntPoltMd-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [\s!file:AntPolt-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\s!file:AntPolt-BoldItalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Light] [\s!file:AntPoltLtSemiExtd-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-LightItalic] [\s!file:AntPoltLtSemiExtd-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Regular] [\s!file:AntPoltSemiExtd-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Italic] [\s!file:AntPoltSemiExtd-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Medium] [\s!file:AntPoltMdSemiExtd-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-MediumItalic] [\s!file:AntPoltMdSemiExtd-BdItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Bold] [\s!file:AntPoltSemiExtd-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExtended-BoldItalic] [\s!file:AntPoltSemiExtd-BoldItalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-Extended-Light] [\s!file:AntPoltLtExtd-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-LightItalic] [\s!file:AntPoltLtExtd-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-Regular] [\s!file:AntPoltExtd-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-Italic] [\s!file:AntPoltExtd-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-Medium] [\s!file:AntPoltMdExtd-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-MediumItalic] [\s!file:AntPoltMdExtd-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-Bold] [\s!file:AntPoltExtd-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Extended-BoldItalic] [\s!file:AntPoltExtd-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\s!file:AntPoltLtCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\s!file:AntPoltLtCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\s!file:AntPoltCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\s!file:AntPoltCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\s!file:AntPoltMdCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\s!file:AntPoltMdCond-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\s!file:AntPoltCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\s!file:AntPoltCond-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLight] [\s!file:AntPoltLtCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLightItalic] [\s!file:AntPoltLtCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsRegular] [\s!file:AntPoltCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsItalic] [\s!file:AntPoltCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMedium] [\s!file:AntPoltMdCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMediumItalic] [\s!file:AntPoltMdCond-BoldItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBold] [\s!file:AntPoltCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBoldItalic] [\s!file:AntPoltCond-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:AntPoltLtSemiCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:AntPoltLtSemiCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:AntPoltSemiCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:AntPoltSemiCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\s!file:AntPoltMdSemiCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\s!file:AntPoltMdSemiCond-BdItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\s!file:AntPoltSemiCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\s!file:AntPoltSemiCond-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\s!file:AntPoltLtSemiCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\s!file:AntPoltLtSemiCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\s!file:AntPoltSemiCond-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\s!file:AntPoltSemiCond-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMedium] [\s!file:AntPoltMdSemiCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMediumItalic] [\s!file:AntPoltMdSemiCond-BdItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBold] [\s!file:AntPoltSemiCond-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBoldItalic] [\s!file:AntPoltSemiCond-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-Light] [\s!file:AntPoltLt-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\s!file:AntPoltLt-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Regular] [\s!file:AntPolt-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Italic] [\s!file:AntPolt-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Medium] [\s!file:AntPoltMd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\s!file:AntPoltMd-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Bold] [\s!file:AntPolt-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\s!file:AntPolt-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-CapsLight] [\s!file:AntPoltLt-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsLightItalic] [\s!file:AntPoltLt-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsRegular] [\s!file:AntPolt-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsItalic] [\s!file:AntPolt-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsMedium] [\s!file:AntPoltMd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsMediumItalic] [\s!file:AntPoltMd-BoldItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsBold] [\s!file:AntPolt-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-CapsBoldItalic] [\s!file:AntPolt-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Light] [\s!file:AntPoltLtSemiExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-LightItalic] [\s!file:AntPoltLtSemiExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Regular] [\s!file:AntPoltSemiExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Italic] [\s!file:AntPoltSemiExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Medium] [\s!file:AntPoltMdSemiExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-MediumItalic] [\s!file:AntPoltMdSemiExtd-BdItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-Bold] [\s!file:AntPoltSemiExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-BoldItalic] [\s!file:AntPoltSemiExtd-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsLight] [\s!file:AntPoltLtSemiExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsLightItalic] [\s!file:AntPoltLtSemiExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsRegular] [\s!file:AntPoltSemiExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsItalic] [\s!file:AntPoltSemiExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsMedium] [\s!file:AntPoltMdSemiExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsMediumItalic] [\s!file:AntPoltMdSemiExtd-BdItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsBold] [\s!file:AntPoltSemiExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-SemiExtended-CapsBoldItalic] [\s!file:AntPoltSemiExtd-BoldItalic] [\s!features=\s!smallcaps]
+
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Light] [\s!file:AntPoltLtExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-LightItalic] [\s!file:AntPoltLtExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Regular] [\s!file:AntPoltExtd-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Italic] [\s!file:AntPoltExtd-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Medium] [\s!file:AntPoltMdExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-MediumItalic] [\s!file:AntPoltMdExtd-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-Bold] [\s!file:AntPoltExtd-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-BoldItalic] [\s!file:AntPoltExtd-BoldItalic] [\s!features=\s!default]
+
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsLight] [\s!file:AntPoltLtExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsLightItalic] [\s!file:AntPoltLtExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsRegular] [\s!file:AntPoltExtd-Regular] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsItalic] [\s!file:AntPoltExtd-Italic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsMedium] [\s!file:AntPoltMdExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsMediumItalic] [\s!file:AntPoltMdExtd-BoldItalic] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsBold] [\s!file:AntPoltExtd-Bold] [\s!features=\s!smallcaps]
+ \definefontsynonym [AntykwaPoltawskiego-Extended-CapsBoldItalic] [\s!file:AntPoltExtd-BoldItalic] [\s!features=\s!smallcaps]
\stoptypescript
\starttypescript [serif] [antykwa-poltawskiego] [name]
@@ -919,6 +965,7 @@
\definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
\definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-BoldItalic]
\definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-BoldItalic]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsRegular]
\stoptypescript
\starttypescript [serif] [antykwa-poltawskiego-light] [name]
@@ -928,8 +975,11 @@
\definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-LightItalic]
\definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-MediumItalic]
\definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-MediumItalic]
+ \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsLight]
\stoptypescript
+ % condensed and extended variants are still missing
+
\starttypescript [antykwa-poltawskiego,antykwa-poltawskiego-light]
\definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
\definetypeface [\typescriptone] [ss] [sans] [modern] [default] [rscale=1.05]
diff --git a/tex/context/base/typo-rep.lua b/tex/context/base/typo-rep.lua
new file mode 100644
index 000000000..6fde21482
--- /dev/null
+++ b/tex/context/base/typo-rep.lua
@@ -0,0 +1,135 @@
+if not modules then modules = { } end modules ['typo-rep'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This was rather boring to program (more of the same) but I could
+-- endure it by listening to a couple cd's by The Scene and The Lau
+-- on the squeezebox on my desk.
+
+local trace_stripping = false trackers.register("nodes.stripping", function(v) trace_stripping = v end)
+ trackers.register("fonts.stripping", function(v) trace_stripping = v end)
+
+local delete_node = nodes.delete
+local replace_node = nodes.replace
+local copy_node = node.copy
+local has_attribute = node.has_attribute
+
+local chardata = characters.data
+local collected = false
+local glyph = node.id("glyph")
+local attribute = attributes.private("stripping")
+local fontdata = fonts.ids
+
+nodes.stripping = nodes.stripping or { }
+local stripping = nodes.stripping
+stripping.glyphs = stripping.glyphs or { }
+local glyphs = stripping.glyphs
+
+local function initialize()
+ for k,v in next, chardata do
+ if v.category == "cf" and v.visible ~= "yes" then
+ if not glyphs[k] then
+ glyphs[k] = true
+ end
+ end
+ end
+ initialize = nil
+end
+
+local function process(what,head,current,char)
+ if what == true then
+ if trace_stripping then
+ logs.report("fonts","deleting 0x%05X from text",char)
+ end
+ head, current = delete_node(head,current)
+ elseif type(what) == "function" then
+ head, current = what(head,current)
+ current = current.next
+ if trace_stripping then
+ logs.report("fonts","processing 0x%05X in text",char)
+ end
+ elseif what then -- assume node
+ head, current = replace_node(head,current,copy_node(what))
+ current = current.next
+ if trace_stripping then
+ logs.report("fonts","replacing 0x%05X in text",char)
+ end
+ end
+ return head, current
+end
+
+function nodes.stripping.process(head)
+ local current, done = head, false
+ while current do
+ if current.id == glyph then
+ -- it's more efficient to keep track of what needs to be kept
+ local todo = has_attribute(current,attribute)
+ if todo == 1 then
+ local char = current.char
+ local what = glyphs[char]
+ if what then
+ head, current = process(what,head,current,char)
+ done = true
+ else -- handling of spacing etc has to be done elsewhere
+ current = current.next
+ end
+ else
+ current = current.next
+ end
+ else
+ current = current.next
+ end
+ end
+ return head, done
+end
+
+tasks.appendaction("processors","fonts","nodes.stripping.process",nil,"nodes.process_characters")
+tasks.disableaction("processors","nodes.stripping.process")
+
+function nodes.stripping.enable()
+ if initialize then initialize() end
+ tasks.enableaction("processors","nodes.stripping.process")
+ function nodes.stripping.enable() end
+end
+
+-- bonus:
+
+local initializers, methods = fonts.initializers, fonts.methods
+
+local function processformatters(head,font)
+ local how = fontdata[font].shared.features.formatters -- slow
+ if how == nil or how == "strip" then -- nil when forced
+ local current, done = head, false
+ while current do
+ if current.id == glyph and current.subtype<256 and current.font == font then
+ local char = current.char
+ local what = glyphs[char]
+ if what then
+ head, current = process(what,head,current,char)
+ done = true
+ else -- handling of spacing etc has to be done elsewhere
+ current = current.next
+ end
+ else
+ current = current.next
+ end
+ end
+ return head, done
+ else
+ return head, false
+ end
+end
+
+function initializers.common.formatters(tfmdata,value)
+ if initialize then initialize() end
+end
+
+initializers.base.otf.formatters = initializers.common.formatters
+initializers.node.otf.formatters = initializers.common.formatters
+
+methods.node.otf.formatters = processformatters
+methods.base.otf.formatters = processformatters
diff --git a/tex/context/base/typo-rep.mkiv b/tex/context/base/typo-rep.mkiv
new file mode 100644
index 000000000..2f1d8b4cb
--- /dev/null
+++ b/tex/context/base/typo-rep.mkiv
@@ -0,0 +1,53 @@
+%D \module
+%D [ file=typo-rep,
+%D version=2010.05.23,
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Stripping,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Stripping}
+
+% experimental stripping
+
+%D For a while we had stripping built into the analyzer. Khaled
+%D suggested to generalize this so I changed the code into a
+%D manipulator there.
+%D
+%D \starttyping
+%D \definefontfeature[default][default][mode=node,formatters=strip]
+%D \stoptyping
+%D
+%D However, in \MKIV\ it makes more sense to also provide it as a more
+%D general feature. Here we implement this as experiment. I might
+%D cook up a few more variants in both variants.
+%D
+%D \starttyping
+%D \setcharacterstripping[1]
+%D \stoptyping
+
+\unprotect
+
+\registerctxluafile{typo-rep}{1.001}
+
+\definesystemattribute[stripping] \chardef\strippingattribute \dogetattributeid{stripping}
+
+\def\setcharacterstripping
+ {\ctxlua{nodes.stripping.enable()}%
+ \gdef\setcharacterstripping[##1]{\attribute\strippingattribute##1\relax}%
+ \setcharacterstripping}
+
+\def\resetcharacterstripping
+ {\attribute\strippingattribute\attributeunsetvalue}
+
+% maybe .. this might disappear, but is handy for testing
+
+\def\forcecharacterstripping % secret command
+ {\ctxlua{fonts.otf.features.register("formatters",true)}}
+
+\protect \endinput
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index c6a88f6b5..da81735ff 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 05/23/10 15:03:42
+-- merge date : 05/24/10 13:05:12
do -- begin closure to overcome local limits and interference
@@ -3329,6 +3329,8 @@ if tex.attribute[0] < 0 then
end
+-- this will be redone and split in a generic one and a context one
+
function nodes.process_characters(head)
-- either next or not, but definitely no already processed list
starttiming(nodes)
@@ -5858,6 +5860,7 @@ local utf = unicode.utf8
local concat, getn, utfbyte = table.concat, table.getn, utf.byte
local format, gmatch, gsub, find, match, lower, strip = string.format, string.gmatch, string.gsub, string.find, string.match, string.lower, string.strip
local type, next, tonumber, tostring = type, next, tonumber, tostring
+local abs = math.abs
local lpegmatch = lpeg.match
local trace_private = false trackers.register("otf.private", function(v) trace_private = v end)
@@ -7203,10 +7206,12 @@ function otf.features.register(name,default)
otf.features.default[name] = default
end
+-- for context this will become a task handler
+
function otf.set_features(tfmdata,features)
local processes = { }
if features and next(features) then
- local lists = {
+ local lists = { -- why local
fonts.triggers,
fonts.processors,
fonts.manipulators,
@@ -7243,7 +7248,7 @@ function otf.set_features(tfmdata,features)
end
end
end
- local fm = fonts.methods[mode]
+ local fm = fonts.methods[mode] -- todo: zonder node/mode otf/...
if fm then
local fmotf = fm.otf
if fmotf then
@@ -7352,14 +7357,11 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
local unicodes = luatex.unicodes -- names to unicodes
local indices = luatex.indices
local characters, parameters, math_parameters, descriptions = { }, { }, { }, { }
- local tfm = {
- characters = characters,
- parameters = parameters,
- math_parameters = math_parameters,
- descriptions = descriptions,
- indices = indices,
- unicodes = unicodes,
- }
+ local designsize = metadata.designsize or metadata.design_size or 100
+ if designsize == 0 then
+ designsize = 100
+ end
+ local spaceunits = 500
-- indices maps from unicodes to indices
for u, i in next, indices do
characters[u] = { } -- we need this because for instance we add protruding info and loop over characters
@@ -7412,65 +7414,49 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
end
end
-- end math
- local designsize = metadata.designsize or metadata.design_size or 100
- if designsize == 0 then
- designsize = 100
- end
- local spaceunits = 500
- -- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't we use the basename then?)
- tfm.filename = fonts.tfm.checked_filename(luatex)
- tfm.fontname = metadata.fontname
- tfm.fullname = metadata.fullname or tfm.fontname
- tfm.psname = tfm.fontname or tfm.fullname
- tfm.name = tfm.filename or tfm.fullname or tfm.fontname
- tfm.units = metadata.units_per_em or 1000
- tfm.encodingbytes = 2
- tfm.format = fonts.fontformat(tfm.filename,"opentype")
- tfm.cidinfo = data.cidinfo
- tfm.cidinfo.registry = tfm.cidinfo.registry or ""
- tfm.type = "real"
- tfm.direction = 0
- tfm.boundarychar_label = 0
- tfm.boundarychar = 65536
- tfm.designsize = (designsize/10)*65536
- tfm.spacer = "500 units"
- local endash, emdash = 0x20, 0x2014 -- unicodes['space'], unicodes['emdash']
+ local endash, emdash, space = 0x20, 0x2014, "space" -- unicodes['space'], unicodes['emdash']
if metadata.isfixedpitch then
if descriptions[endash] then
- spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ spaceunits, spacer = descriptions[endash].width, "space"
end
if not spaceunits and descriptions[emdash] then
- spaceunits, tfm.spacer = descriptions[emdash].width, "emdash"
+ spaceunits, spacer = descriptions[emdash].width, "emdash"
end
if not spaceunits and metadata.charwidth then
- spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ spaceunits, spacer = metadata.charwidth, "charwidth"
end
else
if descriptions[endash] then
- spaceunits, tfm.spacer = descriptions[endash].width, "space"
+ spaceunits, spacer = descriptions[endash].width, "space"
end
if not spaceunits and descriptions[emdash] then
- spaceunits, tfm.spacer = descriptions[emdash].width/2, "emdash/2"
+ spaceunits, spacer = descriptions[emdash].width/2, "emdash/2"
end
if not spaceunits and metadata.charwidth then
- spaceunits, tfm.spacer = metadata.charwidth, "charwidth"
+ spaceunits, spacer = metadata.charwidth, "charwidth"
end
end
spaceunits = tonumber(spaceunits) or tfm.units/2 -- 500 -- brrr
+ -- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't we use the basename then?)
+ local filename = fonts.tfm.checked_filename(luatex)
+ local fontname = metadata.fontname
+ local fullname = metadata.fullname or fontname
+ local cidinfo = data.cidinfo
+ local units = metadata.units_per_em or 1000
+ --
+ cidinfo.registry = cidinfo and cidinfo.registry or "" -- weird here, fix upstream
+ --
parameters.slant = 0
- parameters.space = spaceunits -- 3.333 (cmr10)
- parameters.space_stretch = tfm.units/2 -- 500 -- 1.666 (cmr10)
- parameters.space_shrink = 1*tfm.units/3 -- 333 -- 1.111 (cmr10)
- parameters.x_height = 2*tfm.units/5 -- 400
- parameters.quad = tfm.units -- 1000
- if spaceunits < 2*tfm.units/5 then
+ parameters.space = spaceunits -- 3.333 (cmr10)
+ parameters.space_stretch = units/2 -- 500 -- 1.666 (cmr10)
+ parameters.space_shrink = 1*units/3 -- 333 -- 1.111 (cmr10)
+ parameters.x_height = 2*units/5 -- 400
+ parameters.quad = units -- 1000
+ if spaceunits < 2*units/5 then
-- todo: warning
end
local italicangle = metadata.italicangle
- tfm.ascender = math.abs(metadata.ascent or 0)
- tfm.descender = math.abs(metadata.descent or 0)
if italicangle then -- maybe also in afm _
- tfm.italicangle = italicangle
parameters.slant = parameters.slant - math.round(math.tan(italicangle*math.pi/180))
end
if metadata.isfixedpitch then
@@ -7492,8 +7478,34 @@ function otf.copy_to_tfm(data,cache_id) -- we can save a copy when we reorder th
end
end
end
- -- [6]
- return tfm
+ --
+ return {
+ characters = characters,
+ parameters = parameters,
+ math_parameters = math_parameters,
+ descriptions = descriptions,
+ indices = indices,
+ unicodes = unicodes,
+ type = "real",
+ direction = 0,
+ boundarychar_label = 0,
+ boundarychar = 65536,
+ designsize = (designsize/10)*65536,
+ spacer = "500 units",
+ encodingbytes = 2,
+ filename = filename,
+ fontname = fontname,
+ fullname = fullname,
+ psname = fontname or fullname,
+ name = filename or fullname,
+ units = units,
+ format = fonts.fontformat(filename,"opentype"),
+ cidinfo = cidinfo,
+ ascender = abs(metadata.ascent or 0),
+ descender = abs(metadata.descent or 0),
+ spacer = spacer,
+ italicangle = italicangle,
+ }
else
return nil
end
@@ -10817,14 +10829,8 @@ local penalty = node.id('penalty')
local set_attribute = node.set_attribute
local has_attribute = node.has_attribute
local traverse_id = node.traverse_id
-local delete_node = nodes.delete
-local replace_node = nodes.replace
-local insert_node_after = node.insert_after
-local insert_node_before = node.insert_before
local traverse_node_list = node.traverse
-local new_glue_node = nodes.glue
-
local fontdata = fonts.ids
local state = attributes.private('state')
@@ -10838,7 +10844,6 @@ local a_to_language = otf.a_to_language
-- font related value, but then we also need dynamic features which is
-- somewhat slower; and .. we need a chain of them
-
function fonts.initializers.node.otf.analyze(tfmdata,value,attr)
if attr and attr > 0 then
script, language = a_to_script[attr], a_to_language[attr]
@@ -10977,8 +10982,6 @@ function fonts.analyzers.methods.nocolor(head,font,attr)
return head, true
end
-otf.remove_joiners = false -- true -- for idris who want it as option
-
local function finish(first,last)
if last then
if first == last then
@@ -11024,22 +11027,10 @@ function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special ve
local tfmdata = fontdata[font]
local marks = tfmdata.marks
local first, last, current, done = nil, nil, head, false
- local joiners, nonjoiners
- local removejoiners = tfmdata.remove_joiners -- or otf.remove_joiners
- if removejoiners then
- joiners, nonjoiners = { }, { }
- end
while current do
if current.id == glyph and current.subtype<256 and current.font == font and not has_attribute(current,state) then
done = true
local char = current.char
- if removejoiners then
- if char == zwj then
- joiners[#joiners+1] = current
- elseif char == zwnj then
- nonjoiners[#nonjoiners+1] = current
- end
- end
if marks[char] then
set_attribute(current,state,5) -- mark
if trace_analyzing then fcs(current,"font:mark") end
@@ -11085,26 +11076,9 @@ function fonts.analyzers.methods.arab(head,font,attr) -- maybe make a special ve
current = current.next
end
first, last = finish(first,last)
- if removejoiners then
- -- is never head
- for i=1,#joiners do
- delete_node(head,joiners[i])
- end
- for i=1,#nonjoiners do
- replace_node(head,nonjoiners[i],new_glue_node(0)) -- or maybe a kern
- end
- end
return head, done
end
-table.insert(fonts.manipulators,"joiners")
-
-function fonts.initializers.node.otf.joiners(tfmdata,value)
- if value == "strip" then
- tfmdata.remove_joiners = true
- end
-end
-
end -- closure
do -- begin closure to overcome local limits and interference
@@ -12122,7 +12096,7 @@ fonts = fonts or { }
-- general
-fonts.otf.pack = false
+fonts.otf.pack = false -- only makes sense in context
fonts.tfm.resolve_vf = false -- no sure about this
fonts.tfm.fontname_mode = "specification" -- somehow latex needs this
@@ -12393,4 +12367,23 @@ function fonts.otf.char(n)
end
end
+-- another one:
+
+fonts.strippables = table.tohash {
+ 0x000AD, 0x017B4, 0x017B5, 0x0200B, 0x0200C, 0x0200D, 0x0200E, 0x0200F, 0x0202A, 0x0202B,
+ 0x0202C, 0x0202D, 0x0202E, 0x02060, 0x02061, 0x02062, 0x02063, 0x0206A, 0x0206B, 0x0206C,
+ 0x0206D, 0x0206E, 0x0206F, 0x0FEFF, 0x1D173, 0x1D174, 0x1D175, 0x1D176, 0x1D177, 0x1D178,
+ 0x1D179, 0x1D17A, 0xE0001, 0xE0020, 0xE0021, 0xE0022, 0xE0023, 0xE0024, 0xE0025, 0xE0026,
+ 0xE0027, 0xE0028, 0xE0029, 0xE002A, 0xE002B, 0xE002C, 0xE002D, 0xE002E, 0xE002F, 0xE0030,
+ 0xE0031, 0xE0032, 0xE0033, 0xE0034, 0xE0035, 0xE0036, 0xE0037, 0xE0038, 0xE0039, 0xE003A,
+ 0xE003B, 0xE003C, 0xE003D, 0xE003E, 0xE003F, 0xE0040, 0xE0041, 0xE0042, 0xE0043, 0xE0044,
+ 0xE0045, 0xE0046, 0xE0047, 0xE0048, 0xE0049, 0xE004A, 0xE004B, 0xE004C, 0xE004D, 0xE004E,
+ 0xE004F, 0xE0050, 0xE0051, 0xE0052, 0xE0053, 0xE0054, 0xE0055, 0xE0056, 0xE0057, 0xE0058,
+ 0xE0059, 0xE005A, 0xE005B, 0xE005C, 0xE005D, 0xE005E, 0xE005F, 0xE0060, 0xE0061, 0xE0062,
+ 0xE0063, 0xE0064, 0xE0065, 0xE0066, 0xE0067, 0xE0068, 0xE0069, 0xE006A, 0xE006B, 0xE006C,
+ 0xE006D, 0xE006E, 0xE006F, 0xE0070, 0xE0071, 0xE0072, 0xE0073, 0xE0074, 0xE0075, 0xE0076,
+ 0xE0077, 0xE0078, 0xE0079, 0xE007A, 0xE007B, 0xE007C, 0xE007D, 0xE007E, 0xE007F,
+}
+
+
end -- closure