3

I need to second column of the index created with imakeidx began only after the first one reaches the bottom of the page.

\documentclass{book}
\usepackage{imakeidx}
\makeindex[columns=2]

\begin{document}
 foo\index{a}.  foo\index{b}.  foo\index{c}.  foo\index{d}.  foo\index{e}.  foo\index{f}.  foo\index{g}.  foo\index{h}.  foo\index{i}.  foo\index{j}.  foo\index{k}.  foo\index{l}.  foo\index{m}.  foo\index{ab}.  foo\index{ac}.  foo\index{asd}.  foo\index{asddf}.  foo\index{aasef}. 
\printindex
\end{document}

The image shows what I have and what I need: imakeidx

0

1 Answer 1

4

You have two possibilities: the first is to pass the original option

\documentclass[a5paper]{book}
\usepackage[pass]{geometry}

\usepackage[original]{imakeidx}
\makeindex

\begin{document}

foo\index{a}.  foo\index{b}.  foo\index{c}.  foo\index{d}.  foo\index{e}.  foo\index{f}.
foo\index{g}.  foo\index{h}.  foo\index{i}.  foo\index{j}.  foo\index{k}.  foo\index{l}.
foo\index{m}.  foo\index{ab}.  foo\index{ac}.  foo\index{asd}.  foo\index{asddf}.  foo\index{aasef}.

\printindex
\end{document}

Only two-column format is supported. I used A5 paper just to show the result more clearly:

enter image description here

The second strategy is to pass multicols* instead of multicols:

\documentclass[a5paper]{book}
\usepackage[pass]{geometry}
\usepackage{imakeidx}
\makeindex[columns=2]

\xpatchcmd{\theindex}{multicols}{multicols*}{}{}
\xpatchcmd{\endtheindex}{multicols}{multicols*}{}{}

\begin{document}
foo\index{a}.  foo\index{b}.  foo\index{c}.  foo\index{d}.  foo\index{e}.  foo\index{f}.
foo\index{g}.  foo\index{h}.  foo\index{i}.  foo\index{j}.  foo\index{k}.  foo\index{l}.
foo\index{m}.  foo\index{ab}.  foo\index{ac}.  foo\index{asd}.  foo\index{asddf}.  foo\index{aasef}.

\printindex
\end{document}

This has the advantage that all features of imakeidx are available.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.