summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Gesang <phg42.2a@gmail.com>2013-07-14 12:02:50 +0200
committerPhilipp Gesang <phg42.2a@gmail.com>2013-07-14 12:02:50 +0200
commit37eb75164de32f5854c1af4a76bda50fc1f18ee4 (patch)
treefc3cd029c5c84d3f698ddd2190e8e6f5ee695f77
parent6ab2fdc6fbd1393050171cba83c12dcaef7e0c35 (diff)
downloadluaotfload-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.lua31
-rw-r--r--luaotfload.dtx2
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}