summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--otfl-basics-gen.lua2
-rw-r--r--otfl-font-con.lua6
-rw-r--r--otfl-font-def.lua32
-rw-r--r--otfl-font-otf.lua5
4 files changed, 27 insertions, 18 deletions
diff --git a/otfl-basics-gen.lua b/otfl-basics-gen.lua
index c0fc396..bdbc3cf 100644
--- a/otfl-basics-gen.lua
+++ b/otfl-basics-gen.lua
@@ -80,6 +80,8 @@ local remapper = {
dfont = "truetype fonts", -- "truetype dictionary",
cid = "cid maps",
fea = "font feature files",
+ pfa = "type1 fonts", -- this is for Khaled, in ConTeXt we don't use this!
+ pfb = "type1 fonts", -- this is for Khaled, in ConTeXt we don't use this!
}
function resolvers.findfile(name,fileformat)
diff --git a/otfl-font-con.lua b/otfl-font-con.lua
index 5352977..75d90f1 100644
--- a/otfl-font-con.lua
+++ b/otfl-font-con.lua
@@ -426,7 +426,9 @@ function constructors.scale(tfmdata,specification)
end
end
--
- local sharedkerns = { }
+ local sharedkerns = { }
+ --
+ -- we can have a dumb mode (basemode without math etc) that skips most
--
for unicode, character in next, characters do
local chr, description, index, touni
@@ -528,7 +530,7 @@ function constructors.scale(tfmdata,specification)
chr[italickey] = vi*hdelta
end
elseif hasitalic then
- local vi = description.italic or character.italic -- why character
+ local vi = description.italic -- or character.italic hm, already scaled !
if vi and vi ~= 0 then
chr[italickey] = vi*hdelta
end
diff --git a/otfl-font-def.lua b/otfl-font-def.lua
index 63d3e2c..5f79170 100644
--- a/otfl-font-def.lua
+++ b/otfl-font-def.lua
@@ -248,27 +248,27 @@ features (esp in virtual fonts) so let's not do that now.</p>
specification yet.</p>
--ldx]]--
--- not in context, at least not now:
---
--- function definers.applypostprocessors(tfmdata)
--- local postprocessors = tfmdata.postprocessors
--- if postprocessors then
--- for i=1,#postprocessors do
--- local extrahash = postprocessors[i](tfmdata) -- after scaling etc
--- if type(extrahash) == "string" and extrahash ~= "" then
--- -- e.g. a reencoding needs this
--- extrahash = gsub(lower(extrahash),"[^a-z]","-")
--- tfmdata.properties.fullname = format("%s-%s",tfmdata.properties.fullname,extrahash)
--- end
--- end
--- end
--- return tfmdata
--- end
+-- very experimental:
function definers.applypostprocessors(tfmdata)
+ local postprocessors = tfmdata.postprocessors
+ if postprocessors then
+ for i=1,#postprocessors do
+ local extrahash = postprocessors[i](tfmdata) -- after scaling etc
+ if type(extrahash) == "string" and extrahash ~= "" then
+ -- e.g. a reencoding needs this
+ extrahash = gsub(lower(extrahash),"[^a-z]","-")
+ tfmdata.properties.fullname = format("%s-%s",tfmdata.properties.fullname,extrahash)
+ end
+ end
+ end
return tfmdata
end
+-- function definers.applypostprocessors(tfmdata)
+-- return tfmdata
+-- end
+
function definers.loadfont(specification)
local hash = constructors.hashinstance(specification)
local tfmdata = loadedfonts[hash] -- hashes by size !
diff --git a/otfl-font-otf.lua b/otfl-font-otf.lua
index 6a75a0c..cab6fae 100644
--- a/otfl-font-otf.lua
+++ b/otfl-font-otf.lua
@@ -1838,6 +1838,11 @@ local function copytotfm(data,cache_id)
local fullname = metadata.fullname or fontname
local units = metadata.units_per_em or 1000
--
+ if units == 0 then -- catch bugs in fonts
+ units = 1000
+ metadata.units_per_em = 1000
+ end
+ --
parameters.slant = 0
parameters.space = spaceunits -- 3.333 (cmr10)
parameters.space_stretch = units/2 -- 500 -- 1.666 (cmr10)