Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 14 Aug 2009 15:35:43 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7EDZhHc003939 for ; Fri, 14 Aug 2009 15:35:43 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n7EDVAQC010805 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 14 Aug 2009 15:31:10 +0200 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 n7E83ABB010508; Fri, 14 Aug 2009 15:30:57 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 299707 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 14 Aug 2009 15:30:57 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7EDUvsJ010431 for ; Fri, 14 Aug 2009 15:30:57 +0200 Received: from ueamailgate01.uea.ac.uk (ueamailgate01.uea.ac.uk [139.222.131.184]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n7EDUbM7009259 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 14 Aug 2009 15:30:44 +0200 Received: from ueams02.uea.ac.uk (ueams02.uea.ac.uk [139.222.131.131]) by ueamailgate01.uea.ac.uk (8.13.1/8.13.1) with ESMTP id n7EDUdW7020719 for ; Fri, 14 Aug 2009 14:30:39 +0100 Received: from [139.222.201.53] by ueams02.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1Mbwre-0000ej-BX for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 14 Aug 2009 14:30:38 +0100 User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 References: <4A7921CF.5020803@morningstar2.co.uk> <4A7A1505.4040604@residenset.net> <4A7AD930.2090106@residenset.net> <8516B615-51AA-4D90-BB7D-A9E122AA0335@gmail.com> <4A804317.6050909@morningstar2.co.uk> <4A80508F.3030904@elzevir.fr> <0C83E480-14E3-4CD8-924E-3B9EA602E004@gmail.com> <4A810D6E.5050207@morningstar2.co.uk> <13962923-07A3-4C66-B144-E728DBC10183@gmail.com> <4A82BC12.5050901@residenset.net> <4A8318FB.5030507@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Canit-CHI2: 0.00 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN, outgoing) X-CanItPRO-Stream: UEA:outgoing (inherits from UEA:default,base:default) X-Canit-Stats-ID: 28232323 - b71e2d3c537a X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 X-Scanned-By: CanIt (www . roaringpenguin . com) on 139.222.131.184 Message-ID: <4A8566FF.1010805@morningstar2.co.uk> Date: Fri, 14 Aug 2009 14:30:39 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <4A8318FB.5030507@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 14 Aug 2009 13:35:43.0885 (UTC) FILETIME=[1F6D2BD0:01CA1CE4] Status: R X-Status: X-Keywords: X-UID: 5926 Joseph Wright wrote: > My feeling is that \DeclareExpandableDocumentCommand, if implemented, > would be explicitly marked up: > > "In general, document commands should be created using > \DeclareDocumentCommand. \DeclareExpandableDocumentCommand is intended > to be used only in *exceptional* circumstances where a fully-expandable > function is *essential*. It has very restricted processing > possibilities, when compared to the standard version." > > I'd then expect us to basically support s, o, O and m type arguments, > with any one \long forcing all to be long (probably by insisting that > any + has to come before the first arg. spec.). I need to look at how s > and o grabbing is implemented in such cases, so the exact restrictions > are "yet to be determined". I would imagine that there would be no post > processing in this case. (Of course, if there are good examples of where > this needs thinking about, it can be looked at again.) I've taken a quick look at things. I think that, when done by hand you can in principal support rather complex things (for example " s o m m o s m m"), but that this looks horrible if done with an automated system. Further, I don't want to encourage people to use this function unless *necessary*, and so far the number of real cases is *very* small. How would the following sound: - All arguments either short or long (I think this is the only way in any case), with "+" then required in front of each letter if any one is to be long so that the input syntax is clear. So "+m m" or "o +m" raise an error, whereas "+m +o" is allowed. - Support only a subset of the possibilities. With "m ... m" representing "one or more m arguments": = m ... m = t m ... m = D m ... m = t D m ... m only (with short-cuts s, o and O allowed in the same pattern). Perhaps not even the last one? -- Joseph Wright