20 lines
7.9 KiB
JavaScript
20 lines
7.9 KiB
JavaScript
|
/*
|
||
|
* /MathJax/jax/output/SVG/autoload/mtable.js
|
||
|
*
|
||
|
* Copyright (c) 2009-2017 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("SVG Jax Ready",function(){var c="2.7.1";var a=MathJax.ElementJax.mml,d=MathJax.OutputJax.SVG,b=d.BBOX;a.mtable.Augment({toSVG:function(aa){this.SVGgetStyles();var o=this.SVG(),ap=this.SVGgetScale(o);if(this.data.length===0){this.SVGsaveData(o);return o}var aN=this.getValues("columnalign","rowalign","columnspacing","rowspacing","columnwidth","equalcolumns","equalrows","columnlines","rowlines","frame","framespacing","align","useHeight","width","side","minlabelspacing");if(aN.width.match(/%$/)){o.width=aN.width=d.Em((d.cwidth/1000)*(parseFloat(aN.width)/100))}var v=this.SVGgetMu(o);var aK=-1;var z=[],I=[],k=[],O=[],K=[],aI,aG,w=-1,aE,u,az,S,an,E,aA;var ac=d.FONTDATA.lineH*ap*aN.useHeight,ag=d.FONTDATA.lineD*ap*aN.useHeight;for(aI=0,aE=this.data.length;aI<aE;aI++){S=this.data[aI];az=(S.type==="mlabeledtr"?aK:0);O[aI]=[];z[aI]=ac;I[aI]=ag;for(aG=az,u=S.data.length+az;aG<u;aG++){if(k[aG]==null){if(aG>w){w=aG}K[aG]=b.G();k[aG]=-d.BIGDIMEN}an=S.data[aG-az];O[aI][aG]=an.toSVG();if(an.isEmbellished()){E=an.CoreMO();var aM=E.Get("minsize",true);if(aM){if(E.SVGcanStretch("Vertical")){aA=E.SVGdata.h+E.SVGdata.d;if(aA){aM=d.length2em(aM,v,aA);if(aM*E.SVGdata.h/aA>z[aI]){z[aI]=aM*E.SVGdata.h/aA}if(aM*E.SVGdata.d/aA>I[aI]){I[aI]=aM*E.SVGdata.d/aA}}}else{if(E.SVGcanStretch("Horizontal")){aM=d.length2em(aM,v,E.SVGdata.w);if(aM>k[aG]){k[aG]=aM}}}}}if(O[aI][aG].h>z[aI]){z[aI]=O[aI][aG].h}if(O[aI][aG].d>I[aI]){I[aI]=O[aI][aG].d}if(O[aI][aG].w>k[aG]){k[aG]=O[aI][aG].w}}}var ao=MathJax.Hub.SplitList;var am=ao(aN.columnspacing),T=ao(aN.rowspacing),ai=ao(aN.columnalign),L=ao(aN.rowalign),N=ao(aN.columnlines),h=ao(aN.rowlines),ar=ao(aN.columnwidth),aw=[];for(aI=0,aE=am.length;aI<aE;aI++){am[aI]=d.length2em(am[aI],v)}for(aI=0,aE=T.length;aI<aE;aI++){T[aI]=d.length2em(T[aI],v)}while(am.length<w){am.push(am[am.length-1])}while(ai.length<=w){ai.push(ai[ai.length-1])}while(N.length<w){N.push(N[N.length-1])}while(ar.length<=w){ar.push(ar[ar.length-1])}while(T.length<O.length){T.push(T[T.length-1])}while(L.length<=O.length){L.push(L[L.length-1])}while(h.length<O.length){h.push(h[h.length-1])}if(K[aK]){ai[aK]=(aN.side.substr(0,1)==="l"?"left":"right");am[aK]=-k[aK]}for(aI=0,aE=O.length;aI<aE;aI++){S=this.data[aI];aw[aI]=[];if(S.rowalign){L[aI]=S.rowalign}if(S.columnalign){aw[aI]=ao(S.columnalign);while(aw[aI].length<=w){aw[aI].push(aw[aI][aw[aI].length-1])}}}if(aN.equalrows){var U=Math.max.apply(Math,z),aq=Math.max.apply(Math,I);for(aI=0,aE=O.length;aI<aE;aI++){az=((U+aq)-(z[aI]+I[aI]))/2;z[aI]+=az;I[aI]+=az}}aA=z[0]+I[O.length-1];for(aI=0,aE=O.length-1;aI<aE;aI++){aA+=Math.max(0,I[aI]+z[aI+1]+T[aI])}var ae=0,ab=0,aB,aL=aA;if(aN.frame!=="none"||(aN.columnlines+aN.rowlines).match(/solid|dashed/)){var t=ao(aN.framespacing);if(t.length!=2){t=ao(this.defaults.framespacing)}ae=d.length2em(t[0],v);ab=d.length2em(t[1],v);aL=aA+2*ab}var g,ay,aD="";if(typeof(aN.align)!=="string"){aN.align=String(aN.align)}if(aN.align.match(/(top|bottom|center|baseline|axis)( +(-?\d+))?/)){aD=RegExp.$3||"";aN.align=RegExp.$1}else{aN.align=this.defaults.align}if(aD!==""){aD=parseInt(aD);if(aD<0){aD=O.length+1+aD}if(aD<1){aD=1}else{if(aD>O.length){aD=O.length}}g=0;ay=-(aA+ab)+z[0];for(aI=0,aE=aD-1;aI<aE;aI++){var Z=Math.max(0,I[aI]+z[aI+1]+T[aI]);g+=Z;ay+=Z}}else{g=({top:-(z[0]+ab),bottom:aA+ab-z[0],center:aA/2-z[0],baseline:aA/2-z[0],axis:aA/2+d.TeX.axis_height*ap-z[0]})[aN.align];ay=({top:-(aA+2*ab),bottom:0,center:-(aA/2+ab),baseline:-(aA/2+ab),axis:d.TeX.axis_height*ap-aA/2-ab})[aN.align]}var at,ax=0,V=0,X=0,aC=0,aJ=0,r=[],B=[],aj=1;if(aN.equalcolumns&&aN.width!=="auto"){at=d.length2em(aN.width,v);for(aI=0,aE=Math.min(w,am.length);aI<aE;aI++){at-=am[aI]}at/=w;for(aI=0,aE=Math.min(w+1,ar.length);aI<aE;aI++){k[aI]=at}}else{for(aI=0,aE=Math.min(w+1,ar.length);aI<aE;aI++){if(ar[aI]==="auto"){V+=k[aI]}else{if(ar[aI]==="fit"){B[aJ]=aI;aJ++;V+=k[aI]}else{if(ar[aI].match(/%$/)){r[aC]=aI;aC++;X+=k[aI];ax+=d.length2em(ar[aI],v,1)}else{k[aI]=d.length2em(ar[aI],v);V+=k[aI]}}}}if(aN.width==="auto"){if(ax>0.98){aj=X/(V+X);at=V+X}else{at=V/(1-ax)}}else{at=d.l
|