PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abkürzungsverzeichnis mit nomencl OHNE longtable



CyrusField
24-10-2010, 14:59
Hallo zusammen,

basierend auf der Vorarbeit von countbela666 in http://www.mrunix.de/forums/showpost.php?p=187341&postcount=6 habe ich versucht, ein Abkürzungsverzeichnis mit drei Spalten anzulegen, bei dem zudem noch die Einheiten mit Punkten von der Beschreibung abgetrennt sind.

Prinzipiell hätte ich auch die Lösung über eine longtable bevorzugt, aber da ich in meinem Dokument mit teilw. sehr langen Beschreibungen zu tun habe (d.h. Zeilenumbrüche), war ich mit dem Layout nicht wirklich zufrieden.

Da ich schon zweimal danach gefragt wurde, wie "meine" Lösung aussieht poste ich sie jetzt hier für alle:



\documentclass[a4paper]{scrbook}

\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}

%*** Definition des Layouts
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{plain} % Kopfzeilen auch fuer erste Seite eines Kapitels

\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ #1}{}}
\lhead[\fancyplain{}{\thepage}]{\fancyplain{}{\rightmark}}
\rhead[\fancyplain{}{\leftmark}]{\fancyplain{}{\thepage}}
\cfoot{}

%*** Abkürzungsverzeichnis
\usepackage{nomencl}
\usepackage{ifthen}

\makenomenclature

\begin{document}

%*** römische Seitenzahlen für Inhaltsverzeichnis, etc.
\setlength{\headwidth}{\textwidth}
\pagenumbering{Roman}

\addcontentsline{toc}{chapter}{Inhaltsverzeichnis}
\tableofcontents

\fancyhf{}
\setlength{\headwidth}{\textwidth} %*** Kopf- und Fußzeilen leeren
% Neudefinition der Kopfzeilen, nur noetig im ersten Kapitel, Teil in eckigen Klammern dreht bei zweiseitigem Druck die Anordnung der Kopfteile um
\lhead[\fancyplain{}{\thepage}]{\fancyplain{}{\leftmark}}
\rhead[\fancyplain{}{\leftmark}]{\fancyplain{}{\thepage}}
\cfoot{}

\newpage

\addcontentsline{toc}{chapter}{Abkürzungen und Formelzeichen}
\markboth{Abkürzungen und Formelzeichen}{Abkürzungen und Formelzeichen}

\printnomenclature[2cm]

%*** beliebige Einträge für AKV
\nomenclature[f]{A1}{Eintrag ohne Einheit}%
\nomenclature[f]{A2}{Ein langer Eintrag ohne Einheit, der zeigt, dass der Zeilenumbruch gut funktioniert. Falls das noch nciht teicht, gibt's hier noch ein bisschen Text}%

\nomenclature[b]{$\Delta$}{Änderung, Differenz}%
\nomenclature[b]{$\nu$}{Frequenz\nomunit{Hz}}%
\nomenclature[a]{$E$}{Energie\nomunit{W}}%

\nomenclature[e]{Al}{Aluminium}%
\nomenclature[e]{Fe}{Eisen}%
\nomenclature[e]{Ni}{Nickel}%

\newpage

\setcounter{chapter}{0}
\pagenumbering{arabic}

\chapter{Kapitel 1}\label{Kapitel 1}

blablabla

\section{ToC Test}

Unterkapitel, damit man schön die Punkte im ToC sehen kann.

\chapter{Kapitel 2}\label{Kapitel 2}
foo
\newpage
bar

\newpage

\end{document}


Die Änderungen am nomencl-Layout mache ich in einer extra nomencl.cfg-Datei:



\renewcommand{\nomname}{\vspace{-1.15cm}\section*{\huge{Abkürzungen und Formelzeichen}}}

\renewcommand{\nomgroup}[1]{\bigskip
{\ifthenelse{\equal{#1}{A}}{\item \emph{\bfseries \large{Lateinische Buchstaben}}}
{\ifthenelse{\equal{#1}{B}}{\item \emph{\bfseries \large{Griechische Buchstaben}}}
{\ifthenelse{\equal{#1}{D}}{\item \emph{\bfseries \large{Sonderzeichen}}}
{\ifthenelse{\equal{#1}{C}}{\item \emph{\bfseries \large{Indizes}}}
{\ifthenelse{\equal{#1}{F}}{\item \emph{\bfseries \large{Abkürzungen}}}
{\ifthenelse{\equal{#1}{E}}{\item \emph{\bfseries \large{Chemische Symbole}}}
{}}}}}}
\smallskip
}}

\newcommand{\correctdotfill}{\leaders\hbox to 9.25pt{\hss.\hss}\hfill} % Punkteabstände im Abkürzungsverzeichnis wie üblich
\renewcommand{\dotfill}{\leaders\hbox to 5pt{\hss.\hss}\hfill}

\newcommand{\nomunit}[1]{%
\renewcommand{\nomentryend}{\correctdotfill #1}}

\setlength{\nomitemsep}{-\parsep}


Das ist ein bisschen mehr als ein Minimalbesispiel - aber ich habe auch alle (für mich) wichtigen Teile bzgl. doppelseitigem Layout und Anpassung der Punktabstände mit drin - die Sachen werden ja auch immer wieder mal nachgefragt.

Ich bin sicherlich kein LaTaX-Experte - besonders die Änderungen im Layout von Kopf- und Fußzeilen gehen bestimmt irgendwie einfacher... Für Tipps bin ich hier natürlich auch immer dankbar :D


Grüße
Stefan

bobmalaria
24-10-2010, 15:24
ich finde es immer noch erstaunenswert wie oft nomencl verwendet wird wo es doch mit dem glossaries paket eine lösung gibt die sehr viel einfacher funktioniert wenn man mehrere verzeichnisse braucht.

für ien verzeichnis ist nomencl ja schön unf gut, für alles andere sind für meinen geschmack zu viele verenkungen nötig :)

das nur mal off-topic und vielleicht denkt ja einer darüber nach der gerade rat sucht wie man ein abkürzungsverzeichnis erstellt.

gruss

CyrusField
24-10-2010, 15:28
ich finde es immer noch erstaunenswert wie oft nomencl verwendet wird wo es doch mit dem glossaries paket eine lösung gibt die sehr viel einfacher funktioniert wenn man mehrere verzeichnisse braucht.

In meinem Fall ist's eigentlich aus Faulheit heraus entstanden... Das Verzeichnis war schon fertig mit nomencl "gesetzt" uund sollte duch mich nur angepasst werden. Da ich aber mit glossaries noch nie gearbeitet habe und auch nur dieses eine Verzeichnis brauchte.... ;)

bobmalaria
24-10-2010, 16:24
hi,

na du hast doch mehrere verzeichnisse, sonst hättest du nicht die \ifthenelse anweisungen um zwischen latainischen und griechischen geschichten usw. zu unterscheiden. :)

bei dem ganzen code der da steht (gut ich denke viel copy&paste von edicos erweiterung) währe es eventuell auch einfach gewesen umzusteigen :)

gruss

CyrusField
24-10-2010, 17:00
Ach soooo - ich hatte das "mehrere Verzeichnisse" jetzt auf komplette Verzeichnisse, also inkl. eigener Top-Level-Überschriften und Einträgen ins ToC interpretiert.


Aber nein - die ifthen-Abfragen hatte ich schon vor mehreren Jahren in einem großen Dokument benutzt - der Code ist auf meinen Mist gewachsen. Aber damals (2004 oder so) wusste ich noch nichts von glossaries...