我目前有一个 beamer 演示文稿,使用 forloop 包,它基本上看起来像这样:
\documentclass{beamer}
\usepackage{forloop}
\begin{document}
\newcounter{ctr}
\newcounter{gulp}
\forLoop{1}{3}{ctr}{
\ifnum\thectr=1
\def \endvalue {2}
\else
\def \endvalue {1}
\fi
\forLoop{1}{\endvalue}{gulp}{
\begin{frame}{Plan}
\begin{itemize}[]
\item {\ifnum\thectr=1\ifnum\thegulp=2\color{red}\fi\fi 1 }
\item {\ifnum\thectr=2\color{red}\fi 2 }
\item {\ifnum\thectr=3\color{red}\fi 3 }
\end{itemize}
\end{frame}
}
\ifnum\thectr=1 { \begin{frame}{All about 1}\end{frame} } \fi
\ifnum\thectr=2 { \begin{frame}{All about 2}\end{frame} } \fi
\ifnum\thectr=3 { \begin{frame}{All about 3}\end{frame} } \fi
}
\end{document}
所以我的结构是这样的:我解释计划,然后展示我正在执行的计划项目,展开该项目,重复直到完成。但是,我想更改列表选项,以便计划幻灯片第一次出现时(ctr=1,gulp=1)它将采用不同的格式(具体来说,[<+->],或项目的增量显示。)
我怎样才能用条件更改格式?我尝试了一些方法,例如,
\begin{frame}{Plan}
\ifnum\thectr=1\ifnum\thegulp=1\begin{itemize}[<+->]\fi
\else \begin{itemize}[]\fi
\item {\ifnum\thectr=1\ifnum\thegulp=2\color{red}\fi\fi 1 }
和
\ifnum\thectr=1\ifnum\thegulp=1\def \listformat { <+-> }
\else \def \listformat { } \fi
\begin{itemize[\listformat]}
所以,伙计们,谁能告诉我[可能非常明显的]方法吗?
答案1
您可以使用覆盖规范和\againframe
命令做任何您想做的事情。首先,按如下方式格式化列表:
\begin{enumerate}[<+-| alert@+>]
\item collect underpants
\item ...
\item profit!
\end{enumerate}
规范+-
规定,每项应自动将暂停计数器加一,并从此步骤开始显示该项目。规范alert@+
规定,应\alert
在当前暂停时显示该项目,但之后不显示。这相当于:
\begin{enumerate}
\item<1- | alert@1> collect underpants
\item<2- | alert@2> ...
\item<3- | alert@3> profit!
\end{enumerate}
其次,如果您使用label=myframe
选项标记一个框架,您可以稍后通过键入 来返回它\againframe{myframe}
。您可以将其与叠加规范相结合,以立即显示一个框架的一张幻灯片(或几张幻灯片),稍后显示其他幻灯片。例如:
\begin{frame}<1>[label=myframe] \only<1>{foo} \only<2>{bar} \end{frame}
% displays slide 1 of this frame only
\begin{frame} stuff about foo \end{frame}
\againframe<2>{myframe} % now display slide 2 only
\begin{frame} stuff about bar \end{frame}
把它们放在一起得到以下结果:
\documentclass{beamer}
\begin{document}
\begin{frame}<1>[label=theplan]{The Plan}
\begin{enumerate}[<+-| alert@+>]
\item collect underpants
\item ...
\item profit!
\end{enumerate}
\end{frame}
\begin{frame}{Step 1: Collect Underpants}
\end{frame}
\againframe<2>{theplan}
\begin{frame}{Step 2: ...}
\end{frame}
\againframe<3>{theplan}
\begin{frame}{Step 3: Profit!}
\end{frame}
\end{document}