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.lua70
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