diff options
author | Karl Berry <karl@freefriends.org> | 2014-01-01 22:57:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-01-01 22:57:02 +0000 |
commit | 0479a789f43c32b8fbc9d74bb82c615932a3c5b1 (patch) | |
tree | b1c9d139f32df9676c239bdad84408cf55124729 /Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua | |
parent | 999dd6fa37bd291385b20ccf85f980eccfd2e683 (diff) |
luaotfload (1jan14)
git-svn-id: svn://tug.org/texlive/trunk@32538 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua | 70 |
1 files changed, 50 insertions, 20 deletions
diff --git a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua index 3708474c322..4aa050025a2 100644 --- a/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua +++ b/Master/texmf-dist/tex/luatex/luaotfload/luaotfload.lua @@ -36,11 +36,15 @@ config.luaotfload.prioritize = config.luaotfload.prioritize or "sys" config.luaotfload.names_dir = config.luaotfload.names_dir or "names" config.luaotfload.cache_dir = config.luaotfload.cache_dir or "fonts" config.luaotfload.index_file = config.luaotfload.index_file or "luaotfload-names.lua" +config.luaotfload.formats = config.luaotfload.formats or "otf,ttf,ttc,dfont" +if not config.luaotfload.strip then + config.luaotfload.strip = true +end luaotfload.module = { name = "luaotfload", - version = 2.3002, - date = "2013/07/23", + version = 2.40003, + date = "2013/12/28", description = "OpenType layout system.", author = "Elie Roux & Hans Hagen", copyright = "Elie Roux", @@ -183,7 +187,7 @@ local our_environment = push_namespaces() tex.attribute[0] = 0 -loadmodule"merged.lua" +loadmodule"fontloader.lua" ---loadmodule"font-odv.lua" --- <= Devanagari support from Context if fonts then @@ -266,25 +270,33 @@ loadmodule"database.lua" --- “font-nms” loadmodule"colors.lua" --- “font-clr” +local filesuffix = file.suffix +local fileremovesuffix = file.removesuffix local request_resolvers = fonts.definers.resolvers -local formats = fonts.formats -- nice table; does lowercasing ... +local formats = fonts.formats +local names = fonts.names formats.ofm = "type1" +fonts.encodings.known = fonts.encodings.known or { } + -local resolvefile = fonts.names.crude_file_lookup ---local resolvefile = fonts.names.crude_file_lookup_verbose +local resolve_file = names.crude_file_lookup +--local resolve_file = names.crude_file_lookup_verbose +local resolve_name = names.resolve_name -request_resolvers.file = function (specification) - local name = resolvefile(specification.name) - local suffix = file.suffix(name) +local file_resolver = function (specification) + local name = resolve_file (specification.name) + local suffix = filesuffix(name) if formats[suffix] then - specification.forced = suffix - specification.name = file.removesuffix(name) + specification.forced = suffix + specification.forcedname = file.removesuffix(name) else specification.name = name end end +request_resolvers.file = file_resolver + --request_resolvers.anon = request_resolvers.name @@ -296,7 +308,8 @@ request_resolvers.anon = function (specification) for i=1, #type1_formats do local format = type1_formats[i] if resolvers.findfile(name, format) then - specification.name = file.addsuffix(name, format) + specification.forcedname = file.addsuffix(name, format) + specification.forced = format return end end @@ -325,9 +338,9 @@ request_resolvers.path = function (specification) logs.names_report("log", 1, "load", "path lookup of %q unsuccessful, falling back to file:", name) - request_resolvers.file(specification) + file_resolver (specification) else - local suffix = file.suffix(name) + local suffix = filesuffix (name) if formats[suffix] then specification.forced = suffix specification.name = file.removesuffix(name) @@ -340,12 +353,12 @@ end request_resolvers.kpse = function (specification) local name = specification.name - local suffix = file.suffix(name) + local suffix = filesuffix(name) if suffix and formats[suffix] then name = file.removesuffix(name) if resolvers.findfile(name, suffix) then - specification.forced = suffix - specification.name = name + specification.forced = suffix + specification.forcedname = name return end end @@ -358,6 +371,23 @@ request_resolvers.kpse = function (specification) end end + +--- fonts.names.resolvers.name -- Customized version of the +--- generic name resolver. + +request_resolvers.name = function (specification) + local resolved, subfont = resolve_name (specification) + if resolved then + specification.resolved = resolved + specification.sub = subfont + specification.forced = filesuffix (resolved) + specification.forcedname = resolved + specification.name = fileremovesuffix (resolved) + else + file_resolver (specification) + end +end + create_callback("luaotfload.resolve_font", "simple", dummy_function) request_resolvers.my = function (specification) @@ -399,9 +429,9 @@ elseif font_definer == "patch" then 1) end -loadmodule"features.lua" --- contains what was “font-ltx” and “font-otc” -loadmodule"extralibs.lua" --- load additional Context libraries -loadmodule"auxiliary.lua" --- additionaly high-level functionality (new) +loadmodule"features.lua" --- contains what was “font-ltx” and “font-otc” +loadmodule"letterspace.lua" --- extra character kerning +loadmodule"auxiliary.lua" --- additionaly high-level functionality (new) luaotfload.aux.start_rewrite_fontname () --- to be migrated to fontspec |