是否有参考资料可以显示如何使用titletoc
命令(\titlecontents
等)来近似标准类中目录的布局book
?
特别是,我想了解如何对包括\part
和在内的所有分段命令执行此操作\chapter
。
答案1
我找不到任何关于如何使用来定义标准类的布局的参考titletoc
。
查找它的一个地方是类文件本身,对于报告和书籍类中的一章,我们得到以下定义。
\newcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
经过一番尝试,我仍然无法得到令人满意的结果。
\documentclass{book}
\usepackage{titletoc}
\titlecontents{chapter}[0pt]{\vspace{1em}\bfseries}{\thecontentslabel\enspace}{}{\hfill\contentspage}[\vspace{2pt}]
\usepackage{blindtext}
\usepackage{showframe}
\begin{document}
\tableofcontents
\blinddocument
\backmatter
\blinddocument
\end{document}
包裹仍在α但尽管如此,非常有用的是,包中tocstyle
没有钩子方法titletoc
想要阻止。这使得更改小部件的外观变得相对容易。
例如,如果你出于非常奇怪的原因想要只是页码更大并且没有衬线,您可以执行以下操作。
\documentclass{book}
\usepackage{blindtext}
\usepackage{showframe}
\usepackage{tocstyle}
\usetocstyle{standard}
\settocfeature{pagenumberhook}{\Large\sffamily}
\begin{document}
\tableofcontents
\blinddocument
\backmatter
\blinddocument
\end{document}
很好地阐明了观点,但不适合放在自己的文档中。
答案2
对于chapter
目录中的样式,以下代码似乎比 Johannes_B 的代码更准确地重现了书籍类样式:
\documentclass{book}
\usepackage{titletoc}
\usepackage{blindtext}
\usepackage{showframe}
\titlecontents{chapter}
[1.5em]
{\addvspace{1em}\bfseries}
{\contentslabel{1.3em}}
{\hspace*{-1.3em}}
{\titlerule*[.5pc]{}\contentspage}
% code by Johannes_B:
%\titlecontents{chapter}
% [0pt]
% {\vspace{1em}\bfseries}
% {\thecontentslabel\enspace}
% {}
% {\hfill\contentspage}[\vspace{2pt}]
\begin{document}
\tableofcontents
\blinddocument
\backmatter
\blinddocument
\end{document}