LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

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

Print Reply
Content-Type: text/plain; charset=us-ascii
Sender: Mailing list for the LaTeX3 project <[log in to unmask]>
From: Andreas Matthias <[log in to unmask]>
Date: Sun, 16 Sep 2007 19:17:20 +0200
In-Reply-To: <[log in to unmask]> (Frank Mittelbach's message of "Sat\, 15 Sep 2007 22\:39\:56 +0200")
MIME-Version: 1.0
Reply-To: Mailing list for the LaTeX3 project <[log in to unmask]>
Parts/Attachments: text/plain (65 lines)
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.