Amigos do LaTeX. Preciso alterar a fonte interna \DeclareMathOperator
, mas minha tentativa inicial falhou, como mostra o exemplo abaixo. Como posso alcançar o resultado desejado?
\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}
Editar: quero essa mudança de fonte para apenas um operador e preciso da mesma funcionalidade fornecida por \DeclareMathOperator
(possibilidade de limites, espaçamento entre operador e operando, etc.)
Responder1
Ao fazer isso, \DeclareMathOperator{\foo}{foo}
você está essencialmente definindo uma abreviação para \operatorname{foo}
.
Bem, na verdade de
\qopname\relax o{foo}
que, por sua vez, é
\mathop {\relax\kern\z@\operator@font foo}\csname nolimits@\endcsname
e agora queremos ver o que \operator@font
acontece:
\mathgroup\symoperators
Portanto, a escolha da fonte é uma fonte matemática, não uma fonte de texto. E \fontfamily
não fará nada.
No seu caso, você provavelmente quer
\DeclareMathOperator{\FMod}{\mathtt{Mod}}
onde você alocou pcr
como fonte para \mathtt
. O kernel LaTeX faz
\DeclareMathAlphabet{\mathtt}{OT1}{cmtt}{m}{n}
e você provavelmente quer
\DeclareMathAlphabet{\mathtt}{OT1}{pcr}{m}{n}
Se não quiser alterar o padrão \mathtt
, você pode usar \text
:
\DeclareMathOperator{\FMod}{\text{\usefont{OT1}{pcr}{m}{n}Mod}}
Exemplo completo:
\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}
Observe que isso \fontfamily{pcr}
não é suficiente: no contexto de uma declaração de teorema (usando itálico), o nome do operador seria inclinado.