PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Formatierung des Abkürzungsverzeichnisses



bobberator
23-04-2006, 11:43
Hallo,

folgendes Problem:

Ich habe ein Abkürzungsverzeichnis erstellt und das klappt auch wunderbar.

Schön wäre es nun, wenn ich die einzeln definierten Abkürzungen nach Themen sortieren könnte, um dann folgende Ausgabe zu erhalten:

Abkürzungsverzeichnis

Thema 1
abk1.......abkürzung1
abk2.......abkürzung2
abk3.......abkürzung3


Thema 2
abk1.......abkürzung1
abk2.......abkürzung2
abk3.......abkürzung3


Thema 3
abk1.......abkürzung1
abk2.......abkürzung2
abk3.......abkürzung3


geht sowas überhaupt und wenn ja wie?

Danke

Timbooo
23-04-2006, 11:51
Hi, ich habe immernoch probleme mit dem Abkürzungverzeichnis.

Könntest du mal den relevanten Code hier posten..

Danke

bobberator
23-04-2006, 15:55
Also,

nach einigem Studium diverser Foren und der LaTeX-Doku
ftp://ftp.dante.de/tex-archive/macros/latex/contrib/nomencl/nomencl.pdf zum nomencl-Paket gibts die Lösung von mir an mich :) selbst:

In der Präambel folgende Einträge:


\usepackage{nomencl}
\let\abbrev\nomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}
\makenomenclature

\usepackage[normalem]{ulem}
\newcommand{\markup}[1]{\uline{#1}}

Dann im Hauptdokument mit einem einfachen


\printnomenclature

an der passenden Stelle das Abkürzungsverzeichnis einfügen.

Soll das Abkürzungsverzeichnis auch noch in das Inhaltsverzeichnis dann


\addcontentsline{toc}{chapter}{Abkürzungsverzeichn is}

hinter den printnomenclature-Befehl einfügen.

Die Themen kann man folgendermaßen definieren (in der Präambel)


\RequirePackage{ifthen}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{N}}{\item[\textit{\textbf{NMR-Spektroskopie}}]\vspace{12pt}}{%
\ifthenelse{\equal{#1}{I}}{\item[\textit{\textbf{Infratrot-Spektroskopie}}]\vspace{12pt}}{}}
{%
\ifthenelse{\equal{#1}{M}}{\item[\textit{\textbf{Massenspektrometrie}}]\vspace{12pt}}{}}
}

Beispiel zur Verwendung:


\nomenclature[N]{Hz}{Hertz}

Nun wird diese Abkürzung unter das "Thema" NMR-Spektroskopie eingefügt. Wird die option [N] weggelassen wird der Eintrag in den allgemeinen Teil des Abkürzungsverzeichnisses gepackt.

Probleme gibt es bei mir bei Verwendung von Texnic-Center bei der Verwendung des Makeindex-Befehls. Hier steht zwar in den Argumenten:

"%bm".nlo -s C:\texmf\tex\latex\nomencl\nomencl.ist -t "%bm".nls

trotzdem funktioniert das dann nicht.
Ich kompiliere das Dokument 2-3x und geh dann immer in der Kommandozeile in das jeweilige Verzeichnis, wo das Hauptdokument liegt und gebe den Befehl manuell ein


meindokument.nlo -s nomencl.ist -o meindokument.nls

Nach einer weiteren Kompilierung klappts ohne Probleme.

Für den Code übernehme ich keine Garantie auf Vollständigkeit.

countbela666
23-04-2006, 17:46
Soll das Abkürzungsverzeichnis auch noch in das Inhaltsverzeichnis dann

\addcontentsline{toc}{chapter}{Abkürzungsverzeichn is}hinter den printnomenclature-Befehl einfügen.Ist unnötig, dafür gibt's die nomencl-Paketoption [intoc]

Probleme gibt es bei mir bei Verwendung von Texnic-Center bei der Verwendung des Makeindex-Befehls. Hier steht zwar in den Argumenten:

"%bm".nlo -s C:\texmf\tex\latex\nomencl\nomencl.ist -t "%bm".nlstrotzdem funktioniert das dann nicht.Und wenn du statt des -t das korrekte -o einsetzt? ;)

Grüße,
Marcel

bobberator
23-04-2006, 18:04
Ist unnötig, dafür gibt's die nomencl-Paketoption [intoc]
Und wenn du statt des -t das korrekte -o einsetzt? ;)

Grüße,
Marcel

Das mit der [intoc] option stimmt. Aber falls das nicht funktioniert (so wie bei mir auch schon mal) geht das mit dem \addtocontentsline-Befehl auch.

Mit den Makeindex-Argumenten ist das schon was anderes.

Das klappt auch nicht, habe da schon alle optionen durch.

Mit der manuellen Eingabe von

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

klappts auf der Kommandozeile wunderbar.

Ich vermute es liegt an den Argumenten die mit %bm zu tun haben, da ich da schon so einige Variationen gesehen habe %pm und %tm. Klappt aber alles nicht so wirklich, so daß ich einfach in der cmd-Umgebung arbeite.

Greetz
Bobberator

snake
27-04-2006, 17:51
Hallo,

das was Du da vorbereitet hast klappt wunderbar. :)

Ich habe nur ein Problem...

Wenn ich das folgendermaßen im Vorspann mache


\usepackage{nomencl}
\let\abbrev\nomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}
\makenomenclature

\usepackage[normalem]{ulem}
\newcommand{\markup}[1]{\uline{#1}}


\RequirePackage{ifthen}
\renewcommand{\nomgroup}[1]{
\ifthenelse{\equal{#1}{A}}{\item[\textit{\textbf{A}}]\vspace{12pt}}{}
\ifthenelse{\equal{#1}{B}}{\item[\textit{\textbf{B}}]\vspace{12pt}}{}
}

Dann sieht alles supi aus, er schreibt das "A" auch schön fett und kursiv. Nur dumm, dass er danach auch die Punkte macht, kann man das irgendwie abstellen? Aber zwischen den Abkürzungen und den Erkärungen sollen die Punkte stehen.

Im Anhang ist mein Testergebnis...

Danke

snake
27-04-2006, 21:29
ich hab es heraus gefunden, wie es geht, hier folgt ein Minimalbeispiel, für diejenigen die genau das auch brauchen..




\documentclass[12pt,oneside,ngerman]{scrbook}
\usepackage[intoc]{nomencl}
\let\abbrev\nomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1}
\setlength{\nomitemsep}{-\parsep}
\makenomenclature

\usepackage[normalem]{ulem}
\newcommand{\markup}[1]{\uline{#1}}

\RequirePackage{ifthen}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{\item[\textit{\textbf{A}}]\vspace{12pt}}{}
\ifthenelse{\equal{#1}{B}}{\item[\textit{\textbf{B}}]\vspace{12pt}}{}
\ifthenelse{\equal{#1}{C}}{\item[\textit{\textbf{C}}]\vspace{12pt}}{}
\ifthenelse{\equal{#1}{D}}{\item[\textit{\textbf{D}}]\vspace{12pt}}{}
%usw.
}

\begin{document}
\nomenclature[A]{Aa\dotfill}{blafoo}
\nomenclature[B]{Bb\dotfill}{Blafoo}
\nomenclature[C]{Cc\dotfill}{Blafoo}
\nomenclature[D]{Dd\dotfill}{Blafoo}
\markboth{Abkürzungsverzeichnis}{Abkürzungsverzeic hnis}
\printnomenclature
\end{document}



Der Unterschied ist bei "\dotfill" zu suchen.

Gruß

Snake

-Karsten-
11-01-2007, 12:45
Hallo Experten,
ich hab jetzt ein Abkürzungsverzeichnis erstellt (mit nomencl), funktioniert auch. Nur will LaTeX mir zuerst alle mathematischen Abkürzungen (z.B. $a$) von a bis z sortieren und dann alle nichtmathematischen (z.B. a) von a bis z.

Ich möchte jedoch das er mir das alles zusammen von a bis z macht.

Muss ich bei

makeindex diplomarbeit.nlo -s nomecl.ist -o diplomarbeit.nls
statt -o einen anderen Buchstaben setzen (also mit -l kommt das gleiche raus).
Oder geht das was mit prefix?

PS: ich kann die Dokumentation zum usepackage nomencl übrigens nicht öffnen (iss ne PDF), da gibts immer nen Fehler


Der Karsten