我使用的是默认字体 Computer Modern Roman,并尝试使其\operatorname
正常工作。问题是它看起来与普通文本相同。这个问题:LuaLaTeX:未加载 lmodern 包时,\operatorname 内无字距调整展示了在 LuaTex 中解决此问题的方法。
我如何在 pdfTex 中实现这一点?
例子
\documentclass{report}
% Math packages
\usepackage{mathtools}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
$foo$ foo $\operatorname{foo}$
\end{document}
在上图中,最后两个单词看起来不应该相同。
如果你切换默认字体,例如:\renewcommand*\rmdefault{bch}
。你将得到以下结果:
我不想改变默认字体,我只是想显示\operatorname
区别。
答案1
amsmath 宏\operatorname
设计为使用与 相同的字体\DeclareMathOperator
。
事实上,此字体在 LaTeX 和 AMSmath 源代码(更准确地说是 fontmath.ltx 或 amsopn.sty)中都是硬编码的,以使用所谓的“运算符”数学字体。这是通过
\def\operator@font{\mathgroup\symoperators}
您可以自定义\operator@font
(包mathastext
可以做到)。但如您所见,您应该引用(PDFTeX 中为 16)数学字体系列之一(\mathgroup
在 LaTeX 中,在 TeX 中)。此外,您还将影响所有通过用户定义的命令或预定义的\fam
命令,例如,它们使用更直接的方法,但仍有硬编码。\DeclareMathOperator
\sin
\cos
\operator@font