喂食xelatex
或lualatex
与
\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 时会默默吞噬向量。