.png)
Eu uso exam
muito o -class, gosto especialmente dos ambientes de solução. Meus documentos contêm dúvidas e soluções, mas alterando \printanswers
o preâmbulo posso facilmente alternar entre mostrar as soluções ou não.
Eu gostaria de fazer o mesmo pordicas. Eu gostaria de 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}
Eu criei uma classe customizada que é baseada na exam
classe, mas carrega em alguns pacotes e comandos customizados, quais comandos devo adicionar para implementar esta funcionalidade? Alguém poderia ajudar?
Responder1
Uma maneira muito fácil de fazer isso é usar oversãopacote. Se você adicionar as linhas:
\newenvironment{hints}{\textbf{Hint}}{}
\excludeversion{hints}
então suas dicas não aparecerão. Comente \excludeversion{hints}
(ou use \includeversion{hints}
) e eles reaparecerão magicamente. Aqui um 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}
Uma segunda maneira de fazer isso, que está mais próxima da sua pergunta, é usar omeio ambientepacote para definir seu ambiente de dicas. Com esta abordagem você primeiro define uma nova instrução if, digamos \ifhinting
, e então usa \hintingtrue
e \hintingfalse
para ativar e desativar as dicas:
\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}
O \NewEnviron
comando define um novo ambiente, mas insere o conteúdo do ambiente na macro \BODY
e permite que você faça coisas com ele, como ignorá-lo quando \hintingfalse
for verdade.
Uma vantagem dessa abordagem é que você pode ativar e desativar as dicas em diferentes partes dos documentos (isso também pode ser visto como uma desvantagem, pois você precisa verificar em todos os lugares!).