mrunix.de  

Zurück   mrunix.de > Applikationen > LaTeX-Forum
Benutzername
Kennwort
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

LaTeX-Forum LaTeX, LyX, BibteX, PDF & Co

Antwort
 
Themen-Optionen Thema bewerten Ansicht
Alt 31-07-2010, 19:40   #1
bobmalaria
Registrierter Benutzer
 
Benutzerbild von bobmalaria
 
Registriert seit: 28.11.2006
Ort: Manchester, GB
Beiträge: 2.480
bobmalaria eine Nachricht über ICQ schicken bobmalaria eine Nachricht über Skype™ schicken
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
Angehängte Grafiken
Dateityp: png bsp1.png (17,2 KB, 125x aufgerufen)
Dateityp: png winplusR.png (20,8 KB, 123x aufgerufen)
Dateityp: png cmd.png (11,4 KB, 122x aufgerufen)
Dateityp: png cd.png (18,1 KB, 121x aufgerufen)
Dateityp: png aufruf.png (19,8 KB, 125x aufgerufen)
__________________
Mein Ball ist umgefallen

Geändert von bobmalaria (01-08-2010 um 13:19 Uhr)
bobmalaria ist offline   Mit Zitat antworten
Alt 01-08-2010, 11:36   #2
afeddersen
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.
afeddersen ist offline   Mit Zitat antworten
Alt 01-08-2010, 11:47   #3
nixversteh
Registrierter Benutzer
 
Benutzerbild von nixversteh
 
Registriert seit: 03.04.2007
Ort: Wieren
Beiträge: 258
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
__________________
Poesie ist zur Rarität verpflichtet, Sachlichkeit kann sich Wiederholungen leisten.
Novalis
nixversteh ist offline   Mit Zitat antworten
Alt 01-08-2010, 13:20   #4
bobmalaria
Registrierter Benutzer
 
Benutzerbild von bobmalaria
 
Registriert seit: 28.11.2006
Ort: Manchester, GB
Beiträge: 2.480
bobmalaria eine Nachricht über ICQ schicken bobmalaria eine Nachricht über Skype™ schicken
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
bobmalaria ist offline   Mit Zitat antworten
Alt 09-08-2010, 19:42   #5
localghost
Registrierter Benutzer
 
Benutzerbild von localghost
 
Registriert seit: 01.11.2006
Ort: Braunschweig
Beiträge: 3.053
Von der Autorin des Pakets selbst

LaTeX Community Know How Article: Glossaries, Nomenclature, Lists of Symbols and Acronyms


Thorsten
__________________
¹ Es tut mir leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² Systeme: openSUSE 11.3, TeX Live 2009, TeXworks 0.3 | Windows XP Pro (SP3), MiKTeX 2.8, TeXworks 0.3
³ Lernt gerade TeX.
localghost ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
abkürzungsverzeichnis, glossaries, nomenklatur, problem, symbolverzeichnis

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist an.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:14 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.