+ case TFRAC:
+ case CFRAC:
+ case CFRACLEFT:
+ case CFRACRIGHT:
+ os << MTag("mfrac")
+ << MTag("mrow") << cell(0) << ETag("mrow")
+ << MTag("mrow") << cell(1) << ETag("mrow")
+ << ETag("mfrac");
+ break;
+
+ case NICEFRAC:
+ os << MTag("mfrac", "bevelled='true'")
+ << MTag("mrow") << cell(0) << ETag("mrow")
+ << MTag("mrow") << cell(1) << ETag("mrow")
+ << ETag("mfrac");
+ break;
+
+ case UNITFRAC:
+ if (nargs() == 3)
+ os << cell(2);
+ os << MTag("mfrac", "bevelled='true'")
+ << MTag("mrow") << cell(0) << ETag("mrow")
+ << MTag("mrow") << cell(1) << ETag("mrow")
+ << ETag("mfrac");
+ break;
+
+ case UNIT:
+ // FIXME This is not right, because we still output mi, etc,
+ // when we output the cell. So we need to prevent that somehow.
+ if (nargs() == 2)
+ os << cell(0)
+ << MTag("mstyle mathvariant='normal'")
+ << cell(1)
+ << ETag("mstyle");
+ else
+ os << MTag("mstyle mathvariant='normal'")
+ << cell(0)
+ << ETag("mstyle");
+ }
+}
+
+
+void InsetMathFrac::htmlize(HtmlStream & os) const
+{
+ switch (kind_) {
+ case ATOP:
+ os << MTag("span", "class='frac'")
+ << MTag("span", "class='numer'") << cell(0) << ETag("span")
+ << MTag("span", "class='numer'") << cell(1) << ETag("span")
+ << ETag("span");