PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nomenclature unterteilen mit Unterüberschriften



ElGato
13-12-2006, 08:33
Hallo alle zusammen,

ich weiß, das diese Frage in einigen Threads schon besprochen wurde, aber wenn ich ehrlich bin, sind einige Threads schon so kompliziert geworden, daß ich nicht mehr durchblicke :o

Die Lösung sollte aussehen wie folgt:

Abkürzungsverzeichnis

Haus

Tür.......................Eingang in das Haus
Fenster................zum Lüften des Hauses

Auto

Kfz......................Kraftfahrzeug
TÜV....................alle zwei Jahre

Sonstige Abkürzungen

AOK...................Allgemeine Ortskrankenkasse
GEZ...................Gebühreneinzugszentrale

Nun, was habe ich bisher erreicht:

\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{H}}{%
\item \textbf{\textbf{Haus}}}{
\ifthenelse{\equal{#1}{A}}{%
\item \textbf{\textbf{Auto}}}{
\ifthenelse{\equal{#1}{S}}{%
\item \textbf{Sonstige Abkürzungen}}{}}{}}

Das ist ein Auto\nomenclature[A]{Kfz}{Kraftfahrzeug}. Das ist der TÜV\nomenclature[A]{TÜV}{alle zwei Jahre}. Hier kommt die AOK\nomenclature[S]{AOK}{Allgemeine Ortskrankenkasse}. Und nun kommt die GEZ\nomenclature[S]{GEZ}{Gebühreneinzugszentrale}. Das ist eine Tür\nomenclature[H]{Tür}{Eingang in das Haus} und das wäre ein Fensternomenclature[H]{Fenster}{zum Lüften des Hauses}

Das einzige was ich erreiche, ist das die einzelnen Begriffe untereinander in einem Abkürzungsverzeichnis sortiert werden - mehr nicht :eek:

Hat jemand ein paar Lösungsvorschläge oder Links bereit, die mir hier helfen könnten?

Vielen Dank für die Mühe und liebe Grüße
ElGato

Hier ein Minimalbeispiel, weil ich weiß, das diese Frage kommen wird :-)

\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel} % Sprache
\usepackage{ifthen}
\usepackage{nomencl} % Abkürzungsverzeichnis makeindex TestAbk.nlo -s nomencl.ist -o TestAbk.nls
\makenomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}

\begin{document}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{%
\item \textbf{\textbf{Auto}}}{
\ifthenelse{\equal{#1}{H}}{%
\item \textbf{\large{H}}}{}}{}}
\cleardoublepage
\printnomenclature

Das ist ein Auto\nomenclature[A]{Kfz}{Kraftfahrzeug}. Das ist der TÜV\nomenclature[A]{TÜV}{alle zwei Jahre}. Hier kommt die AOK\nomenclature[S]{AOK}{Allgemeine Ortskrankenkasse}. Und nun kommt die GEZ\nomenclature[S]{GEZ}{Gebühreneinzugszentrale}. Das ist eine Tür\nomenclature[H]{Tür}{Eingang in das Haus} und das wäre ein Fenster\nomenclature[H]{Fenster}{zum Lüften des Hauses}
\end{document}

rais
13-12-2006, 13:15
versuch's mal etwa so:


\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel} % Sprache
\usepackage{ifthen}
\usepackage{nomencl} % Abkürzungsverzeichnis makeindex TestAbk.nlo -s nomencl.ist -o TestAbk.nls
\makenomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}

\renewcommand{\nomgroup}[1]{%
\renewcommand{\makelabel}[1][]{##1}
\item[~]
\ifthenelse{\equal{#1}{A}}{%
\item[\textbf{\LARGE Auto}]}{%
\ifthenelse{\equal{#1}{H}}{%
\item[\textbf{\LARGE Haus}]}{%
\ifthenelse{\equal{#1}{S}}{%
\item[\textbf{\LARGE Sonst}]}{%
}}}%
\item[~]
\let\makelabel\nomlabel
}
\begin{document}
\printnomenclature

Das ist ein Auto\nomenclature[A]{Kfz}{Kraftfahrzeug}. Das ist der TÜV\nomenclature[A]{TÜV}{alle zwei Jahre}. Hier kommt die AOK\nomenclature[S]{AOK}{Allgemeine Ortskrankenkasse}. Und nun kommt die GEZ\nomenclature[S]{GEZ}{Gebühreneinzugszentrale}. Das ist eine Tür\nomenclature[H]{Tür}{Eingang in das Haus} und das wäre ein Fenster\nomenclature[H]{Fenster}{zum Lüften des Hauses}
\end{document}

MfG,

ElGato
13-12-2006, 14:21
Hi rais,

es klappt wunderbar!! :)
In meinen Augen ist es wie Zauberei - ich bin nicht Latexer genug, um es zu verstehen, aber es funktioniert einwandfrei!

Vielen Dank hierfür!

Leider habe ich noch eine kleine Frage auf die ich vorher nicht gekommen bin:
Es gibt natürlich auch viele Abkürzungen, die als "Sonstige" mitlaufen, also für die man keine Option setzten würde. Konkret: Stuhl\nomenclature{Stuhl}{Möbel} hier setzt man keine [].
Ist es möglich alles diese Einträge unter eine Überschrift zu setzten?

Lieben Gruß und nochmals vielen Dank!
ElGato

ElGato
13-12-2006, 15:33
Hi rais,

ich möchte Dich nicht länger belästen, aber woher wußtest Du, wie man das macht? Ich möchte das auch können :D

Hast Du mir ein paar Tipps?

Wie ich mich kenne, werde ich doch wieder so einiges verändern und das beste ist natürlich wenn man weiß, wie es geht - so bleibt man autark ;)

Bis bald!
ElGato

rais
13-12-2006, 20:13
Hi rais,

ich möchte Dich nicht länger belästen, aber woher wußtest Du, wie man das macht? Ich möchte das auch können :D

Wieso? Ich wußte es doch auch nicht...:D
Und keine Angst: als `Belästigung´ empfinde ich die Frage ja nich' ;)
Das Problem war eigentlich, daß dieser \nomgroup{..} innerhalb einer list-Umgebung aufgerufen wird: für Überschriften an dieser Stelle heißt das, man kann nicht einfach \section*{bla} einsetzen (wär' ja kein \item) -- es sei denn, man beendet erst die list-Umgebung innerhalb eines \nomgroup, setzt seine Überschrift und fängt eine neue list-Umgebung an... das schien mir aber n Tuck zu kompliziert ;)
Also hab' ich mir gedacht, man kann doch die Überschrift direkt ins \item setzen -- da musste ich mir bloß was einfallen lassen, weil Du vorher ja schon den \nomlabel auf "#1\dotfill" gesetzt hattest... nach einen Blick in die Definition für die Nomenklatur-Umgebung im nomencl.sty, ins Besondere hier die Zuweisung "\let\makelabel\nomlabel" dachte ich mir, man kann doch sicher zu Beginn eines \nomgroup-Befehls diesen \makelabel entsprechend umdefinieren und am Ende von \nomgroup den alten Zustand dafür wieder herstellen -- ausprobiert, funzt doch, noch n \item[~] oben und unten für zusätzlichen vert. Abstand eingesetzt, nochmal ausprobiert... hmm, das sieht schon so aus, wie Du das haben wolltest. ;)
Überhaupt:

Es gibt natürlich auch viele Abkürzungen, die als "Sonstige" mitlaufen, also für die man keine Option setzten würde. Konkret: Stuhl\nomenclature{Stuhl}{Möbel} hier setzt man keine [].
Ist es möglich alles diese Einträge unter eine Überschrift zu setzten?

Afaik werden []-lose \nomenclature-Einträge wie \nomenclature[a]{}{} behandelt (und wenn Du diesen Stuhl mal in Dein MB einträgst, dann sollte er eigentlich unter "Auto" gelistet werden). Dazu gibt es prinzipiell zwei Ansätze:
1) Du definierst noch einen Buchstaben für solche Abkürzungen (die mußt Du dann natürlich entsprechend im Text ergänzen) -- das hat den Vorteil, daß Du diese Abkürzungen gezielt in Dein Abkz-Verzeichnis setzen kannst
2) Du sagst einfach: Alles, was zu "Auto" gehört, bekommt z.B. [v] statt [a]...
Und natürlich eine entsprechende Ergänzung in Deinem \nomgroup.
MfG,

smart39
28-06-2011, 17:13
Hallo,

ich bin gerade auf diesen Thread gestoßen. Ich dachte mir, ich kupfere einfach mal die Struktur ab, da ich wenig Zeit habe, und mich genau das Problem belastet, dass ich grichische Buchstaben, lateinische Buchstaben und dimensionslose Kennzahlen in einzelne Abschnitte des Nomenklaturvberzeichnisses sortieren möchte. Nun habe ich den Text von Rais übernommen, wodurch die drei Gruppen schonmal richtig sortiert werden. Allerding fehlen mir noch die Überschriften, ich dachte dass jeweils die Zeile
\item[\textbf{\LARGE Haus}]
dazu da ist, eine Überschrift "Haus" über alles zu stellen, was unter Haus einsortiert wird, ist das nicht so?

Gruß,

Martin

bobmalaria
28-06-2011, 18:05
hi,

wie immer wenn es um nomencl und unterteilte verzeichnisse geht kann ich mir nicht helfen und erwaehnen das es mit dem glossaries paket einfacher geht.

dann ist auch nur halb soviel "zauberei" noetig

Fiphil
29-06-2011, 18:43
Ich habe mir das jetzt nicht alles angeschaut, aber in der Dokumentation (http://www.cs.brown.edu/system/software/latex/doc/nomencl.pdf) zu nomencl steht der "offizielle" Lösungsweg direkt unter Punkt 5.1 ....

smart39
30-06-2011, 10:26
Hallo nochmal,

also glossaries ist ein netter Vorschlag, aber da mein nomencl eigentlich schon komplett steht, die Unterteilung in lateinische Buchstaben, griechische Buchstaben und dimensionslose Kennzahlen klappt gut, es fehlen einzig die Überschriften zu den drei Abschnitten. Ich gebe mal den Absatz mit an, der die Unterteilung regelt, und eigentlich auch die Überschriften mit einfügen sollte:
\renewcommand{\nomgroup}[1]{%
\renewcommand{\makelabel}[1][]{##1}
\item[~]
\ifthenelse{\equal{#1}{cdim}}{\item[\textbf{\LARGE Dimensionslose Kennzahlen}]}{%
\ifthenelse{\equal{#1}{bgr}}{\item[\textbf{\LARGE Griechische Buchstaben}]}{%
\ifthenelse{\equal{#1}{alat}}{\item[\textbf{\LARGE Lateinische Buchstaben}]}{%
}}}
\item[~]
\let\makelabel\nomlabel
}

Vielleicht findet da jemand einen Fehler?
Gruß,
Martin

rais
03-07-2011, 09:49
Moin moin,


\renewcommand{\nomgroup}[1]{%
\renewcommand{\makelabel}[1][]{##1}
\item[~]
\ifthenelse{\equal{#1}{cdim}}{\item[\textbf{\LARGE Dimensionslose Kennzahlen}]}{%
\ifthenelse{\equal{#1}{bgr}}{\item[\textbf{\LARGE Griechische Buchstaben}]}{%
\ifthenelse{\equal{#1}{alat}}{\item[\textbf{\LARGE Lateinische Buchstaben}]}{%
}}}
\item[~]
\let\makelabel\nomlabel
}

Vielleicht findet da jemand einen Fehler?

den kannst Du selbst finden: öffne Deine .nls-Datei und schau nach \nomgroup: Du wirst feststellen, daß nirgends `cdim', `bgr' oder `alat' darin aufgerufen wird. Damit schlagen Deine Vergleiche fehl.
Warum das so ist, steht in der nomencl-Doku (texdoc nomencl), zumindest bei Version 4.2 ...

@Fiphil: wie bist Du nur auf so eine alte Doku gekommen?

@bobmalaria: dafür versteckst Du noch mehr `Zauberei' unter der Haube :p

MfG

Lorzen
05-08-2011, 17:32
Hallo zusammen,

Hurra, mein erster Beitrag in diesen Forum, also seht mir bitte nach, das eventuell nicht alle Konvetionen eingehalten wurden.

Ich habe gelesen, dass es hier um die Formatierung von Glossaren bzw. Nomenklaturen geht.

Folgendes: Beim Erstellen meines Symbolverzeichnisses habe ich das Problem, dass mir die Einheiten unterschiedlich gross werden. Das Verzeichnis ist in drei Spalten aufgeteil: Symbol, Beschreibung und Einheit.
Einheiten die mit Hilfe von Brüchen dargestellt werden werden dann genauso gross (bzw. klein) wie "ungebrochene".

Meine Frage: Wie kann ich die Buchstabengrösse einheitlich gestalten?


\documentclass[12pt,a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[colorlinks,pdfpagelabels,pdfstartview = FitH,bookmarksopen = true,bookmarksnumbered = true,linkcolor = black,plainpages = false,hypertexnames = false,citecolor = black]{hyperref}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{color}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{array}
\usepackage{url}
\usepackage[a4paper,bottom=2.5cm,top=2.5cm,right=2.5cm,left=2. 5cm]{geometry}
\usepackage{fancyhdr}
\usepackage{float}
\usepackage{ifthen}
\usepackage[german]{nomencl}
\usepackage{acronym}
\usepackage{amsmath}
\usepackage[margin=10pt,font=small,labelfont=bf,labelsep=colon]{caption}
\usepackage[margin=10pt,font=small]{subcaption}

\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{R}}{\item}{% %-----------Unterteilung des Symbolverzeichnis in Latein und Griechisch
\ifthenelse{\equal{#1}{G}}{\item}{}}}

\newcommand{\nomunit}[1]{% %-----------einheiten im symbolverzeichnis werden rechtsbündig geschrieben
\renewcommand{\nomentryend}{\hspace*{\fill}#1}}
\setlength{\nomunit}{\textwidth}

\makenomenclature

\begin{document}

TEXT TEXT TEXT TEXT\\

\nomenclature[rh ]{$h$}{massenspezifische Enthalpie\nomunit{$\frac{kJ}{kg}$}}
\nomenclature[gphi ]{$\phi$}{relative Luftfeuchte\nomunit{$\%$}}
\nomenclature[rx ]{$x$}{absolute Luftfeuchte\nomunit{$\frac{kg}{m^3}$}}
\nomenclature[rq ]{$\dot{Q}$}{W\"armestrom, erste Ableitung der Energie nach der Zeit\nomunit{$W$}}
\nomenclature[rm ]{$\dot{m}$}{Massenstrom, erste Ableitung der Masse nach der Zeit\nomunit{$\frac{kg}{s}$}}
\nomenclature[rv ]{$\dot{V}$}{Volumenstrom, erste Ableitung des Volumens nach der Zeit\nomunit{$\frac{m^3}{s}$}}
\nomenclature[gr ]{$\rho$}{Dichte\nomunit{$\frac{kg}{m^3}$}}
\nomenclature[rcp ]{$cp$}{spezifische W\"armekapazit\"at\nomunit{$\frac{kJ}{kg*K}$}}
\nomenclature[rt1 ]{$T$}{Temperatur\nomunit{$°C$}}
\nomenclature[rt2 ]{$\Delta T$}{Temperaturdifferenz\nomunit{$K$}}

TEXT TEXT TEXT TEXT

\printnomenclature %Symbolverzeichnis

\end{document}

Vielen Dank für eure Mühe im Vorraus
und Grüsse

rais
06-08-2011, 11:42
Na, dann erstmal Herzlich Willkommen :)


Folgendes: Beim Erstellen meines Symbolverzeichnisses habe ich das Problem, dass mir die Einheiten unterschiedlich gross werden. Das Verzeichnis ist in drei Spalten aufgeteil: Symbol, Beschreibung und Einheit.
Einheiten die mit Hilfe von Brüchen dargestellt werden werden dann genauso gross (bzw. klein) wie "ungebrochene".

Meine Frage: Wie kann ich die Buchstabengrösse einheitlich gestalten?

versuch es mit \dfrac statt mit \frac.
Und schau Dich nach einem Dokument um, das SI-Einheiten behandelt...AFAIR werden SI-Einheiten grundsätzlich aufrecht gesetzt.
Auch für Einheiten gibt es Pakete, das umfangreichste dürfte siunitx sein.

MfG

Lorzen
06-08-2011, 12:09
Hallo Rainer,

vielen Dank für deine schnelle Antwort! \dfrac funktioniert gut.
und Danke für den Tip mit siunitx. Wird wohl noch sehr nützlich werden....

Grüße
Lorzen

Blizzi
25-03-2012, 15:05
Hallo,
ich habe mal eine Frage zu den Bezeichnungen der Unterabschnitte.

Ich bin gerade auch dabei ein Abkürzungsverzeichnis zu erstellen und bin auf der Suche nach einer Lösung zur Erstellung von Unterabschnitten auf diesen Thread gestoßen. Es funktioniert mit den hier aufgeführten Befehlen wunderbar. Für meine Anwendung habe ich die Unterabschnitte meinen Bedürfnissen angepasst und dementsprechung benannt. Ein Unterabschnitt heißt hierbei "Allgemeine Abkürzungen".

\item[\textbf{Allgemeine Abkürzungen}]}
Das funktioniert auch wunderbar.
Das Problem ist allerdings, dass zwischen "Allgemeine" und "Abkürzungen" ein sehr großer Abstand ist. In diesem Zusammenhang habe ich bemerkt, dass sich der Abstand durch die Angabe der Punkte zwischen Abkürzung und Erklärung ergibt.

\setlength{\nomlabelwidth}{.40\hsize} % Punkte zw. Abkürzung und Erklärung
Ich kann jetzt zwar diese Anzahl von Punkten reduzieren, was mir allerdings nicht gefällt. Wie kann ich das jetzt einstellen, dass ich weiterhin viele Punkte zwischen der Abkürzung und der Erklärung habe, die Bezeichnung des Unterabschnitts aber mit einem "normalen" Abstand versehen ist?

rais
25-03-2012, 23:05
Moin moin,


Das Problem ist allerdings, dass zwischen "Allgemeine" und "Abkürzungen" ein sehr großer Abstand ist.
eine Idee wäre


\item[\textbf{\mbox{Allgemeine Abkürzungen}}]

(ungetestet)

MfG

Blizzi
26-03-2012, 09:08
BINGO!!

Mit dem Befehl funktionierts. Genau sowas habe ich gesucht.

Vielen Dank für die Hilfe!!

Blizzi
27-03-2012, 16:31
Habe jetzt noch ein ganz anderes Problem.

Passt zwar jetzt nicht mehr zur Überschrift des Threads hier, werde es aber dennoch mal fragen.

Wenn ich z.B. die Abkürzung "m³" für Kubikmeter mit auflisten lassen möchte, muss es in LaTeX als "m^3" geschrieben werden. Das ist allerdings nur möglich, sofern dieser Begriff in $-Zeichen gesetzt wird:

\abk[E]{$m^3$}{Kubikmeter}

Beim Kompilieren treten keine Fehler auf und diese Abkürzung mit auf aufgeführt. Allerdings mit einem "Schönheitsfehler". Diese Abkürzung für Kubikmeter wird jetzt nicht wie normal üblich an der Stelle "m" einsortiert, sondern an oberster Stelle vor dem "a".

Könnte mir jmd. sagen, mit welchem Befehl ich diese Abkürzung mit der richtigen Einsortierung in mein Abkürzungsverzeichnis aufnehmen kann?

Danke

bobmalaria
27-03-2012, 18:13
vielelicht klappt es mit m\textsuperscript{3}. benoetigt eventuell das textpos paket.

gruss

Blizzi
27-03-2012, 19:05
Jawollski!! Läuft :D

Geht das auch iwie mit Tiefstellen?

bobmalaria
27-03-2012, 19:25
\documentclass{article}
\usepackage{fixltx2e}
\begin{document}
\textsubscript{s}a\textsuperscript{x}
\end{document}

rstuby
27-03-2012, 19:51
Ins Blaue geraten: vielleicht \textsubscript ?