对于以下示例,我需要使用align
环境并揭示/提醒每个方程式。常规方法如下所示
\documentclass{beamer}
\usepackage{amsmath,mathtools}
\begin{document}
\begin{frame}
\begin{align}
\uncover<1->{\alert<1>{X} & \alert<1>{=Y} \\
& \alert<1>{=1} \\}
%
\uncover<2->{\alert<2>{A} & \alert<2>{=B}}%
\end{align}
\end{frame}
\end{document}
但如果方程式较长且附加,则会更加繁琐。
那么,有没有办法定义一个新的align
类似环境,将代码放入常规align
环境中并得到上述结果,考虑:
- 第一张幻灯片中的附加方程编号 (3) 未显示在第一张幻灯片中
- 方程编号通过其方程突出显示
答案1
根据 Beamer 手册,amsmath
环境在与覆盖规范的兼容性方面存在问题,因为它们内部处理参数的方式。例如,手册在第 78 页解释了\pause
与align
环境的不兼容性,如下所示。
此命令在 amsmath 环境(例如 align)中不起作用,因为它们会执行非常邪恶的事情。
因此,在这种情况下,Beamer 自己的各种邪恶诡计无法以标准(或方便)的方式得到容纳。
但是,本手册后面提供了方程标签的解决方案。这无法突出显示标签,但至少可以将正确的标签放到正确的幻灯片上。解决方案需要在 内添加一个空行align
,结合\notag
,并补偿负跳过。
\documentclass{beamer}
\usepackage{mathtools}
\begin{document}
\begin{frame}
\begin{align}% based on solution on page 217 of the Beamer manual
\alert<1>{X} & \alert<1>{=Y} \\
& \alert<1>{=1} \\
\uncover<+(1)->{\alert{A} & \alert{=B}\\}
\notag
\end{align}
\vskip-1.5em
\end{frame}
\end{document}
查阅文档总是明智的,特别是当问题可能是一个相对常见的问题时,例如尝试使用amsmath
具有 Beamer 覆盖规范的环境。如果 Beamer 的手册没有任何事物这么说吧,哪怕只是这么说,也amsmath
太恶劣了!
[此时此刻,提到五十步笑百步确实很诱人,但毫无疑问,在这种情况下,程序员的眼中充满了邪恶。]