Prüfungsklasse: neue Umgebung definieren, die von \printanswers abhängt

Prüfungsklasse: neue Umgebung definieren, die von \printanswers abhängt

Ich habe Probleme beim Definieren einer neuen Umgebung, die von der Option \printanswers der Prüfungsklasse abhängt.

\documentclass{exam}
\usepackage{framed}

\printanswers
%\noprintanswers 

\newenvironment{note}{\ifprintanswers\begin{framed}\noindent\textbf{Note:}\par\noindent}{\end{framed}\fi}

\begin{document}
\begin{questions}
\question
question
\begin{solution}
    this is the solution
\end{solution}

\begin{note}
    this is a note
\end{note}

\end{questions}
\end{document}

Wenn ich \printanswers verwende, sieht alles gut aus, aber wenn ich \noprintanswers verwende, erhalte ich den Fehler:

! Incomplete \iffalse; all text was ignored after line 17.

Ich möchte, dass die Notizenumgebung ausgeblendet wird, wenn ich \noprintanswers verwende.

Antwort1

Um eine Umgebung zu unterdrücken, besteht eine Technik darin, sie der Umgebung gleichzusetzen, die {comment}im Verbatim-Paket definiert ist. Eine andere Möglichkeit besteht darin, den Hauptteil des Befehls in ein zu setzen \vboxund das wegzuwerfen \vbox. Dies ist die Lösung, die die Prüfungsumgebung verwendet. Hier ist der \vboxAnsatz:

\documentclass{exam}
\usepackage{framed}

\newenvironment{note}{%
    \ifprintanswers
        \begin{framed}\noindent\textbf{Note:}\par\noindent
    \else
        \setbox0\vbox\bgroup
    \fi
}{%
    \ifprintanswers
        \end{framed}%
    \else
        \egroup
    \fi%
}

\printanswers
%\noprintanswers

\begin{document}
\begin{questions}
\question
question
\begin{solution}
    this is the solution
\end{solution}

\begin{note}
    this is a note
\end{note}

\end{questions}
\end{document} 

verwandte Informationen