我想扩展考试类别,使问题字段包含两个以上的部分。同时,在评分表中反映这一点。
通常,你会像这样给出两个参数(分数是可选的)来编写问题/question[5] The question
。这将产生一个有效的问题,并且分数将正确反映在评分表上。我正在寻找的是扩展关键字/question
以采用三个参数。
- 问题点(就像现在一样)
- 问题组类型(我们内部使用的数字,用于对问题进行分类)
- 疑问措辞(现在也如此)。
因此,如果你写下类似/question[5][1] The question
期望的结果
(5 分)问题
其中 [1] 参数仅在新的分级表中可见。
但是,默认的考试类别会产生这样的结果。
(5 分)[1]问题
这不是唯一可能的问题。当您遇到依赖各个部分来加分的问题时,您不希望在问题级别有多余的分数输入。因此,通常您会像这样跳过输入分数/question The question
。但是一旦为问题分组添加了参数,您就不能简单地跳过它并像这样拥有分组 id /question [1] The question
,其中 latex 会将 [1] 视为问题分数参数。因此,必须有一种方法可以使用类似这样的方法跳过分数参数/question[~][1] The question
。通过添加,[~]
我们将尝试告诉 latex 跳过问题级别的分数并从/part
s 分数中获取它(如果有)。
为了有一个更具体的例子和我所知道的所有可能的问题,下面的代码展示了我编写的代码的一个示例以及它现在的样子与我希望它的样子(这不是一个解决方案,只是目标的一个演示)。
\documentclass[addpoints]{exam}
\usepackage{enumitem}
\begin{document}
\section{How \emph{exam} class works}
\begin{center}
\gradetable[h][questions]
\end{center}
\begin{questions}
\question[10][2]{First Question?}
\question[~][1]{Second Question (True/False):} % if you put 10 here the total for this question will be 20!
\begin{parts}
\part[5] First statement.
\part[5] Second statement.
\end{parts}
\question[20][3]{Third Question?}
\begin{parts}
\part First part.
\part Second part.
\end{parts}
\end{questions}
\end{document}
这将导致以下输出:
期望输出应如下所示:
答案1
可以从以下途径获得所需结果:
\documentclass[addpoints,answers, 12pt]{exam}
\usepackage{enumitem}
\begin{document}
\vspace{10mm}
\section{How \emph{exam} class works}
\begin{center}
\gradetable[h][questions]
\end{center}
\vspace{5mm}
\begin{questions}
\question[10]
First Question?
\vspace*{\stretch{1}}
\question[10]
Second Question (True/False):
\begin{parts}
\part[5] First statement.
\vspace*{\stretch{1}}
\part[5] Second statement.
\vspace*{\stretch{1}}
\end{parts}
\question[20]{Third Question?}
\begin{parts}
\part First part.
\vspace*{\stretch{1}}
\part Second part.
\vspace*{\stretch{1}}
\end{parts}
\end{questions}
\end{document}
需要注意的是,\question[~]
给出的( points)
没有价值,并且\question[~][1]
给出的盒子1
没有点值。