Como recuar o item no ambiente de teorema do pacote ams-gsm

Como recuar o item no ambiente de teorema do pacote ams-gsm

Eu uso o pacote gsm para escrever meu arquivo latex. Normalmente, no ambiente do teorema, os itens são recuados em um pequeno espaço da margem esquerda. Quero recuar tudo para a margem esquerda, como na imagem a seguir:

insira a descrição da imagem aqui

Aqui está um exemplo mínimo de trabalho:

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

Por favor me ajude.

Responder1

Isso realmente não tem nada a ver com o theoremambiente fornecido pela classe de documento por meio do \newtheorem. Em vez disso, é o comportamento padrão de uma lista (incluindo enumeratee itemize). Você pode modificar o recuo usando alguns dosenumiteminterfaces. Abaixo, configurei leftmarginpara ser calculado automaticamente usando *, o que resulta em uma configuração alinhada à esquerda:

insira a descrição da imagem aqui

\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]altera o comportamento padrão enumerateno nível do documento, em todos os níveis de aninhamento. Se desejar uma mudança mais localizada, você pode fornecer um argumento opcional ao ambiente usando a seguinte interface:

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

Responder2

classes de documentos baseadas em amsbook(incluindo gsm-l) configuram o recuo para ser muito grande, conforme observado aqui.

o mecanismo usado no ams para diminuí-la é sobrescrever as configurações de margem padrão, o que deve ser feito \AtBeginDocument, pois é assim que elas são definidas inicialmente:

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

uma vez que isso não está configurado como uma definição de comando, não é facilmente corrigido por técnicas definidas como etoolboxeu o entendo.

informação relacionada