\mathit{\vec{…}} 使用 xelatex/lualatex、unicode-math 和 TeX Gyre Termes (Math) 时会默默吞噬向量

\mathit{\vec{…}} 使用 xelatex/lualatex、unicode-math 和 TeX Gyre Termes (Math) 时会默默吞噬向量

喂食xelatexlualatex

\documentclass{article}
\pagestyle{empty}
\usepackage{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]%%% Somewhat ok.
\setmonofont{TeX Gyre Cursor}%%% No explicit turning on ligatures for the monospaced font.
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\tracinglostchars=2
\begin{document}
\(\mathit{\vec{i}}\)
\end{document}

结果是

没有任何箭头。当然,可以通过删除\usepackage{unicode-math}……\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}或交换调用顺序\vec\mathit简单地删除\mathit单字母参数(因为不需要在参数的相邻字母之间进行字距调整)来规避此问题。但是,由于对这两个宏的调用可能隐藏在其他宏中(对于我的较大、非最小 LaTeX 源,它们确实隐藏在其他宏中),最好在序言级别或 unicode-math 包中解决问题,或者通过修补它,或者理想情况下,扩展 TeX Gyre Termes Math 字体,这样用户的主文档就不需要更改了。有什么想法吗?

PS. 对于latex/pdflatex和 NewTX,请参见。\mathit{\vec{…}} 使用 latex/pdflatex 和 newtxmath 时会默默吞噬向量

相关内容