Как изменить шрифт внутри \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}недостаточно: в контексте утверждения теоремы (с использованием курсива) имя оператора будет наклонено.

Связанный контент