![第二个目录仅适用于附件](https://linux22.com/image/249631/%E7%AC%AC%E4%BA%8C%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%BB%85%E9%80%82%E7%94%A8%E4%BA%8E%E9%99%84%E4%BB%B6.png)
我希望我的报告包含一个从引言到结论的目录,以及一个在结论和第一个附件之间的目录。后者仅适用于附件:
- Table of contents
- 1. Intro
- 2. Chapter 1
- ...
- 20. Conclusion
- 1. Intro
- 2. Chapter 1
- ...
- 20. Conclusion
- SECOND TABLE OF CONTENTS
- Annexe 1
- Annexe n
- Annexe 1
- Annexe n
我知道我们可以使用以下方法将附件添加到目录中:
\addcontentsline{toc}{chapter}{Annexes}
但有没有办法命名目录,如:
\tableofcontents{TOC1}
并使用它来指定我们要添加内容行:
\addcontentsline{toc}{chapter}{Annexes}{TOC1}
感谢您的帮助。
答案1
是article
定义
\newcommand\tableofcontents{%
\section*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
}
所以你可以定义
\newcommand\tableofcontentsA{%
\section*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toca}%
}
然后使用
\addcontentsline{toca}{chapter}{Annexes}
代替
\addcontentsline{toc}{chapter}{Annexes}
这会将标题存储在带扩展名的文件名中.tocA
,并在使用 的位置输入该文件\tableofcontentsA
。请注意,由于命令名称中有 ,@
因此定义需要位于包文件中或介于\makeatletter
\makeatother
如果您的附件正在使用内部写入.toc
文件的分段命令,以便您不能轻松地写入,toca
您可以重新定义内部写入命令以toca
将其toc
作为参数传递,如下所示:
\let\oldaddtocontents\addtocontents
\def\addtocontents#1{%
\def\tmpa{#1}%
\def\tmpb{toc}%
\ifx\tmpa\tmpb
\def\tmpa{toca}%
\fi
\expandafter\oldaddtocontents\expandafter{\tmpa}}
在标准类(以及大多数非标准类)中,这将使所有分段命令.toca
从重新定义点进行写入。
完整的文档
\documentclass{book}
\makeatletter
\newcommand\tableofcontentsA{%
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toca}%
}
\makeatother
\begin{document}
\tableofcontents
\chapter{aa}
\chapter{aaa}
\appendix
\let\oldaddtocontents\addtocontents
\def\addtocontents#1{%
\def\tmpa{#1}%
\def\tmpb{toc}%
\ifx\tmpa\tmpb
\def\tmpa{toca}%
\fi
\expandafter\oldaddtocontents\expandafter{\tmpa}}
\tableofcontentsA
\chapter{bbaa}
\chapter{bbaa}
\end{document}
答案2
这标题目录软件包提供了另一种可能的(且更短的)解决方案:
\documentclass{book}
\usepackage{titletoc}
\begin{document}
\startcontents
\printcontents{atoc}{0}{\chapter*{\contentsname}}
\chapter{Test Chapter One}
\chapter{Test Chapter Two}
\appendix
\startcontents
\printcontents{atoc}{0}{\chapter*{Table of Annexes}}
\chapter{Test Appendix One}
\chapter{Test Appendix Two}
\end{document}