如何在 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】:我听说titlesec
比sectsty
包更强大,所以我刚刚使用它。您可以使用以下方法将水平线放在节标题之前:
\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 中给章节标题加下划线?的主要内容,如果未能解决你的问题,请参考以下文章