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 の両方をロードするのは良い考えではないと思います。

しかし、これ以外にも:

  • カーニングは行われません。文字は異なるフォントから取得されます。
  • たとえば、f 間隔が異なる理由を理解するには、pdflatex times フォントと Times New Roman を比較するだけで十分です。
\documentclass{report}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Times New Roman}
\else 
\usepackage{mathptmx}
\fi


\begin{document}
\fboxsep0pt
\fbox{f}

\end{document}

ここに画像の説明を入力してくださいここに画像の説明を入力してください

Times New Roman の代わりに TeX Gyre Termes を試すこともできます。f境界ボックスからそれほどはみ出しません。

ここに画像の説明を入力してください

関連情報