Projekt

Allgemein

Profil

Index » Historie » Version 5

Patrick Schulz, 17.02.2021 14:50

1 1 Patrick Schulz
h1. Index
2
3 3 Patrick Schulz
h2. Auszeichnung multipler Indexes und deren Überschriften
4 1 Patrick Schulz
5
Wir verwenden das LaTeX-Paket "index":https://mirror.dogado.de/tex-archive/macros/latex/contrib/index/index.pdf für die Rohindexerzeugung, sowie Xindy zum Generieren des fertigen Registers.
6
7
h3. Deklaration der Index-Typen
8
9
Das Paket erlaubt mehrere Indexe. Diese werden mit dem \(re)newindex-Befehlen deklariert:
10
<pre><code class="text">
11
\newindex{<typ>}{<endung rohindex>}{<endung fertiger index>}{<Überschrift>}
12
</code></pre>
13
Damit der Skriptaufruf später korrekt funktioniert, müssen die beiden Endungen bei *nicht-default-Typen* dem Schema @<typ>_idx@ (Rohindex) bzw. @<typ>_ind@ (fertiger Index) entsprechen.
14
15
Der Default- oder Hauptindex kriegt das Label @default@, dessen ÜS lässt sich wie folgt überdefinieren:
16
<pre><code class="text">
17
\renewindex{default}{idx}{ind}{Personenregister}
18
</code></pre>
19
Die Index-Einträge für diesen Index werden  mit 
20
<pre><code class="text">
21
\index{<Lemma>}
22
</code></pre>
23
deklariert. Ausgegeben wird der Hauptindex wird mit 
24
<pre><code class="text">
25
\printindex
26
</code></pre>
27
28
Angenommen, wir wollen zusätzlich zu diesem noch ein Ortsverzeichnis, dann müssen wir in der Präambel der tex-Datei einen neuen Index-Typ deklarieren:
29
<pre><code class="text">
30
\newindex{o}{o_idx}{o_ind}{Ortsverzeichnis}
31
</code></pre>
32
Die Index-Einträge würden dann mit 
33
<pre><code class="text">
34
\index[o]{<Term>}
35
</code></pre>
36
deklariert, der Index mit 
37
<pre><code class="text">
38
\printindex[o]
39
</code></pre>
40
ausgegeben.
41
42
h3. Aufruf des Index-Skripts
43
44
Mit dem optionalen Argument kann angegeben werden, welcher Index generiert werden soll. Wird das optionale Argument weggelassen, wird der Hauptindex erzeugt:
45
<pre><code class="text">
46
./index.sh <tex-Dateiname ohne Endung>
47
</code></pre>
48
Der Aufruf mit optionalen Argument erzeugt den Neben-Index, z.B.
49
<pre><code class="text">
50
./index.sh <tex-Dateiname ohne Endung> o
51
</code></pre>
52
würde das Ortsverzeichnis aus o.g. Beispiel erzeugen. Das Skript muss also für jeden Index einzeln aufgerufen werden.
53 4 Patrick Schulz
54 3 Patrick Schulz
h2. Generierung des Index
55
56 5 Patrick Schulz
h3. Generieung der Indexe durch TeX
57 3 Patrick Schulz
58
Heißt: Indexeinträge sind mittels \index[<typ>]{<Lemma>} in TeX kodiert.
59
60
<pre><code class="xml">
61
lualatex <tex-Dateiname>.tex     %% Initialer TeX-Lauf; einsammeln der ÜSen
62
lualatex <tex-Dateiname>.tex     %% Erzeugen des IHV; seitenzahlen verschieben sich ggf. 
63
lualatex <tex-Dateiname>.tex     %% Zur Sicherheit... 
64
./index.sh <tex-Dateiname>       %% OHNE Endung!
65
./index.sh <tex-Dateiname> <typ> %% Zweites, optionales Argument für Index-Typ anders als default, s.u.
66
lualatex  <tex-Dateiname>.tex    %% Index wird erstmalig ausgegeben, ÜS wird geschrieben
67
lualatex  <tex-Dateiname>.tex    %% ÜS(en) für Index(e) in IHV gerendert
68
lualatex  <tex-Dateiname>.tex    %% Zur Sicherheit...
69
</code></pre>
70
71
h3. Statische Index-Dateien
72
73
Heißt: @<basename>.<typ>_ind@ kommt vom Konverter
74
75
Bei statischen Indexes darf die @index.sh@ *nicht aufgerufen* werden, da sonst die *ind-Dateien überschrieben würden! Alle anderen Schritte sind dieselben; @\(re)newindex{}{}{}{}@ muss auch hier verwendet werden. Zum einen für die ÜSen, und zum anderen damit @\printindex[<typ>]@ keine "unknown index type"-Fehler auswirft.