diff options
author | Norbert Preining <norbert@preining.info> | 2021-11-17 03:01:09 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-11-17 03:01:09 +0000 |
commit | 210a940181d3ba84d3a77ac4c21466fa398d61d5 (patch) | |
tree | 45a126a95b86e3ee1dea21c3bbb7637560112554 /graphics | |
parent | f57760f92d28c76b8efac9994495070b37777bea (diff) |
CTAN sync 202111170301
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/pgf/contrib/bodeplot/README.md | 86 | ||||
-rw-r--r-- | graphics/pgf/contrib/bodeplot/bodeplot.dtx | 51 | ||||
-rw-r--r-- | graphics/pgf/contrib/bodeplot/bodeplot.pdf | bin | 498916 -> 460394 bytes | |||
-rw-r--r-- | graphics/pstricks/base/Changes | 4 | ||||
-rw-r--r-- | graphics/pstricks/base/dvips/pstricks.pro | 6 | ||||
-rw-r--r-- | graphics/pstricks/contrib/pst-arrow/Changes | 3 | ||||
-rw-r--r-- | graphics/pstricks/contrib/pst-arrow/doc/pst-arrow-doc.pdf | bin | 222065 -> 223080 bytes | |||
-rw-r--r-- | graphics/pstricks/contrib/pst-arrow/tex/pst-arrow.tex | 41 |
8 files changed, 114 insertions, 77 deletions
diff --git a/graphics/pgf/contrib/bodeplot/README.md b/graphics/pgf/contrib/bodeplot/README.md index f00aca2523..51253697ee 100644 --- a/graphics/pgf/contrib/bodeplot/README.md +++ b/graphics/pgf/contrib/bodeplot/README.md @@ -1,43 +1,43 @@ -# bodeplot
-LaTeX package to plot Bode, Nichols, and Nyquist diagrams.
-
-Inspired by the `bodegraph` package.
-
-Limitation: Phase plots from TF commands are wrapped between 0 and 360 degrees.
-
-Added functionality:
- - New `\BodeZPK` and `\BodeTF` commands to generate Bode plots of any transfer function given either poles, zeros, gain, and delay, or numerator and denominator coefficients and delay
- - Support for unstable poles and zeros.
- - Support for complex poles and zeros.
- - Support for general stable and unstable second order transfer functions.
- - Support for both `gnuplot` (default) and `pgfplots` (package option `pgf`).
- - Support for linear and asymptotic approximation of magnitude and phase plots of any transfer function given poles, zeros, and gain.
-
-Main Bode/Nyquist/Nichols commands:
-Given Zeros, Poles, Gain, and Delay (Bode plots support asymptotic and linear approximation for systems without delays):
- - `\BodeZPK[object1/type1/{options1},object2/type2/{options2},...]{z/{zeros},p/{poles},k/gain,d/delay}{min-frequency}{max-frequency}`
- - `\NicholsZPK[plot/{options},axes/{options}]{z/{zeros},p/{poles},k/gain,d/delay}{min-frequency}{max-frequency}`
- - `\NyquistZPK[plot/{options},axes/{options}]{z/{zeros},p/{poles},k/gain,d/delay}{min-frequency}{max-frequency}`
-
-Given Numerator and denominator coefficients and delay (does not support approximation yet):
- - `\BodeTF[object1/type1/{options1},object2/type2/{options2},...]{num/{coeff},den/{coeff},d/delay}{min-frequency}{max-frequency}`
- - `\NicholsTF[plot/{options},axes/{options}]{num/{coeff},den/{coeff},d/delay}`
- - `\NyquistTF[plot/{options},axes/{options}]{num/{coeff},den/{coeff},d/delay}`
-
-Other new environments and associated commands:
- - `BodePlot` environment
- - `\addBodeZPKPlots[{approximation1/{plot-options1}},{approximation2/{plot-options2}},...]{plot-type (phase or magnitude)}{z/{zeros},p/{poles},k/gain,d/delay}`
- - `\addBodeTFPlot[plot-options]{plot-type (phase or magnitude)}{num/{coeff},den/{coeff},d/delay}`
- - `\addBodeComponentPlot[plot-options]{basic_component_plot_command}`
- - Basic component plot commands: ***(append `Lin` to get linear approximation and `Asymp` to get asymptotic approximation)*** ***(change `Pole` to `Zero` to get inverse plots)*** ***(change `Mag` to `Ph` to get phase plots)***
- - `\MagK{a}` - Pure gain, G(s) = a.
- - `\MagPole{a}{b}` - Single pole at s = a+bi, G(s) = 1/(s - a-bi).
- - `\MagCSPoles{z}{w}` - Cannonical Second order system, G(s) = 1/(s^2 + 2zws + w^2).
- - `\MagSOPoles{a}{b}` - Second Order system, G(s) = 1/(s^2 + as + b).
- - `\MagDel{T}` - Pure delay, G(s) = exp(-Ts) (does not admit asymptotic approximation).
- - `NicholsChart` environment
- - `\addNicholsZPKChart[plot-options]{z/{zeros},p/{poles},k/gain,d/delay}`
- - `\addNicholsTFChart[plot-options]{num/{coeff},den/{coeff},d/delay}`
- - `NyquistPlot` environment
- - `\addNyquistZPKPlot[plot-options]{z/{zeros},p/{poles},k/gain,d/delay}`
- - `\addNyquistTFPlot[plot-options]{num/{coeff},den/{coeff},d/delay}`
+# bodeplot +LaTeX package to plot Bode, Nichols, and Nyquist diagrams. + +Inspired by the `bodegraph` package. + +Limitation: Phase plots from TF commands are wrapped between 0 and 360 degrees. + +Added functionality: + - New `\BodeZPK` and `\BodeTF` commands to generate Bode plots of any transfer function given either poles, zeros, gain, and delay, or numerator and denominator coefficients and delay + - Support for unstable poles and zeros. + - Support for complex poles and zeros. + - Support for general stable and unstable second order transfer functions. + - Support for both `gnuplot` (default) and `pgfplots` (package option `pgf`). + - Support for linear and asymptotic approximation of magnitude and phase plots of any transfer function given poles, zeros, and gain. + +Main Bode/Nyquist/Nichols commands: +Given Zeros, Poles, Gain, and Delay (Bode plots support asymptotic and linear approximation for systems without delays): + - `\BodeZPK[object1/type1/{options1},object2/type2/{options2},...]{z/{zeros},p/{poles},k/gain,d/delay}{min-frequency}{max-frequency}` + - `\NicholsZPK[plot/{options},axes/{options}]{z/{zeros},p/{poles},k/gain,d/delay}{min-frequency}{max-frequency}` + - `\NyquistZPK[plot/{options},axes/{options}]{z/{zeros},p/{poles},k/gain,d/delay}{min-frequency}{max-frequency}` + +Given Numerator and denominator coefficients and delay (does not support approximation yet): + - `\BodeTF[object1/type1/{options1},object2/type2/{options2},...]{num/{coeff},den/{coeff},d/delay}{min-frequency}{max-frequency}` + - `\NicholsTF[plot/{options},axes/{options}]{num/{coeff},den/{coeff},d/delay}` + - `\NyquistTF[plot/{options},axes/{options}]{num/{coeff},den/{coeff},d/delay}` + +Other new environments and associated commands: + - `BodePlot` environment + - `\addBodeZPKPlots[{approximation1/{plot-options1}},{approximation2/{plot-options2}},...]{plot-type (phase or magnitude)}{z/{zeros},p/{poles},k/gain,d/delay}` + - `\addBodeTFPlot[plot-options]{plot-type (phase or magnitude)}{num/{coeff},den/{coeff},d/delay}` + - `\addBodeComponentPlot[plot-options]{basic_component_plot_command}` + - Basic component plot commands: ***(append `Lin` to get linear approximation and `Asymp` to get asymptotic approximation)*** ***(change `Pole` to `Zero` to get inverse plots)*** ***(change `Mag` to `Ph` to get phase plots)*** + - `\MagK{a}` - Pure gain, G(s) = a. + - `\MagPole{a}{b}` - Single pole at s = a+bi, G(s) = 1/(s - a-bi). + - `\MagCSPoles{z}{w}` - Cannonical Second order system, G(s) = 1/(s^2 + 2zws + w^2). + - `\MagSOPoles{a}{b}` - Second Order system, G(s) = 1/(s^2 + as + b). + - `\MagDel{T}` - Pure delay, G(s) = exp(-Ts) (does not admit asymptotic approximation). + - `NicholsChart` environment + - `\addNicholsZPKChart[plot-options]{z/{zeros},p/{poles},k/gain,d/delay}` + - `\addNicholsTFChart[plot-options]{num/{coeff},den/{coeff},d/delay}` + - `NyquistPlot` environment + - `\addNyquistZPKPlot[plot-options]{z/{zeros},p/{poles},k/gain,d/delay}` + - `\addNyquistTFPlot[plot-options]{num/{coeff},den/{coeff},d/delay}` diff --git a/graphics/pgf/contrib/bodeplot/bodeplot.dtx b/graphics/pgf/contrib/bodeplot/bodeplot.dtx index 7ebfd3b754..7b775b916a 100644 --- a/graphics/pgf/contrib/bodeplot/bodeplot.dtx +++ b/graphics/pgf/contrib/bodeplot/bodeplot.dtx @@ -51,8 +51,8 @@ % \DoNotIndex{\newcommand,\xdef,\gdef,\def,\edef,\addplot,\approx,\arabic,\opt,\typ,\obj,\else,\if@pgfarg,\fi,\begin,\end,\feature,\footnotesize,\draw,\detokenize,\DeclareOption,\foreach,\ifdim,\ifodd,\Im,\Re,\let,\newif,\nextgroupplot,\noexpand,\expandafter,\unexpanded,\PackageError,\PackageWarning,\relax,\RequirePackage,\tikzset,\pgfmathsetmacro,\pgfmathtruncatemacro,\ProcessOptions} % % \title{The \textsf{bodeplot} package\thanks{This document -% corresponds to \textsf{bodeplot}~v1.0.4, -% dated November 5, 2021.}} +% corresponds to \textsf{bodeplot}~v1.0.5, +% dated November 15, 2021.}} % \author{Rushikesh Kamalapurkar \\ \texttt{rlkamalapurkar@gmail.com}} % % \maketitle @@ -144,10 +144,21 @@ % \end{figure} % % \DescribeEnv{BodePlot} -% |\begin{BodePlot}|\oarg{axis-options}\marg{min-frequency}\marg{max-frequency}\\ +% |\begin{BodePlot}|\oarg{obj1/\marg{opt1},obj2/\marg{opt2},...}\\ +% \hspace*{3em}\marg{min-frequency}\marg{max-frequency}\\ % \hspace*{2em}|\addBode...|\\ % \hspace*{1.5em}|\end{BodePlot}|\\ -% The |BodePlot| environment works in conjunction with the parametric function generator macros |\addBodeZPKPlots|, |\addBodeTFPlot|, and |\addBodeComponentPlot|. If supplied, |axis-options| are passed directly to the |semilogaxis| environment and the frequency limits are translated to the x-axis limits and the domain of the |semilogaxis| environment. Example usage in the description of |\addBodeZPKPlots|, |\addBodeTFPlot|, and |\addBodeComponentPlot|. +% The |BodePlot| environment works in conjunction with the parametric function generator macros |\addBodeZPKPlots|, |\addBodeTFPlot|, and |\addBodeComponentPlot|. The optional argument is comprised of a comma separated list of tuples, either |obj/{opt}| or just |{opt}|. Each tuple passes options to different |pgfplots| macros that generate the axes and the plots according to: +% \begin{itemize} +% \item Tuples of the form |obj/{opt}|: +% \begin{itemize} +% \item |tikz/{opt}|: modify picture properties by adding options |{opt}| to the |tikzpicture| environment. +% \item |axes/{opt}|: modify axis properties by adding options |{opt}| to the |semilogaxis| environment. +% \item |commands/{opt}|: add any valid TikZ commands inside |semilogaxis| environment. The commands passed to |opt| need to be valid TikZ commands, separated by semicolons as usual. +% \end{itemize} +% \item Tuples of the form |{opt}| are passed directly to the |semilogaxis| environment. +% \end{itemize} +% The frequency limits are translated to the x-axis limits and the domain of the |semilogaxis| environment. Example usage in the description of |\addBodeZPKPlots|, |\addBodeTFPlot|, and |\addBodeComponentPlot|. % % \DescribeMacro{\addBodeZPKPlots} % |\addBodeZPKPlots| \oarg{approx1/\marg{opt1},approx2/\marg{opt2},...}\\ @@ -347,10 +358,21 @@ % \end{figure} % % \DescribeEnv{NyquistPlot} -% |\begin{NyquistPlot}|\oarg{axis-options}\marg{min-frequency}\marg{max-frequency}\\ +% |\begin{NyquistPlot}|\oarg{obj1/\marg{opt1},obj2/\marg{opt2},...}\\ +% \hspace*{3em}\marg{min-frequency}\marg{max-frequency}\\ % \hspace*{2em}|\addNyquist...|\\ % \hspace*{1.5em}|\end{NyquistPlot}|\\ -% The |NyquistPlot| environment works in conjunction with the parametric function generator macros |\addNyquistZPKPlot| and |\addNyquistTFPlot|. If supplied, |axis-options| are passed directly to the |axis| environment and the frequency limits are translated to the x-axis limits and the domain of the |axis| environment. +% The |NyquistPlot| environment works in conjunction with the parametric function generator macros |\addNyquistZPKPlot| and |\addNyquistTFPlot|. The optional argument is comprised of a comma separated list of tuples, either |obj/{opt}| or just |{opt}|. Each tuple passes options to different |pgfplots| macros that generate the axes and the plots according to: +% \begin{itemize} +% \item Tuples of the form |obj/{opt}|: +% \begin{itemize} +% \item |tikz/{opt}|: modify picture properties by adding options |{opt}| to the |tikzpicture| environment. +% \item |axes/{opt}|: modify axis properties by adding options |{opt}| to the |axis| environment. +% \item |commands/{opt}|: add any valid TikZ commands inside |axis| environment. The commands passed to |opt| need to be valid TikZ commands, separated by semicolons as usual. +% \end{itemize} +% \item Tuples of the form |{opt}| are passed directly to the |axis| environment. +% \end{itemize} +% The frequency limits are translated to the x-axis limits and the domain of the |axis| environment. % % \DescribeMacro{\addNyquistZPKPlot} % |\addNyquistZPKPlot|\oarg{plot-options}\\ @@ -392,10 +414,21 @@ % % % \DescribeEnv{NicholsChart} -% |\begin{NicholsChart}|\oarg{axis-options}\marg{min-frequency}\marg{max-frequency}\\ +% |\begin{NicholsChart}|\oarg{obj1/\marg{opt1},obj2/\marg{opt2},...}\\ +% \hspace*{3em}\marg{min-frequency}\marg{max-frequency}\\ % \hspace*{2em}|\addNichols...|\\ % \hspace*{1.5em}|\end{NicholsChart}|\\ -% The |NicholsChart| environment works in conjunction with the parametric function generator macros |\addNicholsZPKChart| and |\addNicholsTFChart|. If supplied, |axis-options| are passed directly to the |axis| environment and the frequency limits are translated to the x-axis limits and the domain of the |axis| environment. +% The |NicholsChart| environment works in conjunction with the parametric function generator macros |\addNicholsZPKChart| and |\addNicholsTFChart|. The optional argument is comprised of a comma separated list of tuples, either |obj/{opt}| or just |{opt}|. Each tuple passes options to different |pgfplots| macros that generate the axes and the plots according to: +% \begin{itemize} +% \item Tuples of the form |obj/{opt}|: +% \begin{itemize} +% \item |tikz/{opt}|: modify picture properties by adding options |{opt}| to the |tikzpicture| environment. +% \item |axes/{opt}|: modify axis properties by adding options |{opt}| to the |axis| environment. +% \item |commands/{opt}|: add any valid TikZ commands inside |axis| environment. The commands passed to |opt| need to be valid TikZ commands, separated by semicolons as usual. +% \end{itemize} +% \item Tuples of the form |{opt}| are passed directly to the |axis| environment. +% \end{itemize} +% The frequency limits are translated to the x-axis limits and the domain of the |axis| environment. % % \DescribeMacro{\addNicholsZPKChart} % |\addNicholsZPKChart|\oarg{plot-options}\\ @@ -1135,7 +1168,7 @@ \xdef\opt@approx{\unexpanded\expandafter{\opt}}% \else \ifnum\pdfstrcmp{\unexpanded\expandafter{\obj}}{commands}=0 - \ifnum\pdfstrcmp{\unexpanded\expandafter{\typ}}{phase}=0 + \ifnum\pdfstrcmp{\unexpanded\expandafter{\typ}}{ph}=0 \xdef\optph@commands{\unexpanded\expandafter{\opt}}% \else \xdef\optmag@commands{\unexpanded\expandafter{\opt}}% diff --git a/graphics/pgf/contrib/bodeplot/bodeplot.pdf b/graphics/pgf/contrib/bodeplot/bodeplot.pdf Binary files differindex bd20ff3dd5..9a7b199985 100644 --- a/graphics/pgf/contrib/bodeplot/bodeplot.pdf +++ b/graphics/pgf/contrib/bodeplot/bodeplot.pdf diff --git a/graphics/pstricks/base/Changes b/graphics/pstricks/base/Changes index 9bb20606b6..d06ae78798 100644 --- a/graphics/pstricks/base/Changes +++ b/graphics/pstricks/base/Changes @@ -1,4 +1,4 @@ -% $Id: Changes 290 2021-10-01 09:20:29Z herbert $ +% $Id: Changes 317 2021-11-16 20:47:25Z herbert $ For all changes see file History! Here are only the last one changes listed. @@ -11,6 +11,7 @@ pstricks.tex -------- versions like 2.47a have only changes in other files, but not in this main package. +3.11a 2021-11-16 - fix for GS in pstricks.pro 3.11 2021-10-01 - added the missing filled dots - fix for pst-dots.pro (delete one dup) - fix for trailing space before second pspicture @@ -87,6 +88,7 @@ pstricks-doc ----------- ---- pstricks.pro +1.41 2021-11-16 - fix for GS > 925 1.40 2021-09-25 - revert 1.39 1.39 2021-09-09 - run OpenCurve in a dictionary 1.38 2021-09-05 - increase memory for PenroseFill and PenrodeFillA diff --git a/graphics/pstricks/base/dvips/pstricks.pro b/graphics/pstricks/base/dvips/pstricks.pro index 87dc4d7e6b..175b1908d6 100644 --- a/graphics/pstricks/base/dvips/pstricks.pro +++ b/graphics/pstricks/base/dvips/pstricks.pro @@ -1,7 +1,7 @@ -% $Id: pstricks.pro 290 2021-10-01 09:20:29Z herbert $ +% $Id: pstricks.pro 317 2021-11-16 20:47:25Z herbert $ % %% PostScript prologue for pstricks.tex. -%% Version 1.40, 2021/09/25 +%% Version 1.41, 2021/11/16 %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -17,6 +17,8 @@ revision 952 gt (\n\n%%%% WARNING: Transparency operations ignored - need to use -dALLOWPSTRANSPARENCY\n\n) print flush /.setopacityalpha { pop } bind def /.setshapealpha { pop } bind def + /.setfillconstantalpha { pop } bind def + /.setstrokeconstantalpha { pop } bind def } { /.setopacityalpha /.setfillconstantalpha load def diff --git a/graphics/pstricks/contrib/pst-arrow/Changes b/graphics/pstricks/contrib/pst-arrow/Changes index c1d761a987..304587b642 100644 --- a/graphics/pstricks/contrib/pst-arrow/Changes +++ b/graphics/pstricks/contrib/pst-arrow/Changes @@ -1,10 +1,11 @@ -%% $Id: Changes 164 2021-08-25 19:26:42Z herbert $ +%% $Id: Changes 165 2021-08-25 19:43:54Z herbert $ %% pst-arrow.sty ----------- v. 0.01 2016-09-09 initial version pst-arrow.tex ----------- (hv) + v. 0.05 2021-11-16 - fix for \psBigArrow v. 0.04 2021-04-25 - moved the basic arrow code into pstricks-arrows.tex which is in the pstricks-base dir - updated documentation diff --git a/graphics/pstricks/contrib/pst-arrow/doc/pst-arrow-doc.pdf b/graphics/pstricks/contrib/pst-arrow/doc/pst-arrow-doc.pdf Binary files differindex 065e35f305..cafe8681e6 100644 --- a/graphics/pstricks/contrib/pst-arrow/doc/pst-arrow-doc.pdf +++ b/graphics/pstricks/contrib/pst-arrow/doc/pst-arrow-doc.pdf diff --git a/graphics/pstricks/contrib/pst-arrow/tex/pst-arrow.tex b/graphics/pstricks/contrib/pst-arrow/tex/pst-arrow.tex index 3dee550dfd..26f956ad92 100644 --- a/graphics/pstricks/contrib/pst-arrow/tex/pst-arrow.tex +++ b/graphics/pstricks/contrib/pst-arrow/tex/pst-arrow.tex @@ -1,4 +1,4 @@ -%% $Id: pst-arrow.tex 164 2021-08-25 19:26:42Z herbert $ +%% $Id: pst-arrow.tex 316 2021-11-16 14:19:22Z herbert $ %% %% This is file `pst-arrow.tex', %% @@ -22,8 +22,8 @@ \ifx\PSTricksLoaded\endinput\else\input pstricks \fi \ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi % -\def\fileversion{0.04} -\def\filedate{2021/08/25} +\def\fileversion{0.05} +\def\filedate{2021/11/16} \message{`pst-arrow' v\fileversion, \filedate\space (dr,hv)} % \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax @@ -39,27 +39,26 @@ \pst@getcoor{#2}\pst@tempB \addto@pscode{ /Width \pst@number\pst@dimm def - \pst@tempA % x y - \pst@tempB % x y - exch % x y y x - 4 -1 roll % y y x x - sub % y y dx - 3 1 roll % dx y y - sub % dx dy - exch % dy dx - atan neg % alpha - \pst@tempA + \pst@tempA % x1 y1 + \pst@tempB % x1 y1 x2 y2 + exch % x1 y1 y2 x2 + 4 -1 roll % y1 y2 x2 x1 + sub /dxA ED % y1 y2 + exch sub /dyA ED % dx dy + dyA dxA atan % alpha + \pst@tempA translate rotate 0 0 moveto - 0 Width 2 div rlineto % | - \pst@tempB \pst@tempA Pyth2 Width 1.5 mul sub 0 rlineto - 0 Width 1.5 div rlineto - Width 1.5 mul dup neg rlineto - Width 1.5 mul neg dup rlineto - 0 Width 1.5 div rlineto - \pst@tempB \pst@tempA Pyth2 neg Width 1.5 mul add 0 rlineto - closepath + 0 Width rlineto + \pst@tempB \pst@tempA Pyth2 /ALength ED + ALength Width sub 0 rlineto + 0 Width 2 div rlineto + Width dup -1.5 mul rlineto + Width neg dup 1.5 mul rlineto + 0 Width 2 div rlineto + 0 Width neg lineto + closepath }% \end@ClosedObj } |