\addcontentsline{toc} 为目录添加换行符或新行

\addcontentsline{toc} 为目录添加换行符或新行

我使用\addcontentsline{toc}{chapter}{chaptername...}带有长章节名称的 。由于某种原因,此章节名称在我的 中显示为第二行缩进toc,我想找到一种方法来手动设置\newline\\强制换行。虽然这确实适用于 ,\chapter[chapter\newline name]{chaptername}但似乎不适用于\addcontentsline

有什么办法吗?我还研究了我的svmono课程,通常排除第二行的缩进toc,但似乎找不到更改设置的方法:

\documentclass[graybox,envcountchap,sectrefs]{svmono}
\usepackage{lipsum}
\usepackage{graphicx}        
\graphicspath{{Figures/}}

\begin{document}

\tableofcontents

\addcontentsline{toc}{chapter}{Pretty long chapter title that shouldn't 
be indented in the \\ second line}
\chapter*{This would be the chapter}
with its content

\end{document}

svmono.cls可以查看和修改我的 MWE 及其使用的类( )实现这里。按“项目”也可以访问该svmono.cls文件。

答案1

缩进的原因是缺少章节号,通常会添加类似

\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}chapter title}

将参数\numberline{}留空将产生正确的缩进,但也会添加虚线。

\usepackage{tocloft}默认禁用此功能。如果需要出现虚线,则省略\usepackage{tocloft}

为了防止出现更多这种较长的换行标题:我提供了一个将内容\addchapterline{foo}写入的命令。fooToC

\documentclass[graybox,envcountchap,sectrefs]{svmono}
\usepackage{lipsum}
\usepackage{tocloft}
%\usepackage{graphicx}     % Not needed here    
%\graphicspath{{Figures/}} % Not needed here


\newcommand{\addchapterline}[1]{%
  \addcontentsline{toc}{chapter}{\protect\numberline{}#1}%
}

\begin{document}

\tableofcontents


\addchapterline{Pretty long chapter title that shouldn't 
be indented in the second line}

\chapter*{This would be the chapter}
with its content

\chapter{Numbered chapter}


\end{document}

在此处输入图片描述

相关内容