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​

Attachment: 0001-Always-use-newcommandx-instead-of-def.patch
Description: 0001-Always-use-newcommandx-instead-of-def.patch

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

Reply via email to