我正在使用 Lyx 和自定义文档类来完成我的论文。最初,我遇到了一个问题,就是长章节标题需要用连字符连接;在这个示例中,我需要将目录正确地排列成第一章的标题。
一开始我尝试\raggedright
在之前添加\tableofcontents
;但是没有成功。
接下来我尝试
\usepackage{tocloft} \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}{\cftchapfont}{\raggedright}
这改变了目录的字体和外观,但仍然没有删除连字符!
接下来我尝试
\usepackage[tocgraduated]{tocstyle}
\newtocstyle{raggedstyle}{%
\settocfeature{raggedhook}{\raggedright}
\settocfeature{spaceafternumber}{17pt}
}
\usetocstyle{raggedstyle}
(实际上,在修改此代码之前,我尝试使用\usepackage[tocflat]{tocstyle}
;结果与上面相同,只是所有缩进都丢失了。)我最终解决了删除连字符的问题;但是,它也删除了章节之间的空格。
我已经浪费了足够多的时间尝试自己修复这个问题。请帮忙!
答案1
由于使用 tocloft 会不可接受地改变整体样式,因此您可以使用 \mbox{} 来防止个别单词被连字符化,并使用 \sloppy 来防止行延伸得太远。甚至可以使用 \hbox 强制换行(至少对于此设置而言)。
由于章节开头的章节标题已经是 \raggedright,添加 \sloppy 似乎不会改变它或生成错误消息。
\documentclass{report}
\begin{document}
\tableofcontents
\chapter{This is a very long chapter title containing words like electromagnetic and particle.}
\chapter{This is a very long chapter title containing words like \mbox{electromagnetic} and particle.}
\chapter{\sloppy This is a very long chapter title containing words like \mbox{electromagnetic} and particle.}
\chapter{This is a very long chapter title containing words like \hbox to 2em{}\hspace{-2em}electromagnetic and particle.}
\end{document}