TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I use imakeidx package to generate index in my document. I'd like to add hyperlinks into my Index, but it seems to me that hyperref and imakeidx do not work together. For example, this code doesn't create linkable index:


\documentclass[11pt]{book}
\usepackage[pdftex]{color}

\usepackage{hyperref} \hypersetup{ colorlinks, citecolor=green, filecolor=green, linkcolor=blue, urlcolor=green } \usepackage[makeindex]{imakeidx} \makeindex \begin{document} Text\index{text} \printindex \end{document}

How to fix this problem? Thanks.

share|improve this question
    
Welcome to TeX.sx! – Martin Scharrer Jun 30 '11 at 21:14
up vote 16 down vote accepted

Load imakeidx before hyperref. Generally, hyperref should be loaded last, though there are some exceptions (see Which packages should be loaded after hyperref instead of before? ).

share|improve this answer
    
Thanks. It works! – Physicsworks Jun 30 '11 at 21:19

Packages hyperref and imakeidx can be used together by creating a new command, like the one shown in the attached example. It may combine several commands to provide alternate font together with hyper-reference. To simplify entering the words into the index, command \IN is introduced. Compilation gives 3 page PDF file with the following index.

Index
ENTRY, 1
entryA, 1, 2
entryB, 2

\documentclass[11pt]{book}
\usepackage[pdftex]{color}
\usepackage{hyperref}
\hypersetup{colorlinks,linkcolor=blue}
\usepackage{imakeidx}
\makeindex[columns=1]
\newcommand{\BH}[1]{\large\textbf{\hyperpage{#1}}\normalsize}
\newcommand{\IN}[1]{\index{#1|BH}}

\begin{document}
Text on page 1
\index{entryA|BH}
\IN{ENTRY}
\newpage
Text on page 2 \IN{entryA}\IN{entryC}
\printindex
\end{document}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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