我正在寻找使项目出现在接下来三张幻灯片上的语法。我设想的是
\item<+-??>
应该\item
出现在这里,并在 3 张幻灯片之后消失,就像我使用\only
(IE一旦物品消失,就不应该留下任何空间)。
我正在使用 来说明这一点\item
,但我正在寻找通用的语法。
答案1
在投影机中的相对覆盖规范?我介绍了如何使用相对规范,但我坚持使用可见/不可见切换。您需要的是“扩展”语法,它还允许在某些幻灯片上进行更改或(此处)应用\only
类似效果:
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}
\item<+-> item 1
\item<+-> item 2
\item<only@+-.(3)> item 3
\item<+-> item 4
\item<+-> item 5
\item<+-> item 6
\end{itemize}
\end{frame}
\end{document}
这里的关键是only@
“标准”相对规范的前缀,它将执行正常的“可见/不可见”操作切换为“唯一”操作。后面的部分与@
我的另一个答案中描述的完全相同。
答案2
我认为您需要创建自己的宏,例如:
\documentclass{beamer}
\newcommand{\mytimeditem}[1]{\only<+>{\item #1}\only<+>{\item #1}\only<+>{\item #1}}
\begin{document}
\begin{frame}
\begin{itemize}
\item<+-> item 1
\item<+-> item 2
\mytimeditem{item 3}
\item<+-> item 4
\item<+-> item 5
\item<+-> item 6
\end{itemize}
\end{frame}
\end{document}
如果要在“第 3 项”处留一个空行,请将最后\only
一行替换\mytimeditem
为\onslide
第二版本:
\documentclass{beamer}
\newcommand{\mytimeditem}[1]{\only<+>{\item #1}\only<+>{\item #1}\only<+>{\item #1}\addtocounter{beamerpauses}{-2}}
\begin{document}
\begin{frame}
\begin{itemize}
\item<+-> item 1
\item<+-> item 2
\mytimeditem{item 3}
\item<+-> item 4
\item<+-> item 5
\item<+-> item 6
\end{itemize}
\end{frame}
\end{document}
更通用的版本
使用expl3
(代码来自@Joseph Wright 回答) 和calc
\documentclass{beamer}
\usepackage{expl3}
\usepackage{calc}
\ExplSyntaxOn
\cs_new_eq:NN \Repeat \prg_replicate:nn
\ExplSyntaxOff
\newcommand{\timeditem}[2]{
\Repeat{#1}{
\only<+>{\item #2}
}\addtocounter{beamerpauses}{-#1+1}
}
\begin{document}
\begin{frame}
\begin{itemize}
\item<+-> item 1
\item<+-> item 2
\timeditem{4}{item 3}
\item<+-> item 4
\item<+-> item 5
\item<+-> item 6
\item<+-> item 7
\end{itemize}
\end{frame}
\end{document}
现在可以动态指定相对重复次数,并pause
自动调整 s 的数量。