Beamer,使用列为每个项目显示不同的图片

Beamer,使用列为每个项目显示不同的图片

我想要的东西的简短描述:在 beamerclass 框架中,左侧有两个项目(bulletitems?),右侧有两张图片。当显示第一个项目时,我希望显示第一张图片。在下一张幻灯片中,当出现第二个项目时,我希望保留第一个项目,但将右侧的第一张图片完全替换为第二张图片。

这就是我想出的:

\begin{frame}
    \begin{columns}
        \column{.6\textwidth}
        \begin{itemize}[<+->]
            \item<1,2> Some Text explaining the first picture
            \item<2> Text explaining second picture
        \end{itemize}
        \column{.4\textwidth}
        \onslide<1> \begin{figure}[htbp]
                        \centering
                        first picture
                        \caption{fstpic}
                    \end{figure}
        \onslide<2> \begin{figure}[htbp]
                        \centering
                        second picture
                        \caption{sndpic}
                    \end{figure}
    \end{columns}
\end{frame}

我尝试使用第二个 itemize 环境进行相同的操作(替换\onslide),但遇到了同样的问题:

右侧的图片未垂直居中。第一张图片将显示在框架顶部,第二张图片将显示在框架下方(即使第一张图片消失了)。

有没有简单的方法可以做到这一点?

答案1

使用\only

在此处输入图片描述 在此处输入图片描述

代码

\documentclass[]{beamer}

\begin{document}
\begin{frame}
    \begin{columns}
        \column{.6\textwidth}
        \begin{itemize}[<+->]
            \item<1,2> Some Text explaining the first picture
           \item<2> Text explaining second picture
        \end{itemize}
        \column{.4\textwidth}
        \centering
\only<1>{\begin{figure}[!htbp]
\includegraphics[scale=.23]{example-image-a}
\caption{fstdpic}
\end{figure}
}
\only<2>{\begin{figure}[!htbp]
\includegraphics[scale=.23]{example-image-b}
\caption{sndpic}
\end{figure}
}
\end{columns}
\end{frame}

\end{document}

相关内容