![LaTeX 尝试关闭评论环境时出错](https://linux22.com/image/342183/LaTeX%20%E5%B0%9D%E8%AF%95%E5%85%B3%E9%97%AD%E8%AF%84%E8%AE%BA%E7%8E%AF%E5%A2%83%E6%97%B6%E5%87%BA%E9%94%99.png)
我正在尝试创建一个文档,其中可以根据包含 \includecomment{answer} 来显示或不显示答案。我决定使用评论包,因为我在这里找到的示例看起来非常简单,但它仍然让我感到困惑。我还需要让个人能够选择哪些问题/答案与他们的项目相关。
我正在尝试使用 answer 环境,但它似乎无法在 if/then 中工作。下面是我认为应该运行的一小部分示例。我知道 \end{answer} 需要单独一行。它前后没有空格。如果 (a) 我注释掉 \begin 和 \end{answer},或者如果 (b) 我注释掉项目前后的 if/then 行,则代码将编译。如果我尝试同时使用两者进行编译,我会收到以下错误:
...包括‘答案’评论。)
失控的争论?
!扫描使用 \next 时文件结束。
< 插入文本 >
\par
< * > 示例.tex
\documentclass{article}
\usepackage{ifthen}
\usepackage{comment}
\newcommand{\usetwo}{1} %Use Q2? 1 for yes, 2 for no.
\includecomment{answer}
\begin{document}
\begin{enumerate}
\item Question 1
\ifthenelse{\equal{\usetwo}{1}}{
\item Question 2\\
\begin{answer}
Answer 2 goes here.
\end{answer}
}%
{}% if not set to 1
\end{enumerate}
\end{document}
答案1
您不能将类似注释的环境作为参数传递给其他宏。相反,请使用\if
如下结构:
\documentclass{article}
\usepackage{comment}
\newif\ifquestiontwo
\questiontwofalse% \questiontwotrue
\includecomment{answer}
\begin{document}
\begin{enumerate}
\item Question 1
\ifquestiontwo
\item Question 2
\begin{answer}
Answer 2 goes here.
\end{answer}
\fi
\end{enumerate}
\end{document}
\questiontwotrue
您可以通过/切换是否使用问题 2 \questiontwofalse
。