.png)
Utilizo exam
mucho la clase, me gustan especialmente los entornos de solución. Mis documentos contienen preguntas y soluciones, pero al cambiar \printanswers
el preámbulo puedo cambiar fácilmente mostrando las soluciones o no.
Me gustaría hacer lo mismo parapistas. Me gustaría algo como:
\documentclass[11pt]{exam}
%\ifprintanswers
\ifprinthints
\begin{document}
\begin{questions}
\question Prove $e^{i\pi} +1 = 0$.
\begin{hints}
Consider $e^{i\theta} = \cos \theta + i\sin \theta$.
\end{hints}
\begin{solution}
duh.
\end{solution}
\end{questions}
\end{document}
He creado una clase personalizada que se basa en la exam
clase pero se carga en algunos paquetes y comandos personalizados, ¿qué comandos debo agregar para implementar esta funcionalidad? ¿Alguien podría ayudar?
Respuesta1
Una forma muy sencilla de hacerlo es utilizar elversiónpaquete. Si agregas las líneas:
\newenvironment{hints}{\textbf{Hint}}{}
\excludeversion{hints}
entonces tus pistas no aparecerán. Comenta \excludeversion{hints}
(o usa \includeversion{hints}
) y mágicamente reaparecerán. Aquí un MWE completo:
\documentclass[11pt]{exam}
\usepackage{version}
\newenvironment{hints}{\textbf{Hint}}{}
\excludeversion{hints}% turn hints off
\begin{document}
\begin{questions}
\question Prove $e^{i\pi} +1 = 0$.
\begin{hints}
Consider $e^{i\theta} = \cos \theta + i\sin \theta$.
\end{hints}
\begin{solution}
duh.
\end{solution}
\end{questions}
\end{document}
Una segunda forma de hacerlo, que se acerca más en espíritu a su pregunta, es utilizar elreinarpaquete para definir su entorno de sugerencias. Con este enfoque, primero define una nueva declaración if, por ejemplo \ifhinting
, y luego usa \hintingtrue
y \hintingfalse
para activar y desactivar las sugerencias:
\documentclass[11pt]{exam}
\usepackage{environ}
\newif\ifhinting\hintingtrue % hints are on by defautl
\NewEnviron{hints}{\ifhinting\textbf{Hint} \BODY\fi}
\begin{document}
\begin{questions}
\question Prove $e^{i\pi} +1 = 0$.
\begin{hints}
Consider $e^{i\theta} = \cos \theta + i\sin \theta$.
\end{hints}
\begin{solution}
duh.
\end{solution}
\end{questions}
\end{document}
El \NewEnviron
comando define un nuevo entorno pero absorbe el contenido del entorno en la macro \BODY
y, por lo tanto, le permite hacer cosas con él, como ignorarlo cuando \hintingfalse
sea verdadero.
Una ventaja de este enfoque es que puede activar y desactivar las sugerencias en diferentes partes de los documentos (¡esto también podría verse como una desventaja ya que debe verificar en todas partes!).