自动将二合字母索引为单个字母

自动将二合字母索引为单个字母

我正在处理一个包含许多旧丹麦人名和地名的文档,当时 Å 还是 Aa 字母组合。我希望这些条目能够正确排序,即按 A..Z Æ Ø Aa/Å 的顺序排序。

查看imakeidx文档我没有找到任何东西,在这里搜索也没有找到。如果其他软件包可以解决这个问题,那就好了。

我知道我可以使用类似 的方法\index{Åge@Aage}来排序Aage,就像拼写为 一样Åge,但我正在处理的完整文档会根据代码中相当深层的其他变量创建索引条目,而且我没有看到一种好的简单方法来动态检测和更改条目。我只想按照描述的方式对条目进行排序,尽量少费事。

还要注意,由于某种原因,Ø 排在 Å 之后,这在丹麦语中是不正确的。

梅威瑟:

\documentclass{article}

\usepackage[danish]{babel}

\usepackage{imakeidx}
%\indexsetup{noclearpage}
\makeindex

\newcommand\indexed[1]{#1\index{#1}}

\begin{document}

The entries should come in this order:

\indexed{Abel}
\indexed{Anders}

\indexed{Hans}
\indexed{Haagen}

\indexed{Karen}
\indexed{Karsten}
\indexed{Kaare}

\indexed{Lærke}

\indexed{Øjvind}

\indexed{Aage}
\indexed{Åse}

\printindex

\end{document}

在此处输入图片描述

答案1

您需要调用支持丹麦语的索引处理器,可以是 Xindy 或 Xindex。似乎imakeidx仅支持xindy。您可以使用以下代码使用它:

\documentclass{article}

\usepackage[danish]{babel}

\usepackage[]{imakeidx}
%\indexsetup{noclearpage}
\makeindex[program=truexindy,options={-M texindy -C utf8 -L danish}]

\newcommand\indexed[1]{#1\index{#1}}

\begin{document}

The entries should come in this order:

\indexed{Abel}
\indexed{Anders}

\indexed{Hans}
\indexed{Haagen}

\indexed{Karen}
\indexed{Karsten}
\indexed{Kaare}

\indexed{Lærke}

\indexed{Øjvind}

\indexed{Aage}
\indexed{Åse}

\printindex

\end{document}

编译使用:

$ lualatex --shell-escape test.tex

这是结果索引:

在此处输入图片描述

相关内容