Actualmente dependo de la clase de examen para producir hojas de ejercicios separadas para preguntas y soluciones. ¿Existe alguna manera de utilizar esa clase para producir una tercera hoja con sugerencias en lugar de soluciones completas, o una alternativa mejor?
La estructura del archivo tex único sería algo como:
\documentclass{exam} % or any other suggestion
\begin{document}
\begin{questions}
\question Prove that $A\implies B$.
\begin{hint}
Use contradiction.
\end{hint}
\begin{solution}
The details...
\end{solution}
\end{questions}
\end{document}
Y luego, un Makefile
with apropiado latexmk
produciría hojas-preguntas.pdf, hojas-sugerencias.pdf y hojas-soluciones.pdf pasando las opciones correctas a la clase seleccionada, como se indica en otras partes de este sitio.
Respuesta1
Ya tenía muchos archivos que usaban la exam
clase, así que terminé usando el optional
paquete para definir un entorno simple que no muestra nada si showhints
no se usa la opción. Aquí hay un ejemplo básico:
\documentclass{exam}
\qformat{\textbf{Question \thequestion\hfill}}
% The "optional" package allows the definition of an environment
% hints that will only be printed if the showhints option is passed
\usepackage[dummy]{optional} % document fails to compile if optional has no options ...
\makeatletter
\@ifpackagewith{optional}{showhints}{
% environment definition for the case where hints must be shown
\newenvironment{hints}[1][]{\textbf{Hints:} #1}{}
}{
% environment definition for the case where hints must be hidden
\newenvironment{hints}[1][]{\setbox\z@\vbox\bgroup}{\egroup}
}
\makeatother
\begin{document}
\begin{questions}
\question How do you include a package in \LaTeX?
\begin{hints}
Ask around at tex.stackexchange.com if you dare.
\end{hints}
\begin{solution}
Use the \texttt{\textbackslash usepackage} command.
\end{solution}
\end{questions}
\end{document}
Suponiendo que lo anterior se guarda en un archivo llamado mwe.tex
, lo siguiente Makefile
produce tres resultados diferentes:
mwe-base.pdf
, que es la hoja de ejercicios prevista;mwe-answers.pdf
, que presenta soluciones pero no sugerencias;mwe-hints.pdf
, que incluye sugerencias pero no soluciones.
SOURCES = $(wildcard *.tex)
TARGETS = $(patsubst %.tex, %, $(SOURCES))
all: $(TARGETS)
%: %.tex
latexmk -jobname=$(basename $<)-base -pdf -pdflatex='pdflatex -shell-escape -interaction=nonstopmode' $<
latexmk -jobname=$(basename $<)-answers -pdf -pdflatex='pdflatex -jobname=$(basename $<)-answers -shell-escape -interaction=nonstopmode "\PassOptionsToClass{answers}{exam}\input{$(basename $<)}"' $<
latexmk -jobname=$(basename $<)-hints -pdf -pdflatex='pdflatex -jobname=$(basename $<)-hints -shell-escape -interaction=nonstopmode "\PassOptionsToPackage{showhints}{optional}\input{$(basename $<)}"' $<
clean:
rm -f *.out *aux *bbl *blg *log *toc *.ptb *.tod *.fls *.fdb_latexmk *.lof
Lo más probable es que haya margen de mejora.