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
Condense Mail Headers

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

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Thu, 27 Nov 2008 20:40:54 +0000
Reply-To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
7bit
In-Reply-To:
Content-Type:
text/plain; charset=ISO-8859-1
From:
Joseph Wright <[log in to unmask]>
Parts/Attachments:
text/plain (62 lines)
Joseph Wright wrote:
 > I'd suggest the following:
> 
> New	Current Input		Output		Description
> 
> D	D	Varies		Varies		Do not use (kernel only)
> E	E	Single token	Unbraced	One expansion
> N	N	Single token	Unbraced	No expansion
> O	O	Single token	Braced		One expansion
> P	p	Parameters	n/a		Primitive TeX parameters
> W	w	Varies		Varies		"Weird" argument
> X	X	Single token	Braced		Full expansion
> 
> c	c	Braced tokens	Braced		Tokens to csname
> e	e	Braced tokens	Unbraced	Expand once
> f	F	Braced tokens	Braced		False branch
> n	n	Braced tokens	Braced		No expansion
> o	o	Braced tokens	Braced		One expansion
> s	f	Braced tokens	Braced		"Stop" expansion
> t	T	Braced tokens	Braced		True branch
> u	d	Braced tokens	Braced		Double expansion
> v	C	Braced tokens	Braced		To csname, expand once
> x	x	Braced tokens	Braced		Full expansion

Or perhaps by moving D:

New	Current Input		Output		Description

D	-	Single token	Braced		Double expansion
N	N	Single token	Unbraced	No expansion
O	O	Single token	Braced		One expansion
P	p	Parameters	n/a		Primitive TeX parameters
R (or K)D	Varies		Varies		Reserved/kernel only
U	E	Single token	Unbraced	Expand once unbraced
W	w	Varies		Varies		"Weird" argument
X	X	Single token	Braced		Full expansion

c	c	Braced tokens	Braced		Tokens to csname
u	e	Braced tokens	Unbraced	Expand once unbraced
f	F	Braced tokens	Braced		False branch
n	n	Braced tokens	Braced		No expansion
o	o	Braced tokens	Braced		One expansion
s	f	Braced tokens	Braced		"Special" expansion
t	T	Braced tokens	Braced		True branch
d	d	Braced tokens	Braced		Double expansion
e	C	Braced tokens	Braced		To csname, expand once
x	x	Braced tokens	Braced		Full expansion

I should point out that this leaves only u, U, N, R, W and P where the
output is not braced.  The later three I think there is no issue with.
I'd also suggest that "N" (and "n") mean "No change", so again I think
myself this is quite clear.  So the only "special" you really end up
with is u/U.  I'd suggest that one letter than behaves oddly can be
accepted. (It is a relatively rare one, at least for me at the moment.)

Also, to answer my own original question, this would then mean that
Morten's suggestion \exp_after:NN => \exp_args:NE would make sense. I
think that you simple have to accept that it is slightly odd (the whole
\exp_args:NE { \macro } business).
-- 
Joseph Wright

ATOM RSS1 RSS2