# tex2xindy man page

tex2xindy — a preprocessor of the xindy index processor

## Synopsis

`` tex2xindy [-o] [attr_file]``

## Description

tex2xindy transforms a LaTeX index file `".idx"` (or an `".aux"` file) into a xindy raw index file.

It is a filter that reads from stdin a file in the input format of LaTeX's raw index file, i.e., with `"\indexentry"` tags. It outputs on stdout a xindy raw index file, i.e., with `"indexentry"` clauses.

If the option -o is not specified, tex2xindy handles ^^-notation of TeX and outputs the octet that is represented: `"^^ab"` in the input gets output as the octet 0xab. If `"^^^^abcd"` or `"^^^^^^^^abcdefab"` are detected, they are output as is.

If the option -o is specified, tex2xindy operates in Omega mode and handles its ^^-notation: Then `"^^ab"`, `"^^^^abcd"`, and `"^^^^^^^^abcdefab"` represent Unicode characters with code points 0xab, 0xabcd, and 0xabcdefab respectively. They are output in UTF-8 encoding.

If the optional argument attr_file is specified, tex2xindy writes all index key attributes into this file.

## Deficits

This program was written since it was not easily possible to extract the parser from the old makeindex system. Therefore it does not find all errors in the input as the makeindex(1) version.

Additionally it uses only the default input specifiers of makeindex(1). If other input specifiers (cf. manual page of makeindex(1)) are needed, the input specifiers (starting from the pattern `"KEYWORD"`, see below) must be changed and the program must be recompiled.

The particular missing feature is configuration of the quote and the actual characters, maybe also the escape, subitem (level), and encap characters. Argument and range delimiters seem to be less of a problem.

In fact, input markup handling (and thus tex2xindy) should be incorporated into the xindy kernel, to be able to specify configuration in xindy style files.