LaTeX-Kompendium: Index und Glossar: Standard-Index
\makeindex oder \makeindex{namen}
Beschreibung
Bearbeitenmakeindex ist ein Programm zur Erstellung von Stichwortverzeichnissen für LaTeX-Dokumente. Es ist eng mit LaTeX verschränkt: Zahlreiche LaTeX-Befehle dienen dazu, entweder Stichwörter für das Verzeichnis zu markieren z.B.: (\index{}{}) oder das von makeindex erstellte Verzeichnis in das mit LaTeX erstellte Dokument einzubinden (v.a. \printindex).
Zusammenarbeit von LaTeX und makeindex
BearbeitenZiel ist, dass ein mit LaTeX erstelltes Textdokument ein Stichwortverzeichnis enthält. Diese Fähigkeit hat LaTeX alleine nicht, daher teilt es sich mit makeindex die Aufgaben folgend:
- Der Autor meldet im laufenden Text Wörter, die im Stichwortverzeichnis erscheinen sollen. Dies erfolgt meist mittels \index{}.
- Wenn der Text kompiliert wird, erstellt LaTeX eine Datei, in der alle mit \index und dergleichen angemeldeten Wörter, mitsamt der Seite, auf der sie im fertigen Dokument erscheinen (.ind), stehen.
- makeindex erstellt aus dieser ungeordneten Liste eine geordnete, sodass die Wörter alphabetisch erscheinen und mehrfache Einträge nicht mehrfach, sondern einfach, aber gegebenenfalls mit mehreren Seitenverweisen. Freilich geht das erst, wenn LaTeX die (ungeordnete) Liste erstellt hat. Darum muss makeindex nach LaTeX laufen.
- Die geordnete Liste entsprechend zu setzen und in das Textdokument einzufügen, ist wiederum Aufgabe von LaTeX. Darum ist es notwendig, LaTeX nach makeindex ein weiteres Mal laufen zu lassen.
Verwendung unter makeidx
BearbeitenDer Befehl \makeindex bzw. \makeindex{} muss in der Präambel stehen, wenn ein Stichwortverzeichnis erzeugt werden soll. Er wird benötigt, um die Erstellung eines Stichwortverzeichnisses vorzubereiten. Die Ausgabe erfolgt über \printindex. Stichwörter, die im Verzeichnis aufscheinen sollen, werden mit \index{} auf der entsprechenden Seite angemeldet.
Bedenken Sie, dass nicht das aktuelle Stichwortverzeichnis mittels \printindex eingefügt wird, sondern das zuletzt erstellte.
Das Verzeichnis muss nach dem Kompilieren eigens mit dem Programm makeindex erstellt werden.
Verwenden Sie also diesen Befehl, muss das Dokument mehrmals kompiliert und, aufgrund möglicher Verschiebungen, auch makeindex mehrmals aufgerufen werden.
Verwendung unter multind
BearbeitenUm unterschiedliche Verzeichnisse zu erstellen (etwa für Personen und Stichwörter), verwendet man das Paket multind statt makeidx. Hier muss man den Befehl mit Attribut verwenden, etwa \makeindex{personen} und \makeindex{stichwoerter}. Entsprechend muss \index entweder als \index{personen}{} oder als \index{stichwoerter}{} verwendet und \printindex doppelt aufgerufen werden, als \printindex{personen}{Index Personen} und \printindex{stichwoerter}{Index Stichw\"orter}. In diesem Fall muss auch der Befehl makeindex zweimal aufgerufen werden:
- makeindex personen
- makeindex stichwoerter
Beachten Sie die unterschiedlichen Pakete!
Verwendung des Befehls \index{}
BearbeitenDer Befehl \index{} gewährleistet, dass das Argument als Stichwort angelegt wird und im Stichwortverzeichnis auf die Seite, auf der der Befehl \index{} platziert wurde, verwiesen wird.
Es gibt folgende Verfeinerungen:
Erlaubt, mehrere Stichwörter unter einem Begriff zusammenzufassen. Die Einträge
\index{Gleichgewicht!Striktes} (auf Seite 7)
und
\index{Gleichgewicht!Perfektes} (auf Seite 9)
ergeben
- Gleichgewicht
- Perfektes 9
- Striktes 7
Das @ erlaubt, den Eintrag zu formatieren.
\index{apfel@birne}
bewirkt, dass an der Stelle von Apfel im Verzeichnis das Wort Birne erscheint. Sinnvoller wäre etwa
\index{apfel@\textbf{apfel}}
um das Wort Apfel im Verzeichnis fett auszugeben.
das | erlaubt den Seitenverweis zu formatieren.
\index{Apfel|textbf}
bewirkt eine fette Seitenzahl.
\index{Apfel|(} (auf Seite 20)
und
\index{Apfel|)} (auf Seite 25)
bewirkt einen Indexeintrag wie:
- Apfel 20-25
Das läßt sich auch kombinieren (etwa \index{Apfel|(textbf}).
\index{Apfel|see{Birne}}
bewirkt (mit dem Paket german) einen Eintrag wie:
- Apfel siehe Birne
Es gibt aber Distributionen, bei denen das Paket german keinen Einfluss auf diese Ausgabe hat, sofern man multind statt index benutzt. In dieser Situation muss man die Definition des see Commands in der Datei multind.sty überschreiben mit der Definition des see Commands aus der Datei index.sty. Z.B. bei Mandriva Linux muss die Zeile
- \def\see#1#2{{\em see\/} #1}
geändert werden in
- \providecommand{\seename}{see}
- \providecommand*{\see}[2]{\emph{\seename} #1}
Weil das see aus multind sonst nicht das command \seename (oder \seecommand o.Ä.) benutzt, welches vom german Paket überschrieben wird.
\index{Apfel|)} (auf Seite 25)
und
\index{Apfel|seealso{Birne}} (unmittelbar vor \printindex)
bewirkt einen Eintrag wie:
- Apfel 25, siehe auch Birne
\printindex
Bearbeiten\printindex bewirkt auch die Einbindung des Stichwortverzeichnisses. Standardmäßig geschieht dies unter der Überschrift Index. Manipulierbar ist die Überschrift durch Änderung des Befehls \indexname mittels \renewcommand.
Benötigt
BearbeitenDer Befehl \makeindex benötigt das Paket makeidx.
Der Befehl \makeindex{} benötigt das Paket multind.
Beispiel
Bearbeiten\documentclass[10pt,a4paper]{article}
\usepackage{makeidx}
\makeindex
\begin{document}
Dies ist ein kurzer \index{kurz} Satz.\newpage
Die ist eine neue \index{neu} Seite.
\printindex
\end{document}
Beispiel 2
BearbeitenDamit im Index "siehe" oder "siehe auch" geschrieben wird, wird in den Hilfen die Verwendung von Paket(german) empfohlen und die Umdefinierung von dem Befehl \seename. Dieses ist nicht konform mit der neuen Weise, wie in LaTeX in deutscher Sprache geschrieben wird, oder es wirkt nicht. Es ist zu beachten, dass in den .sty Dateien nicht die Definition
\def\see#1#2{{\em see\/} #1}
verwendet wird. Wenn das Paket(german) nicht verwendet wird, ist zusätzlich der Parameter "-g" für Deutsch bei der Anwendung von "makeindex" nicht verfügbar. Zur Erstellung und Verwendung von "IndexStilDateien.ist" sei das PDF [1] empfohlen.
\documentclass[a4paper,10pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\selectlanguage{naustrian}
\usepackage[T1]{fontenc}
\usepackage{makeidx}
\makeindex
\begin{document}
Dies ist ein kurzer \index{kurz} Satz.\newpage
Die ist eine neue \index{neu} Seite.
Das ist nun ein mini \index{mini! siehe auch {kurz}} Satz.
\printindex
\end{document}