我使用的是 MikTex、pdfLaTex、WinXP_SP3。我想创建一个包含外文字母的索引,并按正确的字母顺序排列。使用 Xindy 似乎很麻烦,所以我想避免使用它。如何在.ind
创建索引文件 () 后手动更改它,以正确的字母顺序设置条目?
我将回答我自己的问题。
序言包含
\usepackage{imakeidx}
%\usepackage{makeidx}
\makeindex[columns=3, intoc]
我尝试过使用makeidx
,但没有效果,所以我改用imakeidx
。
在文件末尾有
\clearpage
\printindex
通过这种设置,可以创建并打印一个索引文件,但所有单词都以外文字符开头,这是不正确的。
用记事本打开.ind
文件。手动将错误放置的条目复制粘贴到正确位置,并\indexspace
根据需要添加条目。(实际上,在写字板中更容易完成此操作)。现在对序言进行以下更改:
%\usepackage{imakeidx}
\usepackage{makeidx}
%\makeindex[columns=3, intoc]
否则,makeidx 会失败,现在会打印手动更改的索引文件。甚至索引的 TOC 条目也会保留。任务完成。
答案1
辛迪
您可以考虑切换到 XIndy,这是一个功能更强大的索引生成器,它支持多种语言的排序规则。
帮助 Makeindex
可以通过指定排序键来影响 Makeindex 的排序。在默认设置中,字符@
将排序键与索引中出现的单词分开,例如:\index{Strasse@Straße}
,
\index{Baecker@Bäcker}
/ (取决于排序规则)。然后 Makeindex 将按和/\index{Backer@Bäcker}
排序条目,但和将出现在索引中。Strasse
Baecker
Backer
Straße
Bäcker
.idx
文件排序
上述方法也可用于编写脚本,为文件中的条目提供排序键.idx
。但是,无法创建新的字母组。
.ind
文件排序
解析.ind
文件比较麻烦。可以编写样式文件来添加更多逻辑标记以简化解析。识别条目后,脚本可以执行自己的排序,包括添加新的字母组。