Yes, a system with a positional for common required arguments, but optional as 
named arguments could work well.

 Paul Thompson 

Professor and Senior Scientist
Director, Methodology and Data Analysis Center
Sanford Research
900 W Delaware
Sioux Falls, SD    57104

O: 605-312-6462
M: 618-974-0473
H: 605-332-1587
F: 605-328-0401

909 N. Charleston Circle
Sioux Falls, SD 57110

From: Frank Mittelbach <[log in to unmask]>
To: [log in to unmask]
Sent: Mon, May 16, 2011 5:16:23 PM
Subject: Re: xparse and space skipping

Paul Thompson writes:

> I really wish that the positional thing was somewhat deprecated in favor of
> a named argument approach, which would replace the limit of 9 at some
> point.

sure, but you don't want to force people to write each time

<linebreak | color=normal, pagebreak-allowed = true, vertical-skip = 3pt >



and even if supported by a good syntax editor this isn't making readable

I've written quite a lot about the layer approach that I see for the l3
language where the top-layer should be totally replacable. And I see xparse as
nothing but a reimp (more or less) of the 2e syntax to bridge this world

My personal favorite lies somewhere else, basically in commands with named
attributes for "all of their modifiable features and arguments" but combined
with a positional system that can be layered on top (either by users choice or
by default conventions.

not proposing this as a new syntax but conceptually  something like

\\<color=blue,pagebreak-allowed = false,vertical-skip = 3pt>
\\<color=blue,pagebreak-allowed = false>[3pt]

all being equal.

ie each command having one optional arg structure that contains key/vals + a
defined set of positionals that cover "normal usage aspects" only.
and probably with the positional overwriting any named ones,

\\<color=blue,pagebreak-allowed = false,vertical-skip = 10pt>[3pt]

still giving 3pt space.

too much rambling after midnight, I'll better stop (this is NOT a proposal for
a concrete syntax)