For displaystyle scripts we need to use munder, mover or munderover.
-// FIXME XHTML
-// It may be worth trying to output munder, mover, and munderover
-// in certain cases, e.g., for display formulas. But then we would
-// need to know if we're in a display formula.
void InsetMathScript::mathmlize(MathStream & os) const
{
bool d = hasDown() && !down().empty();
bool u = hasUp() && !up().empty();
void InsetMathScript::mathmlize(MathStream & os) const
{
bool d = hasDown() && !down().empty();
bool u = hasUp() && !up().empty();
+ os << MTag(l ? "munderover" : "msubsup");
+ os << MTag(l ? "mover" : "msup");
+ os << MTag(l ? "munder" : "msub");
if (!nuc().empty())
os << MTag("mrow") << nuc() << ETag("mrow");
if (!nuc().empty())
os << MTag("mrow") << nuc() << ETag("mrow");
if (u && d)
os << MTag("mrow") << down() << ETag("mrow")
<< MTag("mrow") << up() << ETag("mrow")
if (u && d)
os << MTag("mrow") << down() << ETag("mrow")
<< MTag("mrow") << up() << ETag("mrow")
+ << ETag(l ? "munderover" : "msubsup");
- os << MTag("mrow") << up() << ETag("mrow") << ETag("msup");
+ os << MTag("mrow") << up() << ETag("mrow") << ETag(l ? "mover" : "msup");
- os << MTag("mrow") << down() << ETag("mrow") << ETag("msub");
+ os << MTag("mrow") << down() << ETag("mrow") << ETag(l ? "munder" : "msub");