So reduzieren Sie den Abstand zwischen $n\equiv 1\pmod{4}$

So reduzieren Sie den Abstand zwischen $n\equiv 1\pmod{4}$

Ich habe den folgenden Code ausgeführt und beim Verwenden der \pmodFunktion den folgenden riesigen Speicherplatz erhalten. Auf dem Papier sieht es seltsam aus. Kann jemand vorschlagen, wie der Speicherplatz reduziert werden kann?

\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*}

Bildbeschreibung hier eingeben

Antwort1

GefolgtSchreiben von Mod bei Kongruenzproblemen ohne führendes Leerzeichen, Verwendung \Modwie unten definiert:

Bildbeschreibung hier eingeben

\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}

Antwort2

Der Kursivschrift nach zu urteilen, handelt es sich bei der Anzeige um eine Theorem-Aussage.

Ich würde die Klammern und die Wiederholung gemeinsamer Teile vermeiden:

\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}

Einige Notizen:

  1. „MSC“ sollte aufrecht stehen und wie ein Betreiber behandelt werden;
  2. auch im Kontext von Kursivschrift sollten mathematische Variablen im Mathematikmodus eingegeben werden;
  3. eqnarraydarf nicht verwendet werden, wenn amsmathverfügbar ist (und es sollte immer dann geladen werden, wenn ein Dokument ernsthafte Mathematik enthält;
  4. Verwenden Sie in diesem Fall die richtige Umgebung, equation*weil Sie keine Ausrichtung haben.

Bildbeschreibung hier eingeben

Antwort3

Der LaTeX-Kernel übernimmt seine Definition von\pmod

\def\pmod#1{%
  \allowbreak\mkern18mu({\operator@font mod}\,\,#1)}

(siehe ltmath.dtx, Codezeilen 39–40) aus einfachem TeX, in dem es heißt

\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}

(sehenDas TeXbook, S. 361); in beiden Fällen ist der Abstand vor dem Wort „mod“ 1em breit. Die Anwendungsbeispiele auf S. 164 vonDas TeXbooksowie die Antwort auf Übung 18.4 zeigen, dass Knuth beabsichtigte, dass dieser Abstand auch in Inline-Formeln verwendet werden sollte. Dennoch amsmathmodifiziert das Paket die obige Definition so, dass ein kleinerer Abstand verwendet wird, wenn die Formel „nicht angezeigt“ wird:

\newcommand{\pod}[1]{\allowbreak
  \if@display\mkern18mu\else\mkern8mu\fi(#1)}
\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}

(siehe auchdiese AntwortZuSchreiben von Mod bei Kongruenzproblemen ohne führendes Leerzeichen, eine Frage, die bereits verlinkt wurde vondie akzeptierte Antwortauf diese Frage). Wie man sieht, wird der Zustand „nicht im Display“ über den \if@displaySchalter erkannt.

Als ich über diese Frage nachdachte, begann ich mich zu fragen, ob dies ein Fehler – oder eher ein Designfehler – im Paket sein könnte. Vielleicht wäre es eine bessere Idee, die Größe des Platzes mit dem aktuellen Mathematikstil zu ändern, ähnlich wie „große Operator“-Symbole \sumihre \intGröße (und in gewissem Maße auch ihre Form) zwischen angezeigter und nicht angezeigter Mathematik ändern. Dieses Verhalten lässt sich leicht mit dem Patch für den \podBefehl (definiert durch das amsmathPaket) erreichen, den der folgende Code zeigt:

% 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}

Dies ist die Ausgabe, die der obige Code erzeugt:

Ausgabe des Codes

Diese Änderung könnte eine elegante und konsistente Möglichkeit sein, das zu erreichen, was in der Frage verlangt wird. Wenn der \modBefehl ebenfalls verwendet wird, sollte er ebenfalls entsprechend geändert werden. Natürlich kann man diese Änderungen nicht in den Code des masmathPakets einführen, ohne alle vorhandenen Dokumente zu stören, die diese Funktionen verwenden …


Zusatz: Als ich weiter über dieses Problem nachdachte, dachte ich, dass es sogar sinnvoll sein könnte, den \pmodBefehl in Hoch-/Tiefstellungen zu verwenden (siehe Beispiel unten). In diesem Fall scheint es, dass der Abstand vor der linken Klammer noch schmaler gemacht werden sollte.

% 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}

Die Ausgabe in diesem zweiten Fall ist

Ausgabe des zweiten Codebeispiels

Antwort4

Ich finde nicht, dass die Verwendung \pmodvon innerhalb von Klammern so schön aussieht, insbesondere wenn die äußeren (Text-)Klammern kursiv sind, daher schlage ich vor, \bmodstattdessen zu verwenden. Ich schlage zwei Möglichkeiten vor: mit der cases*Umgebung aus mathtools (simpler syntax), and with a standardFällen ,andeqparbox`, um die Modulbedingungen auszurichten:

\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} 

Bildbeschreibung hier eingeben

verwandte Informationen