X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathFrac.cpp;h=fba920dea2e53dac3df3252d07db16c2d68ea836;hb=ad79ac406f9c8fc85880cfeb5416b0299ee9a617;hp=2362495d771da3f00ece272b62b25adb6b2431b3;hpb=eadc55b8b38a489202e2e168521578dae119fd59;p=lyx.git diff --git a/src/mathed/InsetMathFrac.cpp b/src/mathed/InsetMathFrac.cpp index 2362495d77..fba920dea2 100644 --- a/src/mathed/InsetMathFrac.cpp +++ b/src/mathed/InsetMathFrac.cpp @@ -154,14 +154,6 @@ MathClass InsetMathFrac::mathClass() const namespace { -// align frac to minus character -int dy_for_frac(MetricsBase & mb) -{ - Changer dummy = mb.changeFontSet("mathnormal"); - return theFontMetrics(mb.font).ascent('-') - 1; -} - - // align the top of M in the cell with the top of M in the surrounding font int dy_for_nicefrac(MetricsBase & mb) { @@ -249,7 +241,7 @@ void InsetMathFrac::metrics(MetricsInfo & mi, Dimension & dim) const case TFRAC: case OVER: case ATOP: { - int const dy = dy_for_frac(mi.base); + int const dy = axis_height(mi.base); Changer dummy = // \tfrac is always in text size (kind_ == TFRAC) ? mi.base.font.changeStyle(LM_ST_SCRIPT) : @@ -269,13 +261,11 @@ void InsetMathFrac::metrics(MetricsInfo & mi, Dimension & dim) const dim.des = max(0, dim1.height() + dy/2 - dy + t); } } //switch (kind_) - metricsMarkers(mi, dim); } void InsetMathFrac::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); Changer dummy3 = pi.base.changeEnsureMath(); Dimension const dim = dimension(*pi.base.bv); Dimension const dim0 = cell(0).dimension(*pi.base.bv); @@ -287,12 +277,12 @@ void InsetMathFrac::draw(PainterInfo & pi, int x, int y) const // is there an extra cell holding the value being given a dimension? // (this is \unittwo) if (nargs() == 2) { - cell(0).draw(pi, x + 1, y); + cell(0).draw(pi, x, y); xx += dim0.wid + 4; unit_cell = 1; } Changer dummy = pi.base.font.changeShape(UP_SHAPE); - cell(unit_cell).draw(pi, xx + 1, y); + cell(unit_cell).draw(pi, xx, y); } break; @@ -304,24 +294,24 @@ void InsetMathFrac::draw(PainterInfo & pi, int x, int y) const // is there an extra cell holding the value being given a dimension? // (this is \unitfracthree) if (kind_ == UNITFRAC && nargs() == 3) { - cell(2).draw(pi, x + 1, y); + cell(2).draw(pi, x, y); xx += cell(2).dimension(*pi.base.bv).wid + 4; } Changer dummy = (kind_ == UNITFRAC) ? pi.base.font.changeShape(UP_SHAPE) : Changer(); // nice fraction Changer dummy2 = pi.base.changeScript(); - cell(0).draw(pi, xx + 2, y - dy); + cell(0).draw(pi, xx + 1, y - dy); // reference LaTeX code from nicefrac.sty: // \mkern-2mu/\mkern-1mu if (latexkeys const * slash = slash_symbol()) { int mkern = mathed_mu(pi.base.font, 2.0); - mathedSymbolDraw(pi, xx + 2 + dim0.wid - mkern, y, slash); + mathedSymbolDraw(pi, xx + 1 + dim0.wid - mkern, y, slash); Dimension dimslash; mathedSymbolDim(pi.base, dimslash, slash); xx += dimslash.wid - mathed_mu(pi.base.font, 3.0); } - cell(1).draw(pi, xx + 2 + dim0.wid, y); + cell(1).draw(pi, xx + 1 + dim0.wid, y); } break; @@ -333,7 +323,7 @@ void InsetMathFrac::draw(PainterInfo & pi, int x, int y) const case TFRAC: case OVER: case ATOP: { - int const dy = dy_for_frac(pi.base); + int const dy = axis_height(pi.base); Changer dummy = // \tfrac is always in text size (kind_ == TFRAC) ? pi.base.font.changeStyle(LM_ST_SCRIPT) : @@ -348,7 +338,7 @@ void InsetMathFrac::draw(PainterInfo & pi, int x, int y) const int const m = x + dim.wid / 2; int const xx = // align left - (kind_ == CFRACLEFT) ? x + 2 : + (kind_ == CFRACLEFT) ? x + 1 : // align right (kind_ == CFRACRIGHT) ? x + dim.wid - dim0.wid - 2 : // center @@ -364,11 +354,10 @@ void InsetMathFrac::draw(PainterInfo & pi, int x, int y) const cell(1).draw(pi, m - dim1.wid / 2, y + dim1.asc + dy/2 - dy + t); // horizontal line if (kind_ != ATOP) - pi.pain.line(x + 1, y - dy, x + dim.wid - 2, y - dy, + pi.pain.line(x, y - dy, x + dim.wid, y - dy, pi.base.font.color(), pi.pain.line_solid, t); } } //switch (kind_) - drawMarkers(pi, x, y); } @@ -659,7 +648,7 @@ void InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const { Changer dummy2 = mi.base.changeEnsureMath(); Dimension dim0, dim1; - int const dy = dy_for_frac(mi.base); + int const dy = axis_height(mi.base); Changer dummy = (kind_ == DBINOM) ? mi.base.font.changeStyle(LM_ST_DISPLAY) : (kind_ == TBINOM) ? mi.base.font.changeStyle(LM_ST_SCRIPT) : @@ -669,7 +658,6 @@ void InsetMathBinom::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = dim0.height() + 1 + dy/2 + dy; dim.des = max(0, dim1.height() + 1 + dy/2 - dy); dim.wid = max(dim0.wid, dim1.wid) + 2 * dw(dim.height()) + 4; - metricsMarkers2(mi, dim); } @@ -679,7 +667,7 @@ void InsetMathBinom::draw(PainterInfo & pi, int x, int y) const Dimension const dim = dimension(*pi.base.bv); Dimension const & dim0 = cell(0).dimension(*pi.base.bv); Dimension const & dim1 = cell(1).dimension(*pi.base.bv); - int const dy = dy_for_frac(pi.base); + int const dy = axis_height(pi.base); // define the binom brackets docstring const bra = kind_ == BRACE ? from_ascii("{") : kind_ == BRACK ? from_ascii("[") : from_ascii("("); @@ -702,7 +690,6 @@ void InsetMathBinom::draw(PainterInfo & pi, int x, int y) const dim.height(), bra); mathed_draw_deco(pi, x + dim.width() - dw(dim.height()), y - dim.ascent(), dw(dim.height()), dim.height(), ket); - drawMarkers2(pi, x, y); }