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 p1MKg0hG020477 for ; Tue, 22 Feb 2011 21:42:03 +0100 Received: (qmail 499 invoked by alias); 22 Feb 2011 20:41:55 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 22 Feb 2011 20:41:55 -0000 Received: from relay2.uni-heidelberg.de (EHLO relay2.uni-heidelberg.de) [129.206.210.211] by mx0.gmx.net (mx003) with SMTP; 22 Feb 2011 21:41:55 +0100 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 p1MKaYEV009022 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 22 Feb 2011 21:36:34 +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 p1MKB3dP003584; Tue, 22 Feb 2011 21:35:19 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1287090 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 22 Feb 2011 21:35:19 +0100 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 p1MKZJQX006610 for ; Tue, 22 Feb 2011 21:35:19 +0100 Received: from mail-yw0-f49.google.com (mail-yw0-f49.google.com [209.85.213.49]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p1MKZAex008426 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Tue, 22 Feb 2011 21:35:18 +0100 Received: by ywa8 with SMTP id 8so1463682ywa.22 for ; Tue, 22 Feb 2011 12:35:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.151.41.17 with SMTP id t17mr3890344ybj.147.1298406909334; Tue, 22 Feb 2011 12:35:09 -0800 (PST) Received: by 10.146.86.8 with HTTP; Tue, 22 Feb 2011 12:35:08 -0800 (PST) References: Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Whitelist: Message-ID: Date: Tue, 22 Feb 2011 15:35:08 -0500 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Bruno Le Floch Subject: Re: Fully expandable "x" argument (was "expandable \uppercase...") To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p6i75npGen84eVAEFK/syJmAVhAT3mu30VXXBXVubWw5QTKyWVvBu5v+7fbk 2WURP2W/wkmw19y9Ejp5Znp38PV00hlwJxZB/ig130NWiZ37CATwM/wL8F8pqDqlDaBYO79O0tQH bq4FA==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: 6617 I added a parameter to conversion tables. This allows expandable function mapping through braces, and token replacement, again through braces. I remember seeing some people asking for key-word definitions. Since the code is happy with #, I could code something that would convert \keywords:n { \cs_new:Npn \mybox:nn #{text}...#{width} { \hbox to #{width} {#{text}} } } into \cs_new:Npn \mybox:nn #1...#2 { \hbox to #2 {#1} }. Is that the syntax we want for key-word arguments? Do we want keyword arguments at all? > \tl_nest_map_function:nN {ab{cd{e}f}g} \foo:n Now we have this function and \tl_replace_tokens:nn {ab{cd#{e}~} \foo: } { a { AA } d { \l_foo_tl } \foo: {~} # {hash} } giving AA b {c \l_foo_tl hash {e} ~} ~ -- Bruno