我尝试\TheNumQuestions
在这个简单的程序中使用考试类中的问题计数器来放置以下新命令:
\documentclass[12pt]{exam}
\newcommand\TheNumQuestions{\ifthenelse{\numquestions=1}{1 question}{\numquestions\ questions}}
\begin{document}
This exam contains \TheNumQuestions
\begin{questions}
\question A first question
\question A second question
\end{questions}
\end{document}
但第一次运行时出现以下错误消息:
! Missing number, treated as zero.
<to be read again>
\unhbox
l.6 ^^IThis exam contains \TheNumQuestions
之后,进行第二次编译,一切仍然很好,并且编译得很好。
当我查看辅助文件时,我发现以下信息\gdef\exam@numquestions{2}
,它为第二次编译提供了合适的结果。如何在辅助文件中插入类似的命令以用于第一次编译,并避免出现此错误消息?
答案1
出现此错误的原因是,在第一次运行期间,\numquestions
扩展为\mbox{\normalfont \bf ??}
,它不是一个数字,并且您正在对其进行数字测试。
除了与数字进行比较之外,您还可以测试是否\numequations
使用扩展为(也可以从 ifthen 包中获取)。1
\numquestions
1
\equal
结果如下:
\documentclass[12pt]{exam}
\newcommand\TheNumQuestions{\ifthenelse{\equal{\numquestions}{1}}{1 question}{\numquestions\ questions}}
\begin{document}
This exam contains \TheNumQuestions
\begin{questions}
\question A first question
\question A second question
\end{questions}
\end{document}