
標準makeidx
パッケージは、LaTeX の内部表現ファイルにind
/ を書き込みます。パッケージは utf-8 で書き込み、、、標準クラスで正常に動作します。しかし、でパッケージを使用しようとすると、出力は パッケージの場合と同様になります。でパッケージを使用してエミュレーションをオフにしたり、上書きしたりすることはできますか?idx
index
book
article
report
index
memoir
makeidx
makeidx
index
memoir
以下に最小限の例を示します。
\documentclass[a4paper,9pt]{memoir}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{index}
\makeindex
\begin{document}
\section{Indexing something}
\index{здравствуйте}здравствуйте
\printindex
\end{document}
ファイルidx
の内容は
\indexentry{\IeC {\cyrz }\IeC {\cyrd }\IeC {\cyrr }\IeC {\cyra }\IeC {\cyrv }\IeC {\cyrs }
\IeC {\cyrt }\IeC {\cyrv }\IeC {\cyru }\IeC {\cyrishrt }\IeC {\cyrt }\IeC {\cyre }}{1}
memoir
に変更してbook
、インデックスとドキュメントを再度再構築します。これでidx
ファイルの内容は次のようになります。
\indexentry {здравствуйте}{1}
予想通り。
答え1
デフォルトでは、 は、機能が クラスによってエミュレートされている場合、memoir
パッケージ ( を含む) がロードされるのを防ぎます。これをオーバーライドするには、の前にを追加する必要があります。次の MWE は、「期待される」ファイル コンテンツを生成します。 (はインデックス名を修正するために使用されます。)index
\DisemulatePackage{index}
\usepackage{index}
.idx
\renewindex
\documentclass[a4paper,9pt]{memoir}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\DisemulatePackage{index}
\usepackage{index}
\makeindex
\renewindex{default}{idx}{ind}{Предметный указатель}
\begin{document}
\section{Indexing something}
\index{здравствуйте}здравствуйте
\printindex
\end{document}