X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathExInt.cpp;h=ac5409f469aca3e432a9173967890fe357f6d71e;hb=bca9a6ca73b05856eb24f38795d67fdefa939878;hp=23372ba16d92dfbcc3e6ff6ed132074d6a9f1a7c;hpb=9d0ea8aeff32833a90b3fe64df0c5518a9e241be;p=lyx.git diff --git a/src/mathed/InsetMathExInt.cpp b/src/mathed/InsetMathExInt.cpp index 23372ba16d..ac5409f469 100644 --- a/src/mathed/InsetMathExInt.cpp +++ b/src/mathed/InsetMathExInt.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -11,19 +11,21 @@ #include #include "InsetMathExInt.h" + +#include "LaTeXFeatures.h" #include "MathData.h" #include "MathStream.h" #include "MathStream.h" #include "InsetMathSymbol.h" -#include "support/debug.h" +#include "support/debug.h" #include "support/docstring.h" namespace lyx { -InsetMathExInt::InsetMathExInt(docstring const & name) - : InsetMathNest(4), symbol_(name) +InsetMathExInt::InsetMathExInt(Buffer * buf, docstring const & name) + : InsetMathNest(buf, 4), symbol_(name) {} // 0 - core @@ -124,21 +126,67 @@ void InsetMathExInt::mathematica(MathematicaStream & os) const void InsetMathExInt::mathmlize(MathStream & os) const { + // At the moment, we are not extracting sums and the like for MathML. + // If we should decide to do so later, then we'll need to re-merge + // r32566 and r32568. + // So right now this only handles integrals. InsetMathSymbol sym(symbol_); - //if (hasScripts()) - // mathmlize(sym, os); - //else - sym.mathmlize(os); + bool const lower = !cell(2).empty(); + bool const upper = !cell(3).empty(); + if (lower && upper) + os << MTag("msubsup"); + else if (lower) + os << MTag("msub"); + else if (upper) + os << MTag("msup"); + os << MTag("mrow"); + sym.mathmlize(os); + os << ETag("mrow"); + if (lower) + os << MTag("mrow") << cell(2) << ETag("mrow"); + if (upper) + os << MTag("mrow") << cell(3) << ETag("mrow"); + if (lower && upper) + os << ETag("msubsup"); + else if (lower) + os << ETag("msub"); + else if (upper) + os << ETag("msup"); os << cell(0) << "" << MTag("mrow") << "" << cell(1) << ETag("mrow"); } +void InsetMathExInt::htmlize(HtmlStream & os) const +{ + // At the moment, we are not extracting sums and the like for HTML. + // So right now this only handles integrals. + InsetMathSymbol sym(symbol_); + bool const lower = !cell(2).empty(); + bool const upper = !cell(3).empty(); + + os << MTag("span", "class='integral'") + << MTag("span", "class='intsym'"); + sym.htmlize(os, false); + os << ETag("span"); + + if (lower && upper) { + os << MTag("span", "class='limits'") + << MTag("span") << cell(2) << ETag("span") + << MTag("span") << cell(3) << ETag("span") + << ETag("span"); + } else if (lower) + os << MTag("sub", "class='limit'") << cell(2) << ETag("sub"); + else if (upper) + os << MTag("sup", "class='limit'") << cell(3) << ETag("sup"); + os << cell(0) << "d" << cell(1) << ETag("span"); +} + + void InsetMathExInt::write(WriteStream &) const { LYXERR0("should not happen"); } - } // namespace lyx