我正在准备的一本书中有两期:
- 对于双位数章节编号,目录不会在编号和标题之间留出足够的空间。事实上,它们可以重叠。
- 我想更改目录中条目的字体。
第一个问题可以通过以下方法解决:
\makeatletter
\renewcommand{\l@chapter}{\@dottedtocline{1}{1.5em}{2.6em}}
\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{2.6em}}
\renewcommand{\l@subsection}{\@dottedtocline{2}{4.0em}{3.6em}}
\renewcommand{\l@subsubsection}{\@dottedtocline{3}{7.4em}{4.5em}}
\makeatother
第二个问题可以通过以下方法解决
\usepackage[titles]{tocloft}
\renewcommand{\cftpartfont}{\sffamily\bfseries\LARGE}
\renewcommand{\cftchapfont}{\sffamily\bfseries\Large}
\renewcommand{\cftsecfont}{\sffamily\bfseries}
\renewcommand{\cftsubsecfont}{\sffamily\bfseries}
由于我无法理解的原因,这两种解决方案不兼容——如果我取消注释解决间距问题的行,它们显然会禁用修改字体的 tocloft 语句。
如何在同一文档中实现这两件事?
以下是 MWE:
\documentclass{book}
\usepackage[titles]{tocloft}
% The following lines, when uncommented, correct the
% shortage of space following section numbers
% in the Table of Contents.
\makeatletter
\renewcommand{\l@chapter}{\@dottedtocline{1}{1.5em}{2.6em}}
\renewcommand{\l@section}{\@dottedtocline{1}{1.5em}{2.6em}}
\renewcommand{\l@subsection}{\@dottedtocline{2}{4.0em}{3.6em}}
\renewcommand{\l@subsubsection}{\@dottedtocline{3}{7.4em}{4.5em}}
\makeatother
% The following lines, when uncommented, change the font used
% by section titles in the Table of Contents.
% However they are somehow disabled by the lines above.
\renewcommand{\cftpartfont}{\sffamily\bfseries\LARGE}
\renewcommand{\cftchapfont}{\sffamily\bfseries\Large}
\renewcommand{\cftsecfont}{\sffamily\bfseries}
\renewcommand{\cftsubsecfont}{\sffamily\bfseries}
\begin{document}
\tableofcontents
\chapter{Chapter}
\chapter{Chapter}
\setcounter{chapter}{10}
\chapter{Chapter}
\section{Section}
\section{Section}
\setcounter{section}{10}
\section{Section}
\section{Section}
\subsection{Subsection}
\subsection{Subsection}
\setcounter{subsection}{10}
\subsection{Subsection}
\subsection{Subsection}
\chapter{Chapter}
\end{document}
答案1
您可以使用它tocloft
本身来做到这一点。
\cftsetindents{<entry>}{<indent>}{<numwidth>}
所以你可以
\cftsetindents{chapter}{0em}{2em}
\cftsetindents{section}{2em}{3em}
\cftsetindents{subsection}{5em}{4.2em}
\cftsetindents{subsubsection}{9.2em}{5em}
然后根据需要调整值。
\documentclass{book}
\usepackage[titles]{tocloft}
\renewcommand{\cftpartfont}{\sffamily\bfseries\LARGE}
\renewcommand{\cftchapfont}{\sffamily\bfseries\Large}
\renewcommand{\cftsecfont}{\sffamily\bfseries}
\renewcommand{\cftsubsecfont}{\sffamily\bfseries}
\cftsetindents{chapter}{0em}{2em}
\cftsetindents{section}{2em}{3em}
\cftsetindents{subsection}{5em}{4.2em}
\cftsetindents{subsubsection}{9.2em}{5em}
\begin{document}
\tableofcontents
\chapter{Chapter}
\chapter{Chapter}
\setcounter{chapter}{10}
\chapter{Chapter}
\section{Section}
\section{Section}
\setcounter{section}{10}
\section{Section}
\section{Section}
\subsection{Subsection}
\subsection{Subsection}
\setcounter{subsection}{10}
\subsection{Subsection}
\subsection{Subsection}
\chapter{Chapter}
\end{document}