使用 xsim 和集合在评分表中进行练习排序

使用 xsim 和集合在评分表中进行练习排序

xsim我正在尝试使用练习未按顺序显示的集合来创建考卷id

练习按照counter考试本身中指定的顺序(= 顺序)打印,但按照id评分表中的顺序打印,这可能会造成混淆。

以下是 MWE:

\documentclass{article}
\usepackage{xsim}

\DeclareExerciseCollection{test}
\xsimsetup{
  print-solutions/headings=false ,
  collect
}

\begin{document}

\gradingtable

\begin{exercise}[ID=one,points=3]
  Exercise one.
\end{exercise}
\begin{solution}
  Answer one.
\end{solution}

\begin{exercise}[ID=two,points=7]
  Exercise two.
\end{exercise}
\begin{solution}
  Answer two.
\end{solution}

\begin{exercise}[ID=three,points=1]
  Exercise three.
\end{exercise}
\begin{solution}
  Answer three.
\end{solution}

\printexercise{exercise}{one,three, two}

\end{document}

以下是我得到的结果:

在此处输入图片描述

以下是我想要的结果(在评分表中,练习 2 和 3 互换位置):

在此处输入图片描述

据了解,从该软件包的手册来看,xsim 仅包含内置函数,用于按类型然后按 ID 或按 ID 对练习进行排序。我曾尝试深入研究该软件包的源代码,以构建一个按计数器对练习进行排序的函数,但这超出了我目前的能力。

有没有我忽略的内置(或简单)方法?否则,您知道如何获得它吗?

答案1

这样做的原因是,即使练习没有立即打印出来,它们也是按照出现的顺序设置或定义的。这定义了诸如idexercise-body之类的属性。

一些属性是在实际打印练习时首先设置的,例如练习编号。

评分表的默认模板用于\ForEachUsedExerciseByType{}循环练习,使用已定义的练习顺序。

目前,还没有简单的方法可以按照打印顺序循环显示练习。恕我直言,这值得提出一个功能请求。我再次在 github 上打开了您的问题。

相关内容