通过以下示例,我得到了“Contents”和“1 bar 5”以及“foo”和“Lorem”之间的不同垂直距离。如何使 TOC 的第一个条目与“Lorem ipsum”的高度相同,即基线应为下图中的红色规则:
\documentclass{book}
\begin{document}
\tableofcontents
\chapter*{foo}
Lorem ipsum
\chapter{bar}
Lorem ipsum
\end{document}
答案1
\l@chapter
命令中的命令book.cls
排版目录中的章节条目。它在条目前垂直添加 1.0 em。因此,要删除第一个条目前的空格,您可以重新定义该宏或在开始第一章之前添加负垂直跳过,例如
\addtocontents{toc}{\vskip -1.0em}
\tableofcontents
\chapter*{foo}
实际上,宏还包含 1 pt 的胶水。来自book.cls
:
\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}