I tried to create an index to a document I write, but when viewing the .pdf output there was no index. Also no error messages were displayed. I managed to find this in the LOG FILE:
No file "Actual Document".ind. ("Actual Document.aux") )
Indeed, when I check the folder supposed to have these files, I found only a file Actual Document.idx with all my indices, but no .ind file. Changing the extension .idx to .ind produced an error.
Here is what I have written:

continuous \index{continuous}

What have I done wrong and what is going on with these files?

  • 1
    you need to run makeindex to generate the index Oct 30, 2015 at 18:18
  • 2
    Hello! :) You need to run makeindex "Actual Document.idx", which will give you a "Actual Document.ilg" file, containing your index. Then rerun pdflatex "Actual Document.tex". Oct 30, 2015 at 18:18

4 Answers 4


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.

  • 1
    The problem is that \makeindex doesn't produce the jobname.idn file. I do have the .idx file, though.
    – Jim
    Oct 31, 2015 at 1:21
  • Right; makeindex does that. Oct 31, 2015 at 2:00
  • 1
    This is exactly my problem. I do have \makeindex. I don't have the .idn file. @dgoodmaniii
    – Jim
    Oct 31, 2015 at 9:51
  • 1
    Not \makeindex; makeindex. It's not a command you issue in your document; it's a command you run outside your document, on the idx file that LaTeX created. As the answer explains, compiling your document produces the idx file. You need to process the idx file now with makeindex. So don't run LaTeX again; run makeindex jobname.idx, from the command line or your IDE. That will produce the ind file. Run LaTeX on your document again now, and you'll get your index wherever you have \printindex. Oct 31, 2015 at 11:39
  • OK, I think I got now how it is working, but I'm not sure how to run an external program. I tried through run of Windows where I typed makeindex Actual Document.idx and some other variations. No .idn prodused. What am I missing again?
    – Jim
    Oct 31, 2015 at 21:50

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.

  • I think every decent LaTeX editor has a button to run makeindex. No need to get into a terminal.
    – Johannes_B
    Dec 13, 2015 at 10:28
  • 1
    @Johannes_B: That's true but it does not prevent to use a terminal. I prefer terminal commands even on Windows (although I use that 'system' very rarely)
    – user31729
    Dec 13, 2015 at 10:44
  • @Johannes_B I'm using TexMaker version 4.5. I cannot find a built-in button anywhere.
    – Jim
    Dec 13, 2015 at 10:49
  • 4
    In my version of texmaker, it is called by pressing F12. Or clicking on makeindex in the tools menu.
    – Johannes_B
    Dec 13, 2015 at 11:05
  • F12 works perfectly. Thank's a lot!
    – Jim
    Dec 13, 2015 at 11:11

I had the problem of running

makeindex "filename with spaces.idx"

I wrote a batch file index.bat in order to avoid these white spaces either in the file name or in the path name:

cd "my path to my document"
makeindex main.idx
set /p DUMMY=Hit ENTER to continue...

The batch file waits for a keyboard hit after having run. Do not call the batch file makeindex.bat because then it can occur that it calls itself in an infinite loop!


On Windows assuming you have makeindex installed and on your PATH the procedure that should be followed is:

Compile your .tex document as usual.

Open the Windows command prompt, this can be done by searching for cmd. In the command prompt execute (type in and hit enter)

cd C:\Users\<username>\<path to file>

where you replace <username> and <path to file> with the user name and full path to the folder containing your .tex file. If this contains spaces include the whole path in quotation marks, as in

cd "C:\Users\<username>\<path to file with spaces>"

Then, assuming that your .tex is called main.tex, execute

makeindex main

Compile your .tex again and the index should now be complete.

Many (La)TeX editors also allow you to specify commands, like makeindex to run at compile time which will do all of this automatically.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .