Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Tip: Glossaries Paket - was oft falsch läuft

  1. #1
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174

    Tip: Glossaries Paket - was oft falsch läuft

    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:

    1. Ich kenne das "glossaries" Paket noch gar nicht, was muss ich tun?
    2. Ich glaube ich habe den Code richtig, aber es wird kein Verzeichnis erstellt?
    3. Ich möchte mehr als ein Verzeichnis haben, wie geht das?
    4. 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.

    Code:
    \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


    "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)



    CMD eingeben



    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).



    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.



    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

    Code:
    %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

    Code:
    \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?



    Die Entsprechende Ausgabe ist dann hier zu sehen




    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
    Code:
    makeindex -s myDoc.ist -t myDoc.glg -o myDoc.gls myDoc.glo
    oder im Fall unseres Symbolverzeichnisses

    Code:
    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.



    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
    Geändert von bobmalaria (01-08-2010 um 14:19 Uhr)
    Mein Ball ist umgefallen

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.07.2010
    Beiträge
    55
    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.

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.04.2007
    Ort
    Wrestedt
    Beiträge
    987

    Glossaries

    Zitat Zitat von afeddersen Beitrag anzeigen
    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
    Der aus Büchern erworbene Reichtum fremder Erfahrung heißt Gelehrsamkeit. Eigene Erfahrung ist Weisheit. Das kleinste Kapital von dieser ist mehrt wert, als Millionen von jener.

    Gotthold Ephraim Lessing

  4. #4
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    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
    Mein Ball ist umgefallen

  5. #5
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •