XINDY FAQ: xindy and LaTeX

Next Previous Contents

## 3. xindy and LaTeX

## 3.1 What is `tex2xindy`?

`tex2xindy` is a filter that parses ``.idx`' or similar files and converts the `\indexentry` macros into a form readable by xindy.

The parser of `makeindex` can be configured to recognize different quoting characters, etc. (see the man-page for `makeindex`, section input style specifiers for further details). We have tried to extract the parser from `makeindex` but due to several probems we have finally rewritten the parser using `lex`. Scanners written with `lex` are usually fixed to a specific character set used in the regular expressions. Our parser, `tex2xindy` is therefore not configurable. If one uses a different configuration of the `makeindex` input style specifiers, one can change the source (`tex2xindy.l`) to generate a completely new parser. From our personal experience we have rarely used more than two different parsers in practice so we have written `tex2xindy` in a form that is easily maintainable. The input specifiers are stored symbolically in the source. The definiton section looks like this:

> `

>     KEYWORD  \\indexentry
>     ENCAP    \|
>     ACTUAL   @
>     ESCAPE   \\
>     LEVEL    !
>     QUOTE    \"
>     ROPEN    \(
>     RCLOSE   \)
>     ARGOPEN  \{
>     ARGCLOSE \}

> `

These definitions are essentially the input style specifiers as can be found in the man-page of `makeindex`. Changing this section according to your needs and recompiling `tex2xindy` should be an easy task. Maybe we will include more pre-defined parsers in future releases if necessary.

## 3.2 What LaTeX-package should I use in conjunction with xindy?

We strongly recommend using the LaTeX2e-package `index` written by David M. Jones, which is available at CTAN. It supports multiple indexes as well as several shortcuts to easily index terms in a document. Multiple indexes support the generation of several indexes for one document. For instance, one can make an author or command index in addition to a global index.

Another option is to use the `xindy.sty` from Andreas Schlechte that comes with the xindy distribution. Take a look at the `contrib` directory that should contain a version.

Next Previous Contents