我在投影仪幻灯片中输入了以下一段代码,用于将第二张幻灯片上的等式下方的花括号放在其中:
\begin{equation*}
a = \alt<1>{b+c+d}{\underbrace{b+c+d}_{\text{some text}}}.
\end{equation*}
这会导致幻灯片跳动。我想知道如何避免这种情况?
我试图将equation
内部overprint
环境包裹起来(如避免投影机跳帧),但是没有帮助。
提前感谢您的帮助!
答案1
这将创建一个新的环境overlayauto
,其工作原理类似于,overlayarea
但可以根据数据计算高度、宽度和深度。
注意:这就像\mbox
在数学环境中放置一个,您需要在里面使用$...$。
\documentclass{beamer}
\usepackage{environ}
% used to replace \only
\def\testonly<#1>#2{\setbox0=\hbox{#2}%
\ifdim\ht0>\maxheight\relax\maxheight=\ht0\fi
\ifdim\dp0>\maxdepth\relax\maxdepth=\dp0\fi
\ifdim\wd0>\maxwidth\relax\maxwidth=\wd0\fi
}
\NewEnviron{overlayauto}[1][\normalfont\raggedright]% #1 = minipage optons
{% get dimentsions from data
\dimendef\maxheight=0
\dimendef\maxwidth=1
\dimendef\maxdepth=2
\maxheight=0pt
\maxdepth=0pt
\maxwidth=0pt
\let\temp=\only
\let\only=\testonly
\BODY
\let\only=\temp
\raisebox{0pt}[\maxheight][\maxdepth]%
{\begin{minipage}[t]{\maxwidth}
#1\BODY
\end{minipage}}
}
\begin{document}
\begin{frame}
above
\begin{equation*}
a=\begin{overlayauto}
\only<1>{$b+c+d$}%
\only<2>{$\underbrace{b+c+d}_{\text{some text}}$}
\only<3>{$\overbrace{b+c+d}^{\text{some text}}$}
\end{overlayauto}
\end{equation*}
below
\end{frame}
\end{document}