为什么注释包要求同一行上不能有空格?

为什么注释包要求同一行上不能有空格?

注释包允许您注释掉这样的代码块:

\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. 为什么这个包需要这个?
  2. 还有其他替代方案吗(除了%对每一行都使用),解决方法等等?

答案1

您会在大多数逐字包/环境中看到类似的限制。

comment是一个verbatim环境,因此在其范围内所有常规处理都被禁用,这允许您注释掉不匹配的构造,如 unmatched{\begin{zzz}no \end。因此,特别\end{comment}是不会\end自动调用常规处理,环境必须检查每一行的文字字符串\end{comment},因此根据包作者想要使此字符串处理的复杂程度,对定位施加限制是很自然的,例如不允许同一行上有其他文本。

在每一行的开头放置或删除%是一种可行的选择,许多 TeX 编辑器会通过几次击键以这种方式注释/取消注释某个区域,因此可能比注释环境更少输入。

或者在某些情况下您可以使用,\iffalse .....\fi但不能以\if这种方式注释掉不匹配的内容。

相关内容