Beamer 框架:在最后一张幻灯片中添加一些内容

Beamer 框架:在最后一张幻灯片中添加一些内容

如何创建一个新的环境,eframe以便在框架的最后一张幻灯片上添加一些元素(可以对该位置进行硬编码)?

假设我有许多包含大量\pauses 的帧:

\begin{frame}{Frame 1}
    one\pause two
\end{frame}

\begin{frame}{Frame 2}
    one\pause two\pause three
\end{frame}

替换frameeframe我希望最终得到以下行为:

\begin{frame}{Frame 1{\onslide<3>{END}}}
    one\pause two
\end{frame}

\begin{frame}{Frame 2{\onslide<4>{END}}}
    one\pause two\pause three
\end{frame}

我不想对这些数字进行硬编码34因为如果以后我决定添加更多pause,我将不得不更改这些数字。

答案1

下面定义的环境eframe就像一个普通的框架,但是附加了(结尾)在该帧的最后一张幻灯片上。

这个解决方案主要依赖于两个技巧:

  1. 仅在环境的最末端访问计数器的值beamerpauses(在环境的给定点frame,该计数器包含迄今为止在该帧中使用的覆盖规范的数量),以便获得该帧中的覆盖规范的总数;并且
  2. 约瑟夫·赖特的解决方案用于以编程方式改变框架中间的框架标题。

您可以轻松地重新定义eframe环境以满足您的需要。

在此处输入图片描述

\documentclass{beamer}

\makeatletter
\newcommand*{\augmentframetitle}[1]
{%
    \expandafter\frametitle\expandafter%
    {\beamer@frametitle #1}%
}
\makeatother

\newenvironment{eframe}
{%
    \begin{frame}
}{%
    \augmentframetitle{\ \onslide<\value{beamerpauses}>{(END)}}         
    \end{frame}
}

\begin{document}
    \begin{eframe}
    \frametitle{My last topic}
        foo\\
        \pause
        bar
    \end{eframe}
\end{document}

相关内容