Index < LaTeX < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:18 Do 12.04.2012 | Autor: | Pacapear |
Hallo zusammen!
Ich versuche schon den ganzen Tag, mit Latex ein Indexverzeichnis zu erstellen.
Als Latex-Distribution benutze ich Miktex2.7, und als Editor TexnicCenter.
Ich mache es wie folgt:
In die Präambel schreibe ich "\ usepackage{makeidx}" und "\ makeindex", und vor "\ enddocument" schreibe ich "\ printindex".
Bzw. wenn ich die Klasse "AMSbook" verwende, brauche ich wohl KEIN "\ usepackage{makeidx}", weil es irgendwie mitgeliefert ist.
Wenn ich das mache, passiert leider nix. Es wird kein Index erstellt. Und auch keine *.ind-Datei.
Nun habe ich im Internet gelesen, dass man bei TexnixCenter in Profiles "%bm" druch "%tm" ersetzen soll, aber eigentlich nur für Miktex2.9, was ich ja nicht habe. Ich hab es trotzdem mal gemacht, es scheint in so weit zu helfen, dass ich eine *.ind-Datei bekomme und nach mehrmaligem komplieren auch einen Index.
ABER: Alle Wörter im Text, vor die ich "\ index{...}" schreibe, damit sie im Index erscheinen, verschwinden plötzlich aus dem Text.
Ich habe auch schonmal einen anderen Editor ausprobiert (TexStudio), aber da sind die Probleme die gleichen.
Könnt ihr mit weiterhelfen?
Danke schonmal.
LG Nadine
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:28 Do 12.04.2012 | Autor: | rainerS |
Hallo Nadine!
> Hallo zusammen!
>
> Ich versuche schon den ganzen Tag, mit Latex ein
> Indexverzeichnis zu erstellen.
>
> Als Latex-Distribution benutze ich Miktex2.7, und als
> Editor TexnicCenter.
Dann solltest du dir dieses PDF anschauen; sehr hilfreich!
>
> Ich mache es wie folgt:
>
> In die Präambel schreibe ich "\ usepackage{makeidx}" und
> "\ makeindex", und vor "\ enddocument" schreibe ich "\
> printindex".
>
> Bzw. wenn ich die Klasse "AMSbook" verwende, brauche ich
> wohl KEIN "\ usepackage{makeidx}", weil es irgendwie
> mitgeliefert ist.
>
> Wenn ich das mache, passiert leider nix. Es wird kein Index
> erstellt. Und auch keine *.ind-Datei.
Nein. \makeindex bewirkt, dass eine .idx-Datei erstellt wird, in die jede \index-Anweisung etwas hineinschreibt, und zwar eine \indexentry-Anweisung. Damit hast du zwar alle nötigen Informationen, um einen Index zu erstellen, aber er ist weder sortiert noch formatiert.
Dazu brauchst du einen Indexprozessor. Es gibt davon zwei: das gute alte Programm makeindex und das moderne xindy. Leider leider leider liefert miktex xindy nicht mit.
Du solltest nachschaun, dass in deinem gewählten Profil der Indexprozessor ausgeführt wird; da gibt's nämlich ein Häkchen, mit dem man ihn abschalten kann.
> Nun habe ich im Internet gelesen, dass man bei TexnixCenter
> in Profiles "%bm" druch "%tm" ersetzen soll, aber
> eigentlich nur für Miktex2.9, was ich ja nicht habe. Ich
> hab es trotzdem mal gemacht, es scheint in so weit zu
> helfen, dass ich eine *.ind-Datei bekomme und nach
> mehrmaligem komplieren auch einen Index.
Da kann ich wenig dazu sagen: der Unterschied ist, dass "%bm" für den gesamten Pfad der Datei (ohne ".tex") steht, während "%tm" nur für den Namen steht (ohne Verzeichnis).
Was du tun kannst: latex schreibt eine .log-Datei, makeindex schreibt eine .ilg-Datei. Wenn deine LaTeX-Datei blabla.tex heißt, dann muss in der blabla.log-Datei stehen:
Writing index file blabla.idx
und in der blabla.ilg-Datei etwas wie
This is makeindex, portable version 2.6 [7-14-88].
Scanning input file blabla.idx done (4 entries accepted, 0 rejected).
Sorting entries....done (9 comparisons).
Generating output file blabla.ind....done (71 lines written, 0 warnings).
> ABER: Alle Wörter im Text, vor die ich "\ index{...}"
> schreibe, damit sie im Index erscheinen, verschwinden
> plötzlich aus dem Text.
Meinst du, du schreibst nur \index{Wort} ? Die \index-Anweisung schreibt nur in die .idx-Datei. Wenn das Wort außerdem im Text erscheinen soll, musst du schreiben
Wort\index{Wort}
oder
Wort\index{Indexeintrag für Wort}
oder auch
Größe eines Moskitos\index{Moskito!Größe}
Eine genaue Beschreibung, wie das funktioniert, findest du hier.
Wenn das nicht dein Problem ist, dann solltest du mal ein einfaches Beispiel hochladen (siehe http://minimalbeispiel.de).
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:51 Fr 13.04.2012 | Autor: | Pacapear |
Hallo!
> Nein. [mm][code]\ makeindex[/code][/mm] bewirkt, dass eine .idx-Datei
> erstellt wird, in die jede [mm][code]\ index[/code]-Anweisung[/mm]
> etwas hineinschreibt, und zwar eine
> [mm][code]\ indexentry[/code]-Anweisung.[/mm] Damit hast du zwar alle
> nötigen Informationen, um einen Index zu erstellen, aber
> er ist weder sortiert noch formatiert.
>
> Dazu brauchst du einen Indexprozessor. Es gibt davon zwei:
> das gute alte Programm makeindex und das moderne xindy.
> Leider leider leider liefert miktex xindy nicht mit.
>
> Du solltest nachschaun, dass in deinem gewählten Profil
> der Indexprozessor ausgeführt wird; da gibt's nämlich ein
> Häkchen, mit dem man ihn abschalten kann.
Ich hab in den Ausgabeprofilen folgendes gefunden:
"Makeindex in diesem Profil nicht verwenden."
Es ist KEIN Haken drin, also heißt es doch, dass es es verwende. Ist das dieser Indexprozessor?
> Da kann ich wenig dazu sagen: der Unterschied ist, dass
> "%bm" für den gesamten Pfad der Datei (ohne ".tex") steht,
> während "%tm" nur für den Namen steht (ohne
> Verzeichnis).
>
> Was du tun kannst: latex schreibt eine .log-Datei,
> makeindex schreibt eine .ilg-Datei. Wenn deine LaTeX-Datei
> blabla.tex heißt, dann muss in der blabla.log-Datei
> stehen:
>
> Writing index file blabla.idx
>
> und in der blabla.ilg-Datei etwas wie
>
> This is makeindex, portable version 2.6 [7-14-88].
> Scanning input file blabla.idx done (4 entries accepted, 0
> rejected).
> Sorting entries....done (9 comparisons).
> Generating output file blabla.ind....done (71 lines
> written, 0 warnings).
Also ich hab jetzt nochmal das "%tm" wieder rausgenommen, und wieder "%bm" reingeschrieben, was da vorher stand.
Die *.idx Datei bekomme ich wieder, aber weder eine *.ind noch eine *.ilg Datei.
Im Log steht:
"Writing index file bla.idx"
"No file bla.ind."
> > ABER: Alle Wörter im Text, vor die ich "\ index{...}"
> > schreibe, damit sie im Index erscheinen, verschwinden
> > plötzlich aus dem Text.
>
> Meinst du, du schreibst nur [mm][code]\index{Wort}[/code][/mm] ? Die
> [mm][code]\index[/code]-Anweisung[/mm] schreibt nur in die
> .idx-Datei. Wenn das Wort außerdem im Text erscheinen
> soll, musst du schreiben
>
> [mm][code]Wort\index{Wort}[/code][/mm]
>
> oder
>
> [mm][code]Wort\index{Indexeintrag für Wort}[/code][/mm]
>
> oder auch
>
> Größe eines [mm]Moskitos\index{Moskito!Größe}[/mm]
Ah, ok, ich dachte, wenn ich "\ index{Wort}" schreibe, dass es dann im Text bleibt und auch im Index erscheint.
Hier mal ein Beispiel-Code (ohne Leerzeichen nach dem Slash ):
\ documentclass{book}
\ usepackage[latin1]{inputenc}
\ usepackage[ngerman]{babel}
\ usepackage{makeidx}
\ makeindex
\ begin{document}
Hallo. Das ist ein Test \ index{Test}.
\ printindex
\ end{document}
Das ist doch eigentlich richtig so, oder?
LG Nadine
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:51 Fr 13.04.2012 | Autor: | rainerS |
Hallo Nadine!
> > Du solltest nachschaun, dass in deinem gewählten Profil
> > der Indexprozessor ausgeführt wird; da gibt's nämlich ein
> > Häkchen, mit dem man ihn abschalten kann.
>
> Ich hab in den Ausgabeprofilen folgendes gefunden:
>
> "Makeindex in diesem Profil nicht verwenden."
>
> Es ist KEIN Haken drin, also heißt es doch, dass es es
> verwende. Ist das dieser Indexprozessor?
Ja.
>
> > Da kann ich wenig dazu sagen: der Unterschied ist, dass
> > "%bm" für den gesamten Pfad der Datei (ohne ".tex") steht,
> > während "%tm" nur für den Namen steht (ohne
> > Verzeichnis).
> >
> > Was du tun kannst: latex schreibt eine .log-Datei,
> > makeindex schreibt eine .ilg-Datei. Wenn deine LaTeX-Datei
> > blabla.tex heißt, dann muss in der blabla.log-Datei
> > stehen:
> >
> > Writing index file blabla.idx
> >
> > und in der blabla.ilg-Datei etwas wie
> >
> > This is makeindex, portable version 2.6 [7-14-88].
> > Scanning input file blabla.idx done (4 entries accepted, 0 rejected).
> > Sorting entries....done (9 comparisons).
> > Generating output file blabla.ind....done (71 lines written, 0 warnings).
>
> Also ich hab jetzt nochmal das "%tm" wieder rausgenommen,
> und wieder "%bm" reingeschrieben, was da vorher stand.
>
> Die *.idx Datei bekomme ich wieder, aber weder eine *.ind
> noch eine *.ilg Datei.
>
> Im Log steht:
>
> "Writing index file bla.idx"
> "No file bla.ind."
Das ist beim ersten Durchlauf richtig, denn da wird ja die .idx-Datei geschrieben. Dann muss sie von makeindex zur .ind-Datei verarbeitet werden, und im nächsten Lauf wird dann diese Datei eingelesen.
> Hier mal ein Beispiel-Code (ohne Leerzeichen nach dem Slash
> ):
>
> \ documentclass{book}
> \ usepackage[latin1]{inputenc}
> \ usepackage[ngerman]{babel}
> \ usepackage{makeidx}
> \ makeindex
>
> \ begin{document}
>
> Hallo. Das ist ein Test \ index{Test}.
>
> \ printindex
>
> \ end{document}
>
> Das ist doch eigentlich richtig so, oder?
Ja. Funktioniert hier auch.
Hmm, vielleicht fehlt dir das makeindex-Programm. Das Verzeichnis für die ausführbaren Programme ist etwas in der Art
C:\Programme\MikTeX 2.8\miktex\bin
darin muss es ein Programm makeindex.exe geben. Im Miktex-Paketmanager müssen Pakete mit Namen
miktex-makeindex-base
miktex-makeindex-bin-2.8
installiert sein.
Wenn das OK ist, dann kannst du dir die Ausgabe genauer anschauen. Bevor du auf "Ausgabe erstellen" gehst bzw. F7 drückst, schalte die Ausgabeleiste ein (im Menü Ansicht). Dann kannst du genau sehen, welche Programme gestartet werden und was sie tun. Der eigentliche LaTeX-Lauf endet mit der Zeile
Transcript written on blabla.log.
und danach sollte eine Zeile der Form
This is C:\Programme\MikTeX 2.8\miktex\bin\makeindex.exe, version ....
kommen (eventuell läuft dazwischen noch bibtex).
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:36 Di 24.04.2012 | Autor: | Pacapear |
Funktioniert alles, danke!
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:37 Di 17.04.2012 | Autor: | Lustique |
Ich denke, es wäre auf jeden Fall sinnvoll mal auf eine neuere Version von MikTeX umzusteigen, es sei denn du arbeitest noch mit Windows 9x/Me/NT/2000. MikTeX 2.7 ist eigentlich hoffnungslos veraltet.
|
|
|
|