![clase de examen: define un nuevo entorno que depende de \printanswers](https://rvso.com/image/370296/clase%20de%20examen%3A%20define%20un%20nuevo%20entorno%20que%20depende%20de%20%5Cprintanswers.png)
Tengo problemas para definir un nuevo entorno que depende de la opción \printanswers de la clase de examen.
\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}
Cuando uso \printanswers todo se ve bien, pero cuando uso \noprintanswers aparece el error:
! Incomplete \iffalse; all text was ignored after line 17.
Quiero que el entorno de notas esté oculto cuando uso \noprintanswers.
Respuesta1
Para suprimir un entorno, una técnica consiste en igualarlo al {comment}
entorno definido por el paquete textual. Otra es poner el cuerpo del comando en a \vbox
y desechar \vbox
, que es la solución que utiliza el entorno de examen. Este es el \vbox
enfoque:
\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}