babel과 index는 모두 \markboth와 \markright를 재정의합니다.

babel과 index는 모두 \markboth와 \markright를 재정의합니다.

나는 indexbabel패키지를 모두 사용합니다. 둘 다 \markboth및 를 재정의합니다 \markright. babelbefore 를 포함하면 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두 줄을 바꾸면 경고가 표시되지 않습니다. 그러나 어느 쪽이든 마지막에 로드된 명령에서 이러한 명령의 정의를 얻습니다.indexbabel

내 목표는 두 가지입니다. 경고를 제거하고 싶고(실행할 수 없는 경고가 실행 가능한 경고를 압도하기 때문입니다), 어느 쪽이든 내가 놓치고 있는 것이 무엇인지 이해하고 싶습니다(지금까지 어떤 문제도 발견하지 못했지만 뭔가 누락되었거나 나중에 문서를 더 작성할 때 예상치 못한 문제에 부딪힐 수도 있습니다. 아마도 두 패키지 모두 이러한 명령을 재정의한다면 그럴 만한 이유가 있을 것입니다.

babel이전 또는 이후에 포함해야 합니까 index? 이전에 경고를 제거하려면 어떻게 해야 합니까?

과 가 모두 올바르게 작동하는지 babel확인 하기 위해 내가 할 수 있거나 해야 할 일이 있습니까 ? index어떤 문제를 찾아야 합니까?

답변1

2023년 편집

그 동안 LaTeX 커널은 \markboth\markright명령을 변경했습니다(확장 표시 옵션을 지원하기 위해). 즉, 바벨이 있든 없든, 로딩 순서에 관계없이 어떤 경우에도 index.sty 검사가 실패한다는 의미입니다.

패키지를 조정하지 않으면 경고를 피할 수 없습니다.

이전 답변

index로드 하기 전에 로드 babel하면 바벨의 재정의 index와 언어 추가가 babel정의를 저장한 \org@markboth다음 사용하게 됩니다.

관련 정보