ltxindex is a software tool that enables users to typeset indices in LaTeX packages using GNU's Texindex. It simplifies the process of typesetting indices, resulting in accurate and consistent output.
In my experience, texindex is easier to use than makeindex. If you don't require anything too complicated, this package is ideal for you. It's worth noting that by default, this package only implements the standard indices used by texinfo and only defines the concept index (cp). It doesn't allow for defining custom indices, and you'll need to set up fn, ky, pg, tp, and vr indices on your own.
To use ltxindex.sty, add this package to the preamble of your document: usepackage{ltxindex}. The package offers several useful commands to create indices. For example, cpindex{< concept >} indexes < concept >, without typesetting it in the main text. Additionally, cpsubindex{< concept >}{< subconcept >} indexes < subconcept > under < concept >, without typesetting it in the main text.
There's also indexcp{< concept >} that typesets < concept > and puts it in the < cp > index, and subindex{< subconcept >}{< concept >} that typesets < subconcept > in the main document and puts it under < concept > in the < cp > index.
You can set up fnindex, kyindex, pgindex, tpindex, and vrindex with the command newindex{??}, where ?? is either fn, ky, pg, tp, or vr. This enables you to index < word > in the appropriate index, with commands like ??index{< word >}. Besides, the package also includes Texinfo shortcuts such as cindex, findex, kindex, pindex, tindex, and vindex.
Another useful feature is that synindex{foo}{bar} makes index foo feed into index bar, while syncodeindex{foo}{bar} puts all entries made for index foo inside bold.
After writing the main body of your document, use printindex{??}, wherever you like to ask LaTeX to typeset the index. Make sure to precede it with a descriptive heading, like section*{Concept Index}. You'll also need to run LaTeX on filename to create the .aux and .?? files, texindex on every < filename >.?? unsorted index file you created for your document, and ReRun LaTeX to incorporate the indices.
Finally, run texindex on every index file (to secure right cross-references), and ReRun LaTeX to put everything in order. However, you can avoid all this work in drafting and proofreading, as this package prints "(Index is empty)" or "(Index is nonexistent)" strings in the appropriate places if the indices are unsorted or undefined.
Overall, ltxindex.sty is a useful package for those looking to create indices with texindex. While there are some things to keep in mind concerning its experimental nature, the package's straightforward commands make indexing a simple task.