如何为“allowframebreaks”组中的所有幻灯片设置相同的幻灯片编号?

如何为“allowframebreaks”组中的所有幻灯片设置相同的幻灯片编号?

[framebreaks]在 Beamer 演示文稿中有框架。我希望那里生成的所有幻灯片都具有相同的幻灯片编号,例如,如果我有一段listing或几段跨越两张或更多幻灯片的文本,但在同一帧内,我希望防止幻灯片编号增加,直到我开始新的帧。在下面的 MWE 中,“幻灯片 1”的前 3 张 PDF 幻灯片的编号应为 1/2,而“幻灯片 2”的编号应为 2/2。使用\addtocounter{framenumber}{-1}\setcounter{framenumber}{x}只是从当前-1 或 x 开始计数。我知道这个帖子,但除非我遗漏了什么东西,否则我不知道如何才能使那里的材料适应我现在的问题。

平均能量损失

\documentclass{beamer}
  \mode<presentation>

\usetheme{Boadilla}
\usepackage{lipsum}

\begin{document}

% "Slide 1"
\begin{frame}[allowframebreaks]
\begin{itemize}
 \item Foo 
 \item Bar
 \item Baz
\end{itemize}
\lipsum[1-5]
\end{frame}

% "Slide 2"
\begin{frame}
test
\end{frame}

\end{document}

答案1

这可以是一个解决方案。

我们使用一个新的计数器multipleslide来保存计数器的当前值framenumber

\newcounter{multipleslide}

我们还定义了两个新的命令\multipleframe\restoreframe,分别插入到framewith之前和之后。allowframebreaks

\makeatletter%
\newcommand{\multipleframe}{%
\setcounter{multipleslide}{\value{framenumber}}
\stepcounter{multipleslide}
\patchcmd{\beamer@@tmpl@footline}% <cmd>
  {\insertframenumber}% <search>
  {\themultipleslide}% <replace>
  {}% <success>
  {}% <failure>
}
\newcommand{\restoreframe}{%
\patchcmd{\beamer@@tmpl@footline}% <cmd>
  {\themultipleslide}% <search>
  {\insertframenumber}% <replace>
  {}% <success>
  {}% <failure>
\setcounter{framenumber}{\value{multipleslide}}%
}
\makeatother%

第一个负责用相同的数字对所有幻灯片进行编号,后者恢复正常编号。

以下 MWE 更好地解释了它的工作原理:

\documentclass{beamer}
  \mode<presentation>

\usetheme{Boadilla}

\usepackage{etoolbox}
\usepackage{lipsum}

\newcounter{multipleslide}

\makeatletter%
\newcommand{\multipleframe}{%
\setcounter{multipleslide}{\value{framenumber}}
\stepcounter{multipleslide}
\patchcmd{\beamer@@tmpl@footline}% <cmd>
  {\insertframenumber}% <search>
  {\themultipleslide}% <replace>
  {}% <success>
  {}% <failure>
}
\newcommand{\restoreframe}{%
\patchcmd{\beamer@@tmpl@footline}% <cmd>
  {\themultipleslide}% <search>
  {\insertframenumber}% <replace>
  {}% <success>
  {}% <failure>
\setcounter{framenumber}{\value{multipleslide}}%
}
\makeatother%

\begin{document}

% "Slide 1"
\multipleframe  %<------------------------------------
\begin{frame}[allowframebreaks]
\begin{itemize}
 \item Foo
 \item Bar
 \item Baz
\end{itemize}
\lipsum[1-5]
\end{frame}
\restoreframe  %<------------------------------------

% "Slide 2"
\begin{frame}
test
\end{frame}

\end{document} 

这是输出

在此处输入图片描述

相关内容