首先,我正在用 latex 写我的硕士论文。(scrbook,pdflatex)
我的研究所对目录和附录目录的出现有一些严格的规定。一般应该是这样的:https://pl.vc/5vke0 标题为 14pt 粗体,其他内容为 12pt 常规。所以我需要两个目录,一个用于内容,一个用于附录。具体来说,我需要将两个目录都放在文档开头,如链接图片所示,再加上附录前面的附录目录。
我找到了一种使用 koma-script 的解决方案(http://www.komascript.de/comment/3447#comment-3447) 但我无法将所有内容格式化为令我满意的格式。有人知道如何使用 latex 解决该问题吗?
干杯!
答案1
首先:问题中没有 MWE,所以我不知道哪个代码来自警告你使用什么?正如我从你关于KOMA-Script 网站你想要这样的东西
以下是得到这个糟糕结果的建议:
% based on http://www.komascript.de/node/458 but with ugly modifications
\documentclass[parskip=full-]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{caption}
\usepackage{tocstyle}
\newtocstyle[KOMAlike][leaders]{KOMAlikewithdot}{}% Neuen Stil abgeleitet von
% KOMAlike erstellen, wobei das Feature
% leaders nicht von KOMAlike mit übernommen
% wird.
% (tocstyle.pdf, 2009/11/09, Seite 9 sowie
% Seite 29, Code-Zeile 772)
\usetocstyle{KOMAlikewithdot}
\settocfeature[lof]{entryhook}{\noindent Abb.\nobreakspace}% (tocstyle.pdf, 2009/11/09,
% Seite 8)
\settocfeature[lot]{entryhook}{\noindent Tab.\nobreakspace}% (tocstyle.pdf, 2009/11/09,
% Seite 8)
\makeatletter
% Die folgende Anweisung wird vermutlich irgendwann in scrlfile.sty eingebaut.
% Bis dahin ist es notwendig, sie selbst zu definieren, damit man innerhalb
% von \BeforeClosingMainAux \addtocontents verwenden kann:
\providecommand{\protected@immediate@write}[3]{%
\begingroup
\let\thepage\relax
#2%
\let\protect\@unexpandable@protect
\edef\reserved@a{\immediate\write#1{#3}}%
\reserved@a
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi
}
% Die folgende Umgebung wird verwendet, um innerhalb der toc-Datei einzelne
% Bereiche ein- und ausschalten zu können. In die toc-Datei wird die Umgebung
% dabei jeweils als \begin{tocconditional}{BEREICH}...\end{tocconditional}
% eingefügt.
\newenvironment*{tocconditional}[1]{%
\expandafter\ifx\csname if@toccond@#1\expandafter\endcsname
\csname iftrue\endcsname
\else
\value{tocdepth}=-10000\relax
\fi
\typeout{tocdepth in `#1': \the\c@tocdepth}%
}{%
}
% Gleich nach dem Öffnen der toc-Datei beginnen wir den Haupt-Bereich "main":
\AtBeginDocument{%
\addtocontents{toc}{\string\begin{tocconditional}{main}}
}
% Und der letzte Bereich endet am Ende der toc-Datei.
\BeforeClosingMainAux{%
\begingroup
\let\protected@write\protected@immediate@write
\addtocontents{toc}{\string\end{tocconditional}}%
\endgroup
}
% Hier können nunr neue Bereiche definiert ...
\newcommand*{\newtocconditional}[2][false]{%
\expandafter\newif\csname if@toccond@#2\endcsname
\csname @toccond@#2#1\endcsname
}
% Und ein- oder ausgeschaltet werden:
\newcommand*{\settocconditional}[2]{%
\csname @toccond@#1#2\endcsname
}
% Neben dem Hauptbereich ...
\newtocconditional[true]{main}
% definieren wir noch einen Bereich für den Anhang.
\newtocconditional{appendix}
% Mit dem Anhang geben wir einerseits das Anhangsverzeichnis aus,
% andererseits beenden wir den aktuellen Bereich in der toc-Datei und beginnen
% den neuen Bereich "appendix". Damit im Haupt-Inhaltsverzeichnis ein Eintrag
% für das Anhangsverzeichnis erscheint, verwenden wir \addchap und zwar noch
% bevor der letzte Bereich geschlossen wird. Wenn wir es ganz sicher machen
% wollten, müssten wir die auskommentierten Zeilen noch aktivieren. So
% verlassen wir uns einfach darauf, dass vor dem appendix-Bereich der
% main-Bereich lag.
\g@addto@macro\appendix{%
% \addtocontents{toc}{\string\end{tocconditional}^^J
% \string\begin{tocconditional}{main}}%
%\addchap{Anhang}%
\addtocontents{toc}{\string\end{tocconditional}^^J
\string\begin{tocconditional}{appendix}}%
\cleardoubleoddpage
\addchap*{Anhang}\thispagestyle{empty}
\appendixtableofcontents
\cleardoubleoddpage
\setcounter{page}{1}
\renewcommand\thepage{A-\arabic{page}}
}
% Jetzt definieren wir das Anhangsverzeichnis selbst als Alias für die
% toc-Datei. Dabei wird aber der Hauptbereich "main" deaktiviert und der
% Anhangsbereich "appendix" aktiviert.
\newcommand*{\appendixtableofcontents}{%
\showtoc[{ %
\aliastoc{\tocstyleTOC}{toc}%
\settocconditional{main}{false}%
\settocconditional{appendix}{true}%
}]{toc}%
}
% Auch wenn man einen Anhang normalerweise nicht beenden kann, so ist es
% ggf. erwünscht, dass Literaturverzeichnis, Index etc. zwar nach den Kapiteln
% des Anhangs kommen, aber dem Hauptverzeichnis zugeordnet werden sollen. Also
% benötigen wir eine Anweisung, um in der toc-Datei den aktuellen Bereich zu
% beenden und wieder einen Hauptbereich einzuschalten:
\newcommand*{\postappendix}{%
\addtocontents{toc}{\string\end{tocconditional}^^J%
\string\begin{tocconditional}{main}}%
\clearpage
}
\makeatother
\setkomafont{chapterentry}{\normalfont\normalsize}
\begin{document}
\tableofcontents
{\renewcommand\clearpage{}
\addchap*{Anhang}}
\appendixtableofcontents
\listoffigures
\listoftables
\blinddocument
\begin{minipage}{\textwidth}
\centering
\captionsetup{type=figure}
Bild
\caption{Ein Bild}
\end{minipage}
\blindtext
\begin{minipage}{\textwidth}
\centering
\captionsetup{type=table}
Tabelle
\caption{Eine Tabelle}
\end{minipage}
\appendix
\renewcommand{\thechapter}{A\arabic{chapter}}
\chapter{Anhang 1}
\blindtext
\section{Ein Abschnitt im Anhang}
\blindtext
\section{Ein zweiter Abschnitt im Anhang}
\blindtext
\chapter{Anhang 2}
\blindtext
\postappendix
\end{document}