Eu uso os pacotes index
e babel
. Ambos redefinem \markboth
e \markright
. Se eu incluir babel
before index
, o index
pacote me avisa sobre a dupla redefinição. Código:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{index}
\begin{document}
\end{document}
Extraia da saída do 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) )
Se eu trocar as duas \usepackage
linhas para que index
sejam carregadas antes babel
, não haverá aviso. Mas de qualquer forma, estou obtendo a definição desses comandos do que for carregado por último.
Meu objetivo é duplo: quero me livrar do aviso (porque os avisos não acionáveis abafam os acionáveis) e quero entender o que estou perdendo de qualquer maneira (não detectei nenhum problema até agora, mas poderia estar faltando alguma coisa ou ter problemas inesperados mais tarde, enquanto escrevo mais do documento). Presumivelmente, se ambos os pacotes redefinirem esses comandos, eles terão um bom motivo.
Devo incluir babel
antes ou depois index
? Se antes, como faço para me livrar do aviso?
Há algo que eu possa/devo fazer para garantir que ambos babel
estejam index
funcionando corretamente? Que problemas devo procurar?
Responder1
Editar 2023
Enquanto isso, o kernel do LaTeX mudou o comando \markboth
and \markright
(para suportar opções de marca estendida). Isso significa que a verificação de index.sty falha em qualquer caso, com e sem babel e também independentemente da ordem de carregamento.
O aviso não pode ser evitado a menos que a embalagem seja adaptada.
Resposta antiga
Carregue index
antes de babel
obter ambos: a redefinição index
e as adições de linguagem de babel
como babel armazenarão a definição \org@markboth
e depois a usarão.