在一个投影仪文档中提供简短和长的演示文稿

在一个投影仪文档中提供简短和长的演示文稿

我正在寻找一种合理的方法,将同一场演讲的不同版本保存在一个 beamer 文件中:例如,15 分钟和 1 小时版本,其中一些内容是通用的,但有些则不是。有没有一种好的方法可以在版本之间切换?

\documentclass{beamer}
\begin{document}

\title{Presentation} 
\begin{frame}
\titlepage
\end{frame}

\begin{frame}{Issue 1} % both 
\end{frame}

\begin{frame}{Issue 2 - the gist of it} % only short 
\end{frame}

%\begin{frame}{Issue 2 - the detailed version } % only long
%\end{frame}

%\begin{frame}{Issue 2 - the detailed version, contd.} % only long
%\end{frame}

\begin{frame}{Issue 3} % both
\end{frame}

% etc.

\end{document}

答案1

您可以标记每个帧\begin{frame}[label=both] 然后使用

\includeonlyframes{<frame label list>}

一个样品:

\documentclass{beamer}
%\includeonlyframes{title,both,short1,both1}      %% for short
\includeonlyframes{title,both,long1,long2,both1}  %% for long
\begin{document}

\title{Presentation}
\begin{frame}[label=title]
\titlepage
\end{frame}

\begin{frame}[label=both]{Issue 1} % both
both
\end{frame}

\begin{frame}[label=short1]{Issue 2 - the gist of it} % only short
short 1
\end{frame}

\begin{frame}[label=long1]{Issue 2 - the detailed version } % only long
long 1
\end{frame}

\begin{frame}[label=long2]{Issue 2 - the detailed version, contd.} % only long
long 2
\end{frame}

\begin{frame}[label=both1]{Issue 3} % both
both 1
\end{frame}

% etc.

\end{document}

答案2

您可以使用该包为将出现在演示文稿“长版本”中的帧environ创建一个新环境。该环境将用于两者中的帧。然后可以使用布尔值在两者之间切换:lvframeframe

\documentclass{beamer}
\usepackage{environ}

\newif\iflongversion \longversiontrue%change to \longversiontrue to include the frames in the long version
\NewEnviron{lvframe}[3][]{%
    \iflongversion\begin{frame}[environment=lvframe,#1]{#2}{#3}
    \BODY
    \end{frame}\fi}

\begin{document}

\title{Presentation} 
\begin{frame}
\titlepage
\end{frame}

\begin{frame}{Issue 1} % both 
\end{frame}

\begin{frame}{Issue 2 - the gist of it} % only short 
\end{frame}

\begin{lvframe}{Issue 2 - the detailed version }{} % only long
\end{lvframe}

\begin{lvframe}{Issue 2 - the detailed version, contd.}{} % only long
\end{lvframe}

\begin{frame}{Issue 3} % both
\end{frame}

% etc.

\end{document}

更改\longversionfalse\longversiontrue以获取“长版本”。

编辑:

以上是根据 OP 和下面 @MickG 的评论更正的答案。这个定义应该处理 的最常见实现\begin{frame},特别是 形式的实现\begin{frame}[options]{title}{subtitle}。请注意,{}如果subtitle不需要 参数(lvframe没有 的复杂可选参数解析),则 是必需的。此外,如果需要frame,这将不起作用。<overlay>

答案3

versions我使用可以让我轻松包含/排除许多连续的帧的包来管理它:

\documentclass{beamer}
\usepackage{xifthen}
\usepackage{versions}
%
\newboolean{longversion}
%
% Uncomment the following line to get the long version
% \setboolean{longversion}{true}
%
\ifthenelse{\boolean{longversion}}{%
  \includeversion{longversion}
  \excludeversion{shortversion}
}{%
  \excludeversion{longversion}
  \includeversion{shortversion}
}
\begin{document}

\title{Presentation}
\begin{frame}
\titlepage
\end{frame}

\begin{frame}{Issue 1} % both
\end{frame}

\begin{shortversion}
  \begin{frame}{Issue 2 - the gist of it} % only short
  \end{frame}
\end{shortversion}

\begin{longversion}
  \begin{frame}{Issue 2 - the detailed version } % only long
  \end{frame}

  \begin{frame}{Issue 2 - the detailed version, contd.} % only long
  \end{frame}
\end{longversion}

\begin{frame}{Issue 3} % both
\end{frame}

% etc.

\end{document}

答案4

有一个专门用于此目的的包,该beameraudience包:

\documentclass{beamer}

\usepackage[
    audience=experts
%   audience=beginners  
]{beameraudience}


\begin{document}

\begin{frame}{Title}
 all version
\end{frame}

\justfor{beginners}{
    \begin{frame}{Title}
      long version
    \end{frame}
}

\justfor{experts}{
    \begin{frame}{Title}
      short version
    \end{frame}
}

\end{document}

相关内容