## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 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 >>]

```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