Xindy 似乎忽略了自定义 .xdy 文件中的排序规则

Xindy 似乎忽略了自定义 .xdy 文件中的排序规则

因此,我尝试通过规定自定义排序规则来改变 xindy 在索引文件中对变音符号进行排序的方式。

这是我使用的 myfile.xdy:

(require "lang/german/duden-utf8-lang.xdy")

(sort-rule "Ä" "Ae")
(sort-rule "Ö" "Oe")
(sort-rule "Ü" "Ue")

(sort-rule "ä" "ae")
(sort-rule "ö" "oe")
(sort-rule "ü" "ue")

以下是文档的一个最小示例:

\documentclass[]{article}
\usepackage{fontspec}
\usepackage[ngerman]{babel}

\usepackage[xindy, splitindex]{imakeidx}

\def\xindylangopt{-M lang/german/myfile}
\makeindex[name=test, options=\xindylangopt]



\begin{document}
    foo \index[test]{Aal}  \index[test]{Aeal}  \index[test]{Äal} \index[test]{Abal} \index[test]{Afal}   
    \index[test]{Ual}  \index[test]{Ueal}  \index[test]{Üal} \index[test]{Ubal} \index[test]{Ufal} 
    \index[test]{Oal}  \index[test]{Oeal}  \index[test]{Öal} \index[test]{Obal} \index[test]{Ofal} 

    \printindex[test]
\end{document}

输出结果如下:

在此处输入图片描述

但这仍然是原始排序,其中变音符号被视为其各自的元音,即“Ä”被视为“A”等等。我希望它们被视为其各自的元音,后跟字母“e”,即在此示例中,“Äal”将放在“Aeal”和“Afal”之间。我做错了什么?排序规则不能这样覆盖吗?我是否甚至需要为此自定义文件,或者是否已经有执行这种排序的本机模块?

答案1

din5007-utf8-lang.xdy感谢@Sergei Golovan,我们找到了解决方案。使用-module 而不是duden-utf8-lang.xdy-module 作为基础似乎就足够了,因为din5007-utf8-lang.xdy-module 已经按照我试图实现的方式对变音符号进行排序。因此,如果仍需对排序进行其他更改,则需要调整所需的模块。

我的文件.xdy:

(require "lang/german/din5007-utf8-lang.xdy")

some other custom sort-rules

如果不需要对排序进行任何其他更改,则只需更改文档中的 xindy 语言选项,如下所示:

\def\xindylangopt{-M lang/german/din5007-utf8-lang}

相关内容