注释掉大段内容

注释掉大段内容

要“注释掉”一行,我需要%在该行开头插入一个(这样该行就不会被编译)。

有没有办法注释掉一大段内容而不用手动放置%在每一行前面?

答案1

您可以使用\iffalse ... \fi它来使 (La)TeX 不编译其间的所有内容。但是,如果\ifxxx ... \fi其中有不匹配的对或使用 if-switch 执行其他特殊操作,这可能无法正常工作。对于普通用户文本来说应该没问题。

还有一个comment包可以为您提供comment逐字忽略其中所有内容的环境。它允许您定义自己的环境并打开和关闭它们。您可以通过将其放在\usepackage{comment}序言中来使用它。以下是一个例子:

\usepackage{comment}
\begin{document}
\section{Multi-line comments}}
\begin{comment}
This is a comment,
a multi-line comment,
indeed.
\end{comment}
\end{document}

答案2

您可以使用\iffalse

\iffalse
One morning, as Gregor Samsa was waking up from anxious dreams, he discovered
that in his bed he had been changed into a monstrous verminous bug. He lay on
his armour-hard back and saw, as he lifted his head up a little, his brown,
arched abdomen divided up into rigid bow-like sections.
\fi

当然,这必须与文档中的其他语法 TeX 结构保持一致,但您可以%更自由地使用。好消息是,您可以引入自己的开关以使其成为可选项:

\newif\ifdraft
\drafttrue % or \draftfalse

\ifdraft
<only shown in draft mode>
\else 
<only shown in non-draft mode>
\fi

该部分是可选的,如果您不需要它,\else可以使用。\ifdraft ... \fi

答案3

verbatim包提供了一个comment环境:

\documentclass{article}
\usepackage{verbatim}
\begin{document}
    This text will be displayed
\begin{comment}
    This text will not be displayed.
\end{comment}
\end{document}

LaTeX2e 的简短介绍在第 6 页提到了这个选项并备注:“请注意,这在复杂环境中不起作用,例如数学。”

答案4

除了通过 (La)TeX 之外,还有其他方法可以解决这个问题。

这两种解决方案的优点在于它们都独立于特定的 LaTeX 包和代码。

相关内容