![Exsheets:在脚注中打印解决方案](https://linux22.com/image/305227/Exsheets%EF%BC%9A%E5%9C%A8%E8%84%9A%E6%B3%A8%E4%B8%AD%E6%89%93%E5%8D%B0%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
我正在尝试在脚注中显示问题的解决方案。到目前为止,我尝试了两种方法。简单的方法是简单地将解决方案环境包装在 中\footnotetext
,这种方法效果相当好(我仍然必须找到一个不会排版任何标记的良好脚注命令,但这是另一回事)。但我宁愿采用一种更好的方法,即使用解决方案环境的前置/后置挂钩。这是我迄今为止尝试过的一个最小示例:
\documentclass[paper=a4, BCOR=1cm, DIV=11]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[headings=runin]{exsheets}
\SetupExSheets{
solution/print=true,
solution/headings=inline,
solution/pre-hook=\footnotetext[1]\begingroup,
solution/post-hook=\endgroup
}
\begin{document}
\begin{question}
The question
\end{question}
\begin{solution}
The solution
\end{solution}
\end{document}
这可以工作,但会出现以下错误:
! Extra }, or forgotten \endgroup.
\scr@saved@footnotetext ...tbox }\color@endgroup }
l.43 \end{solution}
我的猜测是,我对钩子或 begin/endgroup 宏的工作原理没有正确的理解?有没有人能解决这个问题?
编辑:
澄清一下我目前正在使用的内容:
\newcommand{\solutions}[1]{
\begingroup
\renewcommand{\thefootnote}{}
\newcommand{\task}{\item}
\footnotetext{
Solutions for Exercise \thequestion:
\begin{inparaenum}[\itshape a)\upshape]
#1
\end{inparaenum}
}
\endgroup
}
这使用问题计数器自动放置适当的脚注,但我更愿意采用实际的exsheet
解决方案环境。
答案1
更新:版本 0.18:
自 0.18 版本(2015/02/09)于 2015/02/10 上传至 CTAN 并将在几天后在 TeX Live 和 MiKTeX 中提供以来,解决方案如下:
- 设置解决方案的标题样式
inline
或inline-nr
或等效实例。 重新定义
\exsheetsprintsolution
。此宏用于每个解决方案。它有两个强制参数,第一个用于标题,第二个用于解决方案主体。其默认定义相当于\newcommand\exsheetsprintsolution[2]{#1#2}
为了获得没有数字的脚注,我使用该
bigfoot
包并声明一个新的脚注类型,然后重新定义相应的»\thefootnote
«以不打印任何内容。
完整示例:
\documentclass[paper=a4, BCOR=1cm, DIV=11]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[headings=runin]{exsheets}[2015/02/09]
\usepackage{bigfoot}
% \DeclareNewFootnote{default} % if `normal' footnotes should be printed first
\DeclareNewFootnote{solution}
\renewcommand\thefootnotesolution{}
\renewcommand\exsheetsprintsolution[2]{\footnotesolution{#1#2}}
\SetupExSheets{
headings-format = \bfseries ,% no \normalsize!
solution/print = true,
solution/headings = inline
}
\begin{document}
\begin{question}
The question
\end{question}
\begin{solution}
The solution
\end{solution}
\begin{question}
Another question
\end{question}
\begin{solution}
Another solution
\end{solution}
\end{document}
原始答案(版本0.17):
exsheets
这是一种黑客行为,因为它使用了( )中有关内部命令的使用和定义的知识,\__exsheets_print_solution:nnnn
而这些知识是不可信赖的。(现在在我的待办事项清单上:为此类任务提供一个界面……)
为了获得没有数字的脚注,我使用该bigfoot
包并声明一个新的脚注类型,然后重新定义相应的» \thefootnote
«以不打印任何内容。
\documentclass[paper=a4, BCOR=1cm, DIV=11]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[headings=runin]{exsheets}
\usepackage{bigfoot}
% \DeclareNewFootnote{default} % if `normal' footnotes should be printed first
\DeclareNewFootnote{solution}
\renewcommand\thefootnotesolution{}
\ExplSyntaxOn
\cs_new:Npn \solutionnote #1 \exsheets_h_or_vspace:N
{
\footnotesolution{#1}
\use_none:n
}
\ExplSyntaxOff
\SetupExSheets{
headings-format = \bfseries ,% no \normalsize!
solution/print = true,
solution/headings = inline,
solution/pre-hook = \solutionnote ,
question/skip-below = -.5\baselineskip % skip back a little
}
\begin{document}
\begin{question}
The question
\end{question}
\begin{solution}
The solution
\end{solution}
\begin{question}
Another question
\end{question}
\begin{solution}
Another solution
\end{solution}
\end{document}