我[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
,分别插入到frame
with之前和之后。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}
这是输出