我目前正在书籍文档类中编写 LaTeX 文档。在我的目录中,我希望某些条目(在我的情况下是部分)的实际标题以换行符的形式出现在章节类型的通用名称(“部分”)后面,后跟数字(“I”、“II”等),因此它应该如下所示:
第一部分
第一部分标题
第二部分
第二部分标题
我正在使用 tocloft 包来自定义目录,其手册实际上有一个示例,准确描述了如何实现这一点。显然,无论出于何种原因,换行命令(参见 MWE)对书籍类不起作用。关于这里的问题有什么建议吗?
\documentclass{book}
\usepackage{tocloft}
\renewcommand{\cftpartpresnum}{\partname\ }
\renewcommand{\cftpartaftersnumb}{\\ }
\begin{document}
\tableofcontents
\part{Title of first part}
\part{Title of second part}
\end{document}
编辑 1:我遵循了 @locksteps 的建议并尝试使用该包实施解决方案titletoc
。但是,现在我遇到了一个问题,即对于部分条目,无论出于何种原因,标签编号始终附加在实际标题上,对于章节等,可以单独调用标签
\documentclass{book}
\usepackage{titletoc}
\titlecontents{part}[0pt]{}{}{\Large\bfseries Part\\*}{}[]
\titlecontents{chapter}[0pt]{}{Chapter \thecontentslabel\\*}{}{}[]
\begin{document}
\tableofcontents
\part{The first part}
\chapter{The first chapter}
\end{document}
答案1
tocloft
s\cftXaftersnumb
宏系列不适用于类中的X
= 。引自手册第 9 页:part
book
tocloft
在标准类中,目录条目
\part
只是排版为编号和标题,后面是页码,\cftpartpresnum
在排版编号和标题之前调用宏。使用标准类时,\cftpartaftersnum
和\cftpartaftersnumb
宏不起作用,但如果使用非标准类,它们可能会起作用。
答案2
问题在于,标准类向目录发送信息的方式对于部分和章节是不同的。文档中讨论了这一点titletoc
:要获得各部分的一致行为,您需要重新定义\part
命令。
一种方法是使用不同的文档类,如KOMA
脚本scrbook
。另一种方法是使用titlesec
带有新部分选项并发出重新定义的命令之一\part
(如\titleformat
)。第二个选项如下所示,位于注释区域:
\documentclass{scrbook}
% If you really want the standard book class, uncomment the following:
%\documentclass{book}
%\usepackage[newparttoc]{titlesec}
%\titleformat{\part}[display]{\center\normalfont\huge\bfseries}
% {\partname\ \thepart}{20pt}{\Huge}
\usepackage{titletoc}
\titlecontents{part}[0pt]{}{\Large\bfseries Part \thecontentslabel\\*}
{\Large\bfseries Unnumbered Part\\*}{}[]
\titlecontents{chapter}[0pt]{}{Chapter \thecontentslabel\\*}
{Unnumbered Chapter\\*}{}[]
\begin{document}
\tableofcontents
\part{The first part}
\chapter{The first chapter}
\end{document}