summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--luaotfload.dtx26
1 files changed, 26 insertions, 0 deletions
diff --git a/luaotfload.dtx b/luaotfload.dtx
index 586b8be..548251d 100644
--- a/luaotfload.dtx
+++ b/luaotfload.dtx
@@ -675,6 +675,32 @@ luatexbase.add_to_callback("find_vf_file",
fonts.vf.find,
"luaotfload.find_vf_file")
% \end{macrocode}
+% XXX: see https://github.com/wspr/unicode-math/issues/185
+%
+% \luatex does not provide interface to accessing
+% |(Script)ScriptPercentScaleDown| math constants, so we
+% emulate \xetex behaviour by setting |\fontdimen10| and
+% |\fontdimen11|.
+%
+% \begin{macrocode}
+local function set_sscale_diments(fontdata)
+ local mc = fontdata.MathConstants
+ if mc then
+ if mc["ScriptPercentScaleDown"] then
+ fontdata.parameters[10] = mc.ScriptPercentScaleDown
+ else -- resort to plain TeX default
+ fontdata.parameters[10] = 70
+ end
+ if mc["ScriptScriptPercentScaleDown"] then
+ fontdata.parameters[11] = mc.ScriptScriptPercentScaleDown
+ else -- resort to plain TeX default
+ fontdata.parameters[11] = 50
+ end
+ end
+end
+
+luatexbase.add_to_callback("luaotfload.patch_font", set_sscale_diments, "unicodemath.set_sscale_diments")
+% \end{macrocode}
%
% \iffalse
%</lua>