#include "InsetMathFont.h"
#include "InsetMathScript.h"
#include "InsetMathSymbol.h"
+#include "LaTeXFeatures.h"
#include "MathData.h"
#include "MathStream.h"
#include "MathSupport.h"
}
+void InsetMathScript::htmlize(HtmlStream & os) const
+{
+ bool d = hasDown() && down().size();
+ bool u = hasUp() && up().size();
+
+ if (nuc().size())
+ os << nuc();
+
+ if (u && d)
+ os << MTag("span", "class='scripts'")
+ << MTag("span", "class='sup'") << up() << ETag("span")
+ << MTag("span", "class='sub'") << down() << ETag("span")
+ << ETag("span");
+ else if (u)
+ os << MTag("sup", "class='math'") << up() << ETag("sup");
+ else if (d)
+ os << MTag("sub", "class='math'") << down() << ETag("sub");
+}
+
+
void InsetMathScript::octave(OctaveStream & os) const
{
if (nuc().size())
}
+// the idea for dual scripts came from the eLyXer code
+void InsetMathScript::validate(LaTeXFeatures & features) const
+{
+ if (features.runparams().flavor == OutputParams::HTML)
+ features.addPreambleSnippet("<style type=\"text/css\">\n"
+ "span.scripts{display: inline-block; vertical-align: middle; text-align:center; font-size: 75%;}\n"
+ "span.sup{display: block;}\n"
+ "span.sub{display: block;}\n"
+ "sub.math{font-size: 75%;}\n"
+ "sup.math{font-size: 75%;}\n"
+ "</style>");
+}
+
} // namespace lyx
void maple(MapleStream &) const;
/// write content as something readable by Mathematica
void mathematica(MathematicaStream &) const;
- /// write content as something resembling MathML
+ /// write content as MathML
void mathmlize(MathStream &) const;
+ /// write content as HTML
+ void htmlize(HtmlStream &) const;
/// write content as something readable by Octave
void octave(OctaveStream &) const;
void infoize2(odocstream & os) const;
///
InsetCode lyxCode() const { return MATH_SCRIPT_CODE; }
-
+ ///
+ void validate(LaTeXFeatures &features) const;
protected:
virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
private: