PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit nomenclature



klofisch
02-06-2007, 16:19
Hallo,

ich will für meine Thesis ein Glossar mit dem nomenclPaket erstellen, aber es erscheint nicht. Ich habe versuchsweise ein Bsp aus einem Tutorial kopiert, und das lief auch nicht. Woran kann es liegen?

Ich verwende Miktex 2.5 mit LEd.

Bsp


\documentclass[a4paper]{article}
\usepackage{ngerman}
\usepackage{nomencl}
\renewcommand{\nomname}{Glossar}
\makenomenclature
\begin{document}
Das Rotkehlchen\glossary{Rotkehlchen} (Erithacus
rubecula) kommt in weiten Teilen
Europas\glossary{Europa} vor.
\nomenclature{$Rotkehlchen$}{Das Rotkehlchen ist eine
Vogelart aus der Familie der Drosselv"ogel (Turdidae).
Das Rotkehlchen war Vogel des Jahres 1992.}
\nomenclature{$Europa$}{Europa ist das westliche Fünftel
der eurasischen Landmasse und wird "ublicherweise als
eigenst"andiger Kontinent betrachtet.}
\printnomenclature
\end{document}

Danke
Peter

countbela666
02-06-2007, 16:39
Hast du makeindex korrekt ausgeführt? Wenn du nicht weißt, was ich damit meine, sieh bitte nochmal in die nomencl-Doku oder nutze die Forensuche.

Nichts für ungut
Marcel

Salnic
02-06-2007, 16:39
Hi Peter,

Dein Beispiel ist so erstmal in Ordnung. Es gibt drei Möglichkeiten, woran es bei Dir scheitern könnte: Du rufst makeindex nicht auf, Du rufst makeindex falsch auf oder Dein nomencl-Packet ist nicht das neuste.

aktuell sollte sein:
nomencl.sty 2005/09/22 v4.2 Nomenclature package (LN)

auf der Konsole rufst Du makeindex wie folgt auf (wenn Deine Datei texfile.txt heißt):

pdflatex texfile
makeindex texfile.nlo -s nomencl.ist -o texfile.nls
pdflatex texfile
pdflatex texfile

In WinEdt kannst Du den Menüpunkt Make Nomenclature anpassen. Mit folgendem Eintrag sollte es funktionieren

Run('makeindex "%P\%N.nlo" -s nomencl.ist -o "%P\%N.nls"','%P',0,0,'´Make Nomenclature...');

Salnic

PS: Marcel hat natürlich recht, steht auch alles in der Doku

klofisch
03-06-2007, 20:06
Ich bekomme folgende Meldung bei Makeindex


This is makeindex.exe, version 2.14 [02-Oct-2002] (kpathsea + Thai support).
Scanning input file DiplomarbeitLkn.idx...done (0 entries accepted, 0 rejected).
Nothing written in DiplomarbeitLkn.ind

countbela666
03-06-2007, 21:03
Diese Meldung besagt, dass du makeindex die falschen Parameter übergeben hast. Also befolge bitte das, was Salnic und ich in unseren letzten beiden Posts geraten haben.

Nichts für ungut
Marcel

klofisch
05-06-2007, 23:16
Es gibt aber keine nlo-Datei.... wie wird diese erstellt?

Latex-defer
06-06-2007, 01:15
Es gibt aber keine nlo-Datei.... wie wird diese erstellt?

Hallo,
dasselbe Problem hatte ich mit MikeTeX 2.4. Mit der neuen Version MikeTeX 2.6 kannst du das neue Paket nomentbl benutzen.



%%% im Preämbel
\usepackage[german]{nomentbl}
\makenomenclature
\usepackage{longtable}%%% für lange Tabelle

\begin{document}

\printnomenclature %%% wenn die Ausgabe an dieser Stelle erfolgen soll!

Begriff ...
\nomenclature[Ax]{Begriff}{Beschreibung}%%
{Beliebiger Text z.B. Einheit}%
{Formel oder leer}

\end{document}

A: steht für lateinische Buchstabe
x: für alphabetische Reihenfolge (a, b, c, ..., z)

Das Einbinden von Nomenclature in Latex geht so:

Eingabeaufforderung:

c:\Verzeichnis in dem die teX-Datei sich befindet>makeindex -s nomentbl.ist -o dateiname.nls dateiname.nlo
Taste Enter eintippen. Fertig!

Danach LaTeX compilieren. Ende!!!

Bei jeder \nomenclature- Eingabe die obere Vorgehensweise wiederholen.

Für weitere Informationen:
http://www.ctan.org/tex-archive/macros/latex/contrib/nomentbl/nomentbl.pdf

countbela666
06-06-2007, 08:09
Es gibt aber keine nlo-Datei.... wie wird diese erstellt?Durch den Befehl \makenomenclature schon beim ersten Lauf von (pdf)LaTeX. Wenn diese nicht erstellt wird, hast du entweder einen Fehler im Code, oder du nutzt eine veraltete Version von nomencl (siehe auch diesen Post (http://www.mrunix.de/forums/showthread.php?p=236643#post236643) von Salnic).

Wenn also der folgende Code einmal mit latex kompiliert nicht die Datei DATEINAME.nlo erzeugt, solltest du die Fehlermeldungen und/oder das entstandene LOG-File überprüfen bzw. hier posten, falls du damit nichts anfangen kannst:

\documentclass{scrartcl}
\usepackage{nomencl}[2005/09/22 v4.2]
\makenomenclature
\begin{document}
bla
\nomenclature{b}{bla}
\printnomenclature
\end{document}Grüße
Marcel

klofisch
06-06-2007, 22:22
@Latex-defer

Danke für den Tipp mit dem neuen Paket,...mir würde es jedoch reichen wenn das alte geht :)

@countbela666

Ich hab dein Bsp. probriert.

In dem PDF steh nur bla. :)

Das LOG sieht so aus



This is pdfTeX, Version 3.141592-1.40.3 (MiKTeX 2.6) (preloaded format=pdflatex 2007.6.5) 6 JUN 2007 22:04
entering extended mode
**New.tex
(New.tex
LaTeX2e <2005/12/01>
Babel <v3.8g> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman, ngerman, french, loaded.
("C:\Programme\MiKTeX 2.6\tex\latex\koma-script\scrartcl.cls"
Document Class: scrartcl 2007/03/07 v2.97a KOMA-Script document class (article)

("C:\Programme\MiKTeX 2.6\tex\latex\koma-script\scrkbase.sty"
Package: scrkbase 2007/03/07 v2.97a KOMA-Script package (basics and keyval use)


("C:\Programme\MiKTeX 2.6\tex\latex\graphics\keyval.sty"
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
\KV@toks@=\toks14
)
("C:\Programme\MiKTeX 2.6\tex\latex\koma-script\scrlfile.sty"
Package: scrlfile 2007/03/07 v2.97a KOMA-Script package (loading files)

Package scrlfile, 2007/03/07 v2.97a KOMA-Script package (loading files)
Copyright (C) Markus Kohm

))
Class scrartcl Info: File `size11.clo' used to setup font sizes on input line 9
12.
("C:\Programme\MiKTeX 2.6\tex\latex\base\size11.clo"
File: size11.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
)
("C:\Programme\MiKTeX 2.6\tex\latex\koma-script\typearea.sty"
Package: typearea 2007/03/07 v2.97a KOMA-Script package (type area)

Package typearea, 2007/03/07 v2.97a KOMA-Script package (type area)
Copyright (C) Frank Neukam, 1992-1994
Copyright (C) Markus Kohm, 1994-

\ta@bcor=\skip41
\ta@div=\count79
\ta@hblk=\skip42
\ta@vblk=\skip43
\ta@temp=\skip44
Package typearea Info: These are the values describing the layout:
(typearea) DIV = 10
(typearea) BCOR = 0.0pt
(typearea) \paperwidth = 597.50793pt
(typearea) \textwidth = 418.25555pt
(typearea) DIV-departure = -6/100
(typearea) \evensidemargin = 17.3562pt
(typearea) \oddsidemargin = 17.3562pt
(typearea) \paperheight = 845.04694pt
(typearea) \textheight = 595.80026pt
(typearea) \topmargin = -25.16531pt
(typearea) \headheight = 17.0pt
(typearea) \headsep = 20.40001pt
(typearea) \topskip = 11.0pt
(typearea) \footskip = 47.60002pt
(typearea) \baselineskip = 13.6pt
(typearea) on input line 879.
)
\c@part=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\abovecaptionskip=\skip45
\belowcaptionskip=\skip46
\c@pti@nb@sid@b@x=\box26
\c@figure=\count86
\c@table=\count87
\bibindent=\dimen102
) ("C:\Programme\MiKTeX 2.6\tex\latex\nomencl\nomencl.sty"
Package: nomencl 2005/09/22 v4.2 Nomenclature package (LN)
\nomlabelwidth=\dimen103
\nom@tempdim=\dimen104
\nomitemsep=\skip47
)
\@nomenclaturefile=\write3

Writing nomenclature file New.nlo
No file New.aux.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 4.
LaTeX Font Info: ... okay on input line 4.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 4.
LaTeX Font Info: ... okay on input line 4.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 4.
LaTeX Font Info: ... okay on input line 4.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 4.
LaTeX Font Info: ... okay on input line 4.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 4.
LaTeX Font Info: ... okay on input line 4.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 4.
LaTeX Font Info: ... okay on input line 4.
No file New.nls.
[1

{psfonts.map}] (New.aux) )
Here is how much of TeX's memory you used:
946 strings out of 95305
11798 string characters out of 1185270
70504 words of memory out of 1074204
4161 multiletter control sequences out of 60000
3940 words of font info for 15 fonts, out of 1000000 for 2000
14 hyphenation exceptions out of 8191
31i,6n,28p,224b,128s stack positions out of 5000i,500n,10000p,200000b,32768s
<C:/Programme/MiKTeX 2.6/fonts/type1/bluesky/cm/cmr10
.pfb>
Output written on New.pdf (1 page, 4456 bytes).
PDF statistics:
10 PDF objects out of 300000 (max. 8388607)
0 named destinations out of 300000 (max. 131072)
1 words of extra memory for PDF output out of 65536 (max. 10000000)

rais
08-06-2007, 09:11
Writing nomenclature file New.nlo
(..)
No file New.nls.

dann brauchst Du ja nur noch


makeindex New.nlo -s nomencl.ist -t New.nlg -o New.nls
(pdf)latex New.tex
(pdf)latex New.tex
aufzurufen. :rolleyes:

Ich kenne LEd nicht, vermute aber, daß für die Verwendung von makeindex (wie auch immer das im Einzelnen bei LEd implementiert sein mag) standardmäßig ein Index erstellt werden soll, quasi `makeindex New.idx´ aufgerufen wird -- die Datei gibt es hier tatsächlich nicht (ausgehend von Marcels letztem Beispiel).
Probier's also erstmal über die Konsole, wenn's damit klappt weißt Du zumindest, daß es weder am Code noch an verwendeten Paketen liegt -- wer weiß, wohlmöglich kommt LEd mit Dokumentation in der drinsteht, wie man die Aufrufparameter für makeindex ändern oder gar eigene Befehle ergänzen kann... könnte ja schließlich sein, daß makeindex eines Tages für beides (Nomenklatur und Index) herhalten muss;-)
Wenn's so auch nicht klappt, dann poste bitte die so entstandene `New.nlg´ (vgl. makeindex-Aufruf: -t)
MfG,

thmuench
09-06-2007, 21:53
In WinEdt kannst Du den Menüpunkt Make Nomenclature anpassen. Mit folgendem Eintrag sollte es funktionieren

Run('makeindex "%P\%N.nlo" -s nomencl.ist -o "%P\%N.nls"','%P',0,0,'´Make Nomenclature...');


Kurze Frage an dich, Salnic: Wie mache ich das?

Gruß,
Thomas

Salnic
11-06-2007, 08:40
> Wie mache ich das?
Options|Menu Setup
Main Menu: Doppelklick in Items-Tabelle (ein wenig nach unten scrollen) auf &Accessories --> neues Fenster "Main Menu: &Accessories"

entweder bestehenden Eintrag ändern oder neuen Eintrag hinzufügen

Macro
Run('makeindex "%P\%N.nlo" -s nomencl.ist -o "%P\%N.nls"','%P',0,0,'´Make Nomenclature...');

Requires File Filter
%P\%N.nlo

Start in
%P

Caption
what ever




Salnic

thmuench
12-06-2007, 01:27
Läuft!

Vielen Dank!
Thomas

thomfisch
21-06-2007, 00:06
Funktioniert das auch für das namendx-Package? Hier soll es mit der Zeile

makeindex -s nameind.ist -o myfile.nin myfile.ndx

funktionieren. Ich habe dann in WinEdt ein neues Macro hinzugefügt:

Run('makeindex -s nameind.ist -o %N.nin %N.ndx','%P',1,1);

Leider funktioniert das so noch nicht, der Namensindex wird nicht erzeigt. Eine Fehlermeldung erhalte ich allerdings nicht. Brauche ich da eventuell auch noch Einträge bei "requires file filter" bzw. "start in"? Oder habe ich eventuell in der Makrozeile einen Fehler?

Ich habe es auch anstelle eines Macro als Utility versucht, d.h. also vorneweg mit makeindex.exe, aber auch das hat nicht funktioniert.

Vielen Dank schon mal für Eure Hilfe, bin nämlich am Verzweifeln.

Thomas

Salnic
21-06-2007, 06:17
Hallo Thomfisch,


Funktioniert das auch für das namendx-Package?
sorry, ein namendx-Package kenne ich nicht, konnte auch nichts in den weltweiten Netzen dazu mit der Googleangel fischen.

wenn
makeindex -s nameind.ist -o myfile.nin myfile.ndx der Aufruf ist (funktioniert er von der Eingabeaufforderung?), dann sollte das WinEdt-Makro auch funktionieren. Gibt es nach dem ersten Latex-Aufruf eine myfile.ndx?

Setz mal die Platzhalter für die Dateien in Anführungsstriche


Run('makeindex -s nameind.ist -o "%N.nin" "%N.ndx"','%P',1,1);


Eine Fehlermeldung erhalte ich allerdings nicht.
Das Logbuch von Makeindex heißt myfile.ilg. Da solltest Du Hinweise finden, wenn Makeindex Probleme hat.


Brauche ich da eventuell auch noch Einträge bei "requires file filter" bzw. "start in"?
"requires file filter" ist dafür da, um den Button in WinEdt klickbar oder nicht klickbar zu machen (aktiv/nicht aktiv) und zwar abhängig davon, ob eine bestimmte Datei vorhanden ist oder nicht. Makindex kann ja nur aufgerufen werden, wenn Latex mindestens einmal zuvor aufgerufen wurde und entsprechende temp. Dateien erzeugt hat, die Makindex dann weiterverarbeitet. Das Feld kannst Du erst mal leer lassen oder mit %P\%N.ndx füllen.


"start in" ist der Ordner, in dem Makeindex gestartet wird. Hier solltest Du den Ordner Deiner Latex-Files angeben, also %P

Salfisch


PS: meinst Du vielleicht das makendx-Packet
Namensverzeichnis von 1995? Komischer Weise läuft es bei mir nicht.



\documentclass{scrartcl}
\usepackage{makendx}
\makenameindex
\begin{document}
\name[Klo]{Klofisch} und \name[Thom]{Thomfisch} sind schwimmende Fische im Indexwasser.
\printnameindex
\end{document}
Ich habe keine nameind.ist, und ohne kann makeindex nichts mit der *.ndx-Datei anfangen.
-- Unknown index keyword \nameindexentry.

thomfisch
21-06-2007, 09:26
Hi Salnic,

tausend Dank für Deine sehr umfangreiche Antwort.



sorry, ein namendx-Package kenne ich nicht, konnte auch nichts in den weltweiten Netzen dazu mit der Googleangel fischen.

PS: meinst Du vielleicht das makendx-Packet
Namensverzeichnis von 1995? Komischer Weise läuft es bei mir nicht.

Ja, ja, ja, ja, entschuldige bitte, Du hast vollkommen recht. Da war ich wohl einfach schon zu müde. Natürlich meine ich das makendx-Package.



funktioniert er von der Eingabeaufforderung?

Ich habe das mit der Eingabeaufforderung nicht hinbekommen. Ich habe auch das Problem mit der fehlenden nameind.ist. Es handelt sich dabei ja um eine Style-Datei. Ich wüsste auch nicht, woher man diese bekommen kann.

Wenn ich den Befehl in WinEdt ausführen lasse, bleibt das Ausführungsfenster leer, es wird keine .ilg Datei erzeugt. Allerdings eine leere idx-Datei und eine ndx-Datei, in der die Einträge korrekt drinstehen. Und im log-Fenster steht dann neben ein paar anderen Dingen:



("C:\LaTeX\MiKTeX 2.6\tex\latex\thesis\makendx.sty"
Package: makendx 1996/05/16 1.0 LaTeX2e package (wm)
)
\@nameindexfile=\write3

Writing nameindex file testlauf_neu.ndx
\@indexfile=\write4
Writing index file testlauf_neu.idx
(testlauf_neu.aux)
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.

No file testlauf_neu.nin.
[1

] (testlauf_neu.aux) )


Habe die Datei testlauf_neu.tex genannt und der Vergleichbarkeit halber Deinen Text mit den klo und thom kopiert.

Alle Deine anderen Tipps habe ich natürlich sofort ausprobiert, wenn auch leider ohne Erfolg, was das Ergebnis angeht. Dafür kann ich jetz etwas mit "requires file filter" und "start in" anfangen.




\documentclass{scrartcl}
\usepackage{makendx}
\makenameindex
\begin{document}
\name[Klo]{Klofisch} und \name[Thom]{Thomfisch} sind schwimmende Fische im Indexwasser.
\printnameindex
\end{document}

Wenn ich mit nomencl arbeite, setze ich noch ein \makeindex in die Präambel. Sollte das das nicht auch hier so sein?

Grüße und nochmals vielen, vielen Dank

Thomas

rais
21-06-2007, 19:15
Moin moin,


Wenn ich mit nomencl arbeite, setze ich noch ein \makeindex in die Präambel. Sollte das das nicht auch hier so sein?

Salnics Beispiel funktioniert schon (BTW: wozu \makeindex bei nomencl?)...
Da ich den Aufbau der nameind.ist nicht habe, hab' ich mir die makendx.ist aus der makendx.dtx gezogen:


%% MakeIndex style file makendx.ist
%% 1995/10/29 Wenzel Matiaske
%%
%% keyword for nameindex entry
keyword "\\nameindexentry"
%% Begin nameindex entries
preamble "\n \\begin{thenameindex}\n"
%% End nameindex entries
postamble "\n \\end{thenameindex}\n"

und dann als 'makendx.ist' abgelegt, der makeindex-Aufruf sieht dann entprechend so aus:


makeindex foo.ndx -s makendx.ist -t foo.mlg -o foo.nin

MfG,

Salnic
21-06-2007, 21:32
Hi Tomfisch,

T> [...] setze ich noch ein \makeindex in die Präambel. Sollte das das nicht auch hier so sein?
laut Anleitung kommt hier stattdessen \makenameindex in die Präamble. (ähnlich wie \makeglossar oder \makenomenclature) und offenbar kann Rais es zum Laufen bringen.

Hi Rais,

R> Salnics Beispiel funktioniert schon.
tatsächlich, mit Deiner Style-Datei akzeptiert makeindex die *ndx-Datei. Danke.


Salnic

thomfisch
22-06-2007, 07:01
Ich habe heute leider keine Zeit dafür, aber ich werde am WE versuchen, es in Gang zu bekommen. Es scheint ja zu funktionieren.

Danke Euch für Eure Tipps

Grüße

thomfisch
23-06-2007, 08:37
Wo muss ich denn die .ist-Datei ablegen, damit mein System sie dann findet? Auf meinem System befindet sich bereits eine makendx.ist mit dem Inhalt



%%
%% This is file `makendx.ist',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% makendx.dtx (with options: `ist')
%%
%% Copyright (C) 1996 by Wenzel Matiaske, mati1831@perform.ww.tu-berlin.de
%%
%% You are not allowed to distribute this file without the
%% original source makendx.dtx. For distribution of the
%% sources see the copyright notice in the file makendx.dtx.
%%
%% MakeIndex style file makendx.ist
%% 1995/10/29 Wenzel Matiaske
%%
%% keyword for nameindex entry
keyword "\\nameindexentry"
%% Begin nameindex entries
preamble "\n \\begin{thenameindex}\n"
%% End nameindex entries
postamble "\n \\end{thenameindex}\n"
\endinput
%%
%% End of file `makendx.ist'.


Das ist ja dasselbe, wie weiter oben vor rais beschrieben. Leider bekomme ich als Meldung



index style file makendx.ist not found.


Ich nutze Latex unter Windows und bei mir liegt die makendx.ist im Ordner C:\...\MiKTeX 2.6\tex\latex\thesis

Man bekommt das Ganze auch ohne style-Datei zum Laufen. Dafür muss man in der ndx-Datei nur manuell vor dem makeindex-Durchlauf "\nameindexentry" in "\indexentry" ändern. Allerdings ist das natürlich keine zufriedenstellende Lösung.

Grüße

Thomas

rais
23-06-2007, 12:05
Moin moin,
Du könntest die makendx.ist-Datei
a) lassen, wo sie ist und die $INDEXSTYLE-Umgebungsvariable entsprechend anpassen,
b) in Deinen Projektordner kopieren,
c) in den Ordner kopieren, in der z. B. auch `gind.ist´ auf Deinem System liegt -- hiernach solltest Du texhash aufrufen (`Refresh FNDB´ heißt der Knopp bei Dir glaub' ich)

MfG,