在beamer
演示文稿中,我尝试在 itemize 中的同一个项目中显示两幅不同的图像。如果我在\pause
项目之间添加,则不会显示图像。
那么,我应该如何显示“三,然后四”项两次?
这可能是一个非常愚蠢的问题,但我无法在这些页面或网络上找到解决方案。
\begin{frame}
\frametitle{Title}
\begin{columns}
\column{.4\textwidth}
\begin{minipage}[c][.6\textheight][c]{\linewidth}
\begin{itemize}[<+->]
\item
One
\item
Two
\item
Three, then four
\item
Five
\end{itemize}
\end{minipage}
\column{.6\textwidth}
\center
\includegraphics<1>{fig_1}
\includegraphics<2>{fig_2}
\includegraphics<3>{fig_3}
\includegraphics<4>{fig_4}
\includegraphics<5>{fig_5}
\end{columns}
\end{frame}
答案1
这里的问题是,\pause
在框架内具有全局范围。\pause
在幻灯片上的某个地方放一个,表示“此之后的内容不会出现在之前的幻灯片上。”。这无法被覆盖。因此,您的所有\includegraphics
命令都包含在“幻灯片可见后才显示\pause
”中。因此,您需要限制 的范围\pause
。
一种方法是通过编写类似 的内容明确地告诉beamer
每项应该出现在哪张幻灯片上。另一种方法是利用遇到语法时的行为。第二种方法的优点是它在改变列表顺序或插入或删除项目时很稳定。重要的是要知道,当 beamer在覆盖规范中看到一个符号,例如,它就会增加其内部计数器,该计数器会跟踪应该出现在哪张幻灯片上的内容。所以 each说,“从下一张幻灯片开始显示这个。”(请注意,环境的可选参数只是每次的快捷方式)。因此,诀窍是在您想要额外暂停时告诉增加计数器。该项目将从覆盖 3 开始显示,但该项目将等待额外的一轮才能显示。item
\item<3->
beamer
<+->
+
<+->
\item<+->
itemize
\item<+->
beamer
three, then four
five
实现这一目标的方法有很多种。最直接的方法是简单地编写\stepcounter{beamerpauses}
。最间接的方法是确保beamer
看到某个地方的额外内容+
。事实上,这可能是一个混淆竞赛!将\onslide<+>{}
或\alert<+>{}
或\invisible<+>{}
,或者实际上任何覆盖感知命令放在该行的某个地方都可以。我认为我的个人的最喜欢写的是
\visible<-+,+->{Three, then four}
(请注意,由于两个+
s 出现在相同的覆盖规范,计数器只更新一次。)但这\stepcounter
可能是最清楚的,也是最容易记住为什么在六个月后把它放在那里的。
\documentclass{beamer}
\begin{document}
\begin{frame}
\frametitle{Title}
\begin{columns}
\column{.4\textwidth}
\begin{minipage}[c][.6\textheight][c]{\linewidth}
\begin{itemize}[<+->]
\item
One
\item
Two
\item
Three, then four
\stepcounter{beamerpauses}
\item
Five
\end{itemize}
\end{minipage}
\column{.6\textwidth}
\center
\includegraphics<1>{fig_1}
\includegraphics<2>{fig_2}
\includegraphics<3>{fig_3}
\includegraphics<4>{fig_4}
\includegraphics<5>{fig_5}
\end{columns}
\end{frame}
\end{document}
答案2
不要将其用作环境[<+->]
的全局定义itemize
。而是将其用于每个项目\item<1->
(例如第一个项目),然后您可以同时拥有两个项目。
\PassOptionsToPackage{demo}{graphicx}%% delete it
\documentclass{beamer}
\begin{document}
\begin{frame}
\frametitle{Title}
\begin{columns}
\column{.4\textwidth}
\begin{minipage}[c][.6\textheight][c]{\linewidth}
\begin{itemize}
\item<1->
One
\item<2->
Two
\item<3->
Three, \onslide<4->{then four}
\item<5->
Five
\end{itemize}
\end{minipage}
\column{.6\textwidth}
\center
\includegraphics<1>{fig_1}
\includegraphics<2>{fig_2}
\includegraphics<3>{fig_3}
\includegraphics<4>{fig_4}
\includegraphics<5>{fig_5}
\end{columns}
\end{frame}
\end{document}