按字母顺序排列的多语言索引无法与 xindy 配合使用

按字母顺序排列的多语言索引无法与 xindy 配合使用

我想创建一个多语言(俄语和英语)字母索引。makeidx不适用于西里尔符号,所以据我所知,最好的解决方案是使用xindy选项imakeidx。我尝试运行找到的代码这里

\documentclass[openany]{book}
\usepackage[T1, T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english, russian]{babel}
\usepackage{tikz} 

\usepackage{xcolor}
\definecolor{purpl}{RGB}{150, 120, 182} 
\usepackage{calc} 

\usepackage[xindy]{imakeidx}
\makeindex[program=texindy, options=-M mystyle.xdy -L russian -C utf8]

\makeatletter
\newcommand{\rindex}[2][\imki@jobname]{%
    \index[#1]{\detokenize{#2}}%
}
\makeatother

\usepackage[breaklinks,pdftex,hyperindex,unicode]{hyperref} 

\usepackage{filecontents}
\begin{filecontents*}{mystyle.xdy}
    ;;; xindy style file
    (markup-locclass-list :open "\dotfill" :sep "") 
    
    (define-letter-groups
    ("a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"
    "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"))
    
    (require
    "rules/latin-tolower.xdy")
    
    (use-rule-set
    :run 0
    :rule-set ("latin-tolower"))
    
    (markup-letter-group
    :open-head "\nopagebreak\tikz\node at (0pt,0pt) [draw=none,fill=purpl!50,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{white}{ "
                :close-head "}}};\vspace*{0.2cm}\nopagebreak"
    :capitalize)
\end{filecontents*}

\begin{document}
    
    \chapter{Первая}
    
    \rindex{часть}
    \rindex{дерево}
    \rindex{электрон}
    \rindex{well}
    
    \printindex
    
\end{document}

PDFLaTeX我在 Windows 10 上使用 TeXstudio 4.5.2,并使用文档编译器和texindy索引选项编译了代码:

在此处输入图片描述

我得到的是:

在此处输入图片描述

您可以看到索引没有按正确顺序排序。此外,环境中的代码filecontents*根本不起作用,因为没有上面链接示例中的紫色矩形。

但是,如果我使用xindex选项: 在此处输入图片描述

--- 我将获得一个正确排序的索引:

在此处输入图片描述

但环境中的代码filecontents*仍然不起作用。

我应该怎么做才能获得按字母顺序排序的索引?

相关内容