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 p81EsR5I007443 for ; Thu, 1 Sep 2011 16:54:29 +0200 Received: (qmail 6224 invoked by alias); 1 Sep 2011 14:54:22 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 01 Sep 2011 14:54:21 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx102) with SMTP; 01 Sep 2011 16:54:21 +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 p81Epg1m019785 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 1 Sep 2011 16:51:42 +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 p81ElV7d021245; Thu, 1 Sep 2011 16:51:41 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1636156 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 1 Sep 2011 16:51:41 +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 p81EpfD0007061 for ; Thu, 1 Sep 2011 16:51:41 +0200 Received: from ix.urz.uni-heidelberg.de (cyrus-portal.urz.uni-heidelberg.de [129.206.100.176]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p81EpeJo024941 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 1 Sep 2011 16:51:41 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by ix.urz.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p81Epe32019086 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 1 Sep 2011 16:51:40 +0200 Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p81EpSme024803 for ; Thu, 1 Sep 2011 16:51:31 +0200 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Qz8by-0000pL-El for LATEX-L@URZ.UNI-HEIDELBERG.DE; Thu, 01 Sep 2011 16:51:22 +0200 Received: from pd954bab7.dip.t-dialin.net ([217.84.186.183]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 01 Sep 2011 16:51:22 +0200 Received: from news3 by pd954bab7.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 01 Sep 2011 16:51:22 +0200 X-Injected-Via-Gmane: http://gmane.org/ Lines: 47 References: <1rb2vdciob67d$.dlg@nililand.de> <4E5F75C0.8030105@morningstar2.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: pd954bab7.dip.t-dialin.net User-Agent: 40tude_Dialog/2.0.15.41de X-Spam-Flag: No X-Envelope-From: X-Spam-Status: No, hits=-4.20 required=5 tests=AWL,BAYES_00,L_P0F_Linux,RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS, URIBL_RHS_DSN,URIBL_RHS_POST Message-ID: <1l4jyzmu3jnoc.dlg@nililand.de> Date: Thu, 1 Sep 2011 16:51:03 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Ulrike Fischer Subject: Re: Internal equivalent of \providecommand? To: LATEX-L@listserv.uni-heidelberg.de Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (eXpurgate); Detail=5D7Q89H36p6sJLDpZh614LdjtwLz6vwIXMxlC9YdD1JC1y8n9n+0hOLqNnjlnZOe8TSOR IC4E8622Ebbym9u0Adng9zuQgpg6kC0+jmGRsM3/LeDn6m935hvJWKW0e/Uj86vpdfLdnpybwHUc v31aLhxRwJ/c2KKi+gOs0+ZKMFb4q8+sgGG7HIpH+JdD+Dw+XHo5Ih94x0=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: 6856 Am Thu, 1 Sep 2011 16:07:07 +0200 schrieb Philipp Stephani: > 2011/9/1 Ulrike Fischer : >> Am Thu, 1 Sep 2011 13:08:32 +0100 schrieb Joseph Wright: >> >>> On 01/09/2011 11:57, Ulrike Fischer wrote: >>>> Is there an expl3 equivalent for a \providecommand? >>>> >>>> I could do >>>> >>>> \cs_if_free:NT \mycommand {\cs_set:Npn \mycommand {...}} >>>> >>>> but I don't find it very elegant to have to type \mycommand twice. >> >>> At the code level, the answer is 'no'. Within a module, we'd expect all >>> functions to be well-defined: if they 'might' be needed, they should >>> exist. (See for example the fact that a lot of internal aux functions >>> are created simply to mark the name as taken.) >> >>> Now, there is the reality that LaTeX2e stuff is often not so >>> well-designed and does sometime rely on 'might exist' functions. There, >>> I'm afraid the construct you've pointed to is the way to go. >> >> >> 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. > > Wouldn't it be more appropriate to use a key-value option with default > value then? What would it help? I still would have the problem that this could overwrite a setting of a user. -- Ulrike Fischer