Я пытаюсь писать листы упражнений по модульному принципу: каждое упражнение имеет свой собственный файл со средами вопросов/решений, предоставленными пакетом exsheets
.
Листы упражнений затем \input
s необходимое упражнение. Проблема в том, что я хочу иметь возможность решить, в каждом листе упражнений, хочу ли я печатать решения или нет. Пакет exsheets
помогает в этом, так как вы можете дать solution
окружениям print=true/false
возможность выбора.
Поэтому я, естественно, попытался задать переменную в файле с упражнениями, переменную, которая будет считываться каждой средой решения, чтобы решить, следует ли ее печатать или нет, но это не сработало, поскольку, по-моему, заданный параметр не раскрывается достаточно рано.
Вот MWE для файла листа:
\documentclass{article}
\usepackage{exsheets}
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document
и вот упражнение:
\begin{question}
Question
\end{question}
\begin{solution}[print=\printsolutions]
Solution
\end{solution}
И проблема теперь в том, что latex жалуется, что предоставленный вариант print
не является допустимым выбором:
! LaTeX error: "kernel/key-choice-unknown"
!
! Key 'exsheets/solution/print' accepts only a fixed set of choices.
Как это можно решить?
Заранее спасибо!
решение1
Определите команду, которая может установить правильный ключ:
\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}
Внимание:
exsheets не работает с текущей версией expl3. Смотретьhttps://bitbucket.org/cgnieder/exsheets/issues/44/error-latex3-error-variant-form-n
решение2
Вот MWE для файла листа:
\documentclass{article}
\usepackage{exsheets}
\newcommand\Exchange[2]{#2#1}%
\def\printsolutions{true}
\begin{document}
Some text.
\input{Exercise1}
\end{document}
и вот упражнение:
\begin{question}
Question
\end{question}
\expandafter\Exchange\expandafter{\printsolutions]}{\begin{solution}[print=}%
Solution
\end{solution}