如何生成与目录(ToC)分开的附录列表?

如何生成与目录(ToC)分开的附录列表?

LaTeX 的附录环境以不同的方式格式化各个部分,并在目录中使用不同的枚举:

\begin{appendix}
 \section{superuser}
 \dots{}
....

显示为

      超级用户 11

在里面\tableofcontents

不幸的是,我必须使用不同的样式:附录不会出现在目录中,而是出现在附录之前的单独列表中。

我看到以下解决此问题的选项:

  • 抑制目录中的输出并以某种方式在不同的页面上重新创建该部分
  • 生成指定/以下部分的自定义列表
  • 手动创建与目录格式相同的列表

我用作scrartcl文档类。

答案1

获取附录列表的一个有点黑客的方法scrartcl是在附录开头添加以下内容:

\appendix
% Set the name for the list of appenices
\newcommand\listoftoaname{Appendices}

% force table of contents to load the list of appendices
\let\oldlistoftoc\listoftoc
\renewcommand\listoftoc[1]{\oldlistoftoc{toa}}
\tableofcontents
\let\listoftoc\oldlistoftoc  

% we will now redefine the sectioning commands so that that put entries
% into the list of appendices. The redefinitions are rather simplistic
% and break the starred versions and the optional argument.
% Thus the redefinitions have to be added after the \tableofcontents call.

\let\oldaddcontentsline\addcontentsline
\newcommand\hackedaddcontentsline[3]{\oldaddcontentsline{toa}{#2}{#3}}

\let\oldsection\section
\renewcommand*\section[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldsection{#1}%
  \let\addcontentsline\oldaddcontentsline%
}
\let\oldsubsection\subsection
\renewcommand*\subsection[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldsubsection{#1}%
  \let\addcontentsline\oldaddcontentsline%
}
\let\oldsubsubsection\subsubsection
\renewcommand*\subsubsection[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldsubsubsection{#1}%
  \let\addcontentsline\oldaddcontentsline%
}

对于scrreprtscrbook,您需要为 添加类似的重新定义\chapter。由于分段命令的重新定义相当简单,它们会破坏带星号的版本和可选参数。因此,在任何带星号的章节(如参考书目)之前,您应该使用 恢复重新定义\let\section\oldsection

相关内容