Использование hspace перед номером страницы в оглавлении, не выравнивание по правому краю

Использование hspace перед номером страницы в оглавлении, не выравнивание по правому краю

По словам Роберта Брингхерста (Элементы типографского стиля), лидеры в оглавлении некрасивы.Этот вопросспрашивает об одном лучшем способе оформления оглавления.

Другой способ, еще более близкий к стандарту TeX, — это оставить небольшой пробел (возможно, 2em) после заголовка раздела, а затем сразу после него указать номер. Брингхерст делает это в самом содержании своей книги (рисунок ниже).

Как ни странно, tocloftпохоже, что напрямую этот стиль не поддерживается. Я ошибаюсь, полагая так? Или есть другой пакет, который это позволяет?

Пример желаемого типографского стиля: номера страниц не выровнены по правому краю

решение1

Это возможно с tocloft. В примере также учтены номера разделов:

\documentclass[openany]{book}
\usepackage{tocloft}
\usepackage{color}

\renewcommand*{\cftchappresnum}{\hss\color{red}}
\renewcommand*{\cftchapaftersnum}{\hspace{.5em}}

\settowidth{\cftchapindent}{\cftchapfont 99\cftchapaftersnum}
\setlength{\cftchapnumwidth}{0pt}

\renewcommand*{\cftchapleader}{\hspace{1em}}
\renewcommand*{\cftchapafterpnum}{\cftparfillskip}
\renewcommand*{\cftpnumalign}{l}

\begin{document}
\tableofcontents

\chapter*{Forword}
\addcontentsline{toc}{chapter}{Forword}
\setcounter{page}{9}

\chapter*{Historical Synopsis}
\addcontentsline{toc}{chapter}{Historical Synopsis}
\setcounter{page}{12}

\chapter{Rhytm \& Proportion}
\setcounter{page}{25}

\chapter{Harmony \& Counterpoint}
\setcounter{page}{45}

\chapter{Structural Forms \& Devices}
\setcounter{page}{61}

\chapter{Analphabetic Symbols}
\setcounter{page}{75}

\chapter{Choosing \& Combining Type}
\setcounter{page}{93}

\chapter{Historical Interlude}
\setcounter{page}{119}

\chapter{Shaping the Page}
\setcounter{page}{143}

\chapter{The State of the Art}
\setcounter{page}{179}

\chapter{Grooming the Font}
\setcounter{page}{198}

\chapter{Prowling the Specimen Books}
\setcounter{page}{209}

\end{document}

Результат

решение2

Используя titletocпакет (сопутствующий пакету titlesec), это возможно с помощью команды, аналогичной следующей:

\titlecontents{chapter}[0pt]{}%
{\contentslabel{2.25em}}{}%
{\hspace{2em}\thecontentspage}

По порядку параметры представляют:

  • Тип раздела
  • Отступ перед
  • Любой код для глобального форматирования записи
  • Метка, если раздел пронумерован
  • Метка, если раздел не пронумерован
  • Код для отображения номера страницы, включая пробелы перед ним

Связанный контент