
標準makeidx
包將ind
/寫入idx
LaTeX 的內部表示檔中。該index
套件以 utf-8 編寫,並且可以與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
任何套件(包括 )的功能,將阻止載入它們。index
要覆蓋這一點,必須\DisemulatePackage{index}
在 之前添加\usepackage{index}
。以下 MWE 產生「預期」.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}