PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : index package



filbert
09-12-2010, 14:48
hallihallo, ich brauche mehr als zwei indizes und versuche deshalb mit dem packet index drei zu erstellen. leider werden sie nicht ausgegeben auch nach ca. 100 läufen. die index dateien .adx und .bdx scheinen, die erstellt worden zu sein .and und .bnd kann ich nicht finden. irgentwas muss ich übersehen haben.:confused:

hier mal das beispiel:


\documentclass[a4paper, cleardoubleplain, 11pt, tablecaptionabove]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authortitle-dw, shorthandibid, citereset=chapter, citereset=section]{biblatex}
\bibliography{bib}
\usepackage{graphicx}
\usepackage{latexsym}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage[final]{pdfpages}
\usepackage{setspace}
\usepackage{index}
\newindex{default}{idx}{ind}{Schlagwortverzeichnis }
\newindex{nam}{adx}{and}{Namensverzeichnis}
\newindex{que}{bdx}{bnd}{Quellenverzeichnis}
\def\nindex{\index*[nam]}
\def\qindex{\index*[que]}
\usepackage{hyperref}


\begin{document}


\tableofcontents

\pagestyle{headings}
\part{text}
\index{maggie}
\nindex{bart}
\qindex{lisa}

\part{Anhang}
\bibliography{bib.bib} \bibliographystyle{plainnat}
\printbibliography\bibstyle{authortitle}\addconten tsline{toc}{chapter}{Literaturverzeichnis}

\listoffigures
\addcontentsline{toc}{chapter}{Abbildungsverzeichn is}

\listoftables
\addcontentsline{toc}{chapter}{Tabellenverzeichnis }

\addcontentsline{toc}{chapter}{Indizes}

\printindex[nam]
\printindex[que][erklärung]
\printindex
\end{document}


vielen dank schonmal und grüße aus dem schneeland

Schweinebacke
09-12-2010, 17:34
In der aktuellen DTK (http://www.dante.de/DTK.html) ist übrigens ein Artikel wie man mehr als einen Index mit Hilfe von splitidx (http://www.ctan.org/pkg/splitindex) und Xindy erreichen kann. Man kann statt Xindy aber auch einfach wie in der splitindex-Anleitung vorgeführt makeindex verwenden. Xindy hat jedoch Vorteile!

filbert
09-12-2010, 19:58
mmm ich hab jetzt mal das splitidx packet probiert, mit dem beispiel aus der doku aber man mag mich wohl nicht ;(. auch hier bekomm ich nur den normalen index ( der sich im übrigen auch nicht "general index" nennt). ansonsten schein splitidx ganz ok zu sein, wenn auch nicht ganz so anpassbar wie index.

ach so, ich benutz das texniccenter unter win, falls das nen einfluss haben sollte



\documentclass{article} % We use article class ...
\usepackage{splitidx} % ... and the splitidx package
\makeindex % And we want index generation
% We define 4 indices:
\newindex[General Index]{idx} % Name and shortcut of the 1st index
\newindex[Index of Animals]{ani} % ... 2nd index
\newindex[Index of Fruits]{ru} % ... 3rd index
\newindex[Index of Vegetables]{veg} % ... 4th index
\begin{document}
Apples\sindex[fru]{apple} % an entry to fru index
and oranges\sindex[fru]{orange} % an entry to fru index
are fruits\sindex{ruits}. % an implicit entry to idx index
Tomatoes\sindex[veg]{tomato} % an entry to veg index
are
vegetables\index{vegetables}. % an implicit entry to idx index
Cats\sindex[ani]{cat} % an entry to ani index
are animals\sindex[idx]{animals}. % an explicite entry to idx index
\printindex % print all indices
\end{document}

Schweinebacke
10-12-2010, 06:56
Laut Anleitung soll man \printindex nicht verwenden, wenn man \sindex mit optionalem Argument verwendet. Alle Indexe bekommt man hingegen mit \printindex*.

Ob splitidx oder index mehr kann, ist wohl schwer zu entscheiden. Jedes der Pakete hat Features, die das andere nicht hat. Dass index anpassbarer ist, kann ich aber nicht nachvollziehen. So kann man beispielsweise bei splitidx wählen, ob ein Index erstellt werden soll, bei dem die Einträge wie bei index robust sind oder lieber einen Index, bei dem die Einträge wie bei makeidx expandiert werden. Die Anweisung \extendtheindex bietet darüber hinaus sehr große Anpassungsmöglichkeiten. Ich habe das auch schon verwendet, wenn ich nur einen einzigen Index habe.

BTW: Dir ist schon klar, dass Du bei splitidx so wie Du es verwendest, splitindex statt makeindex zur Verarbeitung des Index aufrufen musst? Dir ist auch klar, dass Du bei index mehr als einen makeindex-Aufruf brauchst, um alle Indexe zu bekommen?

voss
10-12-2010, 07:07
hallihallo, ich brauche mehr als zwei indizes und versuche deshalb mit dem packet index drei zu erstellen. leider werden sie nicht ausgegeben auch nach ca. 100 läufen. die index dateien .adx und .bdx scheinen, die erstellt worden zu sein .and und .bnd kann ich nicht finden. irgentwas muss ich übersehen haben.:confused:


hast du makeindex für jeden dieser Teilindexe laufen lassen?

Herbert

filbert
10-12-2010, 11:09
vielen dank erstmal für die antworten, also ich hab jetzt einfach mal mit splitidx das beispiel aus der docu durchlaufen lassen und es produziert überhaupt KEINEN index. mit ohne "*" bei \printindex bekomme ich zumindest ein index mit den beiden einträgen für den general index. kann doch nich sein?!? auch dirrekte ansprache des speziellen index via

\printindex[shortcut][index name]

hat keinen einfluss


BTW: Dir ist schon klar, dass Du bei splitidx so wie Du es verwendest, splitindex statt makeindex zur Verarbeitung des Index aufrufen musst? Dir ist auch klar, dass Du bei index mehr als einen makeindex-Aufruf brauchst, um alle Indexe zu bekommen?

??? splintindex statt makeindex??? als komando? gibts nich!?
wie oder wo bau ich denn mehrere makeindex-aufrufe ein? in beispiel der index docu ist auch nur ein \makeindex vorhanden und funzt zumindest bei mir genauso nur mit der ausgabe von nur dem standart index. *heul, ich hab das gefühl ich bin schwer von begriff

voss
10-12-2010, 12:13
vielen dank erstmal für die antworten, also ich hab jetzt einfach mal mit splitidx das beispiel aus der docu durchlaufen lassen und es produziert überhaupt KEINEN index. mit ohne "*" bei \printindex bekomme ich zumindest ein index mit den beiden einträgen für den general index. kann doch nich sein?!? auch dirrekte ansprache des speziellen index via

\printindex[shortcut][index name]

hat keinen einfluss



??? splintindex statt makeindex??? als komando? gibts nich!?
wie oder wo bau ich denn mehrere makeindex-aufrufe ein? in beispiel der index docu ist auch nur ein \makeindex vorhanden und funzt zumindest bei mir genauso nur mit der ausgabe von nur dem standart index. *heul, ich hab das gefühl ich bin schwer von begriff

dein Beispiel funktioniert doch tadellos, wenn du


makeindex -o test.and test.adx
makeindex -o test.bnd test.bdx
makeindex -o test.ind test.idx

machst, sonst werden ja die Teildateien gar nicht erzeugt.

Herbert

Schweinebacke
10-12-2010, 12:13
Du solltest die Anleitung lesen! In der splitindex/splitidx-Anleitung steht genau drin, wie man das verwendet. Da steht auch drin, wie man wahlweise splitindex für Linux oder BSD oder splitindex.exe oder splitindex.pl oder splitindex.tex verwendet, oder bereits per Paketoption split dafür sorgt, dass der Index in mehrere Dateien verteilt wird. Dort steht auch drin, dass man in dem Fall, dass man bereits splitidx.sty das Aufteilen überlässt oder mit splitindex.tex die Aufteilung nachträglich erledigt, makeindex (oder Xindy wie im DTK-Artikel) dann für jede einzelne Index-Datei aufrufen muss.

Auch in der index-Anleitung steht drin, dass man makeindex für jede einzelne Index-Datei aufzurufen hat.

Wo Du ggf. in Deinem Editor den Aufruf von makeindex durch splitindex ersetzen oder mehrere makeindex-Aufrufe veranlassen kannst, weiß ich nicht. In einem ersten Schritt kannst Du die angegebenen Aufrufe aber auch einfach selbst durchführen. Dazu öffnest Du eine Eingabeaufforderung (Windows+R und dann "cmd" eingeben), verwendest die DOS-Anweisung CD, um zu Deinem Dokumentverzeichnis zu gelangen und gibst dort die Anweisung (z. B. die von Herbert angegebenen makeindex-Aufrufe) ein.

filbert
10-12-2010, 19:18
uff, danke ihr beiden. also problem verstanden:

der normale durchlauf des dokuments im texnic center scheint nur die *.?nd dateien zu erstellen. für die ausgabe muss dann dieser aber noch in eine *.?dx datei mittels makeindex aus der vorigen erstellt werden. was aber, trotz einbindung eines anderen packeds wie z.b index, nur für den normalen index, der auch mit dem makeindex packed erstellte *.ind passiert. deshalb höchstens der normale index in der ausgabe.

im dos modus konnte ich nun, wie beschrieben, mit dem oben genannten befehl die gewünschenten dateien kompilieren (für das beispiel mit index-package) beim nächsten normalen durchlauf des *.tex werden nun die weiteren indizes ausgegeben!!!

man, man, man hab zwar mein diplomarbeit und etliche andere sachen mit latex hinter mir aber bis in den dos mode zurück musste ich bisher nicht.

nun muss es nur noch im großen dokument klappen ;)


also tausend dank nochmal!!!
grüße

rstuby
10-12-2010, 19:23
Sorry, offtop: was, du musstest noch nie in den DOS Modus zurück? Bist du aber gut organisiert! Ich habe monate gebraucht, bis ich einen funktionierenden musixflx-button in Winshell eingebaut hatte... wobei das allerdings auf der kommandozeile vorher auch nicht ging, das musste ich immer unter Linux machen...

filbert
10-12-2010, 19:28
anders rum natürlich *.?dx wird erstellt und *.?nd muss manuell kompiliert werden

voss
10-12-2010, 19:33
anders rum natürlich *.?dx wird erstellt und *.?nd muss manuell kompiliert werden

man kann das auch mit einem Shell-Skript erledigen, wenn man
sich an die Vergabe der Indexnamen adx,bdx,usw. hält. Dann klappt
es bei jedem Dokuemnt, auch wenn es nur einen Index hat.

Herbert

Schweinebacke
12-12-2010, 12:04
man, man, man hab zwar mein diplomarbeit und etliche andere sachen mit latex hinter mir aber bis in den dos mode zurück musste ich bisher nicht.
Ich bin ziemlich sicher, dass man bei TXC auch irgendwo den Aufruf zusätzlicher Programme einstellen kann. Da ich TXC nicht verwende, kann ich Dir aber nicht sagen wo. Das sollte jedoch irgendwo in dessen Anleitung stehen.

Bei Verwendung von splitindex musst Du aber TXC eigentlich nur beibringen, statt makeindex.exe eben splitindex.exe (oder nach Installation von perl wahlweise auch splitindex.pl) aufzurufen. Alle benötigten makeindex-Aufrufe werden dann normalerweise von splitindex erledigt.

gehess
12-12-2010, 12:24
Das geht, und zwar unter Extras->Anpassen->Extras (also allgemein, wie es hier im konkreten Fall aussehen muss, weiß ich allerdings nicht)