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}
編集: このフォント変更は 1 つの演算子に対してのみ行い、\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}
十分ではないことに注意してください。定理ステートメントのコンテキスト (斜体を使用) では、演算子名は斜めになります。