A recent project involved creating an enormous index… in fact there were over 100,000 index entries to create.
Creating index entries is normally a chore. To create just one index entry, the normal procedure is to:
- Highlight the text to be indexed
- Select “New Page Reference” from the index palette (or command + 7)
- Enter the details and click Add (or Add All) then OK
In a normal book, indexing is something that is done carefully by the author or staff dedicated to the task – entries in the index often refer to certain instances of a word rather than every instance of its use. This project however used the index as a lookup table instead, so the more advanced features of the index palette (e.g. see also references, index levels) were not necessary.
For this project, the items to be indexed were restaurant names. The name appeared in the same line as the description, so using a Paragraph Style to identify the item for an index entry could not be used. However, the restaurant names DID have a Character Style associated with them.
Because there were 100,000 index entries in this book and each entry had its own character style, there were easier methods to perform this task. There are several scripts online that can create index entries from character styles:
- Peter Kahrel’s version – allows entries in one or many character styles to be added to an index;
- Joshua Hubber’s version – allows entries in one character style only to be added to an index, but can apply this to a all open documents as well;
- Kerntiff’s Quickindex – allows entries in one character style or paragraph style only to be added to an index – has a user interface to see what will be indexed
- Indiscript’s (Marc Autret’s) IndexMatic 2 – a user interface that allows dozens of options for indexing.
For this project, because there were two character styles used to identify the restaurant names, I used Peter Kahrel’s script. While testing the script on a sample chapter, everything appeared to work correctly… it took time but all the names in character styles were added to the index.
However, when the time came to apply this script to a document 1,628 pages long, the script would run, and then the spinning beach-ball of death would appear. Assuming I was not allowing the script enough time to finish its tasks, an attempt was made to let the script run over a weekend on the fastest machine in the office. Sadly, this did not work. Put simply, there were just too many entries for the machine to handle.
Luckily, all the text for this project, while many pages long, was all in one text frame. This provided the option to enter the index entries while the document was in a raw text format. To do this, the text was exported as an Adobe InDesign tagged text file by placing the cursor anywhere in the text and selecting File/Export (command + E).
The newly saved text file was then opened in Textwrangler. The a find/change using Textwrangler’s GREP was then made for the following:
If the code is hard to see in the picture, here is the type:
*placename above refers to the style to index.
(make sure the Grep checkbox is ticked)
Once the changes in the text files were saved, the type was imported in place of the old text in the InDesign file, and within moments the document was completely indexed as required.
The only other part that took time was to run the “Generate Index” function from InDesign itself, and considering the amount of index entries in the document, took an hour to generate.