为了比较\nolimits
XeTeX 和 LuaTeX 的运算符算法,我测试了:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{xits-math.otf}
\begin{document}
\[ \int_0^\infty \]
\end{document}'
我分别获得了 XeTeX(0.99996)和 LuaTeX(0.95)的以下结果。
我理解 LuaTeX 用来获得所示结果的算法:确定上标和下标的高度后,水平字距调整为ic/2
上标和-ic/2
下标,其中ic
是积分运算符的斜体校正。我不明白 XeTeX 使用了什么。
XeTeX 使用什么算法?据我所知,XITS 为 XeTeX 提供的唯一字体参数是积分符号的斜体校正信息。
编辑:从 LuaTeX 0.99 开始,上标不再默认为右对齐ic/2
,下标不再默认为左对齐ic/2
。现在默认为不对齐上标,而将下标对齐为左对齐3/4 ic
。此参数可以通过 进行修改\mathnolimitsmode
。请参阅部分无限制修正在 LuaTeX 参考中了解更多信息。
答案1
使用 STIX Math Two 代替 XITS Math
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{STIX Two Math}
\begin{document}
\[ \int_0^\infty \]
\end{document}
我得到以下输出。
XeTeX 3.14159265-2.6-0.99996 (TeX Live 2016)
LuaTeX,版本 0.95.0 (TeX Live 2016)
XeTeX 3.14159265-2.6-0.99998 (TeX Live 2017)
LuaTeX,版本 1.0.4 (TeX Live 2017)
概括
看来 LuaTeX 1.0.4 已经修复了积分方面的错误。而 STIX Two Math 修复了 XITS Math 的其他方面。
注意:撰写此答案时,TeX Live 2017 将于明天(2017-06-04)到期。