我在课堂上写一篇文档exam
。对于包含多个部分 (a)、(b) 的问题,你应该使用环境parts
。使用环境很好,直到我为问题添加了一个也包含parts
环境的解决方案。
该文档编译为正确的结果,但我在日志中看到 LaTeX 警告(这很烦人,因为 vim 每次都会向我显示它们!):
LaTeX Warning: Label `part@2@1' multiply defined.
LaTeX Warning: Label `part@2@2' multiply defined.
.....
LaTeX Warning: There were multiply-defined labels.
我记得这个曾经有效。我做错了什么吗?
一个最小的工作示例是:
\documentclass[letterpaper, 12pt, answers]{exam}
\begin{document}
\begin{questions}
\question The exam document class defines labels for parts.
\begin{parts}
\part Are these labels unique for you?
\part Why are they not unique for me?
\end{parts}
\begin{solution}
\begin{parts}
\part Maybe, I don't know.
\part That's my questions.
\end{parts}
\end{solution}
\end{questions}
\end{document}
答案1
哎呀;这是 exam.cls 中的一个错误,已在测试版本 2.407beta 中修复,可从我的网页获取
http://www-math.mit.edu/~psh/#ExamCls
将此版本放入包含您的 latex 文件的目录中,或者直接用此版本替换旧版本。
这是几个月前才有人向我报告的一个错误,这就是为什么它在测试版中得到了纠正。我没有预料到人们会在解决方案环境中使用零件环境(我真傻!),因此第二个零件环境生成的标签与第一个零件环境中的标签重复。当零件环境位于解决方案环境内时,这个新的测试版不会生成这些标签。
这些标签在旧版本的 exam.cls 中并不存在,这就是您之前没有看到这个问题的原因。
所以:对于这个问题我深感抱歉,但它已在测试版本中得到修复。
答案2
欢迎来到 tex.sx,看起来您只需在本地禁用即可\label
避免重复。
\documentclass[letterpaper, 12pt, answers]{exam}
\begin{document}
\begin{questions}
\question The exam document class defines labels for parts.
\begin{parts}
\part Are these labels unique for you?
\part Why are they not unique for me?
\end{parts}
\begin{solution}
\begin{parts}\renewcommand\label[1]{}
\part Maybe, I don't know.
\part That's my questions.
\end{parts}
\end{solution}
\end{questions}
\end{document}
答案3
我总是把解决方案放在他们提到的部分旁边...我似乎没有收到那些警告...不知道这对你来说是否是一个选择?
\documentclass[letterpaper, 12pt, answers]{exam}
\begin{document}
\begin{questions}
\question The exam document class defines labels for parts.
\begin{parts}
\part Are these labels unique for you?
\begin{solution}
Maybe, I don't know.
\end{solution}
\part Why are they not unique for me?
\begin{solution}
That's my questions.
\end{solution}
\end{parts}
\end{questions}
\end{document}