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

17 lines
10 KiB
JavaScript

/*
* /MathJax/jax/output/HTML-CSS/autoload/mtable.js
*
* Copyright (c) 2012 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="2.0";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a.mtable.Augment({toHTML:function(r){r=this.HTMLcreateSpan(r);if(this.data.length===0){return r}var G=this.getValues("columnalign","rowalign","columnspacing","rowspacing","columnwidth","equalcolumns","equalrows","columnlines","rowlines","frame","framespacing","align","useHeight","width","side","minlabelspacing");var aG=G.width.match(/%$/);var av=b.createStack(r);var aD=this.HTMLgetScale(),ay=this.HTMLgetMu(r),az=-1;var ao=[],ar=[],ai=[],au=[],at=[],ad,ac,an=-1,ab,am,V,aC,O,aA,aK=[];var aj=b.FONTDATA.baselineskip*aD*G.useHeight,E=b.FONTDATA.lineH*aD,L=b.FONTDATA.lineD*aD;for(ad=0,ab=this.data.length;ad<ab;ad++){aC=this.data[ad];V=(aC.type==="mlabeledtr"?az:0);au[ad]=[];ao[ad]=ar[ad]=0;for(ac=V,am=aC.data.length+V;ac<am;ac++){if(ai[ac]==null){if(ac>an){an=ac}at[ac]=b.createStack(b.createBox(av));ai[ac]=-b.BIGDIMEN}au[ad][ac]=b.createBox(at[ac]);aK.push(aC.data[ac-V].toHTML(au[ad][ac]))}}b.MeasureSpans(aK);for(ad=0,ab=this.data.length;ad<ab;ad++){aC=this.data[ad];V=(aC.type==="mlabeledtr"?az:0);for(ac=V,am=aC.data.length+V;ac<am;ac++){O=aC.data[ac-V];if(O.isMultiline){au[ad][ac].style.width="100%"}if(au[ad][ac].bbox.h>ao[ad]){ao[ad]=au[ad][ac].bbox.h}if(au[ad][ac].bbox.d>ar[ad]){ar[ad]=au[ad][ac].bbox.d}if(au[ad][ac].bbox.w>ai[ac]){ai[ac]=au[ad][ac].bbox.w}if(O.isEmbellished()){aA=O.CoreMO();var aO=aA.Get("minsize",true);if(aO&&aA.HTMLcanStretch("Horizontal")){var aw=aA.HTMLspanElement().bbox.w;au[ad][ac].dw=b.length2em(aO,ay,aw)-aw;aO=au[ad][ac].bbox.w+au[ad][ac].dw;if(aO>ai[ac]){ai[ac]=aO}}}}}if(ao[0]+ar[0]){ao[0]=Math.max(ao[0],E)}if(ao[au.length-1]+ar[au.length-1]){ar[au.length-1]=Math.max(ar[au.length-1],L)}var ax=G.columnspacing.split(/ /),aM=G.rowspacing.split(/ /),e=G.columnalign.split(/ /),z=G.rowalign.split(/ /),d=G.columnlines.split(/ /),v=G.rowlines.split(/ /),aI=G.columnwidth.split(/ /),T=[];for(ad=0,ab=ax.length;ad<ab;ad++){ax[ad]=b.length2em(ax[ad],ay)}for(ad=0,ab=aM.length;ad<ab;ad++){aM[ad]=b.length2em(aM[ad],ay)}while(ax.length<an){ax.push(ax[ax.length-1])}while(e.length<=an){e.push(e[e.length-1])}while(d.length<an){d.push(d[d.length-1])}while(aI.length<=an){aI.push(aI[aI.length-1])}while(aM.length<au.length){aM.push(aM[aM.length-1])}while(z.length<=au.length){z.push(z[z.length-1])}while(v.length<au.length){v.push(v[v.length-1])}if(at[az]){e[az]=(G.side.substr(0,1)==="l"?"left":"right");ax[az]=-ai[az]}for(ad=0,ab=au.length;ad<ab;ad++){aC=this.data[ad];T[ad]=[];if(aC.rowalign){z[ad]=aC.rowalign}if(aC.columnalign){T[ad]=aC.columnalign.split(/ /);while(T[ad].length<=an){T[ad].push(T[ad][T[ad].length-1])}}}if(G.equalrows){var aB=Math.max.apply(Math,ao),U=Math.max.apply(Math,ar);for(ad=0,ab=au.length;ad<ab;ad++){V=((aB+U)-(ao[ad]+ar[ad]))/2;ao[ad]+=V;ar[ad]+=V}}var aP=ao[0]+ar[au.length-1];for(ad=0,ab=au.length-1;ad<ab;ad++){aP+=Math.max((ao[ad]+ar[ad]?aj:0),ar[ad]+ao[ad+1]+aM[ad])}var aF=0,aE=0,aR,g=aP;if(G.frame!=="none"||(G.columnlines+G.rowlines).match(/solid|dashed/)){aF=b.length2em(G.framespacing.split(/[, ]+/)[0],ay);aE=b.length2em(G.framespacing.split(/[, ]+/)[1],ay);g=aP+2*aE}var ah,aQ,Z="";if(typeof(G.align)!=="string"){G.align=String(G.align)}if(G.align.match(/(top|bottom|center|baseline|axis)( +(-?\d+))?/)){Z=RegExp.$3;G.align=RegExp.$1}else{G.align=this.defaults.align}if(Z!==""){Z=parseInt(Z);if(Z<0){Z=au.length+1+Z}if(Z<1){Z=1}else{if(Z>au.length){Z=au.length}}ah=0;aQ=-(aP+aE)+ao[0];for(ad=0,ab=Z-1;ad<ab;ad++){var K=Math.max((ao[ad]+ar[ad]?aj:0),ar[ad]+ao[ad+1]+aM[ad]);ah+=K;aQ+=K}}else{ah=({top:-(ao[0]+aE),bottom:aP+aE-ao[0],center:aP/2-ao[0],baseline:aP/2-ao[0],axis:aP/2+b.TeX.axis_height*aD-ao[0]})[G.align];aQ=({top:-(aP+2*aE),bottom:0,center:-(aP/2+aE),baseline:-(aP/2+aE),axis:b.TeX.axis_height*aD-aP/2-aE})[G.align]}var aa,ae=0,w=0,I=0,X=0,af=0,al=[],aq=[],Q=1;if(G.equalcolumns&&G.width!=="auto"){if(aG){aa=(100/(an+1)).toFixed(2).replace(/\.?0+$/,"")+"%";for(ad=0,ab=Math.min(an+1,aI.length);ad<ab;ad++){aI[ad]=aa}aa=0;ae=1;af=an+1;for(ad=0,ab=Math.min(an+1,ax.length);ad<ab;ad++){aa+=ax[ad]}}else{aa=b.length2em(G.width,ay);for(ad=0,ab=Math.min(an+1,ax.length);ad<ab;ad++){aa-=ax[ad]}aa/=an+1;for(ad=0,ab=Math.min(an+1,aI.length);ad<ab;ad++){ai[ad]=aa}}}else{for(ad=0,ab=Math.min(an+1,aI.length);ad<ab;ad++){if(aI[ad]==="auto"){w+=ai[ad]}else{if(aI[ad]==="fit"){aq[af]=ad;af++;w+=ai[ad]}else{if(aI[ad].match(/%$/)){al[X]=ad;X++;I+=ai[ad];ae+=b.length2em(aI[ad],ay,1)}else{ai[ad]=b.length2em(aI[ad],ay);w+=ai[ad]}}}}if(aG){aa=0;for(ad=0,ab=Math.min(an,ax.length);ad<ab;ad++){aa+=ax[ad]}if(ae>0.98){Q=0.98/ae;ae=0.98}}else{if(G.width==="auto"){if(ae>0.98){Q=I/(w+I);aa=w+I}else{aa=w/(1-ae)}}else{aa=b.length2em(G.width,ay);for(ad=0,ab=Math.min(an+1,ax.length);ad<ab;ad++){aa-=ax[ad]}}for(ad=0,ab=al.length;ad<ab;ad++){ai[al[ad]]=b.length2em(aI[al[ad]],ay,aa*Q);w+=ai[al[ad]]}if(Math.abs(aa-w)>0.01){if(af&&aa>w){aa=(aa-w)/af;for(ad=0,ab=aq.length;ad<ab;ad++){ai[aq[ad]]+=aa}}else{aa=aa/w;for(ac=0;ac<=an;ac++){ai[ac]*=aa}}}if(G.equalcolumns){var N=Math.max.apply(Math,ai);for(ac=0;ac<=an;ac++){ai[ac]=N}}}}var R=ah,o,q,aN;V=(at[az]?az:0);for(ac=V;ac<=an;ac++){for(ad=0,ab=au.length;ad<ab;ad++){if(au[ad][ac]){V=(this.data[ad].type==="mlabeledtr"?az:0);O=this.data[ad].data[ac-V];if(O.HTMLcanStretch("Horizontal")){au[ad][ac].bbox=O.HTMLstretchH(at[ac],ai[ac]-(au[ad][ac].dw||0)).bbox}else{if(O.HTMLcanStretch("Vertical")){aA=O.CoreMO();var aH=aA.symmetric;aA.symmetric=false;au[ad][ac].bbox=O.HTMLstretchV(at[ac],ao[ad],ar[ad]).bbox;aA.symmetric=aH}}aN=O.rowalign||this.data[ad].rowalign||z[ad];o=({top:ao[ad]-au[ad][ac].bbox.h,bottom:au[ad][ac].bbox.d-ar[ad],center:((ao[ad]-ar[ad])-(au[ad][ac].bbox.h-au[ad][ac].bbox.d))/2,baseline:0,axis:0})[aN];aN=(O.columnalign||T[ad][ac]||e[ac]);b.alignBox(au[ad][ac],aN,R+o)}if(ad<au.length-1){R-=Math.max((ao[ad]+ar[ad]?aj:0),ar[ad]+ao[ad+1]+aM[ad])}}R=ah}if(aG){var B=b.createBox(av);B.style.left=B.style.top=0;B.style.right=b.Em(aa+2*aF);B.style.display="inline-block";B.style.height="0px";if(b.msieRelativeWidthBug){B=b.createBox(B);B.style.position="relative";B.style.height="1em";B.style.width="100%";B.bbox=av.bbox}var aL=0,aS=aF,k,l;if(af){k=100*(1-ae)/af,l=w/af}else{k=100*(1-ae)/(an+1);l=w/(an+1)}for(ac=0;ac<=an;ac++){b.placeBox(at[ac].parentNode,0,0);at[ac].style.position="relative";at[ac].style.left=b.Em(aS);at[ac].style.width="100%";at[ac].parentNode.parentNode.removeChild(at[ac].parentNode);var ak=b.createBox(B);b.addBox(ak,at[ac]);at[ac]=ak;var h=ak.style;h.display="inline-block";h.left=aL+"%";if(aI[ac].match(/%$/)){var t=parseFloat(aI[ac])*Q;if(af===0){h.width=(k+t)+"%";aL+=k+t;ak=b.createBox(ak);b.addBox(ak,at[ac].firstChild);ak.style.left=0;ak.style.right=b.Em(l);aS-=l}else{h.width=t+"%";aL+=t}}else{if(aI[ac]==="fit"||af===0){h.width=k+"%";ak=b.createBox(ak);b.addBox(ak,at[ac].firstChild);ak.style.left=0;ak.style.right=b.Em(l-ai[ac]);aS+=ai[ac]-l;aL+=k}else{h.width=b.Em(ai[ac]);aS+=ai[ac]}}if(b.msieRelativeWidthBug){b.addText(ak.firstChild,b.NBSP);ak.firstChild.style.position="relative"}aS+=ax[ac];if(d[ac]!=="none"&&ac<an&&ac!==az){q=b.createBox(B);q.style.left=aL+"%";q=b.createRule(q,g,0,1.25/b.em);q.style.position="absolute";q.bbox={h:g,d:0,w:0,rw:1.25/b.em,lw:0};q.parentNode.bbox=av.bbox;b.placeBox(q,aS-ax[ac]/2,aQ,true);q.style.borderStyle=d[ac]}}}else{var S=aF;for(ac=0;ac<=an;ac++){if(!at[ac].bbox.width){b.setStackWidth(at[ac],ai[ac])}if(aI[ac]!=="auto"&&aI[ac]!=="fit"){at[ac].bbox.width=ai[ac];at[ac].bbox.isFixed=true}b.placeBox(at[ac].parentNode,S,0);S+=ai[ac]+ax[ac];if(d[ac]!=="none"&&ac<an&&ac!==az){q=b.createRule(av,g,0,1.25/b.em);b.addBox(av,q);q.bbox={h:g,d:0,w:0,rw:1.25/b.em,lw:0};b.placeBox(q,S-ax[ac]/2,aQ,true);q.style.borderStyle=d[ac]}}}av.bbox.d=-aQ;av.bbox.h=g+aQ;b.setStackWidth(av,av.bbox.w+aF);aR=av.bbox.w;var ag;if(G.frame!=="none"){ag=b.createFrame(av,g,0,aR,1.25/b.em,G.frame);b.addBox(av,ag);b.placeBox(ag,0,aQ,true);if(aG){ag.style.width="100%"}}R=ah;for(ad=0,ab=au.length-1;ad<ab;ad++){o=Math.max(aj,ar[ad]+ao[ad+1]+aM[ad]);if(v[ad]!=="none"){q=b.createRule(av,1.25/b.em,0,aR);b.addBox(av,q);q.bbox={h:1.25/b.em,d:0,w:aR,rw:aR,lw:0};b.placeBox(q,0,R-ar[ad]-(o-ar[ad]-ao[ad+1])/2,true);if(v[ad]==="dashed"||aG){q.style.borderTop=q.style.height+" "+v[ad];q.style.height=0;q.style.width=q.style.borderLeftWidth;q.style.borderLeft="";if(aG){q.style.width="100%"}}}R-=o}if(aG){r.bbox.width=G.width;av.style.width="100%"}if(at[az]){var ap=this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift");if(ap.indentalignfirst!==a.INDENTALIGN.INDENTALIGN){ap.indentalign=ap.indentalignfirst}if(ap.indentalign===a.INDENTALIGN.AUTO){ap.indentalign=this.displayAlign}if(ap.indentshiftfirst!==a.INDENTSHIFT.INDENTSHIFT){ap.indentshift=ap.indentshiftfirst}if(ap.indentshift==="auto"){ap.indentshift=this.displayIndent}var aJ=b.createStack(r,false,"100%");b.addBox(aJ,av);b.alignBox(av,ap.indentalign,0);if(ap.indentshift&&ap.indentalign!==a.INDENTALIGN.CENTER){av.style[ap.indentalign]=b.Em(b.length2em(ap.indentshift,ay))}at[az].parentNode.parentNode.removeChild(at[az].parentNode);b.addBox(aJ,at[az]);b.alignBox(at[az],e[az],0);if(b.msieRelativeWidthBug){av.style.top=at[az].style.top=""}if(aG){av.style.width=G.width;r.bbox.width="100%"}at[az].style.marginRight=at[az].style.marginLeft=b.Em(b.length2em(G.minlabelspacing,ay))}if(!aG){this.HTMLhandleSpace(r)}var u=this.HTMLhandleColor(r);if(u&&aG){if(!ag){ag=b.createFrame(av,g,0,aR,0,"none");b.addBox(av,ag);b.placeBox(ag,0,aQ,true);ag.style.width="100%"}ag.style.backgroundColor=u.style.backgroundColor;ag.parentNode.insertBefore(ag,ag.parentNode.firstChild);u.parentNode.removeChild(u)}return r},HTMLhandleSpace:function(d){d.bbox.keepPadding=true;d.bbox.exact=true;if(!this.hasFrame){d.style.paddingLeft=d.style.paddingRight=".1667em"}this.SUPER(arguments).HTMLhandleSpace.call(this,d)}});a.mtd.Augment({toHTML:function(e,d,g){e=this.HTMLcreateSpan(e);if(this.data[0]){var f=this.data[0].toHTML(e);if(g!=null){f=this.data[0].HTMLstretchV(e,d,g)}else{if(d!=null){f=this.data[0].HTMLstretchH(e,d)}}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")});