我有一个框架,我把它分成两列。第一列用于图像。第二列用于一些块:
\begin{frame}
\frametitle{Buoy design}
\begin{columns}
\column{0.38\textwidth}
\includegraphics[scale=0.48]{figures/Results/BuoyDesign}
\column{0.62\textwidth}
\onslide<1-3>{
\begin{block}{Equation of Motion}
\[
[\underline{M}+\underline{A}]\ddot{x}(t)+\underline{k}x(t)= F(t)
\]
\end{block}}
\only<2>{
\begin{block}{Mass Matrix M}
\[
\begin{bmatrix}M_{tot}&M_{tot}z_g&0&0\\M_{tot}z_g&I_{xx}&0&0\\0&0&M_{tot}&M_{tot}z_g\\0&0&M_{tot}z_g&I_{yy}\end{bmatrix}
\]
\end{block}
}
\only<3>{
\begin{block}{Added Mass Matrix A}
\[
\begin{bmatrix} A_{11}&A_{12}&0&0\\A_{21}&A_{22}&0&0\\0&0&A_{33}&A_{34}\\0&0&A_{43}&A_{44}\end{bmatrix}
\]
\end{block}
}
\end{columns}
\end{frame}
下图中的结果是此代码的输出。我想要的就是这个。我尝试了,\begin{frame}[t]
但第二列没有任何变化。(忽略块的绿色)
知道如何实现这一点吗?
答案1
您可以使用overlayarea
(正如 dalief 所评论的)或overprint
环境来实现这一点。overlayarea
更加灵活,因此更受欢迎。
\documentclass{beamer}
\begin{document}
\begin{frame}
\frametitle{Buoy design}
\begin{columns}
\column{0.38\textwidth}
\includegraphics[width=\linewidth]{example-image}
\column{0.62\textwidth}
\begin{overlayarea}{\linewidth}{\textheight}
\begin{onlyenv}<1-3>
\begin{block}{Equation of Motion}
\[
[\underline{M}+\underline{A}]\ddot{x}(t)+\underline{k}x(t)= F(t)
\]
\end{block}
\end{onlyenv}
\begin{onlyenv}<2>
\begin{block}{Mass Matrix M}
\[
\begin{bmatrix}M_{tot}&M_{tot}z_g&0&0\\M_{tot}z_g&I_{xx}&0&0\\0&0&M_{tot}&M_{tot}z_g\\0&0&M_{tot}z_g&I_{yy}\end{bmatrix}
\]
\end{block}
\end{onlyenv}
\begin{onlyenv}<3>
\begin{block}{Added Mass Matrix A}
\[
\begin{bmatrix} A_{11}&A_{12}&0&0\\A_{21}&A_{22}&0&0\\0&0&A_{33}&A_{34}\\0&0&A_{43}&A_{44}\end{bmatrix}
\]
\end{block}
\end{onlyenv}
\end{overlayarea}
\end{columns}
\end{frame}
\end{document}