避免在章节标题中使用连字符

避免在章节标题中使用连字符

我想知道是否有办法避免章节标题中的单词连字符。

我试过,\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”警告,这正是上述情况。也许这是一个极端的情况,但仍然如此。

相关内容