+ os << "[stackrel " << cell(0) << ' ' << cell(1);
+ if (nargs() > 2)
+ os << ' ' << cell(2);
+ os << ']';
+}
+
+
+void InsetMathStackrel::mathmlize(MathStream & ms) const
+{
+ if (nargs() > 2)
+ ms << "<munderover>" << cell(1) << cell(2) << cell(0) << "</munderover>";
+ else
+ ms << "<mover accent='false'>" << cell(1) << cell(0) << "</mover>";
+}
+
+
+void InsetMathStackrel::htmlize(HtmlStream & os) const
+{
+ if (nargs() > 2) {
+ os << MTag("span", "class='underoverset'")
+ << MTag("span", "class='top'") << cell(0) << ETag("span")
+ << MTag("span") << cell(1) << ETag("span")
+ << MTag("span", "class='bottom'") << cell(2) << ETag("span");
+ } else {
+ // at the moment, this is exactly the same as overset
+ os << MTag("span", "class='overset'")
+ << MTag("span", "class='top'") << cell(0) << ETag("span")
+ << MTag("span") << cell(1) << ETag("span");
+ }
+ os << ETag("span");