PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu index, ngerman und babel



enwor
16-12-2010, 21:27
Hallo,

Ich hab mich den ganzen Nachmittag lang kreuz und quer durch die verschiedenen LaTeX Paket-Dokumentationen und Foren gewühlt und bin nun endgültig verwirrt.

Ich hab herausgefunden, dass offensichtlich das Paket \usepackage{ngerman} veraltet ist und nicht bzw. selten aktualisiert wird und man stattdessen \usepackage[ngerman]{babel} einbinden sollte, da dieses Paket sich angeblich erst nach \begin{document} aktiviert und somit keinen (schädlichen) Einfluss auf andere Pakete hat.

nun hab ich das bei mir getan und prompt von Latex Warnungen erhalten und zwar:

LaTeX Warning: Command \markboth has changed.
LaTeX Warning: Command \markright has changed.

dieses Problem hab ich nun eben behoben, indem ich das babel Paket erst NACH dem index Paket einbinde... aber genau so ein fehler sollte doch nicht zustande kommen, da es sich erst nach dem Dokumentanfang aktivieren sollte...

also was stimmt nun, welches ist das richtige Paket für "ngerman" und wie bindet man es richtig ein? (und wenn nun kommt "nach dem indexpaket" dann: warum?)

und ich hab nun noch eine Frage:
Ich hab auch gelesen, dass sich das Index-Paket nicht mit den scr-Klassen verträgt, da dieses nicht "sauber" geschrieben sei... stimmt das, und wenn, wie erstellt man dann bei scr-Klassen einen Index korrekt?
Quelle: http://groups.google.com/group/de.comp.text.tex/browse_frm/thread/b1eddef1c7b6e279/7e6f4891b5fea366?lnk=st&q=komascript+index+problem+kopfzeile&rnum=1&hl=de

Übrigens funktioniert auch das ansonsten sehr gute index-Paket nicht mit
KOMA-Script, weil der Autor darauf besteht auf das Vorhandensein von
\chapter nicht dadurch zu testen, dass er auf das Vorhandensein von
\chapter testet, sondern darauf ob die Klasse article geladen wurde.

mfg EnWor

Schweinebacke
17-12-2010, 08:02
Das babel-Paket ändert Dinge wie catcodes (beispielsweise für "a etc.) erst innerhalb von \begin{document}. Diverse andere Dinge, wie das Umdefinieren von \markboth geschieht jedoch bereits beim Laden des Pakets.

Bezüglich der Probleme mit index und KOMA-Script ist zu sagen, dass das leider stimmt. In index.sty wird zwischen Klassen mit \chapter und Klassen ohne \chapter via:
\@ifclassloaded{article}{% unterschieden. Das bedeutet, dass index mit scrartcl aber auch mit allen anderen Artikel-Klassen, die nicht article heißen, zu Problemen führt, weil dann leider \@makeschapterhead verwendet wird. Darüber hinaus funktionieren AFAIK Dinge, wie die Indexpräambel (siehe KOMA-Script-Anleitung, scrguide.pdf) nicht mehr, wenn man das Paket index verwendet. Das liegt daran, dass das Paket die Umgebung theindex komplett neu definiert und dabei auf solche Dinge keine Rücksicht nimmt.

Für einen einfachen Index braucht man das Paket index übrigens nicht. Das kann bereits makeidx. Wenn man mehr als einen Index braucht, kann man alternativ zu index auch splitidx (http://www.ctan.org/pkg/splitindex) verwenden. Dazu gab es hier erst kürzlich eine Diskussion. Außerdem gibt es in der aktuellen DTK-Ausgabe (http://www.dante.de/DTK.html) einen Artikel zum Einsatz von splitidx zusammen mit Xindy. Xindy ist ein alternativer Index-Prozessor, der wesentlich leistungsfähiger ist als makeindex.

enwor
22-12-2010, 12:36
Ah super danke ;)

Jetzt läuft es ohne Warnungen durch...

Nur Xindy hab ich bis jetzt leider nicht zum laufen gebracht... aber bis jetzt macht Makeindex auch so ziemlich alles was ich brauch ;)

u_fischer
22-12-2010, 13:05
Übrigens funktioniert auch das ansonsten sehr gute index-Paket nicht mit
KOMA-Script, weil der Autor darauf besteht auf das Vorhandensein von
\chapter nicht dadurch zu testen, dass er auf das Vorhandensein von
\chapter testet, sondern darauf ob die Klasse article geladen wurde.

Es ist allerdings ziemlich einfach, einem Paket vorzugaukeln, dass article geladen wurde. Man muss nur ver@article.cls definieren:


\expandafter\def\csname ver@article.cls\endcsname{blub}