scribble-math/jax/output/HTML-CSS/autoload/mtable.js

17 lines
9.8 KiB
JavaScript

/*
* /MathJax/jax/output/HTML-CSS/autoload/mtable.js
*
* Copyright (c) 2010 Design Science, Inc.
*
* Part of the MathJax library.
* See http://www.mathjax.org for details.
*
* Licensed under the Apache License, Version 2.0;
* you may not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var c="1.1.2";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a.mtable.Augment({toHTML:function(ab){ab=this.HTMLcreateSpan(ab);if(this.data.length===0){return ab}var aN=this.getValues("columnalign","rowalign","columnspacing","rowspacing","columnwidth","equalcolumns","equalrows","columnlines","rowlines","frame","framespacing","align","useHeight","width","side","minlabelspacing");var t=aN.width.match(/%$/);var aj=b.createStack(ab);var ap=this.HTMLgetScale(),v=this.HTMLgetMu(ab),aL=-1;var B=[],L=[],l=[],R=[],N=[],aJ,aI,z=-1,aG,u,aB,T;var aP=b.FONTDATA.baselineskip*ap*aN.useHeight,ac=b.FONTDATA.lineH*ap,ai=b.FONTDATA.lineD*ap;for(aJ=0,aG=this.data.length;aJ<aG;aJ++){T=this.data[aJ];aB=(T.type==="mlabeledtr"?aL:0);R[aJ]=[];B[aJ]=L[aJ]=0;for(aI=aB,u=T.data.length+aB;aI<u;aI++){if(l[aI]==null){if(aI>z){z=aI}N[aI]=b.createStack(b.createBox(aj));l[aI]=-b.BIGDIMEN}R[aJ][aI]=b.createBox(N[aI]);b.Measured(T.data[aI-aB].toHTML(R[aJ][aI]),R[aJ][aI]);if(T.data[aI-aB].isMultiline){R[aJ][aI].style.width="100%"}if(R[aJ][aI].bbox.h>B[aJ]){B[aJ]=R[aJ][aI].bbox.h}if(R[aJ][aI].bbox.d>L[aJ]){L[aJ]=R[aJ][aI].bbox.d}if(R[aJ][aI].bbox.w>l[aI]){l[aI]=R[aJ][aI].bbox.w}}}if(B[0]+L[0]){B[0]=Math.max(B[0],ac)}if(B[R.length-1]+L[R.length-1]){L[R.length-1]=Math.max(L[R.length-1],ai)}var ao=aN.columnspacing.split(/ /),U=aN.rowspacing.split(/ /),ak=aN.columnalign.split(/ /),O=aN.rowalign.split(/ /),Q=aN.columnlines.split(/ /),k=aN.rowlines.split(/ /),at=aN.columnwidth.split(/ /),ax=[];for(aJ=0,aG=ao.length;aJ<aG;aJ++){ao[aJ]=b.length2em(ao[aJ],v)}for(aJ=0,aG=U.length;aJ<aG;aJ++){U[aJ]=b.length2em(U[aJ],v)}while(ao.length<z){ao.push(ao[ao.length-1])}while(ak.length<=z){ak.push(ak[ak.length-1])}while(Q.length<z){Q.push(Q[Q.length-1])}while(at.length<=z){at.push(at[at.length-1])}while(U.length<R.length){U.push(U[U.length-1])}while(O.length<=R.length){O.push(O[O.length-1])}while(k.length<R.length){k.push(k[k.length-1])}if(N[aL]){ak[aL]=(aN.side.substr(0,1)==="l"?"left":"right");ao[aL]=-l[aL]}for(aJ=0,aG=R.length;aJ<aG;aJ++){T=this.data[aJ];ax[aJ]=[];if(T.rowalign){O[aJ]=T.rowalign}if(T.columnalign){ax[aJ]=T.columnalign.split(/ /);while(ax[aJ].length<=z){ax[aJ].push(ax[aJ][ax[aJ].length-1])}}}if(aN.equalrows){var V=Math.max.apply(Math,B),ar=Math.max.apply(Math,L);for(aJ=0,aG=R.length;aJ<aG;aJ++){aB=((V+ar)-(B[aJ]+L[aJ]))/2;B[aJ]+=aB;L[aJ]+=aB}}var aC=B[0]+L[R.length-1];for(aJ=0,aG=R.length-1;aJ<aG;aJ++){aC+=Math.max((B[aJ]+L[aJ]?aP:0),L[aJ]+B[aJ+1]+U[aJ])}var af=0,ad=0,aD,aM=aC;if(aN.frame!=="none"||(aN.columnlines+aN.rowlines).match(/solid|dashed/)){af=b.length2em(aN.framespacing.split(/[, ]+/)[0],v);ad=b.length2em(aN.framespacing.split(/[, ]+/)[1],v);aM=aC+2*ad}var h,aA,aF="";if(typeof(aN.align)!=="string"){aN.align=String(aN.align)}if(aN.align.match(/(top|bottom|center|baseline|axis)( +(-?\d+))?/)){aF=RegExp.$3;aN.align=RegExp.$1}else{aN.align="center"}if(aF!==""){aF=parseInt(aF);if(aF<0){aF=R.length+1+aF}if(aF<1){aF=1}else{if(aF>R.length){aF=R.length}}h=0;aA=-(aC+ad)+B[0];for(aJ=0,aG=aF-1;aJ<aG;aJ++){var aa=Math.max((B[aJ]+L[aJ]?aP:0),L[aJ]+B[aJ+1]+U[aJ]);h+=aa;aA+=aa}}else{h=({top:-(B[0]+ad),bottom:aC+ad-B[0],center:aC/2-B[0],baseline:aC/2-B[0],axis:aC/2+b.TeX.axis_height*ap-B[0]})[aN.align];aA=({top:-(aC+2*ad),bottom:0,center:-(aC/2+ad),baseline:-(aC/2+ad),axis:b.TeX.axis_height*ap-aC/2-ad})[aN.align]}var au,az=0,X=0,Z=0,aE=0,aK=0,q=[],G=[],al=1;if(aN.equalcolumns&&aN.width!=="auto"){if(t){au=(100/(z+1)).toFixed(2).replace(/\.?0+$/,"")+"%";for(aJ=0,aG=Math.min(z+1,at.length);aJ<aG;aJ++){at[aJ]=au}au=0;az=1;aK=z+1;for(aJ=0,aG=Math.min(z+1,ao.length);aJ<aG;aJ++){au+=ao[aJ]}}else{au=b.length2em(aN.width,v);for(aJ=0,aG=Math.min(z+1,ao.length);aJ<aG;aJ++){au-=ao[aJ]}au/=z+1;for(aJ=0,aG=Math.min(z+1,at.length);aJ<aG;aJ++){l[aJ]=au}}}else{for(aJ=0,aG=Math.min(z+1,at.length);aJ<aG;aJ++){if(at[aJ]==="auto"){X+=l[aJ]}else{if(at[aJ]==="fit"){G[aK]=aJ;aK++;X+=l[aJ]}else{if(at[aJ].match(/%$/)){q[aE]=aJ;aE++;Z+=l[aJ];az+=b.length2em(at[aJ],v,1)}else{l[aJ]=b.length2em(at[aJ],v);X+=l[aJ]}}}}if(t){au=0;for(aJ=0,aG=Math.min(z,ao.length);aJ<aG;aJ++){au+=ao[aJ]}if(az>0.98){al=0.98/az;az=0.98}}else{if(aN.width==="auto"){if(az>0.98){al=Z/(X+Z);au=X+Z}else{au=X/(1-az)}}else{au=b.length2em(aN.width,v);for(aJ=0,aG=Math.min(z+1,ao.length);aJ<aG;aJ++){au-=ao[aJ]}}for(aJ=0,aG=q.length;aJ<aG;aJ++){l[q[aJ]]=b.length2em(at[q[aJ]],v,au*al);X+=l[q[aJ]]}if(Math.abs(au-X)>0.01){if(aK&&au>X){au=(au-X)/aK;for(aJ=0,aG=G.length;aJ<aG;aJ++){l[G[aJ]]+=au}}else{au=au/X;for(aI=0;aI<=z;aI++){l[aI]*=au}}}if(aN.equalcolumns){var ag=Math.max.apply(Math,l);for(aI=0;aI<=z;aI++){l[aI]=ag}}}}var av=h,o,w,aH;aB=(N[aL]?aL:0);for(aI=aB;aI<=z;aI++){for(aJ=0,aG=R.length;aJ<aG;aJ++){if(R[aJ][aI]){aB=(this.data[aJ].type==="mlabeledtr"?aL:0);var an=this.data[aJ].data[aI-aB];if(an.HTMLcanStretch("Horizontal")){R[aJ][aI].bbox=an.HTMLstretchH(N[aI],l[aI]).bbox}else{if(an.HTMLcanStretch("Vertical")){var E=an.CoreMO();var ae=E.symmetric;E.symmetric=false;R[aJ][aI].bbox=an.HTMLstretchV(N[aI],B[aJ],L[aJ]).bbox;E.symmetric=ae}}aH=an.rowalign||this.data[aJ].rowalign||O[aJ];o=({top:B[aJ]-R[aJ][aI].bbox.h,bottom:R[aJ][aI].bbox.d-L[aJ],center:((B[aJ]-L[aJ])-(R[aJ][aI].bbox.h-R[aJ][aI].bbox.d))/2,baseline:0,axis:0})[aH];aH=(an.columnalign||ax[aJ][aI]||ak[aI]);b.alignBox(R[aJ][aI],aH,av+o)}if(aJ<R.length-1){av-=Math.max((B[aJ]+L[aJ]?aP:0),L[aJ]+B[aJ+1]+U[aJ])}}av=h}if(t){var r=b.createBox(aj);r.style.left=r.style.top=0;r.style.right=b.Em(au+2*af);r.style.display="inline-block";r.style.height="0px";if(b.msieRelativeWidthBug){r=b.createBox(r);r.style.position="relative";r.style.height="1em";r.style.width="100%";r.bbox=aj.bbox}var aq=0,ay=af,aO,g;if(aK){aO=100*(1-az)/aK,g=X/aK}else{aO=100*(1-az)/(z+1);g=X/(z+1)}for(aI=0;aI<=z;aI++){b.placeBox(N[aI].parentNode,0,0);N[aI].style.position="relative";N[aI].style.left=b.Em(ay);N[aI].style.width="100%";N[aI].parentNode.parentNode.removeChild(N[aI].parentNode);var e=b.createBox(r);b.addBox(e,N[aI]);N[aI]=e;var ah=e.style;ah.display="inline-block";ah.left=aq+"%";if(at[aI].match(/%$/)){var K=parseFloat(at[aI])*al;if(aK===0){ah.width=(aO+K)+"%";aq+=aO+K;e=b.createBox(e);b.addBox(e,N[aI].firstChild);e.style.left=0;e.style.right=b.Em(g);ay-=g}else{ah.width=K+"%";aq+=K}}else{if(at[aI]==="fit"||aK===0){ah.width=aO+"%";e=b.createBox(e);b.addBox(e,N[aI].firstChild);e.style.left=0;e.style.right=b.Em(g-l[aI]);ay+=l[aI]-g;aq+=aO}else{ah.width=b.Em(l[aI]);ay+=l[aI]}}if(b.msieRelativeWidthBug){b.addText(e.firstChild,b.NBSP);e.firstChild.style.position="relative"}ay+=ao[aI];if(Q[aI]!=="none"&&aI<z&&aI!==aL){w=b.createBox(r);w.style.left=aq+"%";w=b.createRule(w,aM,0,1.25/b.em);w.style.position="absolute";w.bbox={h:aM,d:0,w:0,rw:1.25/b.em,lw:0};w.parentNode.bbox=aj.bbox;b.placeBox(w,ay-ao[aI]/2,aA,true);w.style.borderStyle=Q[aI]}}}else{var aw=af;for(aI=0;aI<=z;aI++){if(!N[aI].bbox.width){b.setStackWidth(N[aI],l[aI])}if(at[aI]!=="auto"&&at[aI]!=="fit"){N[aI].bbox.width=l[aI];N[aI].bbox.isFixed=true}b.placeBox(N[aI].parentNode,aw,0);aw+=l[aI]+ao[aI];if(Q[aI]!=="none"&&aI<z&&aI!==aL){w=b.createRule(aj,aM,0,1.25/b.em);b.addBox(aj,w);w.bbox={h:aM,d:0,w:0,rw:1.25/b.em,lw:0};b.placeBox(w,aw-ao[aI]/2,aA,true);w.style.borderStyle=Q[aI]}}}aD=aj.bbox.w+af;var d;if(aN.frame!=="none"){d=b.createFrame(aj,aM,0,aD,1.25/b.em,aN.frame);b.addBox(aj,d);b.placeBox(d,0,aA,true);if(t){d.style.width="100%"}}av=h;for(aJ=0,aG=R.length-1;aJ<aG;aJ++){o=Math.max(aP,L[aJ]+B[aJ+1]+U[aJ]);if(k[aJ]!=="none"){w=b.createRule(aj,1.25/b.em,0,aD);b.addBox(aj,w);w.bbox={h:1.25/b.em,d:0,w:aD,rw:aD,lw:0};b.placeBox(w,0,av-L[aJ]-(o-L[aJ]-B[aJ+1])/2,true);if(k[aJ]==="dashed"||t){w.style.borderTop=w.style.height+" "+k[aJ];w.style.height=0;w.style.width=w.style.borderLeftWidth;w.style.borderLeft="";if(t){w.style.width="100%"}}}av-=o}if(t){ab.bbox.width=aN.width;aj.style.width="100%"}if(N[aL]){var S=this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift");if(S.indentalignfirst!==a.INDENTALIGN.INDENTALIGN){S.indentalign=S.indentalignfirst}if(S.indentalign===a.INDENTALIGN.AUTO){S.indentalign=this.displayAlign}if(S.indentshiftfirst!==a.INDENTSHIFT.INDENTSHIFT){S.indentshift=S.indentshiftfirst}if(S.indentshift==="auto"){S.indentshift=this.displayIndent}var I=b.createStack(ab,false,"100%");b.addBox(I,aj);b.alignBox(aj,S.indentalign,0);if(S.indentshift&&S.indentalign!==a.INDENTALIGN.CENTER){aj.style[{left:"Left",right:"Right"}[S.indentalign]]=b.Em(b.length2em(S.indentshift,v))}N[aL].parentNode.parentNode.removeChild(N[aL].parentNode);b.addBox(I,N[aL]);b.alignBox(N[aL],ak[aL],0);if(b.msieRelativeWidthBug){aj.style.top=N[aL].style.top=""}if(t){aj.style.width=aN.width;ab.bbox.width="100%"}N[aL].style.marginRight=N[aL].style.marginLeft=b.Em(b.length2em(aN.minlabelspacing,v))}if(!t){this.HTMLhandleSpace(ab)}var am=this.HTMLhandleColor(ab);if(am&&t){if(!d){d=b.createFrame(aj,aM,0,aD,0,"none");b.addBox(aj,d);b.placeBox(d,0,aA,true);d.style.width="100%"}d.style.backgroundColor=am.style.backgroundColor;d.parentNode.insertBefore(d,d.parentNode.firstChild);am.parentNode.removeChild(am)}return ab},HTMLhandleSpace:function(d){d.style.paddingLeft=d.style.paddingRight=".1667em"}});a.mtd.Augment({toHTML:function(e,d,g){e=this.HTMLcreateSpan(e);if(this.data[0]){var f=b.Measured(this.data[0].toHTML(e),e);if(g!=null){b.Remeasured(this.data[0].HTMLstretchV(e,d,g),e)}else{if(d!=null){b.Remeasured(this.data[0].HTMLstretchH(e,d),e)}}e.bbox=f.bbox}this.HTMLhandleSpace(e);this.HTMLhandleColor(e);return e},HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});MathJax.Hub.Startup.signal.Post("HTML-CSS mtable Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/mtable.js")});