为了创建多项选择题,我一直在使用环境
\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}
<?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>