我正在尝试继续对 beamer 中枚举环境中的示例进行编号。例如,我希望一张幻灯片展示
- 福
- 酒吧
下一张幻灯片
- 压缩
- 亚达
到目前为止,我的策略是定义一个计数器,该计数器在第一个环境结束时保存枚举计数器,然后可以查询以在第二个枚举环境开始时设置枚举计数器。(这基本上也是在以下位置找到的提议:如何在 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),而完全显露的页面有错误的编号。图片如下:
在其中一张幻灯片上
在以下一个
答案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}
答案2
尝试在新列表中重置枚举计数器,例如\setcounter{enumi}{5}
以 6 开始。
答案3
我发现一个可行的方法是使用方括号itemize
并将数字放在方括号中。例如
\begin{itemize}
\item[1] foo
\item[2] bar
\end{itemize}
然后itemize
在下一张幻灯片上开始另一个,并在方括号中输入下一个数字。