![aula de exame: defina um novo ambiente que depende de \printanswers](https://rvso.com/image/370296/aula%20de%20exame%3A%20defina%20um%20novo%20ambiente%20que%20depende%20de%20%5Cprintanswers.png)
Estou tendo problemas para definir um novo ambiente que depende da opção \printanswers da turma do exame.
\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}
Quando uso \printanswers tudo parece bem, mas quando uso \noprintanswers recebo o erro:
! Incomplete \iffalse; all text was ignored after line 17.
Quero que o ambiente de notas fique oculto quando uso \noprintanswers.
Responder1
Para suprimir um ambiente, uma técnica é torná-lo igual ao {comment}
ambiente definido pelo pacote literal. Outra é colocar o corpo do comando em a \vbox
e jogar fora o \vbox
, que é a solução usada pelo ambiente do exame. Esta é a \vbox
abordagem:
\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}