So rücken Sie das Element in der Theoremumgebung des ams-gsm-Pakets ein

So rücken Sie das Element in der Theoremumgebung des ams-gsm-Pakets ein

Ich verwende das GSM-Paket, um meine Latex-Datei zu schreiben. Normalerweise werden die Elemente in der Theorem-Umgebung ein kleines Stück vom linken Rand eingerückt. Ich möchte alles bis zum linken Rand einrücken, wie im folgenden Bild:

Bildbeschreibung hier eingeben

Hier ist ein minimales funktionierendes Beispiel:

\documentclass{gsm-l}
\usepackage{amsmath}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem} This is the theorem.
\begin{enumerate}
\item The first item
\item The second item
\item Are they indented as my purpose?
\end{enumerate}
\end{theorem}
\end{document}

Bitte hilf mir.

Antwort1

Dies hat eigentlich nichts mit der Umgebung zu tun, theoremdie von der Dokumentklasse über bereitgestellt wird \newtheorem. Stattdessen ist es das Standardverhalten einer Liste (einschließlich enumerateund itemize). Sie können die Einrückung mithilfe einiger der folgenden ändern:enumitem's-Schnittstellen. Unten habe ich so eingestellt, leftmargindass automatisch mit berechnet wird *, was zu einer linksbündigen Einstellung führt:

Bildbeschreibung hier eingeben

\documentclass{gsm-l}
\usepackage{amsmath,enumitem}% http://ctan.org/pkg/{amsmath,enumitem}
\setlist[enumerate]{leftmargin=*}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem} This is the theorem.
  \begin{enumerate}
    \item The first item
    \item The second item
    \item The third item that is a tad longer and should span more than 
      a single line, and naturally flow to a second line.
  \end{enumerate}
\end{theorem}
\end{document}

\setlist[enumerate]ändert das Standardverhalten enumerateauf Dokumentebene über alle Verschachtelungsebenen hinweg. Wenn Sie eine stärker lokalisierte Änderung wünschen, können Sie der Umgebung stattdessen mithilfe der folgenden Schnittstelle ein optionales Argument übergeben:

\begin{enumerate}[leftmargin=*]
  ...
\end{enumerate}

Antwort2

Dokumentklassen, die auf amsbook(einschließlich gsm-l) basieren, richten die Einrückung zu groß ein, wie hier zu beobachten ist.

Der Mechanismus, der bei ams zum Verringern verwendet wird, besteht darin, die Standard-Randeinstellungen zu überschreiben, was getan werden muss \AtBeginDocument, da sie ursprünglich so definiert wurden:

\AtBeginDocument{%
  \labelsep=5pt\relax
  \setcounter{enumi}{13}\setcounter{enumii}{13}%
  \setcounter{enumiii}{13}\setcounter{enumiv}{13}%
  \settowidth\leftmargini{\labelenumi\hskip\labelsep}%
%%  \advance\leftmargini by \normalparindent % this is the culprit
  \settowidth\leftmarginii{\labelenumii\hskip\labelsep}%
  \settowidth\leftmarginiii{\labelenumiii\hskip\labelsep}%
  \settowidth\leftmarginiv{\labelenumiv\hskip\labelsep}%
  \setcounter{enumi}{0}\setcounter{enumii}{0}%
  \setcounter{enumiii}{0}\setcounter{enumiv}{0}%
  \leftmarginv=10pt  \leftmarginvi=\leftmarginv
  \leftmargin=\leftmargini
  \labelwidth=\leftmargini \advance\labelwidth-\labelsep
  \@listi}

da dies nicht als Befehlsdefinition eingerichtet ist, kann es, etoolboxsoweit ich es verstehe, nicht ohne Weiteres durch die darin definierten Techniken gepatcht werden.

verwandte Informationen