LaTeX: Glossar

Liebe ExpertInnen,

ich versuche ein Glossar anzulegen, renne aber vor die Wand:

\usepackage{makeglos}

\makeglossary

\glossary{name={name},description={description}}

erzeugt in der Datei .glo einen Eintrag der Form

\glossaryentry{name={{name},description={description}} {1}.
Der anschließende Aufruf von makeindex klappt nicht, weil

Index style file frame.ist not found.
Na gut, pfeif auf style, soll es doch aussehen, wie es mag, also neuer Aufruf mit Parametern:

makeindex -t frame.glg -o frame.gls frame.glo
Viel besser wird das aber auch nicht:

!! Input index error (file = frame.glo, line = 1):
– Unknown index keyword \glossaryentry.
Nothing written in frame.gls.

Da staunt der Laie - eine generierte Latex-Anweisung wird vom Latex-Makro nicht verstanden. Da \makeindex ja eh nur ein Notbehelf für das Glossar ist, habe ich weitergeforscht. Die Beschreibung von makeglos diktiert eine andere Syntax für \glossary (\glossary{name: description}), die wird aber mit der gleichen Meldung abgewiesen.

Die Suche nach .ist bzw die Frage, woher diese Datei kommen soll, führte mich zu makeglos.pl, wo in der Beschreibung steht

Whenever a glossary entry is used… A makeindex style file (ist) is also created, which is customized for the document, and can be passed to makeindex.
Nun denn - sauber installiert, aufgerufen, Ergebnis:

Index style file frame.ist not found.
Hab ich einen Knoten im Hirn? Wer weiß was?

Gruß Ralf

Lieber drambeldier,

ich versuche ein Glossar anzulegen, renne aber vor die Wand:

Nicht gut. Besser vorher anhalten :smile:

Du solltest Dir aber mal angewöhnen, vernünftige Minimalbeispiele zu posten. Oftmals kann man dann schon sehen, wo der Fehler ist. So muss man immer raten. Also, folgender Quelltext:

\documentclass[a4paper,12pt]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage{glossary}
\makeglossary
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[pdftex]{graphicx}

\begin{document}
 Hier einfach ein wenig belangloser Text. Danach das Glossar
 \glossary{name={nilpotente Matrix},description={Wenn eine Potenz einer
 Matrix die Nullmatrix ergibt, dann ist diese Matrix nilpotent}}

 \printglossary
\end{document}

produziert nach folgenden Aufrufen:

latex 
makeindex -s -t -o 
latex 

welche Fehlermeldungen bei Dir und was klappt daran nicht? Zur Erklärug: Der erste LaTeX-Lauf erzeugt die .glo Datei und die .ist Datei. Letztere ist keine „Kür“ im Sinne von „soll hübsch aussehen“, sondern definiert wichtige Schlüsselwörter. Ohne diese kommt makeindex nicht mit einem Glossar klar, wie Du selbst beobachten durftest. „glossaryentry“ und ein paar Andere Sachen sind dann nämlich nicht definiert.

Diese „.ist“ Datei wird normalerweise automatisch generiert und hat den gleichen Namen, wie das Hauptdokument, was Du mit latex aufgerufen hast. Warum konnte die bei Dir nicht gefunden werden? Evtl. ein Verzeichnisproblem? D.h. gibt es irgendwelche obskuren Unterverzeichnisse, von denen aus Du die Aufrufe machst? Nutzt Du eine mehr oder weniger komische „GUI“ für LaTeX?

Weiter im Text. Der anschließende Aufruf von „makeindex“ erzeugt die .ind und .ilg Dateien. Letztere ist nur ein Logfile und wird allenfalls bei Problemen benötigt, zur genaueren Diagnose.

Der zweite LaTeX Aufruf verwendet dann die vorhandene .ind Datei und generiert damit an der Stelle, wo der Befehl \printglossary steht, das Glossar. Der darf übrigens auch am Anfang oder sonstwo stehen, muss also nicht unbedingt am Ende stehen.

\usepackage{makeglos}

Das Paket heisst bei mir „glossary“. Wo hast Du das „makeglos“ her? Wie dem auch sei, für deutsche Texte ist das nicht unbedingt ideal. Ich würde mir mal das Paket „nomencl“ anschauen. Siehe dazu auch die TeX FAQ No. 7.1.17: Wie erstelle ich ein Glossar? http://www.dante.de/faq/de-tex-faq/html/makros3.html#30

Die Suche nach .ist bzw die Frage, woher diese Datei kommen
soll, führte mich zu makeglos.pl

makeglos.pl ist nur eine Vereinfachung für den „makeindex“ Aufruf, damit Du Dir nicht all die Parameter merken musst. Es ist nur ein „nice to have“ und für die ersten Gehversuche eher hinderlich, weil es eben den Aufruf von makeindex „versteckt“.

Hab ich einen Knoten im Hirn?

Dafür sind wir nicht zuständig. Frag mal im Medizinerbrett.

Gruß

Fritze

Nachtrag: makeglos-Paket
Donnerwetter,

da habe ich doch glatt selbst in der FAQ den Hinweis auf „makeglos“ übersehen. Das Paket gibt es tatsächlich. Ich habe es aber noch nie verwendet. Da musst Du dann selbst mal die Anleitung wälzen, scheint „glossary“ sehr ähnlich zu sein.

Gruß

Fritze

Nachtrag: Macro reference
Moin, Fritze,

bei meiner Irrfahrt durch die Latex-Welt finde ich etwa 1328 Referencen zu Latex selbst, aber kein einziges Verzeichnis der Makros. Mir ist schon klar, dass so etwas nicht einfach zu organisieren ist, schließlich kann jeder, der’s kann, heute noch ein neues Makro schreiben, aber gibt es denn keine Sammlung derer, die sich bewährt haben?

Gruß Ralf

ps: Als der Übersetzer die Zeile \usepackage{glossary} fand, frug er sofort, ob er die glossary.sty nachladen sollte. Sieht so aus, als steckte in \usepackage{makeglos} keine explizite Referenz auf die glossary.sty, obwohl sie da offensichtlich ebenfalls benötigt wird.

Moin moin,

bei meiner Irrfahrt durch die Latex-Welt finde ich etwa 1328
Referencen zu Latex selbst, aber kein einziges Verzeichnis der
Makros. Mir ist schon klar, dass so etwas nicht einfach zu
organisieren ist, schließlich kann jeder, der’s kann, heute
noch ein neues Makro schreiben, aber gibt es denn keine
Sammlung derer, die sich bewährt haben?

Klar gibts die. Auf jedem CTAN mirror z.B. bei DANTE: http://dante.ctan.org/CTAN/macros/latex/contrib/

Im Verzeichnisbaum eins höher findest Du eigentlich so ziemlich alles sinnvolle zur LaTeX Grundinstallation.

ps: Als der Übersetzer die Zeile \usepackage{glossary} fand,
frug er sofort, ob er die glossary.sty nachladen sollte. Sieht
so aus, als steckte in \usepackage{makeglos} keine explizite
Referenz auf die glossary.sty, obwohl sie da offensichtlich
ebenfalls benötigt wird.

Nein. das „makeglos“ Paket ist unabhängig vom „glossary“ Paket.

Gruß

Fritze

1 „Gefällt mir“

Danke* (owT)