I want to achieve a table of contents with this appearance:

enter image description here

Specifically, I want two things:

  1. For section entries to be one-and-a-half-spaced and for subsection and subsubsection entries to be single-spaced
  2. For titles to be indented relative to the rightmost entry (see how 1, 2, 2.1, and 2.2 are all indented relative to 2.2.1)

Everything else in the above screenshot I was able to achieve—centered and bolded table of contents title, bolded and uppercased section titles, and so on, except for the two points above.

I’ve been tinkering with the tocloft package, specifically with the \cftbeforeXskip and \cftXafterpnum commands, but to no avail.

1 Answer 1


Without considering the fonts presented, the following minimal example produces the desired layout using tocloft.

Since you want to adjust both the indent and the width of the sectional unit number, \cftsetindents{<type>}{<indent>}{<numwidth} is easiest for each <type>.

enter image description here



% Chapter entry formatting within ToC
% Space before chapter entries in ToC
\setlength{\cftbeforechapskip}{1.5\cftbeforechapskip}% One-and-a-half of the usual spacing
\renewcommand{\cftchapdotsep}{\cftsecdotsep}% \chapter leader dot sep matches \section leader dot sep

% Section entry formatting within ToC
\renewcommand{\cftsecfont}{\bfseries}% Bold section font
\renewcommand{\cftsecpagefont}{\bfseries}% Bold section page number
\renewcommand{\cftsecleader}{\cftchapleader}% \section leader matches \chapter leader

% Subsection entry formatting within ToC



\chapter{First chapter}\lipsum[1-10]
\section{First section}\lipsum[11-20]
\section{Second section}\lipsum[21-30]
\subsection{First subsection}\lipsum[31-40]

\chapter{Second chapter}\lipsum[1-50]

\chapter{Third chapter}\lipsum[1-50]

  • This MWE adds vertical space only before entries, which results in section entries not being one-and-a-half-spaced when subsection entries occur immediately after them. See the space between Section 2 and Subsection 2.1 in my screenshot compared to Section 1 and Subsection 1.1 of your screenshot as an example. Do you think it’s possible to also get vertical space below?
    – donjuardo
    Oct 24, 2023 at 20:26
  • 1
    @donjuardo: Sure. Try something like \setlength{\cftbeforechapskip}{1.2\cftbeforechapskip} \renewcommand{\cftchapafterpnum}{\par\addvspace{0.5\cftbeforechapskip}}; adjust the lengths as needed.
    – Werner
    Oct 24, 2023 at 20:51
  • Amazing. I ended up using \setlength{\cftbeforesecskip}{1.74999pt} and \renewcommand*{\cftsecafterpnum}{\par\addvspace{1.74999pt}} (this length is one-and-a-half-spaced \baselineskip minus single-spaced \baselineskip all divided by 2 for a font of size 12 pt) to nullify the default length of \cftbeforesecskip (\cftbeforesubsecskip and \cftbeforesubsubsecskip have a rubber length of 0 pt plus 0.2 pt), but you pointed me in the right direction. Thanks!
    – donjuardo
    Oct 24, 2023 at 22:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .