我使用 knitr 和 RStudio 与 XeLaTeX 创建包含多张幻灯片的演示文稿。但有时并非所有幻灯片都应出现在最终的 pdf 中。我是否可以设置一个变量,根据是否应包含所有幻灯片来更改该变量?
\documentclass{beamer}
#Here I would like to set parameter allslides=FALSE so that the tomato-slide "disappears" from pdf
\begin{document}
\begin{frame}[fragile]{A Slide about Apples}
Bla bla
\end{frame}
\begin{frame}[fragile]{A Slide about Tomatoes}
Bla bla
\end{frame}
\begin{frame}[fragile]{A Slide about Bananas}
Bla bla
\end{frame}
\end{document}
应该消失的幻灯片包含 pdf 接收者不应该获取的内容。
我尝试使用 \includeonlyframes 但无法使其工作(所有幻灯片都消失了)。
答案1
下面的代码应该可以完成这项工作,但是给出了一个extra }
我无法摆脱的错误。如果有人能修复它,我很乐意调整示例。
\documentclass{beamer}
\usepackage{ifthen}
\newboolean{tomatoes}
\setboolean{tomatoes}{true}
\begin{document}
\begin{frame}[fragile]{A Slide about Apples}
Bla bla
\end{frame}
\ifthenelse{\boolean{tomatoes}}{
\begin{frame}[fragile]{A Slide about Tomatoes}
Bla bla
\end{frame}
}{}
\begin{frame}[fragile]{A Slide about Bananas}
Bla bla
\end{frame}
\end{document}
答案2
你可以使用该environ
包定义一个条件框架环境,以吞噬其内容。例如,以下代码:
\documentclass{beamer}
\usepackage{environ}
\newenvironment{tomatoframe}{\begin{frame}}{\end{frame}}
%\NewEnviron{tomatoframe}{}{}
\begin{document}
\begin{frame}{A Slide about Apples}
Bla bla
\end{frame}
\begin{tomatoframe}{A Slide about Tomatoes}
Bla bla
\end{tomatoframe}
\begin{frame}{A Slide about Bananas}
Bla bla
\end{frame}
\end{document}
要获得删除番茄框架的 pdf,请取消注释该NewEnviron
行并注释该newenvironment
行。