How can I draw this horizontal line like this picture in Latex? Thanks for your help.
1 Answer
I see two choices, one using \rule
(as suggested by @John Kormylo) and one using \hrule
. I'll describe them both and give an example at the end
The \rule
command constructs a box, which is treated like a character and has the following syntax \rule[h]{w}{t}
where h
w
and t
are lengths and represent respectively:
the height above the baseline to which raise the box (defaults at 0)
the width of the box
the thickness of the rule
In your case
\par\noindent\rule{\textwidth}{0.4pt}
should do the trick.
The \hrule
command is a TeX primitive and is a bit more complicated to use because it suppresses the interline spacing. Its full syntax is as follows:
\hrule height h depth d width w \relax
where h
, d
and w
should be substituted with the appropriate lengths (height is the thickness of the rule). Any order of height
depth
and width
are supported, and any or all of them can be left out, which will make TeX use the following defaults:
height
will be0.4 pt
depth
will be0pt
width
will make the rule extend to the boundary of the outer box.
Usually hrule
is to be used between paragraphs, otherwise it will start or stop a paragraph. The \relax
is not always needed, but it prevents the misinterpretation of following words and numbers when there is ambiguity
Note sometimes it's useful to use \vspace
before or after the \hrule
to space it from the previous and next paragraphs. In this case I don't know the specifics of the problem to determine the proper spacing of the rule suitable for you.
Example (the \vspace
s are random)
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\vspace{5pt}
\hrule
\vspace{6pt}
\lipsum[1]
\noindent
\rule{\textwidth}{0.4pt}
\end{document}
-
-
1
-
This answer is wrong or outdated. As my provided answer proves,
\hrule
is not "a bit more complicated to use". In fact, it does not requires any argument, so it is the more simple to use that any command can get. Jul 2, 2023 at 15:26 -
6@BsAxUbx5KoQDEpCAqSffwGy554PSah No, your answer is extremely incomplete, (not to mention simply giving a link) and this answer is entirely correct.
\hrule
is a TeX primitive, and so not actually a LaTeX command, and so its behaviour isn't as you might expect since it removes the interline spacing. And it does take the arguments shown in the answer. But, as the example code here shows, it can be used without any arguments, as well since the example here is almost identical to the one in your link. Jul 2, 2023 at 16:00
\hrule
? That should be what you're looking forminted
andlistings
have this feature, for example. (@Moriambar Why don't you just add an answer instead of voting to close?)\hrulefill
will extend the line to the right margin of the current scope, so that you can avoid specifying a length.