fontspec + amsmath - 数学模式下的字距调整问题

fontspec + amsmath - 数学模式下的字距调整问题

我有一个文件,它加载了 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不会太突出边界框:

在此处输入图片描述

相关内容