memoir 클래스가 .idx 파일의 내용을 인코딩하는 이유는 무엇이며 올바르게 정렬된 러시아어 색인을 생성하는 데 어떻게 사용할 수 있습니까?

memoir 클래스가 .idx 파일의 내용을 인코딩하는 이유는 무엇이며 올바르게 정렬된 러시아어 색인을 생성하는 데 어떻게 사용할 수 있습니까?

사용할 때답변두 번째 패스(사용 pdflatex)에서 다음과 같은 오류 메시지가 표시되었습니다.

정의되지 않은 제어 순서. \항목 \T

이는 파일의 항목에서 시작됩니다 .ind.

\item \T2A\CYRD \T2A\cyro \T2A\cyrz , \hyperpage{224}

결과적으로 파일의 다음 항목에 의해 생성됩니다 .idx.

\indexentry{\T2A\CYRD \T2A\cyro \T2A\cyrz |hyperpage}{224}

또는 memoir로 전환하면 색인에는 인코딩되지 않고 문서에 정의된 항목이 그대로 포함됩니다.articlebook

다음 MWE를 사용하여 유효성을 검사할 수 있습니다.

\documentclass{memoir}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A]{fontenc}
\usepackage[main=russian]{babel}
\usepackage{lipsum}
\usepackage{makeidx}
\makeindex

\newcommand{\rindex}[1]{\expandafter\index\expandafter{\detokenize{#1}}}

\begin{document} 
жзи\rindex{жзи}
\clearpage
где\rindex{где}
\clearpage
абв\rindex{абв}
\clearpage
эюя\rindex{эюя}
\clearpage
шщы\rindex{шщы}
\clearpage
клм\rindex{клм}

\printindex
\end{document}

첫 번째 패스를 통과한 다음 명령이 파일을 texindy -L russian -C utf8 "document.idx"생성 .ind하고 두 번째 패스가 실패합니다.

답변1

자주 발생하는 문제이므로 질문을 게시한 직후에 답을 찾았습니다.

이것이 작동하려면 다음 패키지가 포함되어야 합니다:

\usepackage[xindy]{imakeidx}

그리고

\usepackage{makeindex}

제거해야 합니다.

관련 정보