]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathStream.cpp
Produce a cleaner latex output by avoiding \lyxmathsym when in text mode
[lyx.git] / src / mathed / MathStream.cpp
index e6d6f52522eeb2a713ca7c525f3b69949778507d..8677358b55f9c653931781cd9dbb0abd87679c33 100644 (file)
 
 #include <config.h>
 
+#include "MathStream.h"
+
 #include "InsetMath.h"
-#include "MathArray.h"
+#include "MathData.h"
 #include "MathExtern.h"
-#include "MathStream.h"
 
-#include "support/lyxalgo.h"
 #include "support/textutils.h"
+#include "support/docstring.h"
 
+#include <algorithm>
+#include <cstring>
+#include <ostream>
 
-namespace lyx {
-
-using std::strlen;
-
+using namespace std;
 
+namespace lyx {
 
 
 //////////////////////////////////////////////////////////////////////
@@ -36,7 +38,7 @@ NormalStream & operator<<(NormalStream & ns, MathAtom const & at)
 }
 
 
-NormalStream & operator<<(NormalStream & ns, MathArray const & ar)
+NormalStream & operator<<(NormalStream & ns, MathData const & ar)
 {
        normalize(ar, ns);
        return ns;
@@ -50,7 +52,7 @@ NormalStream & operator<<(NormalStream & ns, docstring const & s)
 }
 
 
-NormalStream & operator<<(NormalStream & ns, const std::string & s)
+NormalStream & operator<<(NormalStream & ns, const string & s)
 {
        ns.os() << from_utf8(s);
        return ns;
@@ -101,15 +103,15 @@ WriteStream & operator<<(WriteStream & ws, docstring const & s)
 }
 
 
-WriteStream::WriteStream(odocstream & os, bool fragile, bool latex)
+WriteStream::WriteStream(odocstream & os, bool fragile, bool latex, bool dryrun)
        : os_(os), fragile_(fragile), firstitem_(false), latex_(latex),
-         pendingspace_(false), line_(0)
+         dryrun_(dryrun), pendingspace_(false), textmode_(false), line_(0)
 {}
 
 
 WriteStream::WriteStream(odocstream & os)
        : os_(os), fragile_(false), firstitem_(false), latex_(false),
-         pendingspace_(false), line_(0)
+         dryrun_(false), pendingspace_(false), textmode_(false), line_(0)
 {}
 
 
@@ -132,6 +134,12 @@ void WriteStream::pendingSpace(bool how)
 }
 
 
+void WriteStream::textMode(bool textmode)
+{
+       textmode_ = textmode;
+}
+
+
 WriteStream & operator<<(WriteStream & ws, MathAtom const & at)
 {
        at->write(ws);
@@ -139,7 +147,7 @@ WriteStream & operator<<(WriteStream & ws, MathAtom const & at)
 }
 
 
-WriteStream & operator<<(WriteStream & ws, MathArray const & ar)
+WriteStream & operator<<(WriteStream & ws, MathData const & ar)
 {
        write(ar, ws);
        return ws;
@@ -202,7 +210,7 @@ MathStream & operator<<(MathStream & ms, MathAtom const & at)
 }
 
 
-MathStream & operator<<(MathStream & ms, MathArray const & ar)
+MathStream & operator<<(MathStream & ms, MathData const & ar)
 {
        mathmlize(ar, ms);
        return ms;
@@ -227,7 +235,7 @@ MathStream & operator<<(MathStream & ms, MTag const & t)
 {
        ++ms.tab();
        ms.cr();
-       ms.os() << '<' << t.tag_ << '>';
+       ms.os() << '<' << from_ascii(t.tag_) << '>';
        return ms;
 }
 
@@ -237,7 +245,7 @@ MathStream & operator<<(MathStream & ms, ETag const & t)
        ms.cr();
        if (ms.tab() > 0)
                --ms.tab();
-       ms.os() << "</" << t.tag_ << '>';
+       ms.os() << "</" << from_ascii(t.tag_) << '>';
        return ms;
 }
 
@@ -266,7 +274,7 @@ MapleStream & operator<<(MapleStream & ms, MathAtom const & at)
 }
 
 
-MapleStream & operator<<(MapleStream & ms, MathArray const & ar)
+MapleStream & operator<<(MapleStream & ms, MathData const & ar)
 {
        maple(ar, ms);
        return ms;
@@ -318,7 +326,7 @@ MaximaStream & operator<<(MaximaStream & ms, MathAtom const & at)
 }
 
 
-MaximaStream & operator<<(MaximaStream & ms, MathArray const & ar)
+MaximaStream & operator<<(MaximaStream & ms, MathData const & ar)
 {
        maxima(ar, ms);
        return ms;
@@ -370,7 +378,7 @@ MathematicaStream & operator<<(MathematicaStream & ms, MathAtom const & at)
 }
 
 
-MathematicaStream & operator<<(MathematicaStream & ms, MathArray const & ar)
+MathematicaStream & operator<<(MathematicaStream & ms, MathData const & ar)
 {
        mathematica(ar, ms);
        return ms;
@@ -422,7 +430,7 @@ OctaveStream & operator<<(OctaveStream & ns, MathAtom const & at)
 }
 
 
-OctaveStream & operator<<(OctaveStream & ns, MathArray const & ar)
+OctaveStream & operator<<(OctaveStream & ns, MathData const & ar)
 {
        octave(ar, ns);
        return ns;
@@ -464,7 +472,7 @@ OctaveStream & operator<<(OctaveStream & ns, char_type c)
 }
 
 
-OctaveStream & operator<<(OctaveStream & os, std::string const & s)
+OctaveStream & operator<<(OctaveStream & os, string const & s)
 {
        os.os() << from_utf8(s);
        return os;