第二个目录仅适用于附件

第二个目录仅适用于附件

我希望我的报告包含一个从引言到结论的目录,以及一个在结论和第一个附件之间的目录。后者仅适用于附件:

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

相关内容