Fix problems with linebreaks in fractions (scaling of lineleading, proper detection of auto indentalign, etc.)
This commit is contained in:
parent
521e6c9fda
commit
cb04ee618c
|
@ -90,6 +90,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
//
|
//
|
||||||
this.HTMLremoveColor(span);
|
this.HTMLremoveColor(span);
|
||||||
var stack = HTMLCSS.createStack(span);
|
var stack = HTMLCSS.createStack(span);
|
||||||
|
this.HTMLgetScale();
|
||||||
var state = {
|
var state = {
|
||||||
n: 0, Y: 0,
|
n: 0, Y: 0,
|
||||||
scale: this.scale || 1,
|
scale: this.scale || 1,
|
||||||
|
@ -219,7 +220,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
//
|
//
|
||||||
if (state.n > 0) {
|
if (state.n > 0) {
|
||||||
var LHD = HTMLCSS.FONTDATA.baselineskip * state.scale;
|
var LHD = HTMLCSS.FONTDATA.baselineskip * state.scale;
|
||||||
var leading = (state.values.lineleading == null ? state.VALUES : state.values).lineleading;
|
var leading = (state.values.lineleading == null ? state.VALUES : state.values).lineleading * state.scale;
|
||||||
state.Y -= Math.max(LHD,state.d + line.bbox.h + leading);
|
state.Y -= Math.max(LHD,state.d + line.bbox.h + leading);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
@ -252,7 +253,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
else if (state.isLast) {shift = prev.indentshiftlast || def.indentshiftlast}
|
else if (state.isLast) {shift = prev.indentshiftlast || def.indentshiftlast}
|
||||||
else {shift = prev.indentshift || def.indentshift}
|
else {shift = prev.indentshift || def.indentshift}
|
||||||
if (shift === MML.INDENTSHIFT.INDENTSHIFT) {shift = prev.indentshift || def.indentshift}
|
if (shift === MML.INDENTSHIFT.INDENTSHIFT) {shift = prev.indentshift || def.indentshift}
|
||||||
if (shift === MML.INDENTSHIFT.AUTO || shift === "") {shift = (state.isTSop ? this.displayIndent : "0")}
|
if (shift === "auto" || shift === "") {shift = (state.isTSop ? this.displayIndent : "0")}
|
||||||
return HTMLCSS.length2em(shift,0);
|
return HTMLCSS.length2em(shift,0);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||||
//
|
//
|
||||||
if (state.n > 0) {
|
if (state.n > 0) {
|
||||||
var LHD = SVG.FONTDATA.baselineskip * state.scale;
|
var LHD = SVG.FONTDATA.baselineskip * state.scale;
|
||||||
var leading = (state.values.lineleading == null ? state.VALUES : state.values).lineleading;
|
var leading = (state.values.lineleading == null ? state.VALUES : state.values).lineleading * state.scale;
|
||||||
state.Y -= Math.max(LHD,state.d + line.h + leading);
|
state.Y -= Math.max(LHD,state.d + line.h + leading);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
@ -255,7 +255,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||||
else if (state.isLast) {shift = prev.indentshiftlast || def.indentshiftlast}
|
else if (state.isLast) {shift = prev.indentshiftlast || def.indentshiftlast}
|
||||||
else {shift = prev.indentshift || def.indentshift}
|
else {shift = prev.indentshift || def.indentshift}
|
||||||
if (shift === MML.INDENTSHIFT.INDENTSHIFT) {shift = prev.indentshift || def.indentshift}
|
if (shift === MML.INDENTSHIFT.INDENTSHIFT) {shift = prev.indentshift || def.indentshift}
|
||||||
if (shift === MML.INDENTSHIFT.AUTO || shift === "") {shift = (state.isTSop ? this.displayIndent : "0")}
|
if (shift === "auto" || shift === "") {shift = (state.isTSop ? this.displayIndent : "0")}
|
||||||
return SVG.length2em(shift,0);
|
return SVG.length2em(shift,0);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -1286,9 +1286,11 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
SVGgetScale: function (svg) {
|
SVGgetScale: function (svg) {
|
||||||
if (this.mscale) {return this.scale * this.mscale}
|
var scale = 1;
|
||||||
var scale = 1,
|
if (this.mscale) {
|
||||||
values = this.getValues("mathsize","scriptlevel","fontsize");
|
scale = this.scale;
|
||||||
|
} else {
|
||||||
|
var values = this.getValues("mathsize","scriptlevel","fontsize");
|
||||||
if ((this.styles||{}).fontSize && !values.fontsize) {values.fontsize = this.styles.fontSize}
|
if ((this.styles||{}).fontSize && !values.fontsize) {values.fontsize = this.styles.fontSize}
|
||||||
if (values.fontsize && !this.mathsize) {values.mathsize = values.fontsize}
|
if (values.fontsize && !this.mathsize) {values.mathsize = values.fontsize}
|
||||||
if (values.scriptlevel !== 0) {
|
if (values.scriptlevel !== 0) {
|
||||||
|
@ -1298,6 +1300,7 @@
|
||||||
if (scale < values.scriptminsize) {scale = values.scriptminsize}
|
if (scale < values.scriptminsize) {scale = values.scriptminsize}
|
||||||
}
|
}
|
||||||
this.scale = scale; this.mscale = SVG.length2em(values.mathsize)/1000;
|
this.scale = scale; this.mscale = SVG.length2em(values.mathsize)/1000;
|
||||||
|
}
|
||||||
if (svg) {svg.scale = scale; if (this.isToken) {svg.scale *= this.mscale}}
|
if (svg) {svg.scale = scale; if (this.isToken) {svg.scale *= this.mscale}}
|
||||||
return scale * this.mscale;
|
return scale * this.mscale;
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user