LaTeX
Completion requirements
介绍
LaTeX 提供了专门为教师设计的功能。我们介绍了 exam 类[1],它非常适用于设计带解答的考试和练习题。感兴趣的人还可以查看 probsoln 包[2]、mathexm 文档类[3],或者 exsheets 包[4]。
exam 类
我们介绍 exam 类。exam 类非常适合设计带解答的考试。你只需要在导言部分指定是否要打印解答。你还可以计算题目的分数。
导言部分
在导言部分,你可以指定以下几行:
\documentclass[a4paper,11pt]{exam}
\printanswers % 如果你想打印答案
% \noprintanswers % 如果你不想打印答案
\addpoints % 如果你想计算分数
% \noaddpoints % 如果你不想计算分数
% 指定问题显示方式:
\qformat{\textbf{Question \thequestion}\quad(\thepoints)\hfill}
\usepackage{color} % 定义新颜色
\definecolor{SolutionColor}{rgb}{0.8,0.9,1} % 浅蓝色
\shadedsolutions % 定义解答环境的样式
% \framedsolutions % 定义解答环境的另一种样式
% 定义解答环境的标题:
\renewcommand{\solutiontitle}{\noindent\textbf{Solution:}\par\noindent}
你也可以将前面的三行替换为以下内容:
\documentclass[a4paper,11pt,answers,addpoints]{exam}
文档部分
考试题目包含在 questions
环境中。命令 \question
用于引入新问题,问题的分数在方括号中指定。解答在 solution
环境中给出,只有在导言部分指定了 \printanswers
或者 answers
选项时才会显示。
以下是一个示例:
\begin{questions} % 开始问题环境
\question[2] What is the solution? % 引入一个新问题,分值为2分
\begin{solution}
Here is the solution
\end{solution}
\question[5] What is your opinion?
\begin{solution}
This is my opinion
\end{solution}
\end{questions}
如果答案被打印出来,还可以使用 \ifprintanswers
命令仅添加答案:
\ifprintanswers
Only if answers are printed
\else
Only if answers are not printed
\fi
介绍
宏 \numquestions
给出问题的总数,宏 \numpoints
给出总分。
\begin{minipage}{.8\textwidth}
This exam includes \numquestions\ questions. The total number of points is \numpoints.
\end{minipage}
\numquestion
后的反斜杠防止宏像平常一样吞噬后面的空格。
Exsheets
exsheets
包是 exam 类的替代品。它可以用来创建考试试卷、教科书(包括解答)等。提供许多选项来调整输出格式。以下是一个示例:
\documentclass{article}
\usepackage{booktabs}
\usepackage{exsheets}
\usepackage{tasks}
\SetupExSheets[question]{type=exam}
\SetupExSheets{
counter-format=se.qu,
counter-within=section,
headings=runin,
}
\begin{document}
\section{Chemistry}
\begin{question}{2}
Which one of the entries does not fit with the others?
\begin{tasks}(4)
\task mercury
\task iron
\task lead
\task zinc
\end{tasks}
\end{question}
\begin{question}{4}
Explain your decision for the answer above.
\blank[width=5\linewidth,linespread=1.5]{}
\end{question}
\section{Physics}
\settasks{
counter-format=(tsk[r]),
label-width=4ex
}
\begin{question}{1}
What is a funkyton?
\begin{tasks}(2)
\task A dancing electron
\task A dancing proton
\task A dancing neutron
\task A Dixie Dancing Duck
\end{tasks}
\end{question}
\begin{center}
\begin{tabular}{l*{\numberofquestions}{c}c}\toprule
Question & \ForEachQuestion{\QuestionNumber{#1}\iflastquestion{}{&} } & Total \\ \midrule
Points & \ForEachQuestion{\GetQuestionProperty{points}{#1}\iflastquestion{}{&} } & \pointssum* \\
Reached & \ForEachQuestion{\iflastquestion{}{&} } & \\ \bottomrule
\end{tabular}
\end{center}
\end{document}
示例考试试卷
Exsheets 包的继任者将是 xsim 包。
参考文献
-
examdoc 使用 exam 文档类
-
Probsoln 创建问题集,可选择包含解答
-
mathexm 文档
-
exsheets 文档 创建练习题和考试
链接
Last modified: Tuesday, 22 April 2025, 12:19 PM