答案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}