罗马章节号导致 titletoc-ToC 中的水平盒子过满

罗马章节号导致 titletoc-ToC 中的水平盒子过满

Overfull hbox在目录中,章节编号更改为 后Roman,请参阅下面的 MWE。使用tocloft软件包\setlength\cftchapternumwidth{3em}解决了该问题。

:这个问题有解决办法吗不是使用tocloft但是titletoc

\documentclass{book}

\usepackage{titletoc}

\begin{document}
\renewcommand{\thechapter}{\Roman{chapter}}
\setcounter{chapter}{7}
\tableofcontents
\chapter{Lipsum}
\section{Introduction}
\subsection{Introduction to introduction}
\subsubsection{Introduction to introduction to introduction}
\end{document}

附言:我已经在目录中指定了某些内容titletoc,很高兴不必再用 重新做所有事情tocloft。这就是为什么我想避免使用tocloft解决方案!

答案1

这里是对 Philippe Goudet 的回答的改编,其中各个 ToC 条目的水平对齐方式与标准类的水平对齐方式类似:

\documentclass{book}

\usepackage{titletoc}
\titlecontents{chapter}[3em]{\addvspace{10pt}\bfseries}
    {\contentslabel{2.5em}}{\hspace{-2.5em}}{\hfill\contentspage}
\dottedcontents{section}[6.3em]{}{3.3em}{0.7pc}
\dottedcontents{subsection}[10.5em]{}{4.2em}{0.7pc}

\renewcommand{\thechapter}{\Roman{chapter}}

\begin{document}
\tableofcontents
\chapter*{Introduction}
\addcontentsline{toc}{chapter}{Introduction}
\setcounter{chapter}{7}
\chapter{Lipsum}
\section{Introduction}
\subsection{Introduction to introduction}
\subsubsection{Introduction to introduction to introduction}
\end{document}

在此处输入图片描述

答案2

您可以使用以下方式完全个性化条目标题目录通过使用。对于每个部分级别,您需要通过选择适当的值来\titlecontents更改左缩进和:\contentslabel

\documentclass{book}

\usepackage{titletoc}

\renewcommand{\thechapter}{\Roman{chapter}}

\titlecontents{chapter}%
  [3em]% left indent
  {\addvspace{1em plus 0pt}\bfseries}% stuff before
  {\contentslabel{3em}}% before if there's a number
  {\hspace{-3em}}% before if there's no number
  {\hfill\contentspage}% dots and page number
  [\addvspace{0pt}]% stuff after

\dottedcontents{section}%
  [5em]% left indent
  {\addvspace{0pt}}% stuff before
  {3.5em}% spacing of \contentslabel
  {0.75em}% space between the dots
  [\addvspace{0pt}]% stuff after

\dottedcontents{subsection}%
  [7.5em]% left indent
  {\addvspace{0pt}}% stuff before
  {4.25em}% spacing of \contentslabel
  {0.75em}% space between the dots
  [\addvspace{0pt}]% stuff after

\begin{document}

\tableofcontents

\chapter*{Introduction}
\addcontentsline{toc}{chapter}{Introduction}

\setcounter{chapter}{7}
\chapter{Lipsum}
\section{Introduction}
\subsection{Introduction to introduction}
\subsubsection{Introduction to introduction to introduction}

\end{document}

相关内容