Skip to main content
Inspiring
Aug 13, 2025 6:23 PM UTC
Answered

Better indexing method?

There seems to be some agreement that ID's indexing feature is kludgy at best. I am not an experienced coder or script writer, but I thought of an algorithm that might make the indexing job easier. I'm posting this so you all can tell me that I'm nuts. (So stipulated!)

 

Suppose index markers came in two flavors, start and end. If ID assigned marker numbers (not replacing the levels of index entries) and marker-end numbers, indexing would become far more flexible. So, for example, the first index entry would have "Index Marker 1" (IM1) and would generate "Index Marker 1 END" (IM1_END) for the user to place in the appropriate location in the text. So when the user marks the beginning of an index reference (with whatever levels the user specifies), pressing "OK" would generate a pop-up saying "place index end marker(#) at desired point."

 

Then the user would not have to bother with all of the approximations (e.g. Next # paragraphs, Next # pages, etc.) that ID has now. If I'm right (a long shot, I admit), the combination of IM1 and IM1_END would generate a single index page entry if they occurred on the same page and otherwise would generate a page range. It seems to me much cleaner, if it's possible. If it's not possible, I apologize for wasting everyone's time.

Peter Kahrel
Peter KahrelCorrect answer
Community Expert
Aug 16, 2025 7:46 PM UTC

Read only that last link page (index-page-ranges.html), it describes a script with which you can use end-of-range markers. It's really pretty straightforward.

 

> Am I right about it not being all that hard for Adobe to add to the program?

 

Correct. There are several ways. InDesign an be extended with plug-ins (written in C++, which is also what InDesign itself was written in) and scripts, which can be JavaScript, AppleScript, and VBasic. And since recently you can do UXP plug-ins, which use JavaScript. The end-of-range script I describe is a JavaScript.

 

4 replies

Participant
Nov 3, 2026 4:54 AM UTC

In addition, Indexing should have a better way to delete pages when using a dash to show multiple pages for an item. Doing it one at a time is cumbersome and time consuming. Further, when doing Add All, I have not found a way to place last name first. In addition, when there is a Jr. or Sr., or II, or II for a name, it puts that first, not last in the index, forcing an edit for each name. Surely there can be a better way.

Translate
Peter Kahrel
Community Expert
Community Expert
Aug 14, 2025 12:18 PM UTC

You're absolutely right, InDesign should have endmarkers the way Latex, Word, WordPerfect, etc. etc. have them.

 

And InDesign's index is pretty limited (and has several bugs), but with scripting it becomes a more than useful tool. See these two pages

https://creativepro.com/files/kahrel/indesign/lists_indexes.html

https://creativepro.com/files/kahrel/indesign/index-fixes.html

 

and especially the following:

 

https://creativepro.com/files/kahrel/indesign/index-page-ranges.html

 

Translate
Inspiring
Aug 16, 2025 3:55 PM UTC

Thanks, Peter. I'm not sure I have time to master your suggestion before my book is due, but I'll work on it. Am I right about it not being all that hard for Adobe to add to the program? (I don't know what programming language underlies ID..) It can't be all that hard if Microsoft managed it! (I run Linux with a Windows VM, using the latter only for Word (for my publisher) and TurboTax (because it does not have a Linux client).

Translate
Peter Kahrel
Community Expert
Peter KahrelCommunity ExpertCorrect answer
Community Expert
Aug 16, 2025 7:46 PM UTC

Read only that last link page (index-page-ranges.html), it describes a script with which you can use end-of-range markers. It's really pretty straightforward.

 

> Am I right about it not being all that hard for Adobe to add to the program?

 

Correct. There are several ways. InDesign an be extended with plug-ins (written in C++, which is also what InDesign itself was written in) and scripts, which can be JavaScript, AppleScript, and VBasic. And since recently you can do UXP plug-ins, which use JavaScript. The end-of-range script I describe is a JavaScript.

 

Translate