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

Open in Online-Editor
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

Open in Online-Editor
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.

Open in Online-Editor
\documentclass{article}
\usepackage{nomencl,xltxtra}
\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, 09:07

kai's gravatar image

kai
528311
Akzeptiert: 100%

bearbeitet 27 Feb, 09:24


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, 10:54

saputello's gravatar image

saputello
18.4k22352

bearbeitet 03 Mär, 11:19

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

(27 Feb, 17:26) kai
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×4
×3

Frage gestellt: 27 Feb, 09:07

Frage wurde angeschaut: 612 Mal

Zuletzt aktualisiert: 03 Mär, 11:19