在Beamer中包含/排除已定义的帧

时间:2016-03-08 13:59:53

标签: include latex beamer

我有一个包含许多帧的大型Beamer文件。根据演示目的,我想在演示文稿中包含/排除某些幻灯片。有没有办法在文档末尾定义框架并在需要时调用它们?如下所示:

\documentclass{beamer}
\begin{document}

% including the frames
\include{F1}
\include{F2}
% \include{F3}
\include{F4}


% frame definitions
\begin{frame}[F1]
1
\end{frame}
\begin{frame}[F2]
2
\end{frame}
\begin{frame}[F3]
3
\end{frame}
\begin{frame}[F4]
4
\end{frame}
\end{document}

我知道我可以逐帧进行添加<beamer:0>以排除该帧,但由于演示时间过长,如果我有可能按上述方式进行操作会很棒。

2 个答案:

答案 0 :(得分:1)

我并不认为以下内容非常漂亮,但您可以为每个框架定义\newcommand唯一,其中命令只会转换为单个值0(已排除)或1(包括在内)。 E.g。

\newcommand{\includeFrameA}{0} % exclude frame
\newcommand{\includeFrameB}{1} % include frame

然后,使用帮助命令

\newcommand{\includeFrame}[1]{beamer:#1}

您可以通过在框架环境签名中添加<\includeFrame{\includeFrameX}>来定义框架;如此包含/排除框架,具体取决于文档标题中指定的\includeFrameX的值。

以下示例排除了框架&#34; A&#34;和&#34; C&#34;,并且制作的演示文稿仅包括两页,包含&#34; B&#34;和&#34; D&#34;分别。

\documentclass{beamer}

\newcommand{\includeFrame}[1]{beamer:#1}

% one command per frame, 0/1 : exclude/include
\newcommand{\includeFrameA}{0}
\newcommand{\includeFrameB}{1}
\newcommand{\includeFrameC}{0}
\newcommand{\includeFrameD}{1}

\begin{document}

% frame definitions
\begin{frame}<\includeFrame{\includeFrameA}>
A
\end{frame}

\begin{frame}<\includeFrame{\includeFrameB}>
B
\end{frame}

\begin{frame}<\includeFrame{\includeFrameC}>
C
\end{frame}

\begin{frame}<\includeFrame{\includeFrameD}>
D
\end{frame}

\end{document}

答案 1 :(得分:0)

这正是\includeonlyframes命令的作用:

\documentclass{beamer}

\includeonlyframes{%
F1,%
F2,%
%F3,%
F4,%
}


\begin{document}

\begin{frame}[label=F1]
1
\end{frame}
\begin{frame}[label=F2]
2
\end{frame}
\begin{frame}[label=F3]
3
\end{frame}
\begin{frame}[label=F4]
4
\end{frame}

\end{document}
相关问题