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.
 


-- 
Ulrike Fischer