On 11/17/2014 04:51 PM, Georg Baum wrote:
Jean-Marc Lasgouttes wrote:

The answer really depend on the macro you want to define. In the case of
\pmod, I did not find any inset (in src/mathed) that seems to be similar
enough. You want an inset with only one cell, like in
InsetMathDecoration, which implements accents. So the inset would be a
/very/ simplified version of this.

However, it seems a bit strange to create a new inset class for this
simple example. I am not sure what the simplest solution would be. A
math macro inset gives a not too bad interface, so a solution might be
to have a way to define a set of default macros that are known to LyX
from start. Then the macro inset machinery would be sue for the display
part.

What do the others think?
Something like a set of default macros is already implemented. It is read
from lib/symbols (where \pmod is already defined, that is why you don't see
it in the sources). Unfortunately the syntax of lib/symbols is completely
undocumented, but if you want to define a new predefined macro named \foo,
you can do it like this:

\def\foo{a^2+b^2} myfeature

The first token is the "display" part of the macro and must not contain
spaces. The second token is a feature from LaTeXFeatures.cpp which can
either be a package (e.g. "mathtools"), or use a hard coded definition in
LaTeXFeatures.cpp (e.g. "binom").

Maybe this is enough for your use case. If not, please give a more detailed
example what you want to do, then we might be able to help.

You know what would be really cool? The ability to custom-define default macros in a module, including ones with arguments.

Of course, one can include a file with a bunch of macro definitions, but this would allow some to be included in a text class, even.

Richard

Reply via email to