两年前,用户 egreg 发布了一个很好的解决方案,
enumitem:使用变量在本地打开和关闭标签设置? 看起来像这样
\usepackage{enumitem}
\makeatletter
\newenvironment{lamport}{%
\setenumerate{
label=$\langle$\the\@enumdepth$\rangle$\arabic*.,
ref=$\langle$\the\@enumdepth$\rangle$\arabic*,
nosep
}
}{}
\makeatother
可以模仿 Lamport 证明风格
https://lamport.azurewebsites.net/pubs/proof.pdf http://lamport.azurewebsites.net/latex/pf2.pdf http://lamport.azurewebsites.net/latex/latex.html
但是它只允许 4 个嵌套级别(这是 LaTeX 的默认设置)
因此下面的例子不起作用:
\begin{lamport}
\begin{enumerate}
\item \label{item:nest2:1}
The theorem follows from Lemma 1\\
\textsc{Proof of Lemma 1:}
\begin{enumerate}
\item \label{item:nest2:2}
Lemma 1 follows from Lemma 2\\
\textsc{Proof of Lemma 2:}
\begin{enumerate}
\item \label{item:nest2:4}
Lemma 2 follows from Lemma 3\\
\textsc{Proof of Lemma 3:}
\begin{enumerate}
\item \label{item:nest2:5}
Lemma 3 follows from Lemma 4\\
\textsc{Proof of Lemma 4}
\begin{enumerate}
\item \label{item:nest2:6}
Lemma 4 follows from Lemma 5
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{lamport}
简而言之,如何将嵌套级别增强到至少 10 级(这是否是个好主意,是另一回事,但我宁愿有这种可能性,如果需要的话就不使用它
感谢 Uwe Brauer
答案1
只需添加\renewlist{enumerate}{enumerate}{<depth>}
到定义中。这里我选择了 9。另外,请注意,\setenumerate
(和\setitemize
和\setdescription
) 已被弃用,取而代之的是\setlist[<envname>]
。
\documentclass{article}
\usepackage{enumitem}
\makeatletter
\newenvironment{lamport}{%
\renewlist{enumerate}{enumerate}{9}
\setlist[enumerate]{
label=$\langle$\the\@enumdepth$\rangle$\arabic*.,
ref=$\langle$\the\@enumdepth$\rangle$\arabic*,
nosep
}
}{}
\makeatother
\begin{document}
\begin{lamport}
\begin{enumerate}
\item \label{item:nest2:1}
The theorem follows from Lemma 1\\
\textsc{Proof of Lemma 1:}
\begin{enumerate}
\item \label{item:nest2:2}
Lemma 1 follows from Lemma 2\\
\textsc{Proof of Lemma 2:}
\begin{enumerate}
\item \label{item:nest2:4}
Lemma 2 follows from Lemma 3\\
\textsc{Proof of Lemma 3:}
\begin{enumerate}
\item \label{item:nest2:5}
Lemma 3 follows from Lemma 4\\
\textsc{Proof of Lemma 4:}
\begin{enumerate}
\item \label{item:nest2:6}
Lemma 4 follows from Lemma 5\\
\textsc{Proof of Lemma 5:}
\begin{enumerate}
\item \label{item:nest2:7}
Lemma 5 follows from Lemma 6\\
\textsc{Proof of Lemma 6:}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{lamport}
\end{document}