LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

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

Print Reply
Sender: Mailing list for the LaTeX3 project <[log in to unmask]>
Date: Sat, 18 Sep 2010 18:26:06 +0200
Reply-To: Mailing list for the LaTeX3 project <[log in to unmask]>
Message-ID: <[log in to unmask]>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
In-Reply-To: <[log in to unmask]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
From: Lars Hellström <[log in to unmask]>
Parts/Attachments: text/plain (39 lines)
Will Robertson skrev 2010-09-18 08.55:
> On 18/09/2010, at 9:03 AM, Heiko Oberdiek wrote:
>>     \providecommand*{\MakeActiveDef}[1]{%
>>       \catcode`#1\active
>>       \begingroup
>>         \lccode`\~`#1%
>>         \lowercase{\endgroup \def ~}%
>>     }
> Ah, this is nice. Better than what I was thinking of as you no longer need a stray active character floating around.
> I've added these tentatively to expl3 in the "candidates" module under the names \char_active_set:Npn, \char_active_set_eq:NN, and so on.

Note that in order to \lowercase something to an arbitrary character 
code, the something you start from must be ^^@; \lowercase doesn't 
change tokens whose \lccode is 0. This is of course not a problem, 
since you can always set the \catcode of ^^@ locally while defining the 
macro where an active ^^@ is needed:

       \lowercase{\endgroup \def ^^@}%

Another change used above is to make the command argument the 
_character code_ of the active to define, rather than a token with that 
character. It is easy to use ` to make that number if needed, but in 
several cases you rather start out from the character code.

Lars Hellström