dim.des = max(dim2.des, dim1.height() - 5);
}
} else {
+ // general cell metrics used for \frac
FracChanger dummy(mi.base);
cell(0).metrics(mi, dim0);
cell(1).metrics(mi, dim1);
if (nargs() == 3)
cell(2).metrics(mi, dim2);
-
+ // metrics for special fraction types
if (kind_ == NICEFRAC) {
dim.wid = dim0.width() + dim1.wid + 5;
dim.asc = dim0.height() + 5;
} else {
if (kind_ == CFRAC || kind_ == CFRACLEFT
|| kind_ == CFRACRIGHT || kind_ == DFRAC) {
- // \cfrac and \dfrac are in always in display size
+ // \cfrac and \dfrac are always in display size
StyleChanger dummy2(mi.base, LM_ST_DISPLAY);
cell(0).metrics(mi, dim0);
cell(1).metrics(mi, dim1);
setPosCache(pi, x, y);
Dimension const dim = dimension(*pi.base.bv);
Dimension const dim0 = cell(0).dimension(*pi.base.bv);
- int m = x + dim.wid / 2;
if (kind_ == UNIT || (kind_ == UNITFRAC && nargs() == 3)) {
if (nargs() == 1) {
ShapeChanger dummy2(pi.base.font, UP_SHAPE);
ShapeChanger dummy2(pi.base.font, UP_SHAPE);
cell(0).draw(pi, x + 2, y - dim0.des - 5);
cell(1).draw(pi, x + dim0.width() + 5, y + dim1.asc / 2);
- } else if (kind_ == FRAC) {
+ } else if (kind_ == FRAC || kind_ == ATOP || kind_ == OVER) {
cell(0).draw(pi, m - dim0.wid / 2, y - dim0.des - 2 - 5);
cell(1).draw(pi, m - dim1.wid / 2, y + dim1.asc + 2 - 5);
} else if (kind_ == TFRAC) {
void InsetMathFrac::mathmlize(MathStream & os) const
{
switch (kind_) {
- case FRAC:
- os << MTag("mfrac") << cell(0) << cell(1) << ETag("mfrac");
- break;
case DFRAC:
os << MTag("mdfrac") << cell(0) << cell(1) << ETag("mdfrac");
break;
case TFRAC:
os << MTag("mtfrac") << cell(0) << cell(1) << ETag("mtfrac");
break;
+ case FRAC:
+ default:
+ os << MTag("mfrac") << cell(0) << cell(1) << ETag("mfrac");
+ break;
}
}
case BINOM:
os << MTag("mbinom") << cell(0) << cell(1) << ETag("mbinom");
break;
- case DBINOM:
- os << MTag("mdbinom") << cell(0) << cell(1) << ETag("mdbinom");
- break;
case TBINOM:
os << MTag("mtbinom") << cell(0) << cell(1) << ETag("mtbinom");
break;
+ case DBINOM:
+ default:
+ os << MTag("mdbinom") << cell(0) << cell(1) << ETag("mdbinom");
+ break;
}
}