問題は、ページ以外を表示するカスタム インデックスを作成する必要があることです。たとえば、Word、s.5、o.6、p.9 などです。ここで、s. はセクション、o. はダミー カウンター、p. ページです。
私のMWE:
\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 オプションを実際に使用する必要があります。