我正在写一本书,书中的练习遍布各章。为了排版练习,我使用了软件包exsheets
。我想制作一个附录,列出每章的所有解决方案(我知道这是不可能的,根据Exsheets:如何在同一行打印“解决方案”?)。
我已经看到最新版本exsheets
有一个章节钩子根据手册(位于http://ctan.mirrors.hoobly.com/macros/latex/contrib/exsheets/exsheets_en.pdf.):
[chapter-hook = {code}] 每次打印新章节的解决方案时(在打印相应章节的解决方案之前),将“code”添加到解决方案列表中。
问题是,这是唯一提到章节钩子作者没有给出具体的例子,所以我甚至不知道该把选项放在哪里。
我尝试过以下方法:
\chapter{Grouped Exercises I}
\begin{question}
Integrate $\int \cos{x}\ \mathrm{d}x$
\end{question}
\begin{solution}
$\sin{x} + C$
\end{solution}
% ...
% more code here
% ...
\appendix
\chapter{Solutions to exercises}
\printsolutions[all,chapter-hook={Chapter}]
但是当使用 pdfLaTeX 进行编译时,它会抛出错误:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! LaTeX error: "kernel/key-choice-unknown"
!
! Key 'exsheets/exsheets_print_solutions/chapter-hook' accepts only a fixed
! set of choices.
!
! See the LaTeX3 documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.6 \printsolutions[all,chapter-hook={Chapter}]
该怎么办?正确的使用方法是什么章节钩子在这种情况下,您可以选择什么?
提前致谢!
答案1
您使用 TeX Live 吗?新选项是在 0.13 版(2014/05/11)中引入的,它不是 TL2013 的一部分(我相信它是在冻结后发布的)。您必须exsheets
手动更新或等待 TL2014(或使用预测试版本)。
无论哪种方式:下面是如何使用此选项的示例。
\documentclass{scrbook}
\usepackage{exsheets}[2014/05/11]
\SetupExSheets{
counter-within = chapter
}
\DeclareQuestionProperty{chapter-number}
\newcommand*\diff[1]{\mathop{}\!\mathrm{d}#1}
\begin{document}
\chapter{Some Chapter}\label{ch:foo}
\section{foo}
\section{Grouped Exercises I}
\begin{question}
\SetQuestionProperties{chapter-number=\ref{ch:foo}}
Integrate $\int \cos x \diff{x}$.
\end{question}
\begin{solution}
$\sin x + C$
\end{solution}
\chapter{Some Other Chapter}\label{ch:bar}
\section{bar}
\section{Grouped Exercises II}
\begin{question}
\SetQuestionProperties{chapter-number=\ref{ch:bar}}
Integrate $\int \sin x \diff{x}$.
\end{question}
\begin{solution}
$-\cos x + C$
\end{solution}
\appendix
\SetupExSheets{
chapter-hook =
\section*{Exercises from chapter~\GetQuestionProperty{chapter-number}{\CurrentQuestionID}}
}
\chapter{Solutions to exercises}
\printsolutions
\end{document}