Ich versuche, die Übungsblätter modular aufzubauen: Jede Übung hat eine eigene Datei mit den Frage-/Lösungsumgebungen, wie sie das exsheets
Paket vorgibt.
Die Übungsblätter \input
sind dann die benötigten Übungen. Das Problem ist, dass ich bei jedem Übungsblatt entscheiden können möchte, ob ich die Lösungen ausdrucken möchte oder nicht. Das exsheets
Paket hilft dabei, da man solution
Umgebungen diese print=true/false
Option geben kann.
Also habe ich natürlich versucht, in meiner Übungsblattdatei eine Variable festzulegen, die von jeder Lösungsumgebung gelesen wird, um zu entscheiden, ob sie gedruckt werden soll oder nicht, aber das funktioniert nicht, da ich denke, dass der angegebene Parameter nicht früh genug erweitert wird.
Hier wäre ein MWE für die Blattdatei:
\documentclass{article}
\usepackage{exsheets}
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document
und hier eine Übung:
\begin{question}
Question
\end{question}
\begin{solution}[print=\printsolutions]
Solution
\end{solution}
Und das Problem besteht nun darin, dass Latex sich beschwert, dass die angegebene Option print
keine gültige Auswahl ist:
! LaTeX error: "kernel/key-choice-unknown"
!
! Key 'exsheets/solution/print' accepts only a fixed set of choices.
Wie soll das gelöst werden?
Dank im Voraus!
Antwort1
Definieren Sie einen Befehl, der den richtigen Schlüssel festlegen kann:
\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}
Aufmerksamkeit:
exsheets funktioniert nicht mit einer aktuellen expl3-Version. Siehehttps://bitbucket.org/cgnieder/exsheets/issues/44/error-latex3-error-variant-form-n
Antwort2
Hier wäre ein MWE für die Blattdatei:
\documentclass{article}
\usepackage{exsheets}
\newcommand\Exchange[2]{#2#1}%
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document}
und hier eine Übung:
\begin{question}
Question
\end{question}
\expandafter\Exchange\expandafter{\printsolutions]}{\begin{solution}[print=}%
Solution
\end{solution}