Using the tocloft package I would like to have the (Roman) page numbers in the table of contents to be aligned left (in the MWE chapter 1-3) instead of right (in the MWE chapter 4-5). (And later right aligned for the arabic page numbers.) Is there some easier way than redefining \cftchapfillnum?
The example is just about chapters, but in the not-minimal-document I also redefine it for part and section (and if somebody uses subsection,..., those redefinitions must be done, too.)
\documentclass{report}
\usepackage{letltxmacro}
\usepackage{tocloft}
\makeatletter
\renewcommand{\cftchapdotsep}{\cftdotsep}
\renewcommand{\@pnumwidth}{6em}
\renewcommand{\@tocrmarg}{8.55em}
\LetLtxMacro{\origcftchapfillnum}{\cftchapfillnum}
\renewcommand{\cftchapfillnum}[1]{%
{\cftchapleader}\nobreak
\hb@xt@\@pnumwidth{\cftchappagefont #1\hfil}\cftchapafterpnum\par}
\makeatother
\begin{document}
\pagenumbering{Roman}
\tableofcontents
\newpage
\addcontentsline{toc}{chapter}{one}
1
\newpage
\addtocounter{page}{25}
\addcontentsline{toc}{chapter}{two}
2
\newpage
\addtocounter{page}{9}
\addcontentsline{toc}{chapter}{three}
3
\addtocontents{toc}{\string\LetLtxMacro{\string\cftchapfillnum}{\string\origcftchapfillnum}}
\newpage
\addtocounter{page}{9}
\addcontentsline{toc}{chapter}{four}
4
\newpage
\addtocounter{page}{1}
\addcontentsline{toc}{chapter}{five}
5
\end{document}
The MWE really works (MWEs usually do not work - in spite of their name), but the question is whether there is some easier solution which I just did not find?

\@pnumwidthnot6embut as wide as the widest "number", and together with\pagenumbering{arabic}further decreased that. (I may have higher page numbers, but nothing to fill6emwith an arabic number!) +1 and accepted. – Stephen Jun 09 '12 at 18:00