PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Glossar, "glossaries"-Paket und die große Verzweiflung!



DDG
02-08-2007, 13:06
Hallo,

ich sitze jetzt schon 2 Tage dabei so ein (verfluchtes) Glossar zu erstellen. Anfangs habe ich "glossary" verwendet, aber da dieses Paket veraltet ist, wollte ich nun das "glossaries"-Paket verwenden. Aber ich bekomme selbst mit der "glossaries.pdf" kein Minimalbeispiel hin, das auch funktioniert.

Wäre toll wenn jemand irgendein Beispiel hierfür zur Verfügung hat.

Ich spende Euch einen Großen Dank
Denny

bobmalaria
02-08-2007, 13:32
hi,

5 minuten studium der anleitung haben bei mir gereicht und es funktionierte.
leider hast du nicht geschrieben welche fehlermeldung du erhältst.

nunja, hier nochmal schritt für schritt:



\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{blindtext}
\usepackage{microtype}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries

\newglossaryentry{perl}{name=Perl,
description=A scripting language}

\newglossaryentry{elite}{name={Elite},
description={select group or class}}


\begin{document}

\gls{perl}
\gls{elite}
\printglossaries

\end{document}

dann folgender aufruf:

(pdf)latex deindokument.tex
ausführen der deindokument.bat die vom paket in das projektverzeichnis geschrieben wird
(pdf)latex deindokument.tex


voila

DDG
02-08-2007, 14:29
Hallo,

vielendank für Deine schnelle Antwort. Wenn ich die Pakete "blindtext" und "microtype" bei mir auskommentiere (da ich diese nicht habe), funktioniert das ganze tatsächlich. Es war mehr oder weniger nur ein struktureller Fehler meinerseits.

-> Vielen Dank <-

Denny

bobmalaria
02-08-2007, 14:42
ja entschuldige. die beiden pakete habe ich immer drin. blindtext aus testzwecken und microtype damit es besser aussieht (empfehlenswertes paket)

gruß

bischi
02-08-2007, 14:48
und microtype damit es besser aussieht (empfehlenswertes paket)

Das kannte ich auch noch nicht :D

MfG Bischi

bobmalaria
03-08-2007, 01:19
hi,

du kanntest das paket echt nicht? ich bin erst hier im forum mal darauf gestossen. wenn du mal einen test mit \Blinddocument machst, wirst du feststellen, das durch microtype anderst umbrochen wird.
es sieht dann irgendwie..., angenehmer aus (noch angenehmer :rolleyes:)

gruß

heinbloed
03-08-2007, 12:30
(Mac OS X, Textmate)

hi,

ausführen der deindokument.bat die vom paket in das projektverzeichnis geschrieben wird



Also, da hab ich nochmal ne Frage: Die Dokumentation des Pakets sagt ja, ich soll immer dieses "makeglossaries"-Skript ablaufen lassen.
(Mach ich auch, ist aber irgendwie aktig ...)

Das scheinst du aber nicht zu meinen...
Also, mein Glossaries-Paket hat da niks rumgeschoben. Oder meinst du vielleicht ein anderes Projektverzeichnis?

-----
Ne andere Frage (endlich mal jemand, der sich mit Glossaries beschäftigt):
Wie formatiere ich die erste Erscheinung eines Begriffes aus dem Glossar im text? Z.B. unterstreichen?
In der Dokumentation habe ich \glsdisplayfirst gefunden, aber das kriege ich bisher nicht hin..

Danke im voraus
Hein

bobmalaria
03-08-2007, 12:58
(Mac OS X, Textmate)


Also, da hab ich nochmal ne Frage: Die Dokumentation des Pakets sagt ja, ich soll immer dieses "makeglossaries"-Skript ablaufen lassen.
(Mach ich auch, ist aber irgendwie aktig ...)

Das scheinst du aber nicht zu meinen...
Also, mein Glossaries-Paket hat da niks rumgeschoben. Oder meinst du vielleicht ein anderes Projektverzeichnis?



hm, ich verstehe nicht ganz was du meinst.
also beim ersten latex lauf schreibt das glossaries paket (für windows nutzer!) eine bat datei in das selbe verzeichnis indem sich die *.tex datei befindet (für linux & co --> doku). da man meist für arbeiten ein eigenes projekt anlegt, meinte ich mit projektverzeichnis eben den speicherort der tex-datei.

wo hab ich den was von verschieben geschrieben?

zu deiner 2. frage.

auf seite 28 unten in der anleitung steht wie man die dinge im text anpassen kann.
ich habe folgendes meinem obigen code in der preambel hinzugefügt:


\renewcommand{\glsdisplayfirst}[4]{\textbf{#1}~#2}
\renewcommand{\glsdisplay}[4]{\textbf{#1}}

da ich nie in dokumenten unterstreiche ;) hab ich jetzt folgendes gemacht. der begriff in meinem bsp. PERL wird immer fett gedruckt. beim ersten aufruf des begriffes über \gls{perl} wird zusätzlich noch die beschreibung hinzugefügt (2. optionales argument)
ich denke, es wäre kein problem, den fett-befehl durch einen unterstreichen-befehl zu erstetzen.

gruß

ps:
(endlich mal jemand, der sich mit Glossaries beschäftigt) bis gestern habe ich das auch noch nie gemacht :D

heinbloed
03-08-2007, 13:45
Also...

ich habs erstmal in meine Preambe gepackt - aber noch hat sich nichts getan.
Ich werd mich später nochmal drum kümmern - nur schon mal danke.

bobmalaria
03-08-2007, 15:33
hi,

habe jetzt mit dem paket soul deinen wunsch erfüllt das das wort unterstrichen ist.

siehe anhang.

gruß

heinbloed
04-08-2007, 02:13
Hi Bobmalaria,

ich hab dein Beispiel zum Laufen bekommen - und ja, ich will es nicht wirklich unterstreichen, aber irgendwie hervorheben... mal sehen, hyperreffen halt.

Ich hatte die Frage auch auf der deuschen Mailingliste comp.text.tex gestellt, daraufhin hat mir die Entwicklerin des Packages geantwortet - und inzwischen das Paket neu geschrieben ;-) Richtig krass.
http://tinyurl.com/3avrhe >> Ihre Antwort und wie es neu zu formatieren ist.



I've updated the glossaries package. It now defines the command
\glstextformat to display the link text, so the following with work:
\renewcommand*{\glstextformat}[1]{\underline{#1}}


Soweit

LeFreak!
06-08-2007, 13:21
ich möchte das Paket Glossaires auch verwenden nur leider bekomme ich folgende Fehlermeldung:


File 'glossaries.sty' not found

normalerweise müsste er mich doch fragen wo ich das paket habe, bzw. wo mein Editor das runterladen kann...

so füge ich das Paket ein:

\usepackage{glossaries}

heinbloed
06-08-2007, 13:28
kommt auf dein System an, wo es hin muss.
Bei mir muss das Paket in das Verzeichnis texmf, das wirst du sicherlich auch bei dir finden. (oder such doch mal nach anderen *.sty Dateien)

und da kannst du dann das glossaries-verzeichnis hinschieben (zumindest lief das bei mir so (Mac Os X)

Richtig eingefügt hast du's ja

LeFreak!
06-08-2007, 13:37
ich hab definitiv kein glossaries paket runtergeladen.
ich hatte nur vorher das Paket glossary runtergeladen, vielleicht brauch ich dazu ne neue miketex version?
habe 2.5

heinbloed
06-08-2007, 13:42
Dann lad es Dir doch runter.
Wenn du es denn nutzen willst.

http://theoval.cmp.uea.ac.uk/~nlct/latex/packages/index.html#glossaries - siehe auch meinen Post zwei drüber, da ist der Link in eine andere Diskussion mit der Entwicklerin dieses Pakets.

LeFreak!
06-08-2007, 13:53
ja aber warum geht es nicht automatisch zu installieren?
warum sagt er sofort er findet das paket nicht

LeFreak!
06-08-2007, 13:56
kann es sein das miktex nur pakete installieren kann von denen es weiß das es sie gibt?

hab das Paket jetzt installiert, aber der erstellt mir kein bat datei, bzw. druckt er mit das glossarie nicht aus.
was fehlt bei mir denn noch?
kann es sein das ich sogar noch perl installieren muss?

LeFreak!
06-08-2007, 17:40
gibt es eine bessere alternative zu glossarie?

DDG
07-08-2007, 07:18
Hallo LaFreak,

also Perl musst Du definitiv nicht installieren. Ich habe das Paket nämlich auch vor einer Woche installiert und habe dabei kein Perl installiert.

Mit dem VERALTETEN Glossary-Paket habe ich zum einen immer unbegründete Fehlermeldungen bekommen und zum anderen wurde das Kompilieren mit TexnicCenter unerträglich, wobei der folgende Kapitel mir Abhilfe verschafft hat

http://www.christine.oppe.info/blog/2006/05/18/latex-glossar-erstellen-im-texniccenter/

Nachdem die Mitarbeiter des Forums mich daraufhin auf das NEUE Paket glossaries hingewiesen haben, habe ich dies verwendet.



hab das Paket jetzt installiert, aber der erstellt mir kein bat datei, bzw. druckt er mit das glossarie nicht aus.


Gegenfrage: Wofür brauchst Du eine *.bat-Datei? Eine *.bat-Datei wird bei mir überhaupt gar nicht erzeugt, aber mein Glossar wird trotzdem erzeugt.

P.S.: 1) Falls es weiterhin nicht klappen sollte, dann kann ich Dir als Minimalbeispiel ein paar Zeilen aus meiner Datei kopieren. 2) Du benötigst für einen reibungslosen Ablauf des Paketes "glossaries" zusätzlich die Pakete "xkeyval" und "supertabular", die von "glossaries" automatisch nachgeladen werden und nicht einzeln in der Praeambel aufgeführt werden müssen.

Ach komm ich mach jetzt trotzdem kurz ein Beispiel für ein Symbolverzeichnis:



%Deine Dokumentklasse und Usepackages (Ich verwende scrbook)

\usepackage{hyperref} % Verlinkte Verzeichnisse
\usepackage[toc]{glossaries} % Glossareinträge, muss nach hyperref (insofern dies verwendet wird) geladen werden
% (aufgrund der Seitenzahlverlinkung im Glossarverzeichnis), (benötigt die Packete
% "xkeyval" und "supertabular", welche dann automatisch eingebunden werden)

% -- Glossar --
\makeglossaries % erstellt ein Glossar (Verzeichnis für Begriffserklärungen,
% z.B.: Symbolverzeichnis)
\addto\captionsngerman{\renewcommand{\glossaryname }{Symbolverzeichnis}} % "Symbolverzeichnis" anstelle von "Glossar"
% Glossareinträge (MUSS für JEDEN Glossareintrag überarbeitet werden):
\newglossaryentry{$e$}{name={$e$},description={Eul ersche Zahl}, sort=E}

%Weitere Befehle von Dir, die in die Praeambel kommen

\begin{document}
\chapter{Das erste Kapitel}
\section{Erster Abschnitt}
% -- Eintrag ins Glossarverzeichnis --
\gls[hyper=false]{$e$}$\,=\,2.7182818...$

%Am Ende des Dokuments:
% ------------------------------------------- Glossar -----------------------------------
% Ein Glossar ist ein Verzeichnis für Begriffserklärungen (z.B.: Symbolverzeichnis)
%
% Einbinden des Glossars
\printglossaries
\end{document}


Also ich habe nur die für das Symbolverzeichnis notwendigen Zeilen aus meinem Quelltext herauskopiert. Weiteres zu diesem Paket findest du in der Glossaries-Dokumentation (googeln).

Gruß Denny

LeFreak!
07-08-2007, 09:02
steht jedenfalls da so drinn das eine bat datei erzeugt werden soll.

Dein Beispiel kann ich leider nicht kompilieren
bei:

\addto\captionsngerman{\renewcommand{\glossaryname }{Symbolverzeichnis}}

bekomme ich eine Fehlermeldung:

"undefined control sequence"

und wenn ich es auskomentiere bekomme ich trotzdem kein glossar am ende...damn:confused:

DDG
07-08-2007, 10:06
Hallo LaFreak,

Das "glossary" Paket wird (meine ich zumindest) von "glossaries" geladen. "glossary" enthält den Befehl "\glossaryname", was dir den Namen "Glossar" ausgibt. Ich brauchte jedoch anstelle des Befehls "Glossar" den Befehl "Symbolverzeichnis". Mit anderen Worten: Du kannst die Zeile weglassen.

Ich sollte noch vermerken, dass ich im TexnicCenter unter



Ausgabe -> Ausgabeprofile definieren


im Profil "Latex=>PDF" auf der Seite "(La)TeX" unter MakeIndex und dort unter "Argumente, die an Makeindex übergeben werden sollen" die folgende Zeile ersetzt habe:


-s "%bm.ist" -t "%bm.glg" -o "%bm.gls" "%bm.glo"

Versuch das nochmal. Ich glaube du musst 3 oder 4 Mal kompilieren.

Sonst wüßte ich aus dem Stehgreif auch nicht woran es liegen könnte.

Gruß Denny

LeFreak!
07-08-2007, 11:13
er findet bei mir keine Datei Glossar.gls
das erscheint als fehlermeldung

hast du so eine datei, wo befindet diese sich bei dir?

naja ich brauch wohl definitiv perl, das was du da als behfels satz texcenter gibst gilt nur für glossary, nicht für glossaries

laut pdf:

If you use Windows, there is a batch file called makeglossaries.bat which
you can use, but you will still need Perl installed.

DDG
07-08-2007, 11:59
Hallo nochmal,



er findet bei mir keine Datei Glossar.gls
hast du so eine datei, wo befindet diese sich bei dir?


Ich habe wie beschrieben den makeindex-Eintrag bei mir geändert. Wenn ich dann mein Dokument (mit TexnicCenter) kompiliere möchte, dann drücke ich zweimal Ausgabe erstellen (F7) und anschließend



Ausgabe --> MakeIndex


Dann wird speziell für mein Dokument eine *.gls Datei (und ein paar andere) erzeugt. Diese befindet sich dann im selben Ordner wie deine *.tex-Datei.



If you use Windows, there is a batch file called makeglossaries.bat (...)


Das stimmt, denn die ist beim glossaries-Paket mit dabei.



which you can use, but you will still need Perl installed.


denn bei dem Paket ist eine "glossaries.perl" Datei mit dabei. Ich kann diese Perl-Datein mit Adobe GoLive öffnen. Ich weiß an dieser Stelle auch nicht mehr weiter.

Sorry

Gruß Denny

heinbloed
07-08-2007, 13:05
Also, ich steig bei euch nicht mehr durch.


#!/bin/bash
bfname="`basename "$1" .tex`"
pdflatex "$1"
bibtex "$bfname"
makeindex -s "$bfname".ist -t "$bfname".glg -o "$bfname".gls "$bfname".glo
makeindex -s "$bfname".ist -t "$bfname".alg -o "$bfname".acn "$bfname".acr
pdflatex "$1"
pdflatex "$1"

Ich rufe bei TexShop eine Engine auf, die ruft diese ganzen Befehle auf - damit klappt es einwandfrei.
Besonders die beiden makeindex-Zeilen sind wichtig.

Mehr weiss ich nicht.

LeFreak!
07-08-2007, 15:13
ich habe die *.perl datei nicht...boahh was für ein scheiß paket

rais
08-08-2007, 00:31
ich habe die *.perl datei nicht...boahh was für ein scheiß paket
na... bei gegebener `foo.tex´:


latex foo.tex
makeindex -t foo.glg -s foo.ist -o foo.gls foo.glo
latex foo.tex
latex foo.tex

sollte doch schon tun -- oder was hast Du bei heinbloeds Beitrag nicht verstanden -- oder was versteh' ich nicht?
MfG,

LeFreak!
08-08-2007, 09:24
ich hab das jetzt mal genau so gemacht wie du es beschrieben hast, hab mir ne bat datei geschrieben und diese mit meinen tex dateien im miktex bin verzeichniss gestartet, und da macht er mir eine gls datei

aber ich frage mich, warum macht er das nicht im texnicCenter?
wenn ich mein eigenes Ausgabeprofil auswähle und f7 drücke passiert gar nix...

LeFreak!
08-08-2007, 15:31
ich glaube ich habe den Fehler gefunden....
Ich habe in meinem Latex Ordner Pfad Leerzeichen

C:\Program Files\MiKTeX 2.5\miktex\bin

und in meinem projekt auch... desweiteren befindet sich dieses auch auf einer anderen Festplatte...es will aber trotzdem irgendwie net so richtig...aber das muss es sein

bobmalaria
13-08-2007, 23:50
hi,

da hier im thread in der zwischenzeit, meinem empfinden nach, sehr viel falsches steht, habe ich ein kleines Dokument geschrieben und einmal mein vorgehen demonstriert.

Kleine Doku (http://www.hehn.biz/Mar/doku.pdf)

Gruß

EDIT: Als Anmerkung sollte ich noch hinzufügen, dass ich AktivePerl installiert habe. Ob das einen Einfluss auf das Paket hat, konnte ich leider nicht kontrollieren. Also ist es an Euch das Beispiel zu testen und zu berichten ob man perl nun braucht oder nicht. Mein Linuxrechner steht leider 100km entfernt und somit ist das Dokument wohl nur für Windows-Benutzer interessant

Salnic
14-08-2007, 21:05
Hallo,

und jetzt von mir auch noch mal mein Senf, vor allem zu Bobmalarias Doko, die sehr schön geschrieben ist.


Nach zweimaligem (pdf)latex Aufruf entsteht ein Glossar im Dokument. Es muss weder
eine *.bat-Datei noch ein anderes Script ausgeführt werden. Auch muss makeindex nicht
getrennt aufgerufen werden und im Ausgabeprofil muss nichts verändert werden!

Diese Aussage ist nur beschränkt auf ein korrekt installiertes Technikcenter gültig. Technikcenter ruft makeindex auf, sofern es korrekt (ist wohl Standard) eingestellt ist.

Wenn man nach zweimaligen Knopfdrücken nur eine Seite (statt zwei) bekommt, dann ist was im Profil nicht richtig.

Es gibt viele Möglichkeiten, wie man aus dem angegebenen Quelltext ein Glossar bekommt. Allen gemeinsam ist folgender Aufruf, der mehr oder weniger automatisiert werden kann - abhängig vom Editor, den man benutzt. Dabei ist datei.tex die Hauptdatei.


latex datei
makindex -s datei.ist -t datei.glg -o datei.gls datei.glo
latex datei
latex datei


statt latex kann natürlich auch pdflatex genommen werden

Diese Befehlabfolge kann in eine Batchdatei (*.bat) gespeichert werden und aufgerufen werden. Das kann auch über ein Perl-Script passieren. Oder der Editor unterstützt einem bei der Arbeit. Perl muss also nicht zwingend installiert werden.

der entsprechende Eintrag in WinEdt lautet übrigens
Run('makeindex -s "%P\%N.ist" -t "%P\%N.glg" -o "%P\%N.gls" "%P\%N.glo"','%P',0,0,'´Make Glossar...');


mehr dazu in der Doku http://www.ctan.org/tex-archive/macros/latex/contrib/glossaries/doc/glossaries.pdf
oder auch hier im Forum: Suchfunktion, Nachfrage

Salnic

heinbloed
14-08-2007, 21:29
Ich - als Anfänger - hab auch echt lange an dem Glossar rumgekrampft, und irgendwann fast die Lust verloren.

Wahrscheinlich gibt es schon jede Menge funktionierender Minimalbeispiele, besonders hier im Forum - aber könnte nicht mal einer anfangen und ein fertiges Ding, mit allem Drum und dran auf das Latexwiki stellen??

ich hätte das vor zwei monaten als riesenhilfe empfunden - traue mir das gerade aber noch nicht selber zu.
Soweit

bobmalaria
14-08-2007, 21:39
hi,


Diese Aussage ist nur beschränkt auf ein korrekt installiertes Technikcenter gültig. Technikcenter ruft makeindex auf, sofern es korrekt (ist wohl Standard) eingestellt ist.

das stimmt so nicht. ich habe in meinem projekt makeindex deaktiviert. den aufruf von makeindex übernimmt nämlich der \makeglossaries befehl.


latex datei
makindex -s datei.ist -t datei.glg -o datei.gls datei.glo
latex datei
latex datei

das ganze gedöns braucht man nicht!

Salnic
14-08-2007, 21:46
@Bobmalaria
na dann lösch mal alle temp. Dateien, und versuch es noch mal
falls es doch klappen sollte, versuch es mal auf der Eingabeaufforderung (cmd)

Salnic

bobmalaria
14-08-2007, 22:16
hi,

ich habe gestern abend extra ein ganz neues projekt für dieses beispiel erstellt. habe zuvor sogar das paket deinstalliert und neu installiert. es war kein schon bestehendes beispiel.
aber weil ich dich so mag ;) hab ich eben mal alle temporären dateien gelöscht.
1. pfdlatex lauf: 2 warnungen
2. pdflaex lauf: keine warnung mehr, 2 seiten-->glossar ist erstellt

gruß

EDIT: hab gerade festgestellt, das du doch recht hast :o asche auf mein haupt. habe vor ewigkeiten mal eine nachbearbeitungsprozedur erstellt die diesen makeindex aufruf enthält -s "%bm.ist" -t "%bm.glg" -o "%bm.gls" "%bm.glo".
das hatte ich total vergessen. anscheinend bedarf es also doch dem aufruf. das dokument ändere ich noch

EDIT2: Habe das dokument geändert und dort alles beschrieben. der link weiter oben ist weiterhin gültig

Megachip
08-07-2010, 11:54
Hab genau das gleiche Problem wie der Threadstarter... Bin von "Glossary" auf "Glossaries" umgestiegen, schön alles nach Anleitung abgeändert, aber das Glossar bleibt leer. Die beiliegenden Beispiele funktionieren, aber bei meiner Arbeit ist die .glo Datei, aus welcher das Glossar erzeugt wird immer leer

Jemand ne idee? Gibt es Konflikte mit bestimmten Paketen?

bobmalaria
08-07-2010, 12:10
hi,

glossaries sollte nach hyperref geladen werden.

hast du das perl-skript makeglossaries verwendet oder rufst du makeindex für jedes verzeichnis selbst auf? dann könnte es sein das du einfach die falschen dateiendungen für deinen aufruf verwendest.

Megachip
09-07-2010, 14:30
hi,

glossaries sollte nach hyperref geladen werden.

hast du das perl-skript makeglossaries verwendet oder rufst du makeindex für jedes verzeichnis selbst auf? dann könnte es sein das du einfach die falschen dateiendungen für deinen aufruf verwendest.

Wird nach hyperref geladen. Rufe es von Hand auf, da kein Perl installiert. Nur aus einer leeren .glo Datei kann er auch nichts zaubern. Diese wird anscheinend beim Aufruf von latex, pdftex oder pdflatex nicht gefüllt (aber angelegt)

Was meinst du mit jedes Verzeichnis? Rufe es nur für die Hauptdatei, welche die anderen per \input includiert auf

bobmalaria
09-07-2010, 17:38
hi,

glossaries gibt einem ja die option andere verzeichnisse anzulegen. so zb. acronyms oder wie oft gewünscht symbole.

hast du denn die angelegten einträge überhaupt im dokument per \gls{label} verwendet?
wenn nicht, könnte deshalb die datei leer sein. steht irgendwas in der log-datei?
mach am besten mal ein ordentliches minimalbeispiel ohne viele extra pakete und sonstigem text.
schaue was dann passiert. wirf auch einen blick in die log dateien, eventuell werden deine einträge aufgrund von syntaxfehlern abgelehnt...

gruss

Megachip
09-07-2010, 19:14
hast du denn die angelegten einträge überhaupt im dokument per \gls{label} verwendet?

Öh, nein... davon stand in der doku aber auch nix. Oh man, wenns das jetzt war. Keine Errors, keine warnings. Log und beispiel reich ich ggf. nach, werd jetzt erst mal deinem tip nachgehen.

THX im voraus

P.S. Vielen dank... hätt ich das gewusst, hätt ich mir 3 Tage googlen sparen können. Irgendwie war diese referenzierung beim glossary paket nicht von nöten

bobmalaria
09-07-2010, 20:15
hi,

wenn man in glossaries ein verzeichnis zb symbole hat. dann kann man durch

\glsaddall[type=symbole] auch alle einträge ins verzeichnis packen ohne sie davor im text erwähnen zu müssen.

gruss