使用投影机覆盖时避免跳跃

使用投影机覆盖时避免跳跃

我在投影仪幻灯片中输入了以下一段代码,用于将第二张幻灯片上的等式下方的花括号放在其中:

\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}

相关内容