190

I have used the \hrulefill command to create a horizontal rule, along with some other commands. In each case I have the rules extended up to the margin.

I want the rule width to be controllable, i.e. I want them to span the entire page. How can this be done? The existing help on Internet looks pretty scarce. Thanks for your help.

migrated from stackoverflow.com Jun 1 '11 at 1:18

This question came from our site for professional and enthusiast programmers.

183

To get horizontal lines of any fixed length you can use the \rule command. To get a horizontal line spanning the whole page width you can use a \makebox command and then a \rule with a width equal to \paperwidth:

\documentclass{article}

\begin{document}

Below is a Line spanning the entire width of the page

\noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}}

Below is a 2cm long line

\noindent\rule{2cm}{0.4pt}

Below is a 4cm long line

\noindent\rule{4cm}{0.4pt}

Below is a 8cm long line

\noindent\rule{8cm}{0.4pt}

\end{document}

Output: enter image description here Rules in LaTeX are 0.4pt "thick", by default.

  • 1
    Maybe you could also include a rule of length \textwidth, for comparison with the one of \paperwidth placed in a '\makebox`. – Davor Cubranic Sep 1 '16 at 18:33
  • Is there a way to modify this to set the top and bottom margin/padding of the line? It could be useful to set the space between paragraphs above and below, respectively. – tukusejssirs Apr 26 at 18:57
96

Another option is this one, which makes a horizontal line stretch the entire page. I prefer this one, because it's short, easy to remember and exactly what I need. I hope this works for you too.

\noindent\rule{\textwidth}{1pt}
  • 12
    +1 It helped me to get a gray horizontal line: \textcolor[RGB]{220,220,220}{\rule{\linewidth}{0.2pt}} – Paul Vargas Apr 13 '15 at 6:22
  • 2
    Where's the \noindent? :-( – einpoklum Jun 10 '17 at 18:07
  • This behaviour is exactly the same as \noindent\hrulefill. Sadly, OP wants the line to ignore margin. – Mateus Felipe Nov 15 '17 at 19:31
16

I used the \line command: \line(x slope, y slope){length}.

\begin{center}
\line(1,0){450}
\end{center}
  • 2
    It was useful for me to define it as its own command: \newcommand{\hr}{\begin{center} \line(1,0){450} \end{center}}. – NuclearPeon Dec 29 '16 at 21:17
4

\underline{\hspace{ x in}} gives you a line of length x inches.

  • 1
    Welcome to TeX.SX! Don't be so chatty! ;-) I don't think that this answers the (old) question – user31729 Sep 26 '14 at 14:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy