Beamer 在停顿后将公式装入盒子

Beamer 在停顿后将公式装入盒子

我正在与 Beamer 一起做演示,我需要有关 \only<.> 和 \boxed{} 使用的帮助。

我想得到以下效果:

  1. a=b+c

  2. a=b+c

    離=d

  3. a=b+d

    離=d

  4. a=b+\boxed{d}

    離=d

我使用了以下代码,但我不喜欢这种效果,因为当它将框放在 d 周围时,它也会移动“c=d”。有人能帮我找到其他代码吗?

\begin{align*}
a=b+\only<1-2>c
\only<3>{d}
\only<4>{\boxed{d}}
\end{align*}
\pause
c=d

因此,我想在“a=b+d”出现后将“d 装箱”,而不移动“c=d”。

有人能帮助我吗?

答案1

第一的:你没有align正确使用。你必须在环境中写入“c=d” align,然后用“粘合”这两个方程式&

第二:d您必须精确对齐“d”以对应于和之间的宽度差异\boxed{d}

有两种解决方案(假设框架是居中对齐的);两种方法都应该有效,但不知何故第二种更好。

\documentclass{beamer}

% For both solutions
\usepackage{calc}

% Just for the second solution
\newlength{\firslength}
\settowidth{\firslength}{\boxed{d}}
\newlength{\secondlength}
\settowidth{\secondlength}{d}

\begin{document}

\begin{frame}

% First solution
\begin{align*}
a=&b+\only<1-2>{\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}c\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}}%
\only<3>{\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}d\hspace*{(\widthof{\boxed{d}}-\widthof{d})/2}}%
\only<4>{\boxed{d}}\\%
\uncover<2->{c=&d}%
\end{align*}

% Second solution
\begin{align*}
a=&b+\only<1-2>{\hspace*{\dimexpr(\firslength-\secondlength)/2}c\hspace{\dimexpr(\firslength-\secondlength)/2}}%
\only<3>{\hspace*{\dimexpr(\firslength-\secondlength)/2}d\hspace{\dimexpr(\firslength-\secondlength)/2}}%
\only<4>{\boxed{d}}\\%
\uncover<2->{c=&d}%
\end{align*}

\end{frame}

\end{document}

在此处输入图片描述

答案2

这里的问题是\boxed{d}的宽度与 不同d。不幸的是,Tom Solid 的解决方案由于插入了额外的间距而看起来很尴尬。

我不确定你\boxed从哪里得到(我猜它是由 beamer 间接加载的)但我发现它在多个包中定义为:

\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}

(或等效命令)。深入研究 的定义,框内内容周围\fbox有额外的空间,加上线条的宽度。我们可以使用它来创建一个新命令(或任何你喜欢的称呼),它将删除已添加的空间,以便框在打印时溢出到周围的现有空白处。\fboxsep\fboxrule\bxedd

\newcommand{\bxed}[1]{\mbox{\kern-\fboxsep\kern-fboxrule\boxed{#1}\kern-\fboxsep\kern-fboxrule}}

这应该会产生期望的结果。

此外,&环境中align应该=不是在它之后。您会注意到,在 Tom 的例子中,A和 = 大于 = 和之间的间距b。移动“&”符号即可修复该问题。

相关内容