On Tue, Oct 17, 2023 at 01:22:26AM +0000, 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.
> 
> If you don't like this due to the dependency on the xargs package:
> I'm happy to modify it, to for example:
> 
>   *   Make this patch togglable with a checkbox in the GUI (default will of 
> course by the previous behaviour)
>   *   Execute a dummy \newcommand to get the error message, then do the \def 
> as before
> 
> — Isaac Oscar Gariano​

Thank you Isaac! I'm not too familiar with these technical details so I
can't comment on the patch. It might help if you could send a few
minimal .lyx documents that illustrate the problem with the current
mechanism. In addition to making the current problem very clear, those
.lyx files would also be helpful to add to our tests if we move towards
an implementation similar to what you have in mind. If we add the
feature and the test files then we can protect against regressions.

Thanks for your work on this!

Scott

Attachment: signature.asc
Description: PGP signature

-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to