我很喜欢exam
这个包,但在我的用例中,每个问题都有一个标题和一个编号。与\section
具有名称和编号的文章的相同。因此,我想在标题中显示当前问题编号/或名称,就像我们使用的一样\rightmark
。最后但并非最不重要的一点是,我希望成绩表显示完整的问题名称。
在我的例子中,第一个问题名为Foo
,有编号1
,其全名是:Problem 1: Foo
。
\documentclass[addpoints]{exam}
\firstpageheader{Exam}{}{}
\runningheader{Exam / Problem \thecurrentquestionnumber}{}{}
\newcounter{questioncounter}
\newcommand\thequestionnumber[1]{\thequestioncounter}
\qformat{%
\addtocounter{questioncounter}{1}
\large\textbf{Problem \thequestionnumber~:~\thequestiontitle}
\quad (\thepoints)\hfill
\vrule depth 1.5em width 0pt
}
\begin{document}
\begin{center}
% In this table I would like the question number instead of the question name
\gradetable[v][questions] \vspace*{10ex}
\end{center}
\begin{questions}
\newpage
\titledquestion{Foo}[10] % Question 1
...\par
\newpage
\titledquestion{Bar}[10] % Question 2
...\par
\newpage
\titledquestion{Baz}[10] % Question 3
...\par
\end{questions}
\end{document}
如何使用考试包执行以下操作?我应该在哪里查看?
- 在标题中插入当前问题名称/编号
- 在成绩表中显示全名和问题编号
- 处理问题名称和问题编号
编辑
exam.cls
一种可能性是通过添加以下内容来修补:
\newenvironment{questions}{%
...
\def\@queslevel{question}%
\def\titledquestion##1{%
\@bonusfalse
\def\thequestiontitle{##1}%
\process@question
}%
...
\def\process@question{%
...
\xdef\rightmark{Problem \thenumquestions~\thequestiontitle}
但我想知道是否有更好的选择......
答案1
这回答了你的大部分问题。(对于未来的读者,你最好一次问一个问题。)
该命令\qtitle
处理等级表的第一列。
我不知道如何轻松地在标题中插入“完整”问题名称。但也许它是多余的,问题编号就足够了。
% !TeX TS-program = pdflatex
\documentclass[addpoints]{exam}
\firstpageheader{\large Exam}{}{}
\runningheader{\large Exam / Problem \thequestion}{}{}% changed <<<<
\qformat{% changed <<<<
\large\textbf{\thequestiontitle}
\parbox{\textwidth}{\quad (\thepoints)\hfill}
\vrule depth 1.5em width 0pt
}
\newcommand{\qtitle}[1]{Problem \thequestion: \enspace #1\hfill}% added <<<<<<<<<<<<<<
\begin{document}
\begin{center}
\gradetable[v][questions] \vspace*{10ex}
\end{center}
\newpage
\begin{questions}
\titledquestion{\qtitle{Everything}}[30] What is the answer to everything?
\begin{solutionordottedlines}[1cm]
42
\end{solutionordottedlines}
\newpage
\titledquestion{\qtitle{Foo}}[20] Do you know foo?
\begin{solutionordottedlines}[1cm]
yes
\end{solutionordottedlines}
\newpage
\titledquestion{\qtitle{Bar}}[15]Do you know bar?
\begin{solutionordottedlines}[1cm]
yes
\end{solutionordottedlines}
\newpage
\titledquestion{\qtitle{Baz}}[10] Do you know baz?
\begin{solutionordottedlines}[1cm]
no
\end{solutionordottedlines}
\end{questions}
\end{document}