From d48855cdfe1171efd908f2223c6c097ec91344c9 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Sun, 29 Mar 2015 13:53:01 +0200 Subject: [PATCH] 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. --- src/mathed/MathMacro.cpp | 23 ++++++++++++++++++++++- src/mathed/MathMacro.h | 4 ++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/mathed/MathMacro.cpp b/src/mathed/MathMacro.cpp index 2ff4dcede7..dd749ca0b7 100644 --- a/src/mathed/MathMacro.cpp +++ b/src/mathed/MathMacro.cpp @@ -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 diff --git a/src/mathed/MathMacro.h b/src/mathed/MathMacro.h index b2d75534d2..1d4b0ae1b0 100644 --- a/src/mathed/MathMacro.h +++ b/src/mathed/MathMacro.h @@ -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; -- 2.39.2