我需要定制我的附录但不知道如何做。
我需要:
- 在我的主目录中,使用以下方式生成的文档开头输入
\tableofcontents
- 将目录中显示的附录名称更改为德语“Anhang”
- 在我的参考文献后插入附录
- 标题页包含“Anhang”
- 目录显示附录的每个章节/部分和页码
使用附录包执行此操作的最佳方法是什么?
谢谢!
编辑:我需要编辑 MWE,以便主目录中当前显示的条目不再显示,只显示条目:“Anhang”。附录标题页后的第一页应为单独的目录,其中显示附录的条目和页码。
以下是 MWE:
\documentclass[a4paper,12pt,twoside,ngerman]{scrartcl}
\usepackage{setspace}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[toc,title,page]{appendix} % Anhang
\renewcommand{\appendixpagename}{\appendixname}
\renewcommand{\appendixtocname}{\appendixname}
\begin{document}
\tableofcontents %Inhaltsverzeichnis
\newpage
\section{Section}
Test 123
\newpage
\subsection{SubSection 1}
Test 123
\newpage
\begin{appendices}
\section{Test}
TEST 123
\section{Test 2}
TEST 123
\section{Test 3}
TEST 123
\end{appendices}
\end{document}
答案1
使用 KOMA-Script 类,您可以使用自动加载的包tocbasic
来定义附加 ToC。
\documentclass[12pt,twoside,ngerman]{scrartcl}
\usepackage{babel}
%%% see: https://komascript.de/comment/5578#comment-5578 (Markus Kohm)
\DeclareNewTOC[%
owner=\jobname,
listname={Inhalt des Anhangs},% Titel des Verzeichnisses
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents)
\makeatletter
\newcommand*{\useappendixtoc}{%
\renewcommand*{\ext@toc}{atoc}%
\scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
\hypersetup{bookmarkstype=atoc}%
}%
}
\ifundefinedorrelax{ext@toc}{%
\newcommand*{\ext@toc}{toc}
\renewcommand{\addtocentrydefault}[3]{%
\expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}%
}
}{}
\makeatother
%%%
\usepackage{xpatch}
\xapptocmd\appendix{%
\cleardoublepage
\vspace*{\fill}
\addpart{\appendixname}
\thispagestyle{empty}
\vfill\vfill
\clearpage
\useappendixtoc
\listofatocs
}{}{\PatchFailed}
\renewcommand\raggedpart{\centering}
\setkomafont{partentry}{\usekomafont{sectionentry}}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\Blinddocument
\Blinddocument
\appendix
\blinddocument
\blinddocument
\end{document}
如果您切换到,scrreprt
您可以使用:
\documentclass[12pt,twoside,ngerman]{scrreprt}
\usepackage{babel}
%%% see: https://komascript.de/comment/5578#comment-5578 (Markus Kohm)
\DeclareNewTOC[%
owner=\jobname,
listname={Inhalt des Anhangs},% Titel des Verzeichnisses
]{atoc}% Dateierweiterung (a=appendix, toc=table of contents)
\makeatletter
\newcommand*{\useappendixtoc}{%
\renewcommand*{\ext@toc}{atoc}%
\scr@ifundefinedorrelax{hypersetup}{}{% damit es auch ohne hyperref funktioniert
\hypersetup{bookmarkstype=atoc}%
}%
}
\ifundefinedorrelax{ext@toc}{%
\newcommand*{\ext@toc}{toc}
\renewcommand{\addtocentrydefault}[3]{%
\expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}%
}
}{}
\makeatother
%%%
\usepackage{xpatch}
\xapptocmd\appendix{
\cleardoublepage
\addpart{\appendixname}
\useappendixtoc
\listofatocs
}{}{\PatchFailed}
\renewcommand\partpagestyle{empty}
\setkomafont{partentry}{\usekomafont{chapterentry}}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\Blinddocument
\Blinddocument
\appendix
\blinddocument
\blinddocument
\end{document}
所有目录条目及其页码之间的点:
如果您想在章节条目和页码之间添加点所有目录在序言中插入以下行:
\RedeclareSectionCommands[toclinefill=\TOCLineLeaderFill]{chapter,part}
如果你想添加这些点仅在附录目录中使用
\xapptocmd\appendix{
\cleardoublepage
\addpart{\appendixname}
\RedeclareSectionCommand[toclinefill=\TOCLineLeaderFill]{chapter}% <- added
\useappendixtoc
\listofatocs
}{}{\PatchFailed}
或者
\xapptocmd\appendix{
\cleardoublepage
\addpart{\appendixname}
\KOMAoptions{toc=chapterentrywithdots}% <- added
\useappendixtoc
\listofatocs
}{}{\PatchFailed}