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.
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.
Riki
--
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel