Exsheets:在脚注中打印解决方案

Exsheets:在脚注中打印解决方案

我正在尝试在脚注中显示问题的解决方案。到目前为止,我尝试了两种方法。简单的方法是简单地将解决方案环境包装在 中\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 中提供以来,解决方案如下:

  • 设置解决方案的标题样式inlineinline-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}

在此处输入图片描述


在此处输入图片描述

相关内容