Abkürzungs- / Symbolverzeichnis

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Vaughn2012

Abkürzungs- / Symbolverzeichnis

Beitrag von Vaughn2012 »

Hi cgnieder,

ich habe deine Beiträge bereits gelesen und auf grund deiner Beiträge auch mein Verzeichnis erstellt.

Jedoch hätte ich es gerne etwas anders optisch.

Also so wie es jetzt ist, Nomenklatur als Überschrift, dann ein Skip, dann die Überschrift Lateinische Symbole und ab hier soll dann nochmal ein kleiner skip kommen, dann die Spaltenüberschriften Symbol, Einheit, Beschreibung und danach direkt die Einträge.

Und diese Änderungen bekomme ich grade nicht hin.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Hi,

Das Problem ist natürlich, dass »nomencl« keine Tabelle verwendet, sondern eine Liste. Das heißt, es gibt auch keine Spalten. Das folgende ist daher auch nur ein Workaround. Für eine echte Tabelle sollte man schon zu »nomentbl« (oder dem schon erwähnten »glossaries«, mit dem sich auch mehrere Glossare erstellen lassen) wechseln.
\documentclass[draft, headsepline, 10pt]{scrbook}

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

\renewcommand*\nomname{Nomenclature}
\setlength\nomlabelwidth{.25\linewidth}
\setlength\nomitemsep{-\parsep}
\newcommand\nomunit[1]{\def\nomentryend{\hfill#1}}
\renewcommand\nomgroup[1]{
   \def\makelabel##1{##1}
   \bigskip
   \ifx#1L\relax
      \item
      \item[\textbf{\Large Latin Symbols}]
      \item
      \item[\textbf{Symbol}]\textbf{Meaning}\hfill
   \fi
   \ifx#1G\relax
      \item
      \item[\textbf{\Large Greek Symbols}]
      \item
      \item[\textbf{Symbol}]\textbf{Meaning}\hfill\textbf{Unit}
   \fi
   \ifx#1A\relax
      \item[\textbf{\Large Abbreviations}]
      \item
      \item[\textbf{Abbreviation}]\textbf{Meaning}\hfill
   \fi
   \medskip
   \let\makelabel\nomlabel
}
\usepackage{filecontents}
\begin{filecontents*}{Nomenclature.tex}
 \nomenclature[G]{$\alpha$}{Angle\nomunit{[$^\circ$]}}
 \nomenclature[L]{$V$}{Volume}
 \nomenclature[A]{UN}{United Nations}
\end{filecontents*}


\begin{document}
Text
\input{Nomenclature}

\printnomenclature

\end{document}
Bild

Grüße
Dateianhänge
nomencl_bsp.png
nomencl_bsp.png (23.16 KiB) 3693 mal betrachtet
Clemens
Paketauthor

Vaughn2012

Abkürzungs- / Symbolverzeichnis

Beitrag von Vaughn2012 »

Ja genau so habe ich mir das gedacht.

Einzige Änderung müsste noch das Drehen von den "Meaning" und "Unit", also ich hätte gerne, dass die Einheiten hinter dem Symbol stehen und danach erst die Bezeichnung.

Ansonsten genau so wie ich mir das gedacht habe.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Das scheint mir nicht möglich ohne nomencls interne Macros umzudefinieren. Den einzigen sinnvollerweise gangbaren Weg sehe ich in meinem schon mehrfach vorgebrachten Vorschlag: den Wechsel zu »nomentbl«. Man müsste bei dem Code aus dem Beitrag, den ich vorhin verlinkt habe, nur kleine Änderungen vornehmen.

Grüße
Zuletzt geändert von cgnieder am Sa 7. Jul 2012, 21:09, insgesamt 1-mal geändert.
Clemens
Paketauthor

Vaughn2012

Abkürzungs- / Symbolverzeichnis

Beitrag von Vaughn2012 »

Komisch, dass man das nicht einfach drehen kann.
Ist das denn in nomencl so verankert ? Oder warum kann man die Auflistungen nicht drehen?

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Wenn Du mal in den Code von nomencl schaust, wirst Du folgendes finden:
\def\@@@nomenclature[#1]#2#3{%
  \def\@tempa{#2}\def\@tempb{#3}%
  \protected@write\@nomenclaturefile{}%
    {\string\nomenclatureentry{#1\nom@verb\@tempa @[{\nom@verb\@tempa}]%
     \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
     |nompageref}{\thepage}}%
  \endgroup
  \@esphack}
Das ist der Code, der die Einträge in der nlo-Datei erzeugt. Bei meinem Beispiel von vorhin diese hier:
\nomenclatureentry{G$\alpha$@[{$\alpha$}]\begingroup Angle\nomunit{[$^\circ$]}\nomeqref {\relax 0.0}|nompageref}{1}
\nomenclatureentry{L$V$@[{$V$}]\begingroup Volume\nomeqref {\relax 0.0}|nompageref}{1}
\nomenclatureentry{AUN@[{UN}]\begingroup United Nations\nomeqref {\relax 0.0}|nompageref}{1}
Diese Einträge werden letztendlich zu der Liste. Wie Du vielleicht erkennen kannst, ist die Einheit noch nicht irgendwo hingewandert, sondern noch genau da, wo man sie definiert hat.
\nomenclatureentry{G$\alpha$@[{$\alpha$}]\begingroup Angle\nomunit{[$^\circ$]}\nomeqref {\relax 0.0}|nompageref}{1}
wird durch die Definition von \nomunit zu
\nomenclatureentry{G$\alpha$@[{$\alpha$}]\begingroup Angle\def\nomentryend{\hfill [$^\circ$]}\nomeqref {\relax 0.0}|nompageref}{1}
(andere Expandierungen mal ignoriert) Hier wird also im Eintrag eine neue Definition von \nomentryend vorgenommen, nachdem der eigentliche Eintrag (die „Meaning“ von vorhin) schon geschrieben ist. Das \nomentryend, das hier definiert wird ist in \nompageref versteckt, wo die Einheit dann letztlich geschrieben wird.
\def\nompageref#1{\if@printpageref\pagedeclaration{#1}\fi%
  \nomentryend\endgroup}
Ohne also alle diese Interna zu ändern (oder wenigstens einige davon), lässt sich die Reihenfolge nicht einfach so ändern.

Grüße
Clemens
Paketauthor

Vaughn2012

Abkürzungs- / Symbolverzeichnis

Beitrag von Vaughn2012 »

Okay, dann habe ich ja schonmal was gelernt, was das nomencl betrifft.

Dann muss ich mich wohl mal durch nomentbl durchwühlen. Konnte leider bisher kein Beispiel finden.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Mir war langweilig, daher hab ich was gebastelt. Der Befehl
\nomenclature
benötigt hier ein weiteres Argument:
% arara: pdflatex
% arara: nomencl
% arara: pdflatex
\documentclass[draft, headsepline, 10pt]{scrbook}

\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{Nomenclature}
\setlength\nomlabelwidth{.25\linewidth}
\setlength\nomitemsep{-\parsep}
\newlength\nomunitwidh
\setlength\nomunitwidh{4em}

% \newcommand\nomunit[1]{\def\nomentryend{\hfill#1}}
\renewcommand\nomgroup[1]{
   \def\makelabel##1{##1}
   \bigskip
   \ifx#1L\relax
      \item
      \item[\textbf{\Large Latin Symbols}]
      \item
      \item[\textbf{Symbol}]\parbox[b]{\nomunitwidh}{\textbf{Unit}}\textbf{Meaning}\hfill
   \fi
   \ifx#1G\relax
      \item
      \item[\textbf{\Large Greek Symbols}]
      \item
      \item[\textbf{Symbol}]\parbox[b]{\nomunitwidh}{\textbf{Unit}}\textbf{Meaning}\hfill
   \fi
   \ifx#1A\relax
      \item[\textbf{\Large Abbreviations}]
      \item
      \item[\textbf{Abbreviation}]\textbf{Meaning}\hfill
   \fi
   \medskip
   \let\makelabel\nomlabel
}
\usepackage{filecontents}
\begin{filecontents*}{Nomenclature.tex}
 \nomenclature[G]{$\alpha$}{Angle}{\si\degree}
 \nomenclature[L]{$V$}{Volume}{\si{\cubic\metre}}
 \nomenclature[A]{UN}{United Nations}{}
 \nomenclature[L]{$U$}{Voltage}{\si{\volt}}
\end{filecontents*}


\begin{document}
Text
\input{Nomenclature}

\printnomenclature

\end{document}
Bild

Grüße
Dateianhänge
nomencl_units.png
nomencl_units.png (23.97 KiB) 3705 mal betrachtet
Clemens
Paketauthor

Vaughn2012

Abkürzungs- / Symbolverzeichnis

Beitrag von Vaughn2012 »

Genau so soll das aussehen.

Aber ich denke, dass die Variante doch etwas zu aufwändig ist, wenn später mal Änderungen erfolgen sollen.

Ich werde mal gucken wie ich sowas mit nomentbl realisieren kann.
War froh, dass ich mit nomencl soweit gekommen bin.

Mal sehen wie weit ich komme

andy_andy

Abkürzungs- / Symbolverzeichnis

Beitrag von andy_andy »

Hallo zusammen,

hatte das gleiche Problem. Hab nun deine (Clemes) Lösungsmöglichkeit umgesetzt. Funktioniert super

bis die Erklärung für eine Variable über die Länge einer Zeile ging. In der zweiten Zeile wird jetzt in der Spalte Unit der mit dem restlichen Teil für Meaning angefangen.

Hab nur leider keine Idee wie ich das ändern kann.
Bin auch noch Latexanfänger.

Kann mir jemand (Clemens :D) helfen?

Grüße
Andy

Antworten