我定义了一个名为的环境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}