overlayarea 和 itemize

overlayarea 和 itemize
\documentclass{beamer}
\begin{document}
\begin{frame}{Motivations}
\begin{itemize}
    \item Let's look at picture a and picture b
\end{itemize}
\begin{overlayarea}{\textwidth}{4cm}
    \only<1>{
        \begin{figure}
            \includegraphics[height=4cm]{a.png}
        \end{figure}
    }
    \only<2>{
        \begin{figure}
            \includegraphics[height=4cm]{b.png}
        \end{figure}
    }
    \only<3->{
        %\begin{itemize}    
            \item Basically, picture a and picture b show a cat.
            \item The pictures are taken from different angles.
        %\end{itemize}
    }
\end{overlayarea}
\end{frame}
\end{document}

在这个演示中,我首先展示“让我们看看图片 a 和图片 b”,然后逐张展示图片 a 和 b。最后在第 3 页,我揭示了总结图片的文字并隐藏了图片。

上述代码无法编译。我认为\item它在 overlayarea 环境中不起作用。

如果我取消注释\begin{itemize},则代码主要可以工作,只是项目之间的距离不相同。

在此处输入图片描述

如何使这 3 个项目看起来像在单个列表中,并避免文本抖动?

我阅读了 beamer 手册的第 9.5 章“动态更改文本或图像”,但没有找到有用的提示。

我尝试过了\setlength\topsep{0pt} \setlength\partopsep{0pt}如何使用 enumitem 删除 beamer 中 itemize 命令上方的空白但它似乎不起作用。

可以安全地假设最后两项比图片短。

答案1

您的代码无法构建,因为您itemize在第一次之后结束了您的环境,但您继续在环境之外\item使用。\item

如果您移动\end{itemize}到列表末尾,\item由于overlay环境原因,您的 s 之间会出现一个空格。避免这种情况的一种方法是overlay先启动环境,然后将您的itemize环境放入其中。

\documentclass{beamer}
\begin{document}
\begin{frame}{Motivations}
\begin{overlayarea}{\textwidth}{4cm}
\begin{itemize}
    \item Let's look at picture a and picture b
    \only<1>{%
        \begin{figure}
            \includegraphics[height=4cm]{example-image-a}
        \end{figure}%
    }
    \only<2>{%
        \begin{figure}
            \includegraphics[height=4cm]{example-image-b}
        \end{figure}%
    }
    \only<3->{%
            \item Basically, picture a and picture b show a cat.
            \item The pictures are taken from different angles.
    }
\end{itemize}
\end{overlayarea}
\end{frame}
\end{document}

列表中有两个框架显示图片

相关内容