Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id p06JXOCU019912 for ; Thu, 6 Jan 2011 20:33:26 +0100 Received: (qmail 7921 invoked by alias); 6 Jan 2011 19:33:16 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 06 Jan 2011 19:33:16 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx019) with SMTP; 06 Jan 2011 20:33:16 +0100 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id p06JVKlc004276 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 6 Jan 2011 20:31:21 +0100 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p06JB3CU001194; Thu, 6 Jan 2011 20:31:13 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 819630 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 6 Jan 2011 20:31:13 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p06JVDZ0020473 for ; Thu, 6 Jan 2011 20:31:13 +0100 Received: from web82005.mail.mud.yahoo.com (web82005.mail.mud.yahoo.com [66.163.178.249]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with SMTP id p06JUuD8003773 for ; Thu, 6 Jan 2011 20:30:57 +0100 Received: (qmail 4789 invoked by uid 60001); 6 Jan 2011 19:30:55 -0000 X-YMail-OSG: _zjR1igVM1lcoU1m9mG4B5woCkOxYu9PncI9ZoXhFLcn.If ya3ux12rpPxoopEUtUxP6.QXwSpyBCoecjcXQjxrNmW0VovZnqDmxvx4rTKq BrOTOze986hqAv6ZtJZ0z9PSBk9dfrt8rICFMlNqur5Xlu5PHj5p0F76sotf RrxR4F49m7_123R4NQE2v.jPxTCdD3M_5DQcPF53.dw2BrvBoXFf7J2ZhDi2 CVSi3kSAnegCotVJVwyaSIJmqSdmFgqNmPFMdgplpBb3_pXM1tkxvJqmnhiE 0KIKi89ASt.2gZNXrOcSTSOOxYVI0CF4Lgcrv5HIFxOssAxz6zJrLLpn.KiN _nxEPzfgREvk8PnQ2k9buhT2cc8eIZ0pUT0PnWsWWQHXHm5Y- Received: from [206.208.223.1] by web82005.mail.mud.yahoo.com via HTTP; Thu, 06 Jan 2011 11:30:55 PST X-Mailer: YahooMailRC/553 YahooMailWebService/0.8.107.285259 References: <1713005794.1189899.1293724895711.JavaMail.fmail@mwmweb012> <19749.63653.743551.563511@morse.mittelbach-online.de> <743624.60246.qm@web82001.mail.mud.yahoo.com> <19750.1519.122559.885344@morse.mittelbach-online.de> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="0-1337557118-1294342255=:3455" Message-ID: <846058.3455.qm@web82005.mail.mud.yahoo.com> Date: Thu, 6 Jan 2011 11:30:55 -0800 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Paul Thompson Subject: Re: variable opt arg delimiters [was: Defining a ...] To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <19750.1519.122559.885344@morse.mittelbach-online.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p6i75npGen84eVAEFK/syJmiNoEBJhgjYKpglu1TZLLw7xMZnJMXwBFy+Sxe D/AUQGQOurK3ezVJqUBFH0uN5pjmWoMfpyHp51n0Chsu2hOBVYSk7e/8Hk0k6t5Z2q/LuQeyq+iY atwPw==V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 6543 --0-1337557118-1294342255=:3455 Content-Type: text/plain; charset=us-ascii There are of course many issues, backward compatability not least among them. I use SAS a lot. They have a macro system which is very very similar to the command system of LaTeX. What they did was set up a structure in which positional arguments for macros (commands) would be found as well as named arguments. So, if you had a macro call, you could have both. The positional arguments would be first (arguments without = signs) and then you could have named keyword-style arguments. That way, they gradually moved the entire process from the positional to the keyword-oriented, while maintaining backward compatability. Paul Thompson ________________________________ From: Frank Mittelbach To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE Sent: Thu, January 6, 2011 12:11:59 PM Subject: Re: variable opt arg delimiters [was: Defining a ...] Paul Thompson writes: > The optional argument thing could be better handled by using named arguments. > So, for \parbox, which has optional and mandatory arguments, we currently have > > > \parbox[pos][height][inner-pos]{width}{text} > > This is mindlessly confusing in many cases. Why not have > > \parbox{pos=t,height=something,innerpos=t,width=something}{text} > > > The use of named arguments is vastly superior to positional arguments, > especially when optional arguments can be specified. ah, the old argument between verbosity an ability to remember. Don't get me wrong, I side with you on that one Paul, but there are times where I prefer either. In any case this is one of the reasons why we worked hard on separating the different layers so that a clean replacement of top-level syntax is always being possible and easy. In that respect xparse is nothing other than providing one such interface (resembling the LaTeX2e one, but generalized) as an example, but it was never meant at "the interface" for a future LaTeX But it is, in my opinion, a good start while everything is happening on top of the 2e context anyway. and for a while at least this is where the expl language and anything built from it will live. frank --0-1337557118-1294342255=:3455 Content-Type: text/html; charset=us-ascii
There are of course many issues, backward compatability not least among them. 

I use SAS a lot.  They have a macro system which is very very similar to the command system of LaTeX.  What they did was set up a structure in which positional arguments for macros (commands) would be found as well as named arguments.  So, if you had a macro call, you could have both.  The positional arguments would be first (arguments without = signs) and then you could have named keyword-style arguments.  That way, they gradually moved the entire process from the positional to the keyword-oriented, while maintaining backward compatability.
 
Paul Thompson



From: Frank Mittelbach <frank.mittelbach@LATEX-PROJECT.ORG>
To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE
Sent: Thu, January 6, 2011 12:11:59 PM
Subject: Re: variable opt arg delimiters [was: Defining a ...]

Paul Thompson writes:
> The optional argument thing could be better handled by using named arguments. 
> So, for \parbox, which has optional and mandatory arguments, we currently have
>
>
> \parbox[pos][height][inner-pos]{width}{text}
>
> This is mindlessly confusing in many cases.  Why not have
>
> \parbox{pos=t,height=something,innerpos=t,width=something}{text}
>

> The use of named arguments is vastly superior to positional arguments,
> especially when optional arguments can be specified. 

ah, the old argument between verbosity an ability to remember. Don't get me
wrong, I side with you on that one Paul, but there are times where I prefer
either.

In any case this is one of the reasons why we worked hard on separating the
different layers so that a clean replacement of top-level syntax is always
being possible and easy. In that respect xparse is nothing other than
providing one such interface (resembling the LaTeX2e one, but generalized) as
an example, but it was never meant at "the interface" for a future LaTeX

But it is, in my opinion, a good start while everything is happening on top of
the 2e context anyway. and for a while at least this is where the expl
language and anything built from it will live.

frank
--0-1337557118-1294342255=:3455--