使用书籍类时,cftchapternumwidth 的等效值是多少?

使用书籍类时,cftchapternumwidth 的等效值是多少?

使用时,我有以下内容来修改目录间距memoir

\setlength{\cftbeforechapterskip}{0.5em}
\setlength{\cftchapternumwidth}{10em}

使用该类时等效于什么book

答案1

使用该tocloft包。

\documentclass{book}
\usepackage{tocloft}
\setlength{\cftbeforechapskip}{0.5em}
\setlength{\cftchapnumwidth}{10em}

答案2

这是一个使用memoir

在此处输入图片描述

\documentclass{memoir}

\setlength{\cftbeforechapterskip}{0.5em}
\setlength{\cftchapternumwidth}{10em}

\begin{document}

\tableofcontents

\chapter{A chapter}
\section{A section}

\chapter{Another chapter}

\end{document}

以下是使用以下方法复制的输出tocloft在文档类中(请注意,使用book下的目录的章节级长度,而不是与 一起使用的长度):tocloft\cftchap...\cftchapter...memoir

\documentclass{book}

\usepackage{tocloft}

\setlength{\cftbeforechapskip}{0.5em}
\setlength{\cftchapnumwidth}{10em}

\begin{document}

\clearpage
\addcontentsline{toc}{chapter}{\contentsname}
\tableofcontents

\chapter{A chapter}
\section{A section}

\chapter{Another chapter}

\end{document}

如果没有任何包,您必须更改 的定义\l@chapter。以下是来自book.cls

\newcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil
      \nobreak\hb@xt@\@pnumwidth{\hss #2%
                                 \kern-\p@\kern\p@}\par
      \penalty\@highpenalty
    \endgroup
  \fi}

这是更新后的定义,以复制memoirand/or的行为tocloft

\documentclass{book}

\makeatletter
\renewcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 0.5em% <----------------- Similar to \cftbeforechapskip from tocloft
    \setlength\@tempdima{10em}% <--- Similar to \cftchapnumwidth from tocloft
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil
      \nobreak\hb@xt@\@pnumwidth{\hss #2%
                                 \kern-\p@\kern\p@}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\makeatother

\begin{document}

\clearpage
\addcontentsline{toc}{chapter}{\contentsname}
\tableofcontents

\chapter{A chapter}
\section{A section}

\chapter{Another chapter}

\end{document}

相关内容