PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Index - Stil - Formatierung Stichwortverzeichnis - A, B, usw. als Überschrift



ETLinden
19-03-2010, 09:02
Hallo liebes Forum,

ich habe bisher viel Hilfe bekommen und wollte nun mal eine Möglichkeit posten, wie man das Stichwortverzeichnis rudimentär formatieren kann. Bitte auch um Beachtung, dass dies bestimmt NICHT der elegante Latex Weg ist (aber teilweise ist Latex so kompliziert, zumindest für Leute ohne Programmierkenntnisse, dass es sich aus meiner Sicht - wenn man unter Zeitdruck ist - lohnt eine nicht elegante Weise einzuschlagen).

Ich habe mit KomaScript gearbeitet und das Stichwortverzeichnis vom Standard her verwendet. Sieht m.E. gut aus und passt super. Leider sind aber die Bereiche - A, B, C, usw. - ohne Überschrift. Folgendes Layout wollte ich erreichen:

A
Anton .....5
Auto .......7

B
Bett .......7
Boot .......4

usw.
....

Es gibt viele Beiträge, in denen man eine Stildatei anlegen soll - was wahrscheinlich der eleganteste Weg ist - und dadurch das Ziel erreicht.

Leider hatte ich keine Zeit das alles noch auszuprobieren und habe mich durch die Beiträge gearbeitet. Ich das gewünschte Ergebnis durch folgenden nachträglich eingefügten Code erreicht:



\begin{theindex}
\raggedright{\bfseries \huge A}\nopagebreak % oder \centerline \item Anwender und Entwickler, 62
\item Arbeitspakete, 18
\item Artefakte, 14, 15, 28, 41
\subitem elektronische, 25, 28, 29, 31, 33
\item Autokratie, 26
\bigskip
\indexspace

\raggedright{\bfseries \huge B}\nopagebreak
\item Browser (Mosaic \IeC {\textendash } sp\IeC {\"a}ter Netscape),
13


Das Gute: Es funktioniert. Datei öffnen. Änderungen vornehmen und 1x kompilieren.

Das Schlechte: Kompiliert man 2x, dann sind die manuellen Einträge wieder weg, daher muss man es am Ende machen

Wie gesagt, es hat funktioniert. Ich habe es verstanden und es hat schnell geklappt. Die Idee mit den Stildateien klingt wesentlich besser, aber alle Beiträge haben mir nicht 100% deutlich gemacht, 1. wie ich es in meine "Hauptdatei" einbinden muss und 2. wie ich die gewünschte Formatierung erreiche.

Vllt. hilft es ja jemanden, der auch unter Zeitdruck ist und nicht gut in Latex respektive nicht programmieren kann.

Viele Grüße
Tobi

voss
19-03-2010, 09:13
Ich habe mit KomaScript gearbeitet und das Stichwortverzeichnis vom Standard her verwendet. Sieht m.E. gut aus und passt super. Leider sind aber die Bereiche - A, B, C, usw. - ohne Überschrift. Folgendes Layout wollte ich erreichen:



%%
%% This is file `Letter.ist',
%%
headings_flag 1 % headings yes
heading_prefix "\\textbf{" % boldfont
heading_suffix "}\\nopagebreak\n" % newline
quote '<'
%%level '>'
symhead_positive "Symbole"
preamble
"\\begin{theindex}\n"
item_1
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_01
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_x1
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_2
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
item_12
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
item_x2
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
%%
%%
%% End of file `Letter.ist'.


Aufruf dann mit "makeindex -s Letter.ist datei"

Herbert

ETLinden
19-03-2010, 10:01
Hallo Herbert,


Aufruf dann mit "makeindex -s Letter.ist datei".

Ich nutze Kile unter Linux, da gibt es einen Button pdflatex, dann kommt das pdf Dokument automatisch.

Ich habe leider keine Ahnung, was "makeindex -s" bedeuten soll? Soll ich das in meine Haupdatei eintragen? Ist das ein Befehl für die Kommandozeile (mit der ich nicht arbeite)?

"Letter.ist" ist eine eigenständige Datei, wenn ich dich und die anderen Beiträge richtig verstanden habe? Wenn es eine eigenständige Datei ist, wie muss ich sie dann in meine Hauptdatei einbinden?

Du siehst meine Latex Kenntnisse sind leider sehr beschränkt, die Anleitungen für meine Kenntnisse meistens zu tiefgehend geschrieben (da kein Programmierer), aber ich bin total überzeugt von Latex.

Da ich nun eine Woche unterwegs bin, fast zwei Wochen und die Abgabe Ende März ist, muss es bei mir schnell gehen. Das Stichwortverzeichnis ist der letzte fehlende Punkt. Ich würde mich aber freuen, wenn du mir die Vorgehensweise bzw. meine Frage beantworten würdest, damit ich es dann zukünftig nutzen kann.

Viele Grüße
Tobi

mechanicus
19-03-2010, 10:16
Ist das ein Befehl für die Kommandozeile (mit der ich nicht arbeite)?

Du hast Linux und nutzt die Kommandozeile nicht? Das ist ja wie ---- ich weiß nicht.

Man kann Kile auch eigene Kompilierungswünsche angeben.

Gruß
Marco

voss
19-03-2010, 10:21
Ich nutze Kile unter Linux, da gibt es einen Button pdflatex, dann kommt das pdf Dokument automatisch.

Ich habe leider keine Ahnung, was "makeindex -s" bedeuten soll? Soll ich das in meine Haupdatei eintragen? Ist das ein Befehl für die Kommandozeile (mit der ich nicht arbeite)?

"Letter.ist" ist eine eigenständige Datei, wenn ich dich und die anderen Beiträge richtig verstanden habe? Wenn es eine eigenständige Datei ist, wie muss ich sie dann in meine Hauptdatei einbinden?


Letter.ist nach der Ausgabe von

kpsewhich -var-value TEXMFLOCAL
kopieren und zwar in ein Unterverzeichnis makeindex.
texhash laufen lassen und dann in Kile
Einstellungen=>Kile bearbeiten=>Werkzeuge Erstellen=>makeindex
beim Befehl

makeindex -s Letter.ist
eintragen.

Herbert

ETLinden
19-03-2010, 11:56
Linux und nutzt die Kommandozeile nicht?
Warum die Kommandozeile nutzen, wenn es auch grafisch möglich ist? Besonders als nicht 100% kompetenter User, der alles auf der Kommandozeile kann. Immerhin schon mal auf Linux umgestiegen und weg von MS.

@ Herbert, danke werde es demnächst ausprobieren.

Viele Grüße
Tobi

lockstep
19-03-2010, 12:08
In der theindex-Umgebung in deinem Beispiel ist ein \bigskip enthalten - hast du auch diesen Befehl händisch hinzugefügt? Wenn du größere Abstände zwischen den einzelnen Buchstabengruppen möchtest, sollte es reichen, den Befehl \indexspace entsprechend umzudefinieren.

lockstep

mechanicus
19-03-2010, 12:43
Immerhin schon mal auf Linux umgestiegen und weg von MS.
Hast natürlich recht. Die Konsole wird aber auch noch kommen :D

Gruß
Marco

u_fischer
19-03-2010, 13:03
Wenn du die letter.ist in DeinDokumentenNameHierEinsetzen.mst (ja, Endung mst) umbenennst und in den Ordner deines Hauptdokument kopierst, sollte makeindex die Styledatei automatisch benutzen.

(""If exactly one input file was given and no explicit style file was
specified using -s, makeindex uses a file with the extension .mst as
default style file (when present)."

lockstep
19-03-2010, 13:10
Wenn du die letter.ist in DeinDokumentenNameHierEinsetzen.mst (ja, Endung mst) umbenennst und in den Ordner deines Hauptdokument kopierst, sollte makeindex die Styledatei automatisch benutzen.

(""If exactly one input file was given and no explicit style file was
specified using -s, makeindex uses a file with the extension .mst as
default style file (when present)."

Vielen Dank für den Tipp - wenn das in der MakeIndex-Dokumentation steht, habe ich es schon mehr als einmal überlesen.

Ist es also auch möglich, mittels der filecontents-Umgebung eine Datei \jobname.mst zu erzeugen und auf diese Weise MakeIndex-Stile in ein Minimalbeispiel mit zu verpacken?

lockstep

lockstep
19-03-2010, 13:53
:D

Anstatt zu fragen, hätte ich es gleich probieren sollen. (Das folgende klappt nur, wenn man makeindex ohne Parameter -s aufruft.)



\documentclass{scrreprt}

\usepackage{makeidx}
\makeindex

\usepackage{filecontents}
\begin{filecontents}{\jobname.mst}
headings_flag 1
heading_prefix "\\textbf{\\textsf{"
heading_suffix "}}\\nopagebreak\n"
\end{filecontents}

\begin{document}

\chapter{Ein Kapitel}

Ein bisschen Text.\index{Test}

\printindex

\end{document}


lockstep

voss
19-03-2010, 14:03
Anstatt zu fragen, hätte ich es gleich probieren sollen. (Das folgende klappt nur, wenn man makeindex ohne Parameter -s aufruft.)


es geht auch mit -s, nur wird dann logischerweise die Angabe
einer Stildatei mit Endung ist erwartet.

Herbert

ooze
22-03-2010, 19:07
Um anderen zu helfen die vielleicht vor einem ähnlichen Problem wie der Original-Poster stehen, hier eine Lösung angelehnt an die vorherigen Beiträge von lockstep und VOSS. Eigentlich wurden nur noch die Pünktchen zwischen dem Wort und der ersten auftauchenden Seite hinzugefügt.

Wenn die Datei meinfile.tex heißt, dann legt man eine Datei meinfile.mst an.
Der Inhalt von meinfile.mst sieht folgendermaßen aus:


%schaltet einen Header für jede Buchstabengruppe ein
headings_flag 1

%wird jedem Buchstaben vorangestellt
heading_prefix "\\textbf{\\textsf{"

%wird jedem Buchstaben hinten angestellt
heading_suffix "}}\\nopagebreak\n"

%das sind die Pünktchen zwischen Wort und (erster) Seitenzahl
delim_0 " \\dotfill"
quote '<'
%%level '>'
symhead_positive "Symbole"
preamble
"\\begin{theindex}\n"
item_1
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_01
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_x1
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_2
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
item_12
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
item_x2
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"Um alles zu verstehen sollte man sich die manpage von makeindex zu Gemüte führen.
makeindex ausführen


Mit Hilfe des Pakets idxlayout kann man den Index weiter seinen Wünschen anpassen. Zum Beispiel so:


\usepackage[columns=3,% Anzahl der Spalten
columnsep=35pt,% Abstand der Spalten
rule=0pt,% Für eine Trennlinien einen Wert > 0 angeben
indentunit=\parindent,% Einrückmaß
font=footnotesize,% Schriftgröße
totoc=true,% Ja, der Index soll in's Inhaltsverzeichnis
]
{idxlayout}

lockstep
22-03-2010, 21:58
Mit Hilfe des Pakets idxlayout kann man den Index weiter seinen Wünschen anpassen. Zum Beispiel so:


\usepackage[columns=3,% Anzahl der Spalten
columnsep=35pt,% Abstand der Spalten
rule=0pt,% Für eine Trennlinien einen Wert > 0 angeben
indentunit=\parindent,% Einrückmaß
font=footnotesize,% Schriftgröße
totoc=true,% Ja, der Index soll in's Inhaltsverzeichnis
]
{idxlayout}


Danke für die Erwähnung. :) "columnsep=35pt" und "rule=0pt" sind übrigens Standardeinstellungen von idxlayout.

lockstep

ooze
23-03-2010, 16:16
Danke für die Erwähnung. :) "columnsep=35pt" und "rule=0pt" sind übrigens Standardeinstellungen von idxlayout.
klar, aber für jemanden der ein solches Beispiel vielleicht übernehmen will ist die Angabe der Optionen hilfreich.

Nun bin ich aber selbst auf ein kleines Problem mit dem Index gestoßen, und zwar wenn ein Oberbegriff im Index auftaucht welcher im Text selbst nicht auftaucht, sondern nur die Unterbegriffe, dann sieht das irgendwie komisch aus. Hier das Minimalbeispiel:



\documentclass[12pt,a4paper,DIV=calc]{scrartcl}%
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\makeindex

\begin{filecontents}{\jobname.mst}
%schaltet einen Header für jede Buchstabengruppe ein
headings_flag 1

%wird jedem Buchstaben vorangestellt
heading_prefix "\\centering\\textbf{\\textsf{"

%wird jedem Buchstaben hinten angestellt
%heading_suffix "}}\\vspace{0.2em}\\hrule\\vspace{0.2em}\\nopagebre ak\n"
heading_suffix "}}\\nopagebreak\n"

%das sind die Pünktchen zwischen Wort und (erster) Seitenzahl
delim_0 " \\dotfill{} "
delim_1 " \\dotfill{} "
quote '"'

% Überschrift für Symbole
symhead_positive "Symbole"

% Überschrift für Zahlen
numhead_positive "Zahlen"

%item_0 "\n \\item "

item_1
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_01
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_x1
"\\par\\leavevmode\\hangindent10pt\\makebox[10pt][l]{--}"
item_2
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
item_12
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
item_x2
"\\par\\leavevmode\\hangindent20pt\\makebox[20pt][l]{-- -- }"
\end{filecontents}

\begin{document}

\TeX
Compiler\index{TeX!Compiler}, Shop\index{TeX!Shop}

\LaTeX\index{Latex}
Editor\index{Latex!Editor}, Entwicklungsumgebung\index{Latex!Entwicklungsumgeb ung}

\printindex

\end{document}


Kann man das nicht irgendwie so hinbekommen, dass auch "TeX" linksbündig ist?

voss
23-03-2010, 16:45
Nun bin ich aber selbst auf ein kleines Problem mit dem Index gestoßen, und zwar wenn ein Oberbegriff im Index auftaucht welcher im Text selbst nicht auftaucht, sondern nur die Unterbegriffe, dann sieht das irgendwie komisch aus. Hier das Minimalbeispiel:

Kann man das nicht irgendwie so hinbekommen, dass auch "TeX" linksbündig ist?

was ist denn hier nicht "linksbündig??" Abgesehen davon willst du doch
wohl \TeX und \LaTeX im Index haben ...

Herbert

ooze
23-03-2010, 16:59
also bei mir sieht's so aus:

http://img.skitch.com/20100323-riuqhia5arr2wbr6s6wdw28t8i.png

Ich möchte, dass auch "TeX" linksbündig steht (so wie "Latex") und nicht zentriert. Der Unterschied ist, dass "TeX" nur als Oberbegriff auftaucht, also keinen eigenen Indexeintrag hat.

voss
23-03-2010, 17:11
also bei mir sieht's so aus:

http://img.skitch.com/20100323-riuqhia5arr2wbr6s6wdw28t8i.png

Ich möchte, dass auch "TeX" linksbündig steht (so wie "Latex") und nicht zentriert. Der Unterschied ist, dass "TeX" nur als Oberbegriff auftaucht, also keinen eigenen Indexeintrag hat.

ok, hatte meine Letter.ist verwendet.

%wird jedem Buchstaben vorangestellt
heading_prefix "\\centerline{\\textbf{\\textsf{"

%wird jedem Buchstaben hinten angestellt
heading_suffix "}}}\\nopagebreak\n"


Herbert

ooze
23-03-2010, 17:18
danke, jetzt passt's!

voss
23-03-2010, 17:22
danke, jetzt passt's!

bis auf deine Schreibweisen von TeX und LaTeX ... :rolleyes:

Herbert

c_theelen
06-07-2013, 11:50
[QUOTE=u_fischer;310601]Wenn du die letter.ist in DeinDokumentenNameHierEinsetzen.mst (ja, Endung mst) umbenennst und in den Ordner deines Hauptdokument kopierst, sollte makeindex die Styledatei automatisch benutzen.

Danke das hat mich gerettet! :)