\pause 不会在 containsverbatim 框架中生成额外的幻灯片

\pause 不会在 containsverbatim 框架中生成额外的幻灯片

似乎[containsverbatim]当将此选项应用于帧时,如果希望在帧中插入文本动画,则 Beamer 不会生成中间幻灯片。结果只会打印动画的第一步。

示例代码:

\documentclass{beamer}
\begin{document}
 \begin{frame}[containsverbatim]
  \frametitle{Tests anim}
  blah
  \pause
  blah²
 \end{frame}
\end{document}

我的问题分为两部分:

  1. 这是一个错误还是我遗漏了什么?
  2. 如果它是一个错误,有解决方法吗?

答案1

排版具有逐字内容的框架的常用方法是选项fragile,它与覆盖配合使用效果很好:

\documentclass{beamer}
\begin{document}

\begin{frame}[fragile]
  \frametitle{Tests anim}
  blah
  \pause
  blah
\end{frame}

\end{document}

我几乎不记得这个containsverbatim选项,我的 Beamer 手册 (v3.10) 也没有提到它。我找到的唯一参考资料是beamer 类的 ChangeLog

2004-02-18 Till Tantau,版本 2.00

Added:

- Added a containsverbatim option to the \frame command. Should be
    used instead of the old \frame<all:1> (which is, however, still
    supported). 

因此观察到的效果不是一个错误,而是一个功能 :-),就像\frame<all:1>beamer 中的语法一样,用于抑制除框架中的第一张幻灯片之外的所有幻灯片。选项名称containsverbatim 似乎非常具有误导性;但是,考虑到 beamer 覆盖机制的工作方式(通过多次扫描框架内容,这与逐字环境配合使用效果不佳),我猜这只是排版逐字内容的方式。

后来Till又添加了更强大的脆弱选项:

2004-10-11 直到坦陶

Version 3.01:

Added:
- Option "fragile" that allows the use of
  overlays together with verbatims. *Extremely* useful.

fragile选项通过将框架代码外部化为自己的文件(后缀为.vrb)来实现,而覆盖机制则通过多次读取此文件来实现,这与逐字内容配合得很好。当然,这比方法慢得多containsverbatim,因此保留并记录在附加(且更易于理解)选项名称下fragile=singleslide。第 8.1 节(第 61 页)beamer 用户指南详细解释。

相关内容