我目前正在熟悉 Leslie Lampors pf2.sty (http://lamport.azurewebsites.net/latex/latex.html)。
不幸的是它不在 CTAN 上。
它旨在鼓励某种证明风格,Lamport 称之为分层证明。
证明看起来就像嵌套的枚举环境
pf2.sty 包本身不太舒服,它的大部分功能可以通过使用 enumitem 包来实现。
但是有一个有用的功能我不知道如何在香草乳胶中实现,即隐藏/显示嵌套证明的部分。
以下是一个例子(假设你有 pf.sty
\documentclass[12pt]{article}
\usepackage{pf2}
\begin{document}
\pfhidelevel{1}
\begin{proof}
\step{item:test-lamport2:1b}{Text of step 1.}
\begin{proof}
\step{label-1.1}{Text of substep 1}
\begin{proof}
\pf\ Paragraph proof using results in \stepref{label-1.1} .~\qed
\end{proof}
\step{label-2.1}{Text of substep 2}
\end{proof}
\step{label-2.2}{Text of step 2}
\end{proof}
\end{document}
因此编译后只显示步骤 1 和 2 的文本,如果我选择 \pfhidelevel{2},那么还会显示下一级等等。
现在来看看我的 enumitem 解决方案
\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
\setenumerate[1]{label=$\langle$1$\rangle$\arabic*., ref=$\langle$1$\rangle$\arabic*}
\setenumerate[2]{label=$\langle$2$\rangle$\arabic*., ref=$\langle$1$\rangle$ref=\arabic*}
\begin{document}
\begin{enumerate}
\item \label{item:test-lamport2:1b}{Text of step 1.}
\begin{enumerate}
\item \label{item:solution-enumitem:1} Text of substep 1
\begin{enumerate}
\item[\textsc{PROOF}] Paragraph proof using results in
\ref{item:solution-enumitem:1}. $\blacksquare$
\end{enumerate}
\item \label{label-2.1}{Text of substep 2}
\end{enumerate}
\item \label{label-2.2}{Text of step 2}
\end{enumerate}
\end{document}
乌韦·布劳尔
答案1
像这样
\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
\setenumerate[1]{label=$\langle$1$\rangle$\arabic*., ref=$\langle$1$\rangle$\arabic*}
\setenumerate[2]{label=$\langle$2$\rangle$\arabic*., ref=$\langle$1$\rangle$ref=\arabic*}
\newcount\pflevel
\newcommand\pfhidelevel[1]{\pflevel=#1\relax}
\let\zzenumerate\enumerate
\makeatletter
\def\enumerate{%
\ifnum\pflevel=\@enumdepth
\setbox0\vbox\bgroup\begingroup\aftergroup\egroup\aftergroup\endgroup
\fi
\zzenumerate}
\begin{document}
00000
\begin{enumerate}
\item \label{item:test-lamport2:1b}{Text of step 1.}
\begin{enumerate}
\item \label{item:solution-enumitem:1} Text of substep 1
\begin{enumerate}
\item[\textsc{PROOF}] Paragraph proof using results in
\ref{item:solution-enumitem:1}. $\blacksquare$
\end{enumerate}
\item \label{label-2.1}{Text of substep 2}
\end{enumerate}
\item \label{label-2.2}{Text of step 2}
\end{enumerate}
111111
\pfhidelevel{1}
\begin{enumerate}
\item \label{item:test-lamport2:1b}{Text of step 1.}
\begin{enumerate}
\item \label{item:solution-enumitem:1} Text of substep 1
\begin{enumerate}
\item[\textsc{PROOF}] Paragraph proof using results in
\ref{item:solution-enumitem:1}. $\blacksquare$
\end{enumerate}
\item \label{label-2.1}{Text of substep 2}
\end{enumerate}
\item \label{label-2.2}{Text of step 2}
\end{enumerate}
2222222
\pfhidelevel{2}
\begin{enumerate}
\item \label{item:test-lamport2:1b}{Text of step 1.}
\begin{enumerate}
\item \label{item:solution-enumitem:1} Text of substep 1
\begin{enumerate}
\item[\textsc{PROOF}] Paragraph proof using results in
\ref{item:solution-enumitem:1}. $\blacksquare$
\end{enumerate}
\item \label{label-2.1}{Text of substep 2}
\end{enumerate}
\item \label{label-2.2}{Text of step 2}
\end{enumerate}
\end{document}