Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Abkürzungs-/Formelverzeichnis - Sortierung

293 views
Skip to first unread message

Anja Richter

unread,
Dec 7, 2005, 5:00:39 AM12/7/05
to
Hallo,

ich habe ein Verzeichnis für Abkürzungen und verwendete Formelzeichen
erstellt.
Der Quelltext sieht folgendermaßen aus:
________________________________________________
\makeglossary
\RequirePackage{ifthen}

\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{%
\item \textbf{\large{Abkürzungen}}}{% % partition name
\ifthenelse{\equal{#1}{F}}{%
\item \textbf{\large{Wichtige Formelzeichen}}}{}}{}} % partition name


\nomenclature[F]{$\mathbf{x(t_{k})}$}{wahrer Systemzustandsvektor zum
Zeitpunkt $t_{k}$} //fett gedrucktes x

\nomenclature[F]{$x(t_{k})$}{Wert der $x$-Koordinate eines kartesischen
Koordinatensystems zum Zeitpunkt $t_{k}$} //normales x
________________________________________________


In dem Teil mit den Formelzeichen habe ich nun folgendes Problem:
Ich habe einige Einträge fett gedruckt, andere nicht. Nun wird so sortiert,
dass beispielsweise erst alle fett gedruckten Einträge sortiert erscheinen
und dann alle nicht fett gedruckten. Ich hätte es aber gern so, dass ALLE
Einträge sortiert eingeordnet werden, unabhängig ob sie fett gedruckt sind
oder nicht.

Wie kann man das machen?

Danke und viele Grüße
Anja

Uwe Ziegenhagen

unread,
Dec 7, 2005, 9:38:08 AM12/7/05
to

Kannst Du bitte ein vollständiges Beispiel draus machen? Ich habe keinen
Bock, mir die notwendigen Pakete selbst zusammenzusuchen.

http://www.minimalbeispiel.de

Uwe

Joachim Schrod

unread,
Dec 7, 2005, 10:43:37 AM12/7/05
to
Anja Richter wrote:
>
> In dem Teil mit den Formelzeichen habe ich nun folgendes Problem:
> Ich habe einige Einträge fett gedruckt, andere nicht. Nun wird so sortiert,
> dass beispielsweise erst alle fett gedruckten Einträge sortiert erscheinen
> und dann alle nicht fett gedruckten. Ich hätte es aber gern so, dass ALLE
> Einträge sortiert eingeordnet werden, unabhängig ob sie fett gedruckt sind
> oder nicht.
>
> Wie kann man das machen?

a) explizite Sortierschlüssel verwenden

b) xindy benutzen. (nur auf Unix/Linux).


Joachim

--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Joachim Schrod Email: jsc...@acm.org
Roedermark, Germany

Anja Richter

unread,
Dec 7, 2005, 10:59:03 AM12/7/05
to
Joachim Schrod wrote:

> Anja Richter wrote:
>>
>> In dem Teil mit den Formelzeichen habe ich nun folgendes Problem:
>> Ich habe einige Einträge fett gedruckt, andere nicht. Nun wird so
>> sortiert, dass beispielsweise erst alle fett gedruckten Einträge sortiert
>> erscheinen und dann alle nicht fett gedruckten. Ich hätte es aber gern
>> so, dass ALLE Einträge sortiert eingeordnet werden, unabhängig ob sie
>> fett gedruckt sind oder nicht.
>>
>> Wie kann man das machen?
>
> a) explizite Sortierschlüssel verwenden
>
> b) xindy benutzen. (nur auf Unix/Linux).

Und wie geht das?

Ich nutze Kile unter Suse und habe bis jetzt immer mit dem Befehl
makeindex Diplomarbeit.glo -s nomencl.ist -o Diplomarbeit.gls
zum Sortieren der Einträge gearbeitet.

Was versteht man im Detail unter einem expliziten Sortierschlüssel?

Viele Grüße
Anja

Uwe Siart

unread,
Dec 7, 2005, 11:34:02 AM12/7/05
to
Anja Richter <ra...@hrz.tu-chemnitz.de> writes:

> Was versteht man im Detail unter einem expliziten Sortierschlüssel?

Du gibst einen anderen Begriff zur Verwendung als Sortierkriterium an,
wenn der eigentliche Indexeintrag dafür untauglich ist.

Syntax:

,----
| \index{<sortierschluessel>@<indexeintrag>}
`----

Beispiel (aus makeindex.dvi):

,----
| \index{alpha@$\alpha$}
`----

--
Uwe

Uwe Siart

unread,
Dec 7, 2005, 11:35:21 AM12/7/05
to
Anja Richter <ra...@hrz.tu-chemnitz.de> writes:

> Was versteht man im Detail unter einem expliziten Sortierschlüssel?

Du gibst einen anderen Begriff zur Verwendung als Sortierkriterium an,


wenn der eigentliche Indexeintrag dafür untauglich ist.

,----[ Syntax ]


| \index{<sortierschluessel>@<indexeintrag>}
`----

,----[ Beispiel (aus makeindex.dvi) ]

Joachim Schrod

unread,
Dec 7, 2005, 1:18:56 PM12/7/05
to

Das hat Uwe schon beantwortet.

xindy ist ein Programm wie Makeindex, gibt's unter http://www.xindy.org/.
Es ist vor allem im LaTeX-Begleiter beschrieben, Kapitel 11.

Es ignoriert TeX-Makros beim Sortieren, deshalb würde Dein \mathbf ignoriert
werden. Allerdings gibt es meines Wissens nach keine nomencl.sty-Anpassung --
deshalb mein Tipp: Wenn Du nicht zu viele Einträge hast, füge explizite
Sortierschlüssel ein.

Wenn Du viele Einträge hast, melde dich auf der xindy-Mailing-Liste (Link gibt's
auf der Homepage oben). Dann werden wir sehen, daß wir ein xindy-Style für
nomencl.sty erstellen (das ist das Analogon zu nomencl.ist).

Beste Grüße,

Anja Richter

unread,
Dec 7, 2005, 3:08:04 PM12/7/05
to
Uwe Siart wrote:


> Du gibst einen anderen Begriff zur Verwendung als Sortierkriterium an,
> wenn der eigentliche Indexeintrag dafür untauglich ist.
>
> ,----[ Syntax ]
> | \index{<sortierschluessel>@<indexeintrag>}
> `----
>
> ,----[ Beispiel (aus makeindex.dvi) ]
> | \index{alpha@$\alpha$}
> `----

Das Ganze funktioniert leider nicht oder ich mache was falsch.
Ich möchte noch einmal kurz erklären, was ich derzeit nutze:
_____________________________________________________________
\usepackage{nomencl} %abkuerzungsverzeichnis
\renewcommand{\nomname}{Verzeichnis der verwendeten Abkürzungen und
Formelzeichen}
\setlength{\nomlabelwidth}{.25\hsize}

\makeglossary
\RequirePackage{ifthen}

\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{%
\item \textbf{\large{Abkürzungen}}}{% % partition name
\ifthenelse{\equal{#1}{F}}{%
\item \textbf{\large{Wichtige Formelzeichen}}}{}}{}} % partition name

\nomenclature[F]{$\mathbf{g_{a}(x(t_{k}))}$}{Funktionenvektor der
nichtlinearen Übergangsfunktion für den Systemzustand $x(t_{k})$ zum
Zeitpunkt $t_{k}$}
\nomenclature[F]{$\mathbf{\hat{x}(t_{k})}$}{Geschätzter Systemzustandsvektor


zum Zeitpunkt $t_{k}$}

_____________________________________________________________

Wenn ich das Vorgeschlagene z.B. ausprobiere mit
\index{x(t_{k})@$\mathbf{\hat{x}(t_{k})}$}
ändert sich nichts daran, dass der x-Ausdruck immer noch vor dem
g_a-Ausdruck steht.

Kann das daran liegen, dass ich ja ein ganz anderes Paket benutze?
(nomencl statt makeidx)

Danke für die Hilfe
Anja

Dominik Waßenhoven

unread,
Dec 7, 2005, 7:19:37 PM12/7/05
to
Hallo Anja,

Anja Richter schrieb am 07.12.2005:
> Das Ganze funktioniert leider nicht oder ich mache was falsch.
> Ich möchte noch einmal kurz erklären, was ich derzeit nutze:

[Codeschnipsel entfernt]
Ein *vollständiges* Minimalbeispiel (siehe Signatur) wäre nett, weil man
dann mit Copy&Paste dein Problem direkt ausprobieren könnte.

> Wenn ich das Vorgeschlagene z.B. ausprobiere mit
> \index{x(t_{k})@$\mathbf{\hat{x}(t_{k})}$}

Hast du denn auch mal \nomenclature{x(t_{k})@$\mathbf{\hat{x}(t_{k})}$}
probiert?

> ändert sich nichts daran, dass der x-Ausdruck immer noch vor dem
> g_a-Ausdruck steht.

> Kann das daran liegen, dass ich ja ein ganz anderes Paket benutze?
> (nomencl statt makeidx)

Eigentlich nicht, da nomencl im Grunde genommen nichts anderes macht,
als makeindex aufzurufen, also müsste die vorgeschlagene Syntax
eigentlich funktionieren. D. h. also, wenn du \nomenclature{X} und
\nomenclature{a@Y} hast, müssten zwei Einträge in der Reihenfolge
Y
X
herauskommen.

Gruß,
Dominik.-

--
LaTeX-FAQ | http://www.dante.de/faq/de-tex-faq
Minimalbeispiel | http://www.minimalbeispiel.de
BibTeX-Editor | http://jabref.sourceforge.net

Anja Richter

unread,
Dec 8, 2005, 3:42:53 AM12/8/05
to
Dominik Waßenhoven wrote:


> Ein *vollständiges* Minimalbeispiel (siehe Signatur) wäre nett, weil man
> dann mit Copy&Paste dein Problem direkt ausprobieren könnte.

Hier also ein Minimalbeispiel:
________________________________________________________________
\documentclass[12pt,
BCOR 0.8cm, %zusätzlicher Seitenrand fürs Binden
DIVcalc, %Aufteilung des Papiers automatisch berechnen
a4paper,
fleqn,
pointlessnumbers,
% draft,
final,
normalheadings]
% tablecaptionabove]
{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{ngerman}
%\usepackage{cite}
\usepackage[automark, headsepline, plainheadsepline, footsepline,
plainfootsepline]{scrpage2} % für Kopf- und Fußzeilen
\usepackage{german} %für deutsche Anführungszeichen
\usepackage[latin1]{inputenc} % German characters
\usepackage{longtable} % Für Tabellen, die sich über
mehrere Seiten erstrecken
\usepackage{flafter} % sorgt dafür, daß Float-Elemente
nur nach ihrer Position im Text erscheinen
\usepackage{setspace} % zur Änderung des Zeilenabstandes
\usepackage{bm} % für Fettbuchstaben in Formeln
\usepackage{amsmath}
\usepackage{subfigure}
\usepackage{url}
\usepackage{cite}
\usepackage{times}
\usepackage{capt-of} %Bildunterschriften ausserhalb von floats
\usepackage{tabularx} %erweiterte Tabellenformatiermöglichkeiten
\usepackage{dcolumn} %angeblich floatzahlen am komma ausrichten in tab.
\makeatletter\setlength{\@fptop}{0pt} %alleinstehende Float-Objekte
werden an der Seitenoberkannte ausgerichtet (nicht vertikal zentriert)


\setlength{\parindent}{0em}
\setlength{\jot}{2ex}
\clubpenalty=450
\widowpenalty=450
\onehalfspacing % ab hier anderthalbzeiliger Zeilenabstand

\typearea[current]{12} %Satzspiegel neu einstellen für aktuelle
Schriftart&Zeilenabstand

\usepackage{nomencl} %abkuerzungsverzeichnis
\renewcommand{\nomname}{Verzeichnis der verwendeten Abkürzungen und
Formelzeichen}
\setlength{\nomlabelwidth}{.25\hsize}

%\renewcommand{\nomlabel}[1]{#1 \dotfill} %punkte zwischen abkuerzung und
erklaerung
% \setlength{\nomitemsep}{-\parsep}
\makeglossary
\RequirePackage{ifthen}

\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{%
\item \textbf{\large{Abkürzungen}}}{% % partition name
\ifthenelse{\equal{#1}{F}}{%
\item \textbf{\large{Wichtige Formelzeichen}}}{}}{}} % partition name

\begin{document}
hallo
\printglossary

\nomenclature[F]{$\mathbf{\hat{x}(t_{k})}$}{Geschätzter Systemzustandsvektor
zum Zeitpunkt $t_{k}$}

\nomenclature[F]{$\mathbf{g_{a}(x(t_{k}))}$}{Funktionenvektor der
nichtlinearen Übergangsfunktion für den Systemzustand $x(t_{k})$ zum
Zeitpunkt $t_{k}$}

%\nomenclature{x@$\mathbf{\hat{x}(t_{k})}$}


\end{document}
________________________________________________________________

Sorry, wenn das etwas lang ist :-)

Ich nutze
makeindex test.glo -s nomencl.ist -o test.gls
und
pdflatex test.tex

Wenn das so genutzt wird, dann steht der x-Ausdruck vor dem g_a-Ausdruck.
Wenn jetzt die vorletzte Zeile wieder einkommentiert wird, bekomme ich eine
Fehlermeldung: "Runaway argument?
! Paragraph ended before \@@@nomenclature was complete."

Ich habe das Ganze auch noch mit \index{x@$\mathbf{\hat{x}(t_{k})}$}
ausprobiert, aber da ändert sich nichts an der Reihenfolge.

Wo liegt der Fehler?

Dominik Waßenhoven

unread,
Dec 8, 2005, 4:48:30 AM12/8/05
to
Hallo Anja,

Anja Richter schrieb am 08.12.2005:

> [...]


> Ich habe das Ganze auch noch mit \index{x@$\mathbf{\hat{x}(t_{k})}$}
> ausprobiert, aber da ändert sich nichts an der Reihenfolge.

> Wo liegt der Fehler?

Sorry, vergiss mein voriges Posting ,ich bin wahrscheinlich gerade so in
meiner eigenen Index-Erstellung gefangen, dass ich vergessen hab, dass
die Syntax bei nomencl eine andere ist.

Das Problem ist, soweit ich das überblicke, dass du das prefix von
nomencl -- also \nomenclature[<prefix>]{Eintrag}{Erklärung} -- für die
Untergruppierung verwendest. Damit fällt es natürlich für das fine
tuning der Sortierung aus. Ich habe leider keine Ahnung, wie man dein
Problem lösen könnte. )c:

Ulrich Schwarz

unread,
Dec 8, 2005, 2:35:56 AM12/8/05
to
Anja Richter <ra...@hrz.tu-chemnitz.de> writes:

> Uwe Siart wrote:
>
>> Du gibst einen anderen Begriff zur Verwendung als Sortierkriterium an,
>> wenn der eigentliche Indexeintrag dafür untauglich ist.
>>
>> ,----[ Syntax ]
>> | \index{<sortierschluessel>@<indexeintrag>}
>> `----
>>
>> ,----[ Beispiel (aus makeindex.dvi) ]
>> | \index{alpha@$\alpha$}
>> `----
>
> Das Ganze funktioniert leider nicht oder ich mache was falsch.

Benutzt Du evtl. varindex? IIRC dreht das die Bedeutung um von
"displayed as" zu "sorted as": darstellung@schluessel.

Ulrich
--
http://talcum.sarovar.org/ (Current release: 0.5.138 20050911)

Anja Richter

unread,
Dec 8, 2005, 3:58:57 PM12/8/05
to
Ulrich Schwarz wrote:


>> Das Ganze funktioniert leider nicht oder ich mache was falsch.
>
> Benutzt Du evtl. varindex? IIRC dreht das die Bedeutung um von
> "displayed as" zu "sorted as": darstellung@schluessel.

Nein. Da kommt bei mir auch eine Fehlermeldung (undefined control sequence).

Ich habe aber auch den Eindruck, dass auf \index{...} gar nicht reagiert
wird.

Viele Grüße
Anja

Stefan Junge

unread,
Dec 8, 2005, 6:21:20 PM12/8/05
to
Anja Richter schrieb:


> \usepackage[latin1]{inputenc} % German characters

hast Du 2x drin...

> \makeglossary
> \printglossary

sind Befehle aus einer alten Version von nomencl... updaten.
Wenn Du die neue Version drauf hast, ändern sich auch die Erweiterungen
der Dateien für makeidx (also auf jeden Fall die Anleitung lesen...)

-- Minimalbeispiel ---
\documentclass{scrreprt}
\usepackage{nomencl}
\makenomenclature
\RequirePackage{ifthen}

\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{%
\item \textbf{\large{Abkürzungen}}}{% % partition name
\ifthenelse{\equal{#1}{F}}{%
\item \textbf{\large{Wichtige Formelzeichen}}}{}}{}} % partition name

\begin{document}
\printnomenclature[19mm]
\nomenclature[F]{$\mathbf{\hat{x}(t_{k})}$}{Symbol 1}
\nomenclature[F]{$\mathbf{g_{a}(x(t_{k}))}$}{Symbol 2}
\nomenclature[F]{$\hat{x}(t_{k})$}{Symbol 1}
\nomenclature[F]{$g_{a}(x(t_{k}))$}{Symbol 2}
\end{document}
--- eof

makeindex "nomencltest.nlo" -s nomencl.ist -o "nomencltest.nls"

Das obige Minibeispiel wird korrekt sortiert, egal ob fett oder nicht...

> Danke und viele Grüße
> Anja

Bitte
Stefan

Ina Reichel

unread,
Dec 8, 2005, 7:32:34 PM12/8/05
to

Es ist vor allem alles andere als minimal. Schmeiss' erst mal alles
aus dem Header raus, was Du zur Problemerzeugung nicht brauchst.

Cheers

Ina

--
Ina Reichel irei...@lbl.gov

"In the quiet of the night let our candle always burn
let us never lose the lessons we have learned." B.M. 1976

0 new messages