\DeclareMathOperator 내에서 글꼴을 변경하는 방법은 무엇입니까?

\DeclareMathOperator 내에서 글꼴을 변경하는 방법은 무엇입니까?

라텍스 친구들. 내부의 글꼴을 변경해야 \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}충분하지 않습니다. 정리문의 맥락에서(이탤릭체 사용) 연산자 이름이 기울어질 수 있습니다.

관련 정보