如何在目录中的项目之间添加空格

如何在目录中的项目之间添加空格

迷你文件

\documentclass[12pt,openany,oneside]{book}
\usepackage{titletoc}
\usepackage{lipsum}
\titlecontents{part}[3pc]{\addvspace{3pc}\filcenter}
{\sffamily\bfseries PART \thecontentslabel\\*[.2pc]\large}
{\sffamily\bfseries\large}{}[\addvspace{.5pc}]


\title{Title}
\date{}
\author{pythonee}

\begin{document}
\maketitle

\frontmatter
\tableofcontents
\chapter{Front One}
\lipsum[1]

\mainmatter
\part{Introduction}
\chapter{history}
\lipsum

\backmatter
\chapter{Back One}
\lipsum[1]

\end{document} 

Toc 输出如下所示: 输出

\frontmatter现在我想使和之间的空格\mainmatter等于\frontmatter andToc 中的 \mainmatter`。

顺便说一下。为什么部分未显示在目录中。我已使用 对其进行了自定义titletoc

章节之间的垂直空间应该紧凑

答案1

对于第二个问题,您需要使用newparttoc包选项 fortitlesec\titleformatfor\part来使其\titlecontents{part}...行为符合预期(我发现这有点令人惊讶;使用scrbook而不是book这个是没有必要的,所以我不知道这是否是设计时故意的)。

对于间距问题,您可以重新定义\backmatterbook.cls实现添加所需的垂直空间。

现在,在这个答案的评论中提出了额外的请求,您可以使用它\titlecontents来格式化章节条目。

这是一个完整的例子:

\documentclass[12pt,openany,oneside]{book}
\usepackage[newparttoc]{titlesec}
\usepackage{titletoc}
\usepackage{lipsum}

\titleformat{\part}[display]
  {\centering\Huge\bfseries}{\partname~\thepart}
  {1em}{\normalfont\bfseries}

\titlecontents{part}[3pc]{\addvspace{3pc}\filcenter}
  {\sffamily\bfseries\MakeUppercase{\partname}~\thecontentslabel\\*[.2pc]\large}
  {\sffamily\bfseries\large}{}[\addvspace{3pc}]

\titlecontents{chapter}[0em]{}
  {\bfseries\chaptername~\thecontentslabel\hspace{1em}}
  {\bfseries}
  {\hfill\bfseries\contentspage}

\makeatletter
\renewcommand\backmatter{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \addtocontents{toc}{\protect\addvspace{3pc}}
  \@mainmatterfalse}
\makeatother

\title{Title}
\date{}
\author{pythonee}

\begin{document}
\maketitle

\frontmatter
\tableofcontents
\chapter{Front One}
\lipsum[1]

\mainmatter
\part{Introduction}
\chapter{history}
\lipsum
\chapter{Some more history}
\lipsum

\backmatter
\chapter{Back One}
\lipsum[1]

\end{document}

在此处输入图片描述

相关内容