/* * /MathJax-v2/jax/output/HTML-CSS/autoload/multiline.js * * Copyright (c) 2009-2018 The MathJax Consortium * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var d="2.7.9";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];var f=a.mo().With({HTMLspanElement:function(){return{bbox:{w:0},style:{}}}});var e={newline:0,nobreak:1000000,goodbreak:[-200],badbreak:[+200],auto:[0],maxwidth:1.33,toobig:800,nestfactor:400,spacefactor:-100,spaceoffset:2,spacelimit:1,fence:500,close:500};var c={linebreakstyle:"after"};a.mbase.Augment({HTMLlinebreakPenalty:e,HTMLmultiline:function(o){var p=this;while(p.inferred||(p.parent&&p.parent.type==="mrow"&&p.isEmbellished())){p=p.parent}var m=((p.type==="math"&&p.Get("display")==="block")||p.type==="mtd");p.isMultiline=true;var q=this.getValues("linebreak","linebreakstyle","lineleading","linebreakmultchar","indentalign","indentshift","indentalignfirst","indentshiftfirst","indentalignlast","indentshiftlast");if(q.linebreakstyle===a.LINEBREAKSTYLE.INFIXLINEBREAKSTYLE){q.linebreakstyle=this.Get("infixlinebreakstyle")}q.lineleading=b.length2em(q.lineleading,1,0.5);this.HTMLremoveColor(o);var n=b.createStack(o);this.HTMLgetScale();var g={n:0,Y:0,scale:this.scale||1,isTop:m,values:{},VALUES:q},l=this.HTMLgetAlign(g,{}),i=this.HTMLgetShift(g,{},l),h=[],j={index:[],penalty:e.nobreak,w:0,W:i,shift:i,scanW:i,nest:0},k=false;while(this.HTMLbetterBreak(j,g,true)&&(j.scanW>=b.linebreakWidth||j.penalty===e.newline)){this.HTMLaddLine(n,h,j.index,g,j.values,k);h=j.index.slice(0);k=true;l=this.HTMLgetAlign(g,j.values);i=this.HTMLgetShift(g,j.values,l);if(l===a.INDENTALIGN.CENTER){i=0}j.W=j.shift=j.scanW=i;j.penalty=e.nobreak}g.isLast=true;this.HTMLaddLine(n,h,[],g,c,k);if(p.type==="math"){n.style.width=o.bbox.width="100%"}this.HTMLhandleSpace(o);this.HTMLhandleColor(o);o.bbox.isMultiline=true;return o},HTMLbetterBreak:function(k,g,r){if(this.isToken){return false}if(this.isEmbellished()){k.embellished=this;return this.CoreMO().HTMLbetterBreak(k,g)}if(this.linebreakContainer){return false}var q=k.index.slice(0),o=k.index.shift(),n=this.data.length,l,s,j,p=(k.index.length>0),h=false;if(o==null){o=-1}if(!p){o++;k.W+=k.w;k.w=0}j=k.scanW=k.W;k.nest++;while(o0){var l=b.FONTDATA.baselineskip*g.scale;var j=(g.values.lineleading==null?g.VALUES:g.values).lineleading*g.scale;g.Y-=Math.max(l,g.d+line.bbox.h+j)}b.alignBox(line,n,g.Y,i);g.d=line.bbox.d;g.values=p;g.n++},HTMLgetAlign:function(j,g){var k=g,h=j.values,i=j.VALUES,l;if(j.n===0){l=k.indentalignfirst||h.indentalignfirst||i.indentalignfirst}else{if(j.isLast){l=h.indentalignlast||i.indentalignlast}else{l=h.indentalign||i.indentalign}}if(l===a.INDENTALIGN.INDENTALIGN){l=h.indentalign||i.indentalign}if(l===a.INDENTALIGN.AUTO){l=(j.isTop?this.displayAlign:a.INDENTALIGN.LEFT)}return l},HTMLgetShift:function(l,i,n){var m=i,j=l.values,k=l.VALUES,h;if(l.n===0){h=m.indentshiftfirst||j.indentshiftfirst||k.indentshiftfirst}else{if(l.isLast){h=j.indentshiftlast||k.indentshiftlast}else{h=j.indentshift||k.indentshift}}if(h===a.INDENTSHIFT.INDENTSHIFT){h=j.indentshift||k.indentshift}if(h==="auto"||h===""){h="0"}h=b.length2em(h,1,b.cwidth);if(l.isTop&&this.displayIndent!=="0"){var g=b.length2em(this.displayIndent,1,b.cwidth);h+=(n===a.INDENTALIGN.RIGHT?-g:g)}return h},HTMLmoveLine:function(p,g,m,o,h){var l=p[0],k=g[0];if(l==null){l=-1}if(k==null){k=this.data.length-1}if(l===k&&p.length>1){this.data[l].HTMLmoveSlice(p.slice(1),g.slice(1),m,o,h,"paddingLeft")}else{var n=o.last;o.last=false;while(l0),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]].HTMLmoveSlice(h.slice(1),m.slice(1),p,g,r,"paddingLeft")}else{var q=g.last;g.last=false;var l=this.dataI[o];while(o0),h=false;if(!n){j.W+=j.w;j.w=0}k=j.scanW=j.W;if(m==null){this.HTMLbaseW=this.data[this.base].HTMLspanElement().bbox.w;this.HTMLdw=this.HTMLspanElement().bbox.w-this.HTMLbaseW}if(this.data[this.base].HTMLbetterBreak(j,g)){h=true;o=[this.base].concat(j.index);l=j.W;p=j.w;if(j.penalty===e.newline){h=n=true}}if(!n){this.HTMLaddWidth(this.base,j,k)}j.scanW+=this.HTMLdw;j.W=j.scanW;j.index=[];if(h){j.W=l;j.w=p;j.index=o}return h},HTMLmoveLine:function(h,j,m,g,n){if(this.data[this.base]){if(h.length>1){this.data[this.base].HTMLmoveSlice(h.slice(1),j.slice(1),m,g,n,"paddingLeft")}else{if(j.length<=1){this.data[this.base].HTMLmoveSpan(m,g,n)}else{this.data[this.base].HTMLmoveSlice([],j.slice(1),m,g,n,"paddingRight")}}}if(j.length===0){var o=this.data[this.sup]||this.data[this.sub];if(o&&this.HTMLnotEmpty(o)){var k=o.HTMLspanElement().parentNode;if(o.href){k=k.parentNode}var l=k.parentNode;if(this.data[this.base]){var i=this.data[this.base].HTMLspanElement().bbox.ic;if(i){l.style.marginLeft=b.Em(-i)}l.removeChild(l.firstChild)}for(k=l.firstChild;k;k=k.nextSibling){k.style.left=b.Em(b.unEm(k.style.left)-this.HTMLbaseW)}l.bbox.w-=this.HTMLbaseW;l.style.width=b.Em(l.bbox.w);this.HTMLcombineBBoxes(l,m.bbox);m.appendChild(l)}}}});a.mmultiscripts.Augment({HTMLbetterBreak:function(k,h){if(!this.data[this.base]){return false}var o=k.index.slice(0);k.index.shift();var m,p,l,n=(k.index.length>0),j=false;if(!n){k.W+=k.w;k.w=0}k.scanW=k.W;var q=this.HTMLspanElement().bbox,i=this.data[this.base].HTMLspanElement().bbox;var g=q.w-i.w;k.scanW+=q.dx;l=k.scanW;if(this.data[this.base].HTMLbetterBreak(k,h)){j=true;o=[this.base].concat(k.index);m=k.W;p=k.w;if(k.penalty===e.newline){j=n=true}}if(!n){this.HTMLaddWidth(this.base,k,l)}k.scanW+=g;k.W=k.scanW;k.index=[];if(j){k.W=m;k.w=p;k.index=o}return j},HTMLmoveLine:function(i,j,p,h,q){var n=this.HTMLspanElement(),l=n.bbox,o=n.firstChild,g={};if(b.msiePaddingWidthBug){o=o.nextSibling}var m=o.firstChild;while(m){if(m.bbox&&m.bbox.name){g[m.bbox.name]=m}m=m.nextSibling}if(i.length<1){if(g.presub||g.presup){var k=b.createStack(p);if(g.presup){b.addBox(k,g.presup);b.placeBox(g.presup,l.dx-g.presup.bbox.w,l.u)}if(g.presub){b.addBox(k,g.presub);b.placeBox(g.presub,l.dx+l.delta-g.presub.bbox.w,-l.v)}this.HTMLcombineBBoxes(k,p.bbox);p.appendChild(k);k.style.width=b.Em(l.dx)}}if(this.data[this.base]){if(i.length>1){this.data[this.base].HTMLmoveSlice(i.slice(1),j.slice(1),p,h,q,"paddingLeft")}else{if(j.length<=1){this.data[this.base].HTMLmoveSpan(p,h,q)}else{this.data[this.base].HTMLmoveSlice([],j.slice(1),p,h,q,"paddingRight")}}}if(j.length===0){if(this.data[this.base]){o.removeChild(o.firstChild)}for(m=o.firstChild;m;m=m.nextSibling){m.style.left=b.Em(b.unEm(m.style.left)-l.px)}o.bbox.w-=l.px;o.style.width=b.Em(o.bbox.w);this.HTMLcombineBBoxes(o,p.bbox);p.appendChild(o)}}});a.mo.Augment({HTMLbetterBreak:function(i,g){if(i.values&&i.values.id===this.spanID){return false}var q=this.getValues("linebreak","linebreakstyle","lineleading","linebreakmultchar","indentalign","indentshift","indentalignfirst","indentshiftfirst","indentalignlast","indentshiftlast","texClass","fence");if(q.linebreakstyle===a.LINEBREAKSTYLE.INFIXLINEBREAKSTYLE){q.linebreakstyle=this.Get("infixlinebreakstyle")}if(q.texClass===a.TEXCLASS.OPEN){i.nest++}if(q.texClass===a.TEXCLASS.CLOSE&&i.nest){i.nest--}var j=i.scanW,k=(i.embellished||this);delete i.embellished;var o=k.HTMLspanElement(),p=o.bbox.w;if(o.style.paddingLeft){p+=b.unEm(o.style.paddingLeft)}if(q.linebreakstyle===a.LINEBREAKSTYLE.AFTER){j+=p;p=0}if(j-i.shift===0&&q.linebreak!==a.LINEBREAK.NEWLINE){return false}var l=b.linebreakWidth-j;if(g.n===0&&(q.indentshiftfirst!==g.VALUES.indentshiftfirst||q.indentalignfirst!==g.VALUES.indentalignfirst)){var m=this.HTMLgetAlign(g,q),h=this.HTMLgetShift(g,q,m);l+=(i.shift-h)}var n=Math.floor(l/b.linebreakWidth*1000);if(n<0){n=e.toobig-3*n}if(q.fence){n+=e.fence}if((q.linebreakstyle===a.LINEBREAKSTYLE.AFTER&&q.texClass===a.TEXCLASS.OPEN)||q.texClass===a.TEXCLASS.CLOSE){n+=e.close}n+=i.nest*e.nestfactor;var r=e[q.linebreak||a.LINEBREAK.AUTO]||0;if(!MathJax.Object.isArray(r)){if(r||l>=0){n=r*i.nest}}else{n=Math.max(1,n+r[0]*i.nest)}if(n>=i.penalty){return false}i.penalty=n;i.values=q;i.W=j;i.w=p;q.lineleading=b.length2em(q.lineleading,1,g.VALUES.lineleading);q.id=this.spanID;return true}});a.mspace.Augment({HTMLbetterBreak:function(h,g){if(h.values&&h.values.id===this.spanID){return false}var o=this.getValues("linebreak");var l=o.linebreak;if(!l||this.hasDimAttr()){l=a.LINEBREAK.AUTO}var i=h.scanW,m=this.HTMLspanElement(),n=m.bbox.w;if(m.style.paddingLeft){n+=b.unEm(m.style.paddingLeft)}if(i-h.shift===0){return false}var j=b.linebreakWidth-i;var k=Math.floor(j/b.linebreakWidth*1000);if(k<0){k=e.toobig-3*k}k+=h.nest*e.nestfactor;var p=e[l]||0;if(l===a.LINEBREAK.AUTO&&n>=e.spacelimit&&!this.mathbackground&&!this.background){p=[(n+e.spaceoffset)*e.spacefactor]}if(!MathJax.Object.isArray(p)){if(p||j>=0){k=p*h.nest}}else{k=Math.max(1,k+p[0]*h.nest)}if(k>=h.penalty){return false}h.penalty=k;h.values=o;h.W=i;h.w=n;o.lineleading=g.VALUES.lineleading;o.linebreakstyle="before";o.id=this.spanID;return true}});MathJax.Hub.Register.StartupHook("TeX mathchoice Ready",function(){a.TeXmathchoice.Augment({HTMLbetterBreak:function(h,g){return this.Core().HTMLbetterBreak(h,g)},HTMLmoveLine:function(k,g,i,j,h){return this.Core().HTMLmoveSlice(k,g,i,j,h)}})});a.maction.Augment({HTMLbetterBreak:function(h,g){return this.Core().HTMLbetterBreak(h,g)},HTMLmoveLine:function(k,g,i,j,h){return this.Core().HTMLmoveSlice(k,g,i,j,h)},HTMLmoveSlice:function(h,j,m,g,o,k){var p=document.getElementById("MathJax-HitBox-"+this.spanID+b.idPostfix);if(p){p.parentNode.removeChild(p)}var l=this.SUPER(arguments).HTMLmoveSlice.apply(this,arguments);if(j.length===0){m=this.HTMLspanElement();var i=0;while(m){p=this.HTMLhandleHitBox(m,"-Continue-"+i);m=m.nextMathJaxSpan;i++}}return l}});a.semantics.Augment({HTMLbetterBreak:function(h,g){return(this.data[0]?this.data[0].HTMLbetterBreak(h,g):false)},HTMLmoveLine:function(k,g,i,j,h){return(this.data[0]?this.data[0].HTMLmoveSlice(k,g,i,j,h):null)}});MathJax.Hub.Startup.signal.Post("HTML-CSS multiline Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/multiline.js")});