Por que a classe de memórias codifica o conteúdo do arquivo .idx e como ela ainda pode ser usada para produzir um índice russo classificado corretamente?

Por que a classe de memórias codifica o conteúdo do arquivo .idx e como ela ainda pode ser usada para produzir um índice russo classificado corretamente?

Ao usar oresponderEnfrentei a seguinte mensagem de erro na 2ª passagem (com pdflatex):

Sequência de controle indefinida. \item\T

Origina-se da entrada no .indarquivo:

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

Por sua vez, é gerado pela seguinte entrada no .idxarquivo:

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

Se eu mudar memoirpara articleou bookentão o índice conterá as entradas definidas no documento literalmente, sem que elas sejam codificadas.

O seguinte MWE pode ser usado para validar:

\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}

Ele passa na primeira passagem, o comando texindy -L russian -C utf8 "document.idx"gera o .indarquivo e a segunda passagem falha.

Responder1

Encontrei a resposta logo após postar a pergunta, como costuma acontecer.

Para que isso funcione, o seguinte pacote deve ser incluído:

\usepackage[xindy]{imakeidx}

e a

\usepackage{makeindex}

tem que ser removido.

informação relacionada