仅针对附录更改“\cftsecpresnum”?

仅针对附录更改“\cftsecpresnum”?

我希望目录在附录中项目的章节编号前显示单词“附录”。不幸的是,我用来在章节编号前显示单词“章节”的命令是:

\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}

在此处输入图片描述

相关内容