我想将 PART 居中,并将子小节放在 TOC 的一行中,并进行适当的缩进(与节或小节或章节匹配)。请看图。附件中还有示例代码。非常感谢。
\documentclass[12pt,bothside]{book}
\usepackage[titles]{tocloft}%
\renewcommand{\cftchapleader}{~\cftdotfill{5}}
\setcounter{secnumdepth}{0}
\setcounter{tocdepth}{3}
% to center part
\renewcommand{\cftpartfont}{\hfill\Large\bfseries}
\renewcommand{\cftpartaftersnum}{\hfill}
\addtocontents{toc}{\cftpagenumbersoff{part}}
%wrap TOC contents
\usepackage{titletoc}
\titlecontents*{subsubsection}% <section>
[1.5em]% <left>
{\scriptsize}% <above-code>
{}% <numbered-entry-format>
{}% <numberless-entry-format>
{,\ \thecontentspage}% <filler-page-format>
[\ - \ ]% <separator>
[\\]% <end>
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\part{Part 1}
\chapter{Chapter1}
\section{Section 1}
\subsubsection{Subsubsection 1}
\subsubsection{Subsubsection 2}
\part{Part 2}
\chapter{Chapter1}
\section{Section 1}
\subsection{Subection 1}
\subsubsection{Subsubsection 1}
\subsubsection{Subsubsection 2}
\end{document}
答案1
正如 的文档tocloft
所述,在标准类(例如book
)中\cftpartaftersnum
没有效果。相反,您可以修补此条目的生成命令,\l@part
向插入标题的实例添加额外代码#1
,以从右侧添加填充(并删除右侧的固定空间)。
\usepackage{xpatch}
\makeatletter
\patchcmd{\l@part}{#1}{#1\hfill\hskip-\rightskip\mbox{}}{}{}
\makeatother
请注意给出的解决方案使用 tocloft 将零件置于 toc 的中心 当部分的页码被抑制时不起作用。
对于小节,我认为您必须只选择一个缩进量。我建议将其设置为适合节或进一步缩进以达到其自身的对齐方式。
\documentclass[12pt,twoside]{book}
\usepackage[titles]{tocloft}%
\renewcommand{\cftchapleader}{~\cftdotfill{5}}
\setcounter{secnumdepth}{0}
\setcounter{tocdepth}{3}
% to center part
\renewcommand{\cftpartfont}{\hfill\Large\bfseries}
\usepackage{xpatch}
\makeatletter
\patchcmd{\l@part}{#1}{#1\hfill\hskip-\rightskip\mbox{}}{}{}
\makeatother
\addtocontents{toc}{\cftpagenumbersoff{part}}
%wrap TOC contents
\usepackage{titletoc}
\titlecontents*{subsubsection}% <section>
[3.8em]% <left>
{\scriptsize}% <above-code>
{}% <numbered-entry-format>
{}% <numberless-entry-format>
{,\ \thecontentspage}% <filler-page-format>
[\ - \ ]% <separator>
[\\]% <end>
\begin{document}
\showoutput
\frontmatter
\tableofcontents
\mainmatter
\part{Part 1}
\chapter{Chapter1}
\section{Section 1}
\subsubsection{Subsubsection 1}
\subsubsection{Subsubsection 2}
\part{Part 2}
\chapter{Chapter1}
\section{Section 1}
\subsection{Subection 1}
\subsubsection{Subsubsection 1}
\subsubsection{Subsubsection 2}
\end{document}