如何在索引中的“A”前添加类别“图形”?

如何在索引中的“A”前添加类别“图形”?

我想在索引中的第一个字母“A”之前创建一个名为“Figures”的类别(字母组)。以下代码正确地将“Figure description, 1”放入其自己的类别中(而不是“F”下),但类别标题“Figures”并未出现:

\documentclass{scrartcl}

\usepackage[noautomatic]{imakeidx}
\makeindex

\newcommand*\lettergroup[1]{%
  \par{\sffamily\bfseries #1}\par
  \nopagebreak
}

% Doesn't seem to change anything:
\begin{filecontents}[overwrite]{\jobname.xdy}
(define-letter-group "Figures" :before "A" :prefixes ("+"))
\end{filecontents}

\begin{document}
The index\index{index} should contain a category (letter group) called
``Figures''\index{figures} and that should contain the entry ``Figure
description, 1'' \index{+@Figure description}

\printindex
\end{document}

我以前没用过xindy,所以不确定这是否需要一些不同的东西。我texi2pdf像往常一样编译(这似乎调用了xindy),我希望它能保持这种状态。

我搜索了好久,但没找到太多相关内容。在“A”前添加一个附加类别应该很简单(至少我是这么认为的)。

更新

这是一个基于imakeidxalone的 hack。不过,它相当丑陋,因为人们需要手动在所有符号前添加一个数字,在所有数字前添加一个符号。如果至少可以告诉makeindex打印符号数字,那么用数字开始\index{}图形命令就足够了(我希望先看到图形,再看到符号)。但即便如此,也只能处理一个附加类别(图形),不能处理更多(比如说,你想先查看图形和列表,然后是符号,然后是 A 到 Z;这种情况无法通过此 hack 处理)。

\documentclass{scrartcl}

\usepackage{imakeidx}
\makeindex[options=-s myindexstyle.ist]

\begin{filecontents*}[overwrite]{myindexstyle.ist}
headings_flag 1
heading_prefix "{\\sffamily\\bfseries "
heading_suffix "\\hfill}\\nopagebreak\n\\nopagebreak"
numhead_positive "Miscellaneous"
numhead_negative "misc"
symhead_positive "Figures"
symhead_negative "figs"
delim_0 ",\~"
\end{filecontents*}

\begin{document}
The index\index{*@Figure 2 description} should contain\index{contain} a category (letter group) called
``Figures''\index{figures} and that should contain\index{0@$e$} the entry ``Figure
description, 1'' \index{*@Figure 1 description}

\printindex
\end{document}

相关内容