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

 Subject: Re: \int_eval:n versus \dim_eval:n/skip_eval:n [was Re: l3luatex module] From: Will Robertson <[log in to unmask]> Reply To: Mailing list for the LaTeX3 project <[log in to unmask]> Date: Thu, 6 Jan 2011 18:15:33 +1030 Content-Type: text/plain Parts/Attachments: text/plain (31 lines)
On 06/01/2011, at 9:24 AM, Frank Mittelbach wrote:

> I sure have changed my mind several times about how to think about :nox
> argument specs. but these days I'm fairly convinced that one should without
> execption think of them (and describe them) as manipulating the arguments
> prior to passing them to the base function. So \int_eval:x would first do the
> "edef" expansion on the argument and then pass it to \int_eval:n which would
> do what?
>
> no I think it is perfectly okay to have commands that do something with their
> "n" arguments in fact all of them do something with the argument content only
> in some cases it involves expansion which you could also do "prior" to calling
> the command using the ":nox" approach

Absolute agreement from me; I think this is perhaps the only logical way to consider the whole argument scheme for expl3.

(Earlier ideas did throw around notation for indicating various register inputs but as you say above things just get a bit messy.)

> I think what is wrong is what you initially pointed out that \dim_eval:n
> behaves differently ... but I think that would be best resolved by adding
> \tex_the:D in the right place. At least that my current thinking on the topic.

Oh! I was confused -- for some reason it was in my head that using \the before \glueexpr would strip it of its "plus minus" components. But this is not the case, of course.

\the\glueexpr 1pt plus 1pt minus 1pt + 2pt plus -1pt minus 1pt\relax

So I agree with you that adding \tex_the:D before \dim_eval and \skip_eval (and \muskip_eval which doesn't yet exist I think but it probably should) is the best idea.

-- Will