X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathEnsureMath.cpp;h=7f82345efd8627299f8a6ccf2e36a74ac0437b97;hb=d9082639080b9de993742bd352f92e5183058cf5;hp=7221322db0fd054c3275b1a284fbb4831a41e7fb;hpb=707d369d72e0bf8da9ab3f405b20aeafe68f9758;p=lyx.git diff --git a/src/mathed/InsetMathEnsureMath.cpp b/src/mathed/InsetMathEnsureMath.cpp index 7221322db0..7f82345efd 100644 --- a/src/mathed/InsetMathEnsureMath.cpp +++ b/src/mathed/InsetMathEnsureMath.cpp @@ -17,13 +17,16 @@ #include "MathStream.h" #include "MathSupport.h" +#include "LaTeXFeatures.h" +#include "MetricsInfo.h" + #include namespace lyx { InsetMathEnsureMath::InsetMathEnsureMath(Buffer * buf) - : InsetMathNest(buf, 1) + : InsetMathGrid(buf, 1, 1) {} @@ -35,19 +38,15 @@ Inset * InsetMathEnsureMath::clone() const void InsetMathEnsureMath::metrics(MetricsInfo & mi, Dimension & dim) const { - bool really_change_font = isTextFont(from_ascii(mi.base.fontname)); - FontSetChanger dummy(mi.base, "mathnormal", really_change_font); + Changer dummy = mi.base.changeEnsureMath(); cell(0).metrics(mi, dim); - metricsMarkers(dim); } void InsetMathEnsureMath::draw(PainterInfo & pi, int x, int y) const { - bool really_change_font = isTextFont(from_ascii(pi.base.fontname)); - FontSetChanger dummy(pi.base, "mathnormal", really_change_font); + Changer dummy = pi.base.changeEnsureMath(); cell(0).draw(pi, x, y); - drawMarkers(pi, x, y); } @@ -63,28 +62,28 @@ void InsetMathEnsureMath::drawT(TextPainter & pain, int x, int y) const } -void InsetMathEnsureMath::write(WriteStream & os) const +void InsetMathEnsureMath::write(TeXMathStream & os) const { ModeSpecifier specifier(os, MATH_MODE); os << "\\ensuremath{" << cell(0) << "}"; } -void InsetMathEnsureMath::mathmlize(MathStream & os) const +void InsetMathEnsureMath::mathmlize(MathMLStream & ms) const { - os << "[EM]"; - SetMode mathmode(os, false); - os << cell(0); - os << "[/EM]"; + SetMode mathmode(ms, false); + ms << MTag("mstyle", "class='math'") + << cell(0) + << ETag("mstyle"); } void InsetMathEnsureMath::htmlize(HtmlStream & os) const { - os << "[EM]"; SetHTMLMode mathmode(os, false); - os << cell(0); - os << "[/EM]"; + os << MTag("span", "class='math'") + << cell(0) + << ETag("span"); } @@ -94,4 +93,17 @@ void InsetMathEnsureMath::infoize(odocstream & os) const } +void InsetMathEnsureMath::validate(LaTeXFeatures & features) const +{ + // FIXME XHTML + // It'd be better to be able to get this from an InsetLayout, but at present + // InsetLayouts do not seem really to work for things that aren't InsetTexts. + if (features.runparams().math_flavor == OutputParams::MathAsMathML) + features.addCSSSnippet("mstyle.math { font-style: italic; }"); + else if (features.runparams().math_flavor == OutputParams::MathAsHTML) + features.addCSSSnippet("span.mathbox { font-style: italic; }"); + + InsetMathNest::validate(features); +} + } // namespace lyx