如何使用 Xindy 和 XeLaTeX 在索引中显示适当的范围?

如何使用 Xindy 和 XeLaTeX 在索引中显示适当的范围?

当我使用 XeLaTeX 生成索引时,xindy按照此处所述进行:如何将 xindy 与 XeTeX/LuaTeX 一起使用?我无法正确显示范围。本质上,破折号丢失,页码粘在一起。

例子:

\documentclass{article}
\usepackage{xltxtra}
\usepackage{makeidx}
\makeindex
\begin{document}
index a
\index{a}
\clearpage
index a b
\index{a}\index{b}
\clearpage
index a b ä
\index{a}\index{b}\index{ä}
\clearpage
index a b ä ü
\index{a}\index{b}\index{ä}\index{ü}

\printindex
\end{document}

输出结果如下:

指数

正如您所看到的,A显示为14代替1-4。我的电话xindy如下:

xindy -M texindy -C utf8 -L german-duden xindy.idx

xindy.idx文件对我来说看起来不错:

\indexentry{a}{1}
\indexentry{a}{2}
\indexentry{b}{2}
\indexentry{a}{3}
\indexentry{b}{3}
\indexentry{ä}{3}
\indexentry{a}{4}
\indexentry{b}{4}
\indexentry{ä}{4}
\indexentry{ü}{4}

但生成的xindy.ind文件已经显示出问题:

\begin{theindex}
  \providecommand*\lettergroupDefault[1]{}
  \providecommand*\lettergroup[1]{%
      \par\textbf{#1}\par
      \nopagebreak
  }

  \lettergroup{A}
  \item a, 14
  \item ä, 3, 4

  \indexspace

  \lettergroup{B}
  \item b, 24

  \indexspace

  \lettergroup{U}
  \item ü, 4

\end{theindex}

我在这里遗漏了什么?

答案1

看起来你必须加载一个范围模块。例如

xindy  -M texindy -M page-ranges -C utf8 -L german-din test-utf8.idx

或者

xindy  -M texindy -M ff-ranges -C utf8 -L german-din test-utf8.idx

(从 latex 伴侣中我本来期望第一个能够自动加载但事实似乎并非如此)。

答案2

我跑

texindy -C utf8 -L german-duden <file>.idx

然后我得到以下输出:

在此处输入图片描述

相关内容