Moodle.sty 不包含多个测验

Moodle.sty 不包含多个测验

我正在使用 moodle.sty,在单个 .TEX 文件中包括几个测验环境。pdf 中显示所有测验,但在 .XML 中仅显示最后一个。有人能帮助我吗?

\begin{quiz}{Q1}
\begin{multi}[points=1,multiple]{Q01}
\item* a
\item b
\end{multi}
\begin{multi}[points=1,multiple]{Q02}
\item* a
\item b
\end{multi}
\end{quiz}

\begin{quiz}{Q2}
\begin{multi}[points=1,multiple]{QQ01}
\item* a
\item b
\end{multi}
\begin{multi}[points=1,multiple]{QQ02}
\item* a
\item b
\end{multi}
\end{quiz}

答案1

我找到了一个对其他人有用的部分解决方案。

我使用定义第一个类别的单一{quiz}环境,然后,当我想开始一组新问题时,我会执行以下操作

  1. 添加\end{enumerate}关闭环境{enumerate}打开{quiz}
  2. 添加\setcategory{--my new category--}
  3. 添加\subsection*{--my new category--}新类别的标题和正确对齐方式
  4. 添加\begin{enumerate}以重新启动将被关闭的枚举环境\end{quiz}

每个类别都有其编号。

答案2

这种意外行为是因为(版本 0.5) 每次发现moodle时都会重写同一个 XML 文件。\begin{quiz}...\end{quiz}

可以通过在加载后将此代码包含在序言中来修复此行为moodle(仍然是版本 0.5)

\makeatletter
\def\openmoodleout{%
  \immediate\openout\moodle@outfile=\outputfilename\relax
  \writetomoodle{<?xml version="1.0" encoding="UTF-8"?>}%
  \writetomoodle{<quiz>}%
  \writetomoodle{ }%
}%
\renewenvironment{quiz}[2][]%
{
  \setkeys{moodle}{#1}%
  \@moodle@ifgeneratexml{\setcategory{#2}}{}%
  \subsection*{#2}%
  \begin{enumerate}%
}{
  \end{enumerate}%
}
\AfterEndPreamble{
  \@moodle@ifgeneratexml{\openmoodleout}{}%
}
\AtEndDocument{
  \@moodle@ifgeneratexml{\closemoodleout}{}%
}
\makeatother

该错误已在软件包版本中得到0.8解决moodle

相关内容