diff options
author | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-14 12:02:50 +0200 |
---|---|---|
committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-14 12:02:50 +0200 |
commit | 37eb75164de32f5854c1af4a76bda50fc1f18ee4 (patch) | |
tree | fc3cd029c5c84d3f698ddd2190e8e6f5ee695f77 | |
parent | 6ab2fdc6fbd1393050171cba83c12dcaef7e0c35 (diff) | |
download | luaotfload-37eb75164de32f5854c1af4a76bda50fc1f18ee4.tar.gz |
make font name rewriting optional
... but still activated by default
the trouble with rewriting the font name is that it diverges from the
behavior as stated in the Luatex reference. according to chapter 7, the
field ``name`` of the font structure should contain the “metric (file)
name”. by including the complete specification we cater to hacks that
feed ``\fontname`` (which reads the ``name`` field) back into ``\font``
as Xetex does. this appears to work without complications, but formats
other than Latex might not need it. so the best strategy would be to
make it an option and have Fontspec activate this non-standard behavior.
-rw-r--r-- | luaotfload-auxiliary.lua | 31 | ||||
-rw-r--r-- | luaotfload.dtx | 2 |
2 files changed, 29 insertions, 4 deletions
diff --git a/luaotfload-auxiliary.lua b/luaotfload-auxiliary.lua index d6c8eaa..0a3ace8 100644 --- a/luaotfload-auxiliary.lua +++ b/luaotfload-auxiliary.lua @@ -48,10 +48,33 @@ local rewrite_fontname = function (tfmdata, specification) tfmdata.name = [["]] .. specification .. [["]] end -luatexbase.add_to_callback( - "luaotfload.patch_font", - rewrite_fontname, - "luaotfload.rewrite_fontname") +local rewriting = false + +local start_rewrite_fontname = function () + if rewriting == false then + luatexbase.add_to_callback ( + "luaotfload.patch_font", + rewrite_fontname, + "luaotfload.rewrite_fontname") + rewriting = true + logs.names_report ("log", 0, "aux", + "start rewriting tfmdata.name field") + end +end + +aux.start_rewrite_fontname = start_rewrite_fontname + +local stop_rewrite_fontname = function () + if rewriting == true then + luatexbase.remove_fromt_callback + ("luaotfload.patch_font", "luaotfload.rewrite_fontname") + rewriting = false + logs.names_report ("log", 0, "aux", + "stop rewriting tfmdata.name field") + end +end + +aux.stop_rewrite_fontname = stop_rewrite_fontname --- as of 2.3 the compatibility hacks for TL 2013 are made optional diff --git a/luaotfload.dtx b/luaotfload.dtx index d647efb..2344a19 100644 --- a/luaotfload.dtx +++ b/luaotfload.dtx @@ -2044,6 +2044,8 @@ 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) +luaotfload.aux.start_rewrite_fontname () --- to be migrated to fontspec + -- vim:tw=71:sw=4:ts=4:expandtab % \end{macrocode} |