是否有机会在文档中每次出现时自定义(子)节号和其标题之间的间距?也就是说,在任何页眉或页脚以及目录和文档的主要部分中?在这个特定情况下,我有一个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