Estoy intentando escribir hojas de ejercicios de forma modular: cada ejercicio tiene su propio archivo con los entornos de preguntas/soluciones proporcionados por el exsheets
paquete.
Las hojas de ejercicios \input
son entonces el ejercicio necesario. El problema es que quiero poder decidir, en cada hoja de ejercicios, si quiero imprimir o no las soluciones. El exsheets
paquete ayuda con eso, ya que puedes darle solution
la print=true/false
opción a los entornos.
Entonces, naturalmente intenté configurar una variable en mi archivo de hoja de ejercicios, variable que sería leída por cada entorno de solución para decidir si debería imprimirse o no, pero no funciona, ya que creo que el parámetro proporcionado no se expande temprano. suficiente.
Aquí sería un MWE para el archivo de hoja:
\documentclass{article}
\usepackage{exsheets}
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document
y aquí un ejercicio:
\begin{question}
Question
\end{question}
\begin{solution}[print=\printsolutions]
Solution
\end{solution}
Y el problema ahora es que Latex se queja de que la opción que se le da print
no es válida:
! LaTeX error: "kernel/key-choice-unknown"
!
! Key 'exsheets/solution/print' accepts only a fixed set of choices.
¿Cómo debería solucionarse eso?
¡Gracias de antemano!
Respuesta1
Defina un comando que pueda establecer la clave correcta:
\documentclass{article}
\usepackage{exsheets}
\ExplSyntaxOn
\NewDocumentCommand\setsolutionprint { m }
{
\keys_set:nn { exsheets / solution}{ print = #1 }
}
\ExplSyntaxOff
\begin{document}
Some text.
\setsolutionprint{true}
\input{exercise1}
\end{document}
Atención:
exsheets no funciona con una versión actual de expl3. Verhttps://bitbucket.org/cgnieder/exsheets/issues/44/error-latex3-error-variant-form-n
Respuesta2
Aquí sería un MWE para el archivo de hoja:
\documentclass{article}
\usepackage{exsheets}
\newcommand\Exchange[2]{#2#1}%
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document}
y aquí un ejercicio:
\begin{question}
Question
\end{question}
\expandafter\Exchange\expandafter{\printsolutions]}{\begin{solution}[print=}%
Solution
\end{solution}