在我正在写的一本书中,我希望章节的目录条目能够阅读
Chapter 1: foobar 3
附录
Appendix 1: bletch 197
使用tocloft
,线条
\renewcommand{\cftchappresnum}{Chapter }
\renewcommand{\cftchapaftersnum}{: }
(连同一行来控制宽度)在我的前言中可以完成章节名称格式的设置,但不幸的是,这些行似乎需要放在前言中,因此cftchappresnum
在开始处理附录时我无法重新定义。我也尝试过让 的定义cftchappresnum
依赖于该布尔值:
\newboolean{inappendix}
\setboolean{inappendix}{false}
\renewcommand{\cftchappresnum}{\ifthenelse{\boolean{inappendix}}{Appendix }{Chapter }}
然后\setboolean{inappendix}{true}
在之后发出\appendix
,但这也会失败(它表现得好像inappendix
始终是假的)。
答案1
必须将的更改直接\cftchappresnum
写入,ToC
才能在.toc
调用文件时对附录生效,即
\addtocontents{toc}{\protect\renewcommand{\protect\cftchappresnum}{\protect\appendixname~}}
将写入更改(用于\protect
防止写入过程中出现错误)
\documentclass{book}
\usepackage{tocloft}
\renewcommand{\cftchappresnum}{\chaptername~}
\renewcommand{\cftchapaftersnum}{: }
\addtolength{\cftchapnumwidth}{50pt}
\begin{document}
\tableofcontents
\chapter{Foo}
\appendix
\addtocontents{toc}{\protect\renewcommand{\protect\cftchappresnum}{\protect\appendixname~}}
\chapter{Foo appendix}
\end{document}
我把实际长度的指定留给\cftchapnumwidth
OP