Я пытаюсь создать следующее оглавление с помощьюtitletoc
упаковка:
Chapter 1 .......... 1
Chapter 2 .......... 10
Chapter 3 .......... 20
Код titletoc
следующий:
\titlecontents{chapter}[0.5cm] % Indentation
{\addvspace{5pt}\sc} % Spacing and font options for chapters
{\contentslabel[\large\chaptername\ \thecontentslabel]{0.5cm}} % Chapter number
{}
{\normalsize\titlerule*[5pt]{.}\contentspage} % Page number
а для создания главы я просто использую команду:
\chapter{}
Проблема в том, что я вижу пунктирные линии над меткой главы x. Другими словами, пунктирные линии не начинаются там, где заканчивается метка "глава x", а начинаются в той же точке (начале строки).
Есть ли способ решить эту проблему?
решение1
Вам придется предоставить достаточно места для размещения дополнительного контента, который является \contentslabel
его частью, а также отрегулировать отступы:
\documentclass{report}
\usepackage{titletoc}
\titlecontents{chapter}[25mm] % Indentation
{\addvspace{5pt}} % Spacing options for chapters
{\contentslabel[\scshape\large\chaptername\ \thecontentslabel]{25mm}} % Chapter number
{}
{\normalsize\titlerule*[5pt]{.}\contentspage} % Page number
\begin{document}
\tableofcontents
\chapter{A chapter}
\chapter{}
\end{document}
Выше \chapter
-относительный интервал указан как 25mm
, в то время как \contentslabel
указан похожий 25mm
интервал. Можно было бы рассчитать это расстояние немного точнее, но, похоже, это не требуется.
Если вы хотите избежать использованияtitletoc
, вы можете исправить некоторые макросы, связанные с главами, чтобы добиться похожего результата:
\documentclass{report}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@chapter}% <cmd>
{\numberline{\thechapter}}% <search>
{{\normalfont\scshape\large\@chapapp~\thechapter}~}% <replace>
{}{}% <success><failure>
% Remove bold formatting of chapters in ToC
\patchcmd{\l@chapter}{\bfseries}{}{}{}
% Add dotted ToC line for chapter entries in ToC
\patchcmd{\l@chapter}% <cmd>
{\hfil}% <search>
{\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\tableofcontents
\chapter{A chapter}
\chapter{}
\end{document}
Вышеуказанное разделение между точками определяетсяценитьв\@dotsep
макрос, что по умолчанию равно 4.5
(mu). Чтобы получить что-то похожее на titletoc
точечное правило, используйте следующий патч:
\patchcmd{\l@chapter}% <cmd>
{\hfil}% <search>
{\leaders\hbox{\makebox[5pt]{.}}\hfill}% <replace>
{}{}% <success><failure>