我正在使用带有覆盖规范的项目列表<+(1)->
。对于其中一个项目,我希望项目列表后面的文本与该项目同时显示出来。我该如何实现?
\begin{frame}
\begin{itemize}[<+(1)->]
\item First item
\item ...
\item An item somewhere in the middle of the list
\item ...
\item Last item
\end{itemize}
Some text to be synchronized with the item in the middle of the list
\end{frame}
笔记:尽管我想要与列表项同时发现的文本当前位于列表之后,但我可能决定将其移动到列表之前。
答案1
不确定这是否涵盖了所有(甚至大多数)投影仪的可能性,但它在这里有效(请始终使用完整的文档作为示例,而不仅仅是片段,这简化了测试)。
\zz
用一些标签标记特殊项目,然后使用`\yy
标签,其工作原理应该\only<4->
与本例类似。需要两次 latex 运行,以应对列表前文本所需的前向引用。
\documentclass{beamer}
\begin{document}
\makeatletter
\def\zz#1{%
\expandafter\ifx\csname foo@#1\endcsname\relax
\expandafter\xdef\csname foo@#1\endcsname{\the\c@beamerpauses}%
\immediate\write\@auxout{\def\string\foo@#1{\the\c@beamerpauses}}%
\fi}
\def\yy#1{%
\expandafter\ifx\csname foo@#1\endcsname\relax
\typeout{layer of [#1] unknown}%
\let\@foo\@gobble
\else
\edef\@foo{\noexpand\only<\csname foo@#1\endcsname->}%
\fi
\@foo}
\makeatother
\begin{frame}
\yy{this}{Some text to be synchronized with the item in the middle of the list}
%\tracingall
\begin{itemize}[<+(1)->]
\item First item
\item ...
\item An item somewhere in the middle of the list\zz{this}
\item ...
\item Last item
\end{itemize}
\yy{this}{Some text to be synchronized with the item in the middle of the list}
\end{frame}
\end{document}
答案2
如果您想要从幻灯片 4 开始显示文本,则需要使用<4->
以下命令之一作为覆盖规范:
\uncover<4->{text}
: 什么时候文本不显示,仍占用部分空间。\only<4->{text}
: 什么时候文本不显示,不占用任何空间。action<4->{text}
:在数学模式下也有效。
\documentclass{beamer}
\begin{document}
\begin{frame}
\begin{itemize}[<+(1)->]
\item First item
\item ...
\item An item somewhere in the middle of the list
\item ...
\item Last item
\end{itemize}
\action<4->{Some text to be synchronized with the item in the middle of the list}
\end{frame}
\end{document}
计数器beamerpauses
会跟踪幻灯片编号。如果您不想手动查找幻灯片编号,可以使用命令访问它\thebeamerpauses
。然后您可以将其保存在某个地方,以便稍后在叠加规范中使用它:
\documentclass{beamer}
\begin{document}
\newcounter{slidenumber}
\begin{frame}
\begin{itemize}[<+(1)->]
\item First item
\item ...
\item An item somewhere in the middle of the list \setcounter{slidenumber}{\thebeamerpauses}
\item ...
\item Last item
\end{itemize}
\action<\theslidenumber->{Some text to be synchronized with the item in the middle of the list}
\end{frame}
\end{document}
不过,我不确定将值保存在计数器中是否是正确的举动。