将“第 1 章”替换为“第一章”,但不影响 lof 和 lot

将“第 1 章”替换为“第一章”,但不影响 lof 和 lot

我使用了这里给出的答案将“第 1 章”替换为“第一章”但只有在没有以下表格(lot)或图表(lof)列表的情况下才应如此。当按原样使用时,以下 lot 和 lof 也会用单词替换章节编号,如下所示: 在此处输入图片描述

在此处输入图片描述

应该做哪些改变来防止这种情况发生?

答案1

你的问题中没有提到你是如何生成字符串而不是数字的。你一定不能重新定义\thechapter,否则与第一章相关的所有引用都将包含字符串ONE

您可以\@makechapterhead使用以下命令进行修补:

\documentclass{report}

\usepackage{fmtcount} % for textual representation of numbers

% patch \@makechapterhead
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}
  {\thechapter}
  {\NUMBERstring{chapter}}
  {}{}
\makeatother

\begin{document}

\listoffigures

\chapter{First}

\begin{figure}
A
\caption{A figure}
\end{figure}

\end{document}

在此处输入图片描述

如果您希望在目录中的章节标题前面加上“第一章”,那么您还需要修补\@chapter

\documentclass{report}

\usepackage{tocloft}
\renewcommand{\cftchappresnum}{CHAPTER\ }
\setlength{\cftchapnumwidth}{10em}
\usepackage{fmtcount} % for textual representation of numbers

% patch \@makechapterhead and \@chapter
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}
  {\thechapter}
  {\NUMBERstring{chapter}}
  {}{}
\patchcmd{\@chapter}
  {\protect\numberline{\thechapter}}
  {\protect\numberline{\protect\NUMBERstringnum{\arabic{chapter}}}}
  {}{}
\makeatother

\begin{document}

\tableofcontents

\listoffigures

\chapter{First}

\begin{figure}
A
\caption{A figure}
\end{figure}

\end{document}

在此处输入图片描述

请注意,如果想在新页面中添加,则需要\cleardoublepage在之前\listoffigures添加。为了显示输出,我没有添加它。

答案2

下面是使用标题目录计数包装:

\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{titletoc,  fmtcount}

\newlength{\len}
\titlecontents{chapter}[1.2em]{\bfseries \bigskip}%
{\contentslabel[Chapter \Numberstringnum{\thecontentslabel}.]{0.6em}\settowidth{\len} {Chapter \Numberstringnum{\thecontentslabel}}\hspace*{\len}}%]
{\hspace*{-1.5em}}%
{\hfill\contentspage}%
[\smallskip]%

\begin{document}

\tableofcontents

\chapter{Down the Rabbit-Hole}

\section{Alice was beginning to get tired}

\section{Drink me.  Eat me. }

\setcounter{chapter}{10}
\chapter{Who Stole the Tarts?}

\section{The Queen’s Croquet-Ground}

\section{The Mock-Turtle’s Story}

\end{document}

它不应该使用章节计数器修改任何交叉引用。由于该命令,它对少数语言来说是多语言的\FCloadlang

以下是相应的目录:

相关内容