LATEX-L Archives

Mailing list for the LaTeX3 project

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

Print Reply
Subject:
From:
Joseph Wright <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Fri, 28 Nov 2008 08:20:07 +0000
Content-Type:
text/plain
Parts/Attachments:
text/plain (60 lines)
Hello Will,

> Thanks for the comprehensive list!
> Your suggestions are good in that they don't involve *too* much change
> from what we're used to. 

That was largely because I'm broadly happy with the situation "as is".
I was thinking about the small-ish number of awkward cases, and trying
to make them clearer.

> In the following table, "W" is a tentative suggestion following from some
> comments by Frank last year; "J" is Joseph's suggestion, and "C" is what
> we've got now.

I did my best to stick with the current thinking (letters are based on
an explanation of what they do).  You could perhaps include "z" in my
list as a complement to "W", with z representing other expansion
possibilities and W being more strictly for delimited arguments.  In
that way, a z argument with always represent one thing, whereas W can
mean any arbitrary list of stuff.

>      t    T    Braced tokens    Braced         True branch
>      f    F    Braced tokens    Braced         False branch
> 
> What would happen if we dropped the true/false flags from the arg spec into
> the function names? E.g.,
>   \tlist_if_in_TF:nn { <tlist> }{ <str> } { <true> }{ <false> }

Speaking from my own experience, I quite like the :T, :F, :TF idea.  The
problem with the above is that \tlist_if_in_TF:nn needs four arguments,
so it should really be \tlist_if_in_TF:nnnn.  I think it is then much
harder to see what is going on.  So if it were down to me I'd keep the
T/F idea, although I'd aim for lower case as these can take braced
arguments. (Speaking of which, I might revise my suggestion again, to
stick with :w in lower case for the same reason: braces are possible for
:w arguments.)

> (Although I suppose there's no reason we couldn't currently write
>   \bool_double_if:NN_TT_TF_FT_FF )

Why not just \bool_if:NN_TT_TF_FT_FF?  A slight abuse of the system, but
this is one of those edge cases where flexibility is needed.

> While we might be able to create a better system than we've got now, is
> it worth it?

Once again, if it were down to me I'd not make more changes than are
really needed.  In that sense, this entire discussion could be somewhat
redundant: things already work reasonably well.  I'd still argue that
\exp_after:NN is not representative of what it does, so using the
current specifiers would prefer \exp_args:NE.  That change at least
should be relatively easy.

If other changes are made, I'd suggest that there will be something of a
"knock on" effect, and so it is only worth doing if the entire result is
more logical (e.g. just changing f => s is not worth it).  Of course, I
think my suggestion is not bad :-)
-- 
Joseph Wright

ATOM RSS1 RSS2