我有一个文件,它加载了 Times 类字体,然后有一个包在数学模式下使用该字体。在pdflatex
包括 \operatorname{} 的正确字距调整后,一切都运行正常
% To be processed with pdflatex
\documentclass{report}
\usepackage{mathptmx}
\usepackage{amsmath}
\usepackage[lite]{mtpro2}
\begin{document}
\[
\operatorname{Diff}^r \quad \mathrm{f}^r \quad {f}^r \quad \mathcal{C}^r
\]
\end{document}
xelatex
但是当我尝试使用如下文件进行相同的设置时:
% To be processed with xe-lua-latex:
\documentclass{report}
%\usepackage[no-math]{fontspec}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\usepackage{amsmath}
\usepackage{mtpro2}
\begin{document}
\[
\operatorname{Diff}^r \quad \mathrm{f}^r \quad {f}^r \quad \mathcal{C}^r
\]
\end{document}
即使其他字距调整都没有问题,内部的字距调整\operatorname{}
也会丢失。\mathrm{}
我想了解\mathrm{}
事情搞砸的原因。
答案1
您的 pdflatex 示例无法在我这里编译并且出现错误 - 我认为同时加载 mathptmx 和 mtpro2 不是一个好主意。
但除此之外:
- 没有涉及字距调整:字符来自不同的字体。
- 您只需比较 pdflatex times 字体和 Times New Roman 即可了解为什么例如 f 间距不同:
\documentclass{report}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\else
\usepackage{mathptmx}
\fi
\begin{document}
\fboxsep0pt
\fbox{f}
\end{document}
您可以尝试使用 TeX Gyre Termes 代替 Times New Roman,它f
不会太突出边界框: