![如何使用 Xindy 和 XeLaTeX 在索引中显示适当的范围?](https://linux22.com/image/240762/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Xindy%20%E5%92%8C%20XeLaTeX%20%E5%9C%A8%E7%B4%A2%E5%BC%95%E4%B8%AD%E6%98%BE%E7%A4%BA%E9%80%82%E5%BD%93%E7%9A%84%E8%8C%83%E5%9B%B4%EF%BC%9F.png)
当我使用 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
然后我得到以下输出: