目录中章节号的对齐

目录中章节号的对齐

我创建了一个如下所示的目录:

我的目录

但我希望章节编号(罗马字母)和章节标题能够按如下所示对齐:

所需目录

我正在做以下事情:

\documentclass[10pt,largepost]{octavo}%

\usepackage{titlesec, tocloft}

\titleformat{\chapter}[display]
  {\centering\normalfont\large\scshape}{}{18pt}{\large}
\titlespacing*{\chapter}{0pt}{0pt}{40pt}

\titleformat{\part}[display]
  {\normalfont\Large\filcenter\scshape\bfseries}
  {\thepart}{18pt}{\large}
\titlespacing*{\part}{0pt}{50pt}{40pt}

\begin{document}

\tableofcontents

\part{Book One}

\chapter[I \emph{Maecenas atavis}]{\textsc{i}\\maecenas atavis}

\chapter[II \emph{Jam satis}]{\textsc{ii}\\jam satis}

\chapter[III \emph{Sic te diva}]{\textsc{iii}\\sic te diva}

\chapter[IV \emph{Solvitur acris hiems}]{\textsc{iv}\\solvitur acris hiems}

\end{document}

答案1

\documentclass[10pt,largepost]{octavo}
\usepackage[T1]{fontenc}
\usepackage{titlesec,tocloft}

\titleformat{\chapter}[display]
  {\centering\normalfont\large\scshape}{\thechapter}{18pt}{\large}
\titlespacing*{\chapter}{0pt}{0pt}{40pt}

\titleformat{\part}[display]
  {\normalfont\Large\filcenter\scshape\bfseries}
  {\thepart}{18pt}{\large}
\titlespacing*{\part}{0pt}{50pt}{40pt}

\setcounter{secnumdepth}{3}
\def\thechapter{\Roman{chapter}}
\setlength{\cftchapnumwidth}{1cm}
\def\cftchappresnum{\normalfont\hfill}
\def\cftchapaftersnum{.\space}
\def\cftchapdotsep{\cftdotsep}
\def\cftchapfont{\normalfont\itshape}
\def\cftchappagefont{\normalfont}
\def\cftdot{{\normalfont.}}
\cftpagenumbersoff{part}
\def\cftpartfont{\large\bfseries}

\begin{document}

\tableofcontents

\part*{Book One}

\addtocontents{toc}{\vspace{10pt}{\small ODE}\par}

\chapter{Maecenas atavis}

\chapter{Jam satis}

\chapter{Sic te diva}

\chapter{Solvitur acris hiems}

\end{document}

在此处输入图片描述

相关内容