Problem with \printindex. No index created

The makeidx package doesn't produce the index on its own; it just writes the entries, unsorted, to a separate file. You need to use an external processor, such as makeindex or xindy, to sort the index and format it in a way appropriate for inclusion in your document.

So your compilation process might look like this:

pdflatex jobname.tex

This produces a jobname.pdf file and writes the index entries to jobname.idx.

makeindex jobname.idx

This sorts and formats the index entries and outputs jobname.ind.

pdflatex jobname.tex

This produces a pdf file and includes jobname.ind at whatever point in the document you issued \printindex.

Oftentimes, it's good to put these commands into a script so you don't forget to run them.

Remember that every time you compile your document, it is both including the contents of jobname.ind at whatever point you issued \printindex and writing all your index entires to jobname.idx. Once you have your ind file, you don't need to rerun makeindex unless your page numbers have changed or you've changed entries in the index.


Although the question has been answered, there still some clarifications that need to be made regarding Windows users.

To run makeindex in Windows you have to go to the terminal which is what Windows call Command Prompt or cmd. You can search for these manually or type them into the run program that appears in Start. Once you have opened the terminal, you can use Unix commands to do whatever. makeindex is a Unix command, too, and only works into this terminal.