Моя проблема в том, что мне нужно создать пользовательский индекс, который показывает больше, чем страница. Например: Word, s.5,o.6,p.9, где s. — раздел, o. — фиктивный счетчик, а p. — страница.
Мой МВЭ:
\documentclass{book}
\usepackage{showidx}
\usepackage[splitindex,xindy]{indextools}
\usepackage{blindtext}
\usepackage{fontspec}
%\makeindex[options=-M sectionindex_sectionpage.xdy]
%\makeindex[name=foo,title=Test,options=-M sectionindex_sectionpage.xdy]
\makeindex[options=-M module.xdy]
\makeindex[name=foo,title=Test,options=-M module.xdy]
%\makeatletter
% Global redefinition of indexentry to use section, then page%
%\renewcommand{\imki@wrindexentrysplit}[3]{%
% \expandafter\protected@write\csname#1@idxfile%\endcsname{}%
% {\string\indexentry{#2}{s\arabic{section},o
%\arabic{onet},p\thepage}}%
%}%
%\makeatother
\makeatletter
\def\indtl@wrindexsplit#1#2{%
\indtl@wrindexentrysplit{#1}{#2}{s\arabic{section},o\arabic{onet},p\thepage}%
\endgroup\indtl@showidxentry{#1}{#2}%
\@esphack%
}
\makeatother
\makeatletter
\def\indtl@wrindexunique#1#2{%
\indtl@wrindexentryunique{#1}{#2}{s\arabic{section},o\arabic{onet},p\thepage}%
\endgroup\indtl@showidxentry{#1}{#2}%
\@esphack%
}
\makeatother
\begin{filecontents*}{module.xdy}
( define-location-class "module"
("alpha" :sep "" "arabic-numbers" :sep "," "alpha" :sep "" "arabic-numbers" ))
\end{filecontents*}
\newcounter{onet}
\begin{document}
\section{1}
\refstepcounter{onet}
Test1\index{Test1}
\refstepcounter{onet}
Test2\index[foo]{Test2}
\newpage
\section{1}
\refstepcounter{onet}
Test3\index{Test3}
\refstepcounter{onet}
Tset\index{Test3!γλῶσσα}
\refstepcounter{onet}
Test4\index[foo]{Test4}
\printindex
\printindex[foo]
\end{document}
Я использую indextools, потому что мне нужна совместимость с bidi
. Я попытался адаптировать ответздесь, но не сработало... Мне действительно нужно использовать параметры xindy и splitindex.