PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nomencl und Makeindex Problem



Scylla
23-11-2006, 14:48
Ich versuche momentan vergeblich ein Abkürzungsverzeichnis für meine Diplomarbeit mit der Klasse Nomencl zu erstellen. Da es in meiner Hauptdatei nicht funktioniert hat, habe ich versucht das Beispiel aus der nomencl Doku zu kompilieren.

\documentclass{article}
\usepackage{nomencl}
\makenomenclature
\listfiles
\begin{document}
\section*{Main equations}
\begin{equation}
a=\frac{N}{A}
\end{equation}%
\nomenclature{$a$}{The number of angels per unit area}%
\nomenclature{$N$}{The number of angels per needle point}%
\nomenclature{$A$}{The area of the needle point}%
The equation $\sigma = m a$%
\nomenclature{$\sigma$}{The total mass of angels per unit area}%
\nomenclature{$m$}{The mass of one angel}
follows easily.
\printnomenclature
\end{document}

Nach kompilieren und Makeindex aufruf bekomme ich jedoch immer folgende Fehlermeldung:

F:\99_Data\TeX>makeindex test.nlo -s nomencl.ist -o test.nls
This is makeindex, version 2.14 [02-Oct-2002] (kpathsea + Thai support).
Scanning style file nomencl.ist...........done (11 attributes redefined, 3 ignor
ed).
Scanning input file test.nlo...done (0 entries accepted, 5 rejected).
Nothing written in test.nls.
Transcript written in test.ilg.
Die Kopie stammt aus der Konsole, jedoch wird beim TeXnicCenter der gleiche Befehl aufgerufen (Makeindex Aufruf mit folgenden Argumenten: "%bm".nlo -s nomencl.ist -o "%bm".nls)

System: Windows XP, TeXnicCenter 1 Beta 7.01 + MikTeX 2.5
article.cls 2005/09/16 v1.4f Standard LaTeX document class
size10.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
nomencl.sty 2005/09/22 v4.2 Nomenclature package (LN)

Nachdem ich nun mehrere Stunden vergeblich nach evtl. Lösungen gesucht habe bin ich mit meinem Latein am Ende. Alles was ich gefunden habe war ein Eintrag in einer Google Benutzergruppe:


2
From: charles . ey @ gmail . com
Date: Thurs, Sep 7 2006 9:27 am

Hi,

I figured out the problem.
The whole thing was done on a windows pc with tex and cygwin.
The end of line chracter generated by latex is identified as unknown
character by makeindex.
All fine when compiled on a linux machine.

Cheers,
Charles.
Jedoch habe ich leider keinerlei Lösung für das Problem unter Windows gefunden. evtl. kennt hier jemand eine Lösung für mein Problem (leider habe ich keinen PC zur Verfügung, auf dem ich meine Diplomarbeit unter Linux kompilieren kann)

rais
23-11-2006, 16:46
Hallo und Herzlich Willkommen :)

Jedoch habe ich leider keinerlei Lösung für das Problem unter Windows gefunden. evtl. kennt hier jemand eine Lösung für mein Problem (leider habe ich keinen PC zur Verfügung, auf dem ich meine Diplomarbeit unter Linux kompilieren kann)
also ich kann Dein Problem rekonstruieren, wenn kpathsea die falsche nomencl.ist (die eigentlich zu einer älteren Version vom nomencl-Paket gehört... wo es z.B. noch \printglossary und nicht \printnomenclature hieß) findet.
Du kannst ja mal


kpsewhich nomencl.ist
aufrufen und schauen, ob sich das aktuelle nomencl-Paket unter dem Pfad befindet...
Mit dem zum nomencl-Paket (v4.2) passendem nomencl.ist (der makeindex-Stildatei) läuft Dein Beispiel einwandfrei - aber ich arbeite ja auch unter Linux :D
MfG,

Scylla
23-11-2006, 17:19
Danke für die Begrüßung :D

Soweit ich das sehe liegt die Stildatei im richtigen Verzeichnis.

C:\Program Files\MiKTeX 2.5\miktex\bin>kpsewhich.exe nomencl.ist
C:/Program Files/MiKTeX 2.5/makeindex/nomencl/nomencl.ist

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

Ich kann normalerweise auch ausschließen, dass es eine alte Stildatei ist, da ich das Paket erst am 12.10.06 installiert habe (letztes update auf Verion 4.2 war am 24.09.06)
Außerdem gibt mir \listfiles folgendes aus:

*File List*
article.cls 2005/09/16 v1.4f Standard LaTeX document class
size10.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
nomencl.sty 2005/09/22 v4.2 Nomenclature package (LN)
nomencl.cfg
test.nls
***********

rais
23-11-2006, 17:40
Danke für die Begrüßung :D

*g*


Soweit ich das sehe liegt die Stildatei im richtigen Verzeichnis.

C:\Program Files\MiKTeX 2.5\miktex\bin>kpsewhich.exe nomencl.ist
C:/Program Files/MiKTeX 2.5/makeindex/nomencl/nomencl.ist


da würd' de falsche vermutlich auch drin sein... machen wir's mal andersrum: Öffne die nomencl.ist-Datei mal und suche nach dem Eintrag


preamble "\\begin{...} \n"

wenn statt der drei Punkte dort "theglossary" steht, dann _ist_ es die falsche Stildatei (korrekt wäre "thenomenclature")
Und ja, Deine nomencl.sty ist aktuell (wenn sich dat nich auch schon wieder geändert hat) ;)
MfG,

Scylla
23-11-2006, 17:45
Wie gesagt: Es ist die aktuelle Datei


[...]%% ---- for input file ----
keyword "\\nomenclatureentry"
%% Germans might want to change this and delete the two %%
%% quote '"'
%% ---- for output file ----
preamble "\\begin{thenomenclature} \n"%
postamble "\n\n\\end{thenomenclature}\n" group_skip "\n"
[...]

rais
23-11-2006, 18:36
Wie gesagt: Es ist die aktuelle Datei

schade eigentlich, so einfach soll's dann wohl doch nicht sein.
und wenn sich die Ausgabe von




C:\Program Files\MiKTeX 2.5\miktex\bin>kpsewhich.exe nomencl.ist


nicht dadurch ändert, daß Du Dich vorher in Deinen Projektordner begibst (da, wo Deine test.tex auch drinsteht), dann bin ich mit meinem Latein auch am Ende.
Otoh gibt es hier viele Mitstreiter, die nomencl v4.2 unter MikTeX nutzen, also sollte es mit Deinem Beispiel eigentlich auch bei Dir klappen...
MfG,

Scylla
23-11-2006, 21:06
Ich glaube ich habe den Fehler gerade gefunden. In meinem Projektordner war auch eine nomencl.ist vorhanden. nach umbenennung dieser Datei funktionierte es ohne Probleme.
Ich bin durch deine letzte Anmerkung darauf gekommen (also in den Ordner wechseln und kpsewhich aufrufen). Dabei ist mir aufgefallen, dass dort auch eine nomencl.ist vorhanden war.

Danke für den "ungewollten" Lösungsansatz ;)

rais
23-11-2006, 22:57
Danke für den "ungewollten" Lösungsansatz ;)
Gern geschehen, aber "ungewollt" war er nicht...
ich hatte neulich eigentlich dasselbe Problem unter Kanotix (Knoppix-Derivat, basiert auf Linux, Debian/Sid), was eine live-CD eben eines Linux-Systems ist, aber das auf dieser CD vorhandene LaTeX-System basiert noch auf tetex2 und die Pakete sind inzwischen teilweise veraltet, darunter eben auch nomencl.
Nun hab' ich die meisten Pakete, die ich unter LaTeX verwende, auf einem USB-Stick gelassen und auch gleich n passendes Skript, was mir diese Paketsammlung unter ~/texmf zur Verfügung stellt (das ist im sog. HOME-Verzeichnis dann praktisch nur n Link auf eben diese Paketsammlung).
Wenn ich nun $TEXINPUTS entsprechend anpasse, dann findet "kpsewhich nomencl.sty" bei mir eben das nomencl.sty vom USB-Stick, allerdings findet "kpsewhich nomencl.ist" immer noch die Version von der veralteten tetex2-Inst.
Nun gibt es generell zwei Möglichkeiten (ich _kann_ die veraltete Version nicht einfach umbenennen, das Dateisystem ist schließlich ne CD):
a) $INDEXSTYLE entsprechend anpassen oder
b) die aktuellere nomencl.ist einfach in den Projektordner kopieren (oder verlinken, weil's platzsparender ist).
Oder anders ausgedrückt: bei


C:\Program Files\MiKTeX 2.5\miktex\bin
hab' ich schlicht nur den Pfad wahrgenommen, aber nicht, daß es sich bloß um den Prompt hielt (und ich vermute mal, "kpsewhich.exe" befindet sich dort sogar)...

Immerhin mag das dem Einen oder Anderen unerwegs einen Hinweis geben, warum's unter der Linux live-CD nicht so mit nomencl funzt wie daheim :D

MfG,