我正在使用 \documentclass{harvard-thesis} 撰写论文
我对 TOC 的期望结果是:
Chapter 1.
Chapter 2.
Appendix A.
我使用它在目录中的章节号前面包含单词“Chapter”:
\renewcommand{\cftchappresnum}{章节}
我的附录在目录中显示为“第 A 章”,而不是所需的“附录 A”:
>\appendix
>\renewcommand\chaptername{Appendix }
>\include{appendices/appendixA}
我已经应用了以下解决方案如何强制 Latex 将“附录 A 的名称”更改为“附录 A”,将目录中的“第 A 章”更改为“附录 A”以及此补丁:
\makeatletter
\patchcmd{\@chapter}{\protect {Chapter }}{\ifappendix{Appendix }\else{Chapter
}\fi}{}{}
\makeatother
\AtBeginEnvironment{appendices}{\appendixtrue}
这些都不起作用。我目前对 TOC 的结果是:
Chapter 1.
Chapter 2.
Chapter A.
如果我注释掉包含“Chapter”的renewcommand,那么附录 A 将正确显示:
1.
2.
Appendix A.
有人可以帮忙吗?
答案1
附录章节也被视为章节,具体因为这是写入文件的内容.toc
。为了说明这一点,请考虑以下示例:
\documentclass{book}
\usepackage{tocloft}
\renewcommand{\cftchappresnum}{Chapter }
\setlength{\cftchapnumwidth}{6em}% Just for this example
\begin{document}
\tableofcontents
\chapter{A chapter}
\appendix
\chapter{An appendix}
\end{document}
它.toc
看起来是这样的:
\contentsline {chapter}{\numberline {1}A chapter}{3}
\contentsline {chapter}{\numberline {A}An appendix}{5}
请注意,每个\contentsline
条目都与目录中的一个条目相对应,并且它们都会被考虑chapter
。
为了修复您的问题,您仍然可以\cftchappresnum
在序言中更新,但在执行时立即写入此宏的更新\appendix
。以下是您可以如何更新\appendix
以自动执行此操作:
\documentclass{book}
\usepackage{tocloft}
\renewcommand{\cftchappresnum}{Chapter }
\setlength{\cftchapnumwidth}{7em}% Just for this example
\let\oldappendix\appendix
\renewcommand{\appendix}{%
\oldappendix
\addtocontents{toc} % Update \cftchappresnum within the .toc
{\protect\renewcommand{\protect\cftchappresnum}{Appendix }}
}
\begin{document}
\tableofcontents
\chapter{A chapter}
\appendix
\chapter{An appendix}
\end{document}
现在你的.toc
形象是:
\contentsline {chapter}{\numberline {1}A chapter}{3}
\renewcommand {\cftchappresnum }{Appendix }
\contentsline {chapter}{\numberline {A}An appendix}{5}
每个\contentsline
条目仍然是一个chapter
,但\cftchappresnum
在适当的时间内进行了更新,.toc
以打印Appendix
附录\chapter
s 的前缀。
答案2
这有效!
\renewcommand{\appendixname}{Appendix}
\renewcommand{\appendixtocname}{Appendix}
\usepackage{tocloft,calc}
\renewcommand{\cftchappresnum}{\chaptername\space}
\setlength{\cftchapnumwidth}{2em}
\makeatletter
\g@addto@macro\appendix{%
\addtocontents{toc}{%
\protect\renewcommand{\protect\cftchappresnum}{\appendixname\space}%
}%
}
\makeatother
\renewcommand\thechapter{\Alph{chapter}}
\renewcommand\thesection{\Alph{chapter}.\Roman{section}}
\setcounter{chapter}{0}
\include{chapters/chapter1}
\appendix
\renewcommand{\chaptername}{Appendix}
\include{appendices/appendixA}