Мне необходимо настроить внешний вид оглавления в соответствии с требованиями издателя.
Вот минимальный пример того, как это выглядит сейчас:
\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}
Также возможно использовать пакет tocstyle
, который является частью пакета KOMA-Script. Чтобы получить точки между заголовками всех уровней и номерами страниц в TOC, используйте
\usetocstyle{allwithdot}
как уже предложил @Peter Ebelsberger. Чтобы удалить точки и номера страниц для заголовков частей в TOC, добавьте
\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}