
Ich habe eine Umgebung namens „“ definiert answer
, die die Antwort auf eine Frage eines Tests anzeigt, auf den ich mich vorbereiten soll.
Die Idee besteht darin, eine Version zu erstellen, in der die Antworten angezeigt werden, und eine, in der sie nicht angezeigt werden (um die Schüler zu testen).
Gibt es eine elegante Möglichkeit, Umgebungen zu deaktivieren?
Man kann natürlich einen Befehl definieren \ifanswer
und dann für jede Umgebung schreiben \ifanswer{\begin{answer}foo\end{answer}}
. Das Problem bei diesem Ansatz ist jedoch, dass man sich diesen Befehl jedes Mal merken und einfügen muss, und es wäre natürlich peinlich, wenn man ihn einmal vergisst.
MWE:
\documentclass{article}
\newenvironment{answer}{\textit{Answer} }{\textit{the end.}}
\begin{document}
Question: Bla
\begin{answer}
Foo
\end{answer}
\end{document}
Antwort1
Wie von David gesagt, können Sie comment
das Paket verwenden:
\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}
Wenn Sie es auf die harte Tour machen wollen -
\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}