[tex-eplain] makeindex breaks up index group on a capitalized entry

Stepan Kasal kasal at ucw.cz
Mon Aug 23 11:12:46 CEST 2004


On Sat, Aug 21, 2004 at 05:07:00PM +0300, geolsoft at mail.ru wrote:
> $ echo $LC_CTYPE; echo $LC_COLLATE

I suppose you take care to export _both_ of these.

Have you tried setting LC_ALL=ru_RU.KOI8-R; export LC_ALL ?

>   \item marazm, 1
>   \item martyshka, 1
>   \item masshtab, 1
>   \indexspace
>   \item Meksika, 1
>   \indexspace
>   \item moloko, 1
>   \item motylyok, 1

The explanation is quite easy: the makeindex programs compares the first
letters of the entries and if they are different, it inserts the
\indexspace command.  The problem is that "m" and "M" are considered
different, though they are not.

When you look at the source (download tetex-src-2.0.2.tar.gz, unpack,
cd tetex-src-2.0.2/texk/makeindexk), you find that the comparison is in
function new_entry() in file genind.c and relies on first_letter() from
the same file; this in turn relies on macro TOLOWER from mkind.h, which
relies on isupper and tolower from system library (libc).

There must be a bug somewhere there; perhaps upgrading glibc would help.
If you have a test system nearby, try installing another Debian there
with another version of glibc there.

Hopes this helps,
	Stepan Kasal

More information about the tex-eplain mailing list