如何根据先前定义的百分比为考试创建自动评分标准?如果总分发生变化,我不想更改整个评分标准,而是让 TeX 自动执行。我目前的解决方案有点复杂。有没有更简单的版本?
(我所说的评分标准是指一个表格,其中给出了特定分数的范围,如图所示。)
\documentclass[addpoints,12pt]{exam}
\usepackage[nomessages]{fp}
\begin{document}
\begin{center}
\gradetable[h][questions]
\end{center}
Grading key:
\begin{center}
\begin{tabular}{lclll}
\FPeval{\result}{round(0.8*\numpoints,0)}\result&-&\numpoints&&5\\
\FPeval{\result}{round(0.6*\numpoints,0)}\result&-&\FPeval{\result}{round(0.8*\numpoints-1,0)}\result&&4\\
\FPeval{\result}{round(0.4*\numpoints,0)}\result&-&\FPeval{\result}{round(0.6*\numpoints-1,0)}\result&&3\\
\FPeval{\result}{round(0.2*\numpoints,0)}\result&-&\FPeval{\result}{round(0.4*\numpoints-1,0)}\result&&2\\
0&-&\FPeval{\result}{round(0.2*\numpoints-1,0)}\result&&1\\
\end{tabular}
\end{center}
\begin{questions}
\question[10] Question 1.
\question[5] Question 2.
\question[10] Question 3.
\question[10] Question 4.
\question[5] Question 5.
\question[5] Question 6.
\question[5] Question 7.
\end{questions}
\end{document}
答案1
最后,我决定实现自己的分级键命令。我开发了一个通用命令和一个特殊命令。它们如下:
\newcommand{\gradekey}[4]{\begin{tabular}{rcrl>\bfseries l}
\FPeval{\result}{round(#4*\numpoints,0)}\result&-&\numpoints&&5\\
\FPeval{\result}{round(#3*\numpoints,0)}\result&-&\FPeval{\result}{round(#4*\numpoints-1,0)}\result&&4\\
\FPeval{\result}{round(#2*\numpoints,0)}\result&-&\FPeval{\result}{round(#3*\numpoints-1,0)}\result&&3\\
\FPeval{\result}{round(#1*\numpoints,0)}\result&-&\FPeval{\result}{round(#2*\numpoints-1,0)}\result&&2\\
0&-&\FPeval{\result}{round(#1*\numpoints-1,0)}\result&&1\\
\end{tabular}
}
\newcommand{\defaultgradekey}{%
\begin{center}\gradekey{0.35}{0.5}{0.75}{0.9}\end{center}
}