使用 titletoc 正确对齐目录条目

使用 titletoc 正确对齐目录条目

初级 Latex 用户在这里,

我正在尝试使用以下方法自定义目录标题目录。希望对齐各部分和章节,以便章节/部分名称(例如第1章第一部分) 右对齐,而章节和部分的标题应左对齐。基本上,名称和标题之间会形成一个间隙,与章节和部分的间隙完全相同。

我可以想到一些可能的解决方案,但无法弄清楚它们是否有效,如果有效,如何实施它们:

  1. 将第 X 部分和第 X 章放入预定义的文本框中并对齐。问题是如何将章节/部分标题与章节/部分名称区分开?
  2. 增加部分名称和章节名称之间的间距。问题在于这不会使章节/部分名称左对齐。

我真的很想继续使用 titletoc,因为它与 titlesec 集成,我希望这是可能的。

提前感谢您的任何想法!

\documentclass{book}
\usepackage[newparttoc]{titlesec}
\usepackage{titletoc}

\titleformat{\part}
  [display]
  {\centering\bfseries\Huge}
  {\huge\partname~\thepart}
  {2ex}
  {}

\contentsmargin[2.5cm]{-30pt}

\titlecontents{part}
  [0em]
  {\normalfont\vspace{1.5em}}
  {{\partname~\thecontentslabel~\quad}}
  {}
  {}
  [\titlerule\addvspace{.25em}]

\titlecontents{chapter}
  [0em]
  {\normalfont\filright}
  {\contentsmargin{0pt}\contentspush{\bfseries\chaptername~\thecontentslabel~\quad}}
  {}
  {\hfill\thecontentspage}
  [\addvspace{0.25em}]

\begin{document}

\tableofcontents

\part{First Part}
\chapter{Introduction}
\chapter{This is a chapter with a very long title that will go the the second row}

\part{Very important second part}
\chapter{Another introduction}


\end{document}

答案1

\documentclass{book}
\usepackage[newparttoc]{titlesec}
\usepackage{titletoc}
\newlength\toclabelwidth
\setlength\toclabelwidth{2.2cm}
\titleformat{\part}
  [display]
  {\centering\bfseries\Huge}
  {\huge\partname~\thepart}
  {2ex}
  {}

\contentsmargin[2.5cm]{-30pt}

\titlecontents{part}
  [\toclabelwidth]
  {\normalfont\vspace{1.5em}}
  {\contentslabel[\hfill\partname~\thecontentslabel\quad]{\toclabelwidth}}
  {}
  {}
  [\titlerule\addvspace{.25em}]

\titlecontents{chapter}
  [\toclabelwidth]
  {\normalfont\filright}
  {\contentslabel[\hfill\bfseries\chaptername~\thecontentslabel\quad]{\toclabelwidth}}
  {}
  {\hfill\thecontentspage}
  [\addvspace{0.25em}]

\begin{document}

\tableofcontents

\part{First Part}
\chapter{Introduction}
\chapter{This is a chapter with a very long title that will go the the second row}

\part{Very important second part}
\chapter{Another introduction}


\end{document}

在此处输入图片描述

相关内容