beamer:重复帧的变化

beamer:重复帧的变化

在 Latex Beamer 中我想要执行以下操作:

  1. 重复一帧(来自之前的一些幻灯片)
  2. 重复一遍,但将一些单词设为灰色(或不透明度最好为 50%),将其他单词设为红色
  3. 再重复一遍,但不要使用上一张幻灯片中的灰色单词

除了复制和粘贴解决方案之外,还有其他优雅的方法吗?

答案1

beamer重新定义了标准文档类中的几乎所有环境(和许多宏),以适应其使用覆盖规范。因此,您所追求的构成了 的基本功能的一部分beamer。您可以混合使用标准覆盖规范(与现有命令相关联,例如\item来自enumerateitemize环境)或使用诸如\only\uncover\visible或 之类的命令\onslide。以下最小示例取自文档并略作修改,旨在突出显示这一点。单个代码frame会生成 3 张幻灯片,具体取决于覆盖规范:

\documentclass{beamer}% http://ctan.org/pkg/beamer
\usetheme{warsaw}%
\setbeamercovered{transparent}% Allow for shaded (transparent) covered items
\begin{document}
\begin{frame}
  \frametitle{There Is No Largest Prime Number}
  \framesubtitle{The proof uses \textit{reductio ad absurdum}.}
  \begin{theorem}
    There is no largest prime number.
  \end{theorem}
  \begin{proof}
    \begin{enumerate}
      \item<1-| alert@1> Suppose $p$ were the largest prime number.
      \item<2-> Let $q$ be the \alt<3>{\alert{product}}{product} of the \uncover<3->{first} $p$ numbers.
      \item<3-> Then $q+1$ is not divisible by any of them.
      \item<1-> But $q + 1$ is \visible<2->{greater than} $1$, thus divisible by some prime
        number not in the first $p$ numbers.\qedhere
    \end{enumerate}
  \end{proof}
\end{frame}
\end{document}

Beamer 覆盖规范示例

欲了解更多信息,请阅读beamer文档。附注 - 看看覆盖规范如何与第一个的透明度嵌套在一起\item。该词first两次设置为某种透明不透明度。正如它揭示的那样,透明度以逐步的方式消失。

就您的具体情况而言,听起来frame您想要重用的位于演示文稿开头的某个位置。虽然\againframe看起来相关,但可能是您复制了之前的frame代码,但这次添加了一些覆盖规范。

复制现有代码frame(为了便于自动更改源代码frame)的一种可能替代方法是使用\againframe和一些宏的组合。这是一个(非常)简单的例子:

\documentclass{beamer}% http://ctan.org/pkg/beamer
% Original macro \mymacro essentially does nothing
\newcommand{\mymacro}[1]{#1}% \mymacro{..}
\begin{document}
\begin{frame}[label=example]% This is frame 'example'
  Here is some \mymacro{content}.
\end{frame}

% Redefining \mymacro to change its argument into an \alert{..}
\renewcommand{\mymacro}[1]{\alert{#1}}%
\againframe{example}% Re-use frame 'example'
\end{document}

使用 \againframe

但是,由于您使用了,因此 LaTeX 会对多重定义的标签提出投诉\againframe

答案2

\againframe是您的朋友。框架环境和\againframe本身都具有叠加感知能力。这意味着您可以为两者提供一个叠加规范,该规范规定“仅显示符合此规范的框架即使有更多代码“。因此,如果您有一个非常复杂的框架,但将其放在\begin{frame}<1>[label=repeated]开头,那么只会显示第一张幻灯片,而不管所有其他信息。但所有这些信息都会保留,因此您以后可以说\againframe<2-3>{repeated}要获取下一部分。

我建议确保覆盖规范不重叠,如果您想要按原样重复某些内容,则可能需要对数字进行一些调整。然后,您必须确保幻灯片 2 是幻灯片 1 的精确副本。

以下是一个例子:

\documentclass{beamer}% http://ctan.org/pkg/beamer
%\url{http://tex.stackexchange.com/q/31031/86}
\begin{document}
\begin{frame}<1>[label=again]
  \frametitle{The Infamous Disappearing Text}

Here is a frame, it's a bit \alert<2-3>{boring}.

It's so boring, we'll see it \only<-3>{{\color<2-3>{gray}twice}}.

\only<3>{But the second time, we'll try to make it more interesting by making some of those words change colour.}

\only<5>{The third time, we'll wave a magic wand to make all the gray words disappear.}

\end{frame}

\begin{frame}
\frametitle{Some Comments}
This frame is perhaps even more so.
\end{frame}

\againframe<2-3>{again}

\begin{frame}
\frametitle{Some Comments}
Will this tedium ever end?
\end{frame}

\againframe<4-5>{again}

\end{document}

(我不会发布截图。它们和文本一样乏味。)

我在一年前举办的一次研讨会上用过这个。你可以查看 PDF这里(抱歉,那里没有来源)。要查看的幻灯片是 Beamer 版本的 59-61、75-76、81-82、87-88、95-97。这些都是单个框架,但显示在不同阶段。它不会编译,但实际帧的代码是:

\begin{frame}<1-3 |trans: 1|handout: 1>[label=definition]
\frametitle{\only<1-4|trans: 1|handout: 1>{First}\only<5-6|trans: 2| handout: 2>{Second}\only<7-8|trans: 3|handout: 3>{Third}\only<9-10| trans: 4|handout: 4>{Fourth}\only<11-12|trans: 5-6|handout: 5-6>{Fifth} Candidate\visible<12|trans: 6|handout: 6>{: Fr\"olicher Space}}

\begin{definition}[{\only<1-4|trans: 1|handout: 1>{First}\only<5-6|trans: 2|handout: 2>{Second}\only<7-8|trans: 3|handout: 3|handout: 3>{Third}\only<9-10|trans: 4|handout: 4|handout: 4>{Fourth}\only<11|trans: 5|handout: 5>{Fifth}\only<1-11|trans: 1-5|handout: 1-5|handout: 1-5>{ Attempt}\only<12|trans: 6|handout: 6>{Fr\"olicher Space}}]
A \alert{\alt<1-11|trans: 1-5|handout: 1-5| handout: 1-5>{smooth}{Fr\"olicher} space} is a triple \((X,\m{\alt<1-11|trans: 1-5|handout: 1-5| handout: 1-5>{I}{C}},\m{\alt<1-11|trans: 1-5| handout: 1-5>{O}{F}})\) where:
%
\begin{itemize}
\item \(X\) is a \alt<1-10|trans: 1-4|handout: 1-4>{\alert<1-3>{topological space}}{\alert<11>{set}}
\item \(\m{\alt<1-11|trans: 1-5|handout: 1-5>{I}{C}}\only<1-8|trans: 1-3| handout: 1-3>{(U)} \subseteq \Hom{\alt<1-10|trans: 1-4|handout: 1-4>{\TopCat}{\Set}}{\alt<1-8|trans: 1-3|handout: 1-3>{U}{\R}}{X}\),\only<1-8|trans: 1-3|handout: 1-3>{ \(U \subseteq \R^m\) open,}
\item \(\m{\alt<1-11|trans: 1-5|handout: 1-5>{O}{F}}\only<1-10|trans: 1-4| handout: 1-4>{(V\only<1-8|trans: 1-3|handout: 1-3>{;\R^m})} \subseteq \Hom{\alt<1-10|trans: 1-4|handout: 1-4>{\TopCat}{\Set}}{\alt<1-10|trans: 1-4|handout: 1-4>{V}{X}}{\alt<1-8|trans: 1-3|handout: 1-3>{\R^m}{\R}}\)\only<1-10|trans: 1-4|handout: 1-4>{, \(V \subseteq X\) open}.
\end{itemize}

\only<1-4|trans: 1|handout: 1>{\medskip}
\pause[2]

\only<5-11|trans: 2-5|handout: 2-5>{
such that

\begin{itemize}
\item \(\m{I}\) and \(\m{O}\) are \alert<5>{compatible},
\item \(\alt<5-6|trans: 2|handout: 2>{\overline{\m{I}}}{\m{I}}\) and \(\alt<5-6|trans: 2|handout: 2>{\overline{\m{O}}}{\m{O}}\) are  \only<5-6|trans: 2|handout: 2>{\alert<5>{also compatible}}\only<7-|trans: 3-| handout: 3->{\alert<7>{saturated}: \(\m{I} = \overline{\m{I}}\), \(\m{O} = \overline{\m{O}}\)}.
\end{itemize}
}
\only<12|trans: 6|handout: 6>{
such that

\begin{itemize}
\item \(\m{C} = \{\psi \colon \R \to X : \phi\psi \in \Ci(\R,\R), \phi \in \m{F}\}\)
\item \(\m{F} = \{\phi \colon X \to \R : \phi\psi \in \Ci(\R,\R), \psi \in \m{C}\}\)
\end{itemize}
}

A \alert{morphism} is a \only<1-10|trans: 1-4|handout: 1-4>{continuous }map \(f \colon X \to Y\) such
that
%
\[
  \phi f \psi \alt<1-2|trans: 1|handout: 1>{\text{ is }}{\in} \Ci \text{ for } \psi \in \m{\alt<1-11|trans: 1-5|handout: 1-5>{I}{C}}\only<1-2|trans:1|handout: 1>{(U)}, \phi \in \m{\alt<1-11|trans:1-5|handout: 1-5>{O}{F}}\only<1-2|trans: 1|handout: 1>{(V;\R^m)}
\]
\end{definition}

\only<3|trans: 1|handout: 1>{
Notation:
\begin{itemize}
\item smooth map = morphism
\item \(\psi \in \m{I}\), \(\phi \in \m{O}\), \(\theta \in \Ci\)
\end{itemize}
}
\end{frame}

重新调用如下:

\againframe<6-7|trans: 3|handout: 3>{definition}

(看一下,beamer如果你在序言中添加\newcommand\m[1]{\mathcal{#1}}和,它可能会编译成普通文档\newcommand{\Ci}{C^\infty}。不过,可能有些东西我遗漏了。)

答案3

你可以使用这样的方法:

\documentclass{beamer}

\usepackage{xcolor}

\begin{document}

\def\mytext#1{Here {\color{#1}is some} text} 
\begin{frame}
 \mytext{black}
\end{frame}
\begin{frame}
 \mytext{red}
\end{frame}
\begin{frame}
 \mytext{black}
\end{frame}

\end{document}

如果你愿意,你甚至可以使用

\def\mytext#1{\begin{frame}Here {\color{#1}is some} text\end{frame}} 

\begin{frame}...\end{frame}那么你就不必

\mytext{blue}

相关内容