Stefan's Weblog Blog über alle möglichen Dinge rund um den Computer

2Jul/0822

Abkürzungsverzeichnis mit nomencl

Ein Abkürzungsverzeichnis für ein LATEX-Dokument läßt sich sehr leicht mit Hilfe des Paketes nomencl anlegen.
nomencl ist ein Makro, welches mit Hilfe von MakeIndex ein Abkürzungsverzeichnis erstellt. Das Paket nomencl ordnet automatisch die Einträge alphabetisch, d.h. der Benutzer hat keinen direkten Einfluß auf die Sortierung im Abkürzungsverzeichnis.

Abkürzungsverzeichnis mit nomencl

 

Deklaration von Abkürzungen im Text

Zum Kennzeichnen von Abkürzungen reicht es, einer der folgenden Befehl im LATEX-Dokument zu nutzen:
\nomenclature[prefix]{symbol}{description}
oder
\abk[prefix]{symbol}{description}
Ein möglicher Eintrag für eine Abkürzung im Dokument sieht dann folgendermaßen aus:

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

Der Befehl kann entweder direkt hinter der Abkürzung platziert werden oder an einer anderen beliebigen Stelle im Dokument.

 

Schritt 1: Bearbeitung der Präambel

In der Präambel des Hauptdokuments sind folgende Zeilen einzufügen:
% --- Abkürzungsverzeichnis: ----------------------------
% START % Näheres siehe http://my.opera.com/timomeinen/blog/show.dml/68644
\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}
% Zeilenabstände verkleinern
\setlength{\nomitemsep}{-\parsep}
\makenomenclature
%--------------------------------------------------------

 

Schritt 2: Laden der Datei xxx.nlo

Damit die festgelegten Abkürzungen in das Hauptdokument geschrieben werden, muss ein makeindex -Lauf gestartet werden. (Anmerkung: Hier im Beispiel heißt das LATEX-Dokument hauptdokument, d.h. der Name muss durch den Namen eures Dokuments ersetzt werden.) Bevor der Befehl in die Konsole eingegeben werden kann, muss man sich zum Verzeichnis hangeln, wo das hauptdokument abgespeichert ist. (Befehl: cd )
Nachdem man sich im richtigen Verzeichnis be?ndet, folgende Zeilen in der Konsole eingeben:

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

Es wird eine neue Datei generiert, hauptdokument.nls, in der alle Abkürzunge alphabetisch sortiert aufgelistet werden.

 

Schritt 3: Einfügen in das LATEX-Dokument

Durch den Befehl \printnomenclature läßt sich das Abkürzungsverzeichnis an jeder beliebigen Stelle im hauptdokument einfügen. (Bei wissenschaftlichen Arbeiten wird das Abkürzungsverzeichnis nach dem Inhaltsverzeichnis eingefügt.)

 

Schritt 4: LATEX-Lauf

Zum Abschluß muss noch ein LATEX-Lauf ausgeführt werden, um das Abkürzungsverzeichnis in das Hauptdokument zu schreiben.

 

Anmerkung

Werden im Verlauf der Arbeit weitere Abkürzungen deklariert, müssen die Schritte 2-4 wiederholt werden, damit diese in das Abkürzungsverzeichnis aufgenommen werden.

 

Probleme:

Wird bei Schritt 4 der Fehler
! Paragraph ended before \nomgroup was complete.
ausgegeben, dann ist wahrscheinlich ein Fehler in der Datei hauptdokument.nls vorhanden,
Die Datei sollte folgendermaßen aufgebaut sein:
\begin{thenomenclature}

\nomgroup{A}
\item [{bzw.}]\begingroup beziehungsweise\nomeqref {1.0},
\nompageref{6}
...

\end{thenomenclature}

Der Fehler wird erzeugt, weil eine Klammer beim Befehl \nomgroup{} am Beginn des Dokuments fehlt. Setzt man die Klammer manuell dann sollte beim LATEX-Lauf kein mehr Fehler erzeugt werden.

 

Weiterführende Links:

:arrow: Hilfe zur Fehlerbehebung auf forum.ubuntuusers.de

Tags: LaTeX, LaTeX-Paket, nomencl

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (22) Trackbacks (0)
  1. Guten Tag
    Ich versuche nun schon eine ganze Weile die nomenclature bei mir in meiner Masterarbeit zu integrieren, doch leider funktioniert das nicht. und zwar weiss ich nicht genau, wie ich das mit der Konsole machen muss. Es kommt immer der fehler “scanning input file Masterarbeit.idx und nothing written in Masterarbeit.ind

    Kannst du mir vielleicht dabei helfen.. habe schon Stunden in den Foren verbracht.
    Danke

  2. Moin! Dein Artikel hat mir sehr geholfen!!! vor allem die } nach dem A hat mich fast in den wahnsinn getrieben … DANKE!!

  3. Herzlichen Dank für deine ausführliche Anleitung!!!

  4. Hallo,
    erstmal danke für die Vielen Tips hier.
    Mal ne andere frage, wnn ich ein *.tex Datei erstelle und diese mit \include{*.tex} einbinde gibt er die Abkürzungen nicht in der PDF an, wenn ich jedoch den selben inhalt in die main schreibe funtioniert alles wie es soll…
    ich habe keine idee mehr, wenn mir jemand helfen kann wäre das super

  5. Hallo Tobias,

    bin zwar nicht mehr so ganz fit auf dem Gebiet, aber schreib mal den Befehl so \include{ /Dateiname}. Lass einfach mal das .tex weg und versuche es nochmal.

  6. Hallo,
    ich schreibe gerade auch an einer wiss. Arbeit und muss ebenfalls ein Abkürzungs- bzw. Symbolverzeichniss an mein Dokument integrieren. Leider weiß ich nicht wie ich es mit TexShop die datei.nlo bzw. .nls generieren kann. Zum Beispiel, wie starte ich die erwähnte Konsole…
    Danke im Vorraus

    (p.s. schreibe mit Mac / TexShop)

  7. Hallo TexFragender,

    ich kenne mich mit dem erwähnten Tool von dir nicht aus. Ich habe zum Schreiben meiner Arbeit Kile verwendet.

    Die Konsole ist das Standardterminal, das in Kubuntu integriert ist. Wie das bei einem Mac aussieht, kann ich dir daher nicht sagen.

  8. Hallo,

    ich habe genau den Code:

    \nomenclature{etc.}{et cetera}
    \nomenclature{z. B. }{zum Beispiel}

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

    in mein Latex-file geschrieben und dann unter Texnic-center auch bei dem Ausgabeprofil unter “Argumente die an Miktex übergeben werden sollen ” geschrieben:
    “%bm”.nlo -s nomencl.ist -o “%bm”.nls

    aber es wird kein Inhaltsverzeichnis angezeigt. Ich finde auch keine Date .nls sondern nur eine .nlo

    mit
    “%bm”.glo -s nomencl.ist -o “%bm”.gls
    funktioniert es auch nicht.
    Kann mir bitte jemand helfen?

  9. Hallo,

    ich schreibe gerade meine Diplomarbeit und versuche mich beim Anlegen eines Abkürzungsverzeichnisses. Ich bin aber blutige Anfängerin und weiß leider nun nicht, wo diese Konsole zu finden ist, wie ich da hin komme und wo ich das dann eingebe…gebe ich die Zeile dann genauso hintereinander ein, wie sie auf der HP oben steht? Alles andere habe ich nämlich schon reinkopiert und müsste funktionieren.

    Vielen Dank für eure Hilfe!
    Susanne

  10. Hallo,

    Erstmal vielen Dank für die tolle Anleitung. Es hat super funktioniert.

    Ich musste noch ein paar Abkürzungen hinzufügen. Die Schritte 2-4 hätte ich dannach wiederholt, aber wenn ich im Dos den Befehl eingebe kommt nur:
    Nothing written on outputfile Diplomarbeit.nls.

    Ich glaube ich hab einen Fehler gemacht, als ich aus Versehen vor Schritt 2 compiliert habe!? Wenn ich Diplomarbeit.nls in Texnic öffne steht auch nichts mehr drin.

    Wie kann ich das wieder beheben?

    Vielen Dank im Voraus,

    Martina

  11. Hallo zusammen,

    die Konsole öffnet ihr bei Windows-Betriebssystemen über Start->Ausführen. Tragt dann in die Zeile “cmd” ein und das ganze mit enter bestätigen. Dann müsst ihr euch in euer Verzeichnis hanglen in der eure *.tex-Datei liegt. Das geht mit dem ‘cd’-Befehl (z.B. > cd “Dokumente und Einstellungen”; >cd “meine Arbeit”). Wenn ihr da angekommen seid, könnt ihr dann den pdflatex-Befehl ausführen.

    Hoffe, ich konnte helfen ;-)
    Grüße

  12. Hallo,
    Gibt es eine Möglichkeit weitere Kategorien zu definieren. Also weitere Präfixe mit den gewünschten Überschriften hinzuzufügen?

    Bsp.:
    \nomenclature[K]{$g$}{Erdbeschleunigung}{9,81}{$\left[\frac{m}{s^2}\right]$}%

    Hierbei soll das Präfix “K” eine Kategorie mit den Namen “Konstanten” definieren. Der Name “Konstanten” soll natürlich im Symbolverzeichnis als Überschrift der KAtegorie angezeigt werden.
    Vielen Dank und frohe Ostern,
    Michi

  13. Mit dem Package “nomencl” funktioniert das ganze soweit. Probleme kriege ich nur, wenn ich das Package “nomentbl” dazu nehme. Dieses Packet erlaubt die Darstellung des Symbolverzeichnisses im Longtable Format.
    Hier ein Minimalbeispiel:

    \documentclass{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel} % Sprache
    \usepackage{nomencl}
    \usepackage{longtable}
    %\usepackage[german]{nomentbl}
    \makenomenclature
    % Segmentation
    \RequirePackage{ifthen}%
    \renewcommand{\nomgroup}[1]{%
    \renewcommand{\makelabel}[1][]{##1}
    \ifthenelse{\equal{#1}{K}}{\bigskip\item[\textsf{\textbf{Konstanten}}]}{}}%
    \begin{document}
    \printnomenclature
    Die Erdbeschleunigung g ist eine Konstante.
    \nomenclature[K]{$g$}{Erdbeschleunigung}{9,81}{$\left[\frac{m}{s^2}\right]$}%
    \end{document}

    Sobald die Zeile %\usepackage[german]{nomentbl} dazugeschaltet wird erscheinen bei der Kompilierung Fehlermeldungen.
    Achtung: MakeIndex muss bei der Nutzung von “nomentbl” folgendermaßen geändert werden:
    -s nomentbl.ist “%bm.nlo” -o “%bm.nls”

    Die Fehlermeldung lautet:
    “! LaTeX Error: Something’s wrong–perhaps a missing \item.
    See the LaTeX manual or LaTeX Companion for explanation.
    Type H for immediate help.

    l.6 \multicolumn{3}{l}{\nomgroup{K}}”

    Der Fehler tritt in der Datei Minimalbeispiel.nls auf.
    Kann mir jemand bei dem Problem helfen?
    Besten Dank im Voraus!

  14. Problem gelöst!

    \renewcommand\nomgroup[1]{%
    \ifthenelse{\equal{#1}{A}}{%
    \large{\textbf{Lateinische Buchstaben}}}{%
    \ifthenelse{\equal{#1}{G}}{%
    \large{\textbf{Griechische Buchstaben}}}{%
    \ifthenelse{\equal{#1}{X}}{%
    \large{\textbf{hochgestellte Indizes}}}{%
    \ifthenelse{\equal{#1}{Z}}{%
    \large{\textbf{Indizes}}}{%
    \ifthenelse{\equal{#1}{K}}{%
    \large{\textbf{Konstanten}}}{%
    \ifthenelse{\equal{#1}{N}}{%
    \large{\textbf{Kennzahlen}}}{%
    {}}}}}}}}

  15. Hallo Stefan,
    obwohl ich blutige Latex Anfängerin bin, komme ich mit deiner Abkürzungsverzeichnis-erstell-Beschreibung eigentlich sehr gut klar. Ich hab die Präambel ergänzt und alles gemacht wie von dir beschrieben, mein Problem ist nun, dass die Konsole mir folgendes sagt, wenn ich -nlo in -nls umwandeln will
    bash: makeindex: command not found
    Woran könnte das liegen? Ich verwende TexShop/Mac OS X 10.4.11
    Schon mal im Voraus Vielen Dank!

  16. Hallo Katja,

    das sieht so aus, als ob deine LaTeX-Installation MakeIndex nicht finden kann. Schau doch mal auf ctan.org nach, ob du das Paket nicht herunterladen und dann bei dir auf dem PC installieren kannst. :arrow: http://www.ctan.org/tex-archive/indexing/makeindex

  17. Hallo Stefan,
    erstmal vielen Dank für deine schnelle Antwort, aber ich muss zugeben, dass ich damit an meine Grenzen komme. Runterladen und entpacken von ctan.org ist ja noch kein Problem, aber ich bin ehrlich, ich weiß dann überhaupt nicht was ich tun soll bzw. wie ich das installieren soll….

  18. Hallo Katja,

    wie man fehlende Pakete bei LaTeX einfügt, ist beispielhaft hier beschrieben:
    :arrow: File `psfig.sty’ not found

  19. Hallo Stefan,deine Tips sind wirklich sehr hilfreich! Leider sitze ich schon den ganzen Tag daran, ein AbkürzungsVZ zu erstellen. Es geht einfach  nicht. Ich habe alles in die Konsole eingegeben (auch den richtigen Ordner, indem meine ganzen Dateien sind). Ich gebe folgendes ein:H:\>cd c:\Documents and Settings\ich\Desktop\OrdnerderarbeitH:\>makeindex hauptdatei.nlo -s nomencl.ist -o hauptdatei.nlsInput index file hauptdatei.nlo not found.Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]die Datei wird nicht gefunden, obwohl ich sie in dem Ordner sehe. Die glossary Variante von weiter oben hab ich auch schon erfolglos probiert.Mache ich was falsch?Danke im Vorraus!

  20. Hi,
    ich habe für meine Arbeit einfach ein Latex-dokument bekommen inklusive aller Einstellungen, bin deswegen höchst unwissen und stelle deshalb die etwas kuriose Frage: Wie öffnet man die Konsole?
    Mit Start-Ausführen konnte ich nix anfangen.
    Vielen Dank

  21. Hi,

    Die Konsole bezieht sich in den Anleitung auf die Konsole unter Kubuntu. In Windows ist das die Eingabeaufforderung oder einfach Windows-Taste –> Ausführen –> cmd eingeben.


Leave a comment

Noch keine Trackbacks.

%d Bloggern gefällt das: