Загрузка индексного пакета с мемуарами

Загрузка индексного пакета с мемуарами

Стандартный 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}

Связанный контент