我的问题基本上是为章节标题添加前缀,问题是如何在标题/章节之前的数字中添加任意前缀。
我的后续问题是:我需要做什么才能确保目录有足够的空间,以便前缀数字不与标题重叠?
考虑以下 MWE:
\documentclass{scrartcl}
\renewcommand*{\thesection}{Some Prefix~\arabic{section}:}
\begin{document}
\tableofcontents
\section{First Headline}
Some text.
\section{Second Headline}
More text!
\section{Third Headline}
And so on...
\end{document}
没有第二行(即 renew 命令)的结果看起来符合预期:
和renew 命令,各部分本身看起来是正确的(顺便说一句:这是对上面链接的问题的解决方案),但目录中的文本重叠:
因此,
问题:我需要做什么才能在目录中实际标题开始之前有足够的空间?
答案1
由于您正在使用koma
类,因此您可以使用它来格式化您的目录。如果您显式加载( ),tocbasic
以下内容koma
也应该在没有类的情况下工作。您可以选择两种不同的方法。一般来说,我建议您查看手册 (tocbasic
usepackage{tocbasic}
koma
英语或者德语)。
增加章节编号的空间(+前缀)
要增加目录中部分名称左侧的空间,您可以执行以下操作:
\DeclareTOCStyleEntry[numwidth=8em]{tocline}{section}
8em
这使得所有部分名称都从左侧的相同位置开始。
动态宽度取决于前缀+数字的长度
或者,您可以将章节名称放在目录中最长的数字(+前缀)后面
\DeclareTOCStyleEntry[dynnumwidth=true]{tocline}{section}
您可以添加numsep=1em
参数来将数字和名称之间的空格设置为不同的值:
\DeclareTOCStyleEntry[dynnumwidth=true,
numsep=1em,
]{tocline}{section}
两者都在 MWE 中
\documentclass{scrartcl}
\renewcommand*{\thesection}{Some Prefix~%
\if\arabic{section}1Ooone\else
\if\arabic{section}2Two\else%
\if\arabic{section}33%
\fi
\fi
\fi:}
% Try *one* of the following styles. They add up!
\DeclareTOCStyleEntry[dynnumwidth=true,
numsep=1em,
]{tocline}{section}
%\DeclareTOCStyleEntry[numwidth=10em]{tocline}{section}
\begin{document}
\tableofcontents
\section{First Headline}
Some text.
\section{Second Headline}
More text!
\section{Third Headline}
And so on...
\end{document}
我改变了前缀的长度,以显示其效果dynnumwidth
。
第一种风格,有dynnumwidth
:
第二种样式,已修复: