以下代码有效,但出现三个错误。未定义的控制序列、缺少数字、非法度量单位。似乎重新定义的\hrulefill
期望输入一个数字,但我不知道是什么或在哪里。任何建议都将不胜感激。
\documentclass{exam}
\def\hrulefill{\leavevmode\leaders\hrule height 0.1pt \hfill\kern\z}
\begin{document}
Start with text before filling the rest of the line with a line. \hrulefill
\end{document}
答案1
\kern
需要长度,因此您可以使用
\documentclass{exam}
\def\hrulefill{\leavevmode\leaders\hrule height 0.1pt \hfill\kern0pt\relax}
\begin{document}
Start with text before filling the rest of the line with a line. \hrulefill
\end{document}
或者,使用 TeX \z@
(正如您的代码所表明的那样),
\documentclass{exam}
\makeatletter
\def\hrulefill{\leavevmode\leaders\hrule height 0.1pt \hfill\kern\z@}
\makeatother
\begin{document}
Start with text before filling the rest of the line with a line. \hrulefill
\end{document}
\hrulefull
我建议您定义另一个命令,而不是重新定义:
\documentclass{exam}
\makeatletter
\def\Hrulefill{\leavevmode\leaders\hrule height 0.1pt \hfill\kern\z@}
\makeatother
\begin{document}
Start with text before filling the rest of the line with a line. \Hrulefill
\end{document}
因此您仍然可以使用默认值\hrulefill
。