Executei o código a seguir e obtive o seguinte espaço enorme ao usar \pmod
a função. Parece estranho no jornal. Alguém poderia sugerir como reduzir o espaço?
\begin{eqnarray*}
MSC(C_n^2) &=& \begin{cases}
1, & \text{if $n$ is odd and d is even ($n\equiv 1\pmod{4}$)},\\
2, & \mbox{if n is even and d is even ($n\equiv 0\pmod {4}$)},\\
3, & \mbox{if n is odd and d is odd ($n\equiv 3\pmod {4}$)},\\
3, & \mbox{if n is even and d is odd ($n\equiv 2\pmod {4}$)}.
\end{cases}
\end{eqnarray*}
Responder1
SeguindoEscrevendo mod em problemas de congruência sem espaço inicial, use \Mod
conforme definido abaixo:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\Mod}[1]{\ (\mathrm{mod}\ #1)}
\begin{document}
\begin{align*}
MSC(C_n^2) &=
\begin{cases}
1, & \text{if $n$ is odd and $d$ is even ($n \equiv 1 \Mod{4}$)}, \\
2, & \text{if $n$ is even and $d$ is even ($n \equiv 0 \Mod{4}$)}, \\
3, & \text{if $n$ is odd and $d$ is odd ($n \equiv 3 \Mod{4}$)}, \\
3, & \text{if $n$ is even and $d$ is odd ($n \equiv 2 \Mod{4}$)}.
\end{cases}
\end{align*}
\end{document}
Responder2
A julgar pela fonte em itálico, a exibição está dentro de uma declaração de teorema.
Eu evitaria os parênteses e a repetição de partes comuns:
\documentclass{article}
\usepackage{amsmath}
\newtheorem{theorem}{Theorem}
\DeclareMathOperator{\MSC}{MSC}
\begin{document}
\begin{theorem}
Blah, blah
\begin{equation*}
\MSC(C_n^2)=
\begin{cases}
1, & \text{if $n$ is odd and $d$ is even, i.e., $n\equiv 1$},\\
2, & \text{if $n$ is even and $d$ is even, i.e., $n\equiv 0$},\\
3, & \text{if $n$ is odd and $d$ is odd, i.e., $n\equiv 3$},\\
3, & \text{if $n$ is even and $d$ is odd, i.e., $n\equiv 2$},
\end{cases}
\end{equation*}
where congruences are modulo~$4$.
\end{theorem}
\end{document}
Algumas notas:
- “MSC” deve estar na posição vertical e ser tratado como um operador;
- mesmo no contexto da fonte em itálico, as variáveis matemáticas devem ser inseridas no modo matemático;
eqnarray
não deve ser usado quandoamsmath
estiver disponível (e deve ser carregado sempre que um documento contiver matemática séria;- use o ambiente adequado, neste caso
equation*
porque você não tem alinhamento.
Responder3
O kernel do LaTeX empresta sua definição de\pmod
\def\pmod#1{%
\allowbreak\mkern18mu({\operator@font mod}\,\,#1)}
(veja ltmath.dtx
, linhas de código 39–40) do TeX simples, no qual se lê
\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
(verO TeXbook, pág. 361); em ambos os casos, o espaço que precede a palavra “mod” tem 1em de largura. Os exemplos de uso dados na pág. 164 deO TeXbook, bem como a resposta ao Exercício 18.4, mostram que Knuth pretendia que essa quantidade de espaço também fosse usada em fórmulas matemáticas em linha. No entanto, o amsmath
pacote modifica a definição acima de tal forma que um espaço mais estreito é utilizado quando a fórmula “não é exibida”:
\newcommand{\pod}[1]{\allowbreak
\if@display\mkern18mu\else\mkern8mu\fi(#1)}
\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
(Veja tambémesta respostaparaEscrevendo mod em problemas de congruência sem espaço inicial, uma pergunta já vinculada dea resposta aceitapara esta pergunta). Como você pode ver, a condição de “não estar em exibição” é detectada através do \if@display
switch.
Meditando sobre essa questão, comecei a me perguntar se isso poderia ser um bug – ou melhor, uma falha de design – no pacote. Talvez uma ideia melhor fosse alterar a quantidade de espaço com o estilo matemático atual, de uma forma semelhante à forma como os símbolos do “grande operador” gostam \sum
ou \int
mudam de tamanho (e, até certo ponto, de forma) entre exibição. e matemática sem exibição. Este comportamento é facilmente alcançado com o patch do \pod
comando (definido pelo amsmath
pacote) que o código a seguir mostra:
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.
\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.
% \usepackage{amsmath} % Required for what follows; but...
\usepackage{mathtools} % ... "mathtools" automatically loads "amsmath".
\makeatletter
\renewcommand*\pod[1]{%
\allowbreak
\mathchoice
{\mkern 18mu}%
{\mkern 8mu}%
{\mkern 8mu}%
{\mkern 8mu}%
(#1)%
}
\makeatother
\newtheorem{thm}{Theorem}
\begin{document}
In-line: \( 5\equiv 1 \pmod 4 \). In display:
\[ 5\equiv 1 \pmod 4 \]
Non-display inside display:
\[
f(x) =
\begin{cases}
4 & \mbox{if $x\equiv 0 \pmod 4$,} \\
x\bmod 4 & \mbox{otherwise.}
\end{cases}
\]
The same thing, but with \texttt{cases*} (requires \textsf{mathtools}):
\[
f(x) =
\begin{cases*}
4 & if $x\equiv 0 \pmod 4$, \\
x\bmod 4 & otherwise.
\end{cases*}
\]
\begin{thm}
All over again.
In-line: \( 5\equiv 1 \pmod 4 \). In display:
\[ 5\equiv 1 \pmod 4 \]
Non-display inside display:
\[
f(x) =
\begin{cases}
4 & \mbox{if $x\equiv 0 \pmod 4$,} \\
x\bmod 4 & \mbox{otherwise.}
\end{cases}
\]
With \texttt{cases*}:
\[
f(x) =
\begin{cases*}
4 & if $x\equiv 0 \pmod 4$, \\
x\bmod 4 & otherwise.
\end{cases*}
\]
\end{thm}
Nonetheless, inside an alignment, say
\begin{align*}
2 &\equiv 9 \pmod 7 \\
4 &\equiv 1 \pmod 3 \mbox{,}
\end{align*}
the output agrees with that of a displayed equation:
\[
5\equiv 1 \pmod 4 \mbox{.}
\]
\end{document}
Esta é a saída que o código acima produz:
Esta modificação poderia ser uma forma elegante e consistente de alcançar o que a questão pede. Se o \mod
comando também for usado, ele também deverá ser modificado de forma semelhante. É claro que não se pode introduzir essas mudanças no código do masmath
pacote sem interromper todos os documentos existentes que utilizam esses recursos…
Adição:
Continuando a refletir sobre esse assunto, pensei que poderia até fazer sentido usar o \pmod
comando em super/subscritos (veja o exemplo abaixo); e neste caso, parece que o espaço antes do parêntese esquerdo deveria ser ainda mais fino.
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.
\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.
% \usepackage{amsmath} % Required for what follows; but...
\usepackage{mathtools} % ... "mathtools" automatically loads "amsmath".
\makeatletter
\renewcommand*\pod[1]{%
\allowbreak
\mathchoice
{\mkern 18mu}%
{\mkern 8mu}%
{\mkern 6mu}% "6mu" matches the space *after* the word "mod"
{\mkern 6mu}%
(#1)%
}
\makeatother
\newtheorem{thm}{Theorem}
\begin{document}
In-line: \( 5\equiv 1 \pmod{4} \). In display:
\[ 5\equiv 1 \pmod{4} \]
Non-display inside display:
\[
f(x) =
\begin{cases}
4 & \mbox{if $x\equiv 0 \pmod{4}$,} \\
x\bmod 4 & \mbox{otherwise.}
\end{cases}
\]
The same thing, but with \texttt{cases*} (requires \textsf{mathtools}):
\[
f(x) =
\begin{cases*}
4 & if $x\equiv 0 \pmod{4}$, \\
x\bmod 4 & otherwise.
\end{cases*}
\]
\begin{thm}
All over again.
In-line: \( 5\equiv 1 \pmod{4} \). In display:
\[ 5\equiv 1 \pmod{4} \]
Non-display inside display:
\[
f(x) =
\begin{cases}
4 & \mbox{if $x\equiv 0 \pmod{4}$,} \\
x\bmod 4 & \mbox{otherwise.}
\end{cases}
\]
With \texttt{cases*}:
\[
f(x) =
\begin{cases*}
4 & if $x\equiv 0 \pmod{4}$, \\
x\bmod 4 & otherwise.
\end{cases*}
\]
\end{thm}
Nonetheless, inside an alignment, say
\begin{align*}
2 &\equiv 9 \pmod{7} \\
4 &\equiv 1 \pmod{3} \mbox{,}
\end{align*}
the output agrees with that of a displayed equation:
\[
5\equiv 1 \pmod{4} \mbox{.}
\]
In super\slash subscripts:
\[
\int_{0}^{3\pi} \sin x\,dx
= -\cos x \biggr|_{0}^{3\pi}
= -\cos x \biggr|_{x\equiv 0 \pmod{2\pi}}^{x\equiv 3\pi \pmod{2\pi}}
= -\cos x \biggr|_{0}^{\pi}
= 1-(-1) = 2
\]
\end{document}
A saída neste segundo caso é
Responder4
Não acho que usar \pmod
entre parênteses pareça tão bom, especialmente se os parênteses externos (texto) estiverem em itálico, então proponho usar \bmod
. Proponho duas formas: com o cases*
ambiente dos mathtools (simpler syntax), and with a standard
casos ,and
eqparbox` para alinhar as condições de módulo:
\documentclass{article}
\usepackage{mathtools}
\usepackage{eqparbox}
\begin{document}
\begin{align*}
MSC(C_n^2) &=
\begin{cases}
1, & \eqparbox{CN}{if $n$ is odd and $d$ is even} (n \equiv 1 \bmod{4}), \\
2, & \eqparbox{CN}{if $n$ is even and $d$ is even\enspace} (n \equiv 0 \bmod{4}), \\
3, & \eqparbox{CN}{ if $n$ is odd and $d$ is odd} (n \equiv 3 \bmod{4}), \\
3, & \eqparbox{CN}{ if $n$ is even and $d$ is odd } (n \equiv 2 \bmod{4}).
\end{cases}
\end{align*}
\begin{align*}
MSC(C_n^2) &=
\begin{cases*}
1, & if $n$ is odd and $d$ is even ($n \equiv 1 \bmod{4}$), \\
2, & if $n$ is even and $d$ is even ($n \equiv 0 \bmod{4}$), \\
3, & if $n$ is odd and $d$ is odd ($n \equiv 3 \bmod{4}$), \\
3, & if $n$ is even and $d$ is odd ($n \equiv 2 \bmod{4}$).
\end{cases*}
\end{align*}
\end{document}