仅在需要时才使文本块不可见

仅在需要时才使文本块不可见

是否有任何命令允许我使一些文本块不可见(只要我最初这么说)?

即,我想在文中标记一些行,这些行将仅当我在文档的开头说了类似“那些文本块打开”的内容时,才会出现在编译的 pdf 中;如果我说了“关闭那些文本块”之类的话,我就不希望它们出现。

这样做的目的是生成两个不同的文档:一个包含更多详细信息,另一个则没有这些详细信息

请注意,这是不一样如同幻影或评论命令一样。

答案1

最简单的方法是在序言中做这样的事情:

\newcommand{\additionalInfo}[1]{#1}

然后将所有这些行放入该宏中,如下所示:

\additionalInfo{I am additional}

如果你不想显示这些行,只需将上面的宏定义替换为

\newcommand{\additionalInfo}[1]{}

不如其他答案那么优雅,但在我看来这是最简单的解决方案......


\documentclass{article}

% switch comment to disable additional info
\newcommand{\additionalInfo}[1]{#1}
% \newcommand{\additionalInfo}[1]{}

\begin{document}
I am always here

\additionalInfo{I am additional}
\end{document}

答案2

一种可能性是这个multiaudience包:

\documentclass{article}

\usepackage{multiaudience}
\SetNewAudience{long}
% remove comment from the following line for the long version
%\DefCurrentAudience{long}

\begin{document}

normal text
\begin{shownto}{long}
   Text for execs
\end{shownto}
normal text 

\end{document}

答案3

您可以使用该ifthen包来实现这一点:

\documentclass{minimal}

\usepackage{ifthen}
\newboolean{somevariable}
\setboolean{somevariable}{false}

\begin{document}

\ifthenelse{\boolean{somevariable}}{Text if somevariable is true.}{Text if somevariable is false.}

\end{document}

答案4

使用包的方法version

\documentclass{article}

\usepackage{version}
%\excludeversion{foo}
\includeversion{foo}

\begin{document}

all versions

\begin{foo}
only in version foo
\end{foo}

\end{document}

相关内容