如何更改 \DeclareMathOperator 内的字体?

如何更改 \DeclareMathOperator 内的字体?

LaTeX 朋友们。我需要更改里面的字体\DeclareMathOperator,但我的初次尝试失败了,如下例所示。我该如何实现所需的结果?

\documentclass{article}
\usepackage{amsmath}

% change to Courier font family
\newcommand\myfont[1]{{\fontfamily{pcr}\selectfont#1}}
\DeclareMathOperator\Mod{Mod}
\DeclareMathOperator\FMod{\myfont{Mod}}

\begin{document}

$\Mod A$% regular DeclareMathFont

$\FMod A$% attempt to change the font. No joy!
 
$\text{\myfont{Mod}}\,A$% the desired result. This has to be achieved using \DeclareMathFont

\end{document}

编辑:我只希望为一个运算符更改此字体,并且我需要提供的相同功能\DeclareMathOperator(限制的可能性、运算符和操作数之间的间距等)

答案1

当您这样做时,\DeclareMathOperator{\foo}{foo}您实际上是在定义 的简写\operatorname{foo}

嗯,实际上

\qopname\relax o{foo}

反过来又

\mathop {\relax\kern\z@\operator@font foo}\csname nolimits@\endcsname

现在我们想看看\operator@font

\mathgroup\symoperators

因此字体选择的是数学字体,而不是文本字体。并且\fontfamily不会产生任何作用。

就你的情况而言,你可能想要

\DeclareMathOperator{\FMod}{\mathtt{Mod}}

您已分配pcr为 的字体\mathtt。LaTeX 内核

\DeclareMathAlphabet{\mathtt}{OT1}{cmtt}{m}{n}

你可能想要

\DeclareMathAlphabet{\mathtt}{OT1}{pcr}{m}{n}

如果你不想更改默认值\mathtt,你可以使用\text

\DeclareMathOperator{\FMod}{\text{\usefont{OT1}{pcr}{m}{n}Mod}}

完整示例:

\documentclass{article}
\usepackage{amsmath}

% change to Courier font family
\newcommand\myfont{\usefont{OT1}{pcr}{m}{n}}
\DeclareMathOperator\Mod{Mod}
\DeclareMathOperator\FMod{\text{\myfont Mod}}

\begin{document}

$\Mod A$% regular DeclareMathFont

$\FMod A$% attempt to change the font: good!

\end{document}

在此处输入图片描述

请注意,这还\fontfamily{pcr}不够:在定理陈述(使用斜体)的上下文中,运算符名称会倾斜。

相关内容