diff options
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex | 541 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty | 433 |
2 files changed, 546 insertions, 428 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex b/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex new file mode 100644 index 00000000000..e6d7f79b885 --- /dev/null +++ b/Master/texmf-dist/tex/generic/pst-sigsys/pst-sigsys.tex @@ -0,0 +1,541 @@ +%% +%% This is file `pst-sigsys.tex' v 1.2. +%% +%% IMPORTANT NOTICE: +%% +%% (C) +%% Farshid Delgosha (NY - U.S.A.) <fdelgosha@gmail.com> +%% +%% v 1.0: 01/15/2009 +%% v 1.1: 04/01/2009 +%% v 1.2: 01/15/2010 +%% +%% 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. +%% +%% DESCRIPTION: +%% `pst-sigsys' is a PSTricks package for drawing block diagrams +%% related to the signal processing discipline. +%% +% +\csname PSTsigsysLoaded\endcsname +\let\PSTsigsysLoaded\endinput + +\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi +\ifx\PSTnodesLoaded\endinput\else\input pst-node.tex\fi +\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi + +\def\pstsigsysFV{1.2} +\def\pstsigsysFD{2010/01/15} +\message{`PST-SigSys' v\pstsigsysFV, \pstsigsysFD\space (fd)} + + +\SpecialCoor + + + +%--- new pstricks styles --------------------------------- +\newpsstyle{ArrowLen}{arrowsize=1.35mm,arrowlength=1.25,arrowinset=.25} +\newpsstyle{Arrow}{arrows=->,style=ArrowLen} +\newpsstyle{Dash}{linestyle=dashed,dash=.15 .08} +\newpsstyle{Graph}{linewidth=1.25pt,linearc=0} +\newpsstyle{Stem}{linewidth=1.25pt,linestyle=solid,stemhead=*} +\newpsstyle{RoundCorners}{framesep=.125,framearc=.25,linearc=.1} +%--- end new pstricks styles ----------------------------- + + +%--- new pstricks-add styles ----------------------------- +\AtBeginDocument{ +\ifx\PSTricksAddLoaded\endinput +\newpsstyle{ArrowIn}{ArrowInside=->,style=ArrowLen} +\newpsstyle{DashDot}{linestyle=dashed,dash=.15 .055 .04 .055} +\newpsstyle{Brace}{braceWidth=.02,braceWidthInner=.115,braceWidthOuter=.115,ref=C} +\newpsobject{psBraceUp}{psbrace}{style=Brace,rot=-90,nodesepB=-\pslabelsep} +\newpsobject{psBraceDown}{psbrace}{style=Brace,rot=90,nodesepB=\pslabelsep} +\newpsobject{psBraceRight}{psbrace}{style=Brace,rot=-90,nodesepA=\pslabelsep} +\newpsobject{psBraceLeft}{psbrace}{style=Brace,rot=-90,nodesepA=-\pslabelsep} +\fi +} +%--- end new pstricks-add styles ------------------------- + + +%--- internal macros ------------------------------------- +\newdimen\ss@ticklength +\newdimen\ss@signalsep +\newdimen\ss@zerowidth +\newdimen\ss@zeroradius +\newdimen\ss@zeroradiusinc +\newdimen\ss@polewidth +\newdimen\ss@polelength +\newdimen\ss@oplength +\newdimen\ss@opwidth +\newdimen\ss@opsep +\newdimen\ss@ldotssep +\newdimen\ss@ldotssize +% +\newdimen\ss@temp@dimA +\newdimen\ss@temp@dimB +\newdimen\ss@temp@dimC +\newcount\ss@temp@cnt +\def\ss@temp{} +\def\ss@temp@choice{} +% +%%% Adds two numbers. %%% +\newdimen\ss@calc@dim +\def\ss@calc{} +\def\ss@addnum#1#2#3{% +\ss@calc@dim=#1pt% +\advance\ss@calc@dim #2pt% +\pst@divide{\ss@calc@dim}{1pt}\ss@calc% +\let#3\ss@calc% +} +% +\def\pst@scale#1{\pssetlength{#1}{\ss@scale#1}} +% +%%% Scales the line width. %%% +\def\ss@LW{} +\def\pst@scaleLW#1#2{% +\pssetlength{\ss@calc@dim}{#1\pslinewidth}% +\pst@dimtonum{\ss@calc@dim}{\ss@LW}% +\let#2\ss@LW% +} +% +%%% Draws a cross. %%% +\def\ss@cross@temp{} +\def\pst@cross(#1;#2)#3{% +\ss@addnum{#2}{90}\ss@cross@temp% +\psline[linewidth=#3,arrows=-](-#1;#2)(#1;#2)% +\psline[linewidth=#3,arrows=-](-#1;\ss@cross@temp)(#1;\ss@cross@temp)% +} +% +%%% Sets the frame width using the golden ratio. %%% +\def\pst@frame@width#1#2{% +\pssetlength{\ss@temp@dimA}{#1}% +\pssetlength{\ss@temp@dimB}{#2\ss@temp@dimA}% +\divide\ss@temp@dimA 2\relax% +\divide\ss@temp@dimB 2\relax% +\edef\psk@framewidth{\pst@number\ss@temp@dimA}% +\edef\psk@frameheight{\pst@number\ss@temp@dimB}% +} +% +%%% Sets the frame height using the golden ratio. %%% +\def\pst@frame@height#1#2{% +\pssetlength{\ss@temp@dimA}{#1}% +\pssetlength{\ss@temp@dimB}{#2\ss@temp@dimA}% +\divide\ss@temp@dimA 2\relax% +\divide\ss@temp@dimB 2\relax% +\edef\psk@frameheight{\pst@number\ss@temp@dimA}% +\edef\psk@framewidth{\pst@number\ss@temp@dimB}% +} +% +\newpsstyle{inv@frame}{fillstyle=none,linestyle=none,framearc=0} +% +%%% This is my parser. %%% +\def\ss@parse@temp{} +\def\ss@parseA{} +\def\ss@parseB{} +\def\ss@parseC{} +% +\def\ss@parse@III#1{% +\ss@parse@II{#1}{\ss@parseA}{\ss@parse@temp}% +\ss@parse@II{\ss@parse@temp}{\ss@parseB}{\ss@parseC}% +} +% +\def\ss@parse@II#1#2#3{\expandafter\ss@parse#1 \@nil#2#3} +% +\def\ss@parse#1 #2\@nil#3#4{% +\gdef#3{#1}% +\ifx\@empty#2\@empty% +\gdef#4{}% +\else% +\ss@removespace#2\@nil#4% +\fi% +} +% +\def\ss@removespace#1 \@nil#2{\gdef#2{#1}} +%--- end internal macros --------------------------------- + + +%--- keys ------------------------------------------------ +\define@key[psset]{pst-sigsys}{scale}{\def\ss@scale{#1}} +\define@choicekey*[psset]{pst-sigsys}{xlpos}[\val\ss@temp@choice]{b,t}{% +\ifcase\ss@temp@choice\relax% +\def\ss@xlpos{b}% +\or% +\def\ss@xlpos{t}% +\fi% +} +\define@choicekey*[psset]{pst-sigsys}{ylpos}[\val\ss@temp@choice]{r,l}{% +\ifcase\ss@temp@choice\relax% +\def\ss@ylpos{r}% +\or% +\def\ss@ylpos{l}% +\fi% +} +\define@key[psset]{pst-sigsys}{ticklength}{\pssetlength{\ss@ticklength}{#1}} +\define@key[psset]{pst-sigsys}{signalsep}{\pssetlength{\ss@signalsep}{#1}} +\define@key[psset]{pst-sigsys}{stemhead}[]{\def\ss@stemhead{#1}} +\define@boolkey[psset]{pst-sigsys}[ss@]{stemtag}[true]{} +\define@key[psset]{pst-sigsys}{stemtagformat}[]{\def\ss@stemtagformat{#1}} +\define@key[psset]{pst-sigsys}{order}{\def\ss@order{#1}} +\define@key[psset]{pst-sigsys}{zerowidth}{\pssetlength{\ss@zerowidth}{#1}} +\define@key[psset]{pst-sigsys}{zeroradius}{\pssetlength{\ss@zeroradius}{#1}} +\define@key[psset]{pst-sigsys}{zeroradiusinc}{\pssetlength{\ss@zeroradiusinc}{#1}} +\define@key[psset]{pst-sigsys}{polewidth}{\pssetlength{\ss@polewidth}{#1}} +\define@key[psset]{pst-sigsys}{polelength}{\pssetlength{\ss@polelength}{#1}} +\define@key[psset]{pst-sigsys}{opwidth}{\pssetlength{\ss@opwidth}{#1}} +\define@key[psset]{pst-sigsys}{oplength}{\pssetlength{\ss@oplength}{#1}} +\define@key[psset]{pst-sigsys}{opsep}{\pssetlength{\ss@opsep}{#1}} +\define@choicekey*[psset]{pst-sigsys}{operation}[\val\ss@temp@choice]{plus,times}{% +\ifcase\ss@temp@choice\relax% +\def\ss@angle{0}% +\or% +\def\ss@angle{45}% +\fi% +} +\define@key[psset]{pst-sigsys}{angle}{\def\ss@angle{#1}} +\define@key[psset]{pst-sigsys}{ldotssize}{\pssetlength{\ss@ldotssize}{#1}} +\define@key[psset]{pst-sigsys}{ldotssep}{\pssetlength{\ss@ldotssep}{#1}} +\define@key[psset]{pst-sigsys}{gratioWh}{\pst@frame@width{#1}{.6180339887}} +\define@key[psset]{pst-sigsys}{gratioWv}{\pst@frame@width{#1}{1.618033989}} +\define@key[psset]{pst-sigsys}{gratioHh}{\pst@frame@height{#1}{1.618033989}} +\define@key[psset]{pst-sigsys}{gratioHv}{\pst@frame@height{#1}{.6180339887}} +%--- end keys -------------------------------------------- + + +%--- default key values ---------------------------------- +\psset[pst-sigsys]{scale=1}% global +\psset[pst-sigsys]{xlpos=b,ylpos=r}% psaxeslabels +\psset[pst-sigsys]{ticklength=.075}% psTick +\psset[pst-sigsys]{signalsep=5pt}% pssignal +\psset[pst-sigsys]{stemhead=*,stemtag=false,stemtagformat=\scriptstyle}% psstem +\psset[pst-sigsys]{zerowidth=.7pt,zeroradius=.08,zeroradiusinc=.07,order=1}% pszero +\psset[pst-sigsys]{polewidth=.7pt,polelength=.12}% pspole +\psset[pst-sigsys]{opwidth=.7pt,oplength=.125,opsep=.1,operation=plus}% pscircleop and psframeop +\psset[pst-sigsys]{ldotssize=.05,ldotssep=.15,angle=0}% psldots +%--- end default key values ------------------------------ + +\pst@addfams{pst-sigsys} + + +%--- psaxeslabels ---------------------------------------- +\def\psaxeslabels{\def\pst@par{}\pst@object{psaxeslabels}} +\def\psaxeslabels@i{\pst@getarrows\psaxeslabels@ii} +\def\psaxeslabels@ii(#1,#2)(#3,#4)(#5,#6)#7#8{{% +\use@par% +\psline(#3,#2)(#5,#2)% +\psline(#1,#4)(#1,#6)% +% +\if\ss@xlpos t% +\rput(#5,#2){\rput[rb](0,\pslabelsep){#7}}% +\else% +\rput(#5,#2){\rput[rt](0,-\pslabelsep){#7}}% +\fi% +% +\if\ss@ylpos l% +\rput(#1,#6){\rput[tr](-\pslabelsep,0){#8}}% +\else% +\rput(#1,#6){\rput[tl](\pslabelsep,0){#8}}% +\fi% +}\ignorespaces} +%--- end psaxeslabels ------------------------------------ + + +%--- pstick ---------------------------------------------- +\def\pstick{\def\pst@par{}\pst@object{pstick}} +\def\pstick@i{\@ifnextchar({\pstick@ii{0}}{\pstick@ii}} +\def\pstick@ii#1(#2)#3{{% +\use@par% +\rput{#1}(#2){\psline(-#3,0)(#3,0)}% +}\ignorespaces} +%--- end pstick ------------------------------------------ + + +%--- psTick ---------------------------------------------- +\def\psTick{\def\pst@par{}\pst@object{psTick}} +\def\psTick@i{\@ifnextchar({\psTick@ii{0}}{\psTick@ii}} +\def\psTick@ii#1(#2){{% +\use@par% +\rput{#1}(#2){\psline(-\ss@ticklength,0)(\ss@ticklength,0)}% +}\ignorespaces} +%--- end psTick ------------------------------------------ + + +%--- pssignal -------------------------------------------- +\def\pssignal{\def\pst@par{}\pst@object{pssignal}} +\def\pssignal@i(#1)#2#3{{% +\use@par% +\rput(#1){\rnode{#2}{\psframebox[style=inv@frame,framesep=\ss@signalsep]{#3}}}% +}\ignorespaces} +%--- end pssignal ---------------------------------------- + + +%--- psstem ---------------------------------------------- +\def\psstem{\def\pst@par{}\pst@object{psstem}} +\def\psstem@i{\@ifnextchar({\psstem@ii}{\psstem@ii(0,1)}} +\def\psstem@ii(#1,#2)#3{{% +\use@par% +\ss@temp@cnt=#1% +\@for\ss@for@ind:=#3\do{% +\psline{-\ss@stemhead}(\ss@temp@cnt,0)(\ss@temp@cnt,\ss@for@ind)% +% +\ifss@stemtag% +\pssetlength{\ss@temp@dimA}{\ss@for@ind}% +\ifdim\ss@temp@dimA<\z@% +\rput[b](\ss@temp@cnt,\pslabelsep){$\ss@stemtagformat\the\ss@temp@cnt$}% +\else% +\rput[t](\ss@temp@cnt,-\pslabelsep){$\ss@stemtagformat\the\ss@temp@cnt$}% +\fi\fi% +% +\advance\ss@temp@cnt#2}% +}\ignorespaces} +%--- end psstem ------------------------------------------ + + +%--- pszero ---------------------------------------------- +\def\pszero{\def\pst@par{}\pst@object{pszero}} +\def\pszero@i(#1)#2{{% +\use@par% +\pst@scale{\ss@zerowidth}% +\pst@scale{\ss@zeroradius}% +\pst@scale{\ss@zeroradiusinc}% +\pssetlength{\ss@temp@dimA}{\ss@zeroradius}% +\ss@temp@cnt=\ss@order% +\loop% +\cnode[linewidth=\ss@zerowidth](#1){\ss@temp@dimA}{#2}% +\psaddtolength{\ss@temp@dimA}{\ss@zeroradiusinc}% +\ifnum\ss@temp@cnt>\@ne% +\advance\ss@temp@cnt-\@ne% +\repeat% +}\ignorespaces} +%--- end pszero ------------------------------------------ + + +%--- pspole ---------------------------------------------- +% The main part of this code is borrowed from pst-node +% +\def\pspole{\def\pst@par{}\pst@object{pspole}} +\def\pspole@i(#1)#2{% +\leavevmode% +\hbox{% +\use@par% +\pst@scale{\ss@polelength}% +\pst@scale{\ss@polewidth}% +\pst@@getcoor{#1}% +\pssetlength\pst@dimc{\ss@polelength}% +\pst@dimg=\psk@dimen\pslinewidth% +\advance\pst@dimc-\pst@dimg% +\advance\pst@dimc.5\pslinewidth% +\ifnodealign% +\kern\pst@dimc% +\vrule width\z@ height \pst@dimc depth \pst@dimc% +\fi% +\rput(#1){\pst@cross(\ss@polelength;45){\ss@polewidth}}% +\pst@newnode{#2}{11}{\pst@coor \pst@number\pst@dimc}{\tx@InitCnode}% +\ifnodealign\kern\pst@dimc\fi% +}\ignorespaces} +%--- end pspole ------------------------------------------ + + +%--- pscircleop ------------------------------------------ +\def\pscircleop{\def\pst@par{}\pst@object{pscircleop}} +\def\pscircleop@i(#1)#2{{% +\use@par% +\pst@scale{\ss@oplength}% +\pst@scale{\ss@opsep}% +\pst@scale{\ss@opwidth}% +\pst@scale{\pslinewidth}% +\pssetlength{\ss@temp@dimA}{\ss@oplength}% +\psaddtolength{\ss@temp@dimA}{\ss@opsep}% +\cnode(#1){\ss@temp@dimA}{#2}% +\rput(#1){\pst@cross(\ss@oplength;\ss@angle){\ss@opwidth}}% +}\ignorespaces} +%--- end pscircleop -------------------------------------- + + +%--- psframeop ------------------------------------------- +\def\psframeop{\def\pst@par{}\pst@object{psframeop}} +\def\psframeop@i(#1)#2{{% +\use@par% +\pst@scale{\ss@oplength}% +\pst@scale{\ss@opsep}% +\pst@scale{\ss@opwidth}% +\pst@scale{\pslinewidth}% +\pssetlength{\ss@temp@dimA}{2\ss@oplength}% +\psaddtolength{\ss@temp@dimA}{2\ss@opsep}% +\fnode[framesize=\ss@temp@dimA](#1){#2}% +\rput(#1){\pst@cross(\ss@oplength;\ss@angle){\ss@opwidth}}% +}\ignorespaces} +%--- end psframeop --------------------------------------- + + +%--- psdisk ---------------------------------------------- +\def\psdisk{\def\pst@par{}\pst@object{psdisk}} +\def\psdisk@i(#1)#2{{% +\use@par% +\pscircle*[linewidth=0pt,linecolor=\psfillcolor](#1){#2}% +}\ignorespaces} +%--- end psdisk ------------------------------------------ + + +%--- psring ---------------------------------------------- +\def\psring{\def\pst@par{}\pst@object{psring}} +\def\psring@i(#1)#2#3{{% +\use@par% +\pssetlength{\ss@temp@dimA}{#2}% +\pssetlength{\ss@temp@dimB}{#3}% +\psaddtolength{\ss@temp@dimB}{-\ss@temp@dimA}% +\pscircle[dimen=inner,linewidth=\ss@temp@dimB,linecolor=\psfillcolor](#1){\ss@temp@dimA}% +}\ignorespaces} +%--- end psring ------------------------------------------ + + +%--- psdiskc --------------------------------------------- +\def\psdiskc{\def\pst@par{}\pst@object{psdiskc}} +\def\psdiskc@i(#1)(#2,#3)#4{{% +\use@par% +\pssetlength{\ss@temp@dimA}{#2}% +\pssetlength{\ss@temp@dimB}{#3}% +\ifdim\ss@temp@dimA>\ss@temp@dimB% +\pssetlength{\ss@temp@dimC}{1.5\ss@temp@dimA}% +\else% +\pssetlength{\ss@temp@dimC}{1.5\ss@temp@dimB}% +\fi% +\psclip{\rput(#1){\psframe[linewidth=0pt,linecolor=\psfillcolor](-#2,-#3)(#2,#3)}}% +\psring@i(#1){#4}{\ss@temp@dimC}% +\endpsclip% +}\ignorespaces} +%--- end psdiskc ----------------------------------------- + + +%--- psldots --------------------------------------------- +\def\psldots{\def\pst@par{}\pst@object{psldots}} +\def\psldots@i(#1){{% +\use@par% +\pst@scale{\ss@ldotssep}% +\pst@scale{\ss@ldotssize}% +\rput(#1){\psdots[dotsize=\ss@ldotssize](-\ss@ldotssep;\ss@angle)(0,0)(\ss@ldotssep;\ss@angle)}% +}\ignorespaces} +%--- end psldots ----------------------------------------- + + +%--- ldotsnode ------------------------------------------- +\def\ldotsnode{\def\pst@par{}\pst@object{ldotsnode}} +\def\ldotsnode@i(#1)#2{{% +\use@par% +\ss@temp@dimC=.5\ss@signalsep% +\ss@temp@dimB=.5\ss@ldotssize% +\advance\ss@temp@dimB\ss@temp@dimC% +\ss@temp@dimA=\ss@ldotssep% +\advance\ss@temp@dimA\ss@temp@dimB% +\advance\ss@temp@dimA\ss@temp@dimC% +\edef\psk@framewidth{\pst@number\ss@temp@dimA}% +\edef\psk@frameheight{\pst@number\ss@temp@dimB}% +\rput{\ss@angle}(#1){\fnode[style=inv@frame](0,0){#2}}% +\psldots(#1)% +}\ignorespaces} +%--- end ldotsnode --------------------------------------- + + +%--- psblock --------------------------------------------- +\def\psblock{\def\pst@par{}\pst@object{psblock}} +\def\psblock@i(#1)#2#3{{% +\use@par% +\rput(#1){\rnode{#2}{\psframebox{#3}}}% +}\ignorespaces} +%--- end psblock ----------------------------------------- + + +%--- psfblock -------------------------------------------- +\def\psfblock{\def\pst@par{}\pst@object{psfblock}} +\def\psfblock@i(#1)#2#3{{% +\use@par% +\fnode(#1){#2}% +\rput(#1){#3}% +}\ignorespaces} +%--- end psfblock ---------------------------------------- + + +%--- psusampler ------------------------------------------ +\def\psusampler{\def\pst@par{}\pst@object{psusampler}} +\def\psusampler@i(#1)#2#3{{% +\use@par% +\psfblock(#1){#2}{$\mathord{\uparrow}#3$}% +}\ignorespaces} +%--- end psusampler -------------------------------------- + + +%--- psdsampler ------------------------------------------ +\def\psdsampler{\def\pst@par{}\pst@object{psdsampler}} +\def\psdsampler@i(#1)#2#3{{% +\use@par% +\psfblock(#1){#2}{$\mathord{\downarrow}#3$}% +}\ignorespaces} +%--- end psdsampler -------------------------------------- + + +%--- nclist ---------------------------------------------- +\def\nclist{\def\pst@par{}\pst@object{nclist}} +\def\nclist@i{\check@arrow{\nclist@ii}} +\def\nclist@ii#1{\@ifnextchar[{\nclist@iii{#1}}{\nclist@iv{#1}}} +% +\def\nclist@iii#1[#2]#3{{% +\use@par% +\def\ss@prevnode{}% +\@for\ss@for@ind:=#3\do{% +\ifx\@empty\ss@prevnode\@empty% +\let\ss@prevnode\ss@for@ind% +\else% +\ss@parse@III{\ss@for@ind}% +\csname#1\endcsname{\ss@prevnode}{\ss@parseA}% +\ifx\@empty\ss@parseB\@empty\else% +\ifx\@empty\ss@parseC\@empty% +\csname#2\endcsname{\ss@parseB}% +\else% +\csname\ss@parseB\endcsname{\ss@parseC}% +\fi\fi% +\let\ss@prevnode\ss@parseA% +\fi% +}% +}\ignorespaces} +% +\def\nclist@iv#1#2{{% +\use@par% +\def\ss@prevnode{}% +\@for\ss@for@ind:=#2\do{% +\ifx\@empty\ss@prevnode\@empty% +\else% +\csname#1\endcsname{\ss@prevnode}{\ss@for@ind}% +\fi% +\let\ss@prevnode\ss@for@ind% +}% +}\ignorespaces} +%--- end nclist ------------------------------------------ + + +%--- ncstar ---------------------------------------------- +\def\ncstar{\def\pst@par{}\pst@object{ncstar}} +\def\ncstar@i{\check@arrow{\ncstar@ii}} +\def\ncstar@ii#1{\@ifnextchar[{\ncstar@iii{#1}}{\ncstar@iv{#1}}} +% +\def\ncstar@iii#1[#2]#3#4{{% +\use@par% +\@for\ss@for@ind:=#3\do{% +\ss@parse@III{\ss@for@ind}% +\csname#1\endcsname{\ss@parseA}{#4}% +\ifx\@empty\ss@parseB\@empty\else% +\ifx\@empty\ss@parseC\@empty% +\csname#2\endcsname{\ss@parseB}% +\else% +\csname\ss@parseB\endcsname{\ss@parseC}% +\fi\fi% +}% +}\ignorespaces} +% +\def\ncstar@iv#1#2#3{{% +\use@par% +\@for\ss@for@ind:=#2\do{\csname#1\endcsname{\ss@for@ind}{#3}}% +}\ignorespaces} +%--- end ncstar ------------------------------------------ +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty b/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty index 732b8bedd27..0550056fe11 100644 --- a/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty +++ b/Master/texmf-dist/tex/latex/pst-sigsys/pst-sigsys.sty @@ -1,430 +1,7 @@ -%%========================================= -%% This is file 'pst-sigsys.sty' -%% It provides the pst-sigsys package. -%% ------------------------------------ -%% Author: Farshid Delgosha -%% E-mail: fdelgosha@gmail.com -%%========================================= +\RequirePackage{pstricks} +\ProvidesPackage{pst-sigsys}[2010/01/15 package wrapper for pst-sigsys.tex (fd)] +\input{pst-sigsys.tex} +\ProvidesFile{pst-sigsys.tex}[\pstsigsysFD\space v\pstsigsysFV\space `PST-sigsys' (fd)] -\ProvidesPackage{pst-sigsys}[2009/04/01 by Farshid Delgosha] +\endinput -\csname PSTsigsysLoaded\endcsname -\def\fileversion{1.1} -\def\filedate{2009/04/01} -\message{`PST-sigsys' v\fileversion, \filedate\space (Farshid Delgosha)} - -\ifx\PSTricksLoaded\endinput\else\input pstricks \fi -\ifx\PSTnodesLoaded\endinput\else\input pst-node \fi -\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi - - - -\newif\if@elegant \@eleganttrue -\newif\if@pstadd \@pstaddfalse - -\DeclareOption{notelegant}{\@elegantfalse} -\DeclareOption{pstadd}{\@pstaddtrue} - -\ExecuteOptions{} -\ProcessOptions* - -\if@elegant -\AtBeginDocument{\psset{framesep=.125,framearc=.25,linearc=.1}} -\fi - - -\SpecialCoor - - - - -%--- internal macros ------------------------------------- -\newdimen\ss@ticklength -\newdimen\ss@zerowidth -\newdimen\ss@zeroradius -\newdimen\ss@zeroradiusinc -\newdimen\ss@polewidth -\newdimen\ss@polelength -\newdimen\ss@oplength -\newdimen\ss@opwidth -\newdimen\ss@opsep -\newdimen\ss@ldotssep -\newdimen\ss@ldotssize -% -\newdimen\ss@temp@dimA -\newdimen\ss@temp@dimB -\newdimen\ss@temp@dimC -\newcount\ss@temp@cnt -\def\ss@temp{} -\def\ss@temp@choice{} -% -\def\pst@scale#1{\pssetlength{#1}{\ss@scale#1}} -% -\def\ss@LW{} -\newdimen\ss@LW@dim -\def\pst@scaleLW#1#2{% -\pssetlength{\ss@LW@dim}{#1\pslinewidth}% -\pst@dimtonum{\ss@LW@dim}{\ss@LW}% -\let#2\ss@LW% -} -% -\newdimen\ss@cross@dim -\def\ss@cross@angle{} -\def\ss@cross@temp{} -\def\pst@cross(#1;#2)#3{% -\pssetlength{\ss@cross@dim}{#2}% -\psaddtolength{\ss@cross@dim}{90}% -\pst@divide{\ss@cross@dim}{\psunit}\ss@cross@temp% -\psline[linewidth=#3,arrows=-](-#1;#2)(#1;#2)% -\psline[linewidth=#3,arrows=-](-#1;\ss@cross@temp)(#1;\ss@cross@temp)% -} -%--- end internal macros --------------------------------- - - -%--- new pstricks styles --------------------------------- -\newpsstyle{ArrowLen}{arrowsize=1.55mm,arrowlength=1.25,arrowinset=.25} -\newpsstyle{Arrow}{arrows=->,style=ArrowLen} -\newpsstyle{Dash}{linestyle=dashed,dash=.15 .08} -\newpsstyle{Graph}{linewidth=1.25pt,linearc=0} -\newpsstyle{Stem}{linewidth=1.25pt,linestyle=solid,stemhead=*} -%--- end new pstricks styles ----------------------------- - - -%--- new pstricks-add styles ----------------------------- -\if@pstadd -\newpsstyle{ArrowIn}{ArrowInside=->,style=ArrowLen} -\newpsstyle{DashDot}{linestyle=dashed,dash=.15 .055 .04 .055} -\newpsstyle{Brace}{braceWidth=.02,braceWidthInner=.115,braceWidthOuter=.115,ref=C} -\newpsstyle{BraceUp}{style=Brace,rot=-90,nodesepB=-\pslabelsep} -\newpsstyle{BraceDown}{style=Brace,rot=90,nodesepB=\pslabelsep} -\newpsstyle{BraceRight}{style=Brace,rot=-90,nodesepA=\pslabelsep} -\newpsstyle{BraceLeft}{style=Brace,rot=-90,nodesepA=-\pslabelsep} -\fi -%--- end new pstricks-add styles ------------------------- - - -%--- keys ------------------------------------------------ -\define@key[psset]{pst-sigsys}{scale}{\def\ss@scale{#1}} -\define@choicekey*[psset]{pst-sigsys}{xlpos}[\val\ss@temp@choice]{b,t}{% - \ifcase\ss@temp@choice\relax - \def\ss@xlpos{b} - \or - \def\ss@xlpos{t} - \fi -} -\define@choicekey*[psset]{pst-sigsys}{ylpos}[\val\ss@temp@choice]{r,l}{% - \ifcase\ss@temp@choice\relax - \def\ss@ylpos{r} - \or - \def\ss@ylpos{l} - \fi -} -\define@key[psset]{pst-sigsys}{ticklength}{\pssetlength{\ss@ticklength}{#1}} -\define@key[psset]{pst-sigsys}{stemhead}[]{\def\ss@stemhead{#1}} -\define@boolkey[psset]{pst-sigsys}[ss@]{stemtag}[true]{} -\define@key[psset]{pst-sigsys}{stemtagformat}[]{\def\ss@stemtagformat{#1}} -\define@key[psset]{pst-sigsys}{order}{\def\ss@order{#1}} -\define@key[psset]{pst-sigsys}{zerowidth}{\pssetlength{\ss@zerowidth}{#1}} -\define@key[psset]{pst-sigsys}{zeroradius}{\pssetlength{\ss@zeroradius}{#1}} -\define@key[psset]{pst-sigsys}{zeroradiusinc}{\pssetlength{\ss@zeroradiusinc}{#1}} -\define@key[psset]{pst-sigsys}{polewidth}{\pssetlength{\ss@polewidth}{#1}} -\define@key[psset]{pst-sigsys}{polelength}{\pssetlength{\ss@polelength}{#1}} -\define@key[psset]{pst-sigsys}{opwidth}{\pssetlength{\ss@opwidth}{#1}} -\define@key[psset]{pst-sigsys}{oplength}{\pssetlength{\ss@oplength}{#1}} -\define@key[psset]{pst-sigsys}{opsep}{\pssetlength{\ss@opsep}{#1}} -\define@choicekey*[psset]{pst-sigsys}{operation}[\val\ss@temp@choice]{plus,times}{% - \ifcase\ss@temp@choice\relax - \def\ss@angle{0} - \or - \def\ss@angle{45} - \fi -} -\define@key[psset]{pst-sigsys}{angle}{\def\ss@angle{#1}} -\define@key[psset]{pst-sigsys}{ldotssize}{\pssetlength{\ss@ldotssize}{#1}} -\define@key[psset]{pst-sigsys}{ldotssep}{\pssetlength{\ss@ldotssep}{#1}} -%--- end keys -------------------------------------------- - - -%--- default key values ---------------------------------- -\psset[pst-sigsys]{scale=1}% global -\psset[pst-sigsys]{xlpos=b,ylpos=r}% psaxeslabels -\psset[pst-sigsys]{ticklength=.075}% pshTick and psvTick -\psset[pst-sigsys]{stemhead=*,stemtag=false,stemtagformat=\scriptstyle}% psstem -\psset[pst-sigsys]{zerowidth=.7pt,zeroradius=.08,zeroradiusinc=.07,order=1}% pszero -\psset[pst-sigsys]{polewidth=.7pt,polelength=.12}% pspole -\psset[pst-sigsys]{opwidth=.7pt,oplength=.125,opsep=.1,operation=plus}% pscircleop and psframeop -\psset[pst-sigsys]{ldotssize=.05,ldotssep=.15,angle=0}% psldots -%--- end default key values ------------------------------ - -\pst@addfams{pst-sigsys} - - -%--- some new commands ----------------------------------- -\providecommand{\RE}{\ensuremath{\mathcal{R}\mathrm{e}}} -\providecommand{\IM}{\ensuremath{\mathcal{I}\mathrm{m}}} -\providecommand{\sRE}{\ensuremath{\scriptstyle\mathcal{R}\mathrm{e}}} -\providecommand{\sIM}{\ensuremath{\scriptstyle\mathcal{I}\mathrm{m}}} -%--------------------------------------------------------- - - -%--- psaxeslabels ---------------------------------------- -\def\psaxeslabels{\def\pst@par{}\pst@object{psaxeslabels}} -\def\psaxeslabels@i{\pst@getarrows\psaxeslabels@ii} -\def\psaxeslabels@ii(#1,#2)(#3,#4)(#5,#6)#7#8{{% -\use@par% -\psline(#3,#2)(#5,#2)% -\psline(#1,#4)(#1,#6)% -% -\if\ss@xlpos t% -\rput(#5,#2){\rput[rb](0,\pslabelsep){#7}}% -\else% -\rput(#5,#2){\rput[rt](0,-\pslabelsep){#7}}% -\fi% -% -\if\ss@ylpos l% -\rput(#1,#6){\rput[tr](-\pslabelsep,0){#8}}% -\else% -\rput(#1,#6){\rput[tl](\pslabelsep,0){#8}}% -\fi% -}\ignorespaces} -%--- end psaxeslabels ------------------------------------ - - -%--- pshtick --------------------------------------------- -\def\pshtick{\def\pst@par{}\pst@object{pshtick}} -\def\pshtick@i(#1)#2{{% -\use@par% -\rput(#1){\psline(-#2,0)(#2,0)}% -}\ignorespaces} -%--- end pshtick ----------------------------------------- - - -%--- psvtick --------------------------------------------- -\def\psvtick{\def\pst@par{}\pst@object{psvtick}} -\def\psvtick@i(#1)#2{{% -\use@par% -\rput(#1){\psline(0,-#2)(0,#2)}% -}\ignorespaces} -%--- end psvtick ----------------------------------------- - - -%--- pshTick --------------------------------------------- -\def\pshTick{\def\pst@par{}\pst@object{pshTick}} -\def\pshTick@i(#1){{% -\use@par% -\rput(#1){\psline(-\ss@ticklength,0)(\ss@ticklength,0)}% -}\ignorespaces} -%--- end pshTick ----------------------------------------- - - -%--- psvTick --------------------------------------------- -\def\psvTick{\def\pst@par{}\pst@object{psvTick}} -\def\psvTick@i(#1){{% -\use@par% -\rput(#1){\psline(0,-\ss@ticklength)(0,\ss@ticklength)}% -}\ignorespaces} -%--- end psvTick ----------------------------------------- - - -%--- psstem ---------------------------------------------- -\def\psstem{\def\pst@par{}\pst@object{psstem}} -\def\psstem@i{\@ifnextchar({\psstem@ii}{\psstem@ii(0,1)}} -\def\psstem@ii(#1,#2)#3{{% -\use@par% -\ss@temp@cnt=#1% -\@for\ss@for@ind:=#3\do{% -\psline{-\ss@stemhead}(\ss@temp@cnt,0)(\ss@temp@cnt,\ss@for@ind)% -% -\ifss@stemtag% -\pssetlength{\ss@temp@dimA}{\ss@for@ind}% -\ifdim\ss@temp@dimA<\z@% -\rput[b](\ss@temp@cnt,\pslabelsep){$\ss@stemtagformat\the\ss@temp@cnt$}% -\else% -\rput[t](\ss@temp@cnt,-\pslabelsep){$\ss@stemtagformat\the\ss@temp@cnt$}% -\fi\fi% -% -\advance\ss@temp@cnt#2}% -}\ignorespaces} -%--- end psstem ------------------------------------------ - - -%--- pszero ---------------------------------------------- -\def\pszero{\def\pst@par{}\pst@object{pszero}} -\def\pszero@i(#1)#2{{% -\use@par% -\pst@scale{\ss@zerowidth}% -\pst@scale{\ss@zeroradius}% -\pst@scale{\ss@zeroradiusinc}% -\pssetlength{\ss@temp@dimA}{\ss@zeroradius}% -\ss@temp@cnt=\ss@order% -\loop% -\cnode[linewidth=\ss@zerowidth](#1){\ss@temp@dimA}{#2}% -\psaddtolength{\ss@temp@dimA}{\ss@zeroradiusinc}% -\ifnum\ss@temp@cnt>\@ne% -\advance\ss@temp@cnt-\@ne% -\repeat% -}\ignorespaces} -%--- end pszero ------------------------------------------ - - -%--- pspole ---------------------------------------------- -% The main part of this code is borrowed from pst-node -% -\def\pspole{\def\pst@par{}\pst@object{pspole}} -\def\pspole@i(#1)#2{% -\leavevmode% -\hbox{% -\use@par% -\pst@scale{\ss@polelength}% -\pst@scale{\ss@polewidth}% -\pst@@getcoor{#1}% -\pssetlength\pst@dimc{\ss@polelength}% -\pst@dimg=\psk@dimen\pslinewidth% -\advance\pst@dimc-\pst@dimg% -\advance\pst@dimc.5\pslinewidth% -\ifnodealign% -\kern\pst@dimc% -\vrule width\z@ height \pst@dimc depth \pst@dimc% -\fi% -\rput(#1){\pst@cross(\ss@polelength;45){\ss@polewidth}}% -\pst@newnode{#2}{11}{\pst@coor \pst@number\pst@dimc}{\tx@InitCnode}% -\ifnodealign\kern\pst@dimc\fi% -}\ignorespaces} -%--- end pspole ------------------------------------------ - - -%--- pscircleop ------------------------------------------ -\def\pscircleop{\def\pst@par{}\pst@object{pscircleop}} -\def\pscircleop@i(#1)#2{{% -\use@par% -\pst@scale{\ss@oplength}% -\pst@scale{\ss@opsep}% -\pst@scale{\ss@opwidth}% -\pst@scale{\pslinewidth}% -\rput(#1){\pst@cross(\ss@oplength;\ss@angle){\ss@opwidth}}% -\pssetlength{\ss@temp@dimA}{\ss@oplength}% -\psaddtolength{\ss@temp@dimA}{\ss@opsep}% -\cnode(#1){\ss@temp@dimA}{#2}% -}\ignorespaces} -%--- end pscircleop -------------------------------------- - - -%--- psframeop ------------------------------------------- -\def\psframeop{\def\pst@par{}\pst@object{psframeop}} -\def\psframeop@i(#1)#2{{% -\use@par% -\pst@scale{\ss@oplength}% -\pst@scale{\ss@opsep}% -\pst@scale{\ss@opwidth}% -\pst@scale{\pslinewidth}% -\rput(#1){\pst@cross(\ss@oplength;\ss@angle){\ss@opwidth}}% -\pssetlength{\ss@temp@dimA}{2\ss@oplength}% -\psaddtolength{\ss@temp@dimA}{2\ss@opsep}% -\fnode[framesize=\ss@temp@dimA](#1){#2}% -}\ignorespaces} -%--- end psframeop --------------------------------------- - - -%--- psdisk ---------------------------------------------- -\def\psdisk{\def\pst@par{}\pst@object{psdisk}} -\def\psdisk@i(#1)#2{{% -\use@par% -\pscircle*[linewidth=0pt,linecolor=\psfillcolor](#1){#2}% -}\ignorespaces} -%--- end psdisk ------------------------------------------ - - -%--- psring ---------------------------------------------- -\def\psring{\def\pst@par{}\pst@object{psring}} -\def\psring@i(#1)#2#3{{% -\use@par% -\pssetlength{\ss@temp@dimA}{#2}% -\pssetlength{\ss@temp@dimB}{#3}% -\psaddtolength{\ss@temp@dimB}{-\ss@temp@dimA}% -\pscircle[dimen=inner,linewidth=\ss@temp@dimB,linecolor=\psfillcolor](#1){\ss@temp@dimA}% -}\ignorespaces} -%--- end psring ------------------------------------------ - - -%--- psdiskc --------------------------------------------- -\def\psdiskc{\def\pst@par{}\pst@object{psdiskc}} -\def\psdiskc@i(#1)(#2,#3)#4{{% -\use@par% -\pssetlength{\ss@temp@dimA}{#2}% -\pssetlength{\ss@temp@dimB}{#3}% -\ifdim\ss@temp@dimA>\ss@temp@dimB% -\pssetlength{\ss@temp@dimC}{1.5\ss@temp@dimA}% -\else% -\pssetlength{\ss@temp@dimC}{1.5\ss@temp@dimB}% -\fi% -\psclip{\rput(#1){\psframe[linewidth=0pt,linecolor=\psfillcolor](-#2,-#3)(#2,#3)}}% -\psring@i(#1){#4}{\ss@temp@dimC}% -\endpsclip% -}\ignorespaces} -%--- end psdiskc ----------------------------------------- - - -%--- psldots --------------------------------------------- -\def\psldots{\def\pst@par{}\pst@object{psldots}} -\def\psldots@i{{% -\use@par% -\pst@scale{\ss@ldotssep}% -\pst@scale{\ss@ldotssize}% -\psdots[dotsize=\ss@ldotssize](-\ss@ldotssep;\ss@angle)(0,0)(\ss@ldotssep;\ss@angle)% -}\ignorespaces} -%--- end psldots ----------------------------------------- - - -%--- psblock --------------------------------------------- -\def\psblock{\def\pst@par{}\pst@object{psblock}} -\def\psblock@i(#1)#2#3{{% -\use@par% -\rput(#1){\rnode{#2}{\psframebox{#3}}}% -}\ignorespaces} -%--- end psblock ----------------------------------------- - - -%--- psfblock -------------------------------------------- -\def\psfblock{\def\pst@par{}\pst@object{psfblock}} -\def\psfblock@i(#1)#2#3{{% -\use@par% -\fnode(#1){#2}% -\rput(#1){#3}% -}\ignorespaces} -%--- end psfblock ---------------------------------------- - - -%--- psusampler ------------------------------------------ -\def\psusampler{\def\pst@par{}\pst@object{psusampler}} -\def\psusampler@i(#1)#2#3{{% -\use@par% -\psfblock(#1){#2}{$\mathord{\uparrow} #3$}% -}\ignorespaces} -%--- end psusampler -------------------------------------- - - -%--- psdsampler ------------------------------------------ -\def\psdsampler{\def\pst@par{}\pst@object{psdsampler}} -\def\psdsampler@i(#1)#2#3{{% -\use@par% -\psfblock(#1){#2}{$\mathord{\downarrow} #3$}% -}\ignorespaces} -%--- end psdsampler -------------------------------------- - - -%--- nclist ---------------------------------------------- -\def\nclist{\def\pst@par{}\pst@object{nclist}} -\def\nclist@i#1#2{{% -\use@par% -\def\ss@nc{\csname #1\endcsname}% -\def\ss@prevnode{}% -\@for\ss@for@ind:=#2\do{% -\ifx\empty\ss@prevnode\empty% -\else% -\ss@nc{\ss@prevnode}{\ss@for@ind}% -\fi% -\let\ss@prevnode\ss@for@ind% -}% -}\ignorespaces} -%--- end nclist ------------------------------------------ -\endinput
\ No newline at end of file |