我已经定义了以下生成问题陈述的环境:
\newcounter{psctr}
\newcounter{probctr}[psctr]
\NewDocumentEnvironment{prob}{o}{%
\addtocounter{probctr}{1}
\vspace{.15in}
\IfNoValueTF{#1} {%
\noindent\textbf{Problem \thepsctr.\theprobctr}%
}{%
\noindent\textbf{Problem \thepsctr.\theprobctr} (#1 points) %
}%
\smallskip\noindent\ignorespaces%
}{}
我想prob
在整个文档中显示或隐藏实例。我尝试comment
使用 进行打包\excludecomment{comment}
,但这会产生错误。有没有办法注释掉已经定义的环境?
答案1
您可以使用该comment
包:
\documentclass{scrreprt}
\usepackage{xparse,comment}
\newcounter{psctr}
\newcounter{probctr}[psctr]
\NewDocumentEnvironment{prob}{o}
{%
\par
\addvspace{.15in}%
\addtocounter{probctr}{1}%
\noindent\textbf{Problem \thepsctr.\theprobctr}%
\IfNoValueF{#1}{ (#1 points)}%
\par\nopagebreak\smallskip\noindent\ignorespaces%
}
{\par\addvspace{.15in}}
%\excludecomment{prob}
\begin{document}
test
\begin{prob}[2]
test
\end{prob}
\end{document}
删除%
前面的\excludecomment{prob}
以禁用该环境。
我对您的定义做了一些修正。在这种情况下,最好使用\addvspace
而不是,这样垂直空间就不会简单地添加;我也在问题文本后添加了它,但两个连续的问题将只有一个垂直空间。此外,在之前也需要添加 ,以避免在“问题 n”和文本之间出现不必要的分页符。\vspace
\nopagebreak
\smallskip
答案2
您可以使用为此目的verbatim
定义环境的包。comment
因此,写作
\let\prob\comment
\let\endprob\endcomment
你说你的prob
环境应该被视为一条评论。
梅威瑟:
\documentclass[liststotoc,bibtotoc,headsepline]{scrreprt}%draft
\usepackage{xparse,verbatim}
\newcounter{psctr}
\newcounter{probctr}[psctr]
\NewDocumentEnvironment{prob}{o}{%
\addtocounter{probctr}{1}
\vspace{.15in}
\IfNoValueTF{#1} {%
\noindent\textbf{Problem \thepsctr.\theprobctr}%
}{%
\noindent\textbf{Problem \thepsctr.\theprobctr} (#1 points) %
}%
\smallskip\noindent\ignorespaces%
}{}
\let\prob\comment
\let\endprob\endcomment
\begin{document}
test
\begin{prob}
test
\end{prob}
\end{document}