]> git.lyx.org Git - features.git/commitdiff
InsetMathBig via HTML.
authorRichard Heck <rgheck@comcast.net>
Tue, 30 Mar 2010 02:04:07 +0000 (02:04 +0000)
committerRichard Heck <rgheck@comcast.net>
Tue, 30 Mar 2010 02:04:07 +0000 (02:04 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33946 a592a061-630c-0410-9148-cb99ea01b6c8

src/mathed/InsetMathBig.cpp
src/mathed/InsetMathBig.h

index 463b628dbecfe343186864c5fcebab189452278d..68203fdf471d26b820675406503024c20943806d 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "InsetMathBig.h"
 
+#include "LaTeXFeatures.h"
 #include "MathSupport.h"
 #include "MathStream.h"
 #include "MetricsInfo.h"
@@ -149,6 +150,60 @@ void InsetMathBig::mathmlize(MathStream & os) const
 }
 
 
+void InsetMathBig::htmlize(HtmlStream & os) const
+{
+       std::string name;
+       switch (size()) {
+       case 0: case 1: name = "big"; break;
+       case 2: case 3: name = "bigg"; break;
+       case 4: case 5: name = "biggg"; break;
+       default: name  = "big"; break;
+       }
+       os << MTag("span", "class='" + name + "symbol'");
+       if (delim_ == "(" || delim_ == ")"
+                       || delim_ == "[" || delim_ == "]"
+                       || delim_ == "|" || delim_ == "/")
+               os << delim_;
+       else if (delim_ == "\\{" || delim_ == "\\lbrace")
+               os << "{";
+       else if (delim_ == "\\}" || delim_ == "\\rbrace")
+               os << "}";
+       else if (delim_ == "\\slash")
+               os << "/";
+       else if (delim_ == "\\|" || delim_ == "\\vert")
+               os << "|";
+       else if (delim_ == "\\Vert")
+               os << "&par;";
+       else if (delim_ == "\\\\" || delim_ == "\\backslash")
+               os <<" \\";
+       else if (delim_ == "\\langle")
+               os << "&lt;";
+       else if (delim_ == "\\rangle")
+               os << "&gt;";
+       else if (delim_ == "\\lceil")
+               os << "&lceil;";
+       else if (delim_ == "\\rceil")
+               os << "&rceil;";
+       else if (delim_ == "\\lfloor")
+               os << "&lfloor;";
+       else if (delim_ == "\\rfloor")
+               os << "&rfloor;";
+       else if (delim_ == "\\downarrow")
+               os << "&darr;";
+       else if (delim_ == "\\uparrow")
+               os << "&uarr;";
+       else if (delim_ == "\\Downarrow")
+               os << "&dArr;";
+       else if (delim_ == "\\Uparrow")
+               os << "&uArr;";
+       else if (delim_ == "\\updownarrow")
+               os << "&varr;";
+       else if (delim_ == "\\Updownarrow")
+               os << "&vArr;";
+       os << ETag("span");
+}
+
+
 void InsetMathBig::infoize2(odocstream & os) const
 {
        os << name_;
@@ -172,4 +227,15 @@ bool InsetMathBig::isBigInsetDelim(docstring const & delim)
 }
 
 
+void InsetMathBig::validate(LaTeXFeatures & features) const
+{
+       if (features.runparams().flavor == OutputParams::HTML)
+               features.addPreambleSnippet("<style type=\"text/css\">\n"
+                       "span.bigsymbol{font-size: 150%;}\n"
+                       "span.biggsymbol{font-size: 200%;}\n"
+                       "span.bigggsymbol{font-size: 225%;}\n"
+                       "</style>");
+}
+
+
 } // namespace lyx
index e6df71fd1ccc420f5f8bcd0a19f43ff478776ca3..5e511db0f46d3e511b42cadfbef5864f3e972eb0 100644 (file)
@@ -37,11 +37,15 @@ public:
        ///
        void mathmlize(MathStream &) const;
        ///
+       void htmlize(HtmlStream &) const;
+       ///
        void infoize2(odocstream & os) const;
        ///
        static bool isBigInsetDelim(docstring const &);
        ///
        InsetCode lyxCode() const { return MATH_BIG_CODE; }
+       ///
+       void validate(LaTeXFeatures &) const;
 private:
        virtual Inset * clone() const;
        ///