在 Latex beamer 中,我创建了一个讲义仅用于制作讲义的幻灯片环境(即不会显示在查看器上)。它看起来像这样:
\newenvironment{handout}[2][1]{
\begin{frame}<handout>[environment=handout,allowframebreaks]
}
{\end{frame}}
上述关键点是:1) <handout> 确保它仅在讲义上可见 2) allowframebreaks 允许讲义跨越多张幻灯片。
到目前为止还好。唯一的问题是帧数计数器(用于显示页码)每张幻灯片都会增加,这意味着讲义材料和演示文稿中显示的材料不同步。所以我想冻结计数器。
我尝试简单地将帧号计数器的当前值备份到前环境定义的一部分,并重置为后部分。不过现在确实起作用了。如下所示:
\newenvironment{handout}[2][1]{
\begin{frame}<handout>[environment=handout,allowframebreaks]
\setcounter{backupcounter}{\value{framenumber}}
}
{\end{frame}\setcounter{framenumber}{\value{backupcounter}}}
所以问题基本上是,我如何避免计数器在这些幻灯片上递增?
答案1
如果你在开始新帧之前保存帧号的值(这会使它增加),那么你的解决方案对我有用,就像
\newenvironment{handout}{
\setcounter{backupcounter}{\value{framenumber}}
\begin{frame}<handout>[environment=handout,allowframebreaks]
}
{\end{frame}\setcounter{framenumber}{\value{backupcounter}}}