summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua129
1 files changed, 61 insertions, 68 deletions
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
index 58b55e235b1..b70e6628665 100644
--- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
+++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
@@ -17,12 +17,12 @@
-- and the derived files
-- luaotfload.sty, luaotfload.lua
--
-module('luaotfload', package.seeall)
+module("luaotfload", package.seeall)
luaotfload.module = {
name = "luaotfload",
- version = 1.24,
- date = "2011/02/16",
+ version = 1.25,
+ date = "2011/04/21",
description = "OpenType layout system.",
author = "Elie Roux & Hans Hagen",
copyright = "Elie Roux",
@@ -30,77 +30,63 @@ luaotfload.module = {
}
local error, warning, info, log = luatexbase.provides_module(luaotfload.module)
-kpse.init_prog('', 600, '/')
+kpse.init_prog("", 600, "/")
local luatex_version = 60
if tex.luatexversion < luatex_version then
- warning('LuaTeX v%.2f is old, v%.2f is recommended.',
+ warning("LuaTeX v%.2f is old, v%.2f is recommended.",
tex.luatexversion/100,
luatex_version /100)
end
function luaotfload.loadmodule(name)
- local tofind = 'otfl-'..name
+ local tofind = "otfl-"..name
local found = kpse.find_file(tofind,"tex")
if found then
- log('loading file %s.', found)
+ log("loading file %s.", found)
dofile(found)
else
- error('file %s not found.', tofind)
+ error("file %s not found.", tofind)
end
end
-luaotfload.loadmodule('luat-dum.lua') -- not used in context at all
-luaotfload.loadmodule('luat-ovr.lua') -- override some luat-dum functions
-luaotfload.loadmodule('data-con.lua') -- maybe some day we don't need this one
+luaotfload.loadmodule("luat-dum.lua") -- not used in context at all
+luaotfload.loadmodule("luat-ovr.lua") -- override some luat-dum functions
+luaotfload.loadmodule("data-con.lua") -- maybe some day we don't need this one
tex.attribute[0] = 0
-luaotfload.loadmodule('font-ini.lua')
-luaotfload.loadmodule('node-dum.lua')
-luaotfload.loadmodule('node-inj.lua')
+luaotfload.loadmodule("font-ini.lua")
+luaotfload.loadmodule("node-dum.lua")
+luaotfload.loadmodule("node-inj.lua")
function attributes.private(name)
- local attr = 'otfl@' .. 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-tfm.lua')
-luaotfload.loadmodule('font-cid.lua')
-luaotfload.loadmodule('font-ott.lua')
-luaotfload.loadmodule('font-map.lua')
-luaotfload.loadmodule('font-otf.lua')
-luaotfload.loadmodule('font-otd.lua')
-luaotfload.loadmodule('font-oti.lua')
-luaotfload.loadmodule('font-otb.lua')
-luaotfload.loadmodule('font-otn.lua')
-luaotfload.loadmodule('font-ota.lua')
-luaotfload.loadmodule('font-otc.lua')
-luaotfload.loadmodule('font-def.lua')
-luaotfload.loadmodule('font-xtx.lua')
-luaotfload.loadmodule('font-dum.lua')
+luaotfload.loadmodule("font-tfm.lua")
+luaotfload.loadmodule("font-cid.lua")
+luaotfload.loadmodule("font-ott.lua")
+luaotfload.loadmodule("font-map.lua")
+luaotfload.loadmodule("font-otf.lua")
+luaotfload.loadmodule("font-otd.lua")
+luaotfload.loadmodule("font-oti.lua")
+luaotfload.loadmodule("font-otb.lua")
+luaotfload.loadmodule("font-otn.lua")
+luaotfload.loadmodule("font-ota.lua")
+luaotfload.loadmodule("font-otc.lua")
+luaotfload.loadmodule("font-def.lua")
+luaotfload.loadmodule("font-xtx.lua")
+luaotfload.loadmodule("font-dum.lua")
if fonts and fonts.tfm and fonts.tfm.readers then
fonts.tfm.readers.ofm = fonts.tfm.readers.tfm
end
-luaotfload.loadmodule('font-nms.lua')
-luaotfload.loadmodule('font-clr.lua')
+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 capheight
- local units = fontdata.units
- local size = fontdata.size
- local otfdata = fontdata.shared.otfdata
-
- if otfdata.pfminfo.os2_capheight > 0 then
- capheight = otfdata.pfminfo.os2_capheight / units * size
- else
- if fontdata.characters[string.byte("X")] then
- capheight = fontdata.characters[string.byte("X")].height
- else
- capheight = otfdata.metadata.ascent / units * size
- end
- end
- fontdata.parameters[8] = capheight
+ local otfdata = fontdata.shared.otfdata
if otfdata.metadata.math then
local mc = { }
for k,v in next, otfdata.metadata.math do
@@ -108,24 +94,14 @@ local function def_font(...)
-- keep percent values as is
mc[k] = v
else
- mc[k] = v / units * size
+ mc[k] = v / fontdata.units * fontdata.size
end
end
-- for \overwithdelims
- mc.FractionDelimiterSize = 1.01 * size
- mc.FractionDelimiterDisplayStyleSize = 2.39 * size
+ mc.FractionDelimiterSize = 1.01 * fontdata.size
+ mc.FractionDelimiterDisplayStyleSize = 2.39 * fontdata.size
fontdata.MathConstants = mc
- 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
luatexbase.call_callback("luaotfload.patch_font", fontdata)
end
@@ -143,18 +119,35 @@ local gsubs = {
for _,v in next, gsubs do
register_base_sub(v)
end
-luatexbase.add_to_callback('pre_linebreak_filter',
+luatexbase.add_to_callback("pre_linebreak_filter",
nodes.simple_font_handler,
- 'luaotfload.pre_linebreak_filter')
-luatexbase.add_to_callback('hpack_filter',
+ "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',
+ "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',
+ "luaotfload.define_font", 1)
+luatexbase.add_to_callback("find_vf_file",
fonts.vf.find,
- 'luaotfload.find_vf_file')
+ "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'.