如何在 Moodle 包中的 pdf 文件中隐藏答案

如何在 Moodle 包中的 pdf 文件中隐藏答案

我正在使用 Moodle 套件。我想打印一份没有正确答案的 PDF。我该怎么做?

通过以下代码,pdf 包含答案和问题。

\documentclass[12pt]{article}
\usepackage{moodle}
\usepackage{amsmath}
\begin{document}

\begin{quiz}{Quizz 2}

\begin{numerical}[points=2]{Addition}
2+2=
\item 4
\end{numerical}  

\begin{shortanswer}[case sensitive=false]{Hugo}
Firstname of Hugo
\item  Victor
\end{shortanswer}

\end{quiz}
\end{document}

我怎样才能在生成的 pdf 文件中只包含问题?

谢谢你的帮助。

答案1

据我所知,没有针对此问题的包选项。但是,您可以通过将相关命令重新定义为\relax(即不执行任何操作)来阻止执行内部答案处理例程的 Latex 输出部分。有五个这样的命令,分别用于简答题、数字题、多项选择题、匹配题和论述题。

对于多项选择题,仍然显示答案但不显示正确答案的勾号会很有用。因此,对于这种问题类型,不应通过将命令替换为 来完全关闭答案处理\relax。相反,您可以重新定义命令,首先在本地重新定义命令\checkmark以不打印任何内容,(\checkmark来自amssymb包,此命令用于在 Moodle 中打印正确答案后的勾号),然后继续执行其余代码。在下面的代码中,这是通过使用 将处理代码复制到第二个命令来完成的\let,然后重新定义原始命令以首先更改 的定义\checkmark,然后调用原始命令的副本。

\checkmark内部的定义multi@latexprocessing允许您在问题本身或文档的其他位置使用复选标记符号(如果需要),但是不再可能在任何多项选择题的答案之一中使用该符号。

对于匹配问题,情况会稍微复杂一些,因为理想情况下,您希望同时显示问题和答案,但要进行打乱。但在处理问答对时,其他问题和答案并不容易获得,因此需要对代码进行更大规模的重写,因此以下代码中未实现此功能。

梅威瑟:

\documentclass[12pt]{article}
\usepackage{moodle}
\usepackage{amsmath}
\makeatletter
\def\moodle@shortanswer@latexprocessing{\relax}
\def\moodle@numerical@latexprocessing{\relax}
\let\origmultiprocessing\moodle@multi@latexprocessing
\def\moodle@multi@latexprocessing{\let\checkmark\relax\origmultiprocessing}
%\def\moodle@matching@latexprocessing{\relax} % it's complicated
\def\moodle@essay@latexprocessing{\relax}
\makeatother
\begin{document}

\begin{quiz}{Quizz 2}

\begin{numerical}[points=2]{Addition}
2+2=
\item 4
\end{numerical}  

\begin{shortanswer}[case sensitive=false]{Hugo}
Firstname of Hugo
\item  Victor
\end{shortanswer}

\begin{multi}[points=3]{A first derivative}
What is the first derivative of $x^3$?
\item $\frac{1}{4} x^4+C$
\item* $3x^2$
\item $51$
\end{multi}

\end{quiz}
\end{document}

结果:

在此处输入图片描述

这不会影响 XML 输出,答案仍然存在。

<?xml version="1.0" encoding="UTF-8"?>
<quiz>
 
<question type="category">
  <category>
    <text>$module$/Quizz 2</text>
  </category>
</question>
 
<question type="numerical">
  <name>
    <text>Addition</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>2+2= </p>]]></text>
  </questiontext>
  <defaultgrade>2</defaultgrade>
  <generalfeedback format="html"><text/></generalfeedback>
  <penalty>0.1000000</penalty>
  <hidden>0</hidden>
  <answer fraction="100" format="plain_text">
    <text>4</text>
    <tolerance>0</tolerance>
  </answer>
</question>
<question type="shortanswer">
  <name>
    <text>Hugo</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Firstname of Hugo </p>]]></text>
  </questiontext>
  <defaultgrade>1.0</defaultgrade>
  <generalfeedback format="html"><text/></generalfeedback>
  <penalty>0.1000000</penalty>
  <hidden>0</hidden>
  <usecase>0</usecase>
  <answer fraction="100" format="plain_text">
    <text>Victor</text>
  </answer>
</question>
<question type="multichoice">
  <name>
    <text>A first derivative</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>What is the first derivative of \(x^3\)? </p>]]></text>
  </questiontext>
  <defaultgrade>3</defaultgrade>
  <generalfeedback format="html"><text/></generalfeedback>
  <penalty>0.1000000</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>1</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\(\frac {1}{4} x^4+C\)</p>]]></text>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>\(3x^2\)</p>]]></text>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>\(51\)</p>]]></text>
  </answer>
</question>
 
</quiz>

答案2

@Marijn 的回答moodle如果您使用版本0.5并且既不关心类型问题cloze,也不关心类型问题matching的改组选项,那么这是一个非常好的选择。multichoice

否则,所需功能已添加到0.8版本moodle包裹,作为封装选项:handout

来自文档:

handout[...] 如果调用包选项( \usepackage[handout]{moodle}),则 PDF 文件将完全去除教师独有的信息(答案、分数、惩罚、反馈、标签),因此可以提供给学生用于课堂作业。具体来说,就像 Moodle 所做的那样,匹配问题的答案会被打乱,而选项打乱会触发提供的选项(多项和匹配)的打乱。这要归功于包randomlist,如果调用该选项,则会加载。 XML 文件照常生成。

相关内容