是否可以为使用 allowframebreaks 创建的帧定义 transduration?

是否可以为使用 allowframebreaks 创建的帧定义 transduration?

有没有办法为整个书目定义转换时间?以下方法不起作用,只有第一个创建的框架具有预期的行为。

\begin{frame}[allowframebreaks]{Bibliography}
  \transduration{2}
  \bibliographystyle{plainnat}
  \bibliography{literature}
\end{frame}

答案1

作为Mico 指出\transduration旨在用于单帧叠加,而不是多帧之间的叠加。它会在每个新帧的开头重置,因此在使用 分割的帧上使用它时没有效果allowframebreaks

为了解决这个问题,\transduration必须在每一帧上重复。这可以通过将其添加到background canvas模板中来实现:

{
\addtobeamertemplate{background canvas}{\transduration{2}}{}
\begin{frame}[allowframebreaks]{Bibliography}
  \bibliographystyle{plainnat}
  \bibliography{literature}
\end{frame}
}

花括号是为了保持重新定义在本地,否则参考书目之后的每一帧也只会显示两秒钟。

示例演示

\documentclass{beamer}
\usepackage{lipsum}
\begin{document}
\begin{frame}
  My \uncover<2>{Presentation}
\end{frame}
{
\addtobeamertemplate{background canvas}{\transduration{2}}{}
\begin{frame}[allowframebreaks]{Bibliography}
  \lipsum
\end{frame}
}
\begin{frame}[allowframebreaks]
  \lipsum
\end{frame}
\end{document}

(这lipsum包用于生成虚拟文本,以制作一个独立的示例。\lipsum当然,您可以将其删除并替换为您自己的参考书目。

答案2

我认为,对你的问题的简短回答是“不”,这很遗憾。

相同答案的稍长版本:\transduration可以应用于框架的叠加层;如果未指定叠加层,则宏\transduration将应用于整个框架。请注意,没有规定将宏应用于连续的框架。现在,如果您使用该allowframebreaks选项将一些不适合单个框架的较长材料(例如参考书目)分解为几个单独的框架,则 beamer 会创建单独的框架,而不是同一框架的单独叠加层。beamer 包的用户指南在第 59 页明确指出了这一事实:“您可以使用该选项allowframebreaks将 [框架环境的材料] 拆分到多张幻灯片中,但您不能使用叠加层。” 而且由于您不能使用叠加层,因此该\transduration命令无法实现您想要它执行的操作。

相关内容