Projekt

Allgemein

Profil

Index » Historie » Revision 3

Revision 2 (Patrick Schulz, 17.02.2021 14:44) → Revision 3/17 (Patrick Schulz, 17.02.2021 14:48)

h1. Index 

 h2. Auszeichnung multipler Generierung des Index 

 <pre><code class="xml"> 
 lualatex <tex-Dateiname>.tex       %% Initialer TeX-Lauf; einsammeln der ÜSen 
 lualatex <tex-Dateiname>.tex       %% Erzeugen des IHV; seitenzahlen verschieben sich ggf.  
 lualatex <tex-Dateiname>.tex       %% Zur Sicherheit...  
 ./index.sh <tex-Dateiname>         %% OHNE Endung! 
 ./index.sh <tex-Dateiname> <typ> %% Zweites, optionales Argument für Index-Typ anders als default, s.u. 
 lualatex    <tex-Dateiname>.tex      %% Index wird erstmalig ausgegeben, ÜS wird geschrieben 
 lualatex    <tex-Dateiname>.tex      %% ÜS(en) für Index(e) in IHV gerendert 
 lualatex    <tex-Dateiname>.tex      %% Zur Sicherheit... 
 </code></pre> 

 *Achtung:* Bei statischen Indexes (@<basename>.<typ>_ind@ kommt vom Konverter) darf die @index.sh@ *nicht aufgerufen* werden, da sonst die *ind-Dateien überschrieben würden! 

 h2. Multiple Indexe und deren Überschreiben der Überschriften 

 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. 

 h3. Deklaration der Index-Typen 

 Das Paket erlaubt mehrere Indexe. Diese werden mit dem \(re)newindex-Befehlen deklariert: 
 <pre><code class="text"> 
 \newindex{<typ>}{<endung rohindex>}{<endung fertiger index>}{<Überschrift>} 
 </code></pre> 
 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. 

 Der Default- oder Hauptindex kriegt das Label @default@, dessen ÜS lässt sich wie folgt überdefinieren: 
 <pre><code class="text"> 
 \renewindex{default}{idx}{ind}{Personenregister} 
 </code></pre> 
 Die Index-Einträge für diesen Index werden    mit  
 <pre><code class="text"> 
 \index{<Lemma>} 
 </code></pre> 
 deklariert. Ausgegeben wird der Hauptindex wird mit  
 <pre><code class="text"> 
 \printindex 
 </code></pre> 

 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: 
 <pre><code class="text"> 
 \newindex{o}{o_idx}{o_ind}{Ortsverzeichnis} 
 </code></pre> 
 Die Index-Einträge würden dann mit  
 <pre><code class="text"> 
 \index[o]{<Term>} 
 </code></pre> 
 deklariert, der Index mit  
 <pre><code class="text"> 
 \printindex[o] 
 </code></pre> 
 ausgegeben. 

 h3. Aufruf des Index-Skripts 

 Mit dem optionalen Argument kann angegeben werden, welcher Index generiert werden soll. Wird das optionale Argument weggelassen, wird der Hauptindex erzeugt: 
 <pre><code class="text"> 
 ./index.sh <tex-Dateiname ohne Endung> 
 </code></pre> 
 Der Aufruf mit optionalen Argument erzeugt den Neben-Index, z.B. 
 <pre><code class="text"> 
 ./index.sh <tex-Dateiname ohne Endung> o 
 </code></pre> 
 würde das Ortsverzeichnis aus o.g. Beispiel erzeugen. Das Skript muss also für jeden Index einzeln aufgerufen werden. 
 h2. Generierung des Index 

 h3. Generiung des Index surch TeX 

 Heißt: Indexeinträge sind mittels \index[<typ>]{<Lemma>} in TeX kodiert. 

 <pre><code class="xml"> 
 lualatex <tex-Dateiname>.tex       %% Initialer TeX-Lauf; einsammeln der ÜSen 
 lualatex <tex-Dateiname>.tex       %% Erzeugen des IHV; seitenzahlen verschieben sich ggf.  
 lualatex <tex-Dateiname>.tex       %% Zur Sicherheit...  
 ./index.sh <tex-Dateiname>         %% OHNE Endung! 
 ./index.sh <tex-Dateiname> <typ> %% Zweites, optionales Argument für Index-Typ anders als default, s.u. 
 lualatex    <tex-Dateiname>.tex      %% Index wird erstmalig ausgegeben, ÜS wird geschrieben 
 lualatex    <tex-Dateiname>.tex      %% ÜS(en) für Index(e) in IHV gerendert 
 lualatex    <tex-Dateiname>.tex      %% Zur Sicherheit... 
 </code></pre> 

 h3. Statische Index-Dateien 

 Heißt: @<basename>.<typ>_ind@ kommt vom Konverter 

 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.