缺少需要(重新)定义 \hrulefill 的数字

缺少需要(重新)定义 \hrulefill 的数字

以下代码有效,但出现三个错误。未定义的控制序列、缺少数字、非法度量单位。似乎重新定义的\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

相关内容