diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/bardiag/example/bardiag.sty')
-rw-r--r-- | Master/texmf-dist/doc/latex/bardiag/example/bardiag.sty | 699 |
1 files changed, 0 insertions, 699 deletions
diff --git a/Master/texmf-dist/doc/latex/bardiag/example/bardiag.sty b/Master/texmf-dist/doc/latex/bardiag/example/bardiag.sty deleted file mode 100644 index 2fad655f838..00000000000 --- a/Master/texmf-dist/doc/latex/bardiag/example/bardiag.sty +++ /dev/null @@ -1,699 +0,0 @@ -%% ============================================= -%% IMPORTANT NOTICE: -%% -%% This program can be 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 of the License, or any later version. -%% -%% Only a few abbreviated comments remain here to describe the usage. -%% Documentation can be found in bardiag.ps or/and bardiag.tex files -%% ============================================= -%% Copyright 2003 Roman Stepanyan -%% E-mail: rstepanyan@yahoo.com - - -%TODO -% Error ``whiskers'': do NOT work with \subtopbaritem !!!! - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -% -\ProvidesPackage{bardiag}[2003/12/10 version 0.5] -\def\bardiag{BagDiag} -% This package allows to draw bar diagrams. -% It is inspired by and build on top of PSTricks -% -% -% Changelog -% 2003/12/10 version 0.5 (compatible with 0.4, but "shapes"-macroses -% (bars) have to accept an optional argument!) -% "fillstyle" can be supplied to \baritem and friends -% as an optional argument: \baritem[fillstyle=vlines*,linecolor=red]{}... -% bardiag DOES NOT load pst-all anymore, only the necessary stuff -% use \barspergroup{N} to make life easier (thanks to Kris Dumont) -% -% -% 2003/06/29 version 0.4 (compatible with 0.3) -% Error ``whiskers'' are added -% -% 2003/06/20 version 0.3 (compatible with 0.2) -% ``Horizontal bars'' mode is added. -% -% 2003/05/23 version 0.2 (not compatible with 0.1) -% Code is completely rewritten. -% All parameters can be real numbers (not integers) thanks to fp.sty -% A lot of changes in the interface. -% -% 2003/05/10 version 0.1 -% 0.first version :) - - -\RequirePackage{calc} -\RequirePackage{pstfp} -\RequirePackage{fp-snap} - - -\RequirePackage{pstricks} -\RequirePackage{pstcol} -\RequirePackage{pst-grad} -\RequirePackage{multido} - -\RequirePackage{ifthen} - -% * what should be changed through \renewcommand or \setlength -% @ arguments of functions -% + internal variables - - -%---------------------------------------- -% Horizontal or vertical bars -\newcommand{\bdvert}{0} -\newcommand{\bdhor}{1} -\newcommand{\bdorientation}{\bdvert} - -% Each group is assumed to consist of this number of bars -% (subtopbars not included) -% use \barspergroup{N} to change -\newcommand{\nbarsingroup}{1} -\newcommand{\barspergroup}[1]{\renewcommand{\nbarsingroup}{#1}} -% Sizes of the diag -% -\newcommand{\diagheight}{10} % units @ -\newcommand{\diagwidth}{10} % units @ -\newlength{\bottomheight} % cm @ -% units of length -\newlength{\xunitlength} % cm @ -\newlength{\yunitlength} % cm @ -% of the bar -\newcommand{\dbar}{1} % units @ -\newcommand{\dx}{2} % units @ -%----------------------------------------- -% Sizes related to ticks and levellines -% -\newcommand{\betweenticks}{1} % units * -\newcommand{\numberofticks}{1}% + -\newcommand{\MAXnumberofticks}{20}% * -% -% frame and stuff -\newlength{\ticklength} % -\setlength{\ticklength}{2mm} % cm * -\newlength{\leftshift} -\setlength{\leftshift}{\ticklength+2mm} - % cm * -\newlength{\frameXleft} -\setlength{\frameXleft}{\leftshift} -\newlength{\frameYbottom} -\setlength{\frameYbottom}{0pt} -\newlength{\tickrightedge} % cm + -% text -\newlength{\textoffset} % -\setlength{\textoffset}{-0.2cm}%cm * -%caption -\newlength{\captionoffset} -\setlength{\captionoffset}{1.5cm} -%----------------------------------------- -% ``Counter''-like variables for bars -\newcommand{\xval}{1} % units + -\newcommand{\xxval}{1} % units + -\newcommand{\xhalf}{1} % units + -% -% and subbars -\newcounter{subbar} -% -% Number on bars -% numbers (0,1) -\newcommand\shownumbers{1} % * - % otherwise no numbers will appear -\newcommand\numbercolor{\black\bf} % * -\newcommand{\belowtop}{0} % constant -\newcommand{\overtop}{1} % constant -\newcommand{\bottom}{2} % constant -\newcommand\placenumber{\belowtop} % * - % can be: \belowtop, \overtop, \bottom -\newlength{\numberoffset} -\setlength{\numberoffset}{2\textoffset} % cm * -\newlength{\lefttextoffset} -\setlength{\lefttextoffset}{\leftshift+2mm} % cm * -% Angle of the text written below (if vertical bars) -% or to the left (if horizontal) of the item-bars -\newcommand{\barlabelangle}{90} % * -% The same, but for label next to the level line -\newcommand{\ticklabelangle}{0} % * -%---------------------------------------- -% Legend-related vars -\newcommand{\legendShadow}{0} % * - % shadow color -\definecolor{legShCol}{gray}{.5} -\newcommand{\legendShadowColor}{legShCol} % * -%---------------------------------------- -% 3D related stuff -\newcommand{\frameTD}{0} % 3D or not frame % * -\newcommand{\tdx}{0.4} % depth of 3d % * -\newcommand{\tdy}{1.0} % * -\newcommand{\tdhor}{\tdx} % + -\newcommand{\tdver}{\tdy} % + -%----------------------------------------- -% Error ``whiskers'' -\newcommand{\barerrorterm}{*-|} % * -\newpsstyle{barerrorstyle}{linewidth=2pt,linecolor=black} -%----------------------------------------- -% Styles -\definecolor{frameBGgray}{gray}{0.9} -\newpsstyle{diagframestyle}{linewidth=1pt,linecolor=black,fillstyle=none} -\newpsstyle{tickstyle}{linewidth=1pt,linecolor=black} -\newpsstyle{levellinestyle}{linewidth=0.2pt,linecolor=blue} -\newpsstyle{diagTDframestyle}{linewidth=1pt,linecolor=black,fillstyle=none} -\newpsstyle{diagbgframestyle}{linewidth=1pt,linecolor=black,fillcolor=frameBGgray} -%----------------------------------------- -\newcommand{\tmpvar}{1} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Commands to begin a bar diagram -% \bardiagbegin -> flat frame -% \bardiagTDbegin -> 3D frame -\newlength{\bgx} % + -\newlength{\bgy} % + -\newlength{\bgxa} % + -\newlength{\bgya} % + -% -\newcommand{\bardiagrambegin}[7] -{ % 1 2 3 4 5 6 7 - % width, height,bottom(cm), dbar, dx, xunit, yunit - % height(#1) and width(#2) can be any real numbers, - % they are in units of (#6) & (#7) - - \renewcommand{\nbarsingroup}{1} - - % Default \tdy is 5% from the height of the diag - \FPdiv{\tmpvar}{#2}{\dbar}% - \FPmul{\tdy}{0.05}{\tmpvar}% - % - \ifthenelse{\bdorientation = \bdvert}% - { \renewcommand{\diagheight}{#2}% - \renewcommand{\diagwidth}{#1}% - \setlength{\bottomheight}{#3}% - \renewcommand{\dbar}{#4}% - \renewcommand{\dx}{#5}% - \setlength{\xunitlength}{#6}% - \setlength{\yunitlength}{#7}% - % - \renewcommand{\tdhor}{\tdx}% - \renewcommand{\tdver}{\tdy}% - % - \setlength{\frameXleft}{\leftshift} - \setlength{\frameYbottom}{0pt} - % - \renewcommand{\barlabelangle}{90} - %\renewcommand{\ticklabelangle}{0} - }% - { \renewcommand{\diagheight}{#1}% - \renewcommand{\diagwidth}{#2}% - \setlength{\bottomheight}{#3}% - \renewcommand{\dbar}{#4}% - \renewcommand{\dx}{#5}% - \setlength{\xunitlength}{#7}% - \setlength{\yunitlength}{#6}% - % - \renewcommand{\tdhor}{\tdy}% - \renewcommand{\tdver}{\tdx}% - % - \setlength{\frameXleft}{0pt} - \setlength{\frameYbottom}{\leftshift} - % - \renewcommand{\barlabelangle}{0} - %\renewcommand{\ticklabelangle}{0} - }% - % - %- - - - - - - - - - - - - - - - - - - - - % Take care of ticks (not to draw) - \ifthenelse{\bdorientation = \bdvert}% - { \FPdiv{\tmpvar}{\diagheight}{\betweenticks}}% - { \FPdiv{\tmpvar}{\diagwidth}{\betweenticks}}% - \FPtrunc{\numberofticks}{\tmpvar}{0}% - \ifthenelse{\numberofticks > \MAXnumberofticks}% - { \typeout{----- \bardiag WARNING: }% - \typeout{Too LARGE number of ticks: \numberofticks. Falling back to \MAXnumberofticks.}% - \typeout{TIP: try to change the betweenticks parameter.}% - \typeout{If you DO want such a large number of ticks,}% - \typeout{change the MAXnumberofticks parameter.}% - \typeout{Ignore this warning if you do not use ticks.}% - \typeout{-----}% - \renewcommand{\numberofticks}{\MAXnumberofticks}% - \FPdiv{\betweenticks}{\diagheight}{\numberofticks}% - }% - {}% - %- - - - - - - - - - - - - - - - - - - - - % Compute center of the diagram - \FPdiv{\hordiagcenter}{\diagwidth}{2}% - \FPdiv{\vertdiagcenter}{\diagheight}{2}% - % - %- - - - - - - - - - - - - - - - - - - - - % - \psset{xunit=\xunitlength,yunit=\yunitlength}% - \ifthenelse{\frameTD = 0} - {\begin{pspicture}(-\captionoffset,-\bottomheight)(\diagwidth,\diagheight)} - {\setlength{\bgya}{\yunitlength*\real{\diagheight}+\yunitlength*\real{\dbar}*\real{\tdver}} - \begin{pspicture}(-\captionoffset,-\bottomheight)(\diagwidth,\bgya) - } - %\showgrid %#For debug purposes - \psset{fillstyle=solid}% - \renewcommand{\xval}{0}% - \setlength{\tickrightedge}{-\leftshift+\ticklength}% - \ifthenelse{\frameTD = 0}% - {\renewcommand{\legendShadow}{0}% - % let's draw a frame - \psframe[style=diagframestyle](-\frameXleft,-\frameYbottom)(\diagwidth,\diagheight)% - }% - {\renewcommand{\legendShadow}{1}% - % background frame - \setlength{\bgx}{-\frameXleft+\xunitlength*\real{\dbar}*\real{\tdhor}}% - \setlength{\bgxa}{\frameXleft+\bgx+\xunitlength*\real{\diagwidth}}% - \setlength{\bgy}{\yunitlength*\real{\dbar}*\real{\tdver}-\frameYbottom}% - \setlength{\bgya}{\bgy+\yunitlength*\real{\diagheight}+\frameYbottom} - % let's draw it - \psframe[style=diagbgframestyle](\bgx,\bgy)(\bgxa,\bgya)% - \psline(-\frameXleft,\diagheight)(\bgx,\bgya)% - \psline(-\frameXleft,-\frameYbottom)(\bgx,\bgy)% - \psline(\diagwidth,-\frameYbottom)(\bgxa,\bgy)% - \psline(\diagwidth,\diagheight)(\bgxa,\bgya)% - % let's draw the foreground frame - \psframe[style=diagTDframestyle](-\frameXleft,-\frameYbottom)(\diagwidth,\diagheight)% - }% -}% -% - - - - - - - - - - - - - - - - - - -\newcommand{\bardiagramend}[2] -{ \ifthenelse{\frameTD = 1} - { % let's draw the frame ones again - \psframe[style=diagTDframestyle](-\frameXleft,-\frameYbottom)(\diagwidth,\diagheight) - }{} - \ifthenelse{\bdorientation = \bdvert} - { \rput[c](\hordiagcenter,-0.9\bottomheight){{#1}} - \rput[c]{90}(-\captionoffset,\vertdiagcenter){{#2}} % ???? -2cm ? - } - { \rput[c](\hordiagcenter,-0.9\bottomheight){{#2}} - \rput[c]{90}(-\captionoffset,\vertdiagcenter){{#1}} % ???? -2cm ? - } - \end{pspicture} -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% BARITEMS: -\newcommand{\ActiveBarPrimitive}{\barRect} - -\newcommand{\subtopx}{0} -\newcommand{\subtopy}{0} - -\newcommand{\baritem}[4][fillstyle=solid]{% - % the first (optional) argument is "psstyle options": default=solid - % [style], name, value, color - % - % \xval and \xxval are left and right edges of a bar - % \xhalf is its center - % - \FPfadd{\xxval}{\xval}{\dbar} - \FPfadd{\tmpvar}{\xval}{\xxval} - \FPdiv{\xhalf}{\tmpvar}{2}% ?????????? Get rid of it? - - - % - % Now we call smth, which draws a ``bar'' - % it can be rectangular, cylindrical, 2 or 3d - we do not know - % I plan \barRect; \barTDRect; \barCylinder; more??? - % It takes 5 arguments: - % \something{\xval}{\yval}{\xxval}{\yyval}{color} - % - % - \ifthenelse{\bdorientation = \bdvert}%is it vertical or horizontal? - {\ActiveBarPrimitive[#1]{\xval}{0}{\xxval}{#3}{#4}}% - {\ActiveBarPrimitive[#1]{0}{\xval}{#3}{\xxval}{#4}}% - % - % - \printnumber{\xhalf}{#3}{0}{#3} - % - \FPset{\subtopx}{\xval} - \FPset{\subtopy}{#3} - % - \FPfadd{\tmpvar}{\xval}{\dx} - \FPset{\xval}{\tmpvar} - % - % \xhalf := \xhalf + \dbar * (\nbarsingroup - 1)/2 - - \FPfsub{\tmpvar}{\nbarsingroup}{1} - \FPdiv{\tmpvar}{\tmpvar}{2} - \FPmul{\tmpvar}{\tmpvar}{\dbar} - \FPfadd{\xhalf}{\xhalf}{\tmpvar} - - \ifthenelse{\bdorientation = \bdvert}%is it vertical or horizontal? - {\printbarlabel{\xhalf}{\textoffset}{\barlabelangle}{#2}}% - {\printbarlabel{\textoffset}{\xhalf}{\barlabelangle}{#2}}% - \setcounter{subbar}{1} -} - -\newcommand{\barmidx}{0} -\newcommand{\barerrormargins}[2] % To make asymmetric margins -% 1st = upper Dy; 2nd = bottom Dy -{% - \ifthenelse{\bdorientation = \bdvert}%is it vertical or horizontal? - { \FPdiv{\tmpvar}{\dbar}{2} - \FPfadd{\barmidx}{\subtopx}{\tmpvar} - \FPfadd{\tmpvar}{\subtopy}{#1} - \psline[style=barerrorstyle]{\barerrorterm}(\barmidx,\subtopy)(\barmidx,\tmpvar) - % - \FPdiv{\tmpvar}{\dbar}{2} - \FPfadd{\barmidx}{\subtopx}{\tmpvar} - \FPfsub{\tmpvar}{\subtopy}{#2} - \psline[style=barerrorstyle]{\barerrorterm}(\barmidx,\subtopy)(\barmidx,\tmpvar) - } - { \FPdiv{\tmpvar}{\dbar}{2} - \FPfadd{\barmidx}{\subtopx}{\tmpvar} - \FPfadd{\tmpvar}{\subtopy}{#1} - \psline[style=barerrorstyle]{\barerrorterm}(\subtopy,\barmidx)(\tmpvar,\barmidx) - % - \FPdiv{\tmpvar}{\dbar}{2} - \FPfadd{\barmidx}{\subtopx}{\tmpvar} - \FPfsub{\tmpvar}{\subtopy}{#2} - \psline[style=barerrorstyle]{\barerrorterm}(\subtopy,\barmidx)(\tmpvar,\barmidx) - } -} -%%%%%%%%%%%%% -\newcommand{\barerror}[1] % To make symmetric margins -{ - \barerrormargins{#1}{#1} -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% SUBITEMS -\newcommand{\subxval}{0} -\newcommand{\subxxval}{0} - - -\newcommand{\subbaritem}[4][fillstyle=solid]{ - % [style], name, value, color - % - % \subxval and \subxxval are left and right edges of a bar - % \subxhalf is its center - % - \FPfsub{\subxxval}{\xval}{\dx} - \FPmul{\tmpvar}{\dbar}{\thesubbar} - \FPfadd{\subxval}{\subxxval}{\tmpvar} - - \FPfadd{\subxxval}{\subxval}{\dbar} - - \FPfadd{\tmpvar}{\subxval}{\subxxval} - \FPdiv{\subxhalf}{\tmpvar}{2}% ?????????? Get rid of it? - % - % Now we call smth, which draws a ``bar'' - % it can be rectangular, cylindrical, 2 or 3d - we do not know - % I plan \barRect; \barTDRect; \barCylinder; ??? - % It takes 5 arguments: - % \something{\xval}{\yval}{\xxval}{\yyval}{color} - % - \ifthenelse{\bdorientation = \bdvert}%is it vertical or horizontal? - {\ActiveBarPrimitive[#1]{\subxval}{0}{\subxxval}{#3}{#4}}% - {\ActiveBarPrimitive[#1]{0}{\subxval}{#3}{\subxxval}{#4}}% - % - % - \printnumber{\subxhalf}{#3}{0}{#3} - - \FPset{\subtopx}{\subxval} - \FPset{\subtopy}{#3} - - %\rput[r]{90}(\subxhalf,\textoffset){#2} - \ifthenelse{\bdorientation = \bdvert}%is it vertical or horizontal? - {\printbarlabel{\subxhalf}{\textoffset}{\barlabelangle}{#2}}% - {\printbarlabel{\textoffset}{\subxhalf}{\barlabelangle}{#2}}% - \addtocounter{subbar}{1} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% TOP SUBITEMS - -\newcommand{\subtopxx}{0} % + -\newcommand{\subtopyy}{0} % + -\newcommand{\subtopxhalf}{0}% + - -\newcommand{\subtopbaritem}[4][fillstyle=solid]{ - % [style], name, value, color - % - % - % \subtopxhalf is the center - % - \FPfadd{\subtopxx}{\subtopx}{\dbar} - - \FPfadd{\subtopyy}{\subtopy}{#3} - - \FPfadd{\tmpvar}{\subtopx}{\subtopxx} - \FPdiv{\subtopxhalf}{\tmpvar}{2}% - % - \ifthenelse{\bdorientation = \bdvert}%is it vertical or horizontal? - {\ActiveBarPrimitive[#1]{\subtopx}{\subtopy}{\subtopxx}{\subtopyy}{#4}}% - {\ActiveBarPrimitive[#1]{\subtopy}{\subtopx}{\subtopyy}{\subtopxx}{#4}}% - % - % - \printnumber{\subtopxhalf}{#3}{\subtopy}{\subtopyy} - % - % it is not supposed to print any label, so, - % we do not need to tae care of it. - %\rput[r]{90}(\subxhalf,\textoffset){#1} - %\addtocounter{subbar}{1} - % - \FPset{\subtopy}{\subtopyy} -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Bar primitives -\input{bardiag.bar} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Legend -\newlength{\legendXo} % this one is an argument of diagLegendbegin -\newlength{\legendYo} % the same -\newlength{\legendWidth} % the same -\newlength{\legendHeight} % this will be computed -% -\newlength{\legenditemheight}\setlength{\legenditemheight}{7mm} -\newlength{\legendspacer}\setlength{\legendspacer}{3mm} -\newlength{\legendRectWidth}\setlength{\legendRectWidth}{6mm} -\newlength{\legendRectHeight}\setlength{\legendRectHeight}{4mm} -% -\newcommand{\diagLegendoptions}[3] -{ % 1 2 3 - % bgcolor framecolor framelinewidth - \newpsstyle{diagLegenditemstyle}{fillstyle=solid,fillcolor=#1,linecolor=#1} - \newpsstyle{diagLegendframetyle}{fillstyle=none,linecolor=#2,linewidth=#3} -} -%First we call \diagLegendoptions -\diagLegendoptions{white}{black}{0.5pt} -% -\newlength{\lixcoor} -\newlength{\liycoor} -\newlength{\lixxcoor} -\newlength{\liyycoor} -% -\newlength{\liix} % where to put the rectangle with color -\newlength{\liiix} % where to put the text -% -\newcommand{\diagLegendbegin}[3] -{% 1 2 3 - % Xo(units) Yo(un) Width(un) - % (Xo,Yo) are coordinates of the left-up corner - \ifthenelse{\bdorientation = \bdvert}% - { - \setlength{\legendXo}{\xunitlength*\real{#1}} - \setlength{\legendYo}{\yunitlength*\real{#2}} - \setlength{\legendWidth}{\xunitlength*\real{#3}} - \setlength{\legendHeight}{0cm} - % - \setlength{\lixcoor}{\legendXo} - \setlength{\lixxcoor}{\legendXo+\legendWidth} - \setlength{\liycoor}{\legendYo} - % - \setlength{\liix}{\lixcoor+\legendspacer} - \setlength{\liiix}{\liix+\legendRectWidth+\legendspacer} - } - { - \setlength{\legendXo}{\xunitlength*\real{#2}} - \setlength{\legendYo}{\yunitlength*\real{#1}} - \setlength{\legendWidth}{\yunitlength*\real{#3}} - \setlength{\legendHeight}{0cm} - % - \setlength{\lixcoor}{\legendXo} - \setlength{\lixxcoor}{\legendXo+\legendWidth} - \setlength{\liycoor}{\legendYo} - % - \setlength{\liix}{\lixcoor+\legendspacer} - \setlength{\liiix}{\liix+\legendRectWidth+\legendspacer} - } -} - -\newlength{\lShX} -\newlength{\lShXxx} -\newlength{\lShY} -\newlength{\lShYyy} - -\newcommand{\diagLegendend} -{ \ifthenelse{\legendShadow = 1} - {\setlength{\lShX}{\legendXo+\xunitlength*\dbar*\real{\tdhor}} - \setlength{\lShXxx}{\lixxcoor+\xunitlength*\dbar*\real{\tdhor}} - \setlength{\lShY}{\liycoor+\yunitlength*\dbar*\real{\tdver}} - \setlength{\lShYyy}{\legendYo+\yunitlength*\dbar*\real{\tdver}} - \psframe[fillstyle=solid,linecolor=\legendShadowColor,fillcolor=\legendShadowColor](\lShX,\legendYo)(\lShXxx,\lShYyy) - \psframe[fillstyle=solid,linecolor=\legendShadowColor,fillcolor=\legendShadowColor](\lixxcoor,\lShY)(\lShXxx,\lShYyy) - } - {} - \psframe[style=diagLegendframetyle](\legendXo,\liycoor)(\lixxcoor,\legendYo) -} - - -\newlength{\legendRectXo} -\newlength{\legendRectX} -\newlength{\legendRectYo} -\newlength{\legendRectY} -% -\newcommand{\legendPutRect}[2][fillstyle=solid] -{ - \setlength{\legendRectXo}{\liix} - \setlength{\legendRectYo}{(\liyycoor+\liycoor-\legendRectHeight)/2} - %\setlength{\legendRectYo}{(\liyycoor+\liycoor)/2-\legendRectHeight} - \setlength{\legendRectX}{\legendRectXo+\legendRectWidth} - \setlength{\legendRectY}{\legendRectYo+\legendRectHeight} - \psframe[fillcolor=#2,#1](\legendRectXo,\legendRectYo)(\legendRectX,\legendRectY) -} - - -\newlength{\legendiyc} -\newcommand{\diagLegenditem}[3][fillstyle=solid] -{% [1] 2 3 - % style item_text color - \addtolength{\legendHeight}{\legenditemheight} - \setlength{\liyycoor}{\liycoor} - \addtolength{\liycoor}{-\legenditemheight} - \psframe[style=diagLegenditemstyle](\lixcoor,\liycoor)(\lixxcoor,\liyycoor) - \legendPutRect[#1]{#3} - \setlength{\legendiyc}{(\liycoor+\liyycoor)/2} - \rput[l](\liiix,\legendiyc){#2} -} - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Util -\newcommand{\outputparameters} -{\rput[lt](0,-2\bottomheight){\parbox{10cm}{ - \begin{tabular}{p{5cm}p{5cm}} - Width: & \diagwidth \\\hline - Height: &\diagheight \\\hline - Width of a bar:& \dx \\\hline - Distance between bars:& \dbar\\\hline\hline - %X unit length: & \ratio{\xunitlength}{1cm}\\\hline - %Y unit length: & \ratio{\yunitlength}{1cm}\\\hline - TICKS:\\ - Between ticks: & \betweenticks\\ - Number of ticks:&\numberofticks (computed)\\ \hline\hline - LAST VALS:\\ - xval: & \xval\\ - dbar: & \dbar\\ - xxval:& \xxval\\ - xhalf:& \xhalf\\ - tmpvar:&\tmpvar\\ - \end{tabular}}} -} -%-------------------------------------------------------------------- - -\newlength{\ycoordnum} -% -\newcommand\printnumber[4] -{ % 1 2 3 4 - % center of the bar, text(number) (will be centered), bottom y, top y - % - % we compute the y-position of the text depending on - % the value of the \placenumber parameter - % it can be: \belowtop, \overtop, \bottom -\ifthenelse{\bdorientation = \bdvert} -{ - \ifthenelse{\placenumber = \overtop} - {\setlength{\ycoordnum}{\yunitlength*\real{#4}-\numberoffset} - \ifthenelse{\shownumbers = 1} - {\rput[bc](#1,\ycoordnum){\numbercolor #2}}{} - } - {%else - \ifthenelse{\placenumber = \bottom} - {\setlength{\ycoordnum}{\yunitlength*\real{#3}-\numberoffset} - \ifthenelse{\shownumbers = 1} - {\rput[bc](#1,\ycoordnum){\numbercolor #2}} - {} - } - % default->\belowtop - {\setlength{\ycoordnum}{{\yunitlength*\real{#4}}+\numberoffset} - \ifthenelse{\shownumbers = 1 \AND \lengthtest{\ycoordnum > -\numberoffset}} - {\rput[tc](#1,\ycoordnum){\numbercolor #2}}{} - } - } -} -{%else, i.e. if it is horisontal - %if fact, ``y-coordinate'' \ycoordnum is now along the horizontal axis - \ifthenelse{\placenumber = \overtop} - { - \setlength{\ycoordnum}{\xunitlength*\real{#4}-\numberoffset} - \ifthenelse{\shownumbers = 1} - {\rput[l](\ycoordnum,#1){\numbercolor #2}}{} - } - {%else - \ifthenelse{\placenumber = \bottom} - {\setlength{\ycoordnum}{\xunitlength*\real{#3}-\numberoffset} - \ifthenelse{\shownumbers = 1} - {\rput[l](\ycoordnum,#1){\numbercolor #2}} - {} - } - % default->\belowtop - {\setlength{\ycoordnum}{{\xunitlength*\real{#4}}+\numberoffset} - \ifthenelse{\shownumbers = 1 \AND \lengthtest{\ycoordnum > -\numberoffset}} - {\rput[r](\ycoordnum,#1){\numbercolor #2}}{} - } %\rput[tc](\ycoordnum,#1){\numbercolor #2} - } -} -} -%-------------------------------------------------------------------- - -\newlength{\ytick} -\newcommand{\whattoprint}{0} -% -\newcommand{\drawlevellines} -{\ifthenelse{\bdorientation = \bdvert} - {\rput[c]{\ticklabelangle}(-\lefttextoffset,0){0}}% this is 0 - {\rput[c]{\ticklabelangle}(0,-\lefttextoffset){0}} - % let's draw ticks; then lines; - % they are controlled by \betweenticks variable - % on its basis we have computed \numberofticks above (in \diagbegin) - % - \multido{\n=1+1}{\numberofticks}{% - \ifthenelse{\bdorientation = \bdvert} - {\setlength{\ytick}{\yunitlength*\real{\betweenticks}*\n} - % tick itself - \psline[style=tickstyle](-\leftshift,\ytick)(\tickrightedge,\ytick) - % level lines - \psline[style=levellinestyle](\tickrightedge,\ytick)(\diagwidth,\ytick) - % numbers! - \FPmul{\whattoprint}{\n}{\betweenticks} - \FPclip{\whattoprint}{\whattoprint} - \rput[r](-\lefttextoffset,\ytick){\whattoprint} - } - {\setlength{\ytick}{\xunitlength*\real{\betweenticks}*\n} - \psline[style=tickstyle](\ytick,-\leftshift)(\ytick,\tickrightedge) - \psline[style=levellinestyle](\ytick,\tickrightedge)(\ytick,\diagheight) - \FPmul{\whattoprint}{\n}{\betweenticks} - \FPclip{\whattoprint}{\whattoprint} - \rput[c](\ytick,-\lefttextoffset){\whattoprint} - } - } -} -%- - - - - - - - - - - - - - - - - - - - -\newcommand{\printbarlabel}[4]{ - % x, y, angle, text - \ifthenelse{ #3 = 0 \AND \bdorientation = \bdvert} - {\rput[tc]{#3}(#1,#2){{#4}}} - {\rput[r]{#3}(#1,#2){{#4}}} -} -%-------------------------------------------------------------------- -% -\InputIfFileExists{bardiag.cfg} - {\typeout{BarDiag: Local configuration file bardiag.cfg loaded}} - {\typeout{BarDiag: No local configuration loaded}} -% -%-------------------------------------------------------------------- |