<font face="Arial, Helvetica, sans-serif">Dear Herbert,<br>
<br>
Thanks for your instructions, which I have followed assiduously, I hope. Try this code on for size.<br>
<br>
------<br>
\def\psPoisson{\pst@object{psPoisson}}%<br>
\def\psPoisson@i#1#2{\psPoisson@ii#1,,\@nil{#2}}%<br>
\def\psPoisson@ii#1,#2,#3\@nil#4{%<br>
&nbsp;\def\pst@tempA{#2}%<br>
&nbsp;\ifx\pst@tempA\@empty\psPoisson@iii{0}{#1}{#4}\else<br>
&nbsp; \psPoisson@iii{#1}{#2}{#4}\fi}%<br>
\def\psPoisson@iii#1#2#3{%<br>
&nbsp; \begin@SpecialObj%<br>
&nbsp; \addto@pscode{<br>
&nbsp;&nbsp;&nbsp; /scx { \pst@number\psxunit mul } def<br>
&nbsp;&nbsp;&nbsp; /scy { \pst@number\psyunit mul } def<br>
&nbsp;&nbsp;&nbsp; /M #1 def<br>
&nbsp;&nbsp;&nbsp; /N #2 def<br>
&nbsp;&nbsp;&nbsp; /lambda #3 def<br>
&nbsp;&nbsp;&nbsp; /elambda Euler #3 neg exp def&nbsp; % e^-lambda<br>
&nbsp;&nbsp;&nbsp; /dx \psFunc@barwidth 2 div def<br>
&nbsp;&nbsp;&nbsp; /kOld dx neg M add def % addition of M here<br>
&nbsp;&nbsp;&nbsp; kOld scx 0 moveto&nbsp;&nbsp; % starting point<br>
&nbsp;&nbsp;&nbsp; /Y elambda def&nbsp;&nbsp;&nbsp; % start value<br>
&nbsp;&nbsp;&nbsp; 0 1 M 1 sub {&nbsp;&nbsp; % skip over first M-1 rectangles<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /k exch def&nbsp; % whilst recursing probabilities<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k 0 eq { /Y elambda def }{ /Y Y lambda mul k div def } ifelse<br>
&nbsp;&nbsp;&nbsp; } for % nothing happens if M=0<br>
&nbsp;&nbsp;&nbsp; M 1 N {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; % N-M+1 times<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /k exch def&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; % save loop variable<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k 0 eq { /Y elambda def }{ /Y Y lambda mul k div def } ifelse<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kOld scx 0 L kOld scx Y scy L k dx add scx Y scy L<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ifPst@markZeros k dx add scx 0 L \fi<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ifPst@printValue<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gsave \psk@PSfont findfont \psk@fontscale scalefont setfont<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y \psk@valuewidth string cvs<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k scx \psk@fontscale 2 div add<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y scy \pst@number\pslabelsep add moveto<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 90 rotate show grestore<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \fi<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /kOld kOld 1 add def<br>
&nbsp;&nbsp;&nbsp; } for<br>
&nbsp;&nbsp;&nbsp; \ifPst@markZeros\else k dx add scx 0 L \fi % last line down to x-axis<br>
&nbsp; }%<br>
&nbsp; \psk@fillstyle<br>
&nbsp; \pst@stroke<br>
&nbsp; \end@SpecialObj%<br>
}<br>
------<br>
<br>
It seems to work, e.g. \psPoisson{45}{30}, \psPoisson{20,45}{30}, even \psPoisson{25,25}{30}. No more psclip (yippee! ) Anything untoward is a bug, not a feature. If you agree, then \psBinomial is next.<br>
<br>
Yours,<br>
<br>
Gerry Coombes<br>
<br>
</font><div class="AOLPromoFooter">
<hr style="margin-top:10px;" />
Get a FREE AOL Email account with unlimited storage.  Plus, share and store photos and experience exclusively recorded live music Sessions from your favourite artists. <a href="http://info.aol.co.uk/joinnow/?ncid=548" target="_blank">Click Here</a> for more information.<br />
</div>