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
Condense Mail Headers

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

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Wed, 10 Sep 2008 14:35:17 +0200
Reply-To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
8bit
In-Reply-To:
Content-Type:
text/plain; charset="iso-8859-1"
From:
"Mittelbach, Frank" <[log in to unmask]>
Parts/Attachments:
text/plain (40 lines)
as always you keep people straight Heiko ... ok so I oversimplified and as far as I'm concerned we are only doing idle talk anyway .-) ... but ...

concerning the approach i outlined as quick and dirty, that one isn't really defining macros on the fly, but rather making

 \foo:noo 

looking like a macro (as it is now) while in practice it is executing \foo using noo to decied out to handle upcoming arguments. as far as i can see that should work in an expandable context like \write since the l3expan stuff is expandable

---------------

the other suggestion I made was to do "on the fly" in the sense that during definition time time only. That is something I still think you can do fairly robust but yes you have to restrict on what is possible and what is constructed or identified, e.g., only explicit comman names would be recognized, \foo:noo but not \csname foo:#1 \endcsname or worse ...

once the definition has be parsed all used variants within its body are defined as well, question of local/global doesn't arrise as the variants should all be globally defined

frank

-----Ursprüngliche Nachricht-----
Von: Mailing list for the LaTeX3 project [mailto:[log in to unmask]] Im Auftrag von Heiko Oberdiek
Gesendet: Mittwoch, 10. September 2008 13:07
An: [log in to unmask]
Betreff: Re: expl3 variant expansion forms

Hello,

On Wed, Sep 10, 2008 at 12:40:38PM +0200, Frank Mittelbach wrote:

>  > When I first read about expl3 years ago, indeed I was naively  > 
> disappointed that the variants weren't constructed "on the fly". But  
> > that's obviously impossible.
> 
> obviously impossible is perhaps too strong a word,

How do you want to define macros on the fly, being in expandable contexts (inside \edef, \write, ...)? Or is the use of these macros forbidden inside expandable contexts?

Next question, how does the "on the fly" process (if such a thing might exist) decide to define a macro globally or locally?
Local stuff making global isn't a good idea generally, thus local definitions remain. But this can be ineffective, if the yet undefined variant is only called inside a separate group.

Yours sincerely
  Heiko <[log in to unmask]>

ATOM RSS1 RSS2