description
出于教育目的,我只想在所有物品本身被发现之后才揭示我的物品的定义,如下所示:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{overprint}
\begin{description}
\item<1->[Spam]
\onslide<3->{Eggs}
\item<2->[Cheese]
\onslide<4->{Tofu}
\end{description}
\end{overprint}
\end{frame}
\end{document}
然而,这会导致垃圾邮件和蛋只出现在幻灯片 3 上。我希望在幻灯片 1 中,我有垃圾邮件(但没有任何内容),在幻灯片 3 中,我有垃圾邮件和蛋.我怎样才能实现这个目标?
另一种方法是使用tabular
环境,但我感兴趣的是看看是否可以使用来实现description
。
答案1
类似这样的工作:
\documentclass{beamer}
\newcommand\desctext[1]{%
\only<+(1)>{\mbox{}}%
\onslide<+(1)->{#1}}
\begin{document}
\begin{frame}
\begin{overprint}
\begin{description}
\addtocounter{beamerpauses}{-1}
\item[Spam1]\desctext{Eggs1}
\item[Spam2]\desctext{Eggs2}
\item[Spam3]\desctext{Eggs3}
\item[Spam4]\desctext{Eggs4}
\addtocounter{beamerpauses}{1}
\end{description}
\end{overprint}
\end{frame}
\end{document}
对于所需的排序(先是所有标签,然后是所有描述),可以执行以下操作:
\documentclass{beamer}
\newcommand\desctext[2][]{%
\only<+(1)->{\mbox{}}%
\onslide<#1->{#2}}
\begin{document}
\begin{frame}
\begin{overprint}
\begin{description}
\addtocounter{beamerpauses}{-1}
\item[Spam1]\desctext[5]{Eggs1}% add one to the number of items
\item[Spam2]\desctext[6]{Eggs2}
\item[Spam3]\desctext[7]{Eggs3}
\item[Spam4]\desctext[8]{Eggs4}
\addtocounter{beamerpauses}{1}
\end{description}
\end{overprint}
\end{frame}
\end{document}
答案2
我个人使用itemize
环境来实现你的目标。
description
环境的行为似乎与itemize
“enumerate
复杂”结构的环境不同。
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{overprint}
\begin{itemize}
\item<1-> Spam:
\onslide<2->{Eggs}
\end{itemize}
\end{overprint}
\end{frame}
\end{document}