
O makeidx
pacote padrão escreve ind
/ idx
no arquivo de representação interno do LaTeX. O index
pacote escreve em utf-8 e funciona bem com as classes padrão book
, article
, . report
Mas ao tentar usar o index
pacote with memoir
, a saída ainda é a mesma do makeidx
pacote. A makeidx
emulação pode ser desativada ou substituída pelo index
pacote com memoir
?
Aqui está um exemplo mínimo:
\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}
O idx
conteúdo do arquivo é
\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}
Agora mude memoir
e book
reconstrua o índice e o documento novamente. Agora o idx
conteúdo do arquivo é
\indexentry {здравствуйте}{1}
como esperado.
Responder1
Por padrão, memoir
impedirá que qualquer pacote (incluindo index
) seja carregado se sua funcionalidade for emulada pela classe. Para substituir isso, é necessário adicionar \DisemulatePackage{index}
before \usepackage{index}
. O MWE a seguir produz o .idx
conteúdo do arquivo "esperado". ( \renewindex
é usado para corrigir o nome do índice.)
\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}