Formatting 如何在LaTeX中为章节标题加下划线?

Formatting 如何在LaTeX中为章节标题加下划线?,formatting,latex,tex,heading,Formatting,Latex,Tex,Heading,编辑:正如我在第一个答案中看到的,下划线是错误的单词。我希望在章节标题下有一行,将标题与以下文本分开 我想用一条横线将章节标题与以下文本分开。目前,我使用以下方法: \newcommand{\tmpsection}[1]{} \let\tmpsection=\section \renewcommand{\section}[1]{\tmpsection{#1}\hrule\nobreak} 但这会产生一条线,这条线离章节标题太远,而离下面的文本太近。有谁有更好的主意吗?像这样重写命令应该可以做到

编辑:正如我在第一个答案中看到的,下划线是错误的单词。我希望在章节标题下有一行,将标题与以下文本分开

我想用一条横线将章节标题与以下文本分开。目前,我使用以下方法:

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

但这会产生一条线,这条线离章节标题太远,而离下面的文本太近。有谁有更好的主意吗?

像这样重写命令应该可以做到:

\newcommand{\tmpsection}[1]{}
\let\tmpsection=\section
\renewcommand{\section}[1]{\tmpsection{\underline{#1}}}
这将评估为

\section { \underline {#1} }

这反过来会生成带下划线的节标题:)

您可以使用中的
\sectionrule
命令执行此操作。

您可以查看LaTeX
\rule
命令:

\rule[raise-height]{width}{thickness}
但是,这是一个内联(水平)命令,因此您必须使用一些技巧使其位于正确的位置和大小(
\noindent
\textwidth
应该会有一些帮助)

否则,您可以使用以下纯TeX

\smallskip
\hrule height 2pt
\smallskip

它实际上不符合LaTeX语法,但它的工作方式很有魅力,并且保证可以跨越整个文本宽度。

我听说
titlesec
sectsty
包更强大,所以我刚刚使用了它。可以使用以下命令将水平线放在节标题之前:

\usepackage{titlesec}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{\hrule}
或者你可以在纽科曼的帮助下把它放在后面。参见第4.4节。

另一种方法可以是:

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

使用
titlesec
软件包,您可以在
\titleformat
命令的末尾添加方括号,以便在节标题后插入内容(请参阅本文档第3.1节)。例如:

\titleformat{\section}{\normalfont\Large\bfseries}{\thesection}{1em}{}[\hrule]

由于每个类的section命令格式不同,因此您可以随时复制正在使用的类,并重新定义
\section
命令以将
hrule
放在正确的位置。正如您所说,每个类的格式都不同。我更喜欢一个解决方案,我可以在不同的项目中使用,即使您更改了特定的内容(例如从book切换到scrbook),它也可以工作。这可能会在几年后由不知道重新定义的部分的其他人发生。这就是为什么我想使用一个更通用的解决方案。这个问题似乎离题了,因为它是关于LaTeX的,这在tex.stackexchange.com上更合适。它还会在目录中的节名下划线,这可能不是您想要的。我知道我问的问题不好。从这个意义上说,我不想要下划线,我真的想要一行将标题与下面的文本分开。sectsty做了我想要的,但我有另一个问题:我有一本书(scrbook documentclass)并使用命令\part。这不再适用于sectsty。有什么建议吗?