![如何为定理环境设置 enumitem?](https://linux22.com/image/369996/%E5%A6%82%E4%BD%95%E4%B8%BA%E5%AE%9A%E7%90%86%E7%8E%AF%E5%A2%83%E8%AE%BE%E7%BD%AE%20enumitem%EF%BC%9F.png)
答案1
enumerate
可以在定理环境开始时使用\AtBeginEnvironment
frometoolbox
和在定理环境内部设置环境的标签选项\setlist[enumerate]
。
这不会改变enumerate
定理之外环境的编号方式!
另一种方法是使用enumtheo
带有和的特殊列表,\newlist
对的设置与enumtheo
对enumerate
和应用的设置相同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}