Utilizo los paquetes index
y babel
. Ambos redefinen \markboth
y \markright
. Si incluyo babel
antes index
, el index
paquete me advierte sobre la doble redefinición. Código:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{index}
\begin{document}
\end{document}
Extracto de la salida 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) )
Si cambio las dos \usepackage
líneas para que index
se cargue antes babel
, no hay ninguna advertencia. Pero de cualquier manera obtengo la definición de estos comandos del que se cargue en último lugar.
Mi objetivo es doble: quiero deshacerme de la advertencia (porque las advertencias no procesables ahogan a las procesables) y quiero entender lo que estoy perdiendo de cualquier manera (no he detectado ningún problema hasta ahora, pero podría faltar algo o tener problemas inesperados más adelante mientras escribo más partes del documento). Presumiblemente, si ambos paquetes redefinen estos comandos, tienen una buena razón.
¿Debo incluir babel
antes o después index
? Si antes, ¿cómo me deshago de la advertencia?
¿Hay algo que pueda o deba hacer para asegurarme de que ambos babel
funcionen index
correctamente? ¿Qué problemas debería buscar?
Respuesta1
Editar 2023
Mientras tanto, el kernel de LaTeX ha cambiado el comando \markboth
y \markright
(para admitir opciones de marca extendidas). Eso significa que la verificación de index.sty falla en cualquier caso, con y sin babel y también independientemente del orden de carga.
La advertencia no se puede evitar a menos que se adapte el paquete.
Antigua respuesta
Cargue index
antes de babel
obtener ambos: la redefinición de index
y las adiciones de lenguaje de babel
babel almacenarán la definición \org@markboth
y luego la usarán.