有没有办法显示特定命令并隐藏其余命令

有没有办法显示特定命令并隐藏其余命令

我想对我的文档和附带的幻灯片使用同一个 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}

相关内容