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 p1GBADVr019495 for ; Wed, 16 Feb 2011 12:10:14 +0100 Received: (qmail 14464 invoked by alias); 16 Feb 2011 11:03:28 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 16 Feb 2011 11:03:24 -0000 Received: from relay2.uni-heidelberg.de (EHLO relay2.uni-heidelberg.de) [129.206.210.211] by mx0.gmx.net (mx081) with SMTP; 16 Feb 2011 12:03:24 +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 p1GB1Wol024172 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 16 Feb 2011 12:01:33 +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 p1GAihS9018477; Wed, 16 Feb 2011 12:01:31 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1420981 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 16 Feb 2011 12:01:31 +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 p1GB1VsW004512 for ; Wed, 16 Feb 2011 12:01:31 +0100 Received: from ueamailgate02.uea.ac.uk (ueamailgate02.uea.ac.uk [139.222.131.185]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p1GB1Mhb023851 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 16 Feb 2011 12:01:30 +0100 Received: from ueams02.uea.ac.uk (ueams02.uea.ac.uk [139.222.131.131]) by ueamailgate02.uea.ac.uk (8.13.8/8.13.8) with ESMTP id p1GB1KtR029055 for ; Wed, 16 Feb 2011 11:01:20 GMT Received: from [139.222.112.172] by ueams02.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1Ppf8F-0001dc-Co for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 16 Feb 2011 11:01:15 +0000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 References: <4028010D-1144-415D-A984-E3684A7E3EDE@gmail.com> <4D5B770A.2000401@morningstar2.co.uk> <20110216105124.GA5579@oberdiek.my-fqdn.de> X-Enigmail-Version: 1.1.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN, outgoing) X-Spam-Score: 0.00 () [Hold at 10.00] SPF(none,0) X-CanIt-Geo: ip=139.222.131.131; country=GB; region=I9; city=Norwich; latitude=52.6333; longitude=1.3000; http://maps.google.com/maps?q=52.6333,1.3000&z=6 X-CanItPRO-Stream: UEA:outgoing (inherits from UEA:default,base:default) X-Canit-Stats-ID: 70225437 - ca3824c0b64e - 20110216 X-Scanned-By: CanIt (www . roaringpenguin . com) on 139.222.131.185 X-Spam-Check-Skipped: Loadavg 14.91 Message-ID: <4D5BAE81.4020904@morningstar2.co.uk> Date: Wed, 16 Feb 2011 11:01:21 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Expandable versions of \uppercase, \MakeUppercase, \lowercase, \MakeLowercase To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <20110216105124.GA5579@oberdiek.my-fqdn.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p4U4jfdfC5HDevlx1X2sAZgP9e9F2VTUYI/FLDAh5vXTVin+wznIYULO4W8f iu4UIHVeutAdNYNyhIIRpjhB4NMqCt7OvFNAZ1Wfx4FZJc627ijqKNPBMry42D3C0vBPyK5et6Ko fYsJQ==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: 6603 On 16/02/2011 10:51, Heiko Oberdiek wrote: > On Wed, Feb 16, 2011 at 07:04:42AM +0000, Joseph Wright wrote: > >> Again, post the code :-) I wonder what exactly you mean here. With the >> \expanded primitive (pdfTeX 1.50 or LuaTeX) you can do >> >> \edef\a{\expanded{\def\a{b}}} >> >> and have \a => 'b'. > > I doubt it. \edef is already expanding, \def is expanded > but it is not executed as primitive. Depending on the previous > definition of \a you get: > * \a previously undefined: error message > * \a defined, unexpandable: \a is macro => \def\a{b} > * \a defined, expandable: \a is expanded until only non-expandable > tokens are left or there is an error. In case of success, > \a is a macro that starts with "\def", followed by the result > of fully expansion of "\a{b}..." > > In most cases \edef\a{\def\a{b}} and > \edef\a{\expanded{\def\a{b}}} are the same, but there might > be differences, if \a is expandable and \noexpand or > \the are used. I must have misunderstood how \expanded works. I thought it could pull off assignments within \edef, in the same way you can do with \directlua and the appropriate Lua. -- Joseph Wright