初级 Latex 用户在这里,
我正在尝试使用以下方法自定义目录标题目录。希望对齐各部分和章节,以便章节/部分名称(例如第1章,第一部分) 右对齐,而章节和部分的标题应左对齐。基本上,名称和标题之间会形成一个间隙,与章节和部分的间隙完全相同。
我可以想到一些可能的解决方案,但无法弄清楚它们是否有效,如果有效,如何实施它们:
- 将第 X 部分和第 X 章放入预定义的文本框中并对齐。问题是如何将章节/部分标题与章节/部分名称区分开?
- 增加部分名称和章节名称之间的间距。问题在于这不会使章节/部分名称左对齐。
我真的很想继续使用 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}