From 37eb75164de32f5854c1af4a76bda50fc1f18ee4 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Sun, 14 Jul 2013 12:02:50 +0200 Subject: make font name rewriting optional MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... 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. --- luaotfload-auxiliary.lua | 31 +++++++++++++++++++++++++++---- 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} -- cgit v1.2.3