diff options
| author | Philipp Gesang <megas.kapaneus@gmail.com> | 2013-04-09 13:45:13 +0200 | 
|---|---|---|
| committer | Philipp Gesang <megas.kapaneus@gmail.com> | 2013-04-09 13:45:13 +0200 | 
| commit | c3f5cbf28f671d888a561aa1dfce1aaa629de12f (patch) | |
| tree | f83b699e7a5a121092125d813062ecef2a88064a | |
| parent | 1e3f80d13d7bd10e4f3d62848b2df6a340f83fd4 (diff) | |
| download | luaotfload-c3f5cbf28f671d888a561aa1dfce1aaa629de12f.tar.gz | |
truly add deferred
| -rw-r--r-- | luaotfload-deferred.lua | 116 | 
1 files changed, 116 insertions, 0 deletions
| diff --git a/luaotfload-deferred.lua b/luaotfload-deferred.lua new file mode 100644 index 0000000..2a5880b --- /dev/null +++ b/luaotfload-deferred.lua @@ -0,0 +1,116 @@ +--- TODO integrate into luaotfload.dtx +--- this part is loaded after luatexbase +luaotfload.loadmodule("lib-dir.lua")    -- required by font-nms; will change with lualibs update +luaotfload.loadmodule("font-nms.lua") +luaotfload.loadmodule("font-clr.lua") + +luatexbase.create_callback("luaotfload.patch_font", "simple", function() end) + +local function def_font(...) +    local fontdata = fonts.define.read(...) +    if type(fontdata) == "table" and fontdata.shared then +        local otfdata = fontdata.shared.otfdata +        if otfdata.metadata.math then +            local mc = { } +            for k,v in next, otfdata.metadata.math do +                if k:find("Percent") then +                    -- keep percent values as is +                    mc[k] = v +                else +                    mc[k] = v / fontdata.units * fontdata.size +                end +            end +            -- for \overwithdelims +            mc.FractionDelimiterSize             = 1.01 * fontdata.size +            mc.FractionDelimiterDisplayStyleSize = 2.39 * fontdata.size + +            fontdata.MathConstants = mc +        end +        luatexbase.call_callback("luaotfload.patch_font", fontdata) +    end +    return fontdata +end +fonts.mode = "node" + +function attributes.private(name) +    local attr   = "otfl@" .. name +    local number = luatexbase.attributes[attr] +    if not number then +        number = luatexbase.new_attribute(attr) +    end +    return number +end + +--luaotfload.loadmodule("font-otc.lua") -- broken + +--luatexbase.create_callback("luaotfload.patch_font", "simple", function() end) + +--local function def_font(...) +    --local fontdata = fonts.define.read(...) +    --if type(fontdata) == "table" and fontdata.shared then +        --local otfdata = fontdata.shared.otfdata +        --if otfdata.metadata.math then +            --local mc = { } +            --for k,v in next, otfdata.metadata.math do +                --if k:find("Percent") then +                    ---- keep percent values as is +                    --mc[k] = v +                --else +                    --mc[k] = v / fontdata.units * fontdata.size +                --end +            --end +            ---- for \overwithdelims +            --mc.FractionDelimiterSize             = 1.01 * fontdata.size +            --mc.FractionDelimiterDisplayStyleSize = 2.39 * fontdata.size + +            --fontdata.MathConstants = mc +        --end +        --luatexbase.call_callback("luaotfload.patch_font", fontdata) +    --end +    --return fontdata +--end +--fonts.mode = "node" + +--local register_base_sub = fonts.otf.features.register_base_substitution +--local gsubs = { +    --"ss01", "ss02", "ss03", "ss04", "ss05", +    --"ss06", "ss07", "ss08", "ss09", "ss10", +    --"ss11", "ss12", "ss13", "ss14", "ss15", +    --"ss16", "ss17", "ss18", "ss19", "ss20", +--} + +--for _,v in next, gsubs do +    --register_base_sub(v) +--end +--luatexbase.add_to_callback("pre_linebreak_filter", +                            --nodes.simple_font_handler, +                           --"luaotfload.pre_linebreak_filter") +--luatexbase.add_to_callback("hpack_filter", +                            --nodes.simple_font_handler, +                           --"luaotfload.hpack_filter") +--luatexbase.reset_callback("define_font") +--luatexbase.add_to_callback("define_font", +                            --def_font, +                           --"luaotfload.define_font", 1) +--luatexbase.add_to_callback("find_vf_file", +                            --fonts.vf.find, +                           --"luaotfload.find_vf_file") +--local function set_sscale_diments(fontdata) +    --local mc = fontdata.MathConstants +    --if mc then +        --if mc["ScriptPercentScaleDown"] then +            --fontdata.parameters[10] = mc.ScriptPercentScaleDown +        --else -- resort to plain TeX default +            --fontdata.parameters[10] = 70 +        --end +        --if mc["ScriptScriptPercentScaleDown"] then +            --fontdata.parameters[11] = mc.ScriptScriptPercentScaleDown +        --else -- resort to plain TeX default +            --fontdata.parameters[11] = 50 +        --end +    --end +--end + +--luatexbase.add_to_callback("luaotfload.patch_font", set_sscale_diments, "unicodemath.set_sscale_diments") +--  +--  End of File `luaotfload.lua'. | 
