Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Verzeichnisse in LaTeX
Thorben4787
03-07-2009, 11:54
Hallo zusammen!
Also, ich habe folgendes Problem. Für meine Bachelorarbeit benutze ich LaTeX und zwar die Vorlage von Matthias Pospiech (dürfte hier ja bekannt sein :) ).
Das Problem ist, dass ich dämliche Vorgaben habe, die nicht ganz von dieser Vorlage unterstützt werden.
Ich fang einfach mal mit dem größten Problem an.
Die Struktur meiner Arbeit soll wie folgt sein:
Deckblatt
Sperrvermerk
Inhaltsverzeichnis
Abkürzungsverzeichnis
Tabellenverzeichnis
Text
Anhang
Anhangsverzeichnis
Anhangsabbildungsverzeichnis
Anhangstabellenverzeichnis
Anhangstext
Quellenverzeichnisse
Ehrenwörtliche Erklärung
Die roten Sachen sollen ins Inhaltsverzeichnis, die grünen Sachen ins Anhangsverzeichnis.
Folgende Lösungsansätze habe ich schon probiert:
http://www.komascript.de/node/458 bietet eine Lösung an, ein Inhalts- und ein Anhangsverzeichnis zu machen. Funktioniert wunderbar, nur leider ist dann das Quellenverzeichnis & und die Erklärung im Anhangsverzeichnis und nicht im Inhaltsverzeichnis.
Außerdem funktioniert diese Lösung nicht für Abbildungs- und Tabellenverzeichnisse.
Wenn ich die \section's im Anhang mit * "ausklammere", dann erscheinen sie nicht im Abbildungsverzeichnis, aber dadurch werden sie nicht mehr nummeriert, was ja eigentlich trotzdem noch der Fall sein soll. Und das Verzeichnis von Hand mit \ref{} funktioniert dann auch nicht mehr so toll.
Ein Minimalbeispiel ist dabei ein bisschen schwierig, oder?
Kann aber natürlich bei Bedarf eins machen.
Ich benutze TeXnicCenter mit der aktuellen MikTeXDistribution auf XP.
Schonmal vielen Dank für die Hilfe :)
mechanicus
03-07-2009, 19:20
Hallo,
verwende die Lösung von Rainer (rais):
http://www.mrunix.de/forums/showthread.php?p=271395#post271395
Gruß
Marco
Moin moin,
sicherlich ließe sich das Teil um Befehle wie \mainlof/lot und \appendixlof/lot analog zu \maintoc, \appendixtoc erweitern, aber eigentlich sollte der OP mit minitoc (http://dante.ctan.org/CTAN/help/Catalogue/entries/minitoc.html) auch an sein Ziel gelangen.;-)
MfG
mechanicus
05-07-2009, 11:42
Hallo Rainer,
ich mag deine Lösung ;) , da sie mit KOMA harmoniert. (was bei minitoc ja nicht gegeben ist).
Gruß
Marco
Maverick
05-07-2009, 11:55
Ich mache das einfach mit dem minitoc-Paket.
Welche Probleme gibt es aber mit KOMA?
mechanicus
05-07-2009, 11:57
Ich mache das einfach mit dem minitoc-Paket.
Welche Probleme gibt es aber mit KOMA?
Hallo,
hast du keine Warnungen beim Kompilieren? Ich hatte es mal probiert und hatte nur Warnungen.
Gruß
Marco
Thorben4787
06-07-2009, 14:08
Ihr Götter! Danke! Funktioniert auf anhieb :)
Das mit den Tabellen- und Abbildungsverzeichnissen probier ich auch gleich mal aus!
So, edit:
Das mit den Tabellen/Abbildungsverzeichnissen klappt nicht so ganz.
Es kommt kein Fehler/Warnung, aber die Trennung der Verzeichnisse wird nicht durchgeführt.
Liegt vermutlich daran, dass "tocdepth" dafür die falsche Variable ist, aber wie heißt denn die "Tiefe" des Tabellenverzeichnissees?
Hier mal ein Minimalbeispiel:
\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\makeatletter% --> De-TeX-FAQ
\newcommand*{\mainlot}{% Hauptinhaltsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixatlot}{% Trennanweisung im Inhaltsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\listoftables% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixlot}{% Anhangsinhaltsverzeichnis
\begingroup
\edef\@alltocdepth{\the\value{tocdepth}}% tocdepth merken
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\contentsname}{% Verzeichnisname ändern
Tabellen im Anhang}%
\renewcommand*{\appendixatlot}{% Trennanweisung im Inhaltsverzeichnis
\setcounter{tocdepth}{\@alltocdepth}% tocdepth wiederherstellen
}%
\tableofcontents% Verzeichnis ausgeben
\setcounter{tocdepth}{\@alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\appendixatlot}{% Trennanweisung im Inhaltsverzeichnis
}
\g@addto@macro\appendix{% \appendix erweitern
\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\addcontentsline{toc}{chapter}{\appendixname}% Eintrag ins Hauptverzeichnis
\addtocontents{toc}{\protect\appendixatlot}% Trennanweisung in die toc-Datei
}
\makeatother
\begin{document}
\mainlot
\chapter{Tabelle im Text}
\begin{table}
\begin{tabular}{llc}
Rang & Name & Rating\\
1 & Garry Kasparov & 2817\\
2 & Visnawathan Anand & 2774\\
3 & Wladimir Kramnik & 2764
\end{tabular}
\caption{Tabelle im Text}
\end{table}
\appendix
\appendixlot
\chapter{Tabelle im Anhang}
\begin{table}
\begin{tabular}{llc}
Rang & Name & Rating\\
1 & Garry Kasparov & 2817\\
2 & Visnawathan Anand & 2774\\
3 & Wladimir Kramnik & 2764
\end{tabular}
\caption{Tabelle im Anhang}
\end{table}
\end{document}
Danke schonmal im Voraus!
Moin moin,
Das mit den Tabellen/Abbildungsverzeichnissen klappt nicht so ganz.
Es kommt kein Fehler/Warnung, aber die Trennung der Verzeichnisse wird nicht durchgeführt.
Liegt vermutlich daran, dass "tocdepth" dafür die falsche Variable ist, aber wie heißt denn die "Tiefe" des Tabellenverzeichnissees?
nee, tocdepth ist schon richtig, aber Du musst diese Trennanweisung auch in die LOF/LOT und nicht nur ins TOC schreiben -- vgl mal:
\documentclass[listof=totoc]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newcommand*\alltocdepth{2}
\setcounter{tocdepth}{\alltocdepth}
\newcounter{kapmerker}
\makeatletter% --> De-TeX-FAQ
\newcommand*{\maintoc}{% Hauptinhaltsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\tableofcontents% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixtoc}{% Anhangsinhaltsverzeichnis
\begingroup
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\contentsname}{% Verzeichnisname ändern
Verzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}=-10000 % ab hier nix mehr...
}%
\tableofcontents% Verzeichnis ausgeben
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\mainlof}{% Hauptabbildungsverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung auch im Abbildungsverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\listoffigures% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixlof}{% Anhangsabbildungsverzeichnis
\begingroup
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\listfigurename}{% Verzeichnisname ändern
Abbildungsverzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung auch im Abbildungsverzeichnis
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}=-10000 % ab hier nix mehr...
}%
\listoffigures% Verzeichnis ausgeben
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\mainlot}{% Haupttabellenverzeichnis
\begingroup
\@fileswfalse% kein neues Verzeichnis öffnen
\renewcommand*{\appendixattoc}{% Trennanweisung auch im Tabellenverzeichnis
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\listoftables% Verzeichnis ausgeben
\endgroup
}
\newcommand*{\appendixlot}{% Anhangstabellenverzeichnis
\begingroup
\setcounter{tocdepth}{-10000}% Keine Verzeichniseinträge
\renewcommand*{\listtablename}{% Verzeichnisname ändern
Tabellenverzeichnis der Anh\"ange}%
\renewcommand*{\appendixattoc}{% Trennanweisung auch im Tabellenverzeichnis
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}=-10000 % ab hier nix mehr...
}%
\listoftables% Verzeichnis ausgeben
\setcounter{tocdepth}{\alltocdepth}% tocdepth wiederherstellen
\endgroup
}
\newcommand*{\appendixattoc}{% Trennanweisung im Inhaltsverzeichnis
}
\newcommand*\afterappendixattoc{% noch ne Trennanweisung im TOC...
\setcounter{tocdepth}{\alltocdepth}%
}
\let\orgappendix\appendix
\renewcommand*\appendix{% \appendix erweitern
\setcounter{kapmerker}{\value{chapter}}%<--Kapitelstand merken
\orgappendix
\if@openright\cleardoublepage\else\clearpage\fi% Neue Seite
\addcontentsline{toc}{chapter}{\appendixname}% Eintrag ins Hauptverzeichnis
\addtocontents{toc}{\protect\appendixattoc}% Trennanweisung in die toc-Datei
\addtocontents{lof}{\protect\appendixattoc}% Trennanweisung in die lof-Datei
\addtocontents{lot}{\protect\appendixattoc}% Trennanweisung in die lot-Datei
}
\newcommand*\uebersicht{%
\addchap*{Inhalts\"ubersicht}
\markboth{Inhalts\"ubersicht}{}
\begingroup
\value{tocdepth}\shorttocdepth\relax % uebler Hack!
\renewcommand*{\appendixattoc}{%<--
\value{tocdepth}=-10000 % lokal tocdepth auf sehr kleinen Wert setzen
}%
\renewcommand*\afterappendixattoc{%
\value{tocdepth}\shorttocdepth\relax % uebler Hack!
}%
\makeatletter
\@input{\jobname.toc}%
\makeatother
\endgroup
}
\newcommand*\appendixendshere{%
\addtocontents{toc}{\protect\afterappendixattoc}%
\addtocontents{lof}{\protect\afterappendixattoc}%<--
\addtocontents{lot}{\protect\afterappendixattoc}%<--
\renewcommand*\thechapter{\arabic{chapter}}%<--ab hier Nummerierung mit Ziffern
\setcounter{chapter}{\value{kapmerker}}%<--fortsetzen
\gdef \@chapapp {\chaptername}%<--wieder `Kapitel'
}
\makeatother
\newcommand*{\shorttocdepth}{1}
\begin{document}
\uebersicht
\maintoc
\mainlof
\mainlot
\blinddocument
\begin{table}
\caption{Testtabelle im Hauptteil}
\end{table}
\blinddocument
\begin{figure}
\caption{Testbild im Hauptteil}
\end{figure}
\appendix
\appendixtoc
\appendixlof
\appendixlot
\blinddocument
\begin{table}
\caption{Testtabelle im Anhang}
\end{table}
\blinddocument
\begin{figure}
\caption{Testbild im Anhang}
\end{figure}
\appendixendshere
\addchap{\bibname\ (simuliert)}
\end{document}
Nu kann man sich streiten, ob \appendixattoc nicht besser \appendixatloflottoc oder so genannt werden sollte, aber dann ist's ja auch nur tocdepth, so nicht Pakete wie minitoc ins Spiel kommen.;-)
@Marco: welche Warnungen bekommst Du denn so? Evtl lassen sie sich ja mit der nohints-Option bei minitoc abschalten ...
MfG
mechanicus
06-07-2009, 20:26
@Marco: welche Warnungen bekommst Du denn so? Evtl lassen sie sich ja mit der nohints-Option bei minitoc abschalten ...
Hallo Rainer,
diese Option habe ich irgendwie überlesen. Also bei diesem einfachen MB klappt es:
\documentclass[ngerman]{scrreprt}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage[nohints]{minitoc}
\begin{document}
\dominitoc
\tableofcontents
\chapter{foo}
\minitoc
\section{foobar}
\section{foobar}
\subsection{foobarfoo}
\section{foobar}
\chapter{foo}
\minitoc
\section{foobar}
\section{foobar}
\subsection{foobarfoo}
\section{foobar}
\end{document}
Gruß
Marco
Thorben4787
07-07-2009, 10:57
Danke für die schnelle und kompetente Hilfe, klappt natürlich wunderbar!
Vielen Dank!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.