19

I'm working on a document. There's an index there, but for some reason when I change things in it it doesn't update the rendered outcome and I can't correct it.

I tried erasing the .ind file, but then it just render the document without an index at all (instead of re-creating the index as I would have expected).

What am I doing wrong?

Specifics:

there's a defs file that has:

\usepackage{makeidx}
\makeindex

the grand .tex file has:

\input{defs}
.
.
.
\printindex

But: when I change, for example \index{Installing} to \index{installing} the index keeps having "Installing" and not "installing".

When I erase the .ind file and re-render it (even after ten times of trying) the document simply does not include an index at all and stops before it.

There is no new .ind file being generated.

8
  • Welcome to TeX.sx! No need to add thanks to your posts, simply upvote any answers you may receive. After you delete the .ind you need to run LaTeX multiple times for the index to be generated. After doing that does the problem persist? Feb 14, 2013 at 13:17
  • yes. I've tried to render it now about ten times, just to make sure. I've even tried restarting the whole program. Still no index - Uri
    – user25291
    Feb 14, 2013 at 13:27
  • Minimal example please, did you remember to run the actual indexing program?
    – daleif
    Feb 14, 2013 at 13:34
  • There really is nothing grand to describe: there's a "definitions" file that includes '\usepackage{makeidx} \makeindex' and the original file (that inputs the "definitions") includes '\printindex' ... that's it. maybe it has to do with the fact that this whole project was copied to my computer recently? (I doubt it of course, but I learned not to underestimate these things' voodoo)
    – user25291
    Feb 14, 2013 at 13:42
  • 2
    Besides, creating the MWE is a valuable exercise, as it often leads the user to figure out the problem themselves.
    – daleif
    Feb 14, 2013 at 13:57

3 Answers 3

27

Just to avoid confusion, the way to produce a generic index should be

  1. include \usepackage{makeidx}
  2. Put a \makeindex command in the preamble
  3. Put a \printindex where the index should appear
  4. Run LaTeX which generates an "fname".idx file
  5. Run makeindex "fname".idx to generate the "fname".ind
  6. Run LaTeX again to include the .ind file and generate the index in the document

From your question, it is not clear if all of these parts are included in your process.

3
  • Yes. I apologize if I am unclear, but yes, I follow these steps - it seems as if if the .ind file exists it does not change it, and if it does not exist it does not generate it.
    – user25291
    Feb 14, 2013 at 14:18
  • 1
    @user25291 You have to run MakeIndex (step 5 above) every time you change the indexed terms. If instead of makeidx you load the package imakeidx, then pdflatex will do it for you, provided you have a fairly recent TeX distribution.
    – egreg
    Feb 14, 2013 at 15:10
  • I had to use the package imakeidx in my case. Great tip. Jan 8, 2023 at 10:27
10

In my case, replacing makeidx with imakeidx makes it work. Probably something missing in my installation - didn't debug.

\documentclass[a4paper]{article}
\usepackage{imakeidx}
\makeindex
\begin{document}
text\index{test}

\printindex
\end{document}
1
  • 1
    Could you elaborate a bit more on that?
    – Johannes_B
    Nov 1, 2014 at 22:54
3

No really an answer, but here is a working MWE:

\documentclass[a4paper]{article}
\usepackage{makeidx}
\makeindex
\begin{document}
text\index{test}

\printindex
\end{document}

and it works just fine on my system. Does it work on yours?

1
  • @Student this is not a forum, please post a question on the site
    – daleif
    Mar 11, 2019 at 17:12

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