\pause 命令在我的方程组中不起作用

\pause 命令在我的方程组中不起作用

问题:在我的简化中为什么 \pause 命令不起作用实际上我想将 \pause 命令分配给每个方程式。请帮帮我。

这就是我所拥有的

\documentclass[12pt,fleqn]{beamer}
\usepackage{xcolor}
\usetheme{AnnArbor}
\usecolortheme{beaver}
\usepackage{enumitem}
\usepackage{parskip}
\usefonttheme{professionalfonts} % using non standard fonts for beamer
\usefonttheme{serif} % default family is serif
\usepackage{setspace}
\addtobeamertemplate{frametitle}{}{\vspace{-0.4em}} % decrease
%make new line after item
\makeatother
%\title[ABC School]{\textbf{Example}}

%\author[ABC]{}
%\date[\today]{}
\begin{document}
\begin{frame}[t]
%\frametitle{Equations revealed step by step}
%\setbeamercovered{transparent}<<<<use to transparency of next steps
Simplification is given below\pause
\begin{align*}
(a+b)^2&=(a+b)(a+b)&\\
&=(a)(a)+(a)(b)+(b)(a)+(b)(b)&\\
&=a^2+ab+ba+b^2&\\
&=a^2+ab+ab+b^2&\\
&=a^2+2ab+b^2&
\end{align*}
\end{frame}
\end{document}

答案1

投影机手册第 24 页指出

Euclid 发现,他还可以在定义和示例之间添加 \pause。因此,\pause 似乎可以超越环境,Euclid 发现这非常有用。经过一些实验,他发现 \pause 仅在对齐环境中不起作用。他立即向 beamer 的作者发送了一封电子邮件,但收到了礼貌的答复,指出对齐的实现会产生不良影响,并且无法修复。此外,Euclid 被指向用户指南的最后一部分,其中描述了一种解决方法。

那里提到的邪恶之物可能是align“执行”其内容两次。最近,F. Patigny 引入了命令\WhenNotMeasuringhttps://tex.stackexchange.com/a/548004解决相关问题。我所做的只是尝试一下这是否能解决这里的问题。至少在下面的例子中似乎是这样的。所要做的就是在环境中使用\WhenNotMeasuring{\pause}而不是。\pausealign

\documentclass[12pt,fleqn]{beamer}
\usepackage{amsmath}
\usepackage{xparse}
\makeatletter% from https://tex.stackexchange.com/a/548004
\ExplSyntaxOn
\NewDocumentCommand\WhenNotMeasuring { } { \legacy_if:nF {measuring@} }
\ExplSyntaxOff
\makeatother
\begin{document}
\begin{frame}[t]
\frametitle{Test}
\begin{align*}
E &=mc^2\WhenNotMeasuring{\pause}\\
&=h\nu
\end{align*}
\end{frame}
\end{document}

在此处输入图片描述

当然,如果你觉得这@太可怕了,你可以去掉xparseand \ExplSyntaxOn/\ExplSyntaxOff部分,但这仍然是 F. Patigny 的观察。由于在 align 之外(希望)永远不会测量,因此可以为此定义一个通用命令,例如\Pause

\documentclass[12pt,fleqn]{beamer}
\usetheme{AnnArbor}
\usecolortheme{beaver}
\usefonttheme{professionalfonts} % using non standard fonts for beamer
\usefonttheme{serif} % default family is serif
\addtobeamertemplate{frametitle}{}{\vspace{-0.4em}} % decrease
\makeatletter
\newcommand{\Pause}[1][]{\unless\ifmeasuring@\relax
\pause[#1]%
\fi}
\makeatother

%\title[ABC School]{\textbf{Example}}

%\author[ABC]{}
%\date[\today]{}
\begin{document}
\begin{frame}[t]
\frametitle{Equations revealed step by step}
\setbeamercovered{transparent}
Simplification is given below\Pause
\begin{align*}
(a+b)^2&=(a+b)(a+b)\\ \Pause
&=(a)(a)+(a)(b)+(b)(a)+(b)(b)\\ \Pause
&=a^2+ab+ba+b^2\\ \Pause
&=a^2+ab+ab+b^2\\ \Pause
&=a^2+2ab+b^2
\end{align*}
\end{frame}
\end{document}

在此处输入图片描述

这似乎至少能通过一些简单的测试。真希望我几年前就知道这个技巧。

相关内容