babelとindexは両方とも\markbothと\markrightを再定義します

babelとindexは両方とも\markbothと\markrightを再定義します

index私は との両方のbabelパッケージを使用しています。どちらも と を再定義します\markboth。before\markrightを含めると、パッケージは二重の再定義について警告します。コード:babelindexindex

\documentclass{article}
\usepackage[english]{babel}
\usepackage{index}
\begin{document}
\end{document}

TeX出力からの抜粋:

(/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) )

が前にロードされる\usepackageように2 行を入れ替えると、警告は表示されません。ただし、どちらの場合でも、最後にロードされた方からこれらのコマンドの定義が取得されます。indexbabel

私の目的は 2 つあります。1 つは警告をなくしたい (対処不可能な警告が対処可能な警告をかき消すため)、もう 1 つはどちらにしても失うものを把握したい (今のところ問題は見つかっていませんが、何か見落としている可能性があります。あるいは、後でドキュメントを書き進めていくうちに予期しない問題に遭遇するかもしれません)。おそらく、両方のパッケージがこれらのコマンドを再定義するのであれば、それには十分な理由があるはずです。

babelbefore と after のどちらを含めるべきですかindex? before の場合、警告を消すにはどうすればよいですか?

babelとの両方が正しく動作していることを確認するためにできること/すべきことはありますかindex? どのような問題に注意すればよいですか?

答え1

編集 2023

その間に、LaTeX カーネルは\markbothand\markrightコマンドを変更しました (拡張マーク オプションをサポートするため)。つまり、index.sty からのチェックは、babel の有無にかかわらず、また読み込み順序に関係なく、いずれの場合でも失敗します。

パッケージを適応させない限り警告は回避できません。

古い回答

ロードするindex前にbabel、 からの再定義indexと からの言語追加の両方を取得します。Babelbabelは に定義を保存して\org@markboth使用します。

関連情報