使用 `\setcounter{beamerpauses}` 和 `\pause` 命令进行叠加同步

使用 `\setcounter{beamerpauses}` 和 `\pause` 命令进行叠加同步

我对这个出色的beamer班级感到非常新鲜。

我正在尝试通过重置计数器来创建同步覆盖beamerpauses

我不明白为什么\pause命令不能顺利地执行这种做法。

我遇到了以下解决方法, \uncover<+>{} % 或 \only<+>{} 或 ... ?

但我更想知道暂停到底是怎么回事!

我的例子

(取消注释第 15 行\pause以断开连接)

\documentclass[11pt]{beamer}
\usepackage{tikz}
\newcommand\Number{3}

\begin{document}
\begin{frame}
  \frametitle{Why does this break when commenting the pause ?}

  \begin{columns}[t]
    \column{.48\textwidth}
      \foreach \k in {1,...,\Number}%
      {%
        \only<+>{Left overlay \k}%
      }
      %\pause         %%%%%%%%%%%%% Why does this pause break everything ?
      %\uncover<+>{}  %%%%%%%%%%%%% but this works ...!
    \column{.48\textwidth}
      \setcounter{beamerpauses}{1}
      \foreach \k in {1,...,\Number}%
      {%
        \only<+>{Right overlay \k}%
      }
  \end{columns}
\end{frame}
\end{document}

干杯,

答案1

总的来说,\pause这是一个非常粗鲁的命令,对于所有需要更精细控制的事情,诸如、等命令\uncover<>{}效果\only<>{}\visible<>{}更好 [正如您自己已经注意到的那样]。

据我理解,您的代码不起作用,\pause因为它在读取第二列之前添加了另一个覆盖层——因此在前三个覆盖层上,Beamer 不会“看到”第二列,只知道它应该保留多少空间。之后,它会尝试添加第二列,但由于其上的所有文本仅显示在前三个覆盖层上,因此您会得到一个空白页。您可以在以下示例中看到这一点:

\documentclass[11pt]{beamer}
\usepackage{tikz}
\newcommand\Number{3}

\begin{document}
\begin{frame}
  \frametitle{Why does this break when commenting the pause ?}

  \begin{columns}[t]
    \column{.48\textwidth}
      \foreach \k in {1,...,\Number}%
      {%
        \only<+>{Left overlay \k}%
      }
      \pause         %%%%%%%%%%%%% Why does this pause break everything ?
      %\uncover<+>{}  %%%%%%%%%%%%% but this works ...!
    \column{.48\textwidth}
      \setcounter{beamerpauses}{1}
      \foreach \k in {1,...,\Number}%
      {%
        \only<+>{Right overlay \k}%
      }
      \only<5>{overlay 5}
  \end{columns}
\end{frame}
\end{document}

相关内容