On Fri, Aug 14, 2009 at 03:39:11AM +0200, Uwe Stöhr wrote:

>  > 1. Macro name clashes can be detected if lyx uses \newcommand.
>  >    If a package uses the same macro name as one of the lyx macros, and
>  >   macros are defined through \providecommand, lyx takes for granted
>  >   that the macro exists and that it does the right thing. This maybe so
>  >   in some cases (the cases where \providecommand is indeed to be used),
>  >   but if the macro is wrong, bugs (maybe obscure bugs) arise.
> 
> Looking at my patch you see that we define LyX-specific commands that
> therefore have "lyx" in their names (\lyxadded and the like). At the moment
> we use \newcommand, when there would be a package that uses the same macro
> name as in our definitions, the document would be uncompilable. However this
> was never reported at our bug tracker and I cannot remember a case on the
> mailing list.
> 
>  > 2. The macros defined by lyx come before the user defined ones, so the
>  >   user has anyway to use \renewcommand for changing the definition and
>  >   thus \providecommand does not help here.
> 
> The future plan is to split the user preamble so that the user can decide
> what will be output before and what after the LyX preamble. Georg proposed
> http://www.lyx.org/trac/ticket/5031 For this feature we would have to switch
> to \providecommand to avoid to introduce a feature where the user can also
> disable certain LyX command definitions. I cannot see a drawback using
> \providecommand.
> 
>  > 3. It is not clear to me how and why \providecommand helps with tex2lyx.
> 
> You are right, I was still thinking with my tex2lyx preamble handling that I
> reverted some days ago.
> 
> There's another point: uniformity. For some definitions we already use
> \providecommand, for some \newcommand. We should be more consistent if
> possible. Jürgen, JMarc?

I still maintain that there is no valid reason ATM to indiscriminately
switch to \providecommand.

-- 
Enrico

Reply via email to