Content-Type: |
text/plain; charset=us-ascii |
Sender: |
|
Subject: |
|
From: |
|
Date: |
Sun, 16 Sep 2007 19:17:20 +0200 |
In-Reply-To: |
|
MIME-Version: |
1.0 |
Reply-To: |
|
Parts/Attachments: |
|
|
Hello Frank,
thanks for your explanatory notes.
Frank Mittelbach wrote:
> I think you got the subject quite right when you wrote that \tlp_use:N is
> harmful. When we experimented with the various data types it seemed logical at
> first glance to include a "use" for tlps but personally I always was kind of
> sceptical (and usually didn't use it) and your example gives a good reason why
> it isn't really workable.
>
> So I think the spec here should be that tlps hold tokens and their "use" is to
> put the tlp into the input stream directly. after all TeX's model of execution
> is to simply go through the input token list and expand and execute them one
> by one and a tlp is simply a storage bin for such a sequence of input tokens.
I see.
> > Here is an example that actually does what I want it to, but might not
> > be considered clean code since it depends on implementation details:
> >
> > \RequirePackage{l3prop}
> > \ExplSyntaxOn
> >
> > \tlp_new:Nn \a_tlp {aaa}
> > \tlp_new:Nn \b_tlp {bbb\a_tlp}
> >
> > \prop_new:N \a_plist
> > \prop_gput:Nno \a_plist {key} {\b_tlp}
> > \showthe\a_plist
>
> the above gives you
>
> bbb\a_tlp and not bbbaaa
>
> as value.
Yes. Otherwise one would have to use \prop_gput:Nnx.
> if that is what you wanted then I would say with the spec that the
> "use" of tlps is to simply put them into the input stream the above wouldn't
> use implementation details but specification details.
That's good.
> > And then: What's the error message in \tlp_use:N for? It looks
> > so arbitrarily. Probably it's not?
>
> well I don't know when that was added, but i can see some logic behind it (not
> that i think it is worth having really (as i think one should get rid of the
> whole cmd). I think the idea was that a tlp is a storage bin so could never be
> "\scan_stop:", but either "empty" or contains a list of tokens. So
> "\scan_stop:" means something like \tlp_use:c tried to use a tlp that simply
> doesn't exist
Oh, of course. I couldn't figure out where the \scan_stop: should
come from. But then I didn't thought about \tlp_use:c.
Ciao
Andreas
|
|
|