diff options
Diffstat (limited to 'texmf-dist/tex/latex/bargraph-js/dynam-js.def')
-rw-r--r-- | texmf-dist/tex/latex/bargraph-js/dynam-js.def | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/texmf-dist/tex/latex/bargraph-js/dynam-js.def b/texmf-dist/tex/latex/bargraph-js/dynam-js.def new file mode 100644 index 00000000..4749e132 --- /dev/null +++ b/texmf-dist/tex/latex/bargraph-js/dynam-js.def @@ -0,0 +1,105 @@ +%% +%% This is file `dynam-js.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bargraph-js.dtx (with options: `copyright,dynam') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% bargraph-js.sty package, %% +%% Copyright (C) 2019 %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1.2 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{insDLJS}{dynam}{Display dynamic bar graphs} +function displayDyBargraph(env,aPr,bPmf,bOptimize) { + if (typeof aPr[0]=="undefined") return; + var aBars=dataForEnv[env].bgs; + var bar=env+"@"+dataForEnv[env].bgs[0]; + var n=aPr.length; + var index=(bPmf)?1:2; + var bc=color.red; + var fc=color.blue; + var lbl=_labelDyBars; + if (arguments.length>4) { + var o=arguments[4]; + bc=(o.bc==undefined)?bc:o.bc; + fc=(o.fc==undefined)?fc:o.fc; + var lbl=(o.lbl==undefined)?_labelDyBars:o.lbl; + } else { + var f=this.getField(bar+".bar0"); + if ( f !=null ) { + bc=f.strokeColor; + fc=f.fillColor; + } + } + var hbar=bar.replace(/@/,"@x"); // dps07 + this.removeField(bar); + var pos=hbar.indexOf("@"); + var env=hbar.substring(0,pos); +// get aux info, begin with + var hb=this.getField(hbar); + var f=hb.getArray()[0]; + var pg=f.page; + var wd=dataForEnv[env].width; + var ht=dataForEnv[env].height; + var isHoriz=dataForEnv[env].horiz; + var frameH=ht; // frameH is one unit high + if (bPmf&&bOptimize) { + var maxValue=0; + for (var i=0; i<n; i++) + if (aPr[i][index]>maxValue) maxValue=aPr[i][index]; + } + var w=wd/(n+1); + var r=f.rect; + var defwidth=r[2]-r[0]; + if (defwidth*(n+1)>=wd) r[2]=r[0]+w; + else w=defwidth; + var gap=-1; // contiguous boundaries overlap + var sf=(bPmf&&bOptimize)?frameH/maxValue:frameH; + for (var i=0; i<n; i++){ + var g=this.addField(bar+".bar"+i,"button",pg,r); + // calculate height + var Rect=g.rect; + var v=aPr[i][index]; + this.delay=true; + Rect[1]=Rect[3]+(v*sf); + var pr=aPr[i][0]; + g.userName=lbl(pr,v,bPmf); + g.display=display.visible; + g.rect=Rect; + r[0]+=(w+gap); + r[2]+=(w+gap); + this.delay=false; + } + if (!bPmf) { // cdf + var totalW=(n+1)*(w+gap); + var delta=wd-totalW; + r[2]+=delta; + g=this.addField(bar+".bar"+n,"button",pg,r); + var Rect=g.rect; + var v=1; + this.delay=true; + Rect[1]=Rect[3]+(v*sf); + g.display=display.visible; + g.rect=Rect; + } +// Now set color properties + g=this.getField(bar); + g.fillColor=fc; + g.strokeColor=bc; + this.delay=false; +} +function _labelDyBars(pr,v,bPmf) { + return bPmf?("Pr(X="+pr+")="+v):("Pr(X<="+pr+")="+v); +} +\end{insDLJS} +\endinput +%% +%% End of file `dynam-js.def'. |