PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tip: Glossaries Paket - was oft falsch läuft



bobmalaria
31-07-2010, 20:40
Hallo zusammen,

sehr oft wird das glossaries Paket empfohlen um ein Abkürzungsverzeichnis, Symbolverzeichnis, Nomenklaturverzeichnis usw. zu erstellen. Dabei kommt es immer wieder zu den gleichen Fragen. Deshalb habe ich im folgenden Versucht bekannte Fragen die ich immer wieder beantworte in einem Thema zusammenzufassen:


Ich kenne das "glossaries" Paket noch gar nicht, was muss ich tun?
Ich glaube ich habe den Code richtig, aber es wird kein Verzeichnis erstellt?
Ich möchte mehr als ein Verzeichnis haben, wie geht das?
Ich habe was von " 'makeindex aufruf' anpassen" gelesen, was bedeutet das?


1. Ich kenne das "glossaries" Paket noch gar nicht, was muss ich tun?

Teste einfach mal folgendes Minimalbeispiel. In diesem wird ein Verzeichnis erstellt das nur einen Begriff enthält.


\documentclass{article}

%Laden des Paketes
\usepackage{glossaries}
\makeglossaries

%Unser Testeintrag
\newglossaryentry{wbrot}{name=Wurstbrot,
description={Lecker gebackener Hefeteig mit verwurstetem Tier}}

\begin{document}

%den Begriff im Text verwenden
\gls{wbrot}

%Ausgabe des Verzeicnisses
\printglossary[title=Unser Testglossar]

\end{document}

Wir sehen, dass 'wbrot' das Label ist auf das wir später im text mit dem \gls{label} befehl zugreifen können. Was wir bei name= und description= angeben, kommt später ins Verzeichnis.

Die Ausgabe ist in nachfolgendem Screenshot zu sehen
http://www.mrunix.de/forums/attachment.php?attachmentid=3868&d=1280597282

"Stop" wirst Du jetzt sagen, "bei mir gibt es noch gar kein Verzeinis!?".
Damit sind wir schon beim größten Problem, lies einfach weiter in Abschnitt 2.


2. Ich glaube ich habe den Code richtig, aber es wird kein Verzeichnis erstellt?

Du kompilierst obiges Beispiel oder Dein eigenes und es werden keine Fehler angezeigt aber trotzdem siehst Du kein Verzeichnis? - makeindex ist Dein Problem. makeindex ist ein kleines Programm das schon bei Dir installiert ist (in jeder LaTex Distrubution), leider stimmen die Argumente die an makeindex übergeben werden noch nicht.

Das glossaries Paket kommt automatisch mit einem tollen Perl Skript um uns davon zu erlösen am makeindex Aufruf herumzupfuschen. Linux User sind hier fein, raus sie können Perl-Skripte ausführen. Windows Nutzer müssen sich zusätzlich einen Perl-interpreter installieren.
Bist Du Windows Nutzer, dann installiere dir Active Perl (kostenlose Software)

http://www.activestate.com/activeperl/downloads (Active Perl Community Edition)

Nach der Installation kannst jetzt auch Du Perl-Skripte aufrufen (olé).

Öffne jetzt die Eingabeauffoderung/Kommandozeile mit Windowstaste + R (ich beschreibe das hier für Windows, Linux User haben sehr ähnliche Befehle, im Zweilfel sind die Befehle zu er-googeln)

http://www.mrunix.de/forums/attachment.php?attachmentid=3869&d=1280598681

CMD eingeben

http://www.mrunix.de/forums/attachment.php?attachmentid=3870&stc=1&d=1280595424

In dem sich öffnenden Fesnter in das Verzeichnis navigieren in dem sich die Tex-Datei befindet. Meine ist in C:\Tex_Dokumente\testprojekt2\glossaries.
cd\ bringt uns in die Oberste Dateiebende
cd.. Wechselt zum nächt höheren Ordner
cd Ordnername bringt uns in den Ordner
Tab hilft uns Wörter zu vervollstängen die wir angefangen haben zu schreiben(Schreibersparnis).

http://www.mrunix.de/forums/attachment.php?attachmentid=3871&stc=1&d=1280595870

Jetzt bleibt uns nur doch das Skript aufzurufen. Meine Hauptdatei heißt LaTex1.tex. Also muss ich makeglossaries LaTeX1 eingeben (ohne Dateiendung). Das Skript wird ausgeführt und gibt ein Protokoll aus.

http://www.mrunix.de/forums/attachment.php?attachmentid=3872&stc=1&d=1280596281

Du siehst das ein Eintrag akzeptiert wurde und null Einträge abgewiesen wurden. Perfekt.

Jetzt noch einmal das Dokument kompilieren und das Verzeichnis ist da!
Ist Dir das zu kompliziert, dann schaue dir Abschnitt 4 an. Bedenke aber, dass diese Methode sehr praktisch ist, vor allem bei mehreren Verzeichnissen.
Natürlich lässt sich der ganze Aufruf auch von einem Skript erledigen, das würde aber den Rahmen hier sprengen.

3. Ich möchte mehr als ein Verzeichnis haben, wie geht das?

glossaries hat einen Vordefinierten Verzeichnistyp 'main' und per Option kann man einen weiteren ('Acronym') hinzufügen.

Ein Symbolverzeichnis könnte man z.B. so erstellen



%Allgemeine definition
%\newglossary[⟨log-ext⟩]{⟨name⟩}{⟨in-ext⟩}{⟨out-ext⟩}{⟨title⟩}[⟨counter⟩]

%Unsere Definition für ein Symbolverzeichnis
\newglossary[svl]{symbols}{svi}{svo}{Symbolverzeichnis}


svl ist die Endung der log-Datei
svi ist die Datei die vom makeglossaries Skript gelesen wird
svo ist die Datei die dann für dieAusgabe gelesen wird
Symbolverzeichnis ist der Standardname unseres Verzeichnis

Das Beispiel aus Abschnitt 1 könnte man dann so erweitern


\documentclass{article}
\usepackage[ngerman]{babel}
%Laden des Paketes
\usepackage{glossaries}
\newglossary[svl]{symbols}{svi}{svo}{Symbolverzeichnis}
\makeglossaries

%Unser Testeintrag
\newglossaryentry{wbrot}{name=Wurstbrot,
description={Lecker gebackener Hefeteig mit verwurstetem Tier}}

%Unser Testeintrag Symbolverzeichnis
\newglossaryentry{Dichte}{type=symbols,name={$\rho $},
sort=rho,description={Dichte von irgendwas}}

\begin{document}
%den Begriff im Text verwenden
\gls{wbrot}, \gls{Dichte}

%Ausgabe des Verzeicnisses
\printglossary[title=Unser Testglossar]
\printglossary[title=Unser Testsymbolverzeichnis,type=symbols]

\end{document}

Im neuen Eintag "Dichte" geben wir mit type=symbols an in welchem Verzeichnis der Eintrag landen soll. Ausserdem geben wir noch sort=rho an. Mathematische zeichen ($\rho$) könnten sonst ungewünscht sortiert werden.

Natürlich muss das makeglossaries Skript wieder aufgerufen werden. Es erkennt jetzt automatisch unser neues Verzeichnis! Wie toll ist das denn?

http://farm5.static.flickr.com/4082/4848670373_629e9c8424.jpg

Die Entsprechende Ausgabe ist dann hier zu sehen

http://farm5.static.flickr.com/4097/4848670437_82ee773fc8.jpg


4. Ich habe was von " 'makeindex aufruf' anpassen" gelesen, was bedeutet das?

makeindex ist das Programm das die Einträge sortiert. Es ist in jeder LateX Distubution bereits enthalten. Wenn man es mit dem glossaries Paket verwendet muss man makeindex ein paar Argumente mitgeben. Das muss man entweder in der Eingabeaufforderung machen (siehe Abschnitt 2) oder man richtet eine Prozedur im Editor ein.
Da es viele Editoren gibt kann ich hier nicht beschreiben wie man das im Einzelfall macht.

Ich empfehle jedem die Verwendung des makeglossaries Perl-Skripts, wie in Abschnitt 2 beschrieben.

Generell würde man das Verzeichnis so aufrufen

makeindex -s myDoc.ist -t myDoc.glg -o myDoc.gls myDoc.glo

oder im Fall unseres Symbolverzeichnisses


makeindex -s LaTex1.ist -t LaTex1.svl -o LaTex1.svi LaTex1.svo

Diese Befehl(e) müssen dann in der Kommandozeile oder als Nachbearbeitungsprozedur im Editor eingegeben werden. Als Beispiel Zeige ich im folgenden die Erstellung des Hauptglossars aus dem Beispiel in Abschnitt 1.

http://farm5.static.flickr.com/4136/4849323678_4bbb3a86b1.jpg

Bitte hier nicht Deine Probleme posten, öffne ein neues, individuelles Thema

Ich hoffe das hilft dem ein oder anderen. Bitte schaut auch in die Dokumentation zu diesem Paket. Es kann noch so viel mehr...

Gruss

afeddersen
01-08-2010, 12:36
Gigantisch!!
Das hat bestimmt viel Arbeit gemacht!
Ich bin Dir sehr dankbar dafür und ich bin sicherlich nicht alleine.
Dieser Beitrag sollte IMHO irgendwie "sticky" gemacht werden.

nixversteh
01-08-2010, 12:47
Gigantisch!!
Das hat bestimmt viel Arbeit gemacht!
Ich bin Dir sehr dankbar dafür und ich bin sicherlich nicht alleine.
Dieser Beitrag sollte IMHO irgendwie "sticky" gemacht werden.

Hallo folks,

dem schließe ich mich an, danke für die Mühe.

Gruß

Martin

bobmalaria
01-08-2010, 14:20
Hi,

ich habe jetzt noch ein paar Bilder hinzugefügt. Diese musste ich leider auf Flickr hochladen da hier im Forum nur 5 Anhänge möglich sind. Ich denke aber das der Link permanent sein sollte.

Gruss

localghost
09-08-2010, 20:42
LaTeX Community Know How Article: Glossaries, Nomenclature, Lists of Symbols and Acronyms (http://www.latex-community.org/index.php?option=com_content&view=article&id=263%3Aglossaries-nomenclature-lists-of-symbols-and-acronyms&catid=55%3Alatex-general&Itemid=112)


Thorsten