Sunday, March 30, 2014

Any advice: LaTeX and makeindex

Readers - For a long time now I have been working on a very large LaTeX document (actually built out of a number of sub-documents) that I will discuss further in later posts.  I greatly desire to create an index for this document, and I know about the LaTeX package \makeindex.   The question is, does anyone know of a good frontend application that can make the creation of the index less tedious?  The brute force approach would require me to go through the document(s) by hand and insert a \makeindex tag every time a term that I wish to index appears.  For an index containing a couple of hundred entries, this looks excruciating.  What I would love is an application where I identify the terms for which I want index entries, and it then automatically inserts the appropriate tags (in a smart way, not putting tags inside LaTeX equations, for example).  While this would be imperfect, it would be easier to start from an over-complete index and pare down or modify than to start from scratch.  Yes, I am sure I could use perl or another scripting language to make something, but I'd rather not reinvent the wheel if someone has already solved this problem.  Thanks for any suggestions.


Vijay said...

Hi Doug,

Take a look at this.

I use it regularly and it works very well. You can just download the perl script and run. No need to install.

Douglas Natelson said...

Vijay: Thanks - that looks very promising!

Pierre DARANCET said...

Hello Prof. Natelson,

That might be too nerdy of an answer, but what about using the brute force method in a terminal:

TermsToIndex="alpha beta gamma orwhatever"
for file in `ls ./*.tex`
for term in $TermsToIndex
sed -i "s/ $term / \index{$term} /g" $file