]> git.lyx.org Git - lyx.git/commitdiff
Improve CAS output of math macros
authorGeorg Baum <baum@lyx.org>
Sun, 29 Mar 2015 11:53:01 +0000 (13:53 +0200)
committerGeorg Baum <baum@lyx.org>
Sun, 29 Mar 2015 11:53:01 +0000 (13:53 +0200)
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
src/mathed/MathMacro.h

index 2ff4dcede7e8967f662589e7633dae6853733527..dd749ca0b79201c62776b1bee0f0ab10e12275d2 100644 (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
index b2d75534d2a04376ba42a573209c31b5de07c0e8..1d4b0ae1b028e778c190954df0e0125bc957a58e 100644 (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;