
Zitat von
Nitecrawler
PS: Oder was mir noch einfällt: Kann ich vielleicht zwei separate Dokumente erstellen, und in dem ersten das Inhaltsverzeichnis vom zweiten Anzeigen lassen? Vielleicht wäre das ja einfacher.
Klar. Angenommen das zweite Hauptdokument heißt main.tex, dann heißt die Inhaltsverzeichnisdatei des zweiten Dokuments main.toc. Die Anzeige desselben ist dann so lange kein Problem, wie dieselben Gliederungsebenen existieren:
Code:
\newcommand*{\loadforeigntoc}[1]{%
\makeatletter% Da in toc-Dateien auch Befehle mit at-Zeichen (das ist das @) vorkommen können, muss aus diesem Zeichen zunächst ein Buchstabegemact werden.
\InputIfFileExists{#1.toc}% Laden der als Argument übergebenen Datei, wobei die Endung nicht als Argument übergeben wurde, sondenr hier automatisch angehängt wird
{}% Wenn die Datei geladen werden konnte, machen wir nichts weiter
{%
\typeout{Missing `#1.toc' ignored.}% Anderenfalls wird darauf hingewiesen, dass die Datei wohl gar nicht existiert.
}%
\makeatother% Hier wird nun aus dem at-Zeichen (also dem @) wieder ein "anderes Zeichen" also kein Buchstabe gemacht, womit das Zeichen nicht mehr in Befehlsnamen vorkommen kann.
}
...
\section*{Inhaltsverzeichnis der Arbeit}
\loadforeigntoc{main}% Die Endung wird vom Befehl angehängt, es wird also tatsächlich "mein.toc" geladen.
Will man jedoch beispielsweise in ein article-Dokument das Inhaltsverzeichnis eines book-Dokuments laden, dann funktioniert das so nicht, weil dann beispielsweise \l@chapter normalerweise nicht definiert ist. Das kann man natürlich ändern:
Code:
\newcommand*{\loadforeigntoc}[2][]{%
\begingroup
\makeatletter
#1%
\InputIfFileExists{#2.toc}{}{%
\typeout{Missing `#2.toc' ignored.}%
}%
\endgroup
}
\makeatletter
\newcomannd*{\setuplcommands}{%
\let\l@subsubsection\l@paragraph
\let\l@subsection\l@subsubsection
\let\l@section\l@subsection
\let\l@chapter\l@section
}
\makeatother
...
\section*{Inhaltsverzeichnis der Arbeit}
\loadforeigntoc[\setuplcommands]{main}
Alles ungetestet.
Natürlich muss man dafür sorgen, dass das zweite Dokument aktuell ist, wenn man \loadforeigntoc im ersten aufruft.
Achja: Wenn man babel verwendet, sollten im ersten Dokument die Sprachoptionen des zweiten ebenfalls angegeben sein. Anderenfalls bekommt man Fehlermeldungen wegen nicht geladener Sprachen!
Lesezeichen