Tabla de contenidos en scrbook/komascript: agregar puntos a los títulos de los capítulos

Tabla de contenidos en scrbook/komascript: agregar puntos a los títulos de los capítulos

Necesito personalizar la apariencia de mi tabla de contenido de acuerdo con los requisitos de un editor.

Aquí hay un ejemplo mínimo de cómo se ve ahora:

\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}

Esto produce algo que se parece a esto:


Captura de pantalla de mi TOC actual


Ahora mi editor solicitó que elcapítuloLos títulos deben tener puntos entre el título y el número de página.

He encontrado el tocstylepaquete, pero no entiendo su documentación. Ni siquiera estoy seguro de que el paquete me permita hacer lo que necesito. ¿Alguien puede hacer sugerencias sobre cómo conseguir lo que quiero? Gracias.

Editar:También necesito eliminar los números de página de las piezas. Publiqué este requisito en mi pregunta original, pero no se desaconsejaban realizar varias preguntas por hilo. Sin embargo, más tarde resultó que esto también puede marcar una diferencia para la pregunta formulada aquí: si uso tocstylepara suprimir los números de pieza de las páginas, esto puede afectar las soluciones publicadas aquí para eliminar los puntos de los capítulos.

Respuesta1

No utilice el paquete tocloft(mencionado en su propia respuesta) junto con una clase KOMA-Script.

Hay una opción de KOMA-Script para llenar el espacio entre el título del capítulo y el número de página en TOC con puntos:

\KOMAoptions{toc=chapterentrydotfill}

ingrese la descripción de la imagen aquí


Si los números de página de los títulos de los capítulos no deben estar en negrita, utilice

\addtokomafont{chapterentrypagenumber}{\mdseries}

También es posible eliminar el número de página de los títulos de las piezas del TOC:

\addtokomafont{partentrypagenumber}{\nullfont}

ingrese la descripción de la imagen aquí

Código:

\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}

También es posible utilizar el paquete tocstyleque forma parte del paquete KOMA-Script. Para obtener puntos entre los títulos de todos los niveles y los números de página en TOC, utilice

\usetocstyle{allwithdot}

como ya sugirió @Peter Ebelsberger. Para eliminar los puntos y los números de página de los títulos de las partes en TOC, agregue

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

MWE:

\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}

Corre varias veces para conseguir

ingrese la descripción de la imagen aquí

Respuesta2

\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}

Respuesta3

Encontré esto en otro lugar:

\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

¿Estaría la gente de acuerdo en que ésta es una buena solución o hay efectos secundarios que no conozco?

Respuesta4

Con el nuevo tocloft, funciona de la siguiente manera:

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

información relacionada