如何从 tex 文件创建 Moodle 计算多项选择题?

如何从 tex 文件创建 Moodle 计算多项选择题?

为了创建多项选择题,我一直在使用环境

\begin{multi}
...
\end{multi}

生成计算多项选择题的环境是什么,即其中包含变量的环境?

答案1

Github 项目演示如何在 LaTeX 文件中使用 Python 代码来生成一些非常类似于计算问题效果的内容:根据原型生成问题池。

为了进一步推动事情的发展,在 moodle 包的开发版本中,我引入了支持 moodle 标签。这样,当在 Moodle 中创建测验时,您可以要求在共享特定标签的问题中随机挑选一个问题。

我还发现,借助 LuaTeX 的内部脚本功能,你可以照着做就像使用 python 可以做什么一样。

以下是示例代码:

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{moodle} % development version 0.8
\begin{document}
\begin{quiz}[tags={calculated}]{Example Quiz}
\directlua{
function clozenum_print(pair,op,result)
  tex.print("\\begin{numerical}$"..pair[1].." "..op.." "..pair[2].." =$".."\\item ",result,"\\end{numerical}")
end
function cloze_print(pair,points)
  tex.print("\\begin{cloze}[points="..points.."]{Arithmetic Quiz ("..pair[1]..", "..pair[2]..")}Solve the following tasks!\\\\")
  clozenum_print(pair,"+",pair[1]+pair[2])
  clozenum_print(pair,"-",pair[1]-pair[2])
  clozenum_print(pair,"*",pair[1]*pair[2])
  if pair[1]/pair[2]==math.floor(pair[1]/pair[2]) then
    clozenum_print(pair,":",math.floor(pair[1]/pair[2]))
  end
  tex.print("\\end{cloze}")
end
for x = 2,4 do
  for y = 2,4 do
    if x>y then
      if x/y==math.floor(x/y) then points=4 else points=3 end
      cloze_print({x,y},points)
    end
  end
end
}
\end{quiz}
\end{document}

生成的 PDF 呈现如下形式 生成的 PDF 生成的 XML 文件为

<?xml version="1.0" encoding="UTF-8"?>
<!-- This file was generated on 2020-11-10 by LuaLaTeX -->
<!-- running on Linux with the package moodle v0.8 -->

<quiz>
 
<question type="category">
  <category>
    <text>$course$/top/Example Quiz</text>
  </category>
</question>
 
<question type="cloze">
  <name format="html">
    <text><![CDATA[Arithmetic Quiz (3, 2)]]></text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Solve the following tasks!<BR/> \(3 + 2 =\){1:NUMERICAL:=5:0}\(3 - 2 =\){1:NUMERICAL:=1:0}</p>]]></text>
  </questiontext>
  <defaultgrade>3</defaultgrade>
  <generalfeedback format="html"><text/></generalfeedback>
  <penalty>0.10</penalty>
  <hidden>0</hidden>
  <tags>
    <tag><text><![CDATA[calculated]]></text></tag>
  </tags>
</question>
<question type="cloze">
  <name format="html">
    <text><![CDATA[Arithmetic Quiz (4, 2)]]></text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Solve the following tasks!<BR/> \(4 + 2 =\){1:NUMERICAL:=6:0}\(4 - 2 =\){1:NUMERICAL:=2:0}\(4 : 2 =\){1:NUMERICAL:=2:0}</p>]]></text>
  </questiontext>
  <defaultgrade>4</defaultgrade>
  <generalfeedback format="html"><text/></generalfeedback>
  <penalty>0.10</penalty>
  <hidden>0</hidden>
  <tags>
    <tag><text><![CDATA[calculated]]></text></tag>
  </tags>
</question>
<question type="cloze">
  <name format="html">
    <text><![CDATA[Arithmetic Quiz (4, 3)]]></text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Solve the following tasks!<BR/> \(4 + 3 =\){1:NUMERICAL:=7:0}\(4 - 3 =\){1:NUMERICAL:=1:0}</p>]]></text>
  </questiontext>
  <defaultgrade>3</defaultgrade>
  <generalfeedback format="html"><text/></generalfeedback>
  <penalty>0.10</penalty>
  <hidden>0</hidden>
  <tags>
    <tag><text><![CDATA[calculated]]></text></tag>
  </tags>
</question>
 
</quiz>

将问题导入 Moodle 课程的问题库后,您可以添加编辑测验,使用从问题库中随机抽取的问题进行填充 在 Moodle 中添加随机问题 在 Moodle 中选择所需的标签

答案2

如果你查看手册(texdoc moodle在你的 TeXLive 安装中,或者在 CTAN),根本没有实现这样的事。

可用的问题只是

  • 完形填空
  • 匹配
  • 散文
  • 简短回答
  • 数值(无变量)

相关内容