请参阅覆盖规范中的最后一张幻灯片(构建阶段)

请参阅覆盖规范中的最后一张幻灯片(构建阶段)

在 beamer 的覆盖规范中,是否有一种紧凑的方式来引用最后一张幻灯片(构建阶段)?我正在寻找类似于<.>(引用当前幻灯片)或<+>(在当前位置生成新幻灯片)的内容。

更具体地说,请考虑以下 MWE。它创建一个列表,其中每个项目都出现在新幻灯片上。然后,最后,我想突出显示文本“B”。

\documentclass{beamer}

\begin{document}

\begin{frame}
  \begin{itemize}[<+->]
    \item A
    \item \alert<4>{B}
    \item C
  \end{itemize}
\end{frame}

\end{document}

这符合我的预期,但如果我现在添加另一项

    \item D

并且仍然希望在列表完成后突出显示,那么我必须手动更改 中的数字<4>。当框架包含很多幻灯片时,这可能会有点麻烦……如果有办法,比如说,通过从末尾计数来指定幻灯片,那就更优雅了,但我在手册中找不到任何类似的东西。然后我只需在代码\pause末尾附加一个,然后将第二项替换为类似

    \item \alert<n1>{B}

其中“n1”指的是“负 1”,以避免与“-1”(所有滑动直到 1)混淆。存在类似的东西吗?

答案1

这实际上是一个非常棘手的问题——突出显示框架最后一张幻灯片上的某些内容很容易做到(您可以从 frameendpage-framestartpage 计算幻灯片总数),但如果我正确理解您的问题,您不希望突出显示框架的最后一张幻灯片,而是突出显示它之后的一张幻灯片。这意味着必须创建一个额外的覆盖,这会改变此框架中的幻灯片数量,这意味着在下一次运行中,最后一张幻灯片不再是最后一张幻灯片......

解决此困境的一种方法是手动创建附加覆盖:

\documentclass{beamer}

\newcounter{foo}

\begin{document}

\begin{frame}
  \begin{itemize}[<+->]
    \item A
    \item 
        \setcounter{foo}{\insertframeendpage}
        \addtocounter{foo}{-\insertframestartpage}
        \addtocounter{foo}{1}
        \alert<\thefoo>{B}   
    \item C
    \item D 
  \end{itemize}
    \only<+>{}
\end{frame}

\end{document}

在此处输入图片描述

答案2

像这样吗?

\documentclass{beamer}

\begin{document}

\begin{frame}
  \begin{itemize}[<+->]
    \item A
    \item \alert<4>{B}
    \item C 
    \item<\thebeamerpauses> D
  \end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

根据您正在做的其他事情,\item<\value{beamerpauses}> D可能会更好。

相关内容