Beamer 在对齐环境中覆盖区域

Beamer 在对齐环境中覆盖区域

在我的 beamer 演示中,对齐环境中有三个方程式。首先,它们应该按指定方式呈现。在步骤 2 中,第一个方程式的一部分应该有一个框。在步骤 3 中,第二个方程式的一部分应该有一个框。

问题在于这些框会增加间距并使得下面的内容跳转。

以下是 MWE:

\documentclass{beamer}

\begin{document}

\begin{frame}

\begin{align}
\only<1,3>{\sum a &= b \\ }
\only<2>{\boxed{\sum a} &= b \\ }
\only<1-2>{\sum c &= d\\}
\only<3>{\boxed{\sum c} &= d \\ }
e &= f
\end{align}

\end{frame}

\end{document}

我尝试了 overlayarea 和 overprint,但由于对齐环境(缺少 $),它们给出了错误。你有什么想法吗?

答案1

在这里,我创建了一个补充宏\nulboxed[color]{content},它获取内容并将其放置在默认的白色框中。因此,它占用的空间与 相同\boxed,因为它使用相同的宏。

如果对不对称的左/右空间不满意,也可以在、和项\nulboxed周围添加包装器。bdf

\documentclass{beamer}
\usepackage{xcolor}
\newcommand\nulboxed[2][white]{\textcolor{#1}{\boxed{\color{black}#2}}}
\begin{document}

\begin{frame}

\begin{align}
\only<1,3>{\nulboxed{\sum a} &= b \\ }
\only<2>{\boxed{\sum a} &= b \\ }
\only<1-2>{\nulboxed{\sum c} &= d\\}
\only<3>{\boxed{\sum c} &= d \\ }
\nulboxed{e} &= f
\end{align}

\end{frame}

\end{document}

在此处输入图片描述

\nulboxed正如我上面提到的,如果采用右边的项,它看起来是这样的:

在此处输入图片描述

跟进

OP 评论说占用的垂直空间太大。可以通过将以下代码添加到序言中(适用于此 MWE)\smash将其缩小到其参数的大小来解决这个问题\boxed

\let\svboxed\boxed
\def\boxed#1{\vphantom{#1}\smash{\svboxed{#1}}}

答案2

这里有一种方法,使用\smash一些空间调整来重新定位元素,以便它们在幻灯片前进时看起来保持在相同的位置。

\documentclass{beamer}

\newcommand{\fixit}{\mkern6mu{}}

\begin{document}

\begin{frame}

\jot=6pt
\begin{align}
\only<1,3>{\fixit \sum a \fixit &= b \\ }
\only<2>{\vphantom{\sum}\smash{\displaystyle\boxed{\sum a}} &= b \\ }
\only<1-2>{\fixit \sum c \fixit &= d\\}
\only<3>{\vphantom{\sum}\smash{\boxed{\sum c}} &= d \\ }
e \fixit &= f
\end{align}

\end{frame}

\end{document}

元素被粉碎,并且使用恢复\boxed的高度。\sum\vphantom

这些线条太靠近,因此它们之间的空间(由\jot(default = 3pt) 定义)加倍。

为了调整水平位置,插入一个小的箕斗来代替缺失的箱式垂直件;箕斗的宽度是通过实验确定的。

相关内容