LaTex, makeindex

hallo LaTex-Experten,

ich habe da ein kleines Problem mit meinem Stichworverzeichnis, d.h. eigentlich ist es ein größeres Problem: ich krieg’s nicht hin (trotz der 2 halben Tage, die ich in online-Hilfen u.ä. rumgestöbert habe).

Also erst mal mene Voraussetzungen:

ich benutze TexLive (mit Winedt). Mein Dokument ist documentclass{article}, ich könnte es jedoch auch in {book} umändern, falls es nötig wäre.

Ich muß vielleicht dazu sagen, daß ich LaTex zwar für den Normalgebrauch bedienen kann und auch schon größere Dokumente damit gemacht habe, aber im Prinzip kenn ich mich nicht wirklich damit aus.

Im Dokument sieht es nun wie folgt aus:

\documentclass[12pt,a4paper]{article}
\usepackage{makeindex}
\makeindex
\begin{document}

bla bla bla bla

\printindex
\end{document}

LaTex sagt mir nun:
file ‚makeindex.sty‘ not found

Allerdings habe ich gestern ziemlich lang rumprobier und es irgendwie geschafft, ein .idx file zu generieren.
So weit, so gut, wie muß ich jetzt dieses makeindex-Programm anwenden?
Bis jetzt habe ich versucht, die makeindex.exe Datei zu starten, aber es kam immer nur die Meldung:
scanning input files stdin…
und weiter kam das ganze nicht.

Könnt ihr mir helfen?

Grüßle,
Sandra

hallo LaTex-Experten,

Hi. Wer? Wo?

ich benutze TexLive (mit Winedt). Mein Dokument ist
documentclass{article}, ich könnte es jedoch auch in {book}
umändern, falls es nötig wäre.

Ich find ja mittlerweile auch an den Koma-Script-Klassen Gefallen.

Im Dokument sieht es nun wie folgt aus:

\documentclass[12pt,a4paper]{article}
\usepackage{makeindex}
\makeindex
\begin{document}

bla bla bla bla

\printindex
\end{document}

Hm, okay. Und welche Woerter haettest Du gern in den Index? LaTeX kann sich das ja schlecht selbst ausdenken.

LaTex sagt mir nun:
file ‚makeindex.sty‘ not found

Allerdings habe ich gestern ziemlich lang rumprobier und es
irgendwie geschafft, ein .idx file zu generieren.

Wahrscheinlich hast Du irgendwann mal \usepackage{makeindex} durch \usepackage{makeidx} ersetzt. Aendere das wieder zurueck, um die Fehlermeldung zu erhalten.

So weit, so gut, wie muß ich jetzt dieses makeindex-Programm
anwenden?

Ja.

Bis jetzt habe ich versucht, die makeindex.exe Datei zu
starten, aber es kam immer nur die Meldung:
scanning input files stdin…

Er wartet auf die Index-Datei von der Standard-Eingabe. (Du kannst sie eintippen, waere mir aber zu muehsam.)

Könnt ihr mir helfen?

Hier (Linux) funktioniert folgendes:

frank@hercules [~] $ cat foo.tex
\documentclass{scrartcl}
\usepackage{makeidx}
\makeindex

\begin{document}
\begin{section}{blafasel}
Schwafel, blubber \index{foobar}foobar laber rabarber.
Baz bar frizz Palaber \index{bliz}bliz schnaak.
\end{section}
\printindex
\end{document}
frank@hercules [~] $ latex foo.tex \>/dev/null
frank@hercules [~] $ makeindex foo.idx 2\>/dev/null
frank@hercules [~] $ latex foo.tex \>/dev/null
frank@hercules [~] $

HTH,
Gruss vom Frank.

hallo Frank,

erst mal danke für deine Antwort.

Ich find ja mittlerweile auch an den Koma-Script-Klassen
Gefallen.

Was ist das genau?

Hm, okay. Und welche Woerter haettest Du gern in den Index?
LaTeX kann sich das ja schlecht selbst ausdenken.

ich hab schon indizierte Worte drin, keine Sorge

Wahrscheinlich hast Du irgendwann mal \usepackage{makeindex}
durch \usepackage{makeidx} ersetzt. Aendere das wieder
zurueck, um die Fehlermeldung zu erhalten.

ok, mit makeidx kommt keine Fehlermeldung mehr.

Hier (Linux) funktioniert folgendes:

frank@hercules [~] $
cat foo.tex

\documentclass{scrartcl}
\usepackage{makeidx}
\makeindex

\begin{document}
\begin{section}{blafasel}
Schwafel, blubber \index{foobar}foobar laber rabarber.
Baz bar frizz Palaber \index{bliz}bliz schnaak.
\end{section}
\printindex
\end{document}
frank@hercules [~] $ latex foo.tex >/dev/null
frank@hercules [~] $ makeindex foo.idx 2>/dev/null
frank@hercules [~] $ latex foo.tex >/dev/null
frank@hercules [~] $

kannst du mir bitte die Funktion der fettgedruckten Teile kurz erklären? Was muß ich da an mein spezielles Dokument anpassen? (Sorry, ich hab wirklich keine Ahnung von der Sache)Wo sollte eigentlich die Datei makeindex.exe stehen? Bei mir ist sie in Texlive\bin\win32, funktioniert es von da aus?

Grüßle,
Sandra

Hallo Sandra,

Ich find ja mittlerweile auch an den Koma-Script-Klassen
Gefallen.

Was ist das genau?

Alternative Dokumentenklassen, die mehr auf den deutsche Gepflogenheiten angepasst sind und sich ein wenig flexibler gestalten lassen, was Seitenaufbau, Papierformat und einige Details wie Kopf- und Fußzeilen betrifft. Du findest Dokumentation dazu in Deinem texlive-DOC Verzeichnis oder auf einem CTAN-Server Deiner Wahl

http://dante.ctan.org/CTAN/macros/latex/contrib/koma…

ok, mit makeidx kommt keine Fehlermeldung mehr.

Fein :smile:

kannst du mir bitte die Funktion der fettgedruckten Teile kurz
erklären? Was muß ich da an mein spezielles Dokument anpassen?

An Deinem Dokument musst Du eigentlich nichts weiter machen. Nur musst Du eben neben latex auch noch makeindex aufrufen, um den Index zu erzeugen. Im ersten latex-Durchlauf erzeugt das Programm (aufgrund des \makeiundex-Anweisung in der Präambel) eine .idx-Datei mit den Verweisen und Seitenzahlen der Stichworte. Makeindex macht aus dieser .idx-Datei dann (nach bestimmten Stylevorgaben, siehe Anleitung zu Makeindex) eine .ind Index-Datei. Der zweite Latex-Durchlauf bindet dann (aufgrund der \printindex Anweisung) den Index an der Stelle ein, wo das \printindex Kommando steht.

(Sorry, ich hab wirklich keine Ahnung von der Sache)Wo sollte
eigentlich die Datei makeindex.exe stehen? Bei mir ist sie in
Texlive\bin\win32, funktioniert es von da aus?

Du solltest Dir Deinen Programmsuchpfad (echo $PATH) um das Verzeichnis erweitern, in dem die ganzen ausführbaren Programme Deiner TeX-Installation liegen. Dann klappt der Aufruf von überall.

PATH=$PATH;

klappt glaube ich unter Windows. Normalerweise sollte aber Dein TeX-Werkzeug (Winedt?) einen entsprechenden Aufruf für Dich per Mausklick erledigen. Wenn nicht, dann probiere mal TeXnicCenter. Das ist obendrein auch noch open source und kostet somit weder Geld, noch nervt es mit „registrier mich“ Meldungen.

http://dante.ctan.org/CTAN/systems/win32/TeXnicCente…

Was die >/dev/null in dem Fettfruck betrifft, so wird damit unter Linux lediglich die Ausgabe der Programme „unsichtbar“ gemacht (in den Mülleimer umgeleitet), das kannst Du für Windows vergessen. Außerdem ist es natürlich im Ernstfall wenig hilfreich, wenn Fehlermeldungen gelöscht werden. Es gibt allerdings auch die Logfiles (.log und .ilg für LaTeX und makeindex).

Die \begin{section}{Überschrift} … \end{section} Kombination kannte ich noch gar nicht. Das ist auch überflüssig, ein simples \section{Überschrift} ist eigentlich das übliche Vorgehen unter LaTeX :smile:

Gruß

Fritze

Ich find ja mittlerweile auch an den Koma-Script-Klassen
Gefallen.

Was ist das genau?

Das sind die Dokumentklassen, die mit scr anfangen. scrartcl ist eine von denen. Hier finden sich noch scrreprt, scrbook und strlettr.

frank@hercules [~] $ cat foo.tex

\documentclass{scrartcl}
\usepackage{makeidx}
\makeindex

\begin{document}
\begin{section}{blafasel}
Schwafel, blubber \index{foobar}foobar laber rabarber.
Baz bar frizz Palaber \index{bliz}bliz schnaak.
\end{section}
\printindex
\end{document}
frank@hercules [~] $ latex foo.tex >/dev/null
frank@hercules [~] $ makeindex foo.idx 2>/dev/null
frank@hercules [~] $ latex foo.tex >/dev/null
frank@hercules [~] $

kannst du mir bitte die Funktion der fettgedruckten Teile kurz
erklären?

Aehm… das ist mein Eingabeprompt bzw. die Kommandos, die ich dort eingebe. Ignoriere es am besten.

Was muß ich da an mein spezielles Dokument anpassen?

Wahrscheinlich gar nichts.

Wo sollte eigentlich die Datei makeindex.exe stehen? Bei mir
ist sie in Texlive\bin\win32, funktioniert es von da aus?

Ich weisz nicht. Wenn Du eine TeX-Datei mit Index durch LaTeX schickst, sollte das eine *.idx-Datei erzeugen. Diese muszt Du als Argument an makeindex.exe uebergeben. Wahrscheinlich muszt Du sowas wie

C:\Texlive\bin\win32\makeindex.exe blafasel.idx

eintippen. Das erzeugt Dir eine *.ind Datei, welche von \printindex bei einem erneuten Aufruf von LaTeX mit der TeX-Datei included wird und den Index erzeugt.

HTH,
Gruss vom Frank.

hallo Frank,

Vielen Dank
Es funktioniert.
Nur noch eine kleine Zusatzfrage:
Ich habe den Befehl jetzt ins Dos-Eingabefenster geschrieben. Da gab es zuerst mal Probleme mit den Verzeichnisnamen (einige bestehen bei mir aus 2 Wörtern), die wurden nicht erkannt. Ich hab zwar dann makeindex.exe und meine .idx Datei in ein anderes Verzeichnis kopier und da hat’s funktioniert, aber etwas umständlich ist es schon. Muß ich mic damit abfinden oder gibt es eine andere Lösung?

Grüßle,
Sandra

hallo Frank,

Vielen Dank
Es funktioniert.
Nur noch eine kleine Zusatzfrage:
Ich habe den Befehl jetzt ins Dos-Eingabefenster geschrieben.
Da gab es zuerst mal Probleme mit den Verzeichnisnamen (einige
bestehen bei mir aus 2 Wörtern), die wurden nicht erkannt. Ich
hab zwar dann makeindex.exe und meine .idx Datei in ein
anderes Verzeichnis kopier und da hat’s funktioniert, aber
etwas umständlich ist es schon. Muß ich mic damit abfinden
oder gibt es eine andere Lösung?

Das ist ein DOS und kein LaTeX-Problem :smile:

Du kannst versuchen, die Leerzeichen zu maskieren (unter Linux wäre das ein „“ Zeichen, aber das wird es unter DOS nicht sein können, damit wird ja eine neue Verzeichnisebene aufgemacht) oder den Pfadnahmen in Anfürhungszeichen zu setzen, damit der gesamte String inkl. Leerzeichen als Name intetpretiert wird. Sonst ist für den Kommandointerpreter ein Leerzeichen das Zeichen für „Ende der Option“.

Daher macht man auch in Verzeichnisnamen nimmer nicht keine Leerzeichen (oder andere obskure Sonderzeichen) rein :smile:

Alternativ solltest Du wirklich mal über TeXNiccenter nachdenken.

Gruß

Fritze

\begin{section} vs. \section (was: LaTex, make…)
Hi,

Was die >/dev/null in dem Fettfruck betrifft, so wird damit
unter Linux lediglich die Ausgabe der Programme „unsichtbar“
gemacht (in den Mülleimer umgeleitet), das kannst Du für
Windows vergessen.

Windows ist da viel besser und hat in jedem Verzeichnis einen Muelleimer:

C:\\>dir \>NUL

Außerdem ist es natürlich im Ernstfall wenig hilfreich,
wenn Fehlermeldungen gelöscht werden.

Natuerlich. Ich habe mich natuerlich einerseits ueberzeugt, dass mein Beispiel fehlerfrei durchlaeuft, andererseits bilde ich mir ein, bei derart kleinen Dokumenten korrekte Syntax schreiben zu koennen. Dem Forum wollte ich die ganzen Ausgaben ersparen. (IMHO waere Sandra da sowieso noch mehr verwirrt gewesen.)

Die \begin{section}{Überschrift} … \end{section} Kombination
kannte ich noch gar nicht.

Ich frage mich schon lange, was der Unterschied ist. Ich hatte immer mal die Hoffnung das Du mich darueber aufklaeren wuerdest.

Das ist auch überflüssig, ein simples \section{Überschrift}
ist eigentlich das übliche Vorgehen unter LaTeX :smile:

Ich empfinde \begin{}{}\end als angenehmer, da es mehr dem Auszeichnungcharakter von LaTeX entspricht: alles dazwischen ist eine Abschnitt. Bei \section{} ist das bis zur naechsten \section{} ‚irgendwas‘. Naja, wahrscheinlich eher eine philosophische Frage.

Gruss vom Frank.

hallo Fritze,

Alternativ solltest Du wirklich mal über TeXNiccenter
nachdenken.

hab’s grad installiert.
Sieht schon mal gut aus.
Danke für den Tip.

Grüßle,
Sandra