lampor pf2.sty 并隐藏/显示嵌套枚举环境的部分

lampor pf2.sty 并隐藏/显示嵌套枚举环境的部分

我目前正在熟悉 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

像这样

enter image description here

\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}

相关内容