自定义章节编号和标题之间的间距?

自定义章节编号和标题之间的间距?

是否有机会在文档中每次出现时自定义(子)节号和其标题之间的间距?也就是说,在任何页眉或页脚以及目录和文档的主要部分中?在这个特定情况下,我有一个scrartcl文档,但一个独立于类的解决方案确实很有帮助。

答案1

这些章节编号在多个地方使用不同的格式命令,例如在目录中、标题中和正文中。这就是为什么答案由几个部分组成。

对于独立于类的解决方案,您可以使用包:

在这种情况下,请查看相应的包文档。

使用 LaTeX 的基类,您可以重新定义内部宏。KOMA-Script 类提供了额外的格式化宏,这些宏在手册中有描述。

让我们看一下基本的 LaTeX 方面。LaTeX 格式化节号的\@seccntformat方式定义如下:

\def\@seccntformat#1{\csname the#1\endcsname\quad}

您可以重新定义它以\quad用您自定义的距离替换:

\makeatletter
\renewcommand*{\@seccntformat}[1]{\csname the#1\endcsname\hspace{1em}}
\makeatother

在目录中,LaTeX 使用\numberline以下方式定义的章节编号

\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}

也可以重新定义:

\makeatletter
\renewcommand*{\numberline}[1]{\hb@xt@1em{#1\hfil}}
\makeatother

现在我们来看看标题。由于您使用的是 KOMA-Script 类,让我们为数字重新定义一个 KOMA 格式化命令:

最初它使用\enskip

\newcommand*\sectionmarkformat{\thesection\autodot\enskip}

\enskip跳过 1em 的一半,如 LaTeX 内核中所定义:

`\def\enskip{\hskip.5em\relax}`.

重新定义:

\renewcommand*{\sectionmarkformat}{\thesection\autodot\hspace{1em}\relax}

对 也进行类似操作\subsectionmarkformat

使用基类,您可以重新定义用于间距的\sectionmark等等。\quad

相关内容