我有一个章节标题太长,目录无法容纳在一行中,但 LaTeX 会将其保留在一行中,导致目录中出现一行过满。我该如何在此标题中插入换行符,以便仅在目录中将其换行,而不是在它作为章节标题出现时换行?
我尝试过\protect\linebreak[1]
,但结果却相反:它在章节标题中断行,但在目录中却没有断行。
这是我的源代码的简化版本(尽管不是一个最小的示例):
\documentclass[a4paper,12pt]{scrbook}
\usepackage[utf8]{inputenc} % UTF-8 input encoding
\usepackage[T1]{fontenc} % for hyphenation to work with
% accented letters, etc.
\usepackage{lmodern} % modern latin font
\usepackage[french]{babel} % language support
\usepackage[hmargin=3.5cm,vmargin=3.5cm]{geometry}
\usepackage{tocstyle}
\usetocstyle{KOMAlike} % defined in tocstyle package
\renewcommand{\thechapter}{\Roman{chapter}}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Un chapitre}
\chapter{Deux chapitre}
\chapter{Systèmes d'équations différentielles
linéaires à coefficients \protect\linebreak[1]constants}
\section{Généralités}
\section{Résolution d'un système d'ordre $1$
par diagonalisation ou par triangularisation}
\end{document}
答案1
通常会提供标题或标题的替代形式作为选项:
\chapter[optional form](form in chapter}
然后\linebreak
就只能以可选形式放置了。
当然,这也会弄乱页眉,但可以用
\markboth{left page}{right page}
这个问题解决了相反的要求 - 在章节标题中中断,但在目录中不中断:避免在章节标题中使用连字符