0),h=false;if(s==null){s=-1}if(!t){s++;l.W+=l.w;l.w=0}n=l.scanW=l.W;l.nest++;if(!this.dataI){this.dataI=[];if(this.data.open){this.dataI.push("open")}if(p){this.dataI.push(0)}for(var r=1;r1){this.data[this.dataI[o]].SVGmoveSlice(h.slice(1),m.slice(1),p,g,r,"paddingLeft")}else{var q=g.last;g.last=false;var l=this.dataI[o];while(o=0){o=r*i.nest}}else{o=Math.max(1,o+r[0]*i.nest)}if(o>=i.penalty){return false}i.penalty=o;i.values=q;i.W=j;i.w=p;q.lineleading=f.length2em(q.lineleading,g.VALUES.lineleading);return true}});a.mspace.Augment({SVGbetterBreak:function(h,g){var n=this.getValues("linebreak");var i=h.scanW,k=this.SVGdata,m=k.w+k.x;if(i-h.shift===0){return false}var j=f.linebreakWidth-i;var l=Math.floor(j/f.linebreakWidth*1000);if(l<0){l=e.toobig-3*l}l+=h.nest*e.nestfactor;var o=e[n.linebreak||a.LINEBREAK.AUTO];if(n.linebreak===a.LINEBREAK.AUTO&&m>=e.spacelimit*1000){o=[(m+e.spaceoffset)*e.spacefactor]}if(!(o instanceof Array)){if(j>=0){l=o*h.nest}}else{l=Math.max(1,l+o[0]*h.nest)}if(l>=h.penalty){return false}h.penalty=l;h.values=n;h.W=i;h.w=m;n.lineleading=g.VALUES.lineleading;n.linebreakstyle="before";return true}});MathJax.Hub.Register.StartupHook("TeX mathchoice Ready",function(){a.TeXmathchoice.Augment({SVGbetterBreak:function(h,g){return this.Core().SVGbetterBreak(h,g)},SVGmoveLine:function(k,g,i,j,h){return this.Core().SVGmoveSlice(k,g,i,j,h)}})});a.maction.Augment({SVGbetterBreak:function(h,g){return this.Core().SVGbetterBreak(h,g)},SVGmoveLine:function(k,g,i,j,h){return this.Core().SVGmoveSlice(k,g,i,j,h)},});a.semantics.Augment({SVGbetterBreak:function(h,g){return(this.data[0]?this.data[0].SVGbetterBreak(h,g):false)},SVGmoveLine:function(k,g,i,j,h){return(this.data[0]?this.data[0].SVGmoveSlice(k,g,i,j,h):null)}});MathJax.Hub.Startup.signal.Post("SVG multiline Ready");MathJax.Ajax.loadComplete(f.autoloadDir+"/multiline.js")});
diff --git a/unpacked/jax/output/HTML-CSS/autoload/multiline.js b/unpacked/jax/output/HTML-CSS/autoload/multiline.js
index 3298d0852..b53bdece2 100644
--- a/unpacked/jax/output/HTML-CSS/autoload/multiline.js
+++ b/unpacked/jax/output/HTML-CSS/autoload/multiline.js
@@ -146,9 +146,9 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
// Get the current breakpoint position and other data
//
var index = info.index.slice(0), i = info.index.shift(),
- m = this.data.length, W, broken = (info.index.length > 0), better = false;
- if (i == null) {i = -1}; if (!broken) {i++; info.W += info.w; info.w = 0;}
- info.scanW = info.W; info.nest++;
+ m = this.data.length, W, w, scanW, broken = (info.index.length > 0), better = false;
+ if (i == null) {i = -1}; if (!broken) {i++; info.W += info.w; info.w = 0}
+ scanW = info.scanW = info.W; info.nest++;
//
// Look through the line for breakpoints,
// (as long as we are not too far past the breaking width)
@@ -156,23 +156,24 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
while (i < m && info.scanW < 1.33*HTMLCSS.linebreakWidth) {
if (this.data[i]) {
if (this.data[i].HTMLbetterBreak(info,state)) {
- better = true; index = [i].concat(info.index); W = info.W;
+ better = true; index = [i].concat(info.index); W = info.W; w = info.w;
if (info.penalty === PENALTY.newline) {info.index = index; info.nest--; return true}
}
- if (!broken) {this.HTMLaddWidth(i,info)}
+ if (!broken) {scanW = this.HTMLaddWidth(i,info,scanW)}
}
info.index = []; i++; broken = false;
}
info.nest--; info.index = index;
- if (better) {info.W = W}
+ if (better) {info.W = W; info.w = w}
return better;
},
- HTMLaddWidth: function (i,info) {
+ HTMLaddWidth: function (i,info,scanW) {
var span = this.data[i].HTMLspanElement();
- info.scanW += span.bbox.w;
- if (span.style.paddingLeft) {info.scanW += HTMLCSS.unEm(span.style.paddingLeft)}
- if (span.style.paddingRight) {info.scanW += HTMLCSS.unEm(span.style.paddingRight)}
- info.W = info.scanW;
+ scanW += span.bbox.w;
+ if (span.style.paddingLeft) {scanW += HTMLCSS.unEm(span.style.paddingLeft)}
+ if (span.style.paddingRight) {scanW += HTMLCSS.unEm(span.style.paddingRight)}
+ info.W = info.scanW = scanW; info.w = 0;
+ return scanW;
},
/****************************************************************/
@@ -375,9 +376,9 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
// Get the current breakpoint position and other data
//
var index = info.index.slice(0), i = info.index.shift(),
- m = this.data.length, W, broken = (info.index.length > 0), better = false;
- if (i == null) {i = -1}; if (!broken) {i++; info.W += info.w; info.w = 0;}
- info.scanW = info.W; info.nest++;
+ m = this.data.length, W, w, scanW, broken = (info.index.length > 0), better = false;
+ if (i == null) {i = -1}; if (!broken) {i++; info.W += info.w; info.w = 0}
+ scanW = info.scanW = info.W; info.nest++;
//
// Create indices that include the delimiters and separators
//
@@ -400,15 +401,15 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
var k = this.dataI[i];
if (this.data[k]) {
if (this.data[k].HTMLbetterBreak(info,state)) {
- better = true; index = [i].concat(info.index); W = info.W;
+ better = true; index = [i].concat(info.index); W = info.W; w = info.w;
if (info.penalty === PENALTY.newline) {info.index = index; info.nest--; return true}
}
- if (!broken) {this.HTMLaddWidth(k,info)}
+ if (!broken) {scanW = this.HTMLaddWidth(k,info,scanW)}
}
info.index = []; i++; broken = false;
}
info.nest--; info.index = index;
- if (better) {info.W = W}
+ if (better) {info.W = W; info.w = w}
return better;
},
diff --git a/unpacked/jax/output/SVG/autoload/multiline.js b/unpacked/jax/output/SVG/autoload/multiline.js
index b02eb3f7a..8d25e9383 100644
--- a/unpacked/jax/output/SVG/autoload/multiline.js
+++ b/unpacked/jax/output/SVG/autoload/multiline.js
@@ -149,9 +149,9 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
// Get the current breakpoint position and other data
//
var index = info.index.slice(0), i = info.index.shift(),
- m = this.data.length, W, broken = (info.index.length > 0), better = false;
+ m = this.data.length, W, w, scanW, broken = (info.index.length > 0), better = false;
if (i == null) {i = -1}; if (!broken) {i++; info.W += info.w; info.w = 0}
- info.scanW = info.W; info.nest++;
+ scanW = info.scanW = info.W; info.nest++;
//
// Look through the line for breakpoints,
// (as long as we are not too far past the breaking width)
@@ -159,10 +159,10 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
while (i < m && info.scanW < 1.33*SVG.linebreakWidth) {
if (this.data[i]) {
if (this.data[i].SVGbetterBreak(info,state)) {
- better = true; index = [i].concat(info.index); W = info.W;
+ better = true; index = [i].concat(info.index); W = info.W; w = info.w;
if (info.penalty === PENALTY.newline) {info.index = index; info.nest--; return true}
}
- if (!broken) {this.SVGaddWidth(i,info)}
+ if (!broken) {scanW = this.SVGaddWidth(i,info,scanW)}
}
info.index = []; i++; broken = false;
}
@@ -170,10 +170,11 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
if (better) {info.W = W}
return better;
},
- SVGaddWidth: function (i,info) {
+ SVGaddWidth: function (i,info,scanW) {
var svg = this.data[i].SVGdata;
- info.scanW += svg.w + svg.x; if (svg.X) {info.scanW += svg.X}
- info.W = info.scanW;
+ scanW += svg.w + svg.x; if (svg.X) {scanW += svg.X}
+ info.W = info.scanW = scanW; info.w = 0;
+ return scanW;
},
/****************************************************************/
@@ -333,9 +334,9 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
// Get the current breakpoint position and other data
//
var index = info.index.slice(0), i = info.index.shift(),
- m = this.data.length, W, broken = (info.index.length > 0), better = false;
+ m = this.data.length, W, w, scanW, broken = (info.index.length > 0), better = false;
if (i == null) {i = -1}; if (!broken) {i++; info.W += info.w; info.w = 0}
- info.scanW = info.W; info.nest++;
+ scanW = info.scanW = info.W; info.nest++;
//
// Create indices that include the delimiters and separators
//
@@ -358,15 +359,15 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
var k = this.dataI[i];
if (this.data[k]) {
if (this.data[k].SVGbetterBreak(info,state)) {
- better = true; index = [i].concat(info.index); W = info.W;
+ better = true; index = [i].concat(info.index); W = info.W; w = info.w;
if (info.penalty === PENALTY.newline) {info.index = index; info.nest--; return true}
}
- if (!broken) {this.SVGaddWidth(k,info)}
+ if (!broken) {scanW = this.SVGaddWidth(k,info,scanW)}
}
info.index = []; i++; broken = false;
}
info.nest--; info.index = index;
- if (better) {info.W = W}
+ if (better) {info.W = W; info.w = w}
return better;
},