考试类别中的自定义 \bonusqformat 与问题文本不符

考试类别中的自定义 \bonusqformat 与问题文本不符

我正在创建一组问题,其中奖励问题以 * 为星号,但当我使用\bonusqformat自定义标记时,它会将文本推到新行。有什么方法可以防止这种情况发生吗?

平均能量损失

\documentclass{exam}

\bonusqformat{\thequestion *.}
\begin{document}
\begin{questions}
\bonusquestion This is a question.

\end{questions}
\end{document}

平均能量损失

答案1

事实证明,由于\bonusqformat(egreg 指出的)的默认行为,通过序言中的以下代码更容易实现这种效果:

\newcommand\bonusquestionlabel{\thequestion{}*.}
\makeatletter
\def\question@number{%
  \if@bonus
    \if@bonusqformat
      \makebox[\hsize][s]{\@bonusquestionformat}\hskip-\labelsep
    \else
      \bonusquestionlabel
    \fi
  \else
    \if@qformat
      \makebox[\hsize][s]{\@questionformat}\hskip-\labelsep
    \else
      \questionlabel
    \fi
  \fi
}
\makeatother

此代码重新定义了奖励题的问题标签,并为其创建了新的标签。

来自 MWE 的结果,在序言中添加了额外的代码 MWE 正在工作!

相关内容