编辑:正如我在第一个答案中看到的,下划线是错误的词。我想要在部分标题下有一行,将标题与以下文本分开。
我想用一条水平线将部分标题与以下文本分开。目前我使用以下内容:
\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} }
这反过来会产生带下划线的部分标题:)
您可以使用sectsty 包\sectionrule
中的命令执行此操作。
听说titlesec
比sectsty
package 更强大,所以就用了。您可以使用以下方法将水平线放在节标题之前:
\usepackage{titlesec}
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{\hrule}
或者你可以在 newcommand 的帮助下把它放在后面。请参阅titlesec 手册的第 4.4 节。
你可以看看 LaTeX\rule
命令:
\rule[raise-height]{width}{thickness}
但是,这是一个内联(水平)命令,因此您必须使用一些技巧才能使其处于正确的位置和大小(\noindent
并且\textwidth
应该会有所帮助)。
否则,您可以使用以下纯 TeX
\smallskip
\hrule height 2pt
\smallskip
它并不真正适合 LaTeX 语法,但它就像一个魅力,并且保证跨越整个文本宽度。
另一种方法可能是:
\begin{center}
\line(1,0){400}
\end{center}
使用该titlesec
包,您可以在命令的最后添加方括号以在\titleformat
节标题之后插入一些内容(请参阅titlesec文档的第 3.1 节)。例如:
\titleformat{\section}{\normalfont\Large\bfseries}{\thesection}{1em}{}[\hrule]