Hallo zusammen,
ich bin gerade dabei ein Grundgerüst für eine Sammlung von Einzelberichten zu erstellen. Folgende Maßgaben möchte ich erfüllen:
- alle Berichte sind in sich abgeschlossen (und sollen später mit \input bzw. \include zusammengefügt werden)
- jeder Bericht soll in sich gegliedert sein, d.h. mit jedem neuen Bericht soll die Gliederung bei 1 wieder beginnen
- vor jedem einzelnen Bericht soll eine Inhaltsübersicht mit Seitenzahlen erscheinen
- am Beginn der Sammlung soll ein Inhaltsverzeichnis mit Seitenzahl (= Beginn des Berichtes) mit den Titeln der Berichte und den jeweiligen Autorennamen erscheinen
- die Seitennummerierung soll durchgängig sein
Mit \minitoc ist das zwar alles ganz prima, aber dann erfolgt die Gliederung von vorne bis hinten. Oder gibt es da Optionen, die ich noch nicht kenne?
Ist mit combine etwas zu machen?
Für eure Antworten schon mal vielen Dank!
Sammlung von Einzel-Berichten
noch 19
Zunächst wie man es mit minitoc machen könnte: Zum einen könnte man für die Berichte tatsächlich \part verwenden aber dafür sorgen, dass die Kapitelebene mit jedem \part zurückgesetzt wird. Das geht am einfachsten mit dem chngcntr-Paket:
Das führt zwar zu einem für \part untypischen Verhalten, aber \part war ja ohnehin nur ein eNotlösung. Zusätzlich würde ich dann noch »Bericht« statt »Teil« verwenden: Jetzt sollte man für die einzelnen Berichte mit \parttoc (Befehl bitte in der minitoc-Anleitung nachschlagen, da ich das praktisch nie verwende, kann ich mich beim Namen irren!) die Verzeichnisse machen können.
Da die Berichte alle optisch gleich aussehen sollen, kann man sie auch mit derselben Klasse und denselben Paketen erzeugen. Also sollte es eigentlich auch recht problemlos möglich sein, combine zu verwenden.
Wenn man aber ohnehin die gleiche Präambel für alle Berichte verwendet, kann man auch gleich dieselbe Präambel verwenden. Genau so würde ich vorgehen. Dabei würde ich für die Dokument eine Wrapper-Klasse schreiben, die neben der Klasse auch alle benötigten Pakete lädt und Einstellungen vornimmt. Ein Anfänger kann stattdessen einfach alles, was vor \begin{document} steht in eine eigene Datei auslagern und diese per \input am Anfang der einzelnen Berichte laden. Jeder Bericht wird dann zunächst für sich gesetzt. Sind Querverweise zwischen Berichten notwendig, verwendet man das Paket xr. Man hat dann schon einmal alle Berichte in der gewünschten Form mit eigenen Verzeichnissen. Als nächstes baut man ein Hauptdokument. Darin hängt man die einzelnen Berichte schlicht per pdfpages hintereinander. Für die Gesamtverzeichnisse wiederum liest man eine toc-Datei nach der anderen, etwa so:
Man kann sogar einen Gesamtindex erzeugen, weil man bei makeindex nämlich mehr als eine idx-Datei angeben kann.
Bei dem letzten Vorgehen behalten alle Dokumente ihre Seitenzahl. Will man eine durchgehende Seitennummerierung, so kann man das ebenfalls über das Paket xr über ein Label am Ende jedes Einzeldokuments realisieren. Man kann aber auch etwas wie:machen, um die Seitenzahl direkt am Ende jedes Berichts in eine Datei zu schreiben und am Anfang des nächsten Berichts automatisch auf diesen Wert setzten zu lassen. Eventuell braucht man dann zusätzlich noch ein \cleardoublepage am Ende jedes Berichts oder ein \stepcounter{page} am Anfang.
Eine (weniger schöne) Alternative wäre:
Es wird darauf hingewiesen, dass die Verwendung von hyperref bei all diesen Vorschlägen nicht viel bringt, aber Ärger bereiten kann. Ich würde deshalb zumindest vorerst darauf verzichten.
BTW: Man könnte auch den ersten und den letzte Weg miteinander mischen, wobei man dann minitoc nicht benötigt, sondern wieder auf die Einzel-Verzeichnisdateien aus einem getrennten Lauf der Einzelberichte zurückgreifen könnte.
DISCLAIMER: Da ich nichts zum Testen hatte, sind alle Codeschnippsel in diesem Beitrag nur als Skizze eines möglichen Lösungswegs zu betrachten und nicht als fertig ausgeführte und getestete Lösung!
\usepackage{chngcntr} \counterwithin{chapter}{part}
\usepackage{scrbase}% braucht man nicht, wenn man eine KOMA-Script-Klasse verwendet \AtBeginDocument{\renewcaptionname{ngerman}\partname{Bericht}}
Da die Berichte alle optisch gleich aussehen sollen, kann man sie auch mit derselben Klasse und denselben Paketen erzeugen. Also sollte es eigentlich auch recht problemlos möglich sein, combine zu verwenden.
Wenn man aber ohnehin die gleiche Präambel für alle Berichte verwendet, kann man auch gleich dieselbe Präambel verwenden. Genau so würde ich vorgehen. Dabei würde ich für die Dokument eine Wrapper-Klasse schreiben, die neben der Klasse auch alle benötigten Pakete lädt und Einstellungen vornimmt. Ein Anfänger kann stattdessen einfach alles, was vor \begin{document} steht in eine eigene Datei auslagern und diese per \input am Anfang der einzelnen Berichte laden. Jeder Bericht wird dann zunächst für sich gesetzt. Sind Querverweise zwischen Berichten notwendig, verwendet man das Paket xr. Man hat dann schon einmal alle Berichte in der gewünschten Form mit eigenen Verzeichnissen. Als nächstes baut man ein Hauptdokument. Darin hängt man die einzelnen Berichte schlicht per pdfpages hintereinander. Für die Gesamtverzeichnisse wiederum liest man eine toc-Datei nach der anderen, etwa so:
\newcommand*{\GesamtVerzeichnis}[2][toc]{% \chapter*{#2}% \begingroup\makeatletter \section*{Bericht 1} {\InputIfFileExists{bericht1.#1}{}{}}% \section*{Bericht 2} {\InputIfFileExists{bericht2.#1}{}{}}% % usw. \endgroup } % ... \GesamtVerzeichnis{Inhalt} \GesamtVerzeichnis[lof]{Abbildungen}
Bei dem letzten Vorgehen behalten alle Dokumente ihre Seitenzahl. Will man eine durchgehende Seitennummerierung, so kann man das ebenfalls über das Paket xr über ein Label am Ende jedes Einzeldokuments realisieren. Man kann aber auch etwas wie:
\usepackage{scrlfile}% wird von KOMA-Script-Klassen ohnehin geladen \makeatletter \BeforeClosingMainAux{% benötigt Paket scrlfile \if@filesw \immediate\write\@auxout{\protect\writestartpage}% \fi } \newcommand*{\writestartpage}{% \if@filesw % Jetzt kommt ein Trick, um vorübergehend eine Ausgabedatei zu belegen: \chardef\reserved@c15 % \ch@ck7\reserved@c\write% \immediate\openout\reserved@c startpage.tex\relax% \immediate\write\reserved@c{\string\setcounter{page}{\the\value{page}}}% \closeout\reserved@c \fi } \AtBeginDocument{\InputIfFileExists{startpage.tex}}{}{} \makeatother
Eine (weniger schöne) Alternative wäre:
\renewcommand*{\thepage}{\thepart-\arabic{page}}
BTW: Man könnte auch den ersten und den letzte Weg miteinander mischen, wobei man dann minitoc nicht benötigt, sondern wieder auf die Einzel-Verzeichnisdateien aus einem getrennten Lauf der Einzelberichte zurückgreifen könnte.
DISCLAIMER: Da ich nichts zum Testen hatte, sind alle Codeschnippsel in diesem Beitrag nur als Skizze eines möglichen Lösungswegs zu betrachten und nicht als fertig ausgeführte und getestete Lösung!
goLaTeX-Knigge (mit Minimalbeispiel und »So stellst Du Deine Frage richtig«)
Wie kann ich Code in meinem Beitrag hervorheben?
Wie hänge ich ein Bild an meine Frage?
KOMA-Script
Wie kann ich Code in meinem Beitrag hervorheben?
Wie hänge ich ein Bild an meine Frage?
KOMA-Script