Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Mon, 17 Aug 2009 13:35:17 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7HBZGhK016382 for ; Mon, 17 Aug 2009 13:35:16 +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 n7HBVLfM001559 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 17 Aug 2009 13:31:21 +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 n7HBQtMm006563; Mon, 17 Aug 2009 13:31:17 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 286903 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Mon, 17 Aug 2009 13:31:17 +0200 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 n7HBVHL1008622 for ; Mon, 17 Aug 2009 13:31:17 +0200 Received: from av10-2-sn2.hy.skanova.net (av10-2-sn2.hy.skanova.net [81.228.8.182]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7HBUw4j032650 for ; Mon, 17 Aug 2009 13:31:02 +0200 Received: by av10-2-sn2.hy.skanova.net (Postfix, from userid 502) id 3FEF237EC7; Mon, 17 Aug 2009 12:59:21 +0200 (CEST) Received: from smtp4-2-sn2.hy.skanova.net (smtp4-2-sn2.hy.skanova.net [81.228.8.93]) by av10-2-sn2.hy.skanova.net (Postfix) with ESMTP id 22FAA37E4E for ; Mon, 17 Aug 2009 12:59:21 +0200 (CEST) Received: from Kuben.local (90-230-192-94-no86.tbcn.telia.com [90.230.192.94]) by smtp4-2-sn2.hy.skanova.net (Postfix) with ESMTP id C100937E48 for ; Mon, 17 Aug 2009 12:59:20 +0200 (CEST) User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 References: <4A7921CF.5020803@morningstar2.co.uk> <4A86949D.3090500@morningstar2.co.uk> <4A886BA8.2000209@morningstar2.co.uk> <0417DF73-EC19-4262-B9DF-5C870D47BFCE@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id n7HBVHL1008623 Message-ID: <4A893816.2090807@residenset.net> Date: Mon, 17 Aug 2009 12:59:34 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: =?ISO-8859-1?Q?Lars_Hellstr=F6m?= Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <0417DF73-EC19-4262-B9DF-5C870D47BFCE@gmail.com> 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 11:35:17.0306 (UTC) FILETIME=[CB49F9A0:01CA1F2E] Status: R X-Status: X-Keywords: X-UID: 5932 Will Robertson skrev: > 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. Haven't had time to review the code yet, I've only just downloaded it. Will get back to you when I have had a look at it. (I'm especially curious to how on earth you managed to do optional arguments at expand-time.) Have latex'ed xparse.dtx, though, and it throws a few errors in the index. I think those are due to \xparse_add_type_>:, as the ">" is special to makeindex, forcing an extra index level where none was intended. Harmless character sequences avoids that trap. ;-) In the meantime, here are some technical issues to consider. 1. What happens if I do this: \DeclareDocumentCommand{\foo}{ +O{\par} m +O{\par} }{ ... } ? One technical problem I saw in xdoc2l3 was that of simultaneously having \par tokens in defaults and non-long arguments. 2. What happens (for the various argument types) when TeX fails to grab an argument? (Failures happen for long arguments when encountering a mismatched right brace, and for short argument also when encountering a \par token.) To keep in line with TeX, everything up to the ungrabbable token should disappear, but an uncareful implementation could leave other tokens in place as well, which would subject the user to mysterious additional errors. Lars Hellström