On Mon, 17 Sep 2007 18:21:11 +0200 Georg Baum <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote: > > > Modified: lyx-devel/trunk/src/mathed/MathFactory.cpp > > URL: > > > http://www.lyx.org/trac/file/lyx-devel/trunk/src/mathed/MathFactory.cpp?rev=20290 > > > ============================================================================== > > --- lyx-devel/trunk/src/mathed/MathFactory.cpp (original) +++ > > lyx-devel/trunk/src/mathed/MathFactory.cpp Sat Sep 15 18:39:51 2007 @@ > > -260,7 +260,7 @@ > > > > MathAtom createInsetMath(docstring const & s) > > { > > - //lyxerr << "creating inset with name: '" << s << '\'' << endl; > > + //lyxerr << "creating inset with name: '" << to_utf8(s) << '\'' << > > endl; > > latexkeys const * l = in_word_set(s); > > if (l) { > > docstring const & inset = l->inset; > > @@ -372,6 +372,10 @@ > > return MathAtom(new InsetMathFrac(InsetMathFrac::NICEFRAC)); > > if (s == "unitfrac") > > return MathAtom(new InsetMathFrac(InsetMathFrac::UNITFRAC)); > > + if (s == "unitfracthree") > > + return MathAtom(new InsetMathFrac(InsetMathFrac::UNITFRAC3, > > 3)); > > + if (s == "unit") > > + return MathAtom(new InsetMathFrac(InsetMathFrac::UNIT)); > > Mathed does not work like this, you cannot use \unitfracthree here. What you > did created a new command \unitfracthree that can be read from .lyx files, > but that is never written. And I would be surprised if \unit[a]{b}{c} is > read correctly from LyX files. > > To fix this, you need to remove _all_ occurences of \unitfracthree from the > code and create a special case for \unit in MathParser.cpp (see \sqrt for > an example, although a separate inset is probably not needed). > > In general, if you implement a new math command you have no choice but to > handle all possible arguments. Otherwise you get a nasty situation that > certain things are impossible to enter, see the xymatrix bugs in bugzilla. > > > Georg Oops. Too difficult. Probably best to revert it. - Martin