Seite 1 von 3

Nomenklatur editieren

Verfasst: Mi 30. Jan 2013, 18:01
von Peterlinho
Hallo, ich habe folgenden Code zum Thema "Nomenklatur" aus diesem Forum, da meine Frage unter dem entsprechenden Thema nicht beantwortet wurde, musste ich notgedrungen ein neues Thema aufmachen :)
\documentclass[a4paper,11pt,oneside,openany,parskip idx]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{lmodern} 
%\usepackage[showframe]{geometry}
\setkomafont{sectioning}{\normalcolor\bfseries} 
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{paralist}
\usepackage{chngcntr}
\counterwithin{figure}{section}




%ab hier Nomenklatur



\usepackage{siunitx}

% Abkürzungs- /Symbolverzeichnis
\usepackage[intoc]{nomencl} % Erzeugt ein Symbolverzeichnis
\makenomenclature

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

\renewcommand*\nomname{Nomenklatur}
\setlength\nomlabelwidth{.2\linewidth}
\setlength\nomitemsep{-\parsep}
\newlength\nomunitwidh
\setlength\nomunitwidh{8em}

% \newcommand\nomunit[1]{\def\nomentryend{\hfill#1}}
\renewcommand\nomgroup[1]{
   \def\makelabel##1{##1}
   \bigskip
   \ifx#1A\relax
      \item
      \item[\textbf{\Large Lateinische Formelbuchstaben}]
      \item
      \item[\textbf{Symbol}]\parbox[b]
      {\nomunitwidh}
      {\textbf{Einheit}}\textbf{Bedeutung}\hfill
   \fi
   \ifx#1B\relax
      \item
      \item[\textbf{\Large Griechische Formelbuchstaben}]
      \item
      \item[\textbf{Symbol}]\parbox[b]{\nomunitwidh}{\textbf{Einheit}}\textbf{Bedeutung}\hfill
   \fi
   \ifx#1C\relax
      \item[\textbf{\Large Indizes und Hochzeichen}]
      \item
   
\fi
   \ifx#1D\relax
      \item[\textbf{\Large Abkürzungen}]
      \item   
      
\fi
   \ifx#1E\relax
      \item[\textbf{\Large Triebwerksebenen}]
      \item       
   \fi
   \medskip
   \let\makelabel\nomlabel
}
\usepackage{filecontents}
\begin{filecontents*}{Nomenclature.tex}


\nomenclature[A]{c}{Geschwindigkeit im Absolutsystem (erdfest)}{\si[per-mode=symbol]{\metre\per\second}}
\nomenclature[A]{}{spezifische Wärmekapazität}{\si[per-mode=symbol]{\joule\per\kilogram\per\kelvin}}
\nomenclature[A]{e}{spezifische Exergie}{\si[per-mode=symbol]{\joule\per\kilogram}}
\nomenclature[A]{E}{Exergie}{\si{\J}}
\nomenclature[A]{F}{Kraft}{\si{\newton}}
\nomenclature[A]{h}{spezifische Enthalpie}{\si[per-mode=symbol]{\joule\per\kilogram}}
\nomenclature[A]{m}{Masse}{\si{\kilogram}}
\nomenclature[A]{Ma}{Machzahl}{-}
\nomenclature[A]{p}{Druck}{\si{\pascal}}
\nomenclature[A]{P}{Leistung}{\si{\W}}
\nomenclature[A]{Q}{Wärmemenge}{\si{\J}}
\nomenclature[A]{R}{spezifische Gaskonstante}{\si[per-mode=symbol]{\joule\per\kilogram\per\kelvin}}
\nomenclature[A]{s}{spezifische Entropie}{\si[per-mode=symbol]{\joule\per\kilogram\per\kelvin}}
\nomenclature[A]{T}{Temperatur}{\si{\kelvin}}
\nomenclature[A]{w}{Geschwindigkeit im Relativsystem (flugzeugfest)}{\si[per-mode=symbol]{\metre\per\second}}




\nomenclature[B]{$\Delta$}{Differenz}{-}
\nomenclature[B]{$\epsilon$}{Umgebungsfunktion,Exergiereferenzgerade}{-}
\nomenclature[B]{$\zeta$}{Exergetischer Wirkungsgrad}{-}
\nomenclature[B]{$\kappa$}{Isentropenexponent}{-}
\nomenclature[B]{$\mu$}{Nebenstromverhältnis}{-} 


\nomenclature[C]{i}{allgemeiner Zustandspunkt}{}
\nomenclature[C]{krit}{kritisch,kritischer Zustand}{}
\nomenclature[C]{max}{maximal}{}
\nomenclature[C]{mech}{mechanisch}{}
\nomenclature[C]{kin}{kinetisch}{}
\nomenclature[C]{phys}{physikalisch}{}
\nomenclature[C]{therm}{thermisch}{}
\nomenclature[C]{t}{total,Totalzustand}{}
\nomenclature[C]{Neben}{Nebenstrom}{}
\nomenclature[C]{Kern}{Kernstrom}{}
\nomenclature[C]{ges}{gesamt}{}

\nomenclature[D]{ACARE }{Advisory Council for Aeronautics Research in Europe}{}
\nomenclature[D]{OPEC }{Organization of the Petroleum Exporting Countries}{} 
 
 
\nomenclature[E]{9}{Düsenaustritt Kernstrom}{}
\nomenclature[E]{19}Düsenaustritt Nebenstrom}{} 

 
\end{filecontents*} 




\begin{document}

\tableofcontents

\newpage
\input{Nomenclature} 
\printnomenclature

\end{document}
Nun möchte ich folgendes abändern, weiß aber nicht genau wie das funktioniert:

1) Wie schaffe ich es, ein neuen Teilabschnitt der Nomenklatur (mit Teilabschnitt meine ich: "Lateinische Formelbuchstaben " , "Griechische Formelbuchstaben" ... und die entsprechenden Auflistungen auf einer neuen Seite beginnen zu lassen?

2) Ich möchte unter den Teilabschnitt "Lateinische Formelbuchstaben " einen ganz normalen Satz schreiben. Wie kann ich in der Nomenklatur diesen einfügen, sodass es danach mit dem Teilabschnitt "Griechische Formelbuchstaben" weitergeht?

3) Zwischen den Teilabschnitten "Lateinische Formelbuchstaben " , "Griechische Formelbuchstaben" und "Indizes und Hochzahlen" ist jeweils ein gewisser Abstand, wenn ich diesen auch zwischen "Indizes und Hochzahlen" und "Abkürzungen" mittels einfügen von
\item
mache (wie im obigen Code an gegebener Stelle) klappt das nicht, wieso?

Soweit erstmal, hoffe es kann mir jemand helfen, Danke!

Verfasst: Mi 30. Jan 2013, 18:40
von u_fischer
Meine Güte. Lauter \items um Abstände zu erzeugen. Wer hat das denn geschrieben? Ansonsten: In deiner anderen Frage hast du doch behauptet, du würdest "den Code von cgnieder" benutzen. Der verwendet aber das viel bessere glossaries und nicht nomencl.

Verfasst: Mi 30. Jan 2013, 22:33
von Peterlinho
Wenn du dir den ganzen Thread durchliest wirst du feststellen, dass er es auch mit nomencl macht. (cgnieder)

Könntest du mir trotzdem vielleicht helfen?

Verfasst: Mi 30. Jan 2013, 23:17
von u_fischer
Peterlinho hat geschrieben:Wenn du dir den ganzen Thread durchliest wirst du feststellen, dass er es auch mit nomencl macht. (cgnieder)
Hm. Er ist das schuld. Naja, halte dich besser an seinen letzten Vorschlag, der in dem er glossaries verwendet. Die davor sind eher Hacks und nicht wirklich empfehlenswert.

Verfasst: Fr 1. Feb 2013, 12:34
von cgnieder
Peterlinho hat geschrieben:Wenn du dir den ganzen Thread durchliest wirst du feststellen, dass er es auch mit nomencl macht. (cgnieder)
Und Du hast von allen Vorschlägen leider den schlechtesten genommen. Wenn man den ganzen Thread liest, stellt man auch fest, dass ich mehr als einmal empfehle, das Tabellenlayout mit »nomentbl« oder besser noch mit »glossaries« anzugehen und habe obiges als Notlösung bezeichnet. (Wieso ich \item verwendet habe, um Abstände zu erzeugen, ist mir etwas schleierhaft, vielleicht war es spät und ich zu faul...)

Wo ist das Problem, »glossaries« zu verwenden?

Verfasst: Fr 1. Feb 2013, 12:42
von u_fischer
(Wieso ich \item verwendet habe, um Abstände zu erzeugen, ist mir etwas schleierhaft, vielleicht war es spät und ich zu faul...)
Nicht nur bei den Abständen sind die \item etwas zweifelhaft. Auch bei den Überschriften, finde ich sie nicht wirklich gelungen. Wenn man (Zwischen)-Überschriften will, sollte man auch Überschriftenbefehle benutzen. Ich würde sowas eher so aufbauen:
\newcommand\titleA{\section{Latein}}
\newcommand\titleB{etwas text am Ende von A 
                                 \newpage\section{Griechisch}}
%usw

\renewenvironment{thenomenclature}{}{\endlist\endgroup}

\makeatletter
\renewcommand\nomgroup[1]{%
 \ifnum \@listdepth>0 \endlist\endgroup\fi
 \csname title#1\endcsname
 \begingroup %% und hier geeignete Listdefinition
   }
\makeatother

Verfasst: Fr 1. Feb 2013, 12:48
von cgnieder
Ich glaube, der gesamte Code geht ursprünglich auf das Beispiel aus der »nomencl« Dokumentation (S. 11) zurück
\RequirePackage{ifthen}
\renewcommand{\nomgroup}[1]{%
  \ifthenelse{\equal{#1}{R}}{\item[\textbf{Variables}]}{%
    \ifthenelse{\equal{#1}{G}}{\item[\textbf{Constants}]}{}}}
und hatte sich mit der Zeit verselbstständigt. Der genannte Thread ist leider nicht der einzige, der sich damit herumschlägt....

Verfasst: Sa 2. Feb 2013, 12:06
von Peterlinho
Alles klar, habe es nun mit glossaries zum Laufen gebracht. Kann ich also dein Beispiel von oben übernehmen? Bin nämlich noch nicht so der Crack in Latex und habe auch nicht mehr viel Zeit bis zur Abgabe, deshalb muss ich mit copy & paste sowie Abänderungen arbeiten.

Habe nun mal deinen Code ein wenig abgeändert (Sortierung selbst definiert):
\documentclass[a4paper,11pt,oneside,openany,parskip]{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{lmodern} 
\usepackage[showframe]{geometry}
\setkomafont{sectioning}{\normalcolor\bfseries} 
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{paralist}
\usepackage{chngcntr}
\counterwithin{figure}{section}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\clearscrplain
\ohead{\pagemark}
\ihead{\headmark}
\setheadsepline{0.4pt}



% ab hier dein Code

\usepackage{siunitx}
\usepackage[sort=def]{glossaries}
\usepackage{longtable}



% für die Bequemlichkeit einen \nomenclature Befehl:
\newcommand*\nomenclature[5][A]{%
  \ifx#1A\relax
    \newglossaryentry{#2}{
      name={#3} ,
      description={#4} ,
      sort={#2} ,
      user1 = {\unexpanded{#5}} ,
      parent={latin}
    }
  \fi
  \ifx#1D\relax
    \newglossaryentry{#2}{
      name={#3} ,
      description={#4} ,
      sort={#2} ,
      user1 = {#5} ,
      parent={Abkuerzung}
    }
  \fi
  \ifx#1B\relax
    \newglossaryentry{#2}{
      name={#3} ,
      description={#4} ,
      sort={#2} ,
      user1 = {\unexpanded{#5}} ,
      parent={greek}
    }
  \fi
  \ifx#1C\relax
    \newglossaryentry{#2}{
      name={#3} ,
      description={#4} ,
      sort={#2} ,
      user1 = {\unexpanded{#5}} ,
      parent={Hochzeichen}
    }
  \fi
}

% einen neuen glossary-Style zur persönlichen Anpassung
\newglossarystyle{nomenclature}{%
  \renewenvironment{theglossary}%
    {\begin{longtable}{llp{\glsdescwidth}}}%
    {\end{longtable}}%
  \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glsentryitem{##1}% Entry number if required
    \bfseries\glstarget{##1}{##2}% Name
    \\% end of row
  }%
  \renewcommand*{\glossarysubentryfield}[6]{%
    \glstarget{##2}{##3}% Name
    & \glsentryuseri{##2}% Units
    & ##4% Description
    \\% end of row
  }%
  \renewcommand*{\glsgroupskip}{\\}%
}

% Gruppen:

\newglossaryentry{latin}{name={Lateinische Formelzeichen},description={dummy}}
\newglossaryentry{greek}{name={Griechische Formelzeichen},description={dummy}}
\newglossaryentry{Hochzeichen}{name={Hochzeichen und Indizes},description={dummy}}
\newglossaryentry{Abkuerzung}{name={Abkürzungen},description={dummy}}




% \nomenclature[Gruppe]{ID}{Symbol}{Beschreibung}{Einheit}
\nomenclature[A]{alpha}{$\alpha$}{Angle}{\si\degree}
\nomenclature[A]{c}{c}{Geschwindigkeit im Absolutsystem (erdfest)}{\si[per-mode=symbol]{\metre\per\second}}
\nomenclature[A]{nix}{}{spezifische Wärmekapazität}{\si[per-mode=symbol]{\joule\per\kilogram\per\kelvin}}
\nomenclature[A]{e}{e}{spezifische Exergie}{\si[per-mode=symbol]{\joule\per\kilogram}}
\nomenclature[A]{E}{E}{Exergie}{\si{\J}}
\nomenclature[A]{F}{F}{Kraft}{\si{\newton}}
\nomenclature[A]{h}{h}{spezifische Enthalpie}{\si[per-mode=symbol]{\joule\per\kilogram}}
\nomenclature[A]{m}{m}{Masse}{\si{\kilogram}}
\nomenclature[A]{Ma}{Ma}{Machzahl}{-}
\nomenclature[A]{p}{p}{Druck}{\si{\pascal}}
\nomenclature[A]{P}{P}{Leistung}{\si{\W}}
\nomenclature[A]{Q}{Q}{Wärmemenge}{\si{\J}}
\nomenclature[A]{R}{R}{spezifische Gaskonstante}{\si[per-mode=symbol]{\joule\per\kilogram\per\kelvin}}
\nomenclature[A]{s}{s}{spezifische Entropie}{\si[per-mode=symbol]{\joule\per\kilogram\per\kelvin}}
\nomenclature[A]{T}{T}{Temperatur}{\si{\kelvin}}
\nomenclature[A]{w}{w}{Geschwindigkeit im Relativsystem (flugzeugfest)}{\si[per-mode=symbol]{\metre\per\second}}










\nomenclature[B]{V}{$V$}{Volume}{\si{\cubic\metre}}
\nomenclature[D]{UN}{UN}{
  The United Nations 
}{}
\nomenclature[L]{U}{$U$}{Voltage}{\si{\volt}}

\makeglossaries
\glossarystyle{nomenclature} 



\begin{document}


\glsaddall
\printglossaries 

\end{document}
Dazu habe ich noch ein paar Fragen:

a) Wie schaffe ich es, dass die Spalten näher zusammenrücken? Die Spalte "Einheit" steht mir viel zu weit rechts, und sollte zu den Symbolen rücken.

b) Wie kann ich eine einfache Textzeile zwischen die Abschnitte "Lateinische Formelbuchstaben" und "Griechische Formelbuchstaben" einfügen?

c) Wie kann ich zwischen der Überschrift "Lateinische Formelzeichen" und dem Beginn der Auflistung eine Abstand einfügen? Über \bigskip funktioniert das wohl nicht. Genauso möchte ich dann zwischen den Übergängen der Teilabschnitte ("Lateinische Formelbuchstaben" ,"Griechische Formelbuchstaben" , "Hochzeichen und Indizes" ... ) einen Abstand haben.

d) Bisher heißt mein Glosar: Glossary , ich hätte es gerne als "Nomenklatur", über
\renewcommand{\glossaryname}{Stichwortverzeichnis}
klappt das nicht so recht?

Wie bekomme ich denn das hin? Werde aus der Paketbeschreibung nicht sonderlich schlau..

Danke für Tipps und Tricks ;-)

crosspost

Verfasst: Sa 2. Feb 2013, 13:16
von Sepp99
Ich würde mich langsam entscheiden: crossposts
http://www.mrunix.de/forums/showthread.php?t=74654
sind in diesem Forum eigentlich untersagt, vor allem wenn hier
keine Benutzer die so hilfreich sind wie diese hier
siehe auch [2]

Sepp.-

Verfasst: Sa 2. Feb 2013, 13:44
von Epllus
Wegen den Namen vom Glossar verwende eines von dreien:
\makeatletter 
\addto\extrasngerman{%
  \renewcommand{\glossaryname}{Glossar}
}
 \makeatother
bzw.
\printglossary[title=Glossar]
bzw.
\usepackage[ngerman]{translator}
Das erste ist zwar ein wenig kompliziert, aber so ändert man die \...name in babel.

Hoffe es hilft
Epllus

PS. Bei deinem Beispiel ungetestet, da es bei mir nicht lauffähig ist.