![注释掉大段内容](https://linux22.com/image/236937/%E6%B3%A8%E9%87%8A%E6%8E%89%E5%A4%A7%E6%AE%B5%E5%86%85%E5%AE%B9.png)
要“注释掉”一行,我需要%
在该行开头插入一个(这样该行就不会被编译)。
有没有办法注释掉一大段内容而不用手动放置%
在每一行前面?
答案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 之外,还有其他方法可以解决这个问题。
- 您可以使用编辑器的注释功能来注释掉大段内容。例如,在 Emacs 中C-c ;注释(或取消注释)区域(参见例如http://www.gnu.org/software/auctex/manual/auctex/Commenting.html#Commenting了解详情)。
- 您可以使用版本控制这样您就可以删除大段内容而不必担心丢失它们。
这两种解决方案的优点在于它们都独立于特定的 LaTeX 包和代码。