2009-09-08 25 views
9

EDIT: Come vedo nella prima risposta, sottolinea la parola sbagliata. Voglio una linea sotto l'intestazione della sezione, separando l'intestazione dal testo seguente.Come sottolineare le intestazioni di sezione in LaTeX?

Desidero separare le intestazioni delle sezioni dal testo seguente con una linea orizzontale. Al momento io uso il seguente:

\newcommand{\tmpsection}[1]{} 
\let\tmpsection=\section 
\renewcommand{\section}[1]{\tmpsection{#1}\hrule\nobreak} 

Ma che produce una linea, che è troppo lontano dalla sezione-intestazione e vicino al seguente testo. Qualcuno ha un'idea migliore?

+0

Dal momento che i formati dei comandi sezione modo diverso per ogni classe, si può sempre copiare la classe che si sta utilizzando e ridefinire il comando '\-sezione di mettere il' hrule' in il posto giusto. – dreamlax

+1

Come dici tu, ogni classe ha un formato diverso. Preferirei una soluzione, che io possa usare in diversi progetti e che funzioni anche se cambi una cosa particolare (passando da un libro all'altro per esempio). Ciò può accadere anni dopo da qualcun altro, che non conosce la sezione ridefinita. Ecco perché mi piacerebbe utilizzare una soluzione più generale. – Mnementh

+0

Questa domanda sembra essere fuori tema perché riguarda LaTeX, che è più appropriato su tex.stackexchange.com. – templatetypedef

risposta

6

Si può fare questo con il comando \sectionrule nello sectsty package.

+0

sectsty fa quello che voglio, ma ho un altro problema: ho un libro (scrbook-documentclass) e uso il comando \ part. Questo non funziona più con la sectsty. Qualche consiglio? – Mnementh

6

riscrivere il comando come questo dovrebbe fare il trucco:

\newcommand{\tmpsection}[1]{} 
\let\tmpsection=\section 
\renewcommand{\section}[1]{\tmpsection{\underline{#1}}} 

Questo valuterà a

\section { \underline {#1} } 

che a sua volta produce titoli di sezione sottolineati :)

+1

Sottolinea inoltre i nomi delle sezioni nel sommario, che presumibilmente * non * è ciò che si desidera. –

+0

Vedo che ho posto la mia domanda male. Non voglio una sottolineatura in questo senso, voglio davvero una linea che separa l'intestazione dal testo seguente. – Mnementh

3

Si potrebbe dare un'occhiata al comando LaTeX \rule:

\rule[raise-height]{width}{thickness} 

Tuttavia, questo è un comando in linea (orizzontale), quindi dovrete usare qualche inganno per ottenere in giusta posizione e le dimensioni (\noindent e \textwidth dovrebbero aiutare un po ').

caso contrario, è possibile utilizzare il seguente TeX pianura

\smallskip 
\hrule height 2pt 
\smallskip 

Realmente non rientra nella sintassi LaTeX, ma funziona come un fascino, ed è garantito per coprire l'intera larghezza del testo.

4

Ho sentito dire che il titlesec è più potente del pacchetto sectsty, quindi l'ho appena usato. È possibile inserire la linea orizzontale prima che l'intestazione della sezione utilizzando:

\usepackage{titlesec} 
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{\hrule} 

o si può mettere dopo, con l'aiuto di newcommand. Vedere la sezione 4.4 di titlesec manual.

2

Un altro modo potrebbe essere:

\begin{center} 
\line(1,0){400} 
\end{center} 
Problemi correlati