From c2e96227e5a42fe60bb1df26a5f9dc1d3f3aef1e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 15 Apr 2015 14:26:47 +0000 Subject: pst-circ (14apr15) git-svn-id: svn://tug.org/texlive/trunk@36865 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/generic/pst-circ/pst-circ.tex | 361 ++++++++++++++++++--- 1 file changed, 310 insertions(+), 51 deletions(-) (limited to 'Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex') diff --git a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex index 8e806774869..faa50eeea99 100644 --- a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex +++ b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex @@ -26,8 +26,8 @@ \ifx\PSTXKeyLoaded\endinput \else\input pst-xkey \fi \ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi % -\def\fileversion{2.12a} -\def\filedate{2014/10/09} +\def\fileversion{2.13} +\def\filedate{2015/04/15} \message{`pst-circ' v\fileversion (hv)} % \edef\PstAtCode{\the\catcode`\@} @@ -57,6 +57,9 @@ \def\pst@Ttype@PNP{PNP} \def\pst@Ttype@NPN{NPN} \def\pst@Ttype@FET{FET} +\def\pst@Ttype@NMOS{NMOS} +\def\pst@Ttype@PMOS{PMOS} +% \def\pst@FETchanneltype@P{P}% Ted \def\pst@FETchanneltype@N{N}% Ted \def\pst@Dstyle@twoCircles{twoCircles} @@ -126,6 +129,17 @@ \define@key[psset]{pst-circ}{OAipluslabel}[]{\def\psk@label@OAiplus{#1}} \define@key[psset]{pst-circ}{OAiminuslabel}[]{\def\psk@label@OAiminus{#1}} \define@key[psset]{pst-circ}{OAioutlabel}[]{\def\psk@label@OAiout{#1}} +\define@boolkey[psset]{pst-circ}[Pst@]{GMperfect}[true]{} +\define@boolkey[psset]{pst-circ}[Pst@]{GMpower}[true]{} +\define@boolkey[psset]{pst-circ}[Pst@]{GMinvert}[true]{} +\define@boolkey[psset]{pst-circ}[Pst@]{GMiplus}[true]{} +\define@boolkey[psset]{pst-circ}[Pst@]{GMiminus}[true]{} +\define@boolkey[psset]{pst-circ}[Pst@]{GMiout}[true]{} +\define@key[psset]{pst-circ}{GMipluslabel}[]{\def\psk@label@GMiplus{#1}} +\define@key[psset]{pst-circ}{GMiminuslabel}[]{\def\psk@label@GMiminus{#1}} +\define@key[psset]{pst-circ}{GMioutlabel}[]{\def\psk@label@GMiout{#1}} + +\define@boolkey[psset]{pst-circ}[Pst@]{IGBTinvert}[true]{} \define@boolkey[psset]{pst-circ}[Pst@]{transistorcircle}[true]{} \define@boolkey[psset]{pst-circ}[Pst@]{transistorinvert}[true]{} \define@boolkey[psset]{pst-circ}[Pst@]{transistoribase}[true]{} @@ -836,7 +850,10 @@ parallel=false,parallelarm=1.5,parallelsep=0,parallelnode=false, intersect=false,OAperfect=true,OAinvert=true, OAiplus=false,OAiminus=false,OAiout=false,OAipluslabel={}, - OAiminuslabel={},OAioutlabel={},OApower=false,% + OAiminuslabel={},OAioutlabel={},OApower=false, + GMperfect=false,GMinvert=true, % pv 2014-12-14 + GMiplus=false,GMiminus=false,GMiout=false,GMipluslabel={}, % + GMiminuslabel={},GMioutlabel={},GMpower=false,% % END of ADD transistorcircle=true, transistorinvert=false, % hv 2003-07-23 transistoribase=false,transistoricollector=false,transistoriemitter=false,% transistoribaselabel={},basesep=0pt, @@ -913,7 +930,7 @@ pinte=false,invertpinte=false,pinba=false,invertpinba=false,pinbb=false,invertpinbb=false, pinbc=false,invertpinbc=false,pinbd=false,invertpinbd=false,pinbe=false,invertpinbe=false, dpleft=false,dpright=true,latch=false,unlatch=false,contactclosed=false,polarized=false, - ison=true + ison=true, IGBTinvert=false % pv 2014-12-14 }% hv %\psset[pstricks]{radius=0.5} @@ -1045,6 +1062,83 @@ \end@ClosedObj \ignorespaces% } +% + +% +\def\GM{\pst@object{GM}} +\def\GM@i(#1)(#2)(#3){% + \addbefore@par{dimen=middle}% + \begin@ClosedObj% + \if\psk@label@GMiplus\@empty\else\psset{GMiplus=true}\fi% + \if\psk@label@GMiminus\@empty\else\psset{GMiminus=true}\fi% + \if\psk@label@GMiout\@empty\else\psset{GMiout=true}\fi% + \ifPst@intensity\psset{GMiplus=true,GMiminus=true,GMiout=true}\fi% + \pst@getcoor{#1}\pst@tempa + \pst@getcoor{#2}\pst@tempb + \pst@getcoor{#3}\pst@tempc + \pnode(!% + \pst@tempa /Y1 exch \pst@number\psyunit div def + /X1 exch \pst@number\psxunit div def + \pst@tempb /Y2 exch \pst@number\psyunit div def + /X2 exch \pst@number\psxunit div def + \pst@tempc /Y3 exch \pst@number\psyunit div def + /X3 exch \pst@number\psxunit div def + /XC X1 X2 lt {X3 X2} {X3 X1} ifelse add 2 div def + /YC Y1 Y2 add 2 div def + XC YC){C@} + \rput(C@){\pst@draw@GM} + \ncangle[arrows=-,arm=.5,angleA=0,angleB=180]{#1}{\ifPst@GMinvert Minus@\else Plus@\fi} + \ncput[npos=2]{\pnode{\ifPst@GMinvert Minus@@\else Plus@@\fi}} + \ifPst@GMiplus + \ifPst@GMinvert\else + \ncput[npos=2.5]{% + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiplus} + \fi + \fi + \ifPst@GMiminus + \ifPst@GMinvert + \ncput[npos=2.5]{% + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiminus} + \fi + \fi + \ncangle[arrows=-,arm=.5,angleA=0,angleB=180]{#2}{\ifPst@GMinvert Plus@\else Minus@\fi} + \ncput[npos=2]{\pnode{\ifPst@GMinvert Plus@@\else Minus@@\fi}} + \ifPst@GMiplus + \ifPst@GMinvert + \ncput[npos=2.5]{% + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \nbput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiplus} + \fi + \fi + \ifPst@GMiminus + \ifPst@GMinvert\else + \ncput[npos=2.5]{% + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \nbput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiminus} + \fi + \fi + \ncangle[arrows=-,arm=.5,angleA=180,angleB=0]{#3}{S@} + \ncput[npos=2]{\pnode{S@@}} + \ifPst@GMiout + \ncput[npos=2.5]{% + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \naput[npos=2.5]{\csname\psk@I@labelcolor\endcsname\psk@label@GMiout} + \fi + \psline[linestyle=none](#1)(#2)% for the end arrows + \psline[linestyle=none](#1)(#3)% for the end arrows + \end@ClosedObj + \ignorespaces% +} +% % pv 2014-12-14 + + % \def\pst@draw@battery{% \psline[arrows=-,linewidth=1.5\pslinewidth](-0.10,-0.5)(-0.10,0.5) @@ -1068,67 +1162,185 @@ {\transistor@iii(#1)}{\Pst@tempfalse\transistor@ii(#1)}% } % -\def\transistor@ii(#1)#2#3{% with one node, the base and two names for E and C +\def\transistor@ii(#1)#2#3{% with one node, the base \pst@killglue% \ifPst@temp\pnode(#1){TBaseNode}% - \else - \pst@getcoor{#1}\pst@tempA + \else% + \pst@getcoor{#1}\pst@tempA% \pnode(! \pst@tempA /YB exch \pst@number\psyunit div def /XB exch \pst@number\psxunit div def /basesep \Pst@basesep\space \pst@number\psxunit div def XB basesep \Pst@TRot\space cos mul add YB basesep \Pst@TRot\space sin mul add){TBaseNode}% base node - \fi + \fi% +% \psdot(#1)% \rput[c]{\Pst@TRot}(! \pst@tempA /YB exch \pst@number\psyunit div def /XB exch \pst@number\psxunit div def /basesep \Pst@basesep\space \pst@number\psxunit div def XB basesep \Pst@TRot\space cos mul add - YB basesep \Pst@TRot\space sin mul add){% - \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi - \ifx\psk@Ttype\pst@Ttype@FET - \ifPst@FETmemory% atosch - \psline[arrows=-,linewidth=\psk@I@width](-0.15,0.5)(-0.15,-0.5)% - \fi% - \psline[arrows=-,linewidth=\psk@I@width](TBaseNode|0,0.5)(TBaseNode|0,-0.5)% + YB basesep \Pst@TRot\space sin mul add){%(#1){% + + %%%%%%%%%% + \ifnum180=\Pst@TRot\relax% + \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi + + \ifx\psk@Ttype\pst@Ttype@NPN\relax% + + \ifPst@transistorinvert\pnode(0.5,-0.5){#2}\else\pnode(0.5,-0.5){#3}\fi% + \ifPst@transistorinvert\pnode(0.5,0.5){#3}\else\pnode(0.5,0.5){#2}\fi% + + \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)% + + \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + \else% + \ifx\psk@Ttype\pst@Ttype@PNP\relax% + \ifPst@transistorinvert\pnode(0.5,-0.5){#2}\else\pnode(0.5,-0.5){#3}\fi% + \ifPst@transistorinvert\pnode(0.5,0.5){#3}\else\pnode(0.5,0.5){#2}\fi% + + \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)% + + \else% FET + \ifx\psk@Ttype\pst@Ttype@FET\relax% + + \ifPst@transistorinvert\pnode(0.75,-0.5){#2}\else\pnode(0.75,-0.5){#3}\fi% + \ifPst@transistorinvert\pnode(0.75,0.5){#3}\else\pnode(0.75,0.5){#2}\fi% + % Main drawings + \psline[arrows=-](0.75,0.5)(0.2,0.5) + \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.2,0.6)(0.2,-0.6) + \psline[arrows=-](0.2,-0.5)(0.75,-0.5)% + + \ifPst@FETmemory% atosch + \psline[arrows=-,linewidth=\psk@I@width](-0.15,0.5)(-0.15,-0.5)% + \fi% + \psline[arrows=-,linewidth=\psk@I@width](TBaseNode|0,0.5)(TBaseNode|0,-0.5)% + + \ifx\psk@FETchanneltype\pst@FETchanneltype@P\relax% Ted 2007-10-15 + + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.2,0)(0.75,0)% + \ifPst@transistorinvert + \qdisk(#3){1.5pt}\psline[origin={#3}]{-}(0,-0.5)% + \else + \qdisk(#3){1.5pt}\psline[origin={#3}]{-}(0,0.5)% + \fi + \else% + \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.2,0)(0.75,0)% + \ifPst@transistorinvert + \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,0.5)% + \else + \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,-0.5)% + \fi + \fi% + + + \else % NMOS or PMOS + \ifPst@transistorinvert\pnode(0.75,-0.4){#2}\else\pnode(0.75,-0.4){#3}\fi% + \ifPst@transistorinvert\pnode(0.75,0.4){#3}\else\pnode(0.75,0.4){#2}\fi% + % Main drawings + \psline[arrows=-](0.75,0.4)(0.15,0.4) + \psline[linewidth=3\psk@I@width,arrows=-](0.15,0.6)(0.15,-0.6) + \psline[arrows=-](0.75,-0.4)(0.15,-0.4)% + + + \ifx\psk@Ttype\pst@Ttype@NMOS\relax% + \ifPst@transistorinvert + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0.4)(0.75,0.4)% + \else + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,-0.4)(0.75,-0.4)% + \fi + \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + + \else + \ifPst@transistorinvert + \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0.4)(0.75,0.4)% + \else + \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,-0.4)(0.75,-0.4)% + \fi + \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + \fi + \fi + \fi % + \fi% \else% - \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% - \fi% -% \pst@abs{\Pst@TRot}\pst@cntn - \ifx\psk@Ttype\pst@Ttype@FET\relax% - \ifx\psk@FETchanneltype\pst@FETchanneltype@P - \pnode(0.65,0.5){#2}\pnode(0.65,-0.5){#3}% - \else - \pnode(0.65,0.5){#3}\pnode(0.65,-0.5){#2}% - \fi - \else% - \ifPst@transistorinvert\pnode(0.5,0.5){#2}\pnode(0.5,-0.5){#3}% - \else \pnode(0.5,0.5){#3}\pnode(0.5,-0.5){#2}% - \fi - \fi - \ifx\psk@Ttype\pst@Ttype@FET - \psline[arrows=-](0.65,0.5)(0.15,0.5) - \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.15,0.6)(0.15,-0.6) - \psline[arrows=-](0.15,-0.5)(0.65,-0.5)% - \ifx\psk@FETchanneltype\pst@FETchanneltype@P % Ted 2007-10-15 - \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0)(0.65,0)% - \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,-0.5)% - \else - \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0)(0.65,0)% - \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,0.5)% - \fi - \else - \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)% - \ifx\psk@Ttype\pst@Ttype@PNP - \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(#3)(TBaseNode)% - \else% - \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(TBaseNode)(#2)% - \fi - \fi + \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi + \ifx\psk@Ttype\pst@Ttype@FET\relax% + \ifPst@transistorinvert\pnode(0.65,0.5){#2}\else\pnode(0.65,0.5){#3}\fi% + \ifPst@transistorinvert\pnode(0.65,-0.5){#3}\else\pnode(0.65,-0.5){#2}\fi% + + % FET Main drawings + + \psline[arrows=-](0.65,0.5)(0.15,0.5) % upper line + \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.15,0.6)(0.15,-0.6) % gate + \psline[arrows=-](0.15,-0.5)(0.65,-0.5)% lower line + + \ifPst@FETmemory% atosch + \psline[arrows=-,linewidth=\psk@I@width](-0.15,0.5)(-0.15,-0.5)% + \fi% + \psline[arrows=-,linewidth=\psk@I@width](TBaseNode|0,0.5)(TBaseNode|0,-0.5)% + + + \ifx\psk@FETchanneltype\pst@FETchanneltype@P\relax% Ted 2007-10-15 + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0)(0.65,0)% + \qdisk(#3){1.5pt}\psline[origin={#3}]{-}(0,-0.5)% + \else% + \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0)(0.65,0)% + \qdisk(#2){1.5pt}\psline[origin={#2}]{-}(0,0.5)% + \fi% + + + \else + \ifx\psk@Ttype\pst@Ttype@NMOS\relax% + % NMOS Main drawings + \psline[arrows=-](0.65,0.4)(0.15,0.4) % upper line + \psline[linewidth=3\psk@I@width,arrows=-](0.15,0.6)(0.15,-0.6) % gate + \psline[arrows=-](0.65,-0.4)(0.15,-0.4)% lower line + + \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + + \ifPst@transistorinvert\pnode(0.65,0.4){#2}\else\pnode(0.65,0.4){#3}\fi% + \ifPst@transistorinvert\pnode(0.65,-0.4){#3}\else\pnode(0.65,-0.4){#2}\fi% + \ifPst@transistorinvert + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,0.4)(0.65,0.4)% + \else + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(0.15,-0.4)(0.65,-0.4)% + \fi + \else + \ifx\psk@Ttype\pst@Ttype@PMOS\relax% + % PMOS Main drawings + \psline[arrows=-](0.65,0.4)(0.15,0.4) % upper line + \psline[linewidth=3\psk@I@width,arrows=-](0.15,0.6)(0.15,-0.6) % gate + \psline[arrows=-](0.65,-0.4)(0.15,-0.4)% lower line + + \psline[arrows=-,linewidth=1.5\psk@I@width](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + + \ifPst@transistorinvert\pnode(0.65,0.4){#2}\else\pnode(0.65,0.4){#3}\fi% + \ifPst@transistorinvert\pnode(0.65,-0.4){#3}\else\pnode(0.65,-0.4){#2}\fi% + \ifPst@transistorinvert + \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,0.4)(0.65,0.4)% + \else + \psline[arrowinset=0,arrowsize=8\pslinewidth]{<-}(0.15,-0.4)(0.65,-0.4)% + \fi + \else % PNP or NPN + \ifPst@transistorinvert\pnode(0.5,0.5){#2}\pnode(0.5,-0.5){#3}% + \else \pnode(0.5,0.5){#3}\pnode(0.5,-0.5){#2}% + \fi + \ifx\psk@Ttype\pst@Ttype@NPN\relax% % NPN + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(TBaseNode)(#2)% + \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)% + \else% % PNP + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(#3)(TBaseNode)% + \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% + \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)% + \fi + \fi% + \fi% + \fi% + \fi% }% - \ifPst@temp\else\endgroup\fi - \ignorespaces + \ifPst@temp\else\endgroup\fi% + \ignorespaces% } % \def\transistor@iii(#1)(#2)(#3){% with three nodes @@ -5173,7 +5385,7 @@ \pst@number{\psxunit} div /XB ED XA XB add 2 div YA YB add 2 div - ){\pscurve(-0.25,0)(-0.125,0.25)(0,0)(0.125,-0.25)(0.25,0)}}\ignorespaces} + ){\pscurve(-0.25,0)(-0.125,0.25)(0.125,-0.25)(0.25,0)}}\ignorespaces} % \def\pst@draw@vac{{% \pnode(-0.5,0){dipole@1} @@ -5499,7 +5711,54 @@ \end@ClosedObj% \ignorespaces% } +% +%%% POWER IGBT %%% +% +\newCircDipole{igbt} +\def\pst@draw@igbt{% + \pnode(-0.433,0){dipole@1} + \pnode(0.433,0){dipole@2} + %\psline[fillstyle=none, arrowinset=0](-0.433,-0.5)(0.5,0) + \psdot(dipole@1) + \psdot(dipole@2) + \ifPst@IGBTinvert + \psline[arrows=->,linewidth=1.5\pslinewidth, arrowsize =0.2, arrowinset=0](0.433,0)(-0.457,-0.457) + \else + \psline[arrows=->,linewidth=1.5\pslinewidth, arrowsize =0.2, arrowinset=0](0.433,0)(-0.457,0.457) + \fi +} +% +% +%%% TRANSCONDUCTOR %%% +% +\def\pst@draw@GM{% + \ifx\psk@tripole@style\pst@tripole@style@french + \psframe[linewidth=1.5\pslinewidth](-1,-0.75)(1,0.75) + \pspolygon(-0.4,-0.2)(-0.4,0.2)(-0.05,0) + \else +% USUAL Transconductor + \pspolygon[arrows=-, linewidth=1.5\pslinewidth](-0.5, -1)(-0.5, 1)(0.5, 0.6)(0.5, -0.6)(-0.5, -1) +% Supply pins Position + \ifPst@GMpower + \psline{-}(0,0.8)(0,1)%\uput[90](0,1){$+$} + %\psline{-o}(0,0.375)(0,0.75)\uput[90](0,0.75){$+$} + \psline{-}(0,-0.8)(0,-1)%\uput[-90](0,-1){$-$} + %\psline{-o}(0,-0.375)(0,-0.75)\uput[-90](0,-0.75){$-$} + \fi + \fi +% Input Pins Position + \pnode(-0.5,0.5){\ifPst@GMinvert Minus@\else Plus@\fi} + \pnode(-0.5,-0.5){\ifPst@GMinvert Plus@\else Minus@\fi} + \pnode(0.5,0){S@} +% + and - Position + \uput{0.1}[0](-0.5,0.5){\ifPst@GMinvert$-$\else$+$\fi} + %\uput{0.1}[0](-1,0.25){\ifPst@OAinvert$-$\else$+$\fi} + \uput{0.1}[0](-0.5,-0.5){\ifPst@GMinvert$+$\else$-$\fi} + %\uput{0.1}[0](-1,-0.25){\ifPst@OAinvert$+$\else$-$\fi} + \ifPst@GMperfect\rput(0.25,0){$\infty$}\fi% +} +% \catcode`\@=\PstAtCode\relax % -- cgit v1.2.3