LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Lars Hellström <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Fri, 6 Apr 2001 14:38:42 +0200
Content-Type:
text/plain
Parts/Attachments:
text/plain (40 lines)
While working on the docindex package, I encountered a problem concerning
catcodes which has some principal implications, hence I thought it might be
discussed on this list.

As you may know, gind.ist and gglo.ist insert the following commands at the
top of each .ind or .gls file they are involved in making:

\makeatletter\scan@allowedfalse

As far as I can see the \scan@allowedfalse is completely redundant (there
are no macrocode or macrocode* environments in these files) and I thought
the same was true for the \makeatletter (only used so that
\scan@allowedfalse could be specified without using \csname), but it turns
out that removing it breaks things. Some robust (?) LaTeX commands (such as
\TeX and \@) are not auto-protected and have expansions that contain
private macros, i.e., macros whose names contain the @ character. When used
in the argument of e.g. the \changes or \SortIndex commands it is their
expansions that are written to the .glo/.idx file and these are only
tokenized correctly if @ is a letter.

I can think of three principal views on this problem:

1. .ind and .gls files are "external" to LaTeX, so they should have normal
catcodes; hence commands like \TeX and \@ should not be expanded when
written to them. (This implies that the LaTeX kernel documentation is in
error, since it has lots of unprotected \TeX's in \changes arguments. Some
\changes commands also contain \@'s, but these definitely are in error and
should be @'s instead since they only occur as \cs{\@ ... )

2. The exact catcodes that should be in force when an .ind or .gls file is
read can be determined by each document separately. (This would be the
"noone's wrong, really" option.)

3. .ind and .gls files are "internal" to LaTeX (like the .aux file) so @
should be a letter when they are inputted.

Does anyone on the team or otherwise have any views on this?

Lars Hellström

ATOM RSS1 RSS2