babel и index оба переопределяют \markboth и \markright

babel и index оба переопределяют \markboth и \markright

Я использую оба пакета indexи babel. Они оба переопределяют \markbothи \markright. Если я включаю babelперед index, indexпакет предупреждает меня о двойном переопределении. Код:

\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строки так, что она indexбудет загружена раньше babel, предупреждения не будет. Но в любом случае я получаю определение этих команд из того, что загружено последним.

Моя цель двояка: я хочу избавиться от предупреждения (потому что не требующие действий предупреждения заглушают требующие действий), и я хочу понять, что я теряю в любом случае (я пока не обнаружил никаких проблем, но я могу что-то упустить или столкнуться с неожиданными проблемами позже, когда буду писать больше документа). По-видимому, если оба пакета переопределяют эти команды, у них есть на то веская причина.

Стоит ли включать babelдо или после index? Если до, как избавиться от предупреждения?

Что я могу/должен сделать, чтобы убедиться, что и babelи indexработают правильно? На какие проблемы мне следует обратить внимание?

решение1

Редактировать 2023

В то же время ядро ​​LaTeX изменило команду \markbothи \markright(для поддержки расширенных параметров отметки). Это означает, что проверка из index.sty не проходит в любом случае, с babel и без него, а также независимо от порядка загрузки.

Предупреждение невозможно избежать, если упаковка не будет адаптирована.

Старый ответ

Загрузите indexпрежде, чем babelвы получите и то, и другое: переопределение из indexи языковые дополнения из, babelпоскольку Babel сохранит определение \org@markbothи затем будет использовать его.

Связанный контент