summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-04-15 14:26:47 +0000
committerKarl Berry <karl@freefriends.org>2015-04-15 14:26:47 +0000
commitc2e96227e5a42fe60bb1df26a5f9dc1d3f3aef1e (patch)
tree6a40d5e817b8443365eec4d93f3e983324ac0b70 /Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex
parentd39fad242a3f0a08baea76e76ec84c8ff61c8532 (diff)
pst-circ (14apr15)
git-svn-id: svn://tug.org/texlive/trunk@36865 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex361
1 files changed, 310 insertions, 51 deletions
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}
@@ -1046,6 +1063,83 @@
\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)
\psline[arrows=-,linewidth=3\pslinewidth](0.10,-0.25)(0.10,0.25)
@@ -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
%