Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with ESMTP id r3UHNTwi021916 for ; Tue, 30 Apr 2013 19:23:30 +0200 Received: from relay2.uni-heidelberg.de ([129.206.210.211]) by mx-ha.gmx.net (mxgmx008) with ESMTP (Nemesis) id 0LiXu8-1V2yed3t3E-00cdsM for ; Tue, 30 Apr 2013 19:23:23 +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 r3UHKkHe032430 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 30 Apr 2013 19:20:46 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r3UED9ho001615; Tue, 30 Apr 2013 19:20:45 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 9255231 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 30 Apr 2013 19:20:45 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id r3UHKjKh020979 for ; Tue, 30 Apr 2013 19:20:45 +0200 Received: from mail-ob0-f176.google.com (mail-ob0-f176.google.com [209.85.214.176]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id r3UHKV2J015963 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Tue, 30 Apr 2013 19:20:35 +0200 Received: by mail-ob0-f176.google.com with SMTP id wd20so650042obb.21 for ; Tue, 30 Apr 2013 10:20:31 -0700 (PDT) X-Received: by 10.60.37.68 with SMTP id w4mr25927364oej.62.1367342431088; Tue, 30 Apr 2013 10:20:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.76.119.73 with HTTP; Tue, 30 Apr 2013 10:20:11 -0700 (PDT) References: <517E353C.5050701@morningstar2.co.uk> <517F75E8.7090900@morningstar2.co.uk> <517F9214.9030103@residenset.net> <517FCFEB.7030007@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1 Message-ID: Date: Tue, 30 Apr 2013 19:20:11 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Michiel Helvensteijn Subject: Re: Behaviour of \SplitArgument with missing input To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <517FCFEB.7030007@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:pHKH56deRw4=:PRjZN99zasodscSPxaX3z4 V1Rp17GjE9phqqr5nrLSAest0L/QWTMToQDLpDk8ULPnEq2BQMJCMSLQRvArhnebQcEKWnE HeWKKBf8J4hvcgZWawGRlWx0Zxze7nzAvmDK29xSCUtygjXsNpgNC6HoODV7RNPfpdQB9CG t7wMM2Ce9es9vcZTBoBTs84uhs7m8yzf1RTYDQjsrjhyAbJVuHr9hT9Kz0HBL27sH3dFBX2 G6XN50DVBkrHe+c5k3MfckkFpGDWQ2M9jSgFGzX+5MnC0/zTtX9HpoD9LVavaXjuByVguql jPcKj593z11f0jXg5bhHgv730CMjw9ffqpQwRTqLKE8iXdt+eX7SJGYmGgXKXWTqMxU5eEl vLRunTp/D1xygeTZ/+9pZTPVo/z67FMFlE3eyF+2he5myFG9JtSQTx4y8r/a6YaTCSgr6OA 2/uQ6mDZyvD5eD8RsrflMuCSoFKvpCsJarTxrr7S2M+QXeYrhDgypk9tv6dOQ4tNszYEf1G kHjH5N6dBFN9TrXlZ3eUrbbNGIyLzLz/oDXiFlVAKT1QkVonHr1R5Bs9iHv8eRQcJM/3jUP rCBHI21s8OoIy42muKbHcaI6zdFAP+xYi5yAFKWVg4eDXFvzVTfONgMGRjT9Bl5G3abQE63 Y5j/Pl+Wf92NlUXJV1bI2txNCe1RXFUt8qP2dfjnKHpnk7wCaEC385M1gmiWLfbH44NeeoN pa6/DrMbMrnCAU9G8v5mHgLj2IuSVscqWdCfNHB+ov/hYqkA5CJEFRDquaiDG2JszWpqY+1 Kd+An7PaR0ieu2CeWDKC0ortM0tx7GFZNcanNHnvdagun7e4ETNfV/AJ+j5beYNCxkD6FGB qofBXc9wSEYCvzsOJ2yGw5qU1KXeSEm8ZNFkodmfa2riQ/FMgGarASkGpo12zyBuePa8Rou HEyjtZkpmb5oUCdYjB6Rx7nQEb865Ch+UEUKHnw/w9JYvH6BBtNwl9+i36Cv6ypjVhYp5T9 bsUWdXpiXZL9IEcDoWjrheRJ8Ss5OEr+ZO+yOfSxZbeD6H32ljG0QT8Itx8kLr+rlMnUg2e 6LFaBRpoviofod/nNm/kkHjA0gOQ+bAm2XhEdCH4zFfKl+TPiFwU3IPWHCn4fHoFhO1CALS dFBvUKrsPi+VMtoxHYJJUd4vBRI/117fZ49hjJWAit9P3tS46nINj8KwyktL/C4icSNj6I8 GFRzWWU8XImXS/xmkcfZdqOs6feSw8Ij1UjkD1LKnHqRpWs2KdVMRIkqoFRlJgWMBKCnumt ILm61HmA3rkgNbt5R3/ayLiqzv0bQSPr/i5z78KM8T+MHfP0fwjcI9UZpMvZpiJfxzmeiq/ G58C40qc1w7kwWdNpT/XdyvGem1SdlrQLc577HnDcvgN8+Xm3rBqNNv0AVlyiBlrkaTSnlN 6LIRIpeQHq1dvScyTmlFYp/V9QoMMKTdOa71deRNBu8heik8Rle8+gO0r8Um3TMlyY5iF/l KWDU+iYWDsnmDb2D1RWS9SK7hzQ6vafWx0OkdpXTHpNx+EY7skL685FKV4drK4T1rKHLUTL HSmNI6AN+SdGA9EflqtbSKVK8fVaYTDUgOkzaUz+6vziYcd9FT8RerUexwg= X-UI-Loop:V01:shd+X2pi2Bo=:aErlPJy7K8AtPKl+KVzT9IqylAhGGpZcChascSkDnJ0= Status: R X-Status: X-Keywords: X-UID: 7200 On Tue, Apr 30, 2013 at 4:06 PM, Joseph Wright wrote: > On where '-NoValue-' 'lives', ...etc... Your problem is that xparse has been trying to cater to two different target groups. It's meant to create document-level commands. But it's not clear what kind of environment it's meant to create them from. On the one hand, the LaTeX3 methodology recommends the use of xparse for document level commands (rather than the LaTeX2 \newcommand or the TeX \def). On the other hand, xparse doesn't offer a LaTeX3 syntax! It was obviously designed to be used independently from expl3. I do understand. The xparse functionality is useful to both LaTeX3 programmers and other LaTeXers. As I see it, the 'correct' way to go about this is to follow your own methodology (I'm a fan of self-reference): * Create a LaTeX3 library which provides xparse functionality; let's call it l3xparse. I'd expect to see functions like \xparse_new_document_command:Nnn, \xparse_split_argument:nn, \xparse_if_no_value:n(TF). Actually, a lot of potential \xparse_... functions probably already exist under a different name, like \bool_if:n(TF) for \IfBoolean(TF). * Expose l3xparse with a thin layer of document-level commands. The result will be what you now call xparse. The cool thing is, you can actually use l3xparse to create that thin layer around itself. Whether the 'no value' placeholder should be different between the two packages is a separate issue. Syntax wise it doesn't matter, since it should never be visible in the code. But I'd probably still make it different, if only to make bugs easier to trace. Cheers! -- www.mhelvens.net