在 Beamer 中继续枚举计数器

在 Beamer 中继续枚举计数器

我正在尝试继续对 beamer 中枚举环境中的示例进行编号。例如,我希望一张幻灯片展示

  1. 酒吧

下一张幻灯片

  1. 压缩
  2. 亚达

到目前为止,我的策略是定义一个计数器,该计数器在第一个环境结束时保存枚举计数器,然后可以查询以在第二个枚举环境开始时设置枚举计数器。(这基本上也是在以下位置找到的提议:如何在 Beamer 中继续枚举跨列

只要我不尝试按顺序发现幻灯片的元素,这种方法就很好用。当然,问题是,随着组成幻灯片的每个 pdf 页面的创建,计数器都会增加。这是一个 MWE。

\documentclass{beamer}

\setbeamercovered{highly dynamic}

\newcounter{saveenumi}
\newcommand{\seti}{\setcounter{saveenumi}{\value{enumi}}}
\newcommand{\conti}{\setcounter{enumi}{\value{saveenumi}}}


\begin{document}

\begin{frame}[<+->]
  \begin{enumerate}
  \item foo
  \item bar%
    \seti
  \end{enumerate}
\end{frame}

\begin{frame}[<+->]
  \begin{enumerate}
    \conti
  \item zip
  \item yadda%
    \seti
  \end{enumerate}
\end{frame}

\end{document}

随着第二张幻灯片逐渐显露(生成的 PDF 的第 3 页和第 4 页),枚举环境开头的计数器每次都会前进。因此,PDF 的第 3 页有正确的编号,分别为 (3) 和 (4),而完全显露的页面有错误的编号。图片如下:

在其中一张幻灯片上

Page3

在以下一个

Page4

答案1

用于\resetcounteronoverlays确保您的计数器在帧的后续幻灯片上自动重置:

\resetcounteronoverlays{saveenumi}

使用您的代码的完整示例:

\documentclass{beamer}
\setbeamercovered{highly dynamic}

\newcounter{saveenumi}
\newcommand{\seti}{\setcounter{saveenumi}{\value{enumi}}}
\newcommand{\conti}{\setcounter{enumi}{\value{saveenumi}}}

\resetcounteronoverlays{saveenumi}

\begin{document}

\begin{frame}[<+->]
  \begin{enumerate}
  \item foo
  \item bar%
    \seti
  \end{enumerate}
\end{frame}

\begin{frame}[<+->]
  \begin{enumerate}
    \conti
  \item zip
  \item yadda%
    \seti
  \end{enumerate}
\end{frame}

\end{document}

enter image description here

enter image description here

答案2

尝试在新列表中重置枚举计数器,例如\setcounter{enumi}{5}以 6 开始。

答案3

我发现一个可行的方法是使用方括号itemize并将数字放在方括号中。例如

\begin{itemize}
    \item[1] foo
    \item[2] bar
\end{itemize}

然后itemize在下一张幻灯片上开始另一个,并在方括号中输入下一个数字。

相关内容