我使用\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}
写入的命令。foo
ToC
\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}