PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nomenklatur alphabetisch sortieren



Sebastian_82
14-04-2008, 13:32
Hallo ich schreibe gerade meine Diplomarbeit und habe mir schon eine Nomenklatur so wie ich sie haben möchte erstellt, habe aber gerade bemerkt, dass sie nicht alphabetisch oder nicht richtig sortiert ist. Ich möchte, dass es genau nach dem alphabet geht, aber auch wenn ich ein wort oder ein symbol mit einen Punkt habe:(....weiß jemand wie man das einstellen kann??????...vielen Dank im Voraus

Hier ein minimal Beispiel:



\documentclass[,pdftex,a4paper,12pt,twoside]{report} %die Art der Schrift und Formatierung

\usepackage[ngerman]{babel} %Neue und alte Rechtschreibung
\usepackage[latin1]{inputenc} % Um Umlaute einfach schreiben zukönnen
\usepackage[T1]{fontenc}
\usepackage{graphicx} %Benötigt man für Grafiken
\usepackage{array}
%\usepackage{sebastian_format} %Packet wird für die Kopfzeile benötigt
%\usepackage{natbib} %Literaturverweise mit (Autor Jahr) nach DIN
\usepackage[T1]{url} %Web-Addressen auch mit T1-Encoding
\urlstyle{tt}

%-------------------------------------------Seitenansicht(alt)--------------------------------------------------------
%\setlength{\textheight}{23.5cm}
%\setlength{\oddsidemargin}{1cm}
%\setlength{\textwidth}{15cm}
\linespread{1.2}
\sloppy
%\usepackage{nomencl}
%---------------------------------------------Seitenansicht------------------------------------------------------------


\usepackage{geometry}
\geometry{a4paper,left=30mm,right=25mm,top=35mm,bo ttom=18mm}



%---------------------------------------------------------------------------------------------------------------------

\usepackage[notintoc]{nomentbl}
\usepackage{setspace}
%%%%%%%%%%%%%%%%%%%%%%%%%NAME%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%
\def\nomname{Nomenklatur}%
\def\nomAname{\textbf{Lateinische Buchstaben}}%
\def\nomGname{\textbf{Griechische Buchstaben}}%
\def\nomXname{\textbf{Konstanten}}%
\def\nomZname{\textbf{Indizes}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand*\nomXname{Konstanten}%

\newcommand*\ntblvalue{}%<--Wert
\newcommand*\ntblunit{}%<--Einheit

\renewcommand\nomgroup[1]{\large\bfseries%
\ifthenelse{\equal{#1}{A}}{%Latein...
\gdef\ntblvalue{}%
\gdef\ntblunit{Einheit}%
\nomAname}{%
\ifthenelse{\equal{#1}{G}}{%Griechisch...
\gdef\ntblvalue{}%
\gdef\ntblunit{Einheit}%
\nomGname}{%
\ifthenelse{\equal{#1}{X}}{%Konstanten...
\gdef\ntblvalue{Wert}%
\gdef\ntblunit{Einheit}%
\nomXname}{%
\ifthenelse{\equal{#1}{Z}}{%Indizes...
\gdef\ntblvalue{}%
\gdef\ntblunit{}%
\nomZname}{%
{}}}}}}


\makenomenclature
%\renewcommand\nompreamble{\thispagestyle{empty}}
%---------Beispiel für nomenklatur------------------------------------------------------------------------------------
% \nomenclature[aQ]{$\dot{Q}$}{heat flux}{W}{}
% \nomenclature[gA]{$A$}{area}{m$^2$}{$L^2$}
% \nomenclature[xL]{$L$}{length}{m}{SI base quantity}
% \nomenclature[zT]{$T$}{temperature}{K}{SI base quantity}


%----------------Kopfzeile--------------------------------------------------------------------------------------------
\usepackage{fancyhdr,ifthen}

\newcommand{\mymark}{%
\ifthenelse{\equal{x\rightmark}{x}}{\leftmark}{\ri ghtmark}
}
\AtBeginDocument{\renewcommand{\sectionmark}[1]{%
\markright{Abschnitt \thesection\ #1}}}
\pagestyle{fancy}
\fancyhf{}%<--erstmal alles weg...
%\fancyhead[LE,RO]{\nouppercase{\mymark}}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0.0pt}
\renewcommand{\footrulewidth}{0.0pt}
\fancypagestyle{plain}{}

%---------------------------------------------------------------------------------------------------------------------
\begin{document}


%------------------------------------------verzeichnisse-----------------------------------------------------------------

\pagenumbering{Roman}


\onehalfspacing
\printnomenclature
\addcontentsline{toc}{chapter}{Nomenklatur} %Nomenklatur, aber funktioniert nicht
\cleardoublepage
%---------------------Kopfzeile noch mal neu, wegen "/pagestyle{plain}"-----------------------------------------------

\pagestyle{fancy}
\fancyhf{}%<--erstmal alles weg...
\fancyhead[LE,RO]{\nouppercase{\mymark}}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.0pt}
\fancypagestyle{plain}{}

%-----------------------------------------------------------------------------------------------------------------------


\chapter{1}
\nomenclature[a ]{$\dot{q}$}{Wärmestromdichte}{$\frac{W}{m^2}$}{}
\nomenclature[a ]{$\dot{Q}$}{Wärmestrom}{$m^2$}{}
\nomenclature[a ]{$b$}{größer Kantenlänge der Scheibe}{mm}{}
\nomenclature[a ]{$E$}{Elastizitätsmodul des Glases}{-}{}
\nomenclature[a ]{$d$}{Dicke der Glasscheibe}{mm}{}
\nomenclature[a ]{$p$}{konstante Flächenlast}{$\frac{N}{mm^2}$}{}
\nomenclature[g ]{$\sigma$}{Biegespannung}{$\frac{N}{mm^2}$}{}
\nomenclature[a ]{$w$}{Wölbung der scheibe}{mm}{}
\nomenclature[a ]{$V$}{Volumen der Biegefläche einer Scheibe}{mm$^3$}{}
\chapter{2}
\nomenclature[z ]{$max$}{maximal}{}{}
\nomenclature[z ]{$\sigma$}{Biegespannung der Scheibe}{}{}
\nomenclature[z ]{$w$}{Wölbung der Scheibe}{}{}
\nomenclature[z ]{$V$}{Volumen der Biegefläche einer Scheibe}{}{}
\nomenclature[a ]{$a$}{kleiner Kantenlänge der Scheibe}{mm}{}
\nomenclature[x ]{$R_{s,Luft}$}{individuelle oder spezielle Gaskonstante}{$\frac{J}{Kg \cdot K}$}{287,058}
\nomenclature[a ]{$m_{Luft}$}{Masse der Luft im Scheibenzwischenraum}{kg}{}
\nomenclature[a ]{$T$}{Temperatur}{K}{}
\chapter{3}
\nomenclature[a ]{$V$}{Volumen}{$m^3$}{}
\nomenclature[z ]{$s$}{spezifisch}{}{}
\nomenclature[z ]{$0$}{Anfangsbedingungen (Herstellungsbedingungen)}{}{}
\nomenclature[a ]{$A$}{Fläche der Scheibe}{mm$^2$}{}

Dieser Text zeigt ein ganz einfaches,
aber schönes Beispiel für \LaTeX.
Dieser Text zeigt ein ganz einfaches,
aber schönes Beispiel für \LaTeX.




\end{document}

rais
19-04-2008, 13:39
Moin Sebastian,




\linespread{1.2}


raus damit, Du nutzt doch schon setspace




\sloppy


sowas ist imho in der Präambel nicht ratsam -- allerhöchstens lokal ... und dann auch nur, wenn es wirklich nicht anders umzusetzen ist.




\nomenclature[a ]{$\dot{Q}$}{Wärmestrom}{$m^2$}{}
\nomenclature[a ]{$b$}{größer Kantenlänge der Scheibe}{mm}{}

Wie Du bereits bemerkt hast, bringen Befehle die Sortierreihenfolge durcheinander: Dein \dot{Q} wird hier unter "a $\dot{Q}$" einsortiert, b unter "a $b$" -- und "\" kommt bei makeindex vor "b"...
Je nachdem, welche Befehle Du so zu verwenden gedenkst -- es gäbe ja analog noch \ddot und mit amsmath auch noch \dddot -- und wie es dann tatsächlich sortiert werden soll -- makeindex würde hier stur nach Befehlsnamen sortieren, also \dddot vor \ddot vor \dot -- ist hier `Hand anlegen' zumindest einfach umzusetzen...
BTW: wozu das Leerzeichen?
BTW2: Afaik werden Einheiten hierzulande aufrecht gesetzt ... und das konsequent; schau Dir ggf. Pakete wie units, SIunits oder sistyle mal an, wenn Du nicht auf so etwas wie z. B. $\frac{\mathrm{N}}{\mathrm{mm}^2}$ zurückgreifen willst.


\nomenclature[a$Q$]{$\dot{Q}$}{Wärmestrom}{m$^2$}{}
\nomenclature[a]{$b$}{größer Kantenlänge der Scheibe}{mm}{}

bzw. im direkten Vergleich $Q$, $\dot{Q}$, $\ddot{Q}$


\nomenclature[a]{$Q$}{ein Q}{-}{}
\nomenclature[a$Q$ 1]{$\dot{Q}$}{ein Q mit einem Punkt}{-}{}
\nomenclature[a$Q$ 2]{$\ddot{Q}$}{ein Q mit zwei Punkten}{-}{}

MfG

Sebastian_82
05-06-2008, 10:09
Hall Rais danke das du mir hilfst:)

Das Leerzeichen hatte keinen Grund habe ich schon weggemacht:)....wenn ich dich richtig verstanden habe kann ich wenn ich das Symbol mit in die Eckige Klammer herein packe beeinflußen.


\nomenclature[a$Q$]{$\dot{Q}$}{Wärmestrom}{$m^2$}{}

Das funktioniert auch, aber weiß heißt das eigentlich für Latex???? was sage ich den damit mit Latex??

Sebastian_82
05-06-2008, 10:17
Ach so ich glaub ich weiß......dass heißt das er das Symbol als das Zeichen in der eckigen klammer ansehen soll..oder??
Die Sortierung macht mir aber immer noch sorgen bei Zeichen wie $a_L$ die setzt er bei mir ganz nach unten, obwohl ich in die eckige Klammer ein $a$ schreibe????


\nomenclature[a$a$]{$a_L$}{Wärmeverlustkoeffizient bezogen auf mittlere Fluidtemperatur}{$\frac{K\cdot m^2}{W}$}{}

Ich habe da auch noch mal eine Frage für die Iidizes. Ich habe das Gefühl das er die gar nicht sortiert kann das sein????

Sebastian_82
05-06-2008, 12:51
Ok .....habe das Problem gefunden, dass Freizeichen habe ich manchmal vergessen wegzumachen. Es hat die Sortierung durcheinander gebracht:)

jetzt habe ich nur noch das Problem mit den Iidizes, die werden noch gar nicht sortiert oder so komisch das ich noch nicht herausgefunden habe noch welchem Schema.

hier mein Beispiel:


\documentclass[,pdftex,a4paper,12pt,twoside]{report} %die Art der Schrift und Formatierung

\usepackage[ngerman]{babel} %Neue und alte Rechtschreibung
\usepackage[latin1]{inputenc} % Um Umlaute einfach schreiben zukönnen
\usepackage[T1]{fontenc}
\usepackage{graphicx} %Benötigt man für Grafiken
\usepackage{array}
%\usepackage{sebastian_format} %Packet wird für die Kopfzeile benötigt
%\usepackage{natbib} %Literaturverweise mit (Autor Jahr) nach DIN
\usepackage[T1]{url} %Web-Addressen auch mit T1-Encoding
\urlstyle{tt}

%-------------------------------------------Seitenansicht(alt)--------------------------------------------------------
%\setlength{\textheight}{23.5cm}
%\setlength{\oddsidemargin}{1cm}
%\setlength{\textwidth}{15cm}
\linespread{1.2}
\sloppy
%\usepackage{nomencl}
%---------------------------------------------Seitenansicht------------------------------------------------------------


\usepackage{geometry}
\geometry{a4paper,left=30mm,right=25mm,top=35mm,bo ttom=18mm}



%---------------------------------------------------------------------------------------------------------------------

\usepackage[notintoc]{nomentbl}
\usepackage{setspace}
%%%%%%%%%%%%%%%%%%%%%%%%%NAME%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%
\def\nomname{Nomenklatur}%
\def\nomAname{\textbf{Lateinische Buchstaben}}%
\def\nomGname{\textbf{Griechische Buchstaben}}%
\def\nomXname{\textbf{Konstanten}}%
\def\nomZname{\textbf{Indizes}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand*\nomXname{Konstanten}%

\newcommand*\ntblvalue{}%<--Wert
\newcommand*\ntblunit{}%<--Einheit

\renewcommand\nomgroup[1]{\large\bfseries%
\ifthenelse{\equal{#1}{A}}{%Latein...
\gdef\ntblvalue{}%
\gdef\ntblunit{Einheit}%
\nomAname}{%
\ifthenelse{\equal{#1}{G}}{%Griechisch...
\gdef\ntblvalue{}%
\gdef\ntblunit{Einheit}%
\nomGname}{%
\ifthenelse{\equal{#1}{X}}{%Konstanten...
\gdef\ntblvalue{Wert}%
\gdef\ntblunit{Einheit}%
\nomXname}{%
\ifthenelse{\equal{#1}{Z}}{%Indizes...
\gdef\ntblvalue{}%
\gdef\ntblunit{}%
\nomZname}{%
{}}}}}}


\makenomenclature
%\renewcommand\nompreamble{\thispagestyle{empty}}
%---------Beispiel für nomenklatur------------------------------------------------------------------------------------
% \nomenclature[aQ]{$\dot{Q}$}{heat flux}{W}{}
% \nomenclature[gA]{$A$}{area}{m$^2$}{$L^2$}
% \nomenclature[xL]{$L$}{length}{m}{SI base quantity}
% \nomenclature[zT]{$T$}{temperature}{K}{SI base quantity}


%----------------Kopfzeile--------------------------------------------------------------------------------------------
\usepackage{fancyhdr,ifthen}

\newcommand{\mymark}{%
\ifthenelse{\equal{x\rightmark}{x}}{\leftmark}{\ri ghtmark}
}
\AtBeginDocument{\renewcommand{\sectionmark}[1]{%
\markright{Abschnitt \thesection\ #1}}}
\pagestyle{fancy}
\fancyhf{}%<--erstmal alles weg...
%\fancyhead[LE,RO]{\nouppercase{\mymark}}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0.0pt}
\renewcommand{\footrulewidth}{0.0pt}
\fancypagestyle{plain}{}

%---------------------------------------------------------------------------------------------------------------------
\begin{document}


%------------------------------------------verzeichnisse-----------------------------------------------------------------

\pagenumbering{Roman}


\onehalfspacing
\printnomenclature
\addcontentsline{toc}{chapter}{Nomenklatur} %Nomenklatur, aber funktioniert nicht
\cleardoublepage
%---------------------Kopfzeile noch mal neu, wegen "/pagestyle{plain}"-----------------------------------------------

\pagestyle{fancy}
\fancyhf{}%<--erstmal alles weg...
\fancyhead[LE,RO]{\nouppercase{\mymark}}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.0pt}
\fancypagestyle{plain}{}

%-----------------------------------------------------------------------------------------------------------------------


\nomenclature[z]{$c1$}{zum Absorber zugewandte transparente Oberfläche}{}{}
%Konvektion
\nomenclature[z]{u}{Unten}{}{}
\nomenclature[z]{o}{Oben}{}{}
\nomenclature[z]{c}{Konvektion}{}{}
\nomenclature[z]{->}{zu}{}{}
\nomenclature[z]{a}{Umgebung}{}{}
\nomenclature[z]{c2}{zur Umgebung zugewandte transparenten Oberfläche}{}{}
\nomenclature[z]{con}{Wärmeleitung}{}{}
\nomenclature[z]{200}{bei 200°C}{}{}
\nomenclature[z]{0}{bei 0°C}{}{}
\nomenclature[z]{p}{Absorber}{}{}
\nomenclature[z]{$int$}{intern}{}{}
\nomenclature[z]{$L$}{Wärmeverlust}{}{}
\nomenclature[z]{$i,j,k$}{Index}{}{}
\nomenclature[z]{$max$}{maximal}{}{}
\nomenclature[z]{$\sigma$}{Biegespannung der Scheibe}{}{}
\nomenclature[z]{$w$}{Wölbung der Scheibe}{}{}
\nomenclature[z]{$V$}{Volumen der Biegefläche einer Scheibe}{}{}
\nomenclature[z]{$s$}{spezifisch}{}{}
\nomenclature[z]{$o$}{Anfangsbedingungen (Herstellungsbedingungen)}{}{}
\nomenclature[z]{SZR}{Scheibenzwischenraum}{}{}
Dieser Text zeigt ein ganz einfaches,
aber schönes Beispiel für \LaTeX.
Dieser Text zeigt ein ganz einfaches,
aber schönes Beispiel für \LaTeX.




\end{document}

rais
06-06-2008, 09:15
Moin Sebastian,


jetzt habe ich nur noch das Problem mit den Iidizes, die werden noch gar nicht sortiert oder so komisch das ich noch nicht herausgefunden habe noch welchem Schema.

sieh es so: makeindex weiß weder von aktiven Zeichen (wie `$' für Mathe an/aus) noch von LaTeX-Befehlen (\irgendwas).
makeindex kann zwar Symbole, Nummern und Text unterscheiden, das umgeht das nomencl-Paket dadurch, daß es dem Suchstring für makeindex standardmäßig ein `a' voranstellt (bzw. Du hier `z').
Mit \nomenclature[foo]{bar}{..} gibst Du an, daß für den Eintrag `bar' ein `foo' zur Sortierung davorgehängt wird, also unter `foobar' statt unter `bar'.
Betrachte einmal die Reihenfolge bei


\documentclass{report}
\usepackage{nomencl}
\makenomenclature
\begin{document}
\printnomenclature
\nomenclature{\i}{punktloses i}
\nomenclature{$\sigma$}{Befehl in Mathe}
\nomenclature{i}{i normal}
\nomenclature{$i$}{i in Mathe}
\nomenclature[ai]{$i$}{i in Mathe, mit eigener Sortierhilfe}
\nomenclature{a}{a wie Anton}
\nomenclature{123}{numerischer Ausdruck}
\nomenclature{$123$}{numerischer Ausdruck (Mathe)}
~
\end{document}

etwas deutlicher wird es vllt in der entsprechenden .nlo:


\nomenclatureentry{a\i@[{\i}]\begingroup punktloses i\nomeqref {0}|nompageref}{1
}
\nomenclatureentry{a$\sigma$@[{$\sigma$}]\begingroup Befehl in Mathe\nomeqref {0
}|nompageref}{1}
\nomenclatureentry{ai@[{i}]\begingroup i normal\nomeqref {0}|nompageref}{1}
\nomenclatureentry{a$i$@[{$i$}]\begingroup i in Mathe\nomeqref {0}|nompageref}{1
}
\nomenclatureentry{ai$i$@[{$i$}]\begingroup i in Mathe, mit eigener Sortierhilfe
\nomeqref {0}|nompageref}{1}
\nomenclatureentry{aa@[{a}]\begingroup a wie Anton\nomeqref {0}|nompageref}{1}
\nomenclatureentry{a123@[{123}]\begingroup numerischer Ausdruck\nomeqref {0}|nom
pageref}{1}
\nomenclatureentry{a$123$@[{$123$}]\begingroup numerischer Ausdruck (Mathe)\nome
qref {0}|nompageref}{1}

$ (0x24) < num (0x30--0x39) < \ (0x5c) < text (0x61--0x7a)
stimmt zwar nicht ganz -- was ich damit meine, siehst Du vllt., wenn Du \nomenclature{I}{Irgendwas} ergänzt -- aber in erster Näherung solltest Du Dir damit schon zusammenreimen können, was Du wie sortiert bekommst.;)

MfG

Sebastian_82
09-06-2008, 09:26
Ja wunderbar jetzt habe auch ich es verstanden...glaube ich :):)

vielen Dank noch mal an ALLE