18.3.2 Details of texindex

In Texinfo version 6, released in 2015, the texindex program was completely reimplemented. The principal functional difference is that index entries beginning with a left brace or right brace (‘{’ resp. ‘}’) can work properly. For example, these simple index entries are processed correctly, including the “index initial” shown in the index:

@cindex @{
@cindex @}
@printindex cp

Although not a matter of functionality, readers may be interested to know that the new texindex is a literate program (https://en.wikipedia.org/wiki/Literate_programming) using Texinfo for documentation and (portable) awk for code. A single source file, texindex/ti.twjr in this case, produces the runnable program, a printable document, and an online document.

The system is called TexiWeb Jr. and was created by Arnold Robbins, who also wrote the new texindex. Not coincidentally, he is also the long-time maintainer of gawk (GNU Awk, see The GNU Awk User’s Guide). The file texindex/Makefile.am shows example usage of the system.