2009-09-08 15 views
9

DÜZENLEME: Ben ilk yanıt gördüğünüz gibi, altını yanlış kelime. Aşağıdaki metinden başlığını ayırarak bölüm başlığı altında bir satır istiyorum.LaTeX'te bölüm başlıklarının altı çizilir?

Ben yatay bir çizgi ile aşağıdaki metinden bölüm başlıkları ayırmak istiyorum. O çok uzakta bölüm-başlığı ve yakın aşağıdaki metne olduğunu

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

Ama bu bir çizgi üretir: Şu anda takip kullanın. Daha iyi bir fikri olan var mı?

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

Bu da altı çizili bölüm başlıkları :)

+0

, her zaman kullandığınız sınıfı kopyalayıp içinde 'hrule' koymak için' \ section' komutunu yeniden tanımlamak olabilir Doğru yer. – dreamlax

+1

Dediğiniz gibi, her sınıf formatı farklı. Farklı projelerde kullanabileceğim ve belirli bir şeyi değiştirseniz bile (örneğin kitaptan scrbook'a geçiş yaparak) çalışabileceğim bir çözümü tercih ederim. Bu, yıllar sonra yeniden tanımlanmış bölüm hakkında bilmeyen bir başkası tarafından olabilir. Bu yüzden daha genel bir çözüm kullanmak istiyorum. – Mnementh

+0

Bu soru konu dışı görünmektedir, çünkü tex.stackexchange.com adresinden daha uygun olan LaTeX ile ilgilidir. – templatetypedef

cevap

6

Sen ile yapabilirsiniz üretir

\section { \underline {#1} } 

için değerlendirecektir:

+0

sectsty istediğimi yapar, ancak başka bir sorunum var: Bir kitabım var (scrbook-documentclass) ve \ part komutunu kullanıyorum. Bu artık sectsty ile çalışmıyor. Herhangi bir tavsiyen var mı? – Mnementh

6

böyle komut hile yapmak gerekir Yeniden Yazma sectsty package'da \sectionrule komutu.

Sen LaTeX \rule komutu bakmak olabilir
+1

Ayrıca, içerik tablosundaki bölüm adlarının altını çizecektir. –

+0

Görüyorum ki sorumu sordum. Bu bağlamda altını çizmek istemiyorum, gerçekten de başlığı aşağıdaki metinden ayıran bir çizgi istiyorum. – Mnementh

3

: Eğer doğru pozisyonda ve boyutta almak için bazı kandırmaca kullanmak gerekecektir böylece Ancak

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

, yani bir satır içi (yatay) komutu var (\noindent ve \textwidth biraz yardımcı olmalıdır).

Aksi takdirde, gerçekten LaTeX sözdizimi sığmayan aşağıdaki düz TeX

\smallskip 
\hrule height 2pt 
\smallskip 

kullanabilirsiniz, ancak bir cazibe gibi çalışır ve tüm metin genişliğini span garantilidir.

4

Ben titlesecsectsty paketin daha güçlü olduğunu duydum, bu yüzden sadece kullandım.

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

veya newcommand yardımıyla, sonra koyabilirsiniz: kullanarak bölüm başlığı önce yatay çizgi koyabilirsiniz. titlesec manual bölüm 4.4'e bakın.

2

bir başka yolu olabilir:

her sınıf için farklı bölüm komut formatları yana
\begin{center} 
\line(1,0){400} 
\end{center} 
İlgili konular