默认的多列索引如下所示:
AA d
a BB
b a
c b
我怎样才能将其改为:
AA
a c
b d
BB
a b
这会破坏每个组的多列吗?
答案1
您写道您修改了 .ist 文件,因此我猜您使用了 makeindex。我写了一个需要 xindy 的解决方案。
你没有告诉我们你是如何创建群组的,我猜你写的是
\index{AA!a}
我使用的非常不雅的技巧是在索引环境中重新定义 \item 命令。
% arara: pdflatex: { shell : yes }
\begin{filecontents*}{saltystyle.xdy}
(markup-locclass-list :open "\nopage{" :sep "" :close "}" )
(markup-index :open "\begin{theindex}\onecolumn~n
\makeatletter
\def\item#1 {\par\hangindent 40\p@ #1\par\begin{multicols}{2}}
\makeatother
\providecommand*\lettergroupDefault[1]{}
\providecommand*\lettergroup[1]{}"
:close "~n~n\end{theindex}~n"
:tree)
(markup-indexentry :open "~n \item " :close "~n\end{multicols}" :depth 0)
(markup-indexentry :open "~n \subitem " :depth 1)
(markup-indexentry :open "~n \subsubitem " :depth 2)
\end{filecontents*}
\documentclass{book}
\usepackage{multicol}
\usepackage{imakeidx}
\makeindex[program=xindy, options= -M saltystyle.xdy]
\newcommand{\nopage}[1]{}
\begin{document}
Hallo!
\index{AA!a}\index{AA!b}\index{AA!c}\index{AA!d}
\index{BB!a}\index{BB!b}\index{BB!c}\index{BB!d}
\printindex
\end{document}