# Index not created in pdf output, even though idx file is present

I have a document that has \usepackage{makeidx} and \makeindex in the preamble and \printindex inside the document body. An .idx file is created when I compile, no errors are signalled, still there is no index listing in the PDF document that is produced. There used to be one until all my files were deleted except the .tex file, after that I could not get the index to appear in my output. How can one troubleshoot this thing? I have changed all the "%bm" with "%tm" wherever I could find it in the build profiles (Tools -> Options -> Clean), as Thorsten Donig suggested on this website (in an answer to another posting regarding problems with the index creation). It did not solve my problem. I am using the TeXnicCenter editor on Windows XP, with the MiKTeX 2.9 distribution.

• Welcome to TeX.sx! You don't have to sign with your name since it automatically appears in the lower right corner of your post. A tip: You can use backticks ` to mark your inline code as I did in my edit. – Joseph Wright Nov 29 '11 at 15:15
• If you look at your output profile (Build --> Define output profiles), is the box "Do not use MakeIndex for this profile" checked? Also, is the path to makeindex.exe set correct? – Torbjørn T. Nov 29 '11 at 15:34
• The "Do not use MakeIndex" box is not checked. But thank you, your second suggestion prompted the fix! As I checked the path to the executable, I found out there are two of them, makeindex.exe and miktex-makeindex.exe! I switched from makeindex.exe to miktex-makeindex.exe and voila! the index appeared in the pdf file!! I have no idea why the first variant stopped working, or maybe something changed for my Adobe on my machine, but now it is fixed, thanks again! – Diegis Nov 29 '11 at 16:08
• @TorbjørnT.: Write up a little extract regarding the location and where to change the source of makeindex.exe in TeCnicCentre as an answer. – Werner Nov 29 '11 at 17:16
• @Werner Done. Diegis: I included your information about the two executables. – Torbjørn T. Nov 29 '11 at 17:23

During a compile of your file with LaTeX with the \makeindex command present, an .idx file is produced. However, \printindex requires a processed version of .idx, or a .ind file - the processed version being one that is formatted according to a hierarchy and sorted alphabetically. For this, you require an intermediate step:

1. latex or pdflatex your myfile.tex (this creates myfile.idx)
2. makeindex myfile (this processes myfile.idx into myfile.ind)
3. latex or pdflatex your myfile.tex again
• TeXnicCenter should run makeindex automatically, so the question is rather why that doesn't happen. – Torbjørn T. Nov 29 '11 at 15:32
• Yes, I agree! All the necessary files are produced, the idx and ind, and both have content inside (I have checked the files with Notepad). It is driving me crazy!! I will try the oldest trick in the book, re-booting my machine... What is puzzling is that it worked until all files were deleted, other than the tex file. No idea what went wrong... Thank you, Colin. – Diegis Nov 29 '11 at 15:47

One thing to check is the settings for the output profile, which is found under Build --> Define output profiles. The box "Do not use MakeIndex for this profile" must not be checked, and the path to makeindex.exe must be correct.

MikTeX has two different executables makeindex, called makeindex.exe and miktex-makeindex.exe. If the first doesn't work, try the latter.

For the sake of a future reader: Check wether you used the file option "aux-directory" somewhere. I made a script

xelatex --aux-directory="Help_files" exampleproject
makeindex exampleproject
xelatex --aux-directory="Help_files" exampleproject
xelatex --aux-directory="Help_files" exampleproject

(script as well as tex files lie in folder "foo"). It did not work because makeindex searched the idx file in "foo", but xelatex created it in "foo/Help_files". Simply replace makeindex exampleproject with makeindex Help_Files/exampleproject.