我在格式化文档的目录时遇到了麻烦。我的章节标题很长,会换行到两行目录文本中。问题是单个章节标题的第二行与章节号对齐,但我需要它与第一行标题文本的开头对齐:
我正在使用学校里流行的样式文件,这里是 \l@chapter 的定义:
\def\l@chapter#1#2{%
\pagebreak[3]
\vskip .75em plus 1pt \@tempdima 1.5em
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode {\MakeUppercase{#1}\mydotfill \hbox to\@pnumwidth{\hss #2}}
\par
\endgroup
}
关于如何使第二行与第一行文本对齐,有什么想法吗?
谢谢!
答案1
这也许是实现这一目标的更简单的方法:
\documentclass{report}
\makeatletter
\def\l@chapter#1#2{%
\pagebreak[3]
\vskip .75em plus 1pt \@tempdima 1.5em
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\advance\leftskip\@tempdima
\hskip -\leftskip
\leavevmode \MakeUppercase{#1}\dotfill \hbox to\@pnumwidth{\hss #2}
\par
\endgroup
}
\makeatother
\begin{document}
\tableofcontents
\chapter{This is a super long chapter heading that requires more than one line in the Table of Contents}
\end{document}
的调整\leftskip
直接取自\l@chapter
于book.cls
。
答案2
我的妻子想出了一个解决方案!(类似于 Sigur)。我在短标题中手动换行并添加 \hspace*,然后调整 hspace 距离直到对齐。虽然不优雅,但很有效!