禁用环境的命令

禁用环境的命令

我定义了一个名为的环境answer,用于显示我应该准备的测试问题的答案。

我们的想法是编译一个显示答案的版本和一个不显示答案的版本(为了测试学生)。

有没有一种优雅的方法来禁用环境?

当然,你可以定义一个命令\ifanswer,然后\ifanswer{\begin{answer}foo\end{answer}}为每个环境写入 。但是,这种方法的问题在于,每次都需要记住并插入此命令,当然,忘记一次会很尴尬。


梅威瑟:

\documentclass{article}
\newenvironment{answer}{\textit{Answer} }{\textit{the end.}}
\begin{document}
Question: Bla
\begin{answer}
Foo
\end{answer}
\end{document}

答案1

正如 David 所说,您可以使用comment包:

\documentclass{article}
\usepackage{comment}
\newenvironment{answer}{\textit{Answer} }{\textit{the end.}}
\includecomment{answer}    %%% comment out to show the answer
\begin{document}
Question: Bla
\begin{answer}
Foo answer
\end{answer}
\end{document}

如果你想用困难的方式去做 -

\documentclass{article}
\usepackage{environ}
\usepackage{ifthen}
\newboolean{answers}
\setboolean{answers}{true}  %%% uncomment to show answers properly
%\setboolean{answers}{false}  %%% comment to show answers properly


\ifthenelse{\boolean{answers}}%
  {%
  \NewEnviron{answer}
    {%
    \textit{Answer}
    \BODY{}
    \textit{the end.}
        }%
}%
    {\NewEnviron{answer}
    {%
    \textit{Answer}
    \textit{the end.}
       }%
}%


\begin{document}
Question: Bla
\begin{answer}
Foo answer
\end{answer}
\end{document}

相关内容