我正在用 Beamer 准备一个演示文稿,我有一个公式,underbrace
我想在下一张幻灯片中揭示它。我所做的是
\only<1>{
\[
formula
\]
}
\onslide<2->{
\[
\underbrace{formula}_{text}
\]
}
效果很好,但从第一张幻灯片过渡到第二张幻灯片时,公式略有移动。这不是垂直跳跃(我已经用过overlayarea
),而是水平移动。
您知道解决这个(小)问题的方法吗?我曾想过用它,phantom
但不知道怎么做。
编辑
准备 MWE 并不容易!事实上,我无法重现这个问题……最后我设法用这个代码
\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\begin{overlayarea}{\textwidth}{0.3\textheight}
\only<1-2>{
\[
\overbrace{a+b}^{\text{qq}}=\overbrace{c+d+e}^{\text{abc}}+\onslide<2->{\overbrace{f+g+h+i+j+k+l}^{\text{def}}}
\]
}
\onslide<3->{
\[
\overbrace{a+b}^{\text{qq}} = \underbrace{\overbrace{c+d+e}^{\text{abc}}+\overbrace{f+g+h+i+j+k+l}^{\text{def}}}_{\text{too long!}}
\]
}\end{overlayarea}
\end{frame}
\end{document}
您可以看到从第二张幻灯片到第三张幻灯片的过渡略有变化。导致问题的原因是引入了第二张幻灯片overbrace
,但 (a) 我不知道为什么,(b) 我不知道如何解决。
答案1
\onslide
只需在结束之前添加一个\underbrace
:
\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\only<1-3>{
\[
\overbrace{a+b}^{\text{qq}} =
\underbrace{
\overbrace{c+d+e}^{\text{abc}} +
\onslide<2->{\overbrace{f+g+h+i+j+k+l}^{\text{def}}}
\onslide<3->}_{\text{too long!}}
\onslide<2-> + m + n
\]
}
\end{frame}
\end{document}
编辑:\onslide
可以在后面使用,\underbrace
以便更早地显示公式的后面部分(上面的 +m+n)
答案2
龌龊的伎俩:
\documentclass{beamer}
\begin{document}
\begin{frame}
\[
\color<1>{normal text.bg}
\underbrace{\textcolor<1-2>{normal text.fg}{formula}}_{text}
\color{normal text.fg}
\]
bla
\end{frame}
\end{document}
应用于您的 MWE:
\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
\begin{frame}
\[
\color<1-2>{normal text.bg}
\textcolor<1-3>{normal text.fg}{\overbrace{a+b}^{\text{qq}} =}
\underbrace{%
\textcolor<1-3>{normal text.fg}{\overbrace{c+d+e}^{\text{abc}}}
\textcolor<2-3>{normal text.fg}{+\overbrace{f+g+h+i+j+k+l}^{\text{def}}}
}_{\text{too long!}}
\color{normal text.fg}
\]
\end{frame}
\end{document}
答案3
有趣的是,只需在第三张幻灯片末尾添加一个\thinmuskip
空格(或)即可消除跳跃:\,
\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\begin{overlayarea}{\textwidth}{0.3\textheight}
\only<1-2>{
\[
\overbrace{a+b}^{\text{qq}} = \overbrace{c+d+e}^{\text{abc}}+\onslide<2->{\overbrace{f+g+h+i+j+k+l}^{\text{def}}}
\]
}
\onslide<3->{
\[
\overbrace{a+b}^{\text{qq}} = \underbrace{\overbrace{c+d+e}^{\text{abc}}+\overbrace{f+g+h+i+j+k+l}^{\text{def}}}_{\text{too long!}}
\,
\]
}\end{overlayarea}
\end{frame}
\end{document}