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