我希望目录在附录中项目的章节编号前显示单词“附录”。不幸的是,我用来在章节编号前显示单词“章节”的命令是:
\setlength{\cftchapnumwidth}{7.5em}
\let\oldcftchappresnum\cftchappresnum
\renewcommand*{\cftchappresnum}{CHAPTER \oldcftchappresnum}
当我调用 时,似乎确实“执行”了\tableofcontents
,从某种意义上来说,这也是“全有或全无”的。有没有办法让术语“附录”出现在目录中的章节编号之前?
这是一个最小的可重现示例:
\documentclass{book}
\usepackage{tocloft}
\setlength{\cftchapnumwidth}{7.5em}
\let\oldcftchappresnum\cftchappresnum
\renewcommand*{\cftchappresnum}{CHAPTER \oldcftchappresnum}
\begin{document}
\tableofcontents
\chapter{foo}
\section{bar}
\appendix
\setlength{\cftsecnumwidth}{7.5em}
\let\oldcftsecpresnum\cftsecpresnum
\renewcommand*{\cftsecpresnum}{APPENDIX \oldcftsecpresnum}
\renewcommand{\thesection}{\Alph{section}}
\addcontentsline{toc}{chapter}{\rm{APPENDIX}}
\section{appendix}
\end{document}
预期的行为是这样的:
附录...3
应该说
附录A 附录... 3
答案1
您需要将更改导出到文件.toc
。
\documentclass{book}
\usepackage{tocloft}
\setlength{\cftchapnumwidth}{7.5em}
\renewcommand*{\cftchappresnum}{CHAPTER }
\begin{document}
\tableofcontents
\chapter{foo}
\section{bar}
\appendix
\addtocontents{toc}{%
\protect\setlength{\cftsecnumwidth}{7.5em}%
\protect\renewcommand*{\protect\cftsecpresnum}{APPENDIX }%
}
\renewcommand{\thesection}{\Alph{section}}
\addcontentsline{toc}{chapter}{\normalfont APPENDIX}
\section{appendix}
\end{document}