PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Indexverzeichnis



schwobatz
20-06-2007, 08:52
Hallo zusammen,
hab mal wieder ein kleines Problem ;)
diesmal mit dem Indexverzeichnis, welches ich standardmäßig über den Befehl


\addcontentsline{toc}{chapter}{Index}
\printindex
einfüge.

Sorry, ich benutze das Paket makeidx! das ist wahrscheinlich ursächlich...
Da ich teilweise recht lange Begriffe habe, die über eine Spalte "herausgehen", ist das Layout problematisch. Natürlich sollen es gerne 2 Spalten bleiben, aber wie kann ich im Indexverzeichnis Zeilenumbrüche erzwingen? KAnn ich die Spaltenbreite fest vorgeben?

Ich hätte auch kein Problem, das Indexverzeichnis einspaltig zu machen, um lästige Zeilenumbrüche zu umgehen... (dann vllt mit dotfill oder so (Seitenzahlen rechtsbündig)...

Problematisch ist nämlich, dass ich recht ordentliche Seitenränder einzuhalten habe...

DANKE schonmal und viele Grüße,
Robert

schwobatz
20-06-2007, 19:10
Kennt sich mit dem Indexverzeichnis keiner aus?!
Könnt ihr mir denn Literatur dazu empfehlen?

Grüße

countbela666
21-06-2007, 07:58
Hallo, Robert,

falls du hier im Forum mal keine Antwort bekommst, wirkt ein Minimalbeispiel meistens Wunder... ;)

Nichts für ungut
Marcel

schwobatz
21-06-2007, 09:34
Hi,
ein Minimalbeispiel zu erstellen ist äußerst müßig (Ich müsste ja eines erstellen, in dem ausreichend viele Indizes verwandt werden, um mehr als eine Spalte zu füllen...;)) , ich probiere es einfach anhand meiner Arbeit zu demonstrieren, was ich meine... Vielleicht könnt ihr damit ja schon was anfangen...

Zum einen hänge ich einen Screenshot meines Indexverzeichnisses an...
Man erkennt, dass aufgrund diverser Indizes ZWEI SPALTEN angelegt werden und die Begriffe

\index{determistisches, dynamischen Transshipment- Netzwerk- Modell}

\index{dynamischen Transshipment- Netzwerk- Optimierung- Problems}
über die erste Spalte hinausgehen, was zur angesporchenen Layoutproblematik führt. :confused::confused:

Den kompletten Aufbau meiner Hauptdatei stelle ich als zweiten Anhang auch online, da er vielleicht wichtig ist. Ich verwende das "normale" Style-File makeidx!

Vielen Dank schon jetzt,
mit den besten Grüßen,
Robert

(Natürlich werde ich jegliche Nachfragen versuchen, schnellstmöglich zu beantworten oder auch den Inhalt der Indexdateien hier reinstellen... Da diese aber jeweils denselben Aufbau haben, bezweifel ich, dass sie notwendig sind...)

Salnic
21-06-2007, 11:51
Hi schwobatz,


Du musst Latex ein wenig beim Trennen helfen, siehe auch de-tex-faq ab 5.3 Silbentrennung, vor allem

5.3.7 Warum trennt LATEX Wörter mit Bindestrich nicht bzw. nur am Bindestrich, auch wenn die Trennausnahmeliste diese enthält?

So richtig lies sich Latex aber von mir nicht überzeugen ordentlich zu trennen, Du kannst aber radikal selber trennen. Allerdings musst Du Dich darum kümmern, dass alle \index{} zum gleichen Stichpunkt auch absolut gleich eingetragen werden, sonst hast Du doppelte Einträge im Index. Eventuell musst Du Dir auch noch mal die Sortierung ansehen, unter Umständen sortiert makeindex nun falsch. Entweder Parameter an makindex übergeben oder mit @ einen Sortierschlüssel übergeben. Siehe auch http://www.ku-eichstaett.de/urz/schriften/makeidx.pdf



\documentclass[draft,ngerman]{scrartcl}
\usepackage{babel}
\usepackage{makeidx}
\makeindex
\begin{document}
Minimalbeispiel
\index{determistisches, dynamischen Trans-\\ shipment-Netzwerk-Modell}
\index{determistisches, dynamischen Transshipment-Netzwerk-Modell}
\index{dynamisches Transshipment-Netzwerk-Optimierungs-Problem}
\index{ist doch nicht so schwer, ein Minimalbeispiel zu erstellen, oder?}
\newpage
\index{dynamisches Transshipment-Netzwerk-Optimierungs-Problem}
\index{dynamisches Transshipment-Netzwerk-\\ Opti\-mierungs-Problem}
\printindex
\end{document}

Salnic

countbela666
21-06-2007, 12:23
Wenn du den Tipp aus der FAQ anwenden willst, muss der Quote-Character auf ein anderes Zeichen als den Standardwert " gestellt werden, da die Zeichenfolge "= sonst falsch interpretiert wird.

Das geht z. B. indem du makeindex die Konfigurationsdatei umlaut.ist als Parameter übergibst:

maxeindex -s umlaut.ist DATEINAME.idxÜbrigens, die Wahl deiner, ähem..., orthographischen Mittel ist recht gewöhnungsbedürftig. Es besteht IMHO kein Grund, die Komposita "Netzwerkmodell" oder "Netzwerkoptimierungsproblem" zu zerpflücken. Dies ist sowohl nach alter als auch neuer Rechtschreibung nur erlaubt, wenn eines der Bestandteile des Kompositums ein wenig gebräuchliches Fremdwort oder ein speziell hervorzuhebender Bestandteil ist. Das ist weder bei Netzwerk noch bei Optimierung oder Problem der Fall (wohl aber bei Transshipment).

Hier mal Salnics Minimalbeispiel (danke :D) sowohl bezüglich der Trennungsausnahmen als auch der Orthographie angepasst:

\documentclass[draft,ngerman]{scrartcl}
\usepackage{babel}
\usepackage{makeidx}
\makeindex
\begin{document}
Minimalbeispiel
\index{determistisches, dynamischen Transshipment"=Netzwerkmodell}
\index{determistisches, dynamischen Transshipment"=Netzwerkmodell}
\index{dynamisches Transshipment"=Netzwerkoptimierungsproblem}
\index{ist doch nicht so schwer, ein Minimalbeispiel zu erstellen, oder?}
\newpage
\index{dynamisches Transshipment"=Netzwerkoptimierungsproblem}
\index{dynamisches Transshipment"=Netzwerkoptimierungsproblem}
\printindex
\end{document}(funktioniert nur, wenn der Quote-Character wie oben beschrieben umdefiniert wurde!)

Grüße
Marcel

Salnic
21-06-2007, 17:21
> Wenn du den Tipp aus der FAQ anwenden willst, muss der Quote-Character auf ein anderes Zeichen als den Standardwert " gestellt werden,
> da die Zeichenfolge "= sonst falsch interpretiert wird.

> Das geht z. B. indem du makeindex die Konfigurationsdatei umlaut.ist als Parameter übergibst:

Danke, das hatte ich nicht gemacht, auch aus Unkenntnis nicht.

> auch der Orthographie angepasst
und damit verschwinden auch einige Probleme automatisch.

Salnic

schwobatz
24-06-2007, 18:10
Hallo,
zunächst einmal Vielen DANK!

Leider konnte ich damit wenig anfangen... Ich arbeite mit TexnicCenter (Miktex) und euer Code mit der Konfigurationsdatei und der Parameterübergabe erinnert mit mehr an Linux... Wie erreiche ich das unter Windows?!


Das geht z. B. indem du makeindex die Konfigurationsdatei umlaut.ist als Parameter übergibst:

Gibt es bei Indexverzeichnissen nicht die Möglichkeit, dies analog zum Inhaltsverzeichnis (also EINSPALTIG, mit Punkten bis zur Seitenangabe) als Layout einzubauen?

Weiterhin vielen Dank,
Grüße,
Robert

localghost
24-06-2007, 18:48
Mit Linux hat das rein gar nichts zu tun. Sieh dir mal die Stil-Dateien für makeindex an. Du kannst sie in jedem Editor oder im TeXnicCenter öffnen.

C:\Programme\MiKTeX 2.6\makeindex\german
Ich schlage jedoch vor, bei der Indexierung etwas anders vorzugehen und nicht nur Haupteinträge, sondern auch Untereinträge zu nutzen.

\index{Transshipment"=Netzwerk!Modell}
\index{Transshipment"=Netzwerk!Modell!determistisch, dynamisch}
\index{Transshipment"=Netzwerk!Optimierungs"=Problem}
Dann entsteht das Problem zumindest nicht ganz so schnell. Den Aufruf für makeindex kannst Du ganz leicht in den Ausgabeprofilen (Alt+F7) ändern. Dort setzt Du in der Zeile mit den Argumenten für makeindex den Vorschlag von Marcel ein.

-s umlaut.ist -g "%bm"

Ergänzung:
Ich habe mir mal eine eigene Formatänderungsdatei (wie sie eigentlich heißt) zusammengebastelt [1]. Ist zwar nicht einspaltig, könnte dir aber gefallen.


[1] Forum-Thema: Index Stil bei MikTex/TeXnic Center

schwobatz
24-06-2007, 21:55
Danke, das sieht auf jeden Fall schon gut aus und ich hab wieder einiges gelernt. Das mit den Untereinträgen werde ich morgen vllt auch noch umsetzen, mal sehen...

nochmals danke und viele grüße,
Robert

Anjoro
09-08-2007, 13:08
Hallo an alle,
ich habe mich kürzlich entschlossen meine Doktorarbeit mit LateX zu schreiben. Das Grundgerüst steht, doch mit den ersten Zeilen kamen neue Probleme auf.

Ich habe vor mehrere Indexverzeichnisse zu erstellen, was mit dem makeidx- und dem index-Paket sowie dem \newindex-Befehl gut klappt. Das habe ich aus dem Buch von Frank Mittelbach und Michel Goossens "Der Latex Begleiter".

Hier mein Minimalbeispiel:


\documentclass[a4paper,12pt,ngerman]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{makeidx}
\usepackage{index}
\newindex{default}{idx}{ind}{Schlagwortverzeichnis }
\newindex{reaktion}{rdx}{rnd}{Reaktionsverzeichnis }

\begin{document}
\frontmatter
\tableofcontents

\mainmatter
\chapter{Kapitel1}

\begin{equation}
\index[reaktion]{Reaktion von Wasser mit Eis}
"Reaktionsgleichung"
\end{equation}

\begin{equation}
\index[reaktion]{Luft reagiert mit Sauerstoff}
"noch ne Reaktionsgleichung"
\end{equation}

\backmatter
\printindex[reaktion]
\end{document}


Nun brauche ich diese Verzeichnisse einspaltig über die gesamte Seite. Ich habe schon gesucht, wie man die Stildatei dahingehend anpassen kann, aber nirgends etwas darüber gefunden. Der Index bleibt zweispaltig.

Meine Stildatei meinstil.ist sieht momentan so aus:



quote '!'
preamble
"\\begin{theindex}\n"
postamble
"\n\n\\end{theindex}\n"
delim_0 "\\dotfill"
delim_1 "\\dotfill"
delim_2 "\dotfill"
suffix_2p "\\,f"
suffix_3p "\\,ff"


Kann ich da einen Befehl eintragen, der mein Problem löst?

Vielen Dank schön mal.
Gruß, Anja

rais
10-08-2007, 07:49
Nun brauche ich diese Verzeichnisse einspaltig über die gesamte Seite. Ich habe schon gesucht, wie man die Stildatei dahingehend anpassen kann, aber nirgends etwas darüber gefunden. Der Index bleibt zweispaltig.

vielleicht etwas brutal, aber:


\renewcommand\twocolumn[1][]{#1}
dann is nix mehr mit zweispaltig.;-)
MfG,

Anjoro
10-08-2007, 11:29
Hallo und danke für den Tip.


vielleicht etwas brutal, aber:


\renewcommand\twocolumn[1][]{#1}


Nicht schlecht, das klappt. Allerdings werd ich den Befehl \twocolumn anderswo nicht mehr verwenden können.
Gibt es keine andere Möglichkeit, z.B. ein Eintrag in die Stildatei für makeindex? Ich brauch die Änderung ja nur im Index.

Viele Grüße, Anja

rais
10-08-2007, 19:13
Moin moin,


Nicht schlecht, das klappt. Allerdings werd ich den Befehl \twocolumn anderswo nicht mehr verwenden können.
Gibt es keine andere Möglichkeit, z.B. ein Eintrag in die Stildatei für makeindex? Ich brauch die Änderung ja nur im Index.

in der Tat, deswegen ja `brutal';-)
Und ja, das geht auch :D


\begin{filecontents}{DeinStil.ist}
quote '!'
preamble
"\\bgroup\n\\renewcommand\\twocolumn[1][]{#1}\n\\begin{theindex}\n"
postamble
"\n\n\\end{theindex}\n\\egroup\n"
delim_0 "\\dotfill"
delim_1 "\\dotfill"
delim_2 "\dotfill"
suffix_2p "\\,f"
suffix_3p "\\,ff"
\end{filecontents}
\documentclass[a4paper,12pt,ngerman]{scrbook}
\usepackage{babel,blindtext}
\usepackage{makeidx}
\usepackage{index}
\newindex{default}{idx}{ind}{Schlagwortverzeichnis }
\newindex{reaktion}{rdx}{rnd}{Reaktionsverzeichnis }

\begin{document}
\frontmatter
\tableofcontents

\mainmatter
\chapter{Kapitel1}

\begin{equation}
\index[reaktion]{Reaktion von Wasser mit Eis}
"Reaktionsgleichung"
\end{equation}

\begin{equation}
\index[reaktion]{Luft reagiert mit Sauerstoff}
"noch ne Reaktionsgleichung"
\end{equation}

\backmatter
\twocolumn[\chapter*{Test zweispaltig vor dem Index}]
\blindtext[4]
\onecolumn
\printindex[reaktion]
\twocolumn[\chapter*{Test zweispaltig nach dem Index}]
\blindtext[4]
\end{document}

dann entsprechend


(pdf)latex foo.tex
makeindex foo.rdx [-g] -s DeinStil.ist -o foo.rnd -t foo.rlg
(pdf)latex foo.tex (2+*)

sieht auch besser im Code aus, als z. B. \let\twocolumnorg\twocolumn + \renewcommand\twocolumn...

MfG,

Anjoro
13-08-2007, 11:03
Die Wochenendpause ist vorbei und umsomehr freu ich mich, daß die Woche so erfolgreich beginnt.
Die Bearbeitung der Stildatei bringt das absolute Wunschergebnis. Vielen Dank.

Nun hab ich gleich noch ne Frage zu dieser Indexerstellung.:o

Ich arbeite ja mit der equation-Umgebung, die eine automatische Nummerierung rechts neben der Gleichung erzeugt. Kann ich diese Nummern automatisch im Index auflisten lassen mit meinem Text daneben?

Viele Grüße, Anja

rais
14-08-2007, 00:33
Hallo Anja,
IMHO ist ein Index nur dazu gedacht, einen Begriff samt auftretender/n Seitenzahl/en aufzulisten... wovon Du jetzt sprichst, klingt eher nach einem Glossar bzw. einer Nomenklatur, bei dem/der nicht nur der Begriff, sondern auch eine Erläuterung dazu fällt -- aber vermutlich versteh' ich bloß wieder was nicht.:confused:
MfG,

Anjoro
14-08-2007, 11:46
Wer hier was nicht versteht wäre noch zu klären ;) Meine Latex-Erfahrung reicht gerade einen Monat zurück.

Nun stellt sich mir die Frage, was für mein Vorhaben sinnvoller ist.

Ist es denn überhaupt möglich die automatisch erstellt Nummerierung der Gleichungen (equation-Umgebung) im Text in einem Verzeichnis auflisten zu lassen mit Angabe der Seitenzahl?

Und ist es dann möglich, im Verzeichnis eine Beschreibung hinter die Nummer zu bekommen, die wie ein Index in den Text geschrieben wird.
Dadurch sollte der Index oder das entstehende Verzeichnis nach den Nummern sortiert werden.

Die Eingabe im Quelltext ist jedenfalls so, wie schon mal hier als Beispiel geschrieben.

Ist das verständlich?:cool:

Gruß , Anja

rais
14-08-2007, 22:38
Moin moin,


Ist es denn überhaupt möglich die automatisch erstellt Nummerierung der Gleichungen (equation-Umgebung) im Text in einem Verzeichnis auflisten zu lassen mit Angabe der Seitenzahl?

dazu fallen mir spontan zwei Ansätze ein: nomencl-Paket mit \nomeqrefpage oder float-Paket mit \newfloat + \listof.
Ich tippe hier eher auf den \listof, aber schau Dir beide Pakete erstmal an.
MfG,

Anjoro
15-08-2007, 08:50
Hallo und danke für den Tip,

ich habe das float-Paket ausprobiert und das klappt. Für die Übertragung der automatischen Gleichungsnummer ins Gleichungsverzeichnis hab ich den \eqref-Befehl genutzt. Man muß allerdings das Paket amsmath mit laden, sonst funktioniert die Nummernübertragung nicht.

So sieht mein Quelltext aus:


\documentclass[a4paper,12pt,ngerman,liststotoc]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{float}
\newfloat{reaktion}{H}{rkt}
\newcommand{\rkttext}[1]{
\label{#1}
\addcontentsline{rkt}{reaktion}{\eqref{#1} #1}}

\begin{document}
\frontmatter
\tableofcontents

\mainmatter
\chapter{Kapitel1}

\begin{reaktion}
\begin{equation}
"Reaktionsgleichung"
\rkttext{Reaktion von Wasser mit Eis}
\end{equation}
\end{reaktion}

\begin{reaktion}
\begin{equation}
"noch ne Reaktionsgleichung"
\rkttext{Luft reagiert mit Sauerstoff}
\end{equation}
\end{reaktion}

\backmatter
\listof{reaktion}{Verzeichnis der Reaktionsgleichungen}
\end{document}


Toll, so hab ichs mir vorgestellt.:D
Danke nochmal.

Viele Grüße, Anja

rais
15-08-2007, 21:56
Hallo Anja,
vielleicht noch als Anregung:


\newcommand{\rkttext}[2][\empty]{%
\ifx#1\empty%
\label{#2}%
\addcontentsline{rkt}{reaktion}{\eqref{#2} #2}%
\else%
\label{#1}%
\addcontentsline{rkt}{reaktion}{\eqref{#1} #2}%
\fi%
}
falls Du in Deinem Reaktionstext mal Sonderzeichen stehen hast, mit denen \label nix anfangen kann -- einfach \rkttext[ein-label-das-es-noch-nicht-gibt]{...} dann im Text.;)

MfG,