PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : minitoc, makeidx, addcontentsline [=Konflikt]



Cubo
10-08-2007, 00:26
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:


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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,pdfpagel abels,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}{Abbildungsverzeich nis} %%%%%% Problem für MINITOC! %%%%%%%%%%%%%%%%

\newpage % Tabellenverzeichnis (automatisch generiert)
\listoftables % Befehl zur Erzeugung des Tabellenverz.
%\addcontentsline{toc}{chapter}{Tabellenverzeichni s} %%%%%% Problem für MINITOC! %%%%%%%%%%%%%%%%

\nocite{*} % Literaturverzeichnis
\bibliography{bib/Literatur} % Einlesen der Datei Literatur.bib im Content Ordner
%\addcontentsline{toc}{chapter}{Literaturverzeichn is} %%%%% 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:


-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:

edico
10-08-2007, 10:47
Ich habe Dein Nicht-Minimalbeispiel nicht zum Laufen gebracht. Bei einer abgeleiteten Minimalversion habe ich vergleichbare 'Fehler'. Ich denke, dass der angefragte Zusammenhang besteht, weiss aber nicht, warum -- könnte daran liegen, dass Du 'book mit chaptern' setzt und mit 'minitoc' statt mit 'parttoc' arbeitest.
Ich bilde ein dementsprechendes Minimalbeispiel (basierend auf einem Code, den der Autor irgendwann/irgendwo veröffentlicht hat), das Du dann auf Deine Gegebenheiten anpassen kannst:

\listfiles
\documentclass[german]{book}
\usepackage[german]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage[german,tight]{minitoc}
\usepackage[linktocpage,plainpages=false,pdfpagelabels]{hyperref}

\begin{document}
\doparttoc
\begin{titlepage}
\begin{flushright}
\vspace*{144pt}
\Huge\textbf{Minitoc and addtocontents}\par
\vspace{12pt}
\Large\textbf{How to build \TeX{} document without incompatibilities}\par
\vspace{27pt}
\Large{Edico}
\end{flushright}
\end{titlepage}
\tableofcontents
\listoffigures
\addcontentsline{toc}{chapter}{Abbildungsverzeichn is}
\listoftables
\addcontentsline{toc}{chapter}{Tabellenverzeichnis }
\part{Title of the Main Part}
\chapter{ChapterTitle}
\section{Test}
here comes the text
\begin{table}[htb]
\centering
\caption{Eine sinnvolle DummyTabelle}
\label{tab:test}
\begin{tabular}{lll}
\hline
abcdefghij & 1234567890 & abcdefghij\\
abcdefghij & 1234567890 & abcdefghij\\
\hline
\end{tabular}
\end{table}
\section{Test}
here comes the text
\begin{figure}[htb]
\centering
\Huge{TESTBILD}
\caption{Eine schönes DummyTestbild}
\label{fig:testbild}
\end{figure}

\appendix
\part{Title of the appendix part}
\parttoc % this is the toc of the appendix part
\chapter{First appendix}
\chapter{Last appendix}
\addtocontents{toc}{\protect\partbegin} % to mark the end of the appendix part
\end{document}

*File List* (Auszug)
minitoc.sty 2007/06/29 v55 Package minitoc (JPFD)
mtcmess.sty 2006/03/14
zzst.mtc1
english.mld 1999/03/16
english.mld 1999/03/16
german.mld 1999/03/16
hyperref.sty 2007/02/27 v6.75t Hypertext links for LaTeX
pd1enc.def 2002/01/14 v6.72d Hyperref: PDFDocEncoding definition (HO)
kvoptions.sty 2007/04/11 v2.5 Connects package keyval with LaTeX options (HO
)


Zu Index sag ich nix, weil da ein WINDOWSianer seinen Senf zu geben muss.
Ansonsten mach eine kleine bash, und Deine Sorgen sind von gestern ...

edico

Cubo
10-08-2007, 13:28
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):



\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}{Abbildungsverzeich nis}

\newpage
\listoftables
%\addcontentsline{toc}{chapter}{Tabellenverzeichni s}


\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.


\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:


-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

edico
10-08-2007, 14:20
Ich hatte Dich schon verstanden. Da ich aber zunächst keine Lösung mit chapter, sondern 'nur' mit part generieren konnte, Du ferner die Book Klasse heranziehst, habe ich Dir eine Lösung auf dieser Ebene angeboten (sie funktioniert).

Nun habe ich (weil ich faul bin) mein MB herangezogen und Deinen Wunsch, die part Ebene nicht zu benutzen, beherzigt.
Das MB zeigt die Lösung:

\documentclass[german]{book}
\usepackage[german]{babel}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage[german,tight]{minitoc}
\usepackage[linktocpage,plainpages=false,pdfpagelabels]{hyperref}

\begin{document}
%\doparttoc
\dominitoc
\begin{titlepage}
\begin{flushright}
\vspace*{144pt}
\Huge\textbf{\hfill Minitoc -- \newline parttoc and addtocontents}\par
\vspace{12pt}
\Large\textbf{How to build \TeX{} book document with parts without incompatibilities}\par
\vspace{27pt}
\Large{Edico}
\end{flushright}
\end{titlepage}
\tableofcontents
\listoffigures
\addcontentsline{toc}{section}{Abbildungsverzeichn is}%section_statt_chapter
\listoftables
\addcontentsline{toc}{section}{Tabellenverzeichnis }%section_statt_chapter
%\part{Title of the Main Part}
%\parttoc
\chapter{ChapterTitle}
\minitoc
\section{Test}
here comes the text
\begin{table}[htb]
\centering
\caption{Eine sinnvolle DummyTabelle}
\label{tab:test}
\begin{tabular}{lll}
\hline
abcdefghij & 1234567890 & abcdefghij\\
abcdefghij & 1234567890 & abcdefghij\\
\hline
\end{tabular}
\end{table}
\section{Test}
here comes the text
\begin{figure}[htb]
\centering
\Huge{TESTBILD}
\caption{Eine schnes DummyTestbild}
\label{fig:testbild}
\end{figure}

\appendix
%\part{Title of the appendix part}
%\parttoc % this is the toc of the appendix part

\chapter{First appendix}
\minitoc
\section{Ein Anhangsabschnitt}

\chapter{Last appendix}
\minitoc
\section{Ein Anhangsabschnitt}

\addtocontents{toc}{\protect\partbegin} % to mark the end of the appendix part

\end{document}

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).

edico

Cubo
10-08-2007, 16:27
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...)




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

edico
10-08-2007, 20:08
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.


Das weiss ich im Moment auch nicht, muss die Dokumentation mal studieren, wenn bischen mehr Luft ist.

edico

Cubo
11-08-2007, 10:55
Danke für dein Angebot! Freue mich auf eine Antwort...

In der Zwischenzeit ist mir folgendes Vorgehen eingefallen, weiss aber mangels Kenntnissen in LaTeX nicht, wie dieses umzusetzten wäre:

Solange keine zusätzlichen TOC-Einträge mit "addtocontentslist" vorgenommen werden, funktioniert ja das ganze mit den Minitocs im Anhang...
Könnte man nicht für die 3-4 Verzeichnisse eine normale Überschrift chapter{Verzeichnis} erstellen...
Anschliessend könnte man für die 3-4 Verzeichnis-Überschriften die Anzeige des "Kapitel X" ausblenden... (So dass nur noch die Überschrift ohne Kapitelangabe auf dem Papier steht...)
...um Anschliessend z.B. \listoffigures einzufügen....
...dazu müsste aber bei diesem Befehl die Erzeugung der Überschrift und der automatisch erzeugte Seitenumbruch deaktivert werden...


Tja, das ganze scheint recht aufwändig und unrealistisch...

Vielleicht hat jemand noch eine bessere Idee?

Grüsse aus Schweiz
-Andres

rais
11-08-2007, 13:30
Moin moin,


\listoffigures\mtcaddchapter
\addcontentsline{toc}{chapter}{Abbildungsverzeichn is}%nu doch chapter

-- \listoftables dann entsprechend -- sollte so tun.
MfG,

edico
11-08-2007, 18:47
@rais That's it! Hätte nun ja vorher hier im Forum nachschauen sollen, dass Du schon da warst ;-) Sehr schön! p.47 (ff) Dokumentation

edico

Cubo
11-08-2007, 19:20
Hallo Rainer,

Super! Genial! Freue mich gerade wie ein kleines Kind:)... Der Altbundesrat Adolf Ogi würde sagen:

Freude herrscht!

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:



\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}{Abbildungsverzeichn is}

\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):


\listoffigures
\addcontentsline{toc}{chapter}{Abbildungsverzeichn is}


Dieses Problem kann dank der folgenden Ergänzung behoben werden:


\listoffigures\mtcaddchapter % \mtcaddchapter, damit Minitoc auch nach \appendix funktioniert
\addcontentsline{toc}{chapter}{Abbildungsverzeichn is}


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:


-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?

edico
12-08-2007, 10:08
texdoc minitoc

edico

rais
12-08-2007, 20:03
Hallo Andres,


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:


-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...


ob es unter Windows funzt, weiß ich nicht, aber Du könntest es einmal so probieren:


\begin{filecontents}{\jobname.mst}
%% hier der Inhalt Deiner mkidx.ist
\end{filecontents}
\documentclass[..]{book}

und makeindex dann so aufrufen:


makeindex wie-auch-immer-die-Datei-heißt.idx

bzw. nichts außer

"%bm".idx

in Deinem Ausgabeprofil für TexnicCenter definieren, vermutlich sogar Standardeinstellung?
Quelle:


If exactly one input file was given and no explicit style file was specified using -s, makeindex uses a file with the extension .mst as default style file (when present).

MfG,

Cubo
12-08-2007, 22:41
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:



\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:


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?):


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

rais
13-08-2007, 09:45
Hallo Andres,


zu Lösungvorschlag Nr.2:
das waren eigentlich mehrere Schritte einer Lösung.



Habe die mkidx.ist in mkidx.mst umbenannt...
Hat leider nicht funktioniert... Style-Datei wurde nicht erkannt, habe aber auch keine Fehlermeldungen erhalten...


das hab ich auch nicht vorgeschlagen (s. u.)


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:


LaTeX Warning: File Minimalbeispiel.mst already exists on your system.
Not generating it from this source


Mit dem ersten (pdf)LaTeX-Lauf wird die Minimalbeispiel.mst bereits angelegt, die Warnung stammt vermutlich von einem Folgelauf. Wenn Du Dir unsicher bist, dann schau doch einfach in dieser Datei nach, ob der Inhalt aus Deiner filecontents-Umgebung auch drinsteht.;)


Ausserdem weiss ich nicht genau, wie und wo ich folgendes einbinden soll (kann es vielleicht daran liegen?):


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 ...

die Zeile mit makeindex zeigt nur den Aufruf, wie er auf einer/m Konsole/Eingabeaufforderung/Terminal aufzurufen ist. Fangen wir einfach nochmal bei Null an: Du nennst Deine Hauptdatei z. B. `foo.tex' (ich will nicht jedesmal `Minimalbeispiel' hier tippen müssen;-), dann sieht ein normaler Ablauf so aus:


latex foo.tex

`foo.mst' und diverse Hilfsdateien werden angelegt, u. a. `foo.idx'


makeindex foo.idx

da eine `foo.mst' existiert, sollte diese auch als Indexstil von makeindex genommen werden


latex foo.tex

die filecontents-Umgebung beschwert sich, dass `foo.mst' bereits existiert und somit nicht neu angelegt wird -- das ist für Dich die Warnung, falls Du inzwischen innerhalb der filecontents-Umgebung für `foo.mst' herumgedoktort haben solltest, dass diese Neuerungen erst wirksam werden, wenn Du `foo.mst' löschst und `latex foo.tex' nochmal aufrufst.
U. a. wird der Index bei \printindex eingelesen (eben die entstandene `foo.ind', aber auch foo.toc bei \tableofcontents etc.).


latex foo.tex

Durch das im Lauf zuvor eingefügte Material (LOF, LOT, TOC usw.) können sich Sprungmarken verändert haben, müssen also neu aufgelöst werden -- und bei Einsatz von z. B. longtable können noch mehr Aufrufe erforderlich sein.;)

Und versuch es erstmal über die Konsole -- vom TexnicCenter versteh' ich eh so gut wie nüscht.;-)
...und poste die entstandene `foo.ilg' -- besonders, falls es nicht klappt.
MfG,

Cubo
13-08-2007, 14:09
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:


...
\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:


...
\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

rais
13-08-2007, 23:52
Hallo Andres,


Nur leider wird mir dieser zusätzliche Befehl "[-s foo.mst]" nicht als Befehl anerkannt, sondern als Text ins Dokument gedruckt (an erster Stelle)...

[-s irgendwas.ist] ist ein optionaler Parameter für das externe Programm `makeindex[.exe]´.


--> Ist eine solche Unterbindung möglich?

Eigentlich frage ich mich gerade, warum Du nicht Deine benötigten Dateien (Vorlage.tex, mkidx.ist und ein README) in ein hübsches Archiv packst; in so einem README kannst Du doch immer noch vorgeben, was mit welcher Datei zu geschehen hat.;)
Da Indexstile etwas anders gesucht werden, als z. B. .sty-Dateien -- und ich nicht die leiseste Ahnung habe, wo dies auf Deinem System der Fall sein könnte: öffne mal eine Konsole/Eingabeaufforderung, begib Dich ggf. per `cd´ in Dein Arbeitsverzeichnis und tipp


kpsewhich -show-path=ist

das sollte Dir eine Pfadliste ausspucken, unter denen Indexstildateien gesucht -- und auch gefunden -- werden, d. h. Du kannst Deine `mkidx.ist´ in einem dieser Pfade unterbringen (vorzugsweise lokal), texhash aufrufen und von nun an `makeindex -s mkidx.ist (..)´ aufrufen und Dir sicher sein, daß `mkidx.ist´ auch gefunden wird.


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?

keine Ahnung, aber wenn Du sie nicht haben willst: AFAIK gibt es beim TexnicCenter so einen Knopp für ``Projekt aufräumen´´.
MfG,

Cubo
14-08-2007, 08:19
Hallo Reiner,

Besten Dank für deine Antwort früh morgens ;-):


[-s irgendwas.ist] ist ein optionaler Parameter für das externe Programm `makeindex[.exe]´.
ach so, dann kann das ja gar nicht funktionieren, was ich da vor hatte...


Eigentlich frage ich mich gerade, warum Du nicht Deine benötigten Dateien (Vorlage.tex, mkidx.ist und ein README) in ein hübsches Archiv packst; in so einem README kannst Du doch immer noch vorgeben, was mit welcher Datei zu geschehen hat.
Das werde ich bestimmt auch machen, wenn das ganze fertig ist. Jedoch fände ich es viel schöner, wenn ich auf der obersten Ebene lediglich meine Masterdatei.tex hätte, und der Rest wäre dann schön kategorisch in Unterordnern untergebracht... (Die Teildokumente liegen beispielsweise alle samt im Ordner "content", die Bib im Ordner "bib", die preambel(n) im Ordner "preambel" usw... ich mag einfach keine Unordnung:D

Und du weisst ja bestimmt, wie das mit den Readme.txt Dateien ist... Die wird einfach grosszügig übersehen oder ignoriert (lesen ist uncool)...


kpsewhich -show-path=ist
hab ich gemacht, mein gewünschter "TEMP" ordner war nicht dabei ;-) ... Ich werds wohl (FÜRS ERSTE) aufgeben, aber ich komme wieder ;-) (ja, das ist eine Drohung *i*)


AFAIK gibt es beim TexnicCenter so einen Knopp für ``Projekt aufräumen
Jup, das hab ich schon gemacht, jedoch möchte ich das ganze der Ordnung halber doch lieber direkt in den Ordner "Temp" speichern, ist aber wohl nichtmöglich...

Besten Dank noch mal und bis zum nächsten Mal!

Greez
-Anders