我尝试在环境comment
中使用该包enumerate
,但出现编译错误。最小示例:
\documentclass{article}
\usepackage{comment}
\specialcomment{com}{}{}
\excludecomment{com}
\begin{document}
\begin{enumerate}
\item Outside.
\begin{com}
Inside.
\end{com}
\end{enumerate}
\end{document}
这会产生以下错误:
Runaway argument?
! File ended while scanning use of \next.
<inserted text>
\par
作为参考,没有 一切都正常工作enumerate
,如下例所示:
\documentclass{article}
\usepackage{comment}
\specialcomment{com}{}{}
\excludecomment{com}
\begin{document}
Outside.
\begin{com}
Inside.
\end{com}
\end{document}
这是一个已知问题吗?我找不到任何相关信息(“评论”并不是一个 Google 友好的搜索词...)。
答案1
该comment
软件包有一个重要的限制;引用文档
开始和结束命令应单独成行。起始命令和结束命令之间不应有任何空格,后面也不应有任何内容。
因此,关于这一点,没有什么可说的了:不要缩进您想要“注释掉”的环境。
这是一个不同的实现;我保留了三个参数的相同语法\specialcomment
,尽管第二和第三个参数没有执行任何操作(可以使用它们进行改进)。
\documentclass{article}
\usepackage{environ,etoolbox}
\newcommand\specialcomment[3]{%
\newtoggle{#1}\toggletrue{#1}
\NewEnviron{#1}{\iftoggle{#1}{\BODY}{}}
}
\newcommand{\excludecomment}[1]{\togglefalse{#1}}
\newcommand{\includecomment}[1]{\toggletrue{#1}}
\specialcomment{com}{}{}
\excludecomment{com}
\begin{document}
\begin{enumerate}
\item Outside.
\begin{com}
Inside.
\end{com}
\item Outside. Inside.
\end{enumerate}
\end{document}