toc 加附录 toc

toc 加附录 toc

首先,我正在用 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}

相关内容