Add bevelled fraction support
This commit is contained in:
parent
35bd8e0acd
commit
beabbc7a17
|
@ -57,6 +57,7 @@
|
||||||
"mjx-numerator": {display:"block", "text-align":"center"},
|
"mjx-numerator": {display:"block", "text-align":"center"},
|
||||||
"mjx-denominator": {display:"block", "text-align":"center"},
|
"mjx-denominator": {display:"block", "text-align":"center"},
|
||||||
".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"},
|
".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"},
|
||||||
|
".MJXc-bevelled > *": {display:"inline-block"},
|
||||||
|
|
||||||
"mjx-stack": {display:"inline-block"},
|
"mjx-stack": {display:"inline-block"},
|
||||||
"mjx-op": {display:"block"},
|
"mjx-op": {display:"block"},
|
||||||
|
@ -1754,6 +1755,23 @@
|
||||||
values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0));
|
values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0));
|
||||||
var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height;
|
var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height;
|
||||||
var t = values.linethickness, p,q, u,v;
|
var t = values.linethickness, p,q, u,v;
|
||||||
|
if (values.bevelled) {
|
||||||
|
frac.className = "MJXc-bevelled";
|
||||||
|
var delta = (isDisplay ? .4 : .15);
|
||||||
|
var H = sscale*Math.max(nbox.h+nbox.d,dbox.h+dbox.d) + 2*delta;
|
||||||
|
var bevel = HTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom);
|
||||||
|
var bbox = CHTML.createDelimiter(bevel,0x2F,H);
|
||||||
|
u = sscale*(nbox.d-nbox.h)/2+a+delta;
|
||||||
|
v = sscale*(dbox.d-dbox.h)/2+a-delta;
|
||||||
|
if (u) num.style.verticalAlign = CHTML.Em(u);
|
||||||
|
if (v) denom.style.verticalAlign = CHTML.Em(v);
|
||||||
|
bevel.style.marginLeft = bevel.style.marginRight = CHTML.Em(-delta/2);
|
||||||
|
this.CHTML = CHTML.emptyBBox();
|
||||||
|
CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale);
|
||||||
|
CHTML.combineBBoxes(this.CHTML,bbox,sscale*nbox.w-delta/2,0,sscale);
|
||||||
|
CHTML.combineBBoxes(this.CHTML,dbox,sscale*nbox.w+bbox.w-delta,v,sscale);
|
||||||
|
CHTML.cleanBBox(this.CHTML);
|
||||||
|
} else {
|
||||||
if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1}
|
if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1}
|
||||||
else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2}
|
else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2}
|
||||||
if (t === 0) { // \atop
|
if (t === 0) { // \atop
|
||||||
|
@ -1781,6 +1799,7 @@
|
||||||
u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2;
|
u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2;
|
||||||
if (u > 0) num.style.paddingBottom = CHTML.Em(u);
|
if (u > 0) num.style.paddingBottom = CHTML.Em(u);
|
||||||
if (v > 0) denom.style.paddingTop = CHTML.Em(v);
|
if (v > 0) denom.style.paddingTop = CHTML.Em(v);
|
||||||
|
}
|
||||||
//
|
//
|
||||||
// Add nulldelimiterspace around the fraction
|
// Add nulldelimiterspace around the fraction
|
||||||
// (TeXBook pg 150 and Appendix G rule 15e)
|
// (TeXBook pg 150 and Appendix G rule 15e)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user