\excludecomment 和 \newcommand 使用它

\excludecomment 和 \newcommand 使用它

我对\excludecomment来自评论包和的一个问题有疑问\newcommand

以下代码运行良好,这意味着它可以生成所需的 pdf 输出。

\documentclass{article}

\usepackage{comment}
\excludecomment{dontshow}

\begin{document}
This is a test.

\begin{dontshow}
test test test
\end{dontshow}

\end{document}

但是,如果我添加以下内容:

\newcommand{\noshow}[2]{#1=#2 \begin{dontshow}#2=#1\end{dontshow} #1=#2}
\noshow{abc}{def}

它会产生一个错误:

(c:/texlive/2010/texmf-dist/tex/latex/comment/comment.sty
Excluding comment 'comment') Excluding comment 'dontshow' (./test.aux))
Runaway argument?
! File ended while scanning use of \next.
<inserted text> 
                \par 
<*> test.tex

? 

我如何在中使用‘评论’ \newcommand

答案1

包的环境comment需要独立于其他环境:

开始和结束命令应单独成行。起始命令和结束命令之间不应有任何空格,后面也不应有任何内容。

据我所知,它们在像你这样的宏中不起作用,因为它们会逐字跳过所有内容。在那里,你可以对大多数内容使用 if 开关(不平衡的 if 开关除外)。

\documentclass{article}

\newif\ifshow
%\showtrue
\showfalse

\usepackage{comment}
\ifshow
\includecomment{dontshow}
\else
\excludecomment{dontshow}
\fi

\newcommand{\noshow}[2]{#1=#2 \ifshow #2=#1 \fi #1=#2}

\begin{document}
This is a test.

\begin{dontshow}
test test test
\end{dontshow}

\noshow{abc}{def}

\end{document}

相关内容