如何为定理环境设置 enumitem?

如何为定理环境设置 enumitem?

我目前有以下enumitem定理模式:

\begin{theorem}
text
\begin{enumerate}[label={(\arabic*)}]
\item text 1
\item text 2
\end{enumerate}
\end{theorem}

得出

图像

有没有办法让这个标签自动出现enumerate在环境中嵌套的每个环境中theorem,这样我就不需要每次都输入标签了?更具体地说,有没有办法在特定环境中为 制作预设?如果我可以在环境中重现相同的“缩进”,则enumerate没有必要使用。enumitemenumeratetheorem

答案1

enumerate可以在定理环境开始时使用\AtBeginEnvironmentfrometoolbox和在定理环境内部设置环境的标签选项\setlist[enumerate]

这不会改变enumerate定理之外环境的编号方式!

另一种方法是使用enumtheo带有和的特殊列表,\newlist对的设置与enumtheoenumerate和应用的设置相同enumtheo,而不是enumerate在定理中(我使用了另一个定理环境只是为了防止enumerate和之间的干扰enumtheo

在此处输入图片描述

\documentclass{article}

\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{etoolbox}
\newtheorem{theorem}{Theorem}

\newtheorem{othertheorem}{Other Theorem}

\newlist{enumtheo}{enumerate}{1}
\setlist[enumtheo]{label={(\arabic*)}}


\AtBeginEnvironment{theorem}{%
  \setlist[enumerate]{label={(\arabic*)}}
}

\begin{document}
\begin{theorem}
text
\begin{enumerate}
\item text 1
\item text 2
\end{enumerate}
\end{theorem}

\begin{enumerate}
  \item Foo
\end{enumerate}

\begin{theorem}
Just another theorem
\begin{enumerate}
\item text 1
\item text 2
\item text 3
\end{enumerate}
\end{theorem}

\begin{othertheorem}
Yet another theorem
\begin{enumtheo}
\item text 1
\item text 2
\item text 3
\end{enumtheo}
\end{othertheorem}


\end{document}

更改为运行\foreach不止一个定理类环境的循环

\documentclass{article}

\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{etoolbox}

\usepackage{pgffor}
\newtheorem{theorem}{Theorem}


\newtheorem{foo}{Foo}

\newtheorem{foobar}{Foobar}


\foreach \theoremenv in {theorem,foo,foobar} {
  \AtBeginEnvironment{\theoremenv}{%
    \setlist[enumerate]{label={(\arabic*)}}
  }
}

\begin{document}
\begin{theorem}
Some text
\begin{enumerate}
\item text 1
\item text 2
\end{enumerate}
\end{theorem}

\begin{enumerate}
\item Outer enumerate
\end{enumerate}

\begin{foo}
The foo
\begin{enumerate}
\item text 1
\item text 2
\end{enumerate}
\end{foo}

\begin{foobar}
Yet another theorem named foobar
\begin{enumerate}
\item text 1
\item text 2
\item text 3
\end{enumerate}
\end{foobar}


\end{document}

相关内容