我想知道是否有办法避免章节标题中的单词连字符。
我试过,\mbox
但这样会让单词超出页边距。我还尝试\\
在单词前面插入一个,但尽管这在章节标题页上产生了预期的效果,但它也带来了不良的副作用,即换行符也出现在目录中。
有任何想法吗?
答案1
如果要在章节标题中使用换行符,但不在目录中使用换行符,请使用可选参数\chapter
:
\chapter[The long long long title]{The long long\\ long title}
答案2
在 ConTeXt 中,您可以使用
\setuphead[chapter][align=nothyphenated]
或者稍微好一点
\setuphead[chapter][align={flushleft, nothyphenated, verytolerant}]
将标题设置为向左对齐,不使用连字符,并且单词之间的空白更加可拉伸。
答案3
该hyphenat
软件包提供了命令\nohyphens
。您可以在本地控制连字符。
如果您想全局关闭连字符,请使用\usepackage[none]{hyphenat}
。
答案4
默认情况下,章节标题使用 来设置\raggedright
。但是,这不一定能避免连字符。不过,可以通过 修补相应的章节标题宏来避免连字符\hyphenpenalty=10000
:
\documentclass{report}%
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
% http://mentalfloss.com/article/50611/12-exceptionally-long-or-extremely-special-words
\hyphenation{sub-der-ma-to-gly-phic}
\setlength{\textwidth}{.5\textwidth}% Just for this example
\begin{document}
\chapter{This subdermatoglyphic title is long}
\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\@makechapterhead}{#1}{\hyphenpenalty=10000 #1}{}{}% Patch \chapter
\patchcmd{\@makeschapterhead}{#1}{\hyphenpenalty=10000 #1}{}{}% Patch \chapter*
\makeatother
\chapter{This subdermatoglyphic title is long}
\end{document}
请注意,避免使用连字符可能会导致“Overfull \hbox
”警告,这正是上述情况。也许这是一个极端的情况,但仍然如此。