Estou tentando escrever planilhas de exercícios de forma modular: cada exercício possui seu próprio arquivo com ambientes de perguntas/soluções conforme fornecido pelo exsheets
pacote.
As folhas de exercícios \input
são então o exercício necessário. O problema é que quero poder decidir, em cada planilha de exercícios, se quero ou não imprimir as soluções. O exsheets
pacote ajuda nisso, pois você pode dar solution
essa print=true/false
opção aos ambientes.
Então, naturalmente tentei definir uma variável no meu arquivo de planilha de exercícios, variável que seria lida por cada ambiente de solução para decidir se deveria ser impressa ou não, mas não funcionou, pois acho que o parâmetro fornecido não é expandido antecipadamente suficiente.
Aqui estaria um MWE para o arquivo da planilha:
\documentclass{article}
\usepackage{exsheets}
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document
e aqui um exercício:
\begin{question}
Question
\end{question}
\begin{solution}[print=\printsolutions]
Solution
\end{solution}
E o problema agora é que o látex reclama que a opção dada print
não é válida:
! LaTeX error: "kernel/key-choice-unknown"
!
! Key 'exsheets/solution/print' accepts only a fixed set of choices.
Como isso deveria ser resolvido?
Desde já, obrigado!
Responder1
Defina um comando que possa definir a chave correta:
\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}
Atenção:
exsheets não funciona com uma versão expl3 atual. Verhttps://bitbucket.org/cgnieder/exsheets/issues/44/error-latex3-error-variant-form-n
Responder2
Aqui estaria um MWE para o arquivo da planilha:
\documentclass{article}
\usepackage{exsheets}
\newcommand\Exchange[2]{#2#1}%
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document}
e aqui um exercício:
\begin{question}
Question
\end{question}
\expandafter\Exchange\expandafter{\printsolutions]}{\begin{solution}[print=}%
Solution
\end{solution}