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

Posted

技术标签:

【中文标题】如何在 LaTeX 中给章节标题加下划线?【英文标题】:How to underline section-headings in LaTeX? 【发布时间】:2010-11-26 10:18:59 【问题描述】:

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

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

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

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

【问题讨论】:

由于每个类的部分命令格式不同,您始终可以复制您正在使用的类并重新定义\section 命令以将hrule 放在正确的位置。 正如你所说,每个班级的格式都不同。我更喜欢一个解决方案,我可以在不同的项目中使用它,即使你改变了特定的东西(例如从书切换到 scrbook)也能工作。这可能会在几年后由不知道重新定义部分的其他人发生。这就是为什么我想使用更通用的解决方案。 这个问题似乎跑题了,因为它是关于 LaTeX 的,这在 tex.stackexchange.com 上更合适。 【参考方案1】:

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

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

这将评估为

\section  \underline #1 

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

【讨论】:

它还会在目录中的部分名称下划线,这可能不是你想要的。 我知道我的问题问得很糟糕。从这个意义上说,我不想要下划线,我真的想要一条将标题与以下文本分开的线。【参考方案2】:

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

【讨论】:

sectsty 做我想做的事,但我还有另一个问题:我有一本书 (scrbook-documentclass) 并使用命令 \part。这不再适用于 sectsty。有什么建议吗?【参考方案3】:

我听说titlesecsectsty 包更强大,所以我刚刚使用它。您可以使用以下方法将水平线放在节标题之前:

\usepackagetitlesec
\titleformat\section\large\bfseries\thesection1em\hrule

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

【讨论】:

【参考方案4】:

你可以看看 LaTeX \rule 命令:

\rule[raise-height]widththickness

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

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

\smallskip
\hrule height 2pt
\smallskip

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

【讨论】:

【参考方案5】:

另一种可能是:

\begincenter
\line(1,0)400
\endcenter

【讨论】:

【参考方案6】:

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

\titleformat\section\normalfont\Large\bfseries\thesection1em[\hrule]

【讨论】:

以上是关于如何在 LaTeX 中给章节标题加下划线?的主要内容,如果未能解决你的问题,请参考以下文章

word里 给指定的全部词加下划线 怎么搞

如何在 CListCtrl 中为单个项目加下划线

如何在Android中为按钮的文本加下划线?

如何在绘图标题或标签中为文本加下划线? (ggplot2)

没有在 QTextBrowser 中为超链接加下划线

如何在 LaTeX 中修改章节标题前的空格大小?