minitoc, makeidx, addcontentsline [=Konflikt]
Hallo liebes Forum, hab'n Problem:):
Bin dabei (schon viel zu lange), eine LaTeX Vorlage für die Studenten unserer Uni zu erstellen, und habe ein Problem mit dem Zusammenwirken folgender Punkte:
- minitoc
- makeidx
- addcontentsline
Ausgangslage:
- Das Dokument besteht aus Master- und Slavedokumenten (eingebunden mit \include)
- Verwende MikTeX und TeXnicCenter
- Verwende die Book Klasse (möchte keine SCR dinger...)
Problemstellung:
Die Vorlage ist nun soweit fortgeschritten, dass die grobe Struktur steht und die verschiedenen Unterkapitel mit \include{filename} eingebunden sind. Dabei sieht das Masterdokument folgendermassen aus:
Code:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Masterdokument inkl. Dokumenteinstellungen %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,11pt,oneside]{book}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage[T1]{fontenc}
\usepackage{ae}
\usepackage{pdfpages}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage[backref,pdftex,bookmarks,plainpages=false,pdfpagelabels,colorlinks,pdftitle={LaTeX Vorlage},pdfauthor={Andres Graf},linkcolor={black},citecolor={black},urlcolor={black}]{hyperref}
\usepackage[nohints]{minitoc}
\setlength{\mtcindent}{0em}
\setcounter{minitocdepth}{2}
\setlength{\mtcskipamount}{\bigskipamount}
\mtcsettitlefont{minitoc}{\normalsize}
\mtcsetfont{minitoc}{*}{\small}
\mtcsetfont{minitoc}{section}{\small}
\mtcsetfont{minitoc}{subsection}{\small}
\mtcsetfont{minitoc}{subsubsection}{\small}
\usepackage{makeidx}
\makeindex
\pagestyle{headings}
\newcommand{\e}{\mathrm{e}}
\title{{\Huge \textsc{\LaTeX{}-Dokument}}}
\author{\Large Andres Graf}
\date{20 Dezember 2007}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Beginn des Dokuments --> TIPP: Einzelne Kapitel mit "%" deaktivierbar! %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\dominitoc
\dominilof
\dominilot
\bibliographystyle{plain}
\reversemarginpar
\frontmatter
\maketitle
%\include{content/Titelseite} % BFH-Titelseite
\include{content/LeereSeite} % Leere Seite (ev. mit passendem Zitat)
\include{content/Abstract} % Erstellen der Zusammenfassung in Englisch (spez. Formatierung)
\include{content/Zusammenfassung} % Erstellen der Zusammenfassung (spez. Formatierung)
\include{content/Danksagung} % Danksagung
\include{content/Aufgabenstellung} % Aufgabenstellung
\include{content/Selbstständigkeitserklärung} % Selbstständigkeitserklärung
\tableofcontents
\mainmatter
%\include{content/vorlage/demo} % Demonstrations-Dokument Matthias Pospiech
\include{content/Beschreibung} % Kapitel0: Beschreibung
\include{content/Einleitung} % Einleitung
\include{content/Thema1} % Thema 1
\include{content/Thema2} % Thema 2
\include{content/Thema3} % Thema 3
%\include{ThemaX} % Thema X
\include{content/Schlussfolgerung} % Schlussfolgerung
\include{content/Erkenntnisse} % Erkenntnisse
\include{content/OffenePunkte} % Offene Punkte
\newpage % Bildverzeichnis (automatisch generiert)
\listoffigures % Befehl zur Erzeugung des Bildverz.
%\addcontentsline{toc}{chapter}{Abbildungsverzeichnis} %%%%%% Problem für MINITOC! %%%%%%%%%%%%%%%%
\newpage % Tabellenverzeichnis (automatisch generiert)
\listoftables % Befehl zur Erzeugung des Tabellenverz.
%\addcontentsline{toc}{chapter}{Tabellenverzeichnis} %%%%%% Problem für MINITOC! %%%%%%%%%%%%%%%%
\nocite{*} % Literaturverzeichnis
\bibliography{bib/Literatur} % Einlesen der Datei Literatur.bib im Content Ordner
%\addcontentsline{toc}{chapter}{Literaturverzeichnis} %%%%% Problem für MINITOC! %%%%%%%%%%%%%%%%%%%%%
%\addcontentsline{toc}{chapter}{Index} %%%%%% Problem für MINITOC!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\printindex
\appendix
\include{content/Anhang}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Ende des Dokuments --> TIPP: Einzelne Kapitel mit "%" deaktivierbar! %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dabei ist folgendes festzustellen:
- Aufbau: \frontmatter \mainmatter \appendix
- Verwendung von Minitoc in \mainmatter sowie \appendix
- Abbildungs- / Tabellen- / Literatur-Verzeichnis & Index werden verwendet
Problem:
Wie im Code-File ersichtlich ist, sind am Ende des Files 4 Zeilen mit % versehen: Diese vier Zeilen sollen die jeweiligen Verzeichnisse zum TOC hinzufügen. Wenn ich dies nun aktiviere, werden die Einträge zwar ins TOC geschrieben, jedoch werden dadurch die Minitocs im Anhang (\appendix) durcheinander gebracht! (Drittes Anhang-Minitoc zeigt beispielsweise den Inhalt des ersten Anhang-Minitocs)
Fragen:
- Ist dieser Konflikt zwischen minitoc und addcontentsline bekannt?
- Gibt es eine Alternative Lösung, damit die Verzeichnis-Überschriften ins TOC übernommen werden können?
Weitere Fragen:
- Bekanntlich kann ein mit dem package "makeidx" erstelltes Index-Verzeichnis mit einer Style-Datei gestaltet werden. Dies habe ich auch gemacht (Datei = mkidx.ist). Diese wird aber nur berücksichtigt, wenn in den Ausgabeprofilen in TeXnicCenter folgender Befehl eingegeben wird:
Code:
-s mkidx.ist "%bm".idx %Style-Datei: "mkidx.ist"
Gibt es eine Möglichkeit, diese Style-Datei auch direkt ins Masterdokument.tex einzubinden? Ansonsten müsste ja jeder Student diese Einstellung vornehmen, was sicherlich ein Chaos auslösen würde...:(
So, das war jetzt etwas lang... Ich hoffe, dass mir hier ein Profi helfen kann, vorallem das mit den Minitocs wäre super!
Besten Dank schon mal!
Grüsse aus der überschwemmten Schweiz
-Andres
Ps. Kann leider das erzeugte PDF nicht anhängen... zu gross :rolleyes:
Minimalbeispiel inkl. erneuter Fragestellung:
Hallo edico,
Besten Dank für deine rasche Antwort! Bitte entschuldige das nicht lauffähige Beispiel... Ich habe nun versucht, das ganze so weit wie möglich zu kürzen (ist lauffähig):
Code:
\documentclass[a4paper,11pt,titlepage,oneside,onecolumn,final]{book}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[plainpages=false,backref]{hyperref}
% Minitoc Package
\usepackage[nohints]{minitoc}
% Makeindex Package
\usepackage{makeidx}
\makeindex
\begin{document}
\dominitoc
\dominilof
\dominilot
\frontmatter
\chapter{Zusammenfassung}
\chapter{Aufgabenstellung}
\tableofcontents
\mainmatter
\chapter{Einleitung}
Dies ist ein Index\index{test}...
\chapter{Thema1}
\minitoc
\section{Thema1-1}
\subsection{Thema1-1-1}
\chapter{Thema2}
\minitoc
\section{Thema2-1}
\subsection{Thema2-1-1}
\newpage
\listoffigures
%\addcontentsline{toc}{chapter}{Abbildungsverzeichnis}
\newpage
\listoftables
%\addcontentsline{toc}{chapter}{Tabellenverzeichnis}
\printindex
%\addcontentsline{toc}{chapter}{Index}
\appendix
\chapter{Thema1}
\minitoc
\section{Thema1-1}
\subsection{Thema1-1-1}
\chapter{Thema2}
\minitoc
\section{Thema2-1}
\subsection{Thema2-1-1}
\end{document}
Was ich gerne möchte:
- Das Book-Dokument soll mit Chaptern (nicht mit Parts) als oberstes Glied gestaltet werden
- Zu Beginn jedes Chapters möchte ich ein \minitoc einfügen
- Diese \minitocs sollen im \mainmatter sowie auch im \appendix funktionieren
Problem:
Die \minitocs funktionieren soweit fehlerfrei bis ich mit folgendem Code einen zusätzlichen Eintrag ins TOC generieren möchte, denn dann werden die \minitocs im Anhang durcheinander gebracht od. beim gezeigten Minimalbeispiel sogar vollständig ausgeblendet.
Code:
\addcontentsline{toc}{chapter}{z.B. Abbildungsverzeichnis}
--> Im Anhang befinden sich zwei generierte PDFs des Minimal-Beispiels: Einmal ohne und einmal mit zus. TOC einträgen (Einmal mit korrekten appendix-minitocs, und einmal mit "defekten" minitocs (Im Anhang))
Zu deinem Vorschlag:
Besten Dank für dein erstelltes Beispiel. Wenn ich das richtig verstanden habe, kann mit den Parttocs für den jeweiligen Part ein Inhaltsverzeichnis erzeugt werden. Ich möchte aber zu jedem Chapter ein Inhaltsverzeichnis erzeugen, was bei der von dir vorgeschlagenen Lösung nicht funktioniert (?)... oder habe ich da etwas übersehen?
Frage1 (Wiederholung zur Übersicht):
- Gibt es eine Möglichkeit, die Abbildungs- Tabellen- und Index-Verzeichnise ins TOC aufzunehmen, ohne dass dabei die Minitocs im Anhang (\appendix) zerstört werden?
- Alternative Fragestellung: Gibt es eine eine andere, ebenso elegante Möglichkeit, solche Minitocs zu erzeugen? Gibt es irgendwelche Tricks?
Frage2 (Wiederholung zur Übersicht)
- Bekanntlich kann ein mit dem package "makeidx" erstelltes Index-Verzeichnis mit einer Style-Datei gestaltet werden. Dies habe ich auch gemacht (Datei = mkidx.ist). Diese wird aber nur berücksichtigt, wenn in den Ausgabeprofilen in TeXnicCenter folgender Befehl eingegeben wird:
Code:
-s mkidx.ist "%bm".idx %Style-Datei: "mkidx.ist"
Gibt es eine Möglichkeit, diese Style-Datei auch direkt ins Masterdokument.tex einzubinden? Ansonsten müsste ja jeder Student diese Einstellung vornehmen, was sicherlich ein Chaos auslösen würde...
Besten Dank für deine/eure Bemühungen... ich hoffe auf weitere Antworten:confused:
Greez
-Andres
Funktioniert nur bedingt...
Besten Dank für deine Antwort. Leider funktioniert das ganze nicht, da wir nach unseren Richtlinien die ganzen Verzeichnisse (Abbildungs- Tabellen- und Index-Verzeichnis) nicht am Anfang des Dokuments, sondern vor dem Anhang platzieren.
- Wenn man das nun mit dem von dir bereitgestellten MB macht, erscheinen die TOC Einträge als Unterpunkt des letzten Kapitels vor dem \appendix...
- Werden die TOC Einträg zur Korrektur des oben geschilderten Problems von der Section- auf die Chapter-Ebene gehoben, werden wieder die Minitocs zerstört... (Siehe Anhang --> Text-File in *.tex umbenenen...)
Zitat:
Wie Du erfahren hattest und nun erkennen kannst, liegt 'der Hase im Pfeffer' in der Definition der 'addtocontentsline', die mit section statt mit chapter ausgezeichnet sein muss (ist ja auch logisch, weil wir nunmehr eine Ebene unterhalb der Höchsten dieser Klasse sind).
...Das erscheint mir irgendwie nicht so logisch. ImhO sollten Verzeichnisse auf der gleichen Ebene wie die Hauptkapitel erscheinen (sei dies nun am Anfang des Dokuments, oder direkt vor dem Anhang)...
Fragen:
Da sich meine Fragen (siehe oben) noch nicht geklärt haben, wäre deshalb um weitere Vorschläge dankbar:confused:
Greez
- Andres
Lösung: Minitoc im Anhang!
Hallo Rainer,
Super! Genial! Freue mich gerade wie ein kleines Kind:)... Der Altbundesrat Adolf Ogi würde sagen:
Besten Dank für deinen Hinweis, nun funktioniert alles wie gewünscht!
Minimalbeispiel:
Folgend füge ich nochmals das korrigierte (nicht mehr so) Minimalbeispiel ein, damit es meine Nachfolger ev. etwas einfacher haben:
Code:
\documentclass[a4paper,11pt,titlepage,oneside,final]{book}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[plainpages=false,backref]{hyperref}
\usepackage[nohints]{minitoc} % Minitoc Package
\usepackage{makeidx} % Makeindex Package
\makeindex
\begin{document}
\dominitoc % Vorbereitung Minitoc, Minilof, Minilot
\dominilof
\dominilot
\frontmatter % Beginn Vordokument
\chapter{Zusammenfassung}
Hier steht ein Index \index{LaTeX}
\chapter{Aufgabenstellung}
\tableofcontents\mtcaddchapter % \mtcaddchapter, damit Minitoc auch nach \appendix funktioniert
\addcontentsline{toc}{chapter}{Inhaltsverzeichnis}
\mainmatter % Beginn Hauptdokument
\chapter{Einleitung}
Dies ist ein Index \index{test} ...
\chapter{Thema1}
\minitoc % Minitoc einfügen
\section{Thema1-1}
\subsection{Thema1-1-1}
\chapter{Thema2}
\minitoc % Minitoc einfügen
\section{Thema2-1}
\subsection{Thema2-1-1}
\newpage
\listoffigures\mtcaddchapter % \mtcaddchapter, damit Minitoc auch nach \appendix funktioniert
\addcontentsline{toc}{chapter}{Abbildungsverzeichnis}
\newpage
\listoftables\mtcaddchapter % \mtcaddchapter, damit Minitoc auch nach \appendix funktioniert
\addcontentsline{toc}{chapter}{Tabellenverzeichnis}
\newpage
\printindex\mtcaddchapter % \mtcaddchapter, damit Minitoc auch nach \appendix funktioniert
\addcontentsline{toc}{chapter}{Index}
\appendix % Beginn Anhang
\chapter{AThema1}
\minitoc % Minitoc einfügen (Anhang)
\section{AThema1-1}
\subsection{AThema1-1-1}
\chapter{AThema2}
\minitoc % Minitoc einfügen (Anhang)
\section{AThema2-1}
\subsection{AThema2-1-1}
\end{document}
Anmerkungen:
Das Problem war folgendes: Ich wollte mit dem Minitoc Package im Anhang (also nach dem Befehl \appendix) ein kleines Inhaltsverzeichnis erstellen. Dies klappte aber nicht mehr, sobald ein manueller Eintrag ins TOC getätigt wurde (Beispiel):
Code:
\listoffigures
\addcontentsline{toc}{chapter}{Abbildungsverzeichnis}
Dieses Problem kann dank der folgenden Ergänzung behoben werden:
Code:
\listoffigures\mtcaddchapter % \mtcaddchapter, damit Minitoc auch nach \appendix funktioniert
\addcontentsline{toc}{chapter}{Abbildungsverzeichnis}
Noch offene Fragen:
Immer noch offen ist die folgende Frage:
- Bekanntlich kann ein mit dem package "makeidx" erstelltes Index-Verzeichnis mit einer Style-Datei gestaltet werden. Diese habe ich auch gemacht (Dateiname = "mkidx.ist"). Diese wird aber nur berücksichtigt, wenn in den Ausgabeprofilen in TeXnicCenter folgender Befehl eingegeben wird:
Code:
-s mkidx.ist "%bm".idx %Style-Datei: "mkidx.ist"
Gibt es eine Möglichkeit, diese Style-Datei auch direkt ins Masterdokument.tex einzubinden? Ansonsten müsste ja jeder Student diese Einstellung vornehmen, was sicherlich ein Chaos auslösen würde...
Wäre schön, wenn sich darauf auch noch eine Antwort finden würde...
Ansonsten nochmals besten Dank!
Greez
-Andres
Ps. @edico: Auch dir recht herzlichen Dank für deine Mithilfe! ... von welcher Dokumentation sprichst du denn da? link?
Ansatz scheint zu funktionieren... jedoch nicht wie gewünscht...
Hallo Reiner,
Thx für deine Antwort:
zu Lösungvorschlag Nr.2:
- habe in den Ausgabeprofilen von TeXnicCenter wieder den Standard-Wert "%bm" (oder auch "%bm".idx) eingestellt
- Habe die mkidx.ist in mkidx.mst umbenannt...
- Hat leider nicht funktioniert... Style-Datei wurde nicht erkannt, habe aber auch keine Fehlermeldungen erhalten...
Habe ich im beschriebenen Vorgehen einen Fehler begangen?
zu Lösungsvorschlag Nr.1:
Habe das ganze mal so gemacht, wie du das beschrieben hast. Folgend die Schamatik:
Code:
\begin{filecontents}{\jobname.mst}
quote '+'
headings_flag 1
heading_prefix "{\\bf "
heading_suffix "}\\nopagebreak%\n \\indexspace\\nopagebreak%"
delim_0 "\\dotfill "
delim_1 "\\dotfill "
delim_2 "\\dotfill "
delim_r "~--~"
suffix_2p "\\,f."
suffix_3p "\\,ff."
\end{filecontents}
...
\documentclass[a4paper,11pt,titlepage,twoside,final]{book}
...
\usepackage{makeidx}
\makeindex
...
begin{document}
...
\printindex
...
end{document}
Wenn ich das ganze so durchlaufen lasse (Ausgabeprofil immer noch auf "%bm"), wird der Style auf den Index angewandt, jedoch erhalte ich dann folgende Fehlermeldung:
Warnung:
Code:
LaTeX Warning: File Minimalbeispiel.mst already exists on your system.
Not generating it from this source
Ausserdem weiss ich nicht genau, wie und wo ich folgendes einbinden soll (kann es vielleicht daran liegen?):
Code:
makeindex wie-auch-immer-die-Datei-heißt.idx
... mir ist schon klar, dass ich da jetzt nicht "..wie-auch-immer.." eingeben muss:cool:, doch welcher Dateinamen soll wird nun angewandt? \jobname wäre "Minimalbeispiel" und der ursprüngliche Dateinamen war mkidx.ist ...
Siest du da irgend ein Fehler in meinem Vorgehen?
Besten Dank schon mal
Greez
-Andres
...immer noch nicht ganz kapiert (ich)...
Hallo Rainer,
Hab das ganze nochmals durchgespielt (diesmal mit foo.tex:)):
Funktioniert bedingt:
- TexNicCenter --> Ausgabeprofil --> "%bm"
- Style-Datei in CurrentDirectory gespeichert und mit jobname.mst (also foo.mst) benannt!
- Keine speziellen Einstellungen im Code:
Code:
...
\usepackage{makeidx}
\makeindex
...
Text Text \index{DiesIstEinINdex} Text
...
\printindex
...
- Resultat: Index-Style wird wie gewünscht geladen, ohne irgendwelche Fehlermeldung
...funktioniert nur bedingt weil:
Ich möchte die Style-Datei (z.B. foo.mst) aber gerne in einem Unterordner (z.B. Ordner "Styles") speichern und nicht mit dem \jobname bennen. Dies kann anscheinend mit dem Befehl makeindex [-s foo.mst] bewerkstelligt werden:
Code:
...
\usepackage{makeidx}
\makeindex[-s foo.mst] %oder im Ordner: \makeindex[-s styles/foo.mst]
...
Text Text \index{DiesIstEinINdex} Text
...
\printindex
...
Nur leider wird mir dieser zusätzliche Befehl "[-s foo.mst]" nicht als Befehl anerkannt, sondern als Text ins Dokument gedruckt (an erster Stelle)...
Frage:
Was mache ich da falsch? :o
begin{filecontents}...
Das mit dem \begin{filecontents}{\jobname.mst ... end{filecontent} hat schon funktioniert, nur erhalte ich so eben diese Fehlermeldung, dass die Datei bereits existiert (was ja nach dem zweiten Druchlauf Tatsache ist). Das ist an für sich ja schön und gut, nur soll meine (noch sehr wackelige)Vorlage keine Fehler ausspucken, da dies die Studis verwirren würde. Falls sich also dieser Fehler unterbinden lässt (Ausgabe verhindern), wäre dieses Vorgehen auch akzeptabel.
--> Ist eine solche Unterbindung möglich?
Zusätzliche OT Frage:
LaTeX (oder TeXnicCenter) erzeugt ja bekanntlich unmengen an Hilfsdateien (*.aux / *.lof / *.mtc... usw). Ist es möglich, diese in ein Unterverzeichnis (z.B. Ordner namens "Temp" speichern zu lassen?
Besten Dank schon mal für deine / eure geduldige Mithilfe
Greez
-Andres