This seems like a simple question ...
I know from this question that \hrule and presumably \hrulefill have a thickness of 0.4pt. I think \hrule is a primitive, so does that mean that you cannot change the thickness of \hrulefill?
This seems like a simple question ...
I know from this question that \hrule and presumably \hrulefill have a thickness of 0.4pt. I think \hrule is a primitive, so does that mean that you cannot change the thickness of \hrulefill?
The default height for \hrule is 0.4pt (not a parameter whose default value is 0.4pt) so you are correct that it may not be changed via setting a parameter. However \hrulefill is only a macro so you can change it if you wish.
It is defined by
\def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@}
so
\def\hrulefill{\leavevmode\leaders\hrule height 2pt\hfill\kern\z@}
would make it thicker
\defaultrulewidth or some such, but it doesn't. Compare with the primitive \indent which indents by an amount given by the primitive dimen parameter \parindent. Somewhat unusually in TeX, the rule width is a hard wired numerical default.
– David Carlisle
Aug 04 '12 at 12:29
\z@ we Plain TeX guys could use 0pt? Searching on it brought me to this answer which suggests so.
– Daniel Lyons
Jun 18 '15 at 15:19
@ is a letter (\catcode\@=11)otherwise you have\z(undefined) followed by@`
– David Carlisle
Jun 18 '15 at 15:47
\z@ is just a 0pt dimension value... how can it be faster to use that than a 0pt literal? I believe you... I would just like to understand why.
– Daniel Lyons
Jun 18 '15 at 17:00
\hrule height 4pt. See TeXbook chapter 21 page 221. – Marco Daniel Aug 03 '12 at 16:13