I need to create a large index for a book in Indesign. I have tried the Indesign Index feature, but the problem is that I need each term to capture multiple variants under one term, such as singular and plural (and as the book is in in Czech language, many other inflected forms) and I have not found a way to do that with the Index feature.

I have seen a similar question (7 years old) Make an index where "cat" also refers to "cats" and an answer recommending the script IndexMatic. I have looked into that and tried the trial version and it looks promising so far, using regular expressions to catch all variants of a term that I want. But it seems to lack another functionality that the native Index feature does have, that is creating sections and headings inside the index, based on the letters of the alphabet. Is there a way to do that with IndexMatic?

Or is there another script or tool that would do the job better?

1 Answer 1


I’m possibly biased since I’ve used it so much, but in my experience, IndexMatic is by far the best tool for creating indexes in InDesign.

It’s true that there’s no built-in way to separate out forms by letter, but it’s not too difficult to achieve either.

For one thing, you can add the letters manually – there aren’t that many of them, and if you only do it when you’re sure the index is otherwise completely finished and as it should be, it’s a matter of adding ~30 letters manually one time.

A slightly more flexible (but also more time-consuming) way to get the letters in directly is by including them in your search terms as the top level, and then have the actual terms as level 2 and below. The final formatting is all done by properly defining your paragraph styles in InDesign anyway, so you can easily format the heading letters to have extra spacing and a larger font size, or whatever you want.

An even more flexible solution, which I’ve used in the past when I needed to build really large and complex indexes, is to script it. Depending on your needs, this may be total overkill and require way too much work, but for some jobs, it’s necessary. The way I’ve typically done it is to create an XML file in IndexMatic (this requires the paid version, I believe) and then processed that XML file in a script to properly alphabetise entries, sort them into categories (in your case letters of the alphabet) and generate an InDesign Tagged Text file to import into my document.

  • I have read IndexMatic manual and It certainly does look great, so if tre is not anything better, I will buy the PRO version.
    – Matej
    Jul 28, 2021 at 17:30
  • Meanwhile I found this script creativepro.com/files/kahrel/indesign/index_skip.html . Do you think it could do the job of post-processing the index inside Indesign? (I cannot try it until I buy the full version of IndexMatic as the trial version only offers plain text output).
    – Matej
    Jul 28, 2021 at 17:33
  • Yeah, that looks like it would do the trick. With the caveat, however, that (like most scripts) it probably only works with the 26 letters that appear in English. Since your book is in Czech, there’s a change it may not work with letters like č, ř, š, ź, ů, etc. – it may even consider the upper- and lowercase versions of these letters to be different letters and group them separately. Getting both grouping and sorting to work correctly for non-English text has been one of the major difficulties for me when writing the post-processors. Jul 28, 2021 at 18:52
  • Alright, I bought the full version of IndexMatic and tried it and it is really great! And the above-mentioned script works really well with the generated index. Even with the Czech letters. IndexMatic sorts the words correctly and the script works even with letters like č, ř, š.
    – Matej
    Jul 29, 2021 at 18:09
  • 1
    The only little problems with the script are "ch" (which is regarded as one letter in Czech) and vowels with diacritics (á,ů,ě - which are sorted together with basic vowels). But I think I might be able to edit the script to work right for Czech. I haven't written indesign scripts yet, but I know basic Javascript and I think I see how it could be done. So it looks really promising. Thanks for your advice!
    – Matej
    Jul 29, 2021 at 18:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.