diff options
| author | Philipp Gesang <phg42.2a@gmail.com> | 2013-08-11 11:04:51 +0200 | 
|---|---|---|
| committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-08-11 11:04:51 +0200 | 
| commit | 61a24f830504da4252dbc3c8de4b273749174580 (patch) | |
| tree | bccf64885a749d827c68716add305f9a16ba4300 | |
| parent | c0897794aaa6591684357318253009fc00f91ec9 (diff) | |
| download | luaotfload-61a24f830504da4252dbc3c8de4b273749174580.tar.gz | |
[lib] integrate AFM libraries
| -rw-r--r-- | luaotfload-auxiliary.lua | 2 | ||||
| -rw-r--r-- | luaotfload-loaders.lua | 57 | 
2 files changed, 58 insertions, 1 deletions
diff --git a/luaotfload-auxiliary.lua b/luaotfload-auxiliary.lua index 0a3ace8..da3f5f2 100644 --- a/luaotfload-auxiliary.lua +++ b/luaotfload-auxiliary.lua @@ -234,7 +234,7 @@ local set_capheight = function (fontdata)      local shared     = fontdata.shared      local parameters = fontdata.parameters      local capheight -    if shared then +    if shared and shared.rawdata.metadata.pfminfo then        local units_per_em   = parameters.units        local size           = parameters.size        local os2_capheight  = shared.rawdata.metadata.pfminfo.os2_capheight diff --git a/luaotfload-loaders.lua b/luaotfload-loaders.lua index 63e1d08..fd7c8c6 100644 --- a/luaotfload-loaders.lua +++ b/luaotfload-loaders.lua @@ -30,4 +30,61 @@ fonts.formats.pfa  = "type1"  fonts.readers.pfa  = pfa_reader  fonts.handlers.pfa = { } + +resolvers.openbinfile = function (filename) +    if filename and filename ~= "" then +        local f = io.open(filename,"rb") +        if f then +            --logs.show_load(filename) +            local s = f:read("*a") -- io.readall(f) is faster but we never have large files here +            if checkgarbage then +                checkgarbage(#s) +            end +            f:close() +            if s then +                return true, s, #s +            end +        end +    end +    return loaders.notfound() +end + +resolvers.loadbinfile = function (filename, filetype) + +    local fname = kpse.find_file (filename, filetype) + +    if fname and fname ~= "" then +        return resolvers.openbinfile(fname) +    else +        return resolvers.loaders.notfound() +    end + +end + +--[[ <EXPERIMENTAL> ]] + +--[[doc-- + +  Here we load extra AFM libraries from Context. +  In fact, part of the AFM support is contained in font-ext.lua, for +  which the font loader has a replacement: luatex-fonts-ext.lua. +  However, this is only a stripped down version with everything AFM +  removed. For example, it lacks definitions of several AFM features +  like italic correction, protrusion, expansion and so on. In order to +  achieve full-fledged AFM support we will either have to implement our +  own version of these or consult with Hans whether he would consider +  including the AFM code with the font loader. + +  For the time being we stick with two AFM-specific libraries: +  font-afm.lua and font-afk.lua. When combined, these already supply us +  with basic features like kerning and ligatures. The rest can be added +  in due time. + +--doc]]-- + +require "luaotfload-font-afm.lua" +require "luaotfload-font-afk.lua" + +--[[ </EXPERIMENTAL> ]] +  -- vim:tw=71:sw=2:ts=2:expandtab  | 
