From 9c48ca748960413acb3a2f49e5712ee0327cd0cd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 3 Aug 2014 16:53:52 +0000 Subject: pst-circ git-svn-id: svn://tug.org/texlive/trunk@34811 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/generic/pst-circ/pst-circ.tex | 151 +++++++++++++-------- 1 file changed, 98 insertions(+), 53 deletions(-) (limited to 'Master/texmf-dist/tex/generic/pst-circ') 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 b467da6286a..e34dbf1093f 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.10} -\def\filedate{2014/06/19} +\def\fileversion{2.12} +\def\filedate{2014/07/30} \message{`pst-circ' v\fileversion (hv)} % \edef\PstAtCode{\the\catcode`\@} @@ -88,6 +88,7 @@ % \define@boolkey[psset]{pst-circ}[Pst@]{intensity}[true]{} \define@boolkey[psset]{pst-circ}[Pst@]{mathlabel}[true]{} +\define@key[psset]{}{circ}{\psset[pst-circ]{#1}} \define@key[psset]{pst-circ}{labelstyle}[]{\def\pst@labelstyle{#1}} \define@key[psset]{pst-circ}{intensitylabel}[]{\def\psk@I@label{#1}} \define@key[psset]{pst-circ}{intensitylabelcolor}[black]{\def\psk@I@labelcolor{#1}} @@ -1062,31 +1063,31 @@ % \addbefore@par{circedge=\pcangle} \pst@killglue \begingroup - \use@par% + \use@par \@ifnextchar(% do we have more coordinates? - {\transistor@iii(#1)}{\Pst@tempfalse\transistor@ii(#1)}} + {\transistor@iii(#1)}{\Pst@tempfalse\transistor@ii(#1)}% +} % -\def\transistor@ii(#1)#2#3{% with one node, the base +\def\transistor@ii(#1)#2#3{% with one node, the base and two names for E and C \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% -% \psdot(#1)% + \fi \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){%(#1){% - \ifPst@transistorcircle\pscircle(0.3,0){0.7}\fi% - \ifx\psk@Ttype\pst@Ttype@FET\relax% + 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% @@ -1094,56 +1095,40 @@ \else% \psline[arrows=-,linewidth=4\pslinewidth](TBaseNode|0,0.4)(TBaseNode|0,-0.4)% \fi% - \ifnum180=\Pst@TRot\relax% +% \pst@abs{\Pst@TRot}\pst@cntn \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% - \else% - \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% - \fi% - \else% - \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% + \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% - \fi% - \ifx\psk@Ttype\pst@Ttype@FET\relax% - \ifnum180=\Pst@TRot\relax - \psline[arrows=-](0.6,0.5)(0.05,0.5) - \psline[linestyle=dashed,dash=8pt 3pt,arrows=-](0.05,0.6)(0.05,-0.6) - \psline[arrows=-](0.05,-0.5)(0.6,-0.5)% - \else - \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)% - \fi% - \else% - \psline[arrows=-](0.5,0.5)(TBaseNode)(0.5,-0.5)% - \fi% - \ifx\psk@Ttype\pst@Ttype@FET\relax% -% \ifx\psk@Ttype\pst@Ttype@PNP\relax% - \ifx\psk@FETchanneltype\pst@FETchanneltype@P\relax% Ted 2007-10-15 + \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% + \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% - \ifx\psk@Ttype\pst@Ttype@PNP\relax% + \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% + \fi + \fi }% - \ifPst@temp\else\endgroup\fi% - \ignorespaces% + \ifPst@temp\else\endgroup\fi + \ignorespaces } % \def\transistor@iii(#1)(#2)(#3){% with three nodes @@ -5433,8 +5418,6 @@ \ignorespaces% } - - \newCircDipole{arrowswitch} \def\pst@draw@arrowswitch{% \ifx\psk@Dstyle\pst@Dstyle@close @@ -5454,6 +5437,68 @@ \fi } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Tripole +%%% powermeter: tripolestyle:(bottom) | top +%%% tripoleconfig: (left) | right +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\def\powermeter{\pst@object{powermeter}} +\def\powermeter@i(#1)(#2)(#3)#4{% + \addbefore@par{dimen=middle,arm=0}% + \begin@ClosedObj% + \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 add 2 div def + /YC Y2 def + XC YC){C@} + \rput(C@){#4} + \rput(C@){% + \pscircle[linewidth=1.5\pslinewidth](0,0){0.5} + \pnodes(-1,0){Tport@left}(1,0){Tport@right}% + \psline[arrows=-](Tport@left)(-0.5,0) + \psline[arrows=-](Tport@right)(0.5,0) + \ifx\psk@tripole@style\pst@tripole@style@top% + \pnode(0,1){Tport@center} + \ifx\psk@Tconfig\pst@Tconfig@left + \psdot(-0.8,0) + \psline[arrows=-](-0.8,0)(-0.8,-0.8)(0,-0.8)(0,-0.5) + \psline[arrows=-](0,0.5)(Tport@center) + \else + \psdot(0.8,0) + \psline[arrows=-](0.8,0)(0.8,-0.8)(0,-0.8)(0,-0.5) + \psline[arrows=-](0,0.5)(Tport@center) + \fi% + \ncangle[arrows=-,arm=0.25,angleB=-90]{#3}{Tport@center} + \else + \pnode(0,-1){Tport@center} + \ifx\psk@Tconfig\pst@Tconfig@left + \psdot(-0.8,0) + \psline[arrows=-](-0.8,0)(-0.8,0.8)(0,0.8)(0,0.5) + \psline[arrows=-](0,-0.5)(Tport@center) + \else + \psdot(0.8,0) + \psline[arrows=-](0.8,0)(0.8,0.8)(0,0.8)(0,0.5) + \psline[arrows=-](0,-0.5)(Tport@center) + \fi% + \ncangle[arrows=-,arm=0.25,angleB=90]{#3}{Tport@center} + \fi% + } + \ncangle[arrows=-,arm=0.25,angleB=180]{#1}{Tport@left} + \ncangle[arrows=-,arm=0.25,angleB=0]{#2}{Tport@right} + \pcline[linestyle=none](#1)(#2)% for the endarrows + \pcline[linestyle=none](#2)(#3)% for the endarrows + \end@ClosedObj% + \ignorespaces% +} \catcode`\@=\PstAtCode\relax -- cgit v1.2.3