LATEX-L Archives

Mailing list for the LaTeX3 project


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
Will Robertson <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Fri, 23 Oct 2009 17:04:46 +1030
text/plain (44 lines)
On 23/10/2009, at 4:34 PM, Joseph Wright wrote:

> Will Robertson wrote:
>> On 23/10/2009, at 6:55 AM, Joseph Wright wrote:
>>> This would allow things like:
>>> > \ReturnVariable { \MakeHarmless\ReturnVariable }
>>> % Will absorb one more argument, as required
>>> (using \MakeHarmless from xdoc). That doesn't work at present as  
>>> the return has to be in a toks.
>>> As Lars points out, that is quite a bit more flexible at the cost  
>>> of a little complexity in the syntax.
>> I'm not sure that I see how this is any more flexible?
>> Oh, simply that your argument processor doesn't have to be hard- 
>> coded to use \l_xparse_arg_toks.
>> But hang on, can't you do the same thing at present by just writing
>>    > { \MakeHarmless\l_xparse_arg_toks }
>> ?
> No. \MakeHarmless has the syntax:
> \MakeHarmless <macro> <input>
> where <macro> is used for the output. So if you try to use a toks  
> here, it will fail to work correctly. You'd need a wrapper function,  
> which is what Lars is suggesting we should avoid.

Ah, and then I guess you use V expansion to get the output from  
\ReturnVariable regardless of whether it's a toks or a macro.

Hmmm. Well.

I suppose it's out of the question to have both options, where  
">{\processor}" is a shorthand for, say, ">> \l_xparse_arg_toks  
{\processor}". Or have ">*{\processor}" that uses \l_xparse_arg_tl  

Both of these solutions seem to be more like avoiding the issue than  
solving it :) They certainly don't help simplify the situation.

-- Will