是否有任何命令允许我使一些文本块不可见(只要我最初这么说)?
即,我想在文中标记一些行,这些行将仅当我在文档的开头说了类似“那些文本块打开”的内容时,才会出现在编译的 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}