我正在编写一份文档,其中一些文本部分是机密的,因此想要创建一个环境(例如confidential
),然后我可以通过简单地设置一个变量或选项将其从 PDF 中排除。
有没有办法在 LaTeX 中做到这一点,或者更好的是,是否有一个可以做到这一点的软件包?
答案1
你想要评论包。它提供了\includecomment
和\excludecomment
宏:
\documentclass{article}
\usepackage{comment}
\excludecomment{confidential}
\begin{document}
Some text
\begin{confidential}
Some secret text
\end{confidential}
\end{document}
答案2
newcommand
一种选择是renewcommand
结合使用:
\documentclass{article}
\newcommand{\confidential}[1]{#1}
\renewcommand{\condidential}[1]{} %Comment out this whole line to surpress exclusion.
\begin{document}
His name was \confidential{Frank}.
\end{document}
这种方法的一个优点是,您可以轻松地以不同的方式设置文本样式,并且可以在排除某些内容时显示标准消息。
例如:
\newcommand{\confidential}[1]{\textbf{#1}}
使所有包含的机密信息出现在大胆的。
更远,
\renewcommand{\condidential}[1]{\textbf{CONFIDENTIAL}}
将所有机密信息排除后,替换为占位符,内容为:机密的。
您还可以根据不同的需求轻松设置不同的环境。例如,如果您想要拥有不同级别的保密性,那么\superConfidential
除了\confidential
环境之外,您还可以拥有一个环境。
答案3
如果你发现评论包(按照建议约瑟夫·赖特的回答comment
)在某些复杂结构(如脚注)中使用它的环境时会给您带来麻烦,请使用版本看起来像是直接替换的包:
\documentclass{article}
\usepackage{version}
\excludeversion{confidential}
\begin{document}
Some text
\begin{confidential}
Some secret text
\end{confidential}
\end{document}
它也适用于脚注:
\documentclass{article}
\usepackage{version}
\excludeversion{confidential}
\begin{document}
Some text
\begin{confidential}
Some secret text
\end{confidential}
\footnote{A footnote.
\begin{confidential}
\item Some secret text
\end{confidential}
}
\end{document}
感谢 muk.li 分享此内容另一篇帖子。