更改 l@chapter 的第一个参数

更改 l@chapter 的第一个参数

在目录中,我希望章节显示如下

第 1 章:前言

第 4 章:高级主题

我尝试修改\l@chapterMWE 中显示的命令,但我得到的实际上是

第一章 前言:

如何修复?

我想在不使用titletoc或 的情况下做到这一点tocloft

在此处输入图片描述

\documentclass{book}
\makeatletter
\renewcommand*\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
      Chapter #1:\nobreak\hfil % <<<--- Changed
      \nobreak\hb@xt@\@pnumwidth{\hss #2%
                                 \kern-\p@\kern\p@}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\begin{document}
\tableofcontents
\chapter{Preface}
\end{document}

答案1

章节号打印在\@chapter命令中,而不是在\l@chapter命令中。因此,您需要修补这两个命令,以便在不使用 TOC 包之一的情况下执行您想要的操作:

\documentclass{book}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\l@chapter}{#1}{\chaptername{} #1}{}{}
\patchcmd{\@chapter}{\numberline{\thechapter}}{\numberline{\thechapter:}}{}{}
\makeatother
\begin{document}
\tableofcontents
\chapter{Preface}
\end{document}

代码输出

相关内容