使用 tocloft 更改标题和页码之间的距离以及对齐方式

使用 tocloft 更改标题和页码之间的距离以及对齐方式

我正在尝试制作一个运行不规则的目录。我希望所有标题(部分、章节、节)和页码之间的距离是部分/章节/节号和标题之间距离的 3 倍。不要点或任何东西。

我知道如何通过改变下面的 MWE 来设置从右侧的缩进4em,但我不知道如何计算适当的数字。

我还想将前言/简介标题与其下方的部分编号对齐,然后将它们都与章节标题对齐,而不是将所有内容都左对齐。

\documentclass{book}

\usepackage[titles]{tocloft}

\renewcommand{\cftdotsep}{\cftnodots}
\renewcommand{\cftpartafterpnum}{\hspace*{4em}}
\renewcommand{\cftchapafterpnum}{\hspace*{4em}}
\renewcommand{\cftsecafterpnum}{\hspace*{4em}}
\renewcommand{\cftpnumalign}{l}

\begin{document}

\frontmatter
\tableofcontents
\chapter{Introduction}
\part{This is Part One}
\mainmatter
\chapter{First Chapter}
\section{First Section}

\end{document}

因此,I来自应该与零件编号Introduction对齐,并且这两者都应该缩进以与来自对齐。IFFirst Chapter

有什么建议吗?

答案1

尝试这个:

% tocprob.tex  SE 552100

\documentclass{book}
\usepackage[titles]{tocloft}

%%%%%% your code
\renewcommand{\cftdotsep}{\cftnodots}
\renewcommand{\cftpartafterpnum}{\hspace*{4em}}
\renewcommand{\cftchapafterpnum}{\hspace*{4em}}
\renewcommand{\cftsecafterpnum}{\hspace*{4em}}
\renewcommand{\cftpnumalign}{l}

%%%%%%%%% my code
\newlength{\mylength}
\setlength{\mylength}{10em}
\renewcommand{\cftpartafterpnum}{\cftparfillskip}
\renewcommand{\cftchapafterpnum}{\cftparfillskip}
\renewcommand{\cftsecafterpnum}{\cftparfillskip}
\renewcommand{\cftpartpagefont}{\hspace{\mylength}\large\bfseries}
\renewcommand{\cftchappagefont}{\hspace{\mylength}\bfseries}
\renewcommand{\cftsecpagefont}{\hspace{\mylength}\normalfont}
\renewcommand{\cftpartleader}{}
\renewcommand{\cftchapleader}{}
\renewcommand{\cftsecleader}{}

\setlength{\cftpartindent}{1.2em} % align part numbers with chapter titles 

\begin{document}

\frontmatter
\setlength{\cftchapindent}{3em} % indent unnumbered chapters
\tableofcontents
\chapter{Introduction}
\part{This is Part One}
\addtocontents{toc}{\setlength{\cftchapindent}{2em}} % regular chapter indent
\mainmatter
\chapter{First Chapter}
\section{First Section}

\end{document}

\mylength我在标题末尾和页码之间使用了 的间距。数字和标题文本之间的实际间距由\cftXnumwidth tocloft宏指定,默认情况下每个宏都不同X> texdoc tocloft)。您可以为每个部门级别使用多个这样的间距,但我不确定这是否会增强观众的印象。

我已编辑我原来的答案以尝试满足提问者的评论。

相关内容