scrreprt 中的附录 - 单独的附录表格,但在原始目录中提及

scrreprt 中的附录 - 单独的附录表格,但在原始目录中提及

我尝试找到此特定案例的解决方案,但未能成功。我想要实现的是在以下类中创建附录:

\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}

在通常的目录中,它只被提及一次,即“附录”。此外,我想为附录的子部分添加一个单独的目录作为“附录列表”。这应该成为附录的第一页。标题应该仍按预期工作,即显示当前附录/章节。“附录”和“附录列表”的名称应该是可更改的(如果可能的话),因为我还不确定哪些名称是理想的。

为了更好地说明这一点,我想要目录中的以下条目:

TOC

Introduction
Chapter 
etc.
List of appendices

然后在文档的某个部分:

List of appendices

A 
B 
etc. 

有人知道怎么做吗?谢谢您的帮助/提示。问候

这是一个非常小的 MWE:

\documentclass[a4paper, 12pt, headsepline, smallheadings]{scrreprt}
\begin{document}

\listoffigures    
\listoftables     
\tableofcontents   

\chapter{Start}
Start

\appendix       
\chapter{AAA}
\chapter{vvv}
\chapter{ccc}

\end{document}

答案1

这是一个解决方案。

通过这些行,我们创建一个新的“附录列表”(LoA),然后可以通过命令调用它\listofappendices。请注意,名称是可自定义的。

\newcommand\appendicesname{Appendices}
\newcommand\listofloaname{List of \appendicesname}
\newcommand*{\listofappendices}{\listoftoc{loa}}

以下行用于将 LoA 添加到 ToC:

\setuptoc{loa}{totoc}

以下内容部分引用自回答在 Caramdir 中,我们重新定义了所有分段命令,以便在发出命令时将其添加到 LoA 而不是 ToC \appendix

\makeatletter
\g@addto@macro\appendix{%
\let\oldaddcontentsline\addcontentsline
\newcommand\hackedaddcontentsline[3]{\oldaddcontentsline{loa}{#2}{#3}}
\let\oldpart\part
\renewcommand*\part[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldpart{#1}%
  \let\addcontentsline\oldaddcontentsline%
}
\let\oldchapter\chapter
\renewcommand*\chapter[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldchapter{#1}%
  \let\addcontentsline\oldaddcontentsline%
}
\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%
}
}
\makeatother

完整的工作示例(如果您不想在 ToC 中使用 LoT 和 LoF,请listof=totoc从选项中删除):scrreprt

\documentclass[a4paper, 12pt, headsepline, smallheadings, listof=totoc]{scrreprt}

\newcommand\appendicesname{Appendices}
\newcommand\listofloaname{List of \appendicesname}
\newcommand*{\listofappendices}{\listoftoc{loa}}
\setuptoc{loa}{totoc}

\makeatletter
\g@addto@macro\appendix{%
\let\oldaddcontentsline\addcontentsline
\newcommand\hackedaddcontentsline[3]{\oldaddcontentsline{loa}{#2}{#3}}
\let\oldpart\part
\renewcommand*\part[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldpart{#1}%
  \let\addcontentsline\oldaddcontentsline%
}
\let\oldchapter\chapter
\renewcommand*\chapter[1]{%
  \let\addcontentsline\hackedaddcontentsline%
  \oldchapter{#1}%
  \let\addcontentsline\oldaddcontentsline%
}
\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%
}
}
\makeatother

\begin{document}

\listoffigures
\listoftables
\tableofcontents

\chapter{1st chapter}
\section{1st section}
\chapter{2nd chapter}
\section{2nd section}

\listofappendices

\appendix

\chapter{1st appendix chapter}
\section{1st appendix section}
\chapter{2nd appendix chapter}
\section{2nd appendix section}

\end{document} 

输出(目录):

在此处输入图片描述

输出(LoA):

在此处输入图片描述

相关内容