Ich hoffe, die Frage ist von allgemeinem Interesse, es geht um ein Abkürzungsverzeichnis mit deutschen Sortierregeln.

Für ein Buch habe ich Schwierigkeiten, über nomencl die Umlaute ÄÖU bzw Akzente wie É richtig im Abkürzungsverzeichnis einzuordnen.

Ich beziehe mich auf diesen Eintrag und für xindy auf diesen.

Bei mir läuft mit dem Befehl

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

alles korrekt bis auf die Sortierung der Sonderzeichen, so stehen Ä oder É erst nach Z. Für sonstige Indizes benutze ich in Kile normalerweise den Befehl

xindy -M texindy -M ff-ranges -C utf8 -L german-din '%S.idx'

Diese Optionen sortieren nach deutschen Vorgaben auch die genannten Zeichen korrekt. Es gelingt mir aber nicht, xindy nun mit dem Paket nomencl zu benutzen, im Netz habe ich dazu nichts gefunden.

% !TEX makeindex -s nomencl.ist -o document.nls -t document.nlg document.nlo
\documentclass{article}
\usepackage{nomencl}
\let\abk\nomenclature
\makenomenclature
\begin{document}
%===========
\tableofcontents
\printnomenclature

\section{Kapitel}
Die Abkürzung ÖBL\abk{ÖBL}{Österreichisches Dings} steht im Abkürzungsverzeichnis.

Die Abkürzung ÉNS\nomenclature{ÉNS}{École normale supérieure} steht im Abkürzungsverzeichnis.

Auch die Abkürzung usw.\abk{usw.}{und so weiter} steht im Abkürzungsverzeichnis.

Die Abkürzung z.B.\abk{z.B.}{zum Beispiel} steht im Abkürzungsverzeichnis.

%===========
\end{document}

gefragt 27 Feb '16, 15:07

kai's gravatar image

kai
5484914
Akzeptiert-Rate: 33%

bearbeitet 22 Mär '21, 21:38

stefan's gravatar image

stefan ♦♦
18.3k163148


Verwende glossaries statt nomencl. Im Gegensatz zu nomencl unterstützt dies auch xindy.

Für nomencl müsste man erst eine nomencl.xdy schreiben, die xindy beibringt, aus der nlo-Datei eine nls-Datei (im Format von nomencl) zu erzeugen. Dabei stört bereits, dass nomencl keine \indexentry-Befehle in die nlo-Datei schreibt, sondern \nomenclatureentry. Man müsste also sogar nomencl patchen, um das zu ändern. Das folgende Beispiel nomencl-test.tex macht genau das und erzeugt auch eine rudimentäre nomencl.xdy, die an Stelle von makeindex.xdy verwendet werden kann. Ich kann jedoch nicht versprechen, dass diese bei allen Arten von mit nomencl erzeugten nlo-Dateien funktioniert!

Open in Online-Editor
\documentclass{article}
\usepackage{nomencl,xltxtra}
\let\abk\nomenclature
\makenomenclature

\makeatletter
\renewcommand\@@@nomenclature[3][]{%
 \def\@tempa{#2}\def\@tempb{#3}%
 \protected@write\@nomenclaturefile{}%
  {\string\indexentry{#1\nom@verb\@tempa @[{\nom@verb\@tempa}]%
      \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
        |nompageref}{\thepage}}%
 \endgroup
 \@esphack}
\makeatother

\usepackage{filecontents}
\begin{filecontents*}{nomencl.xdy}
;; nomencl.xdy to support xindy with patches nomencl.sty
(require "texindy.xdy")
(require "makeindex.xdy")

(markup-index :open
"\begin{thenomenclature}
  \providecommand*\lettergroupDefault[1]{}
  \providecommand*\lettergroup[1]{%
      \nomgroup{#1}%
  }
"
              :close "~n~n\end{thenomenclature}~n"
              :tree)
(markup-locclass-list :open "" :sep "")
(markup-locref-list   :sep "")
(define-attributes (("default" "nompageref")))

(markup-locref :open "\nompageref{" :close "}" :attr "nompageref")
\end{filecontents*}

\begin{document}
%===========
\tableofcontents
\printnomenclature

\section{Kapitel}
Die Abkürzung ÖBL\abk{ÖBL}{Österreichisches Dings} steht im Abkürzungsverzeichnis.

Die Abkürzung ÉNS\nomenclature{ÉNS}{École normale supérieure} steht im Abkürzungsverzeichnis.

Auch die Abkürzung usw.\abk{usw.}{und so weiter} steht im Abkürzungsverzeichnis.

Die Abkürzung z.B.\abk{z.B.}{zum Beispiel} steht im Abkürzungsverzeichnis.

%===========
\end{document}

Dies erzeugt beim ersten Aufruf die folgende Datei nomencl-test.nls:

Open in Online-Editor
\indexentry{aÖBL@[{ÖBL}]\begingroup Österreichisches Dings\nomeqref {0}|nompageref}{1}
\indexentry{aÉNS@[{ÉNS}]\begingroup École normale supérieure\nomeqref {0}|nompageref}{1}
\indexentry{ausw.@[{usw.}]\begingroup und so weiter\nomeqref {0}|nompageref}{1}
\indexentry{az.B.@[{z.B.}]\begingroup zum Beispiel\nomeqref {0}|nompageref}{1}

Der Aufruf: xindy -o nomencl-test.nls -M nomencl.xdy -M ff-ranges -C utf8 -L german-din nomencl-test.nlo (bitte nomencl-test zweimal durch den jeweiligen Basisnamen des Dokuments ersetzen), erzeugt daraus folgende nomencl-test.nlo:

Open in Online-Editor
\begin{thenomenclature}
  \providecommand*\lettergroupDefault[1]{}
  \providecommand*\lettergroup[1]{%
      \nomgroup{#1}%
  }

  \lettergroup{A}
  \item [{ÉNS}]\begingroup École normale supérieure\nomeqref {0}\nompageref{1}
  \item [{ÖBL}]\begingroup Österreichisches Dings\nomeqref {0}\nompageref{1}
  \item [{usw.}]\begingroup und so weiter\nomeqref {0}\nompageref{1}
  \item [{z.B.}]\begingroup zum Beispiel\nomeqref {0}\nompageref{1}

\end{thenomenclature}

Beim zweiten LaTeX-Lauf führt das dann zu dem Ergebnis:

alt text

Auch, wenn das auf den ersten Blick so funktioniert, bleibe ich bei meinem Rat: Verwende glossaries. Dabei bist Du dann nicht auf irgendwelche Hacks wie das Umdefinieren interner Anweisungen und die Hoffnung, dass das auch in Zukunft noch funktionieren wird, angewiesen.

Es sei bei dieser Gelegenheit noch darauf hingewiesen, dass man z. B. korrekt mit vermindertem Leerzeichen setzt, also z.\,B. Das gilt im Deutschen grundsätzlich für Abkürzungen mit Binnenpunkten. Stilistisch wird außerdem empfohlen, nicht gesprochene Abkürzungen auszuschreiben beziehungsweise durch entsprechende Synonyme wie »beispielsweise« zu ersetzen. Abkürzungen am Satzanfang schreibt man ebenfalls aus. Das gilt auch für Begriffe wie: Seite, Abbildung, Tabelle, Abschnitt und ähnliche.

Permanenter link

beantwortet 27 Feb '16, 16:54

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 03 Mär '16, 17:19

Toll, vielen Dank für die ausführliche Antwort, das hilft mir weiter!

(27 Feb '16, 23:26) kai
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×6
×3

gestellte Frage: 27 Feb '16, 15:07

Frage wurde gesehen: 6,924 Mal

zuletzt geändert: 03 Mär '16, 17:19