![仅针对附录更改“\cftsecpresnum”?](https://linux22.com/image/411103/%E4%BB%85%E9%92%88%E5%AF%B9%E9%99%84%E5%BD%95%E6%9B%B4%E6%94%B9%E2%80%9C%5Ccftsecpresnum%E2%80%9D%EF%BC%9F.png)
我希望目录在附录中项目的章节编号前显示单词“附录”。不幸的是,我用来在章节编号前显示单词“章节”的命令是:
\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}