TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
You can use \hrule height 4pt. See TeXbook chapter 21 page 221. – Marco Daniel Aug 3 '12 at 16:13
up vote 25 down vote accepted

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 height 2pt\hfill\kern\z@}

would make it thicker

share|improve this answer
I am assuming it is not possible to define a primitive that depends on a parameter, since that doesn't seem like it would be a primitive anymore. – StrongBad Aug 4 '12 at 12:20
Well yes you or I can't define a primitive however it would have been possible for tex-the-program to define the default widths of rules to be a dimen register \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 4 '12 at 12:29
Perhaps instead of \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
@DanielLyons you could but \z@ is defined in plain as well (plain.tex line 258) – David Carlisle Jun 18 '15 at 15:40
I see it there, but I get Undefined control sequence from xetex. – Daniel Lyons Jun 18 '15 at 15:45

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.