我对\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}