知道如何将字符串“Chapter”添加到目录中选定的位置吗?
目前,TOC 如下所示:
无编号章节 A 无编号章节 B 1. 这是第一章。 2. 这是第二章。 3.这是第3章。 4.这是第4章。
我想给其中一些添加“章节”。结果应该是这样的:
无编号章节 A 无编号章节 B 1. 这是第一章。 2. 这是第二章。 第 3 章。这是第 3 章。 第 4 章。这是第 4 章。
答案1
您可以使用以下方法修补宏\l@chapter
中间文档regexpatch
以及来自修补宏内的参数:
\documentclass{report}
\usepackage{regexpatch}% http://ctan.org/pkg/regexpatch
\makeatletter
\newcommand{\patchlchapter}{%
\xpatchcmd{\l@chapter}{##1}{Chapter~##1}{}{}%
}
\makeatother
\begin{document}
\tableofcontents
\chapter*{Chapter without any number A}
\addcontentsline{toc}{chapter}{Chapter without any number A}
\chapter*{Chapter without any number B}
\addcontentsline{toc}{chapter}{Chapter without any number B}
\chapter{This is chapter 1}
\chapter{This is chapter 2}
\addtocontents{toc}{\protect\patchlchapter}
\chapter{This is chapter 3}
\chapter{This is chapter 4}
\end{document}
您必须修补此中间文档,因为.toc
通过调用读取的\tableofcontents
是一次性执行的。将补丁放置在中间文档中可确保它将在 中的正确位置执行.toc
:
\contentsline {chapter}{Chapter without any number A}{2}
\contentsline {chapter}{Chapter without any number B}{3}
\contentsline {chapter}{\numberline {1}This is chapter 1}{4}
\contentsline {chapter}{\numberline {2}This is chapter 2}{5}
\patchlchapter
\contentsline {chapter}{\numberline {3}This is chapter 3}{6}
\contentsline {chapter}{\numberline {4}This is chapter 4}{7}