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 p81FkQQL020163 for ; Thu, 1 Sep 2011 17:46:27 +0200 Received: (qmail 4987 invoked by alias); 1 Sep 2011 15:46:21 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 01 Sep 2011 15:46:20 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx008) with SMTP; 01 Sep 2011 17:46:20 +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 p81Fi0B9011433 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 1 Sep 2011 17:44:01 +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 p81Ev9Ab021245; Thu, 1 Sep 2011 17:44:00 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1638111 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 1 Sep 2011 17:44:00 +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 p81Fi0dP014659 for ; Thu, 1 Sep 2011 17:44:00 +0200 Received: from ueamailgate01.uea.ac.uk (ueamailgate01.uea.ac.uk [139.222.131.184]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p81FhlPJ016844 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 1 Sep 2011 17:43:51 +0200 Received: from ueams02.uea.ac.uk (ueams02.uea.ac.uk [139.222.131.131]) by ueamailgate01.uea.ac.uk (8.13.8/8.13.8) with ESMTP id p81Fhl26029420 for ; Thu, 1 Sep 2011 16:43:47 +0100 Received: from [139.222.114.131] by ueams02.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1Qz9Ns-0007hr-Li for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 01 Sep 2011 16:40:52 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:6.0.1) Gecko/20110830 Thunderbird/6.0.1 MIME-Version: 1.0 References: <1rb2vdciob67d$.dlg@nililand.de> <4E5F75C0.8030105@morningstar2.co.uk> X-Enigmail-Version: 1.3.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-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: 05FrrHLNP - 710b0f685e09 - 20110901 X-Scanned-By: CanIt (www . roaringpenguin . com) on 139.222.131.184 Message-ID: <4E5FA851.3040504@morningstar2.co.uk> Date: Thu, 1 Sep 2011 16:44:17 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Internal equivalent of \providecommand? 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 (Sender is in whitelist: joseph.wright@MORNINGSTAR2.CO.UK); Detail=5D7Q89H36p4L00VTXC6D4q0N+AH0PUCnBi0P5cROEGjO+pG7NAH/K+tf9SrVFtpLrKONl 2T9EL4W4U4jgzLbnCcGpk1z/zwmKT/K1fv3lD0=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: 6857 On 01/09/2011 13:53, Ulrike Fischer wrote: > Well my command (it is more a variable so \tl_set would perhaps be > more correct) must exist and that's why I'm using \providecommand: > To make sure *that* is exists. I'm not relying on a "might exist" > command but try to ensure that it is a "does exist" command. > > The problem is that it must exist in various encoding definitions > files for fontenc, in the sty (chessfss) and that its "value" can be > set/changed by the user -- which means that I have no control over > the location where the default value should be set. I have to set it > in various places in such a way that it doesn't overwrite user > settings. That's broadly what I mean by 'LaTeX2e issues': having a value which is used directly at a user level, and in various files, is not good. You don't say if the value might alter again after you've \providecommand'd it. If not, then I'd be tempted to go with something like \tl_new:N \l__tl \cs_if_exist:NTF \ { \tl_set_eq:NN \l__tl \ } { \tl_set:Nn \l__tl { } } On the other hand, if this variable in question has to be user-setable at any point, then you can't use an internal value and have to stick to a manual '\providecommand' approach. (I'm assuming that the variable in question is one that is already required by LaTeX2e constructs, and so 'simply do things differently' is not an option.) -- Joseph Wright