[tex-live] Fwd: xindy bugs + fixes (xindy.sty, perl scripts)

Zdenek Wagner zdenek.wagner at gmail.com
Wed Mar 18 13:15:16 CET 2009

Hi all,
I tried to contact Andreas Schlechte and Roger Kehr but probably the
e-mail addresses given in the files are old and no longer working. I
sent the mail to the xindy-discuss list but with no response. Maybe
someone of you knows whom to contact.

I week ago started to use xindy and I found a few bugs both in the
perl script and xindy.sty

1. In the POD documentation of both xindy.pl and texindy.pl the second
option named --version should be --verbose instead.

2. File xindy.pl contains on line 659:
$variant =~ s/din/din5007/ ;
However, if a user requests --language=german-din5007, the variant
would be set incorrectly to dindin5007. The regexp should either be
anchored e.g. as s/din$/din5007/ or even better would be:
$variant = 'din5007' if $variant eq 'din';

3. As reported at
http://xindy.sourceforge.net/html-mail-archive/msg00038.html xindy.sty
adds undesired spaces. This is caused by missing percent signs at the
ends of several lines. I have found these lines and fixed them.

4. It is writen in the xindy.sty documentation that the backlashes and
quotes are not escaped in a user written macro. The reason of the
problem is that \indexindy has to change categories of several
characters. However, in the definition shown in the manual the
argument is consumed by the user macro and \indexindy gets the tokens
with categories already set. Doubling the backslash usually works
because \\ is defined as a robust macro but may not work in some
environments where \\ is redefined. It is better to define a user
macro without an argument so that it is seen by \indexindy. An example
is given in my test file.

5. It is suggested to protect a comma or a semicolon by {,} and {;},
respectively. It is, however, better to enclose the whole key into
braces because the outermost braces are removed by TeX during
parameter expansion (see The TeXbook). Remember that the parameter is
expanded once when obtaining the level and again when splitting the
sort and print keys. It is therefore necessary to use one pair of
braces to protect a semicolon and double braces to protect a comma.
Since the braces are removed by TeX, no merge rules are needed.

The sample contains these files:
xindy.dtx: modified version fixing errors as mentioned in 3
xindy.dtx.diff: diff between your and my version (I have it in a
vendor branch in my private svn server)
test.tex: test file for demonstrating the bugs, user macro definition
and different kinds of bracing

The sample is located at http://hroch486.icpf.cas.cz/xindy/

I have also found some misprints in xindy.dtx. If you agree, I will
fix them and send you an improved version.

xindy is included in TeX Live 2008 but xindy.sty is not although it
looks very useful. However, I managed to find xindy.sty only in the
CVS repository.
If it helps and if the authors agree, I can package it for inclusion in TL.


Zdeněk Wagner

Zdeněk Wagner

Zdeněk Wagner

More information about the tex-live mailing list