# How to increase the numwidth for a part in ToC?

I am using a Koma-Script Book and I would like to begin the part numbers from 2012. However, 4 digit part number entries are causing a problem in the tableofcontents. There is a hbox overfull and the last digit of 2012 is overlapping with the first one or two characters of the part heading. I am using the command \tableofcontents to generate the ToC.

What is a good way to fix this?

-

Using the tocloft package, you can redefine \cftpartnumwidth:

\documentclass{scrbook}
\usepackage{tocloft}

\renewcommand\cftpartnumwidth{2cm}

\begin{document}

\tableofcontents

\setcounter{part}{2011}
\part{Test Part}

\end{document}


Another option, not requiring additional packages is to redefine \l@part as defined in scrbook.cls; here's such a possible redefinition:

\documentclass{scrbook}

\makeatletter
\renewcommand*\l@part[2]{%
\ifnum \c@tocdepth >-2\relax
\setlength{\@tempdima}{2cm}% original value: 2em
\if@tocleft
\ifx\toc@l@number\@empty\else
\setlength\@tempdima{0\toc@l@number}%
\fi
\fi
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode
\hskip -\leftskip
\usekomafont{partentry}{#1\nobreak
\usekomafont{partentrypagenumber}{\hfil\nobreak
\hb@xt@\@pnumwidth{\hss#2}}}\par
\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
\endgroup
\penalty20010
\else
\penalty\@highpenalty
\endgroup
\fi
\fi
}
\makeatother

\begin{document}

\tableofcontents

\setcounter{part}{2011}
\part{Test Part}

\end{document}

-
Okay, so tocloft is a package! I read it everywhere and thought it was some another toc method which I did not want to venture into. Let me check and I will get back to you. –  Jayesh Badwaik Jul 19 '12 at 5:12
Thank You. This works. I should probably wait sometime before accessing the answer though. –  Jayesh Badwaik Jul 19 '12 at 5:21

Since you are using KOMA-Script, you could have a look at the package tocstyle.

\usepackage{tocstyle}
\usetocstyle{KOMAlike}


This requires extra compilation runs to calculate the widths of the TOC.

-

The width of the box that contains the part number in the ToC is 2em by default. This width is specified in \l@part. You can patch it using the etoolbox package to your liking:

\documentclass{scrbook}% http://ctan.org/pkg/koma-script
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\l@part}% <cmd>
{2em}% <search>
{2cm}% <replace>
{}{}% <success><failure>
\makeatother
\setcounter{part}{2011}% Initialize part counter
\begin{document}
\tableofcontents
\part{First part}
\chapter{A chapter}\section{A section}
\chapter{A chapter}\section{A section}
\part{Second part}
\chapter{A chapter}\section{A section}
\chapter{A chapter}\section{A section}
\part{Last part}
\chapter{A chapter}\section{A section}
\chapter{A chapter}\section{A section}
\end{document}


As usual, the \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>} command searches for <search> in <cmd> and replaces it with <replace>. Additionally, it executes <success> if the replacement was successful, otherwise it executes <failure>.

-