我正在创建一组问题,其中奖励问题以 * 为星号,但当我使用\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 的结果,在序言中添加了额外的代码