如何改变多列索引的布局?

如何改变多列索引的布局?

默认的多列索引如下所示:

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}

相关内容