PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abkürzungsverzeichnis erstellen



hendrik
31-05-2011, 14:41
Hallo,

ich komme einfach nicht mit dem Abkürzungsverzeichnis klar. Ich weiß einfach nicht, wo ich den Fehler mache.

Ich verwende: LEd und MiKTex 2.9 full.

Aber zuerst ein Minibsp.:


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}

\usepackage{nomencl}
% Befehl umbenennen in abk
\let\abk\nomenclature
% Deutsche Überschrift
\renewcommand{\nomname}{Abkürzungsverzeichnis}
% Punkte zw. Abkürzung und Erklärung
\setlength{\nomlabelwidth}{.20\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}\makenomenclature


\begin{document}


Die Abkürzung etc.\abk{etc.}{et cetera} steht im Abkürzungsverzeichnis.

\printnomenclature

\end{document}

Ich habe jetzt meiner Meinung nach alles rausgelöscht, was stören könnte. Ich habe den Code von folgender Seite: http://www.strobelstefan.de/?p=153

Folgenden Ablauf habe ich:
1. pdflatex test
2. MakeIndex test
3. pdflatex test
4. pdflatex test

Bei MakeIndex kommt dann allerdings diese Meldung:

"Couldn't find input index file Abk nor Abk.idx."

Habt ihr vielleicht eine Idee?

Schöne Grüße,

Hendrik

bobmalaria
31-05-2011, 14:54
hi,

makeindex test wuerde nur funktionieren wenn du einen index erstellen willst. wie genau du makeindex aufrufen musst wenn du nomencl verwendest steht in der anleitung.

aendere deinen aufruf von makindex entsprechend.

ps: verwende die code umgebung #-symbol und nicht die php-code umgebung wenn du beispiele einstellst. die php-umgebung loescht naemlich alle \ und somit kann keiner ohne grossen aufwand dein beispiel testen.

hendrik
01-06-2011, 14:27
Hallo bobmalaria,

danke schonmal für den Hinweis. Leider hat mir der nicht wirklich geholfen. Wenn ich mein Dokument um makeidx erweitere, dann wird immer noch keine idx datei erzeugt:


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[makeidx]
\makeindex


\usepackage{nomencl}
% Befehl umbenennen in abk
\let\abk\nomenclature
% Deutsche Überschrift
\renewcommand{\nomname}{Abkrzungsverzeichnis}
% Punkte zw. Abkürzung und Erklärung
\setlength{\nomlabelwidth}{.20\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
% Zeilenabstände verkleinern
\setlength{\nomitemsep}{-\parsep}
\makenomenclature


\begin{document}


Die Abkürzung etc.\abk{etc.}{et cetera} steht im Abkürzungsverzeichnis.

\printnomenclature

\end{document}


dann geht allerdings gar nichts mehr.


Ich habe jetzt auch noch das Beispiel aus der nomelcl.pdf (ftp://ftp.tu-chemnitz.de/pub/tex/macros/latex/contrib/nomencl/nomencl.pdf) versucht auszuführen, auch hier funktioniert es nicht


\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{nomencl}
\makenomenclature
\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}

selbst in dem Beispiel wird nichts vom Index gesagt.

Ich stehe gerade echt auch dem Schlauch. Bisher habe ich noch auf fast alles eine Antwort gefunden, aber hier finde ich irgendwie nichts.

Fehlt mir da vielleicht eine Datei in meinem LEd Ordner um die idx-Datei zu erzeugen?

bobmalaria
01-06-2011, 14:36
hi,

ich glaube du hast die funktion von makeindex noch nicht verstanden.

makindex wurde urspruenglich entwickelt um einen index zu erstellen und wird hauptsaechlich dazu verwendet eintraege die im dokument gesammlt werden alphabetisch zu ordnen.

nomencl ist eine erweiterund und erstellt einen ganz speziellen index. entsprechend muss makindex mit zusaetlichen parametern aufgerufen werden damit es zusammen mit nomencl funktionieren kann.

\usepackage{makeidx} hat damit gar nichts zu tun und du brauchst es vermutlich nicht. beachte auch das man pakete mit {} einbindet und nicht mit [ ]. deshalb geht auch vermutlich erstmal gar nichts.

eine entsprechende fehlermeldung sollte also auch ausgeworfen werden.

wie ich bereits geschrieben hatte, wird der aufruf von makeindex im zusammenhang mit nomencl in der anleitung zum paket beschrieben!


makeindex test.nlo -s nomencl.ist -o test.nls

wobei 'test' der name deines dokumentes ist, hier also: test.tex

mit einem passablen editor wie z.b. texniccenter oder kile kann man einstellen das dieses kommando aufgerufen wird. aber du kannst auch mal ganz einfach versuchen das ueber die eingebeaufforderung auszufuehren (natuerlich vorher in den ordner navigieren in der die test.tex datei gespeichert ist).


EDIT: ich sehe du verwendest LED, dann musst du obige zeile in dein batch file kopieren. das 'test' musst du dann mit dem platzhalter ersetzen in dem LED den dateinamen speichert. welcher parameter das ist kannst du einfach herausfinden in dem du schaust wie pdflatex aufgerufen wird
gruss

hendrik
01-06-2011, 15:16
Hallo bobmalaria,

den Sinn der indexfunktion habe ich schon verstanden, folgendes Beispiel funktioniert auch einwandfrei bei mir. Nachdem du das erwähnt hast, habe ich mich erst einmal darüber schlau gelesen.




\documentclass[11pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{makeidx}
\makeindex
\begin{document}
Die Arbeitsgruppe für experimentelle
Neurobiologie\index{Neurobiologie}
an der
Heinrich-Heine-Universität\index{Heinrich-Heine-Universität}
\newpage
\printindex
\end{document}



Dieses Beispiel habe ich aus der makeidx.pdf (http://www1.ku-eichstaett.de/urz/schriften/makeidx.pdf) und es funktioniert, also der Index wird erstellt.

Du hast Recht, da habe ich einen Fehler gemacht und eckige anstelle der geschweiften Klammern verwendet.

Da ich gerade meine erste Arbeit mit Latex schreibe habe ich noch einige Probleme, ich verstehe nicht, welche Datei ich mir durchlesen soll. In der makeidx.pdf steht soweit ich das verstanden habe nichts über das Paket makeidx drin und in der makeidx.pdf habe ich auch nichts zum Paket makeidx gefunden.

Da ich auch nicht wusste, wie ich eine *.bat (Batchfile) erstelle habe ich mich hier schlau gelesen: http://mrunix.de/forums/showthread.php?t=57772.

Jetzt sieht meine Batchfile so aus:


latex Abk.tex
latex Abk.tex
bibtex Abk
makeindex Abk
makeindex -s Abk.ist -t Abk.glg -o Abk.gls Abk.glo
latex Abk.tex
latex Abk.tex
pdflatex Abk.tex


Es wird zwar ein index erstellt (mit dem oberen korrigierten Beispiel), allerdings ist in der PDF nichts vorhanden.

Danke für deine Mühe!

bobmalaria
01-06-2011, 15:34
hi,

ah ok, du denkst das makeidx die anleitung zu makeindex ist. das ist nicht so, makeidx ist ein paket um die funktionalitaet von makeindex zu erweitern (grob).
makeindex ist ein eigenstaendiges programm.

ausgehen von deiner ursprungsfrage mal hier ein beispiel


\documentclass{article}

\usepackage{nomencl}
\makenomenclature



\begin{document}

Ich verwende die Variable a
\nomenclature{$a$}{eine Variable}%

\printnomenclature

\end{document}


wenn ich das mit pdflatex kompiliere und im anschluss makeindex so aufrufe wie vorher beschrieben

http://www.mrunix.de/forums/attachment.php?attachmentid=4595&stc=1&d=1306938826

dann bekomme ich im anschluss auch das verzeichnis

http://www.mrunix.de/forums/attachment.php?attachmentid=4596&stc=1&d=1306938872

eine batch datei musst du auch gar nicht getrent schreiben. LED bringt doch schon solche dateien mit. ich arbeite allerdings nicht damit sondern habe ies vor jahren nur mal probiert und war wenig zufrieden.
schaue also mal im LED verzeichnis nach dem pdflatex skript und erweitere es durch den makeindex befehl. LED erlaubt doch diese User-skripte, richtig? dann kannst du in der folge aus LED heraus per knopfdruck deine verzeichnisse generieren

hendrik
01-06-2011, 16:12
Hi bobmalaria,

ja, dein Minibsp. geht bei mir und sieht genau so aus wie deines, super danke! Ich habe jetzt mein Minibsp. in so weit geändert, dass es funktioniert:


\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}

\usepackage{nomencl}
% Befehl umbenennen in abk
\let\abk\nomenclature
% Deutsche Überschrift
\renewcommand{\nomname}{Abkrzungsverzeichnis}
% Punkte zw. Abkürzung und Erklärung
\setlength{\nomlabelwidth}{.20\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
% Zeilenabstände verkleinern
\setlength{\nomitemsep}{-\parsep}
\makenomenclature


\begin{document}


Die Abkürzung etc.\abk{etc.}{et cetera} steht im Abkürzungsverzeichnis.



\newpage

\printnomenclature

\end{document}


Ich werde jetzt noch etwas weiter herumprobieren und mich dann auf jeden Fall noch einmal melden! Da ich es gern schaffen möchte, alles auch in meiner Diplomarbeit zum laufen zu bringen.

Ich meine LEd erlaubt solche Userskripte, zumindest sind in dem Programm noch fünf Batchfiles frei für user commands.


Du warst mir wirklich eine große Hilfe!

einen schönen Feiertag morgen.

Hendrik