注释包允许您注释掉这样的代码块:
\documentclass{article}
\usepackage{comment}
\begin{document}
\section{Comments}
\subsection{How this package works}
Create block comments thus:
\begin{comment}
+++++This will be commented out+++++
\end{comment}
%%%%%
\subsection{My issue}
I'm in the habit of using plenty of white space to make my latex a little more readable.
Most of my code looks approximately like how I have set this out.
Therefore, I would really prefer to comment out large sections like this
\begin{comment}
This will cause an error because there is white space before \verb+\end+
\end{comment}
\end{document}
我有两个问题:
- 为什么这个包需要这个?
- 还有其他替代方案吗(除了
%
对每一行都使用),解决方法等等?
答案1
您会在大多数逐字包/环境中看到类似的限制。
comment
是一个verbatim
环境,因此在其范围内所有常规处理都被禁用,这允许您注释掉不匹配的构造,如 unmatched{
或\begin{zzz}
no \end
。因此,特别\end{comment}
是不会\end
自动调用常规处理,环境必须检查每一行的文字字符串\end{comment}
,因此根据包作者想要使此字符串处理的复杂程度,对定位施加限制是很自然的,例如不允许同一行上有其他文本。
在每一行的开头放置或删除%
是一种可行的选择,许多 TeX 编辑器会通过几次击键以这种方式注释/取消注释某个区域,因此可能比注释环境更少输入。
或者在某些情况下您可以使用,\iffalse .....\fi
但不能以\if
这种方式注释掉不匹配的内容。