12

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

我想用一条水平线将部分标题与以下文本分开。目前我使用以下内容:

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

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

4

6 回答 6

8

像这样重写你的命令应该可以解决问题:

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

这将评估为

\section { \underline {#1} }

这反过来会产生带下划线的部分标题:)

于 2009-09-08T08:31:30.140 回答
7

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

于 2009-09-08T09:47:03.487 回答
7

听说titlesecsectstypackage 更强大,所以就用了。您可以使用以下方法将水平线放在节标题之前:

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

或者你可以在 newcommand 的帮助下把它放在后面。请参阅titlesec 手册的第 4.4 节。

于 2010-12-06T22:03:38.697 回答
5

你可以看看 LaTeX\rule命令:

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

但是,这是一个内联(水平)命令,因此您必须使用一些技巧才能使其处于正确的位置和大小(\noindent并且\textwidth应该会有所帮助)。

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

\smallskip
\hrule height 2pt
\smallskip

它并不真正适合 LaTeX 语法,但它就像一个魅力,并且保证跨越整个文本宽度。

于 2009-09-08T22:02:49.020 回答
3

另一种方法可能是:

\begin{center}
\line(1,0){400}
\end{center}
于 2012-10-23T10:39:25.630 回答
0

使用该titlesec包,您可以在命令的最后添加方括号以在\titleformat节标题之后插入一些内容(请参阅titlesec文档的第 3.1 节)。例如:

\titleformat{\section}{\normalfont\Large\bfseries}{\thesection}{1em}{}[\hrule]
于 2021-04-12T09:32:25.713 回答