Ich verwende sowohl das index
als auch babel
das Paket. Beide definieren \markboth
und neu \markright
. Wenn ich babel
vor einschließe index
, index
warnt mich das Paket vor der doppelten Neudefinition. Code:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{index}
\begin{document}
\end{document}
Auszug aus der TeX-Ausgabe:
(/usr/share/texlive/texmf-dist/tex/latex/index/index.sty
LaTeX Warning: Command \markboth has changed.
Check if current package is valid.
LaTeX Warning: Command \markright has changed.
Check if current package is valid.
) (./a.aux) (./a.aux) )
Wenn ich die beiden Zeilen vertausche, \usepackage
sodass index
zuerst geladen wird babel
, gibt es keine Warnung. Aber so oder so erhalte ich die Definition dieser Befehle von der Zeile, die zuletzt geladen wurde.
Ich habe zwei Ziele: Ich möchte die Warnung loswerden (weil nicht umsetzbare Warnungen die umsetzbaren übertönen) und ich möchte verstehen, was ich auf jeden Fall verliere (ich habe bisher kein Problem entdeckt, aber ich könnte etwas übersehen oder später auf unerwartete Probleme stoßen, wenn ich weiter am Dokument schreibe). Wenn beide Pakete diese Befehle neu definieren, haben sie vermutlich einen guten Grund dafür.
babel
Soll ich „vorher“ oder „nachher“ einfügen index
? Wenn „vorher“, wie werde ich die Warnung los?
Kann/sollte ich irgendetwas tun, um sicherzustellen, dass beide babel
ordnungsgemäß index
funktionieren? Auf welche Probleme sollte ich achten?
Antwort1
Bearbeiten 2023
Mittlerweile hat der LaTeX-Kernel den \markboth
and- \markright
Befehl geändert (um erweiterte Markierungsoptionen zu unterstützen). Das bedeutet, dass die Prüfung von index.sty in jedem Fall fehlschlägt, mit und ohne Babel und auch unabhängig von der Ladereihenfolge.
Die Warnung lässt sich nicht vermeiden, sofern das Paket nicht angepasst wird.
Alte Antwort
Laden Sie index
vor, babel
Sie erhalten dann beides: die Neudefinition von index
und die Sprachergänzungen von, babel
da Babel die Definition darin speichert \org@markboth
und sie dann verwendet.