目录:居中“部分”并正确包装子部分

目录:居中“部分”并正确包装子部分

我想将 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}

相关内容