From 99cf9fbbf8e5c9e2a8efae8809d8f6c4749d5de0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 26 Sep 2021 21:26:47 +0000 Subject: pst-plot (26sep21) git-svn-id: svn://tug.org/texlive/trunk@60620 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-plot/Changes | 4 + .../doc/generic/pst-plot/pst-plot-doc.bib | 34 ++++++++ .../doc/generic/pst-plot/pst-plot-doc.pdf | Bin 1316550 -> 1202217 bytes .../doc/generic/pst-plot/pst-plot-doc.tex | 56 ++++++++----- .../texmf-dist/tex/generic/pst-plot/pst-plot.tex | 89 +++++++++++---------- Master/texmf-dist/tex/latex/pst-plot/pst-plot.sty | 2 +- 6 files changed, 122 insertions(+), 63 deletions(-) diff --git a/Master/texmf-dist/doc/generic/pst-plot/Changes b/Master/texmf-dist/doc/generic/pst-plot/Changes index c7ab6a9df40..a47e13f871a 100644 --- a/Master/texmf-dist/doc/generic/pst-plot/Changes +++ b/Master/texmf-dist/doc/generic/pst-plot/Changes @@ -1,4 +1,8 @@ ----- pst-plot.tex +1.93 2021-09-23 - dont't use function names from pstricks.pro + for own use NArray->NArray@i + - fix for LSM plots; needs gsave .. grestore + - fix for lualatex and \psparametricplot -> use a userdict 1.92 2019-05-16 - fix for missing position test of special labels 1.91 2018-08-31 - fix for showorigin and triglabels 1.90 2018-03-28 - fix for showoriginfalse and yAxis=false diff --git a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.bib b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.bib index 24773cb3c6b..41a57247ce6 100644 --- a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.bib +++ b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.bib @@ -1,6 +1,22 @@ %% -*-bibtex-*- @STRING{tugboat = {TUGboat} } @STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{beiprogramm = {{\TeX}-Beiprogramm}} +@STRING{bretter = {Bretter, die die Welt bedeuten}} +@STRING{editorial = {Editorial}} +@STRING{fremdebuehne = {Von fremden Bühnen}} +@STRING{fundus = {Aus dem Fundus}} +@STRING{grusswort = {Grußwort}} +@STRING{hinterbuehne = {Hinter der Bühne}} +@STRING{komascript = {\KOMAScript}} +@STRING{leserbriefe = {Leserbriefe}} +@STRING{magazin = {Magazin}} +@STRING{rezensionen = {Bücher und Rezensionen}} +@STRING{schonimmer = {Was Sie schon immer über {\TeX} wissen wollten, \dots}} +@STRING{spielplan = {Spielplan}} +@STRING{theaterkasse = {Von der Theaterkasse}} +@STRING{theatertage = {{\TeX}-Theatertage}} +@STRING{tippstricks = {Tipps und Tricks}} @Book{companion, author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Vo\ss}, @@ -95,3 +111,21 @@ version = {1.42}, location = {Heidelberg and Berlin} } +@Article{dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Voß}, + title = {Die {P}lot-{F}unktionen von {\texttt{pst-plot}}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {27--34}, + annote = bretter, + abstract = { Im letzten Heft wurden die mathematischen Funktionen von + \PS~im Zusammenhang mit dem {\LaTeX}-Paket + \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben + und durch Beispiele erl{\"a}utert. In diesem Teil werden + die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r + externe Daten behandelt. } +} diff --git a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.pdf b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.pdf index a82d02ccc14..1d763d0fe20 100644 Binary files a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.pdf and b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.pdf differ diff --git a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex index 00617d6ad3f..c1d7f891cc3 100644 --- a/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex +++ b/Master/texmf-dist/doc/generic/pst-plot/pst-plot-doc.tex @@ -1,8 +1,10 @@ +\RequirePackage{pdfmanagement-testphase} +\DeclareDocumentMetadata{} % $Id: pst-plot-doc.tex 1056 2019-05-17 07:39:59Z herbert $ -\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings - headexclude,footexclude,oneside,dvipsnames,svgnames]{pst-doc} +\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small, + headinclude=false,footinclude=false,twoside]{pst-doc} \listfiles -\usepackage[utf8]{inputenc} +%\usepackage[utf8]{inputenc} \usepackage{pst-ode, pst-node, pst-calculate, @@ -31,7 +33,7 @@ \author{Timothy Van Zandt\\Herbert Vo\ss} \date{\today} -\maketitle +\settitle \begin{abstract} @@ -40,7 +42,7 @@ of \LPack{pst-xkey} and has a lot of the macros which were recently in the package \LPack{pstricks-add}. This documentation describes only the new and changed stuff. For the default behaviour look into the documentation part of the base \LPack{pstricks} package. You find the -documentation here: \url{http://mirrors.ctan.org/graphics/pstricks/base/doc/}. +documentation here: \url{https://mirror.ctan.org/graphics/pstricks/base/doc/}. \vfill \noindent @@ -58,6 +60,7 @@ Peter Hutnick; Christophe Jorssen; Uwe Kern; Alexander Kornrumpf; +Marcel Krüger; Manuel Luque; Patrice Mégret; Jens-Uwe Morawski; @@ -321,6 +324,9 @@ is possible. The following examples show how it can be used. { const1 x 100 mul dup mul mul Euler const2 neg x 100 mul dup mul mul exp mul 2000 mul} \end{pspicture} + + + %-------------------------------------------------------------------------------------- \clearpage \section{New Macro \nxLcs{psBoxplot}} @@ -394,8 +400,6 @@ is the black dot. - - The next example uses an external file for the data, which must first be read by the macro \Lcs{readdata}. The next one creates a horizontal boxplot by rotating the output with $-90$ degrees. @@ -950,15 +954,15 @@ The legend has to be defined \emph{before} the environment \Lenv{psgraph}. \begin{compactitem} \item \Lcs{pslegend} uses the commands \Lcs{tabular} and \Lcs{endtabular}, which are only available - when running \LaTeX. With \TeX\ you have to redefine the macro \Lcs{pslegend@ii}: + when running \LaTeX. With \TeX\ you have to redefine the macro \nxLcs{pslegend@ii}: \begin{lstlisting} \def\pslegend@ii[#1](#2){\rput[#1](!#2){\psframebox[style=legendstyle]{% \footnotesize\tabcolsep=2pt% \tabular[t]{@{}ll@{}}\pslegend@text\endtabular}}\gdef\pslegend@text{}} \end{lstlisting} \item The fontsize can be changed locally for each cell or globally, when also redefining the - macro \Lcs{pslegend@ii}. -\item If you want to use more than two columns for the table or a shadow box, then redefine \Lcs{pslegend@ii}. + macro \nxLcs{pslegend@ii}. +\item If you want to use more than two columns for the table or a shadow box, then redefine \nxLcs{pslegend@ii}. \end{compactitem} The macro \Lcs{psframebox} uses the style \Lkeyval{legendstyle} which is preset to \Lkeyset{fillstyle=solid}, @@ -1079,8 +1083,8 @@ usual way. Only the additional value \Lkeyval{inner} is valid for \Lkeyword{trigLabels} option, the macros \Lcs{pshlabel} and \Lcs{psvlabel} shouldn't be redefined, because the package does it itself internally in these cases. However, if you need a -redefinition, then do it for \Lcs{pst@@@hlabel} and -\Lcs{pst@@@vlabel} with +redefinition, then do it for \nxLcs{pst@@@hlabel} and +\nxLcs{pst@@@vlabel} with \begin{lstlisting}[style=syntax] \makeatletter @@ -1153,12 +1157,12 @@ redefinition, then do it for \Lcs{pst@@@hlabel} and \Lkeyword{ury} & length & 0pt & \pageref{psgraphoptions}\\ \Lkeyword{valuewidth} & integer & 10 & \pageref{values}\\ \Lkeyword{xAxis} & boolean & \true & \pageref{xyAxes}\\%ok -\Lkeyword{xAxisLabel} & literal & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ -\Lkeyword{xAxisLabelPos} & (x,y) or empty & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ +\Lkeyword{xAxisLabel} & literal & \{\nxLcs{@empty}\} & \pageref{psgraphoptions}\\ +\Lkeyword{xAxisLabelPos} & (x,y) or empty & \{\nxLcs{@empty}\} & \pageref{psgraphoptions}\\ \Lkeyword{xDecimals} & integer or empty & \{\} & \pageref{xydecimals}\\%ok \Lkeyword{xEnd} & integer or empty & \{\} & \pageref{nxend}\\ -\Lkeyword{xLabels} & list & \{\Lcs{empty}\} & \pageref{xLabels}\\ -\Lkeyword{xlabelFactor} & anything & \{\Lcs{@empty}\} & \pageref{labelfactor}\\ +\Lkeyword{xLabels} & list & \{\nxLcs{empty}\} & \pageref{xLabels}\\ +\Lkeyword{xlabelFactor} & anything & \{\nxLcs{@empty}\} & \pageref{labelfactor}\\ \Lkeyword{xlabelFontSize} & macro & \{\} & \pageref{labelfontsize}\\ \Lkeyword{xlabelOffset} & length & 0 & \pageref{labelOffset}\\ \Lkeyword{xlabelPos} & \Lkeyval{bottom},\Lkeyval{axis},\Lkeyval{top} @@ -1183,12 +1187,12 @@ redefinition, then do it for \Lcs{pst@@@hlabel} and \Lkeyword{xyDecimals} & integer or empty & \{\} & \pageref{xydecimals}\\%ok \Lkeyword{xylogBase} & integer or empty & \{\} & \pageref{xylogbase}\\ \Lkeyword{yAxis} & boolean & \true & \pageref{xyAxes}\\%ok -\Lkeyword{yAxisLabel} & literal & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ -\Lkeyword{yAxisLabelPos} & (x,y) or empty & \{\Lcs{@empty}\} & \pageref{psgraphoptions}\\ +\Lkeyword{yAxisLabel} & literal & \{\nxLcs{@empty}\} & \pageref{psgraphoptions}\\ +\Lkeyword{yAxisLabelPos} & (x,y) or empty & \{\nxLcs{@empty}\} & \pageref{psgraphoptions}\\ \Lkeyword{yDecimals} & integer or empty & \{\} & \pageref{xydecimals}\\%ok \Lkeyword{yEnd} & integer or empty & \{\} & \pageref{ystartend}\\ -\Lkeyword{yLabels} & list & \{\Lcs{empty}\} & \pageref{xLabels}\\ -\Lkeyword{ylabelFactor} & literal & \{\Lcs{empty}\} & \pageref{labelfactor}\\ +\Lkeyword{yLabels} & list & \{\nxLcs{empty}\} & \pageref{xLabels}\\ +\Lkeyword{ylabelFactor} & literal & \{nx\Lcs{empty}\} & \pageref{labelfactor}\\ \Lkeyword{ylabelFontSize} & macro & \{\} & \pageref{labelfontsize}\\ \Lkeyword{ylabelOffset} & length & 0 & \pageref{labelOffset}\\ \Lkeyword{ylabelPos} & \Lkeyval{left}|\Lkeyval{axis}|\Lkeyval{right} @@ -2493,6 +2497,9 @@ This mode in math is also called double logarithmic. It is a combination of the two foregoing modes and the function is now $y=\log x$ and is shown in the following example. +\psset{xyAxes=true} + + \medskip \begin{LTXexample}[width=7cm] \begin{pspicture}(-3.5,-3.5)(3.5,3.5) @@ -2737,6 +2744,10 @@ This is only a demonstration that the default option \xLkeyword{xylogBase}=\{\} ticksize=10pt,subtickcolor=blue,subticksize=0.75,ylabelPos=right]{->}(0,0)(5,5)(-5,-5) \end{lstlisting} + +\psset{xyAxes=true} + + \begin{LTXexample}[width=5.5cm] \pspicture(5,5.5) \psaxes[subticks=4,ticksize=6pt,subticksize=0.5,% @@ -3340,6 +3351,9 @@ best all data records. \bgroup \centering \psset{lly=-.5cm} +\begin{filecontents*}[force]{data/LSM.data} +0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 +\end{filecontents*} \readdata{\data}{data/LSM.data} \begin{psgraph}[arrows=->](0,0)(0,0)(8,8){.5\textwidth}{!} \listplot[plotstyle=dots]{\data} @@ -3349,7 +3363,7 @@ best all data records. \begin{lstlisting} -\begin{filecontents*}{data/LSM.data} +\begin{filecontents*}[force]{data/LSM.data} 0 1 1 3 2.8 4 3 2.9 2 5 4 4 5 5.5 6 8.2 8 7 \end{filecontents*} \psset{lly=-.5cm} diff --git a/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex b/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex index 2436a847390..a426f7fb51f 100644 --- a/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex +++ b/Master/texmf-dist/tex/generic/pst-plot/pst-plot.tex @@ -1,4 +1,4 @@ -% $Id: pst-plot.tex 1056 2019-05-17 07:39:59Z herbert $ +% $Id: pst-plot.tex 1074 2019-07-16 16:07:00Z herbert $ %% %% BEGIN pst-plot.tex %% @@ -23,8 +23,8 @@ \ifx\PSTFPloaded\endinput\else \input pst-fp.tex \fi \ifx\MultidoLoaded\endinput\else \input multido.tex \fi % -\def\fileversion{1.92} -\def\filedate{2019/05/16} +\def\fileversion{1.93} +\def\filedate{2021/09/23} \message{ v\fileversion, \filedate\space (tvz,hv)} % \edef\TheAtCode{\the\catcode`\@} @@ -378,11 +378,14 @@ D\space##1% } repeat /u xiSquare fi mul xi xifi mul sub n xiSquare mul xi dup mul sub div def /v n xifi mul xi fi mul sub n xiSquare mul xi dup mul sub div def + gsave \Pst@Debug\space 0 gt { % print the equation - /NimbusSanL-Regu findfont 12 scalefont setfont + \ifpstGSfonts /NimbusSanL-Regu \else /Helvetica \fi + findfont 12 scalefont setfont 0 -50 moveto (y=) show % print y= v \pst@number\psyunit \pst@number\psxunit div div 20 string cvs show ( x+) show % m*x+ u \pst@number\psyunit div 20 string cvs show } if + grestore newpath (\psk@xStart) length 0 gt % special start value? { \psk@xStart\space \pst@number\psxunit mul } @@ -417,64 +420,64 @@ D\space##1% \addto@pscode{ /Barwidth \number\Add@barwidth 2 div def /Endwidth Barwidth \psk@arrowlength\space mul def - NArray bubblesort - /NArray ED % save sorted array - [ NArray { yUnit mul } forall ] /NArray ED % multiply with y unit - NArray 0 get /MinVal ED % save minimum - NArray m 1 sub get /MaxVal ED % maximum + NArray@i bubblesort + /NArray@i ED % save sorted array + [ NArray@i { yUnit mul } forall ] /NArray@i ED % multiply with y unit + NArray@i 0 get /MinVal ED % save minimum + NArray@i m 1 sub get /MaxVal ED % maximum m 2 div cvi /M ED % the middle - NArray length 2 mod 0 eq { % even numbers of entries - M 1 sub NArray exch get % even number of values - NArray M get % and the upper one + NArray@i length 2 mod 0 eq { % even numbers of entries + M 1 sub NArray@i exch get % even number of values + NArray@i M get % and the upper one add 2 div /Median ED % the median }{ - NArray M get /Median ED % odd numbers of values + NArray@i M get /Median ED % odd numbers of values } ifelse m 4 mod 0 eq { % get the lower Quartil even/odd - m 4 div cvi dup 1 sub NArray exch get - exch NArray exch get + m 4 div cvi dup 1 sub NArray@i exch get + exch NArray@i exch get % M 2 div cvi 1 add dup /M2 ED % save middle index -% 1 sub NArray exch get -% NArray M2 get +% 1 sub NArray@i exch get +% NArray@i M2 get add 2 div floor /LowerQuartil ED }{ - NArray M 2 div cvi get /LowerQuartil ED + NArray@i M 2 div cvi get /LowerQuartil ED } ifelse % end even/odd m 0.75 mul dup dup cvi sub 0 eq { % get the upper Quartil % 0.75*m is an integer - cvi dup 1 sub NArray exch get exch NArray exch get + cvi dup 1 sub NArray@i exch get exch NArray@i exch get % M 1.5 mul cvi 1 add dup /M3 ED -% 1 sub NArray exch get -% NArray M3 get +% 1 sub NArray@i exch get +% NArray@i M3 get add 2 div floor /UpperQuartil ED }{ % upper quartil - NArray m 0.75 mul floor cvi get /UpperQuartil ED + NArray@i m 0.75 mul floor cvi get /UpperQuartil ED } ifelse % /IQL UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul def 0 1 m 1 sub { % Index on stack dup /Index ED - NArray exch get LowerQuartil sub abs IQL sub 0 gt { + NArray@i exch get LowerQuartil sub abs IQL sub 0 gt { \psk@dotsize \@nameuse{psds@\psk@dotstyle} - 0 NArray Index get \psk@postAction + 0 NArray@i Index get \psk@postAction Dot - NArray Index LowerQuartil UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul sub + NArray@i Index LowerQuartil UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul sub dup /MinVal ED put % replace with 1.5 IQL - NArray Index 1 add get /MinVal ED + NArray@i Index 1 add get /MinVal ED } { exit } ifelse } for m 1 sub -1 0 { % Index on stack dup /Index ED - NArray exch get UpperQuartil sub abs IQL sub 0 gt { + NArray@i exch get UpperQuartil sub abs IQL sub 0 gt { % newpath \psk@dotsize \@nameuse{psds@\psk@dotstyle} - 0 NArray Index get \psk@postAction\space + 0 NArray@i Index get \psk@postAction\space Dot - NArray Index UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul UpperQuartil add + NArray@i Index UpperQuartil LowerQuartil sub \pst@IQLfactor\space mul UpperQuartil add dup /MaxVal ED put % replace with 1.5 IQL - NArray Index 1 sub get /MaxVal ED + NArray@i Index 1 sub get /MaxVal ED }{ exit } ifelse } for % @@ -544,8 +547,8 @@ D\space##1% \@nameuse{beginplot@\psplotstyle}% \addto@pscode{ /D {} def - [ #1 ] /NArray ED - NArray aload length /m ED + [ #1 ] /NArray@i ED + NArray@i aload length /m ED /xUnit \pst@number\psxunit def /yUnit \pst@number\psyunit def }% @@ -1082,11 +1085,12 @@ D\space##1% \def\parametricplot@i#1#2{\@ifnextchar[{\parametricplot@x{#1}{#2}}{\parametricplot@x{#1}{#2}[]}} \def\parametricplot@x#1#2[#3]{\@ifnextchar[{\parametricplot@xi{#1}{#2}[#3]}{\parametricplot@xi{#1}{#2}[#3][]}} \def\parametricplot@xi#1#2[#3][#4]#5{% - \pst@killglue% + \pst@killglue \begingroup% - \use@par% + \use@par \@nameuse{beginplot@\psplotstyle}% \addto@pscode{% + 20 dict begin #3 %prefix PS code \psplot@init /t #1 def @@ -1126,7 +1130,7 @@ D\space##1% \@pstfalse \@nameuse{testqp@\psplotstyle}% \if@pst\parametricplot@ii{#4}\else\parametricplot@iii{#4}\fi - \endgroup% + \endgroup \ignorespaces} % \def\parametricplot@ii#1{% para is the post code @@ -1138,7 +1142,8 @@ D\space##1% /t 3 -1 roll def 2 copy gt { exch } if pop /t t 3 -1 roll add dup t1 gt {pop t1} if def xy \@nameuse{doqp@\psplotstyle} - t t1 eq { exit } if } loop}% + t t1 eq { exit } if } loop + }% \else\pst@killglue% \addto@pscode{% /ps@Exit false def @@ -1154,7 +1159,7 @@ D\space##1% } if }% \fi% - \addto@pscode{ #1 }% + \addto@pscode{ #1 end }% also end of userdict \@nameuse{endqp@\psplotstyle}} % \def\parametricplot@iii#1{% @@ -1170,7 +1175,8 @@ D\space##1% t t1 eq { exit } if } loop xy 2 copy \tx@UserCoor 2 array astore /FinalState ED - n 2 roll}% + n 2 roll + }% \else\pst@killglue% \addto@pscode{ mark @@ -1183,9 +1189,10 @@ D\space##1% } repeat /t t1 def xy - n 2 roll}% - \fi% - \addto@pscode{ #1 }% + n 2 roll + }% + \fi + \addto@pscode{ #1 end}% also end of userdict \@nameuse{endplot@\psplotstyle}} % % diff --git a/Master/texmf-dist/tex/latex/pst-plot/pst-plot.sty b/Master/texmf-dist/tex/latex/pst-plot/pst-plot.sty index 1e9c4f018da..01ede3063f8 100644 --- a/Master/texmf-dist/tex/latex/pst-plot/pst-plot.sty +++ b/Master/texmf-dist/tex/latex/pst-plot/pst-plot.sty @@ -29,7 +29,7 @@ \RequirePackage{pstricks} \RequirePackage{pst-xkey} \RequirePackage{multido} -\ProvidesPackage{pst-plot}[2011/04/13 package wrapper for pst-plot.tex (hv)] +\ProvidesPackage{pst-plot}[2021/09/23 package wrapper for pst-plot.tex (hv)] \input{pst-plot.tex} \ProvidesFile{pst-plot.tex} [\filedate\space \fileversion\space `pst-plot' (tvz,hv)] -- cgit v1.2.3