diff options
| -rw-r--r-- | luaotfload-loaders.lua | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/luaotfload-loaders.lua b/luaotfload-loaders.lua index 56bdf96..6d6f409 100644 --- a/luaotfload-loaders.lua +++ b/luaotfload-loaders.lua @@ -17,6 +17,7 @@ local filebasename    = file.basename  local stringsub       = string.sub  local stringlower     = string.lower  local stringupper     = string.upper +local findbinfile     = resolvers.findbinfile  local lpeg            = require "lpeg"  local lpegmatch       = lpeg.match @@ -52,6 +53,31 @@ resolvers.loadbinfile = function (filename, filetype)  end +--- this function is required because AFM precedes TFM in the reader +--- chain (see definers.loadfont() in font-def.lua + +local check_tfm = function (specification, fullname) + +    local foundname = findbinfile (fullname, "tfm") or "" + +    if foundname == "" then +        foundname = findbinfile (fullname, "ofm") or "" +    end + +    if foundname == "" then +        foundname = fonts.names.getfilename (fullname,"tfm") or "" +    end + +    if foundname ~= "" then +        specification.filename = foundname +        specification.format   = "ofm" +        return font.read_tfm (specification.filename, +                              specification.size) +    end +end + +readers.check_tfm = check_tfm +  --[[ <EXPERIMENTAL> ]]  --[[doc--  | 
