scrbook/komascript 中的目录:在章节标题中添加点

scrbook/komascript 中的目录:在章节标题中添加点

我需要根据出版商的要求定制目录的外观。

下面是目前它的一个最小示例:

\documentclass{scrbook}

\begin{document}

\frontmatter

\tableofcontents

\chapter{Preface}

\mainmatter

\part{First part}

\chapter{First chapter}
\section{First section}
\subsection{First subsection}
\subsection{Second subsection}
\section{Second section}

\chapter{Second chapter}

\end{document}

这会产生如下结果:


我当前目录的屏幕截图


现在我的出版商要求章节标题和页码之间应该有点。

我找到了这个tocstyle包,但我看不懂它的文档。我甚至不确定这个包是否能让我做我需要做的事情。有人能就如何得到我想要的东西提出建议吗?谢谢。

编辑:我还需要删除部分页码。我在原始问题中发布了此要求,但不鼓励每个主题发布多个问题。然而,后来发现这实际上也会对此处提出的问题产生影响:如果我过去tocstyle隐藏页面部分编号,这可能会影响此处发布的解决方案以摆脱章节点。

答案1

不要将包tocloft(在您自己的答案中提到)与 KOMA-Script 类一起使用。

有一个 KOMA-Script 选项可以用点填充目录中章节标题和页码之间的空格:

\KOMAoptions{toc=chapterentrydotfill}

在此处输入图片描述


如果章节标题的页码不应加粗,请使用

\addtokomafont{chapterentrypagenumber}{\mdseries}

还可以从目录中删除部分标题的页码:

\addtokomafont{partentrypagenumber}{\nullfont}

在此处输入图片描述

代码:

\documentclass[toc=chapterentrydotfill]{scrbook}
\addtokomafont{chapterentrypagenumber}{\mdseries}
\addtokomafont{partentrypagenumber}{\nullfont}
\begin{document}
\frontmatter
\tableofcontents
\chapter{Preface}
\mainmatter
\part{First part}
\chapter{First chapter}
\section{First section}
\subsection{First subsection}
\subsection{Second subsection}
\section{Second section}
\chapter{Second chapter}
\end{document}

也可以使用tocstyleKOMA-Script 包中的包。要获取各级标题和目录中页码之间的点,请使用

\usetocstyle{allwithdot}

正如@Peter Ebelsberger 所建议的。要删除目录中部分标题的点和页码,请添加

\settocstylefeature[-1]{leaders}{\hfill}
\settocstylefeature[-1]{pagenumberhook}{\nullfont}

梅威瑟:

\documentclass{scrbook}
\usepackage{tocstyle}
\usetocstyle{allwithdot}
\settocstylefeature[-1]{leaders}{\hfill}
\settocstylefeature[-1]{pagenumberhook}{\nullfont}
\begin{document}
\frontmatter
\tableofcontents
\chapter{Preface}
\mainmatter
\part{First part}
\chapter{First chapter}
\section{First section}
\subsection{First subsection}
\subsection{Second subsection}
\section{Second section}
\chapter{Second chapter}
\end{document}

运行多次即可获得

在此处输入图片描述

答案2

\documentclass{scrbook}

\usepackage{tocstyle}
\usetocstyle{allwithdot}
\begin{document}

\frontmatter

\tableofcontents

\chapter{Preface}

\mainmatter

\part{First part}

\chapter{First chapter}
\section{First section}
\subsection{First subsection}
\subsection{Second subsection}
\section{Second section}

\chapter{Second chapter}

\end{document}

答案3

我在其他地方发现了这个:

\RequirePackage{tocloft}
\let\partbackup\l@part  % create a backup copy of the part definition
\renewcommand*\l@part[2]{\partbackup{#1}{}}  % redefine part in order to leave out the page number for part
\renewcommand{\cftchapdotsep}{\cftdotsep}  % add dots for chapter entries
\renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}}  % add dots for chapter entries
\renewcommand{\cftchappagefont}{\mdseries}  % define chapter page numbers to be printed in normal font, not bold

人们是否同意这是一个好的解决方案,或者是否存在我不知道的副作用?

答案4

使用新的tocloft,它的工作原理如下:

\DeclareTOCStyleEntry[%
  level=\chaptertocdepth,
  linefill=\TOCLineLeaderFill,
]{chapter}{chapter}

相关内容