投影仪对齐时出现 \pause 问题

投影仪对齐时出现 \pause 问题

我有以下代码,(编辑:) 现在没有了aligned

\documentclass{beamer}
\mode<presentation> { \setbeamercovered{transparent} }

\begin{document}
\begin{frame}
\[
  \begin{cases}
  %\begin{aligned}
  v(t,x) &= g(t,x), \\
  \pause
  u(x) &= f(x) %& (x\in\mathbb R)
  %\end{aligned}
  \end{cases}
\]
\end{frame}
\end{document}

(在问题的第一个版本中,没有任何内容被注释掉。)

它编译得很好,但如果我使用 beamer.cls ,除“u(x)”之外的所有内容都会显示在第一张幻灯片上v 1.70 2007/03/11 18:50:44。在工作的另一台计算机上,我们安装了旧版本,即v 1.55 2004/10/11 16:09:50;那里一切都按预期工作:在第一张幻灯片上,完整的第二行以透明样式显示。

如果我使用纯 TeX 也会发生同样的情况\halign,所以cases不是罪魁祸首。此外,如果我不使用\setbeamercovered{transparent},那么一切都会按预期工作。换句话说,\pause不能与\setbeamercovered{transparent}和一起使用\halign

这是在和beamer版本之间引入的一个错误吗?(如果是,那么我很惊讶,因为它认为这是一个相当严重的问题。)有人知道一种解决方法,不需要像马修对我的原始问题的回答那样多的标记吗?1.551.70

答案1

从 Beamer 手册中,在用例的中间:

欧几里得发现,他还可以\pause在定义和例子之间添加一个。因此,\pauses 似乎超越了环境,欧几里得发现这非常有用。经过一些实验,他发现\pausealign仅在环境中不起作用他立即给 Beamer 的作者写了一封电子邮件,但收到了一个礼貌的答复,指出align做了坏事,而且没有解决办法。另外,Euclid 指出了用户指南的最后一部分,其中描述了一种解决方法。(重点添加)

这是我的解决方法,使用\action

\documentclass{beamer}
\mode<presentation> { \setbeamercovered{transparent} }

\begin{document}
\begin{frame}
\[
  \begin{cases}
  \begin{aligned}
  \action<+->{v(t,x) &= g(t,x), \\}
  \action<+->{u(x)} &\action<.->{=f(x)} & \action<.->{(x\in\mathbb R)}
  \end{aligned}
  \end{cases}
\]
\end{frame}
\end{document}

令人惊讶的是,第二行必须将对齐的每个单元格包含在一个动作规范中,而第一行可以只包含一个动作规范(也许这与它默认显示在所有幻灯片上有关)。但我记得 Till 给 Euclid 的建议:

align做了邪恶的事情,并且没有解决办法。

添加:如果我没记错的话\action,是通用的\only。增量覆盖规范<+->非常值得学习。请参阅 Beamer 手册第 8 节,或者至少是我的 3.06 手册第 8 节:“创建覆盖”。

答案2

最后我跟随约瑟夫的建议,最终找到了一个简单的解决方法:将\beamerorig@set@color和重新定义\beamerorig@reset@color到 2007 年之前的状态。使用下面的代码,\pauses 的工作完全符合预期:

1 帧带 3 个叠加层的动画输出

我还用两组真实的幻灯片对此进行了测试,没有发现任何不良的副作用。

\documentclass{beamer}
\mode<presentation> { \setbeamercovered{transparent} }
\setbeamertemplate{navigation symbols}{}
\makeatletter
\def\beamerorig@set@color{%
  \pdfliteral{\current@color}%
  \aftergroup\reset@color
}
\def\beamerorig@reset@color{\pdfliteral{\current@color}}
\makeatother
\begin{document}
\begin{frame}
\[
  \begin{cases}
  \begin{aligned}
  v(t,x)&= g(t,x), \\ \pause
   u(x) &= f(x) & \pause
           (x\in\mathbb R)
  \end{aligned}
  \end{cases}
\]
\end{frame}
\end{document}

因此,很可能“align做坏事”(见马修的回答\setbeamercovered{transparent}),但在 2007 年之前,如果使用,这并不相关,所以对我来说,\pause在 内工作得很好align。(针对这种情况的修复\setbeamercovered{transparent}不是可以发现我的这个答案

2007 年发生了什么?pdftex.def发布了 0.04a 版,支持颜色堆栈。为此,使用了\set@color和的新定义;这就是和在 中的含义。而且看起来这个颜色堆栈版本在 和 朋友中不能正常工作。在上面的代码中,我使用了和的定义形成\reset@color\beamerorig@set@color\beamerorig@reset@color\letbeamerbasecolor.styalign\set@color\reset@color0.03t 版pdftex.def

答案3

如果您不介意使用eqnarray代替align,那么您就可以让暂停起作用。至少这是我的经验。

答案4

(因为我遇到了同样的问题,所以再次提出这个问题。)只需\pause通过增量覆盖规范替换 AMS 环境内部\uncover<+(1)->{...}就可以很好地工作:

\begin{frame}{Title}
  Stuff.\pause
  \[
    \begin{cases}
    \begin{aligned}
      v(t,x) &= g(t,x), \\
      \uncover<+(1)->{
        u(x) &= f(x) \quad (x\in\mathbb R)
      }
    \end{aligned}
    \end{cases}
  \]
  \pause
  More stuff.
\end{frame}

相关内容