在 TL15 中,LuaTeX 中 OTF 数学字体的斜体校正似乎被破坏了。
梅威瑟:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
\begin{equation}
V^* \quad T^6 \quad T) \quad VT
\end{equation}
\end{document}
使用 TL14 进行编译可得到
TL15:
直立字母没有问题(\mathup{T}
)。
将 2014 年的 .otf 字体与 TL15 一起使用产生的结果与 2015 年字体相同。
我记得 TL11/12 也遇到过类似的问题。
所以问题是:是什么导致了这种变化以及我该如何解决它?
答案1
这个问题由来已久。据我所知,这个问题在 2011 年就被提出,当时向 TeX Live 邮件列表发送消息;该线程也继续在LuaTeX 列表。
问题在于 LuaTeX 不会在数学模式下对类别代码为 11 的字符添加斜体校正。事实上,在 TeX Live 2011 中,代码的输出与现在的输出相同。
看如何启用 LuaTeX 斜体校正?找到一种也适用于当前版本的 LuaLaTeX 的解决方法:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
%\setmathfont{TeX Gyre Termes Math}
\everymath\expandafter{\the\everymath\luatexcatcodetable\CatcodeTableLaTeX}
\everydisplay\expandafter{\the\everydisplay\luatexcatcodetable\CatcodeTableLaTeX}
\begin{document}
\begin{equation}
V^* \quad T^6 \quad T) \quad VT
\end{equation}
\end{document}
通过将数学字母的默认类别代码更改为 12,可以解决这个问题。然而,正如 Ulrike Fischer 所建议的那样,新版本的 LaTeX(2015/01/01)已将每个符合字母条件的字符的类别代码改回 11,因此问题再次出现。
这是个小问题:我们首先要考虑修复它
\CatcodeTableLaTeX
,以便它有正确的 catcodes
因此,该解决方法不能保证在将来仍然有效(但我希望在此期间能找到更好的补救措施)。