memoir クラスが .idx ファイルの内容をエンコードするのはなぜですか。また、適切にソートされたロシア語のインデックスを生成するためにこれをどのように使用できるのでしょうか。

memoir クラスが .idx ファイルの内容をエンコードするのはなぜですか。また、適切にソートされたロシア語のインデックスを生成するためにこれをどのように使用できるのでしょうか。

使用する場合答え2 回目のパスで次のエラー メッセージが表示されました ( pdflatex)。

未定義の制御シーケンス。\item \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}

1 回目のパスに合格し、コマンドによってファイルtexindy -L russian -C utf8 "document.idx"が生成し.ind、2 回目のパスが失敗します。

答え1

よくあることですが、質問を投稿した直後に答えを見つけました。

これを機能させるには、次のパッケージを含める必要があります。

\usepackage[xindy]{imakeidx}

そしてその

\usepackage{makeindex}

削除する必要があります。

関連情報