[PATCH] Always use \newcommandx instead of \def

Isaac Oscar Gariano isaacoscar at live.com.au
Tue Oct 17 01:22:26 UTC 2023


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​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20231017/d2b49cd2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Always-use-newcommandx-instead-of-def.patch
Type: application/octet-stream
Size: 3232 bytes
Desc: 0001-Always-use-newcommandx-instead-of-def.patch
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20231017/d2b49cd2/attachment.obj>


More information about the lyx-devel mailing list