[PATCH] Always use \newcommandx instead of \def
Enrico Forestieri
forenr at lyx.org
Tue Oct 17 18:50:44 UTC 2023
On Tue, Oct 17, 2023 at 08:29:12PM +0200, Enrico Forestieri wrote:
>
>On Tue, Oct 17, 2023 at 01:10:23PM -0400, Richard Kimberly Heck wrote:
>>
>>On 10/16/23 21:22, Isaac Oscar Gariano wrote:
>>>Currently \def is used for all math macros that have no option
>>>arguments. This has caused me hard to debug errors because it
>>>silently clobbers pre-existing LaTeX commands. On the other hand,
>>>\newcommandx is used if there are optional arguments, and this
>>>gives a helpful error message if the command is already defined.
>>>(if you really do want to override the command, you can just put
>>>\let\mycommand=\undefined in your LaTeX preamble, although with
>>>unicode-math I often have to put this in an \AtBeginDocument).
>>>
>>>This very simple patch just makes LyX always output \newcommandx
>>>instead of \def for math macros.
>>>Unfortunately, this means if you want to have any math macros
>>>you'll always need the xargs package (but it's a small package
>>>release all they way back in 2008 and is included in TeXlive),
>>>hopefully this won't annoy users too much.
>>
>>Since we already depend upon xargs, this won't be a problem.
>>
>>
>>However, I think this might count as a format change, because it
>>changes the exported LaTeX. If so, then it would have to wait for
>>2.5.0. But I'm not sure about this, and perhaps the people who
>>actually know about this will think it's safe. I'd like to hear.
>
>Independently from that, this is a change that needs a lot of testing
>and it is risky to perform near a release.
>
>>You might want to have a look at 76dc2c0d3002db, which is where this
>>code was introduced. It looks to me as if the previous code was
>>actually very similar to what you have, but minus the prefix=\global
>>part, and that we could then just have added that. It's a bit
>>puzzling to me why Stefan did it the way he did, but he's long since
>>not around to answer that question.
>
>I seem to remember that he was actually forced to abandon the
>\newcommandx approach due to some technical reason. Maybe there is a
>bug report with details about this.
Anyway, this actually is the following enhancement request:
https://www.lyx.org/trac/ticket/11185
--
Enrico
More information about the lyx-devel
mailing list