我正在和全班同学一起制作演示文稿beamer
。假设我想写以下内容:
\begin{equation}
f(x)
\only<1>{= \cos(x)}
\only<2>{= 2\cos(x)}
\end{equation}
我遇到了一个问题,因为在幻灯片 2 上,方程式更长,因此方程式在移动。如果我用 替换only
,uncover
幻灯片 2 上会出现空白。
align
我对环境也有同样的问题
\begin{align}
f(x) &= \exp(x)\\
\only<2>{&= \cos(x)}
\only<3>{&= 2\cos(x)}
\end{align}
如何在不改变方程式其他部分位置的情况下用其他部分替换方程式的一部分?
编辑
equation
我会更精确。我想找到一种有效的方法来替换等式(对于或)的右侧,而align
无需添加额外的空格,并且使等号保持在同一位置。
例如 :
\begin{equation}
\cos(x) =
\somecommand<1>{\dfrac{\exp{ix}+\exp{-ix}}{2}}
\somecommand<2>{\sum_{n=0}^{\infty}\dfrac{(-1)^{n}}{2n+1}x^{2n+1}}
...
\somecommand<n>{some other equality with a given lenght}
\end{equation}
- 如果
\somecommand
是\only
,那么整个等式将从幻灯片 1 移动到幻灯片 2。 - 如果
\somecommand
是\uncover
,那么幻灯片 2 上的等号和泰勒展开式之间会有一个空格。 - 使用或可能是一个解决方案
\hphantom
,但在超过两张幻灯片中使用它似乎非常复杂\alt
\temporal
答案1
有很多方法可以做到这一点。下面是其中一种方法,用于填补较短方程中的\phantom{<stuff>}
缺失值:<stuff>
\documentclass{beamer}
\usepackage{amsmath}
\begin{document}
\begin{frame}
\frametitle{A frame}
\begin{equation}
f(x) =
\only<1>{\cos(x)\phantom{2}}
\only<2>{2\cos(x)}
\end{equation}
\end{frame}
\end{document}
的放置\phantom{<stuff>}
取决于您想要如何检查内容。例如,您也可以尝试
f(x) = \alt<2>{2}{\phantom{2}}\cos(x)
对于更大的构造,我能给出的最佳建议是确定方程组中最大的(水平和垂直)元素并将它们存储在宏中,并使用另一个宏作为空间调整:
\documentclass{beamer}
\usepackage{amsmath}
\newcommand{\inserteqstrut}[1]{%
\rlap{$\displaystyle#1$}%
\phantom{\biggesteq}}
\begin{document}
% Store biggest equation in set
\newcommand{\biggesteq}{\sum_{n=0}^{\infty}\dfrac{(-1)^{n}}{2n+1}x^{2n+1}}
\begin{frame}
\frametitle{A frame}
\begin{equation}
\cos(x) =
\only<1>{\inserteqstrut{\dfrac{\exp{ix}+\exp{-ix}}{2}}}
\only<2>{\inserteqstrut{\biggesteq}}
\only<3>{\inserteqstrut{\text{some equality}}}
\end{equation}
\end{frame}
\end{document}
如果有两个单独的公式构成“最大”,则使用\vphantom
(表示最高/最深)和\hphantom
(表示最宽/最长)的组合。以下是这样的一个例子:
\documentclass{beamer}
\usepackage{amsmath}
\newcommand{\inserteqstrut}[1]{%
\rlap{$\displaystyle#1$}%
\phantom{\biggesteq}}
\begin{document}
% Store biggest equation in set
\newcommand{\biggesteq}{%
\vphantom{\sum_{n=0}^{\infty}n}% tallest/deepest
\hphantom{\text{some other equality}}}% longest/widest
\begin{frame}
\frametitle{A frame}
\begin{equation}
\cos(x) =
\only<1>{\inserteqstrut{\tfrac{\exp{ix}+\exp{-ix}}{2}}}
\only<2>{\inserteqstrut{\sum_{n=0}^{\infty}n}}
\only<3>{\inserteqstrut{\text{some other equality}}}
\end{equation}
\end{frame}
\end{document}
答案2
尽管 Werner 的解决方案显然更简洁,但我发现有时一种快速而粗糙的解决方案是在其中一个替代覆盖层中插入一些额外的间距。例如,我使用了以下代码:
\frame{
\frametitle{What: the Perron method}
We split coordinates $x = (x_+, x_-)$%
\uncover<2->{, change the initial time $t_0$ in the unstable part}
\uncover<3->{and let $t_0 \to \infty$}
\begin{alignat*}{2}
x_+(t) &\mapsto
\only<1 |handout:0>{e^{t\,A_+} \cdot x_+(0)\hspace{0.86cm}}
\only<2-3|handout:0>{e^{(t-\alert{t_0})\,A_+} \cdot x_+(\alert{t_0})}
\only<4- >{\qquad\alert{\ldots}\hspace{1.59cm}}
&& \only< -3|handout:0>{+}
\only<4- >{-\,}
\int_{\only<1 |handout:0>{0}
\only<2-3|handout:0>{\alert{\smash{t_0}}\!\!}
\only<4- >{t}}
^{\only<1-3|handout:0>{\smash{t}}
\only<4- >{\alert{\smash{\infty}}}\!\!\!\!}
e^{(t-\tau)\,A_+} \cdot r_+((x_+,x_-)(\tau)) \d\tau,\\
x_-(t) &\mapsto
e^{t\,A_-} \cdot x_-(0)
&&+\int_{0\,}^t e^{(t-\tau)\,A_-} \cdot r_-((x_+,x_-)(\tau)) \d\tau.
\end{alignat*}
\uncover<3->{%
We consider this rewritten map $T$ for bounded curves
$x \in B(\R;\R^n)$ only.
}
}
创建幻灯片 7此投影机演示。
答案3
我最终使用这个解决方案解决了我的问题(我知道这与我的问题不一致,因为我想使用equation
或align
)
\documentclass{beamer}
\usepackage{amsmath,amssymb}
\renewcommand*{\a}[1]{\hat a_{#1}^{\vphantom{\dagger}}}
\newcommand*{\ad}[1]{\hat a_{#1}^{\dagger}}
\renewcommand*{\c}[1]{\hat{c}_{#1}^{\vphantom{\dagger}}}
\newcommand*{\cd}[1]{\hat{c}_{#1}^{\dagger}}
\renewcommand*{\H}{\hat{H}}
\newcommand*{\T}{\hat{T}}
\newcommand*{\dsum}[1]{\displaystyle\sum_{#1}}
\newcommand*{\dsumd}[3]{\displaystyle\sum_{#1=#2}^{#3}}
\newcommand*{\dprod}[1]{\displaystyle\prod_{#1}}
\newcommand*{\dprodd}[3]{\displaystyle\prod_{#1=#2}^{#3}}
\newcommand*{\dbigotimesd}[3]{\displaystyle\bigotimes_{#1=#2}^{#3}}
\newcommand*{\dbigoplusd}[3]{\displaystyle\bigoplus_{#1=#2}^{#3}}
\newcommand*{\ket}[1]{\left|#1\right>}
\newcommand*{\ep}[1]{\left(#1\right)}
\renewcommand*{\vec}[1]{\mathbf{#1}}
\renewcommand*{\det}[1]{\mathrm{det}\ep{#1}}
\begin{document}
\begin{frame}
\begin{minipage}[h]{0.4\linewidth}
$
\T
\only<1>{= \dbigoplusd{\alpha}{1}{N}\hat{T}_{\alpha}}
\only<2-3>{= \dbigoplusd{\alpha}{1}{N}\hat{\vec{a}}^{\dagger}_{\alpha}T\hat{\vec{a}}^{\vphantom{\dagger}}_{\alpha}}
\only<4->{= \dbigoplusd{\alpha}{1}{N}\dsumd{i}{1}{n}\omega_{i\alpha}\cd{i\alpha}\c{i\alpha}}
$
\end{minipage}
\hfill
\begin{minipage}[h]{0.5\linewidth}
\uncover<3->{
\begin{align*}
\cd{i\alpha} &= \dsumd{j}{1}{n}U_{ji}^{\alpha}\ad{j\alpha} &
\omega_{i\alpha} &< \omega_{i+1\alpha}
\end{align*}
}
\end{minipage}
\uncover<5->{
$
\uncover<6->{\ket{\Psi_{G}}= }
\only<5->{\uncover<6->{\hat{P}_{G}^{m}}\ket{\Psi}}
\uncover<5->{=\uncover<6->{\hat{P}_{G}^{m}}\dbigotimesd{\alpha}{1}{N}\dprodd{i}{1}{mn/N}\alt<5-6>{\c{i\alpha}}{\dsumd{j}{1}{n}U_{ji}^{\alpha}\ad{j\alpha}}\ket{0}}
\only<10->{\equiv \dsum{\mathcal{C}}\det{U_{\mathcal{C}}}\ket{\mathcal{C}}}
$
}
\begin{center}
\uncover<8->{
$
\ket{\mathcal{C}} \equiv \dbigotimesd{\alpha}{1}{N}\dprodd{i}{1}{mn/N}\ad{i_{\alpha}\alpha}\ket{0}
$
}
\uncover<9->{
$
\dsumd{\alpha}{1}{N}\ad{i\alpha}\a{i\alpha}\ket{\mathcal{C}} = m
\qquad
\dsumd{i}{1}{n}\ad{i\alpha}\a{i\alpha}\ket{\mathcal{C}} = \dsumd{i}{1}{n}\ad{i\beta}\a{i\beta}\ket{\mathcal{C}}
$
}
\end{center}
\end{frame}
\end{document}
我希望这可以帮助别人......