在(定制的)编号问题(考试)的部分成绩表中生成准确的超链接

在(定制的)编号问题(考试)的部分成绩表中生成准确的超链接

问题:有没有办法使用exam文档类自定义您自己的“等级范围”内的问题编号并保持问题超链接的完整性\partialgradetable

编辑:我只是在尝试遵循中概述的方法\renewcommand*{\thequestion}{\the\value{question}}后添加了这一行\setcounter{question}{0}这个帖子。但我仍然有同样的问题。


代码

\documentclass[addpoints]{exam}
\usepackage[
colorlinks=true,
linkcolor=blue]{hyperref}

\begin{document}

\begin{questions}
\begingradingrange{range1}
\question A question.
\question Another questions. 
\question Yet another question.
\endgradingrange{range1}

\setcounter{question}{0}
\renewcommand*{\thequestion}{\the\value{question}}

\begingradingrange{range2}
\question A second question. 
\question Another second question.
\endgradingrange{range2}

\end{questions}

\partialgradetable{range1}

\partialgradetable{range2}

\end{document}

产生以下内容:

在此处输入图片描述

可以看出,问题计数器正确重置,但表格中的超链接功能被破坏。尽管表格中range1显示了第三个问题,但如果您单击,则会转到第三个问题;但是,如果您单击任一表格中的或,则会分别转到中的第一个或第二个问题。??312range2

有没有办法设置计数器以保持部分成绩表中问题超链接的完整性?也就是说,单击1,2,3第一个表中的应该会带我到那些问题,range1而单击1,2第二个表中的应该会带我到那些问题range2。当然,我还希望能够将计数器设置为不一定0或的东西,1并仍使其正常工作。有什么想法吗?

答案1

这将显示所需的数字。我不能保证它能正常工作。

\documentclass[addpoints]{exam}
\usepackage[
colorlinks=true,
linkcolor=blue]{hyperref}

\newcounter{myquestion}
\renewcommand{\thequestion}{\arabic{myquestion}}

\begin{document}

\begin{questions}
\begingradingrange{range1}
\stepcounter{myquestion}%
\question A question.
\stepcounter{myquestion}%
\question Another questions. 
\stepcounter{myquestion}%
\question Yet another question.
\endgradingrange{range1}

\setcounter{myquestion}{0}

\begingradingrange{range2}
\stepcounter{myquestion}%
\question A second question.
\stepcounter{myquestion}%
\question Another second question.
\endgradingrange{range2}

\end{questions}

\partialgradetable{range1}

\partialgradetable{range2}

\end{document}

演示


修订后的解决方案已\stepcounter{myquestion}纳入\question。注意,\question是环境的局部questions

\documentclass[addpoints]{exam}
\usepackage[
colorlinks=true,
linkcolor=blue]{hyperref}

\newcounter{myquestion}
\renewcommand{\thequestion}{\arabic{myquestion}}

\begin{document}

\begin{questions}
\let\oldquestion=\question
\renewcommand{\question}{\stepcounter{myquestion}\oldquestion}
\begingradingrange{range1}
\question A question.
\question Another questions. 
\question Yet another question.
\endgradingrange{range1}

\setcounter{myquestion}{0}

\begingradingrange{range2}
\question A second question.
\question Another second question.
\endgradingrange{range2}

\end{questions}

\partialgradetable{range1}

\partialgradetable{range2}

\end{document}

相关内容