Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Mon, 17 Aug 2009 07:58:15 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7H5wFKu005824 for ; Mon, 17 Aug 2009 07:58:15 +0200 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 n7H5s1KJ003075 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 17 Aug 2009 07:54:02 +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 n7GM1AfK006563; Mon, 17 Aug 2009 07:53:53 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 284494 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Mon, 17 Aug 2009 07:53:52 +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 n7H5rqA4008045 for ; Mon, 17 Aug 2009 07:53:52 +0200 Received: from rv-out-0708.google.com (rv-out-0708.google.com [209.85.198.246]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n7H5rok4024490 for ; Mon, 17 Aug 2009 07:53:54 +0200 Received: by rv-out-0708.google.com with SMTP id c5so657193rvf.10 for ; Sun, 16 Aug 2009 22:53:47 -0700 (PDT) Received: by 10.140.166.20 with SMTP id o20mr2127524rve.75.1250488427257; Sun, 16 Aug 2009 22:53:47 -0700 (PDT) Received: from ?129.127.15.244? ([129.127.15.244]) by mx.google.com with ESMTPS id l31sm14915615rvb.24.2009.08.16.22.53.44 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 16 Aug 2009 22:53:46 -0700 (PDT) Content-Type: multipart/signed; boundary=Apple-Mail-2--549196728; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v935.3) References: <4A7921CF.5020803@morningstar2.co.uk> <4A86949D.3090500@morningstar2.co.uk> <4A886BA8.2000209@morningstar2.co.uk> X-Mailer: Apple Mail (2.935.3) X-Spam-Whitelist: Message-ID: <0417DF73-EC19-4262-B9DF-5C870D47BFCE@gmail.com> Date: Mon, 17 Aug 2009 15:23:46 +0930 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Will Robertson Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <4A886BA8.2000209@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 X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 17 Aug 2009 05:58:15.0746 (UTC) FILETIME=[B64CCA20:01CA1EFF] Status: R X-Status: X-Keywords: X-UID: 5929 --Apple-Mail-2--549196728 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit On 17/08/2009, at 5:57 AM, Joseph Wright wrote: >> If you consult the LaTeX3 SVN, you'll see that I've now committed a >> lot >> of what has been discussed here to the real xparse module, removing >> xparse-alt and doing a little tidying of other xpackages to fit the >> updated model. > > Further to this, an implementation for > \DeclareExpandableDocumentCommand > is now included in xparse in the SVN. In the end, it turned out that > with a "daisy-chain" implementation multiple optional arguments are > still okay in fully expandable commands. Hi Joseph, Thanks for the great efforts here! I did a once-over on the documentation (and made a couple of minor adjustments) and everything seems logical to me. To summarise the changes from the old xparse: - >{P} replaced by + - >{W} dropped, since it is applied automatically when necessary (final optional argument(s)) - c dropped, replaced by 'd()' - g and G{} added: optional braced argument - d** and D**{} added: pair-delimited argument - u* and U*{} added: post-delimited argument - >{\processor} added: "transforming" input before it's sent through to the main macro code - Expandable document commands I think that's it. Nice to see the expandable document command definitions in there; I suppose time will tell whether they turn out to be useful or not... The only thing that sort of seems weird to me is that d** uses single tokens only as delimiters whereas u* allows multiple tokens. Is there a major technical reason that the d argument couldn't accept something like d{<<}{>>} for \foo<<1>> ? Actually, I don't care at all to support this sort of usage, but it just seems odd to have single tokens for one and multiple tokens for the other. Only a comment; I don't think anything needs to be done about it, at least at this stage. Lars, do you have any comments about whether the new xparse is something you'd like to use in your own work? Your code, of course, was the big motivation for the "argument processor" idea and I'd hope that while we didn't manage to fit everything from xdoc2l3 into xparse there's still enough that you'd like to use. Best regards, Will --Apple-Mail-2--549196728 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGITCCAtow ggJDoAMCAQICECN4qE5kBXLk2f/jVDfSZPwwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDEyOTA1NDkxNVoXDTEwMDEyOTA1NDkx NVowQjEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEfMB0GCSqGSIb3DQEJARYQd3Nw cjgxQGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0BeSiAbKuqxeRN p2qn/m8ZL+xawr/WXyPgEF0FipWgRe9l3sMXcFHokcUu0xOc97R7xkUsGcQ8EyybGHuWey6x7X1Y xJZXnoAxqcaG+eREytoYGMIKs6BhEEogLVb2ERw3lQNVnOzanSFeGo8suMAN4zzCtqAjJiA1ph7h 1pksTgECYK5EiIZbFsB6zSDa8crNk404z1CfIA6YO8ezvjbDda+D0r8NU2tq9WS9F5IaG+bW71Ya JegEcSZ+WF6Z+fs2MUMCLLu8n50Er0nuy4dxOmkdMRNfbeaM39dsEwjAAgcQnvPNmlJ215nZWQRH 49YowtSBOYUYq0ZylWRE6x8CAwEAAaMtMCswGwYDVR0RBBQwEoEQd3NwcjgxQGdtYWlsLmNvbTAM BgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBQUAA4GBABaRP8+PDYpKIRGlFgjs1HvMmJnqu4reSqp+ ulv0zJZIjIbX/sLbIsnecl9nycHfhubPdc+hDfpCqNZ2+NGQHwwoyuDl7KOdTY0BDPp3eJLio7ob EYEr0H8rFwqfx2LWJ0G6nMhNEjLvs7sFKyriSpk++TWJnnsf86xai5m0tlOwMIIDPzCCAqigAwIB AgIBDTANBgkqhkiG9w0BAQUFADCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2Fw ZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UE CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNv bmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu Y29tMB4XDTAzMDcxNzAwMDAwMFoXDTEzMDcxNjIzNTk1OVowYjELMAkGA1UEBhMCWkExJTAjBgNV BAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h bCBGcmVlbWFpbCBJc3N1aW5nIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEpjxVc1X7 TrnKmVoeaMB1BHCd3+n/ox7svc31W/Iadr1/DDph8r9RzgHU5VAKMNcCY1osiRVwjt3J8CuFWqo/ cVbLrzwLB+fxH5E2JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTXp6a7n2XRxSpUhQ9IBH+nttE8YQRA HmQZcmC3+wIDAQABo4GUMIGRMBIGA1UdEwEB/wQIMAYBAf8CAQAwQwYDVR0fBDwwOjA4oDagNIYy aHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVBlcnNvbmFsRnJlZW1haWxDQS5jcmwwCwYDVR0P BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFQcml2YXRlTGFiZWwyLTEzODANBgkqhkiG 9w0BAQUFAAOBgQBIjNFQg+oLLswNo2asZw9/r6y+whehQ5aUnX9MIbj4Nh+qLZ82L8D0HFAgk3A8 /a3hYWLD2ToZfoSxmRsAxRoLgnSeJVCUYsfbJ3FXJY3dqZw5jowgT2Vfldr394fWxghOrvbqNOUQ Gls1TXfjViF4gtwhGTXeJLHTHUb/XV9lTzGCAxAwggMMAgEBMHYwYjELMAkGA1UEBhMCWkExJTAj BgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJz b25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhAjeKhOZAVy5Nn/41Q30mT8MAkGBSsOAwIaBQCgggFv MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA5MDgxNzA1NTM0Nlow IwYJKoZIhvcNAQkEMRYEFN6m+tjzbuP4Fo+f6UldM1o0eXENMIGFBgkrBgEEAYI3EAQxeDB2MGIx CzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYD VQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQI3ioTmQFcuTZ/+NUN9Jk /DCBhwYLKoZIhvcNAQkQAgsxeKB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29u c3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNz dWluZyBDQQIQI3ioTmQFcuTZ/+NUN9Jk/DANBgkqhkiG9w0BAQEFAASCAQBaT0/UCyeHWz2WYHtB x90pD1b8RMjb/FSzM8jcxUMV89DnzyU/6e+oHbSYvu6uD7Zsndfo9XJuBjqyg+cjAPkwDGEKb/Dy Ylmi0qCCOCFZBA7ABJcgwoYQPSawaDJeLjjwgaDso7v8mG3eQrvm6boajijE/z+rfQzLvg2ZpteM Y5iPH0IGFxT3k4J0D8NwRY66Jzkm2SOb2p2QcXd9iUQZeDk1Goizag4sEV5rQTc8z5/pbChjoGVk zbkBKL1TBssMQOfWjnz203VFtAyCRd+G9wHX+5yRPyV0rylEb32M7/9urJAZcwGExiPs9KaaR5YM laPpIiJsiThUxkbwv6UoAAAAAAAA --Apple-Mail-2--549196728--