在标准book
类中,如果有很长的章节标题,\tableofcontents
则尝试生成对齐的文本。
我怎样才能制作目录,以便各章节标题排版为左对齐、右对齐?
也就是说,我想制作类似这样的内容(请注意页码要对齐):
1.2.2 Short title . . . . . 42
1.2.3 Long section title
can be wrapped . . . . 44
1.2.4 Another short title . 45
(默认输出几乎相同,只是 Latex 使用连字符和可变的字间距来确保所有多行部分标题的右边距对齐。)
我以为我可以轻松使用该titletoc
包 — 只需重新定义目录条目并添加\raggedright
某处即可。然而,我的尝试均未成功。
答案1
您可以尝试
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@dottedtocline}
{\rightskip\@tocrmarg}
{\rightskip\@tocrmarg plus 4em \hyphenpenalty\@M}
{}{}
\makeatother
这样,您将获得参差不齐的正确文本并且没有连字符。
答案2
您可以使用tocstyle
包含在KOMA-Script
。
\documentclass{article}
\usepackage{tocstyle}
\usetocstyle{standard}
\settocfeature{raggedhook}{\raggedright}
\newcommand*{\sometext}{%
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
Donec vehicula augue eu neque.%
}
\begin{document}
\tableofcontents
\section{\sometext}
\subsection{\sometext}
\end{document}