Improve CAS output of math macros

Previously, things like [ name ] where exported for computer algebra systems.
Now, the expanded macros are exported, which may still be wrong, but now the
CAS has at least a chance to understand what was meant.
This commit is contained in:
Georg Baum 2015-03-29 13:53:01 +02:00
parent 34d0e997c4
commit d48855cdfe
2 changed files with 26 additions and 1 deletions

View File

@ -73,12 +73,21 @@ public:
mathMacro_.macro()->lock();
}
// FIXME Other external things need similar treatment.
// write(), normalize(), infoize() and infoize2() are not needed since
// MathMacro uses the definition and not the expanded cells.
///
void maple(MapleStream & ms) const { ms << mathMacro_.cell(idx_); }
///
void maxima(MaximaStream & ms) const { ms << mathMacro_.cell(idx_); }
///
void mathematica(MathematicaStream & ms) const { ms << mathMacro_.cell(idx_); }
///
void mathmlize(MathStream & ms) const { ms << mathMacro_.cell(idx_); }
///
void htmlize(HtmlStream & ms) const { ms << mathMacro_.cell(idx_); }
///
void octave(OctaveStream & os) const { os << mathMacro_.cell(idx_); }
///
void draw(PainterInfo & pi, int x, int y) const {
if (mathMacro_.editMetrics(pi.base.bv)) {
// The only way a ArgumentProxy can appear is in a cell of the
@ -791,6 +800,18 @@ void MathMacro::maple(MapleStream & os) const
}
void MathMacro::maxima(MaximaStream & os) const
{
lyx::maxima(expanded_.cell(0), os);
}
void MathMacro::mathematica(MathematicaStream & os) const
{
lyx::mathematica(expanded_.cell(0), os);
}
void MathMacro::mathmlize(MathStream & os) const
{
// macro_ is 0 if this is an unknown macro

View File

@ -73,6 +73,10 @@ public:
///
void maple(MapleStream &) const;
///
void maxima(MaximaStream &) const;
///
void mathematica(MathematicaStream &) const;
///
void mathmlize(MathStream &) const;
///
void htmlize(HtmlStream &) const;