2009-09-08 70 views
9

EDIT: Như tôi thấy trong câu trả lời đầu tiên, gạch dưới là từ sai. Tôi muốn một dòng dưới tiêu đề phần, tách tiêu đề khỏi văn bản sau đây.Làm cách nào để gạch chân các phần tiêu đề trong LaTeX?

Tôi muốn tách các tiêu đề phần khỏi văn bản sau bằng một đường ngang. Tại thời điểm này, tôi sử dụng các thông tin sau:

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

Nhưng điều đó tạo ra một dòng, quá xa phần đầu đề và gần văn bản sau. Có ai có ý tưởng tốt hơn không?

+0

Kể từ khi định dạng lệnh phần khác nhau cho mỗi lớp, bạn luôn có thể sao chép các lớp học mà bạn đang sử dụng và xác định lại 'lệnh \ section' để đưa' hrule' trong đúng địa chỉ. – dreamlax

+1

Như bạn nói, mỗi lớp định dạng khác nhau. Tôi muốn một giải pháp, mà tôi có thể sử dụng trong các dự án khác nhau và làm việc ngay cả khi bạn thay đổi điều cụ thể (chuyển đổi từ cuốn sách để scrbook ví dụ). Điều đó có thể xảy ra sau đó bởi một người khác, những người không biết về phần được xác định lại. Đó là lý do tại sao tôi muốn sử dụng một giải pháp tổng quát hơn. – Mnementh

+0

Câu hỏi này dường như không có chủ đề vì nó là về LaTeX, thích hợp hơn ở tex.stackexchange.com. – templatetypedef

Trả lời

6

Bạn có thể làm điều này với lệnh \sectionrule trong sectsty package.

+0

sectsty làm những gì tôi muốn, nhưng tôi có một vấn đề khác: Tôi có một cuốn sách (scrbook-documentclass) và sử dụng lệnh \ part. Điều đó không còn làm việc với sectsty nữa. Bất kỳ lời khuyên nào? – Mnementh

6

Viết lại lệnh của bạn như thế này nên làm như lừa:

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

này sẽ đánh giá để

\section { \underline {#1} } 

do đó sản xuất phần tiêu đề gạch chân :)

+1

Nó cũng sẽ gạch dưới các tên phần trong mục lục, có lẽ là * không * những gì bạn muốn. –

+0

Tôi thấy tôi đã hỏi câu hỏi của mình không tốt. Tôi không muốn gạch dưới theo nghĩa này, tôi thực sự muốn một dòng tách đầu đề từ văn bản sau đây. – Mnementh

3

Bạn có thể có một cái nhìn tại LaTeX \rule lệnh:

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

Tuy nhiên, đó là một nội tuyến (ngang) chỉ huy, do đó bạn sẽ phải sử dụng một số thủ đoạn gian trá để có được nó ở đúng vị trí và kích thước (\noindent\textwidth sẽ giúp ích một chút).

Nếu không, bạn có thể sử dụng TeX đồng bằng sau

\smallskip 
\hrule height 2pt 
\smallskip 

Nó không thực sự phù hợp trong cú pháp LaTeX, nhưng nó hoạt động như một nét duyên dáng, và được đảm bảo để span toàn bộ chiều rộng văn bản.

4

Tôi nghe nói rằng titlesec mạnh hơn gói sectsty, vì vậy tôi đã sử dụng nó. Bạn có thể đặt dòng ngang trước tiêu đề phần bằng cách sử dụng:

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

hoặc bạn có thể đặt sau, với sự trợ giúp của newcommand. Xem phần 4.4 của số titlesec manual.

2

Một cách khác có thể là:

\begin{center} 
\line(1,0){400} 
\end{center} 
Các vấn đề liên quan