我正在尝试制作一个运行不规则的目录。我希望所有标题(部分、章节、节)和页码之间的距离是部分/章节/节号和标题之间距离的 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
对齐,并且这两者都应该缩进以与来自对齐。I
F
First 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
)。您可以为每个部门级别使用多个这样的间距,但我不确定这是否会增强观众的印象。
我已编辑我原来的答案以尝试满足提问者的评论。