EDIT: As I see in the first answer, underline is the wrong word. I want a line under the section heading, separating the heading from the following text.
I want to separate section headings from the following text with a horizontal line. At the moment I use the following:
\newcommand{\tmpsection}[1]{}
\let\tmpsection=\section
\renewcommand{\section}[1]{\tmpsection{#1}\hrule\nobreak}
But that produces a line, that is too far away from the section-heading and to near to the following text. Has anyone a better idea?
You can do this with the \sectionrule
command in the sectsty package.
Rewriting your command like this should do the trick:
\newcommand{\tmpsection}[1]{}
\let\tmpsection=\section
\renewcommand{\section}[1]{\tmpsection{\underline{#1}}}
This will evaluate to
\section { \underline {#1} }
which in turn produces underlined section headings :)
I've heard that the titlesec
is more powerful than sectsty
package, so I've just used it. You can put the horizontal line before the section header using:
\usepackage{titlesec}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{\hrule}
or you can put it after, with the help of newcommand. See section 4.4 of the titlesec manual.
You might take a look at the LaTeX \rule
command:
\rule[raise-height]{width}{thickness}
However, that's an inline (horizontal) command, so you'll have to use some trickery to get it at the right position and size (\noindent
and \textwidth
should help a little).
Otherwise, you can use the following plain TeX
\smallskip
\hrule height 2pt
\smallskip
It doesn't really fit in the LaTeX syntax, but it works like a charm, and is guaranteed to span the entire text width.
Another way could be:
\begin{center}
\line(1,0){400}
\end{center}
来源:https://stackoverflow.com/questions/1392614/how-to-underline-section-headings-in-latex