我想对我的文档和附带的幻灯片使用同一个 Latex 源文件。
创建文档时,可以通过执行以下操作轻松隐藏幻灯片部分:
\newcommand{\slide}[1]{}
但是,我该如何做相反的事情,即,如果我只想打印幻灯片,我该如何只生成幻灯片并隐藏文档的其余部分?基本上我想说,如果内容不属于幻灯片区域,则不要显示它。
不幸的是,我没有一个简单的例子可以展示,因为我真的不知道从哪里开始。
答案1
一种方法是使用包将文档的environ
保存到其中,将传递给宏的文本保存在列表中,并在最后输出列表。以下\BODY
\savebox
\Slide
\begin{document}
abc
\Slide{Slide 1 content}
ghi
\Slide{Slide 2 content}
jkl
\end{document}
产量:
参考:
代码:
\documentclass{article}
\usepackage{environ}
%% --------------------------
\newsavebox{\DiscardedText}
\newcommand{\Slide}[1]{}
\newcommand{\SavedSlideText}{}
\newcommand\AddToSavedSlideText[1]{\xdef\SavedSlideText{\SavedSlideText#1\endgraf}}
\NewEnviron{GobbleExceptForSlide}{%
\renewcommand{\Slide}[1]{\AddToSavedSlideText{##1}}%
\savebox{\DiscardedText}{\BODY}%
\SavedSlideText%
}%
\AtBeginDocument{\GobbleExceptForSlide}
\AtEndDocument{\endGobbleExceptForSlide}
%% --------------------------
\begin{document}
abc
\Slide{Slide 1 content}
ghi
\Slide{Slide 2 content}
jkl
\end{document}