Klassische Methode mit MakeIndex/Xindy:
---------------------------------------
Man kann beispielsweise das Paket `imakeidx` hinzufügen und den Index damit erzeugen:
% Übersetzung:
% arara: pdflatex
% arara: clean: { extensions: [acn, acr,alg, aux, glg, glo, gls, ist, out, slg, syg, syi, toc ] }
\documentclass{scrartcl} % scrreprt
\usepackage[utf8]{inputenc} %Dateikodierung
\usepackage[T1]{fontenc} % Aktiviert EC-Schriftarten
%\usepackage{textcomp} % Text-Companion-Symbols (z. B. \texteuro)
\usepackage[ngerman]{babel} % Deutsche Einstellungen
\usepackage{lmodern}
\usepackage{microtype}
%\usepackage[ngerman]{translator}
%Paket laden
%\usepackage{makeidx}
\usepackage[%stylemods={bookindex}, %record,
nonumberlist, %keine Seitenzahlen anzeigen
shortcuts, % Abkürzungen für Befehle aktivieren
acronym, %ein Abkürzungsverzeichnis erstellen
toc, %Einträge im Inhaltsverzeichnis
section, %im Inhaltsverzeichnis auf section-Ebene erscheinen
automake, % automatisch MakeIndex aufrufen
]{glossaries-extra}
\usepackage{glossary-mcols} % mehrspaltige Verzeichnisse
\usepackage{glossary-longbooktabs} % Tabellenverzeichnisse
\usepackage{imakeidx}
\makeindex
\usepackage[
colorlinks=true, % zur Hervorhebung
pdfborder={0 0 0},
]{hyperref}% Als letztes Paket laden!!!
% Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}
%Ein eigenes Symbolverzeichnis erstellen
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
%Glossar-Befehle anschalten (muss nach \newglossary stehen)
\makeglossaries
%Symbole ==================================
\newglossaryentry{symb:Pi}{type=symbolslist,
name=$\pi$,
description={Kreiszahl; Näherungswert: $\pi \approx 3.14$},
sort=pi
}
\newglossaryentry{symb:Alpha}{type=symbolslist,
name=$\alpha$,
description={irgendein Winkel.},
sort=alpha
}
\newglossaryentry{symb:Hamilton}{type=symbolslist,
name=$\hat{H}$,
description={Hamilton-Operator.},
sort=hamilton
}
%Abkürzungen ===============================
\newacronym{bzw}{bzw.}{beziehungsweise}
\newacronym{bspw}{bspw.}{beispielsweise}
\newacronym{oa}{o.ä.}{oder ähnliche(r, s)}
\newacronym{MS}{MS}{Microsoft}
\newacronym{CD}{CD}{Compact Disc}
% Glossareinträge ==============================
\newacronym{HTML}{HTML}{\glslink{glos:HTML}{Hypertext Markup Language}}
\newglossaryentry{glos:HTML}{
name=HTML,
description={Die Hypertext Markup Language (englisch für \emph{Hypertext-Auszeichnungssprache}), kurz \acs{HTML}, ist eine textbasierte Auszeichnungssprache zur Strukturierung elektronischer Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten.}
}
\newglossaryentry{glos:AntwD}{name=Antwortdatei, description={Informationen zum
Installieren einer Anwendung oder des Betriebssystems.}
}
\begin{document}
\glsaddallunused % optional: auch ungenutze Einträge anzeigen
\tableofcontents{}
\section{Abkürzungen und Glossareinträge}
Die Webseite\index{Webseite} ist mit der \gls{HTML} geschrieben\index{schreiben}. \gls{HTML} ist dafür ein üblicher\index{ueblich@üblich} Standard\index{Standard}. \par
Die Abkürzung\index{Abkuerzung@Abkürzung} \acs{bzw} soll auch bei erstmaliger Verwendung\index{Verwendung} abgekürzt aufgeführt werden, also nicht ausgeschrieben \glsdesc{bzw} und auch nicht in der Form\index{Form} \gls{bzw}. \par
\Gls{bspw} soll am hier groß gesetzt werden, im Unterschied\index{Unterschied} zu \gls{bspw} \par
Die Abkürzung\index{Abkuerzung@Abkürzung} \gls{oa} enthält einen Umlaut\index{Umlaut}.
\section{Symbole}
Berechnungen\index{Berechnung} mit \gls{symb:Pi} ergeben stets ein ungenaues
Ergebnis\index{Ergebnis},
denn \glslink{symb:Pi}{die Kreiszahl} ist eine irrationale Zahl\index{Zahl}. Weiterhin gibt es noch \gls{symb:Alpha} und \gls{symb:Hamilton}.
% Verzeichnisse ==============================
\newpage
%Glossar ausgeben
\printglossary[style=altlist,title=Glossar]
%Abkürzungen ausgeben
\renewcommand{\glsmcols}{3}
%\setglossarystyle{mcolindexspannav} % so globaler Style
\printglossary[type=\acronymtype,
style={mcolindexspannav}, % so nur lokaler Style
title=Abkürzungsverzeichnis]
%Symbole ausgeben
\printglossary[type=symbolslist,
style=long-booktabs,
]
\printindex
\end{document}
Dank Verwendung von Option `automake` für `glossaries-extra` kann man übrigens die `arara`-Präambel deutlich kürzen und das ganze funktioniert dann statt mit dem Aufruf »`arara test-imakeidx`« (vorausgesetzt die Datei wurde als `test-imakeidx.tex` gespeichert, anderenfalls müsste man `test-imakeidx` entsprechend ersetzen) auch recht einfach ohne `arara`.
`arara` einfach per »`pdflatex test-imakeidx.tex`«. Den Aufruf von MakeIndex erledigt das Paket `imakeidx` selbst.
Ergebnis ist dann:
[![Glossar und Index][1]][2]
---
Alternative Methode mit `glossaries-extra` + `bib2gls`:
-------------------------------------------------------
Man kann auch `glossaries-extra` selbst für den Index verwenden. In dem Fall bietet sich die Verwendung von [`bib2gls`](https://ctan.org/pkg/bib2gls) an. Im Gegensatz zum üblichen Vorgehen zur Erstellung eines Index, verwendet man dabei im Text keine `\index`-Befehle mehr, sondern arbeitet mit `\gls`. Die Index-Einträge selbst erzeugt man mit Hilfe einer Datenbankdatei im `bib`-Format. Das Format ist in der `bib2gls`-Anleitung näher beschrieben. Vorteilhaft wäre dann, wenn alle Glossare mit `bib2gls` erzeugt würden. Im ersten Schritt kann aber auch in einer Art Hybridmodus gearbeitet werden, dazu verwendet man Option `record={alsoindex}`. Zusätzlich benötigt man Option `index`, damit ein neuer Glossar-Typ `index` erzeugt wird, sowie weitere Optionen wie `stylemods`. Die Bibliotheksdatei deklariert man mit `\GlsXtrLoadResource`. Natürlich darf man Option `nonumberlist` nicht mehr global verwenden, wenn ein Index erzeugt werden soll, der ja üblicherweise durchaus Seitenzahlen enthalten soll. Ein sehr einfaches Beispiel könnte dann so aussehen:
% Übersetzung:
% arara: pdflatex
% arara: pdflatex
% arara: makeglossaries
% arara: bib2gls
% arara: pdflatex
% arara: clean: { extensions: [acn, acr,alg, aux, glg, glo, gls, ist, out, slg, syg, syi, toc, idx, ind, log, ilg, glstex ] }
\begin{filecontents*}{\jobname-index.bib}
@index{Webseite}
@index{schreiben}
@index{geschrieben,
alias={schreiben}
}
@index{Standard}
@index{Abkuerzung,name={Abkürzung},text={Abkürzung}}
@index{Verwendung}
@index{Form}
@index{Unterschied}
@index{Umlaut}
@index{Berechnungen}
@index{Ergebnis}
@index{Zahl}
\end{filecontents*}
\documentclass{scrartcl} % scrreprt
\usepackage[utf8]{inputenc} %Dateikodierung
\usepackage[T1]{fontenc} % Aktiviert EC-Schriftarten
%\usepackage{textcomp} % Text-Companion-Symbols (z. B. \texteuro)
\usepackage[ngerman]{babel} % Deutsche Einstellungen
\usepackage{lmodern}
\usepackage{microtype}
%\usepackage[ngerman]{translator}
%Paket laden
%\usepackage{makeidx}
\usepackage[%
record={alsoindex},
index,
stylemods={bookindex},
style=altlistgroup,
shortcuts, % Abkürzungen für Befehle aktivieren
acronym, %ein Abkürzungsverzeichnis erstellen
toc, %Einträge im Inhaltsverzeichnis
section, %im Inhaltsverzeichnis auf section-Ebene erscheinen
]{glossaries-extra}
\GlsXtrLoadResources[
src={\jobname-index},
type=index,
]
\usepackage{glossary-mcols} % mehrspaltige Verzeichnisse
\usepackage{glossary-longbooktabs} % Tabellenverzeichnisse
\usepackage[
colorlinks=true, % zur Hervorhebung
pdfborder={0 0 0},
]{hyperref}% Als letztes Paket laden!!!
% Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}
%Ein eigenes Symbolverzeichnis erstellen
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
%Glossar-Befehle anschalten (muss nach \newglossary stehen)
%\makeglossaries
%Symbole ==================================
\newglossaryentry{symb:Pi}{type=symbolslist,
name=$\pi$,
description={Kreiszahl; Näherungswert: $\pi \approx 3.14$},
sort=pi
}
\newglossaryentry{symb:Alpha}{type=symbolslist,
name=$\alpha$,
description={irgendein Winkel.},
sort=alpha
}
\newglossaryentry{symb:Hamilton}{type=symbolslist,
name=$\hat{H}$,
description={Hamilton-Operator.},
sort=hamilton
}
%Abkürzungen ===============================
\newacronym{bzw}{bzw.}{beziehungsweise}
\newacronym{bspw}{bspw.}{beispielsweise}
\newacronym{oa}{o.ä.}{oder ähnliche(r, s)}
\newacronym{MS}{MS}{Microsoft}
\newacronym{CD}{CD}{Compact Disc}
% Glossareinträge ==============================
\newacronym{HTML}{HTML}{\glslink{glos:HTML}{Hypertext Markup Language}}
\newglossaryentry{glos:HTML}{
name=HTML,
description={Die Hypertext Markup Language (englisch für \emph{Hypertext-Auszeichnungssprache}), kurz \acs{HTML}, ist eine textbasierte Auszeichnungssprache zur Strukturierung elektronischer Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten.}
}
\newglossaryentry{glos:AntwD}{name=Antwortdatei, description={Informationen zum
Installieren einer Anwendung oder des Betriebssystems.}
}
\makeglossary
\begin{document}
\glsaddallunused % optional: auch ungenutze Einträge anzeigen
\tableofcontents{}
\section{Abkürzungen und Glossareinträge}
Die \gls{Webseite} ist mit der \gls{HTML} \gls{geschrieben}. \gls{HTML} ist dafür ein üblicher \gls{Standard}. \par
Die \gls{Abkuerzung} \acs{bzw} soll auch bei erstmaliger \gls{Verwendung} abgekürzt aufgeführt werden, also nicht ausgeschrieben \glsdesc{bzw} und auch nicht in der \gls{Form} \gls{bzw}. \par
\Gls{bspw} soll am hier groß gesetzt werden, im \gls{Unterschied} zu \gls{bspw} \par
Die \gls{Abkuerzung} \gls{oa} enthält einen \gls{Umlaut}.
\section{Symbole}
\gls{Berechnungen} mit \gls{symb:Pi} ergeben stets ein ungenaues
\gls{Ergebnis},
denn \glslink{symb:Pi}{die Kreiszahl} ist eine irrationale \gls{Zahl}. Weiterhin gibt es noch \gls{symb:Alpha} und \gls{symb:Hamilton}.
% Verzeichnisse ==============================
\newpage
%Glossar ausgeben
\printglossary[nonumberlist,
style=altlist,title=Glossar]
%Abkürzungen ausgeben
\renewcommand{\glsmcols}{3}
%\setglossarystyle{mcolindexspannav} % so globaler Style
\printglossary[nonumberlist,
type=\acronymtype,
style={mcolindexspannav}, % so nur lokaler Style
title=Abkürzungsverzeichnis]
%Symbole ausgeben
\printglossary[nonumberlist,
type=symbolslist,
style=long-booktabs,
]
\printunsrtglossary[type=index,style=bookindex,title=Stichwortverzeichnis]
\end{document}
Beim Aufruf mit `arara` »`arara test`«, wobei vorstehender Quellcode als `test.tex` zu speichern war, bekommt man die Terminal-Ausgabe:
__ _ _ __ __ _ _ __ __ _
/ _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
\__,_|_| \__,_|_| \__,_|
Processing 'test.tex' (size: 4 KB, last modified: 02/19/2019
21:10:26), please wait.
(PDFLaTeX) PDFLaTeX engine .............................. SUCCESS
(PDFLaTeX) PDFLaTeX engine .............................. SUCCESS
(MakeGlossaries) The MakeGlossaries software ............ SUCCESS
(Bib2Gls) The Bib2Gls software .......................... SUCCESS
(PDFLaTeX) PDFLaTeX engine .............................. SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
(Clean) Cleaning feature ................................ SUCCESS
Total: 5.40 seconds
(Zeitangabe natürlich abhängig vom Rechner). Das Ergebnis wäre dann:
[![Ergebnis mit bib2gls][3]][3]
Natürlich kann man auch das ohne `arara` machen, indem man »`pdflatex test`«, »`makeglossaries test`« und »`bib2gls test`« in der Reihenfolge ausführt, die in den Kommentaren am Anfang der Datei angegeben ist.
Stellt man auch die anderen Glossare auf `bib2gls` um (was durchaus empfehlenswert wäre), so ersetzt man `record={alsoindex}` durch `record`, lässt `\makeglossary` weg und entfernt auch den Aufruf von `makeglossaries`. Beispiele für die Erzeugung verschiedener Glossar-Arten mit `bib2gls` finden sich sowohl im Quelltext als auch als Ergebnis-PDF im `exsamples`-Verzeichnis zu `bib2gls` (im `doc`-Zweig des TEXMF-Baums). Für die Formatierung und weitere Einstellungen des mit `bib2gls` erzeugten Verzeichnisses sei ausdrücklich auf die Anleitung verwiesen.
[1]: https://texwelt.de/wissen/upfiles/test_20190219_173130.png
[2]: https://texwelt.de/wissen/upfiles/test_20190219_173130.png
[3]: https://texwelt.de/wissen/upfiles/test_20190219_194309.png