LaTeX设置标题样式

需求

需要定制标题样式,比如标题的前后间距,标题的字体样式

解决方法

通过@startsection命令

\@startsection命令参数可见

1
\@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
参数 解释
NAME 表示所定义的节标题的名称(不要带反斜杠),比如section和subsection。
LEVEL 是一个数字,可以定义节标题的命令层次。这个数决定了定义的节标题是否编号(若是小于等于 secnumdepth则被编号)也决定了标题是否会被编进目录(若是小于等于tocdepth则被编号)。
INDENT 定义节标题到版心左边的距离。此度量若是负数则标题进入边空。
BEFORESKIP 是一个长度,其绝对值表示标题到上文之间的距离。若是此距离为负数,则标题后面的第一个段落不缩进。此度量最好是一个可以被伸长和缩短的长度。另外标题总是另起一段的。因而parskip已被加入到标题与上下文的距离。
AFTERSKIP 是一个长度,其绝对值表示独立显示的标题到下文之间的垂直间距或者是段内显示的标题到下文之间的距离。此度量若是负的,则定义的标题是段内显示的。对于独立显示的标题,parskip也已被加进标题与下文的距离。
STYLE 决定标题的内容形式。可以是任意影响文本排版结构的命令如加入尺寸\huge \large \bfseries 对齐命令等

以section为例, beforeskip {-3.5ex plus -1ex minus -.2ex} 表示最大-4.5ex, 最小-3.7ex.

示例

编写在xxx.cls中的标题示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
\renewcommand\section{%
\@startsection {section}{1}{\z@}%
{-8bp \@plus -.1bp \@minus -.2bp}%
{8bp \@plus .1bp}%
{\bfseries\csname bupt@title@font\endcsname\sihao[1.429]}% 此处控制section标题的字体
}
\renewcommand\subsection{%
\@startsection{subsection}{2}{\z@}%
{-6bp \@plus -.1bp \@minus -.2bp}%
{6bp \@plus .1bp}%
{\bfseries\csname bupt@title@font\endcsname\xiaosi[1.538]}% 此处控制subsection标题的字体
}
\renewcommand\subsubsection{%
\@startsection{subsubsection}{3}{\z@}%
{-4bp \@plus -.1bp \@minus -.2bp}%
{4bp \@plus .1bp}%
{\song\csname bupt@title@font\endcsname\xiaosi[1.667]}%
}

参考链接:LaTeX技巧356:修改Latex默认section,subsection样式