diff options
author | Karl Berry <karl@freefriends.org> | 2007-10-16 17:34:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-10-16 17:34:02 +0000 |
commit | 7ac40f0e6332cede8098803712911982c68b4974 (patch) | |
tree | 0ab3630e69b41da033c9a8f14483983e1c8a1162 /Master | |
parent | f7e10a2d27667dd0c45ab087197ae6ee3ecd445c (diff) |
pst-circ update (15oct07)
git-svn-id: svn://tug.org/texlive/trunk@5205 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/Changes | 32 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/README | 38 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/Version-1.21 | 0 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/logic.ltx | 91 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/logic.pdf | bin | 72933 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/logic.tex | 436 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/poti.pdf | bin | 10548 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/poti.tex | 81 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib | 129 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf | bin | 186471 -> 497680 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex | 1726 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pst-circ/pst-circ.pro | 4 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/pst-circ/Makefile | 48 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex | 1837 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-circ/pst-circ.sty | 12 |
15 files changed, 2476 insertions, 1958 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-circ/Changes b/Master/texmf-dist/doc/generic/pst-circ/Changes new file mode 100644 index 00000000000..a175c3a1a05 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/Changes @@ -0,0 +1,32 @@ +1.42 2007-10-15 (hv) - added better FET support (Ted Pavlic) + - small changes to draw@dipole (Alan Ristow) +1.41 2007-04-23 (hv) added dipolestyle varistor +1.40 2007-03-23 (hv) fix bug with \@empty in the psset part +1.39 2005-04-03 (hv) fixed introduced bug in wire +1.38 2005-03-07 (hv) added an option for the OA and some more + types for dipoles +1.37 2005-03-06 (hv) fix bug with wire and arrows +1.36 2005-02-14 (hv) add another zener symbol +1.35 2005-02-06 (hv) fix some bugs in the documentation +1.34 2004-12-31 (hv) new transistormacro +1.33 2004-12-28 (hv) fix bug for specialCoor in transistor +1.32 2004-12-28 (hv) make transistor changeLR option run +1.31 2004-12-27 (hv) make transistor run +1.30 2004-12-28 (hv) make option arrows=... available, but + transistor is broken for this version +1.22 2004-10-31 (hv) use pst-xkey instead of pst-key +1.21 2004-06-10 (hv) option for the logic symbol +1.20 2004-04-30 (hv) options for the logic part +1.2b 2003-08-30 (hv) new tripole potentiometer, + fixes some typos in the doc +1.2a 2003-08-28 (hv) added options for ground +1.2 2003-07-28 (hv) added dipolestyle "optoCoupler" and the logic part (Flip Flops) +1.1b 2003-07-24 (hv) added dipolestyle "triac" and use "rectangle" also for the + quadrupol transformer; added quadrupol optoCoupler +1.1a 2003-07-22 (hv) fix a bug with tension +1.1 2003-07-18 (hv) fix some bugs and added new dipolestyles for the diode/resistor +1.0 2003-07-10 (cj) first CTAN version + + +-- pst-circ.pro --- +0.01 2007-03-23 (hv) first version
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-circ/README b/Master/texmf-dist/doc/generic/pst-circ/README index 6c34f8ddf0d..40747e643f4 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/README +++ b/Master/texmf-dist/doc/generic/pst-circ/README @@ -1,6 +1,42 @@ -Save the files pst-circ.sty|.tex in a directory, which is part of your +Save the files pst-circ.sty|tex in a directory, which is part of your local TeX tree. pst-circ.pro should be saved in ../texmf/dvips/pstricks/ Then do not forget to run texhash to update this tree. pst-circ needs pst-plot and pst-tricks, which should be part of your local TeX installation, otherwise get it from a CTAN server, f.ex. ftp://ftp.dante.de + + +Save the files + +pst-circ.sty +pst-circ.tex +pst-circ.pro + +in any place, where latex or any other TeX program will find it. +Do not forget to update your database, when installing this +package the first time. + +pst-circ uses the extended version of the keyval package. So +be sure that you +- have installed xkeyval with the special pst-xkey + (CTAN: tex-archive/macros/latex/contrib/xkeyval/) +- do not load another package after pst-circ, which loads + the old keyval.sty or pst-key.tex + + +If you like to get the documentation file in another format run + +latex pst-circ-doc.tex +bibtex pst-circ.doc +latex pst-circ-doc.tex +dvips pst-circ-doc.dvi + +to get a PostScript file. But pay attention, that the pst-circ +files are saved in the above mentioned way, before you run +latex on the documentation file. + +The intermediate DVI file works only with viewers which can +interprete the embedded PostScript code. + +For another PDF output read the Introduction from +the documentation. diff --git a/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 b/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 deleted file mode 100644 index e69de29bb2d..00000000000 --- a/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.ltx b/Master/texmf-dist/doc/generic/pst-circ/logic.ltx deleted file mode 100644 index 2427a21f7fa..00000000000 --- a/Master/texmf-dist/doc/generic/pst-circ/logic.ltx +++ /dev/null @@ -1,91 +0,0 @@ -\documentclass[11pt]{article} -\usepackage[a4paper,margin=1.5cm]{geometry} -\usepackage[baw,pstricks]{fvrb-ex} -\usepackage{pst-circ} -\usepackage{pstcol} -\usepackage{url} -\makeatletter -\def\@UrlFont{\small\ttfamily} -\renewenvironment{description} - {\list{}{\labelwidth\z@ \itemindent-\leftmargin - \itemsep0pt \parsep0pt - \let\makelabel\descriptionlabel}} - {\endlist} -\renewcommand{\Begin@Example}{% -\parindent=0pt -\multiply\topsep by 2 \VerbatimEnvironment -\begin{VerbatimOut}[codes={\catcode`\£=12\catcode`\/=12\catcode`\&=12% - \catcode`\"=12}]{\jobname.tmp}} -\renewcommand{\Below@Example}[1]{% -\VerbatimInput[gobble=0,commentchar=£,commandchars=/&",numbersep=3pt]% - {\jobname.tmp} -\catcode`\£=9\relax% -\NoHighlight@Attributes % To suppress possible highlighting -\ifFvrbEx@Grid\vspace{5pt}\fi -#1% -\ifFvrbEx@Grid\vspace{5pt}\fi -\par} -\renewcommand{\SideBySide@Example}[1]{% -\@tempdimb=\FV@XRightMargin \advance\@tempdimb -5mm -\begin{minipage}[c]{\@tempdimb} - \fvset{xrightmargin=0pt} - \catcode`\£=9\relax% - \NoHighlight@Attributes % To suppress possible highlighting - #1 -\end{minipage}% -\@tempdimb=\textwidth \advance\@tempdimb -\FV@XRightMargin \advance\@tempdimb 5mm -\begin{minipage}[c]{\@tempdimb} - \VerbatimInput[gobble=0,commentchar=£,commandchars=/&",numbersep=3pt, - xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} -\end{minipage}} -% The \NoHighlight@Attributes from `hbaw' and `hcolors' packages -% must be modified too -\def\NoHighlight@Attributes{% -\catcode`\/=0\relax% -\catcode`\&=1\relax% -\catcode`\"=2\relax% -\def\HLa##1{##1}% -\def\HLb##1{##1}% -\def\HLc##1{##1}% -\def\HLd##1{##1}% -\def\HLe##1{##1}% -\def\HLf##1{##1}% -\def\HLBFa##1{##1}% -\def\HLBFb##1{##1}% -\def\HLBFc##1{##1}% -\def\HLBFd##1{##1}% -\def\HLBFe##1{##1}% -\def\HLBFf##1{##1}% -\def\HLITa##1{##1}% -\def\HLITb##1{##1}% -\def\HLITc##1{##1}% -\def\HLITd##1{##1}% -\def\HLITe##1{##1}% -\def\HLITf##1{##1}% -\def\HLCBBa##1{##1}% -\def\HLCBBb##1{##1}% -\def\HLCBBc##1{##1}% -\def\HLCBBd##1{##1}% -\def\HLCBBe##1{##1}% -\def\HLCBBf##1{##1}% -\def\HLCBBz##1{##1}% -\def\HLCBWa##1{##1}% -\def\HLCBWb##1{##1}% -\def\HLCBWc##1{##1}% -\def\HLCBWd##1{##1}% -\def\HLCBWe##1{##1}% -\def\HLCBWf##1{##1}% -\def\HLCBWz##1{##1}% -} -\makeatother -\fvset{numbers=none,frame=single,labelposition=topline} -\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} -\newcommand{\CircPackage}{\textbf{`pst-circ'}} -\usepackage{fancyhdr} -\lhead{\CircPackage}\rhead{A PSTricks package for drawing electric circuits} -\pagestyle{fancy} -% -\begin{document} -\input logic -\end{document} - diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.pdf b/Master/texmf-dist/doc/generic/pst-circ/logic.pdf Binary files differdeleted file mode 100644 index 0a813ef62ba..00000000000 --- a/Master/texmf-dist/doc/generic/pst-circ/logic.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.tex b/Master/texmf-dist/doc/generic/pst-circ/logic.tex deleted file mode 100644 index ba2d7cb84f7..00000000000 --- a/Master/texmf-dist/doc/generic/pst-circ/logic.tex +++ /dev/null @@ -1,436 +0,0 @@ -\section{Flip Flops} - -The syntax for all logical base circuits is -\begin{verbatim} -logic[<options>](<originX,originY>){Label} -\end{verbatim} - -\noindent where the options and the origin are optional. If they are missing, -then the default options, described in the next section and the default -origin $(0,0)$ is used. The origin specifies the lower left corner -of the logical circuit. - -\begin{verbatim} -logic{Demo} -logic[logicType=and]{Demo} -logic(0,0){Demo} -logic[logicType=and](0,0){Demo} -\end{verbatim} - -The above four ,,different`` calls of the \verb|logic| macro give the -same output, because they are equivalent. - -\subsection{The Options} - -\begin{description} -\item[\HLTTc{logicShowNode} (boolean):] (\emph{default:~false}) -\item[\HLTTc{logicShowDot} (boolean):] (\emph{default:~false}) -\item[\HLTTc{logicNodestyle} (command):] (\emph{default:~\textbackslash footnotesize}) -\item[\HLTTc{logicSymbolstyle} (command):] (\emph{default:~\textbackslash large}) -\item[\HLTTc{logicSymbolpos} (value):] (\emph{default:~0.5}) -\item[\HLTTc{logicLabelstyle} (command):] (\emph{default:~\textbackslash small}) -\item[\HLTTc{logicType} (string):] (\emph{default:~and}) -\item[\HLTTc{logicChangeLR} (boolean):] (\emph{default:~false}) -\item[\HLTTc{logicWidth} (length):] (\emph{default:~1.5}) -\item[\HLTTc{logicHeight} (length):] (\emph{default:~2.5}) -\item[\HLTTc{logicWireLength} (length):] (\emph{default:~0.5}) -\item[\HLTTc{logicNInput} (number):] (\emph{default:~2}) -\item[\HLTTc{logicJInput} (number):] (\emph{default:~2}) -\item[\HLTTc{logicKInput} (number):] (\emph{default:~2}) -\end{description} - -\subsection{Basic Logical Circuits} -At least the basic objects require a unique label name, otherwise it is -not sure, that all nodes will work well. The label may contain any -alphanumerical character and most of all symbols. But it is save -using only combinations of letters and digits. For example: -\begin{verbatim} -And0 -a0 -a123 -12 -NOT123a -\end{verbatim} - -\verb|A_1| is not a good choice, the underscore may causes some -problems. - -\subsubsection{And} - -\psset{subgriddiv=0,griddots=5,gridlabels=7pt} -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-1,0)(3,3) - \psgrid - \logic{AND1} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[/HLCBWz&logicChangeLR"=true]{AND2} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(-0.5,0)(4,5) - \psgrid - \logic[/HLCBWz&logicShowNode"=true,% - /HLCBWz&logicWidth"=2,% - /HLCBWz&logicHeight"=4,% - /HLCBWz&logicNInput"=6,% - logicChangeLR=true](1,1){AND3} - \end{pspicture} -\end{PSideBySideExample} - -\subsubsection{NotAnd} -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=/HLCBWz&nand",% - logicShowNode=true]{NAND1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=nand,% - logicChangeLR=true]{NAND2} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(4,5) - \psgrid - \logic[logicType=nand,% - logicShowNode=true,% - logicWidth=2,% - logicHeight=4,% - /HLCBWz&logicNInput"=6,% - logicChangeLR=true](1,1){NAND3} - \end{pspicture} -\end{PSideBySideExample} - -\subsubsection{Or} -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=/HLCBWz&or",% - logicShowNode=true]{OR1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=or,% - logicChangeLR=true]{OR2} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(4,5) - \psgrid - \logic[logicType=or,% - logicShowNode=true,% - logicWidth=2,% - logicHeight=4,% - logicNInput=6,% - logicChangeLR=true](1,1){OR3} - \end{pspicture} -\end{PSideBySideExample} - -\subsubsection{Not Or} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=/HLCBWz&nor",% - logicShowNode=true]{NOR1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=nor,% - logicChangeLR=true]{NOR2} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(4,5) - \psgrid - \logic[logicType=nor,% - logicShowNode=true,% - logicWidth=2,% - logicHeight=4,% - logicNInput=6,% - logicChangeLR=true](1,1){NOR3} - \end{pspicture} -\end{PSideBySideExample} - - -\subsubsection{Not} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=/HLCBWz¬",% - logicShowNode=true]{NOT1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=not,% - logicChangeLR=true]{NOT2} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(4,5) - \psgrid - \logic[logicType=not,% - logicShowNode=true,% - logicWidth=2,% - logicHeight=4,% - logicChangeLR=true](1,1){NOT3} - \end{pspicture} -\end{PSideBySideExample} - -\subsubsection{Exclusive OR} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=/HLCBWz&exor",% - logicShowNode=true]{ExOR1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=exor,% - logicChangeLR=true]{ExOR2} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(4,5) - \psgrid - \logic[logicType=exor,% - logicShowNode=true,% - logicNInput=6,% - logicWidth=2,% - logicHeight=4,% - logicChangeLR=true](1,1){ExOR3} - \end{pspicture} -\end{PSideBySideExample} - - - -\subsubsection{Exclusive NOR} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=/HLCBWz&exnor",% - logicShowNode=true]{ExNOR1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,3) - \logic[logicType=exnor,% - logicChangeLR=true]{ExNOR2} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) - \begin{pspicture}(4,5) - \psgrid - \logic[logicType=exnor,% - logicShowNode=true,% - logicNInput=6,% - logicWidth=2,% - logicHeight=4,% - logicChangeLR=true](1,1){ExNOR3} - \end{pspicture} -\end{PSideBySideExample} - - -\subsection{RS Flip Flop} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) - \begin{pspicture}(-1,-1)(3,3) - \logic[logicShowNode=true,% - logicType=/HLCBWz&RS"]{RS1} - \end{pspicture} -\end{PSideBySideExample} - - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) - \begin{pspicture}(-1,-1)(3,3) - \logic[logicShowNode=true,% - logicType=RS,% - logicChangeLR=true]{RS2} - \end{pspicture} -\end{PSideBySideExample} - - -\subsection{D Flip Flop} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) - \begin{pspicture}(-1,-1)(3,3) - \logic[logicShowNode=true,% - logicType=/HLCBWz&D"]{D1} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) - \begin{pspicture}(-1,-1)(3,3) - \logic[logicShowNode=true,% - logicType=D,% - logicChangeLR=true]{D2} - \end{pspicture} -\end{PSideBySideExample} - - -\subsection{JK Flip Flop} -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) - \begin{pspicture}(-1,-1)(3,3) - \logic[logicShowNode=true,% - logicType=/HLCBWz&JK",% - /HLCBWz&logicKInput"=2,% - /HLCBWz&logicJInput"=2]{JK1} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) - \begin{pspicture}(-1,-1)(3,3) - \logic[logicShowNode=true,% - logicType=JK,% - logicKInput=2, logicJInput=4,% - logicChangeLR=true]{JK2} - \end{pspicture} -\end{PSideBySideExample} - -\subsection{Other Options} - -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) - \begin{pspicture}(-0.5,0)(3,2.5) - \logic[/HLCBWz&logicShowDot"=true]{A0} - \end{pspicture} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,3) - \begin{pspicture}(-1,0)(3,2.5) - \logic[/HLCBWz&logicWireLength"=1,% - logicShowDot=true]{A1} - \end{pspicture} -\end{PSideBySideExample} - -\bigskip -The unit of \verb|logicWireLength| is the same than the actual one for pstricks, set by -the \verb|unit| option. - -\subsection{The Node Names} -Every logic circuit is defined with its name, which should be a unique one. -If we have the following NAND circuit, then \verb|pst-circ| defines the nodes -\begin{verbatim} -NAND11, NAND12, NAND13, NAND14, NAND1Q -\end{verbatim} - -\noindent If there exists an inverted output, like for alle Flip Flops, -then the negated one gets the appendix \verb|neg| to the node name. For -example: -\begin{verbatim} -NAND1Q, NAND1Qneg -\end{verbatim} - -\begin{PSideBySideExample}[xrightmargin=3cm](3,3.5) - \begin{pspicture}(-0.5,0)(2.5,3) - \logic[/HLCBWz&logicShowNode"=true,% - /HLCBWz&logicLabelstyle"=\footnotesize,% - /HLCBWz&logicType"=nand,% - /HLCBWz&logicNInput"=4]{NAND1} - \multido{\n=1+1}{4}{% - \pscircle*[linecolor=red](NAND1\n){2pt}% - } - \pscircle*[linecolor=blue](NAND1Q){2pt} - \end{pspicture} -\end{PSideBySideExample} - -\vspace{0.5cm} -Now it is possible to draw a line from the output to the input - -\begin{verbatim} -\ncbar[angleA=0,angleB=180]{<Node A>}{<Node B>} -\end{verbatim} - -It may be easier to print a grid since the drawing phase and then comment it out if -all is finished. - -\bigskip -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3.5) - \begin{pspicture}(-1,-1)(2.5,3) - \logic[/HLCBWz&logicShowNode"=true,% - logicLabelstyle=\footnotesize,% - logicType=nand,% - /HLCBWz&logicWireLength"=1,% - /HLCBWz&logicNInput"=4]{NAND1} - \pnode(-0.5,0|NAND11){tempA} - \pnode(2,0|NAND1Q){tempB} - \end{pspicture} - \ncbar[angleA=-90,angleB=0,arm=0.75,% - arrows=*-*, dotsize=0.15]{tempA}{tempB} -\end{PSideBySideExample} - -\subsection{Examples} - -\begin{CenterExample} - \begin{pspicture}(-1,0)(5,5) - \psgrid - \psset{logicType=nor, logicLabelstyle=\normalsize,% - logicWidth=1, logicHeight=1.5, dotsize=0.15} - \logic(1.5,0){nor1} - \logic(1.5,3){nor2} - \psline(nor2Q)(4,0|nor2Q) - \uput[0](4,0|nor2Q){$Q$} - \psline(nor1Q)(4,0|nor1Q) - \uput[0](4,0|nor1Q){$\overline{Q}$} - \psline{*-}(3.50,0|nor2Q)(3.5,2.5)(1.5,2.5) - (0.5,1.75)(0.5,0|nor12)(nor12) - \psline{*-}(3.50,0|nor1Q)(3.5,2)(1.5,2) - (0.5,2.5)(0.5,0|nor21)(nor21) - \psline(0,0|nor11)(nor11)\uput[180](0,0|nor11){R} - \psline(0,0|nor22)(nor22)\uput[180](0,0|nor22){S} - \end{pspicture} -\end{CenterExample} - -\bigskip -\begin{CenterExample} - \begin{pspicture}(-4,0)(5,7) - \psgrid - \psset{logicWidth=1, logicHeight=2, dotsize=0.15} - \logic[logicWireLength=0](-2,0){A0} - \logic[logicWireLength=0](-2,5){A1} - \ncbar[angleA=-180,angleB=-180,arm=0.5]{A11}{A02} - \psline[dotsize=0.15]{-*}(-3.5,3.5)(-2.5,3.5) - \uput[180](-3.5,3.5){$T$} - \psline(-3.5,0.5)(A01)\uput[180](-3.5,0.5){$S$} - \psline(-3.5,6.5)(A12)\uput[180](-3.5,6.5){$R$} - \psset{logicType=nor, logicLabelstyle=\normalsize} - \logic(1,0.5){nor1} - \logic(1,4.5){nor2} - \psline(nor2Q)(4,0|nor2Q) - \uput[0](4,0|nor2Q){$Q$} - \psline(nor1Q)(4,0|nor1Q) - \uput[0](4,0|nor1Q){$\overline{Q}$} - \psline{*-}(3,0|nor2Q)(3,4)(1,4)(0,3)(0,0|nor12)(nor12) - \psline{*-}(3,0|nor1Q)(3,3)(1,3)(0,4)(0,0|nor21)(nor21) - \psline(A0Q)(nor11) - \psline(A1Q)(nor22) - \end{pspicture} -\end{CenterExample} - -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-circ/poti.pdf b/Master/texmf-dist/doc/generic/pst-circ/poti.pdf Binary files differdeleted file mode 100644 index 7cbeb47e31c..00000000000 --- a/Master/texmf-dist/doc/generic/pst-circ/poti.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/generic/pst-circ/poti.tex b/Master/texmf-dist/doc/generic/pst-circ/poti.tex deleted file mode 100644 index bd93942a9b8..00000000000 --- a/Master/texmf-dist/doc/generic/pst-circ/poti.tex +++ /dev/null @@ -1,81 +0,0 @@ -\documentclass[a4paper,12pt]{article} -\usepackage{pst-circ} -\begin{document} -\section*{Potentiometer tripole} - -\psset{griddots=5,gridlabels=7pt,subgriddiv=0} -\begin{pspicture}(3,3) - \psgrid - \pnode(0,1){A} - \pnode(3,1){B} - \pnode(3,2){C} - \potentiometer[labeloffset=0pt](A)(B)(C){P} -\end{pspicture} -\hfill -\begin{pspicture}(3,3) - \psgrid - \pnode(0,2.5){A} - \pnode(3,2.5){B} - \pnode(0,1){C} - \potentiometer[labeloffset=0pt](A)(B)(C){P} -\end{pspicture} -\hfill -\begin{pspicture}(3,3) - \psgrid - \pnode(0,0){A} - \pnode(3,2){B} - \pnode(2.5,3){C} - \potentiometer[labeloffset=0pt,labelangle=:U](A)(B)(C){P} -\end{pspicture} - -\vspace{1cm} -\begin{pspicture}(3,3) - \psgrid - \pnode(1,0){A} - \pnode(1,3){B} - \pnode(2.5,0){C} - \potentiometer[labeloffset=0pt](A)(B)(C){P} -\end{pspicture} -\hfill -\begin{pspicture}(3,3) - \psgrid - \pnode(0,3){A} - \pnode(3,0){B} - \pnode(2,0){C} - \potentiometer[labeloffset=0pt,labelangle=:U](A)(B)(C){P} -\end{pspicture} -\hfill -\begin{pspicture}(3,3) - \psgrid - \pnode(0,2){A} - \pnode(3,2){B} - \pnode(1.5,0){C} - \potentiometer[labeloffset=0pt](A)(B)(C){P} -\end{pspicture} - - -\vspace{1cm} -\begin{pspicture}(3,3) - \psgrid - \pnode(1,0){A} - \pnode(1,3){B} - \pnode(2.5,0){C} - \potentiometer[dipolestyle=zigzag](A)(B)(C){P} -\end{pspicture} -\hfill -\begin{pspicture}(3,3) - \psgrid - \pnode(0,3){A} - \pnode(3,0){B} - \pnode(2,0){C} - \potentiometer[dipolestyle=zigzag,labelangle=:U](A)(B)(C){P} -\end{pspicture} -\hfill -\begin{pspicture}(3,3) - \psgrid - \pnode(0,2){A} - \pnode(3,2){B} - \pnode(1.5,0){C} - \potentiometer[dipolestyle=zigzag](A)(B)(C){P} -\end{pspicture} -\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib new file mode 100644 index 00000000000..3b785845e22 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib @@ -0,0 +1,129 @@ +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } + +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {PostScript richtig eingesetzt: vom Konzept zum + praktischen Einsatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{pstricks, + Title = {PSTricks - {\PS} macros for Generic TeX}, + Author = {Timothy Van Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993, +} + + +@Manual{pdftricks, + Title = {PSTricks Support for pdf}, + Author = {Herbert Voss}, + Organization = {}, + Address = {\url{http://PSTricks.de/pdf/pdfoutput.phtml}}, + Note = {}, + year = 2002, +} + +@Manual{miwi, + Title = {References for \TeX{} and Friends}, + Author = {Michael Wiedmann and Peter Karp}, + Organization = {}, + Address = {\url{http://www.miwie.org/tex-refs/}}, + Note = {}, + year = 2003, +} + + +@Manual{pstlens:2001, + Title = {PST-lens - {\PS} macros for Generic TeX}, + Author = {Denis Girou and Manuel Luque}, + Organization = {}, + Address = {\url{ftp://ftp.dante.de/tex-archive/graphics/pstricks/contrib/pst-lens/}}, + Note = {}, + year = 2001, +} + +@Manual{vue3d:2002, + Title = {Vue en 3D}, + Author = {Manuel Luque}, + Organization = {}, + Address = {\url{http://members.aol.com/Mluque5130/vue3d16112002.zip}}, + Note = {}, + year = 2002, +} + +@Article{dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {Die {P}lot-{F}unktionen von {\texttt{pst-plot}}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {27--34}, + annote = bretter, + keywords = {}, + abstract = { Im letzten Heft wurden die mathematischen Funktionen von + \PS~im Zusammenhang mit dem {\LaTeX}-Paket + \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben + und durch Beispiele erl{\"a}utert. In diesem Teil werden + die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r + externe Daten behandelt. } +} + +@Article{dtk02.1:voss:mathematischen, + author = {Herbert Vo{\ss}}, + title = {Die mathematischen {F}unktionen von {P}ostscript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {40-47}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + + +@Book{companion, + author = {Michel Goosens and Frank Mittelbach and Alexander + Samarin}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + publisher = {{Addison-Wesley Publishing Company}}, + year = {2004}, + edition = {2.}, + address = {Reading, Mass.} +} + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {4.}, + publisher = {DANTE -- Lehmanns}, + year = {2007}, + address = {Heidelberg/Hamburg} +} + +@Book{voss:math, + author = {Herbert Vo\ss}, + title = {\LaTeX\ in {M}athematik und {N}aturwissenschaften}, + publisher = {{Franzis-Verlag}}, + year = {2006}, + address = {Poing} +} + diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf Binary files differindex aa74333ac9b..45e9b7e2c46 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf +++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex index 09dba0a68ce..82304a8ba41 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex +++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex @@ -1,12 +1,15 @@ +\listfiles \documentclass{article} - -\usepackage{multicol} -\usepackage[a4paper,margin=1.5cm]{geometry} +\usepackage[a4paper]{geometry} \usepackage{fancyhdr} -\usepackage[baw,pstricks]{fvrb-ex} -\usepackage{pst-circ} -\usepackage{pstcol} \usepackage{url} +% +\usepackage{pst-all} +\usepackage{pst-circ} +\let\verPstCirc\fileversion +\usepackage{multicol} +\usepackage{showexpl} +% \makeatletter \def\@UrlFont{\small\ttfamily} \renewenvironment{description} @@ -15,106 +18,31 @@ \let\makelabel\descriptionlabel}} {\endlist} -\renewcommand{\Begin@Example}{% -\parindent=0pt -\multiply\topsep by 2 \VerbatimEnvironment -\begin{VerbatimOut}[codes={\catcode`\£=12\catcode`\/=12\catcode`\&=12% - \catcode`\"=12}]{\jobname.tmp}} - -\renewcommand{\Below@Example}[1]{% -\VerbatimInput[gobble=0,commentchar=£,commandchars=/&",numbersep=3pt]% - {\jobname.tmp} -\catcode`\£=9\relax% -\NoHighlight@Attributes % To suppress possible highlighting -\ifFvrbEx@Grid\vspace{5pt}\fi -#1% -\ifFvrbEx@Grid\vspace{5pt}\fi -\par} - -\renewcommand{\SideBySide@Example}[1]{% -\@tempdimb=\FV@XRightMargin \advance\@tempdimb -5mm -\begin{minipage}[c]{\@tempdimb} - \fvset{xrightmargin=0pt} - \catcode`\£=9\relax% - \NoHighlight@Attributes % To suppress possible highlighting - #1 -\end{minipage}% -\@tempdimb=\textwidth \advance\@tempdimb -\FV@XRightMargin \advance\@tempdimb 5mm -\begin{minipage}[c]{\@tempdimb} - \VerbatimInput[gobble=0,commentchar=£,commandchars=/&",numbersep=3pt, - xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} -\end{minipage}} -% The \NoHighlight@Attributes from `hbaw' and `hcolors' packages -% must be modified too -\def\NoHighlight@Attributes{% -\catcode`\/=0\relax% -\catcode`\&=1\relax% -\catcode`\"=2\relax% -\def\HLa##1{##1}% -\def\HLb##1{##1}% -\def\HLc##1{##1}% -\def\HLd##1{##1}% -\def\HLe##1{##1}% -\def\HLf##1{##1}% -\def\HLBFa##1{##1}% -\def\HLBFb##1{##1}% -\def\HLBFc##1{##1}% -\def\HLBFd##1{##1}% -\def\HLBFe##1{##1}% -\def\HLBFf##1{##1}% -\def\HLITa##1{##1}% -\def\HLITb##1{##1}% -\def\HLITc##1{##1}% -\def\HLITd##1{##1}% -\def\HLITe##1{##1}% -\def\HLITf##1{##1}% -\def\HLCBBa##1{##1}% -\def\HLCBBb##1{##1}% -\def\HLCBBc##1{##1}% -\def\HLCBBd##1{##1}% -\def\HLCBBe##1{##1}% -\def\HLCBBf##1{##1}% -\def\HLCBBz##1{##1}% -\def\HLCBWa##1{##1}% -\def\HLCBWb##1{##1}% -\def\HLCBWc##1{##1}% -\def\HLCBWd##1{##1}% -\def\HLCBWe##1{##1}% -\def\HLCBWf##1{##1}% -\def\HLCBWz##1{##1}% -} - -\makeatother - -\fvset{numbers=none,frame=single,labelposition=topline} - \DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} - -\newcommand{\CircPackage}{\textbf{`pst-circ'}} +\def\PS{PostScript} +\newcommand{\CircPackage}{\textsf{`pst-circ'}} \lhead{\CircPackage}\rhead{A PSTricks package for drawing electric circuits} \pagestyle{fancy} -\psset{subgriddiv=0,griddots=5,gridlabels=7pt}% -\showgrid +\psset{subgriddiv=0,griddots=10,gridlabels=7pt}% +%\showgrid \usepackage[colorlinks,linktocpage]{hyperref} \begin{document} -\title{\CircPackage\\ A PSTricks package for drawing electric circuits\\\normalsize ver. 1.2b} -\author{{Christophe \textsc{Jorssen} \url{<christophe.jorssen@noos.fr>}}\\ -Herbert \textsc{Voss} \url{<voss@perce.de>}} -\date{28 August 2003} +\title{\texttt{pst-circ}\\ A PSTricks package for drawing electric circuits\\\normalsize ver. \verPstCirc} +\author{Christophe Jorssen\thanks{\url{<christophe.jorssen@noos.fr>}} and +Herbert Vo\ss\thanks{\url{<voss@PSTricks.de>}}} +\date{\today} \maketitle -\begin{center} -\psframebox[framearc=0.3,framesep=5mm,linewidth=.7mm]{% -\parbox{15cm}{% -{\textbf{Abstract:} \CircPackage{} is a PSTricks package to draw easily electric circuits. Most +\begin{abstract} +\CircPackage{} is a PSTricks package to draw easily electric circuits. Most dipoles, tripoles and quadrupoles used in classical electrotechnical circuits are provided as graphical units which can readily be -interconnectedd to produce circuit diagrams of a reasonable level of complexity}}} -\end{center} +interconnectedd to produce circuit diagrams of a reasonable level of complexity. +\end{abstract} \setlength{\columnseprule}{0.6pt} \begin{multicols}{2} @@ -140,16 +68,17 @@ out the underlying vector graphics. There are specific paramaters defined to change easily the behaviour of the pst-circ objects you are drawing. +\let\HLTTc\textsf %\begin{multicols}{2} \begin{description} \item[\HLTTc{intensity} (boolean):] (\emph{default:~false}) -\item[\HLTTc{intensitylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{intensitylabel} (string):] (\emph{default:~}) \item[\HLTTc{intensitylabeloffset} (dimension):] (\emph{default:~0.5}) \item[\HLTTc{intensitycolor} (PSTricks color):] (\emph{default:~black}) \item[\HLTTc{intensitylabelcolor} (PSTricks color):] (\emph{default:~black}) \item[\HLTTc{intensitywidth} (dimension):] (\emph{default:~\texttt{\cs{pslinewidth}}}) \item[\HLTTc{tension} (boolean):] (\emph{default:~false}) -\item[\HLTTc{tensionlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{tensionlabel} (string):] (\emph{default:~}) \item[\HLTTc{tensionoffset} (dimension):] (\emph{default:~1}) \item[\HLTTc{tensionlabeloffset} (dimension):] (\emph{default:~1.2}) \item[\HLTTc{tensioncolor} (PSTricks color):] (\emph{default:~black}) @@ -157,6 +86,7 @@ objects you are drawing. \item[\HLTTc{tensionwidth} (dimension):] (\emph{default:~\texttt{\cs{pslinewidth}}}) \item[\HLTTc{labeloffset} (dimension):] (\emph{default:~0.7}) \item[\HLTTc{labelangle} (PSTricks label angle):] (\emph{default:~0}) +\item[\HLTTc{labelInside} (integer):] (\emph{default:~0}) \item[\HLTTc{dipoleconvention}:] (\emph{default:~receptor}) \item[\HLTTc{directconvetion} (boolean):] (\emph{default:~true}) \item[\HLTTc{dipolestyle} (string):] (\emph{default:~normal}) @@ -173,24 +103,27 @@ objects you are drawing. \item[\HLTTc{OAiplus} (boolean):] (\emph{default:~false}) \item[\HLTTc{OAiminus} (boolean):] (\emph{default:~false}) \item[\HLTTc{OAiout} (boolean):] (\emph{default:~false}) -\item[\HLTTc{OAipluslabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) -\item[\HLTTc{OAiminuslabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) -\item[\HLTTc{OAioutlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{OAipluslabel} (string):] (\emph{default:~}) +\item[\HLTTc{OAiminuslabel} (string):] (\emph{default:~}) +\item[\HLTTc{OAioutlabel} (string):] (\emph{default:~}) \item[\HLTTc{transistorcircle} (boolean):] (\emph{default:~true}) \item[\HLTTc{transistorinvert} (boolean):] (\emph{default:~false}) \item[\HLTTc{transistoribase} (boolean):] (\emph{default:~false}) \item[\HLTTc{transistoricollector} (boolean):] (\emph{default:~false}) \item[\HLTTc{transistoriemitter} (boolean):] (\emph{default:~false}) -\item[\HLTTc{transistoribaselabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) -\item[\HLTTc{transistoricollectorlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) -\item[\HLTTc{transistoriemitterlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transistoribaselabel} (string):] (\emph{default:~}) +\item[\HLTTc{transistoricollectorlabel} (string):] (\emph{default:~}) +\item[\HLTTc{transistoriemitterlabel} (string):] (\emph{default:~}) +\item[\HLTTc{TRot} (angle):] (\emph{default:~0}) +\item[\HLTTc{edge} (macro):] (\emph{default:~\texttt{\textbackslash ncangles}}) \item[\HLTTc{transistortype} (string):] (\emph{default:~PNP}) -\item[\HLTTc{primarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) -\item[\HLTTc{secondarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{FETchanneltype} (string):] (\emph{default:~N}) +\item[\HLTTc{primarylabel} (string):] (\emph{default:~}) +\item[\HLTTc{secondarylabel} (string):] (\emph{default:~}) \item[\HLTTc{transformeriprimary} (boolean):] (\emph{default:~false}) \item[\HLTTc{transformerisecondary} (boolean):] (\emph{default:~false}) -\item[\HLTTc{transformeriprimarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) -\item[\HLTTc{transformerisecondarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transformeriprimarylabel} (string):] (\emph{default:~}) +\item[\HLTTc{transformerisecondarylabel} (string):] (\emph{default:~}) \item[\HLTTc{tripolestyle} (string):] (\emph{default:~normal}) \end{description} %\end{multicols} @@ -199,78 +132,111 @@ objects you are drawing. \subsection{Dipole macros} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \resistor(A)(B){$R$} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\resistor"(A)(B){$R$} -\end{PSideBySideExample} + \capacitor(A)(B){$C$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\capacitor"(A)(B){$C$} -\end{PSideBySideExample} + \battery(A)(B){$E$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\battery"(A)(B){$E$} -\end{PSideBySideExample} + \coil(A)(B){$L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\coil"(A)(B){$L$} -\end{PSideBySideExample} + \Ucc(A)(B){$E$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\Ucc"(A)(B){$E$} -\end{PSideBySideExample} + \Icc(A)(B){$\eta$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\Icc"(A)(B){$\eta$} -\end{PSideBySideExample} + \switch(A)(B){$K$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\switch"(A)(B){$K$} -\end{PSideBySideExample} + \diode(A)(B){$D$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\diode"(A)(B){$D$} -\end{PSideBySideExample} + \Zener(A)(B){$D$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\Zener"(A)(B){$D$} -\end{PSideBySideExample} + \lamp(A)(B){$\mathcal L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\lamp"(A)(B){$\mathcal L$} -\end{PSideBySideExample} + \circledipole(A)(B){$\mathcal G$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}[showgrid=true](3,2) \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\circledipole"(A)(B){$\mathcal G$} -\end{PSideBySideExample} + \circledipole[labeloffset=0](A)(B){\Large\textbf{A}} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\LED"(A)(B){$\mathcal D$} -\end{PSideBySideExample} + \LED(A)(B){$\mathcal D$} +\end{pspicture} +\end{LTXexample} +\bigskip \subsection{Tripole macros} Obviously, tripoles are not node connections. So \CircPackage{} tries its best to adjust the @@ -280,471 +246,782 @@ well chosen\footnote{This is something we are working on. I think that auto-posi auto-connections should be done at PostScript level and not at PSTricks level. If someone has any ideas, please mail us.}, so don't try to use tripole macros in strange situations! -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid \pnode(0,0){A} \pnode(0,3){B} \pnode(5,1.5){C} - /HLCBWz&\OA"(B)(A)(C) -\end{PSideBySideExample} + \OA(B)(A)(C) +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) - \pnode(0,1.5){A} - \pnode(5,3){B} - \pnode(5,0){C} - /HLCBWz&\transistor"(A)(B)(C) -\end{PSideBySideExample} +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid + \pnode(0,0){A} + \pnode(0,3){B} + \pnode(5,1.5){C} + \OA[OApower=true](B)(A)(C) +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid + \pnode(0,1.5){A} + \pnode(5,0){B} + \pnode(5,3){C} + \transistor[basesep=2cm,arrows=o-o](A)(B)(C) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid + \pnode(0,1.5){A}\psset{linewidth=1pt} + \transistor[basesep=2cm,arrows=o-o](A){Emitter}{Collector} + \psline{o-}(5,3)(3,3)(3,3|Collector)(Collector) + \psline{o-}(5,0)(3,0)(3,3|Emitter)(Emitter) + \psline{o-}(A)([nodesep=2]A) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,2)\psgrid \pnode(0,2){A} \pnode(5,2){B} \pnode(0,0){C} - /HLCBWz&\Tswitch"(A)(B)(C){$K$} -\end{PSideBySideExample} + \Tswitch(A)(B)(C){$K$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,1){A} \pnode(3,1){B} \pnode(3,2.25){C} - /HLCBWz&\potentiometer"[labeloffset=0pt](A)(B)(C){$P$} -\end{PSideBySideExample} + \potentiometer[labeloffset=0pt](A)(B)(C){$P$} +\end{pspicture} +\end{LTXexample} +\bigskip \subsection{Quadrupole macros} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,5)\psgrid \pnode(0,5){A} \pnode(0,0){B} \pnode(5,5){C} \pnode(5,0){D} - /HLCBWz&\transformer"(A)(B)(C)(D){$\mathcal T$} -\end{PSideBySideExample} + \transformer(A)(B)(C)(D){$\mathcal T$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid \pnode(0,2.5){A} \pnode(0,0.5){B} \pnode(4,2.5){C} \pnode(4,0.5){D} - /HLCBWz&\optoCoupler"(A)(B)(C)(D){$OC$} -\end{PSideBySideExample} + \optoCoupler(A)(B)(C)(D){$OC$} +\end{pspicture} +\end{LTXexample} +\clearpage \subsection{Multidipole} - \cs{multidipole} is a macro that allows multiple dipoles to be drawn between two specified nodes. \cs{multidipole} takes as many arguments as you want. \textbf{Note the \rnode{Dot}{dot} that is after the last dipole.} -\def\HLrnode#1{\rnode{Dot2}{#1}} -\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8) +\bigskip +\begin{minipage}{7cm} +\begin{pspicture}[showgrid=true](7,7) \pnode(0,0){A} - \pnode(8,8){B} - /HLCBWz&\multidipole"(A)(B)\resistor{$R$}% + \pnode(7,7){B} + \multidipole(A)(B)\resistor{$R$}% \capacitor[linecolor=red]{$C$}% - \diode{$D$}/HLrnode&/HLCBWz." -\end{PSideBySideExample} - + \diode{$D$}{}\rnode{Dot2}{}. +\end{pspicture} +\end{minipage}\hfill +\begin{minipage}{6cm} +\verb+\begin{pspicture}[showgrid=true](7,7)+\\ +\verb+ \pnode(0,0){A}+\\ +\verb+ \pnode(7,7){B}+\\ +\verb+ \multidipole(A)(B)\resistor{$R$}%+\\ +\verb+ \capacitor[linecolor=red]{$C$}%+\\ +\verb+ \diode{$D$}{}+\rnode{Dot2}{}.\\ +\verb+\end{pspicture}+ +\end{minipage} + +\bigskip \ncangles[linestyle=dashed,linecolor=gray,nodesep=3pt,armA=.5cm,angleA=-90,armB=4cm,angleB=0]{->}{Dot}{Dot2} Important: for the time being, \cs{multidipole} takes optional arguments but does not restore original values. We recommand not using it. +\bigskip \subsection{Wire} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\wire"(A)(B) -\end{PSideBySideExample} + \wire(A)(B) +\end{pspicture} +\end{LTXexample} +\bigskip \subsection{Potential} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - /HLCBWz&\tension"(A)(B){$u$} -\end{PSideBySideExample} + \tension(A)(B){$u$} +\end{pspicture} +\end{LTXexample} +\bigskip \subsection{ground} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0.5,1){A} \pnode(1,1){B} \pnode(2.5,1){C} - /HLCBWz&\ground"(A) - \ground{/HLCBWz&135"}(B) - \ground[/HLCBWz&linecolor"=blue]{180}(C) -\end{PSideBySideExample} + \ground(A) + \ground{135}(B) + \ground[linecolor=blue]{180}(C) +\end{pspicture} +\end{LTXexample} +\bigskip \section{Parameters} \subsection{Label parameters} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,1)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} - \resistor[/HLCBWz&labeloffset"=0](A)(B){$R$} -\end{PSideBySideExample} + \resistor[labeloffset=0](A)(B){$R$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,0){A} \pnode(3,2){B} - \resistor[/HLCBWz&labelangle"=:U](A)(B){$R$} -\end{PSideBySideExample} + \resistor[labelangle=:U](A)(B){$R$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,0){A} \pnode(3,2){B} - \resistor[/HLCBWz&labelangle"=0](A)(B){$R$} -\end{PSideBySideExample} + \resistor[labelangle=0](A)(B){$R$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,5)\psgrid \pnode(0,5){A} \pnode(0,0){B} \pnode(5,5){C} \pnode(5,0){D} - \transformer[/HLCBWz&primarylabel"=$n_1$, - /HLCBWz&secondarylabel"=$n_2$](A)(B)(C)(D){$\mathcal T$} -\end{PSideBySideExample} - + \transformer[primarylabel=$n_1$, + secondarylabel=$n_2$](A)(B)(C)(D){$\mathcal T$} +\end{pspicture} +\end{LTXexample} +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,4.5)\psgrid + \pnode(0,.5){A} + \pnode(3,.5){B} + \Ucc[labelInside=1](A)(B){$V$} + \pnode(0,2){A} + \pnode(3,2){B} + \Ucc[labelInside=2](A)(B){$V$} + \pnode(0,3.5){A} + \pnode(3,3.5){B} + \Ucc[labelInside=3](A)(B){$V$} +\end{pspicture} +\end{LTXexample} + +\bigskip \subsection{Current intensity and electrical potential parameters} -If the \HLTTc{intensity} parameter is set to \texttt{true}, an arrow is drawn on the wire -connecting one of the nodes to the dipole. If the \HLTTc{tension} parameter is set to \texttt{true}, +If the \texttt{intensity} parameter is set to \texttt{true}, an arrow is drawn on the wire +connecting one of the nodes to the dipole. If the \texttt{tension} parameter is set to \texttt{true}, an arrow is drawn parallel to the dipole. -The way those arrows are drawn is set by \HLTTc{dipoleconvention} and \HLTTc{directconvention} -parameters. \HLTTc{dipoleconvention} can take two values~: \texttt{generator} or \texttt{receptor}. -\HLTTc{directconvention} is a boolean. +The way those arrows are drawn is set by \texttt{dipoleconvention} and \texttt{directconvention} +parameters. \texttt{dipoleconvention} can take two values~: \texttt{generator} or \texttt{receptor}. +\texttt{directconvention} is a boolean. + -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} - \resistor[/HLCBWz&intensity",/HLCBWz&tension"](A)(B){} -\end{PSideBySideExample} + \resistor[intensity,tension](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor[intensity,tension, - /HLCBWz&dipoleconvention"=generator](A)(B){} -\end{PSideBySideExample} + dipoleconvention=generator](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor[intensity,tension, - /HLCBWz&directconvention"=false](A)(B){} -\end{PSideBySideExample} + directconvention=false](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor[intensity,tension, dipoleconvention=generator,directconvention=false](A)(B){} -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} -If \HLTTc{intensitylabel} is set to an non empty argument, then \HLTTc{intensity} is automatically -set to true. If \HLTTc{tensionlabel} is set to an non empty argument, then \HLTTc{tension} is +If \texttt{intensitylabel} is set to an non empty argument, then \texttt{intensity} is automatically +set to true. If \texttt{tensionlabel} is set to an non empty argument, then \texttt{tension} is automatically set to true. -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} - \resistor[/HLCBWz&intensitylabel"=$i$,/HLCBWz&tensionlabel"=$u$](A)(B){} -\end{PSideBySideExample} + \resistor[intensitylabel=$i$,tensionlabel=$u$](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1.5){A} \pnode(3,1.5){B} - \resistor[intensitylabel=$i$,/HLCBWz&intensitylabeloffset"=-0.5, - tensionlabel=$u$,/HLCBWz&tensionlabeloffset"=-1.2, - /HLCBWz&tensionoffset"=-1](A)(B){} -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \resistor[intensitylabel=$i$,intensitylabeloffset=-0.5, + tensionlabel=$u$,tensionlabeloffset=-1.2, + tensionoffset=-1](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} - \resistor[intensitylabel=$i$,/HLCBWz&intensitywidth"=3\pslinewidth, - /HLCBWz&intensitycolor"=red,/HLCBWz&intensitylabelcolor"=yellow, - tensionlabel=$u$,/HLCBWz&tensionwidth"=2\pslinewidth, - /HLCBWz&tensioncolor"=green,/HLCBWz&tensionlabelcolor"=blue](A)(B){} -\end{PSideBySideExample} + \resistor[intensitylabel=$i$,intensitywidth=3\pslinewidth, + intensitycolor=red,intensitylabelcolor=yellow, + tensionlabel=$u$,tensionwidth=2\pslinewidth, + tensioncolor=green,tensionlabelcolor=blue](A)(B){} +\end{pspicture} +\end{LTXexample} Some specific intensity parameters are available for tripoles and quadrupoles. -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid \pnode(0,0){A} \pnode(0,3){B} \pnode(5,1.5){C} - \OA[/HLCBWz&OAipluslabel"=$i_+$, - /HLCBWz&OAiminuslabel"=$i_-$, - /HLCBWz&OAioutlabel"=$i_o$](B)(A)(C) -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \OA[OAipluslabel=$i_+$, + OAiminuslabel=$i_-$, + OAioutlabel=$i_o$](B)(A)(C) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3)\psgrid \pnode(0,1.5){A} - \pnode(5,3){B} - \pnode(5,0){C} - \transistor[/HLCBWz&transistoribaselabel"=$i_B$, - /HLCBWz&transistoricollectorlabel"=$i_C$, - /HLCBWz&transistoriemitterlabel"=$i_E$](A)(B)(C) -\end{PSideBySideExample} - -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5) + \pnode(5,0){B} + \pnode(5,3){C} + \transistor[basesep=2cm,transistoribaselabel=$i_B$, + transistoricollectorlabel=$i_C$, + transistoriemitterlabel=$i_E$](A)(B)(C) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,5)\psgrid \pnode(0,5){A} \pnode(0,0){B} \pnode(5,5){C} \pnode(5,0){D} - \transformer[/HLCBWz&transformeriprimarylabel"=$i_1$, - /HLCBWz&transformerisecondarylabel"=$i_2$]% + \transformer[transformeriprimarylabel=$i_1$, + transformerisecondarylabel=$i_2$]% (A)(B)(C)(D){$\mathcal T$} -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} \subsection{Parallel parameters} -If the \HLTTc{parallel} parameter is set to \texttt{true}, the dipole is drawn parallel to the line +If the \texttt{parallel} parameter is set to \texttt{true}, the dipole is drawn parallel to the line connecting the nodes. -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor(A)(B){} - \resistor[/HLCBWz¶llel"](A)(B){} -\end{PSideBySideExample} + \resistor[parallel](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor(A)(B){} - \resistor[parallel,/HLCBWz¶llelsep"=.5](A)(B){} -\end{PSideBySideExample} + \resistor[parallel,parallelsep=.5](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor(A)(B){} \resistor[parallel,parallelsep=.3, - /HLCBWz¶llelarm"=2](A)(B){} -\end{PSideBySideExample} + parallelarm=2](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,.5){A} \pnode(3,.5){B} \resistor(A)(B){} \resistor[parallel,parallelsep=.3, - parallelarm=2,/HLCBWz¶llelnode"](A)(B){} -\end{PSideBySideExample} + parallelarm=2,parallelnode](A)(B){} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8) +\begin{LTXexample}[width=8.5cm] +\begin{pspicture}(8,8)\psgrid \pnode(0,0){A} \pnode(8,8){B} \multidipole(A)(B)\resistor{$R$}% \capacitor[linecolor=red]{$C$}% \coil[parallel,parallelsep=.1]{$L$}% \diode{$D$}. -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} -Note: When used with \cs{multidipole}, the parallel \HLTTc{parameter} +Note: When used with \cs{multidipole}, the parallel \texttt{parameter} must not be set for the first dipole. + + \subsection{Wire intersections} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,0){A} \pnode(3,3){B} \pnode(0,3){C} \pnode(3,0){D} \wire(A)(B) - \wire[/HLCBWz&intersect",/HLCBWz&intersectA"=A,/HLCBWz&intersectB"=B](C)(D) -\end{PSideBySideExample} + \wire[intersect,intersectA=A,intersectB=B](C)(D) +\end{pspicture} +\end{LTXexample} Wire intersect parameters work also with \cs{multidipole}. -\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8) +\begin{LTXexample}[width=6.5cm] +\begin{pspicture}(7,7)\psgrid \pnode(0,0){A} - \pnode(8,8){B} - \pnode(0,8){C} - \pnode(8,0){D} + \pnode(6,6){B} + \pnode(0,6){C} + \pnode(6,0){D} \wire(A)(B) \multidipole(C)(D)\resistor{$R$}% \wire[intersect,intersectA=A,intersectB=B]% \capacitor{$C$}. -\end{PSideBySideExample} - +\end{pspicture} +\end{LTXexample} +\bigskip \subsection{Dipole style parameters} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}[showgrid=true](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \resistor[dipolestyle=zigzag](A)(B){$R$} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}[showgrid=true](3,2) \pnode(0,1){A} \pnode(3,1){B} - \resistor[/HLCBWz&dipolestyle"=/HLCBWz&zigzag"](A)(B){$R$} -\end{PSideBySideExample} + \resistor[dipolestyle=varistor](A)(B){U} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}[showgrid=true](3,2) \pnode(0,1){A} \pnode(3,1){B} - \capacitor[dipolestyle=/HLCBWz&chemical"](A)(B){$C$} -\end{PSideBySideExample} + \capacitor[dipolestyle=chemical](A)(B){$C$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \capacitor[dipolestyle=/HLCBWz&elektor"](A)(B){$C$} -\end{PSideBySideExample} + \capacitor[dipolestyle=elektor](A)(B){$C$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \capacitor[dipolestyle=/HLCBWz&elektorchemical"](A)(B){$C$} -\end{PSideBySideExample} + \capacitor[dipolestyle=elektorchemical](A)(B){$C$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \coil[dipolestyle=/HLCBWz&rectangle"](A)(B){$L$} -\end{PSideBySideExample} + \coil[dipolestyle=rectangle](A)(B){$L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \coil[dipolestyle=/HLCBWz&curved"](A)(B){$L$} -\end{PSideBySideExample} + \coil[dipolestyle=curved](A)(B){$L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \coil[dipolestyle=/HLCBWz&elektor"](A)(B){$L$} -\end{PSideBySideExample} + \coil[dipolestyle=elektor](A)(B){$L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \coil[dipolestyle=/HLCBWz&elektorcurved"](A)(B){$L$} -\end{PSideBySideExample} + \coil[dipolestyle=elektorcurved](A)(B){$L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \diode[dipolestyle=/HLCBWz&thyristor"](A)(B){$T$} -\end{PSideBySideExample} + \diode[dipolestyle=thyristor](A)(B){$T$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \diode[dipolestyle=/HLCBWz>O"](A)(B){$T$} -\end{PSideBySideExample} + \diode[dipolestyle=GTO](A)(B){$T$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \diode[dipolestyle=/HLCBWz&triac"](A)(B){$T$} -\end{PSideBySideExample} + \diode[dipolestyle=triac](A)(B){$T$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \resistor[/HLCBWz&variable"](A)(B){$R$} -\end{PSideBySideExample} + \resistor[variable](A)(B){$R$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \capacitor[/HLCBWz&variable"](A)(B){$C$} -\end{PSideBySideExample} + \capacitor[variable](A)(B){$C$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \coil[/HLCBWz&variable"](A)(B){$L$} -\end{PSideBySideExample} + \coil[variable](A)(B){$L$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \battery[/HLCBWz&variable"](A)(B){$U$} -\end{PSideBySideExample} + \battery[variable](A)(B){$U$} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,2)\psgrid \pnode(0,1){A} \pnode(3,1){B} - \coil[dipolestyle=/HLCBWz&elektor",variable](A)(B){$L$} -\end{PSideBySideExample} + \coil[dipolestyle=elektor,variable](A)(B){$L$} +\end{pspicture} +\end{LTXexample} In the following example the parameter \verb|dipolestyle| is used for a tripole and quadrupole, because the coils are drawn as rectangles and the resistor as a zigzag. -\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}(3,3)\psgrid \pnode(0,0){A} \pnode(3,3){B} \pnode(3,1.5){C} - \potentiometer[,dipolestyle=/HLCBWz&zigzag",% + \potentiometer[dipolestyle=zigzag,% labelangle=:U](A)(B)(C){$P$} -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=4.5cm](4,4) +\begin{LTXexample}[width=4.5cm] +\begin{pspicture}(4,4)\psgrid \pnode(0,4){A} \pnode(0,0){B} \pnode(4,4){C} \pnode(4,0){D} - /HLCBWz&\transformer"[dipolestyle=/HLCBWz&rectangle"](A)(B)(C)(D){$\mathcal T$} -\end{PSideBySideExample} + \transformer[dipolestyle=rectangle](A)(B)(C)(D){$\mathcal T$} +\end{pspicture} +\end{LTXexample} \subsection{Tripole style parameters} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) \pnode(0,2){A} \pnode(5,2){B} \pnode(0,0){C} \Tswitch[tripolestyle=left](A)(B)(C){$K$} -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) \pnode(0,2){A} \pnode(5,2){B} \pnode(0,0){C} \Tswitch[tripolestyle=right](A)(B)(C){$K$} -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) \pnode(0,3){A} \pnode(0,0){B} \pnode(5,1.5){C} \OA[tripolestyle=french](A)(B)(C) -\end{PSideBySideExample} +\end{pspicture} +\end{LTXexample} + +\subsection{Potentiometer tripole} + +\begin{pspicture}(3,3) + \psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \pnode(3,2){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,2.5){A} + \pnode(3,2.5){B} + \pnode(0,1){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,0){A} + \pnode(3,2){B} + \pnode(2.5,3){C} + \potentiometer[labeloffset=0pt,labelangle=:U](A)(B)(C){P} +\end{pspicture} + +\vspace{1cm} +\noindent +\begin{pspicture}(3,3) + \psgrid + \pnode(1,0){A} + \pnode(1,3){B} + \pnode(2.5,0){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,3){A} + \pnode(3,0){B} + \pnode(2,0){C} + \potentiometer[labeloffset=0pt,labelangle=:U](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,2){A} + \pnode(3,2){B} + \pnode(1.5,0){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} + + +\vspace{1cm} +\noindent +\begin{pspicture}(3,3) + \psgrid + \pnode(1,0){A} + \pnode(1,3){B} + \pnode(2.5,0){C} + \potentiometer[dipolestyle=zigzag](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,3){A} + \pnode(3,0){B} + \pnode(2,0){C} + \potentiometer[dipolestyle=zigzag,labelangle=:U](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,2){A} + \pnode(3,2){B} + \pnode(1.5,0){C} + \potentiometer[dipolestyle=zigzag](A)(B)(C){P} +\end{pspicture} \subsection{Other Parameters} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) \pnode(0,0){A} \pnode(0,3){B} \pnode(5,1.5){C} - \OA[/HLCBWz&OAinvert"=false](B)(A)(C) -\end{PSideBySideExample} + \OA[OAinvert=false](B)(A)(C) +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) \pnode(0,0){A} \pnode(0,3){B} \pnode(5,1.5){C} - \OA[/HLCBWz&OAperfect"=false](B)(A)(C) -\end{PSideBySideExample} + \OA[OAperfect=false](B)(A)(C) +\end{pspicture} +\end{LTXexample} -\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) \pnode(0,1.5){A} - \pnode(5,3){B} - \pnode(5,0){C} - \transistor[/HLCBWz&transistorinvert",/HLCBWz&transistorcircle"=false](A)(B)(C) -\end{PSideBySideExample} + \pnode(5,0){B} + \pnode(5,3){C} + \transistor[basesep=2cm,% + transistorinvert,transistorcircle=false](A)(B)(C) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) + \pnode(0,1.5){A}\psset{linewidth=1pt} + \transistor[basesep=2cm,arrows=o-o, + transistortype=FET](A){Emitter}{Collector} + \psline{o-}(5,3)(3,3)(3,3|Collector)(Collector) + \psline{o-}(5,0)(3,0)(3,3|Emitter)(Emitter) + \psline{o-}(A)([nodesep=2]A) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) + \pnode(0,1.5){A}\psset{linewidth=1pt} + \transistor[basesep=2cm,arrows=o-o, + transistortype=FET, + FETchanneltype=P](A){Emitter}{Collector} + \psline{o-}(5,3)(3,3)(3,3|Collector)(Collector) + \psline{o-}(5,0)(3,0)(3,3|Emitter)(Emitter) + \psline{o-}(A)([nodesep=2]A) +\end{pspicture} +\end{LTXexample} + +\clearpage +\section{Special objects} + +\subsection{\texttt{\textbackslash dashpot}} + + +\begin{LTXexample}[pos=t] +\newcommand*\pswall[3]{% ll ur lr + \psframe[linecolor=white,fillstyle=hlines,hatchcolor=black](#1)(#2)% (ll)(ur) + \psline[linecolor=black](#1)(#3)} +\begin{pspicture}[showgrid=true](0.5,1)(8,10) + \rput(3,9.5){\sffamily \textbf{Viscoelasticity}} + % Kelvin-Voigt model (spring and dashpot parallel): =========== + \rput[c](1.75,8.85){\sffamily Kelvin-Voigt} + \pswall{1,8}{2.5,8.5}{2.5,8}% top + \psline(1.75,8)(1.75,7)% top vertical line + % node definitions: + \pnode(1,7){ul1}\pnode(2.5,7){ur1} \pnode(1,3){ll1}\pnode(2.5,3){lr1}% + \psline(ul1)(ur1)% top line + \psline(ll1)(lr1)% bottom line + \resistor[dipolestyle=zigzag,linewidth=0.5pt](ul1)(ll1){}% spring + \dashpot[linewidth=0.5pt](ur1)(lr1){}% dashpot + \psline[arrowscale=3]{->}(1.75,3)(1.75,2)% force + % Maxwell model (spring and dashpot serial): ================== + \rput[c](4.5,8.85){\sffamily Maxwell} + \pswall{4,8}{5,8.5}{5,8}% top + \pnode(4.5,8){t}\pnode(4.5,4){b}% node definitions + \resistor[dipolestyle=zigzag,linewidth=0.5pt,labeloffset=1.8](t)(b)% spring + {\sffamily\small\begin{tabular}{c}\textbf{elasticity}\\(Hookean solid)\end{tabular}}% end spring + \dashpot[linewidth=0.5pt,labeloffset=1.8](4.5,5)(4.5,3)% dashpot + {\sffamily\small\begin{tabular}{c}\textbf{viscosity}\\(Newtonian fluid)\end{tabular} + }% end dashpot + \psline[arrowscale=3]{->}(4.5,3)(4.5,2)% force +\end{pspicture} +\end{LTXexample} + \section{Examples} -\begin{SideBySideExample}[xrightmargin=8cm] +\begin{LTXexample}[width=8cm] \begin{pspicture}(-1.5,-1)(6,5) - \psgrid[subgriddiv=1,griddots=10] +% \psgrid[subgriddiv=1,griddots=10] % Node definitions \pnode(0,0){A} \pnode(0,3){B} @@ -763,11 +1040,11 @@ the coils are drawn as rectangles and the resistor as a zigzag. % Ground \ground(D) \end{pspicture} -\end{SideBySideExample} +\end{LTXexample} -\begin{SideBySideExample}[xrightmargin=8cm] +\begin{LTXexample}[width=8cm] \begin{pspicture}(-0.5,0)(7,8) - \psgrid[subgriddiv=1,griddots=10] +% \psgrid[subgriddiv=1,griddots=10] % Node definitions \pnode(0.5,1){A} \pnode(3.5,1){B} @@ -796,11 +1073,11 @@ the coils are drawn as rectangles and the resistor as a zigzag. \ground(B) \ground(C) \end{pspicture} -\end{SideBySideExample} +\end{LTXexample} -\begin{SideBySideExample}[xrightmargin=8.5cm] +\begin{LTXexample}[width=8.5cm] \begin{pspicture}(-1,0)(7,8) - \psgrid[subgriddiv=1,griddots=10] +% \psgrid[subgriddiv=1,griddots=10] % Node definitions \pnode(1,1){A} \pnode(1,7){B} @@ -814,11 +1091,11 @@ the coils are drawn as rectangles and the resistor as a zigzag. % Wire \wire(A)(C) \end{pspicture} -\end{SideBySideExample} +\end{LTXexample} -\begin{SideBySideExample}[xrightmargin=8.5cm] - \begin{pspicture}(6,6) - \psgrid[subgriddiv=1,griddots=10] +\begin{LTXexample}[width=8.5cm] + \begin{pspicture}(-0.25,-0.25)(6,6) +% \psgrid[subgriddiv=1,griddots=10] % Node definitions \pnode(0,3){A} \pnode(3,3){B} @@ -829,11 +1106,11 @@ the coils are drawn as rectangles and the resistor as a zigzag. parallel,parallelarm=2](B)(C){$L'$} \capacitor[parallel,parallelarm=-2](B)(C){$C$} \end{pspicture} -\end{SideBySideExample} +\end{LTXexample} -\begin{SideBySideExample}[xrightmargin=8.5cm] +\begin{LTXexample}[width=8.5cm] \begin{pspicture}(6,6) - \psgrid[subgriddiv=1,griddots=10] +% \psgrid[subgriddiv=1,griddots=10] % Node definitions \pnode(0,0){A}\pnode(6,0){B} \pnode(0.3,4){Cprime}\pnode(5.7,4){Dprime} @@ -853,89 +1130,68 @@ the coils are drawn as rectangles and the resistor as a zigzag. \wire(Dprime)(F) \resistor(Hprime)(Gprime){$R_3$} \end{pspicture} -\end{SideBySideExample} +\end{LTXexample} -\begin{SideBySideExample}[xrightmargin=9.5cm] - \begin{pspicture}(9,11) - \psgrid[subgriddiv=1,griddots=10] +\begin{LTXexample}[pos=t] + \begin{pspicture}(0,-0.25)(9,11) % Node definitions - \pnode(0,0){A} - \pnode(9,0){B} - \pnode(0,6){C} - \pnode(9,6){D} - \pnode(4.5,1){E} - \pnode(4.5,10.5){F} + \pnode(0,0){A}\pnode(9,0){B}\pnode(0,6){C}\pnode(9,6){D}\pnode(4.5,1){E}\pnode(4.5,10.5){F} % \switch(A)(C){$K$} - \multidipole(A)(B)\resistor{$R$}% - \battery[intensitylabel=$i$]{$V$}. + \multidipole(A)(B)\resistor{$R$}\battery[intensitylabel=$i$]{$V$}. \wire(B)(D) \multidipole(C)(D)\diode{$D$}\wire. - \resistor[tensionlabel=$U_1$](C)(F){$R_1$} - \resistor(C)(E){$R_4$} - \capacitor[parallel,parallelarm=1.2, - parallelsep=1.5](C)(E){$C_2$} + \resistor[tensionlabel=$U_1$](C)(F){$R_1$} \resistor(C)(E){$R_4$} + \capacitor[parallel,parallelarm=1.2,parallelsep=1.5](C)(E){$C_2$} \coil(E)(D){$L$} - \capacitor[parallel,parallelarm=1.2, - parallelsep=1.5](E)(D){$C_3$} + \capacitor[parallel,parallelarm=1.2,parallelsep=1.5](E)(D){$C_3$} \capacitor[tensionlabel=$U_2$](F)(D){$C_1$} - \multidipole(E)(F)\wire% - \wire[intersect, - intersectA=C,intersectB=D]% + \multidipole(E)(F)\wire\wire[intersect,intersectA=C,intersectB=D]% \circledipole[labeloffset=-0.7]{$E$}% - \resistor[parallel, - parallelsep=.6,parallelarm=.8]{$R$}. + \resistor[parallel,parallelsep=.6,parallelarm=.8]{$R$}. \end{pspicture} -\end{SideBySideExample} - - -\begin{CenterExample} - \begin{pspicture}(13,8) - \psset{intensitycolor=red,intensitylabelcolor=red,% - tensioncolor=green,tensionlabelcolor=green,% - intensitywidth=3pt} - \psgrid[griddots=5,gridlabels=7pt,subgriddiv=0] - \circledipole[ - tension,% - tensionlabel=$U_0$,% - tensionoffset=0.75,% - labeloffset=0](0,0)(0,6){\LARGE\textbf{=}} - \wire[intensity,intensitylabel=$i_0$](0,6)(2.5,6) - \diode[dipolestyle=thyristor](2.5,6)(4.5,6){$T_1$} - \wire[intensity,intensitylabel=$i_1$](4.5,6)(6.5,6) - \multidipole(6.5,7.5)(2.5,7.5)% +\end{LTXexample} + +\begin{LTXexample}[pos=t] +\begin{pspicture}(0,-0.2)(13,8) + \psset{intensitycolor=red,intensitylabelcolor=red,tensioncolor=green, + tensionlabelcolor=green, intensitywidth=3pt} + \circledipole[tension,tensionlabel=$U_0$, + tensionoffset=0.75,labeloffset=0](0,0)(0,6){\LARGE\textbf{=}} + \wire[intensity,intensitylabel=$i_0$](0,6)(2.5,6) + \diode[dipolestyle=thyristor](2.5,6)(4.5,6){$T_1$} + \wire[intensity,intensitylabel=$i_1$](4.5,6)(6.5,6) + \multidipole(6.5,7.5)(2.5,7.5)% \coil[dipolestyle=rectangle,labeloffset=-0.75]{$L_5$}% \diode[labeloffset=-0.75]{$D_5$}. - \wire[intensity,intensitylabel=$i_5$](6.5,6)(6.5,7.5) - \wire(2.5,7.5)(2.5,3) - \wire[intensity,intensitylabel=$i_c$](2.5,4.5)(2.5,6) - \qdisk(2.5,6){2pt}\qdisk(6.5,6){2pt} - \diode[dipolestyle=thyristor](2.5,4.5)(4.5,4.5){$T_2$} - \wire[intensity,intensitylabel=$i_2$](4.5,4.5)(6.5,4.5) - \capacitor[tension,tensionlabel=$u_c$,% - tensionoffset=-0.75,tensionlabeloffset=-1](6.5,4.5)(6.5,6){$C_k$} - \qdisk(2.5,4.5){2pt}\qdisk(6.5,4.5){2pt} - \wire[intensity,intensitylabel=$i_3$](6.5,4.5)(6.5,3) - \multidipole(6.5,3)(2.5,3)% - \coil[dipolestyle=rectangle,labeloffset=-0.75]{$L_3$}% - \diode[labeloffset=-0.75]{$D_3$}. - \wire(6.5,6)(9,6)\qdisk(9,6){2pt} - \diode(9,0)(9,6){$D_4$} - \wire[intensity,intensitylabel=$i_4$](9,3.25)(9,6) - \wire[intensity,intensitylabel=$i_a$](9,6)(11,6) - \multidipole(11,6)(11,0)% - \resistor{$R_L$} - \coil[dipolestyle=rectangle]{$L_L$}% - \circledipole[labeloffset=0,% - tension,tensionoffset=0.7,% - tensionlabel=$U_B$]{\LARGE\textbf{=}}. - \wire(0,0)(11,0)\qdisk(9,0){2pt} - \pnode(12.5,5.5){A}\pnode(12.5,0.5){B} - \tension(A)(B){$u_a$} - \end{pspicture} -\end{CenterExample} + \wire[intensity,intensitylabel=$i_5$](6.5,6)(6.5,7.5) + \wire(2.5,7.5)(2.5,3) + \wire[intensity,intensitylabel=$i_c$](2.5,4.5)(2.5,6) + \qdisk(2.5,6){2pt}\qdisk(6.5,6){2pt} + \diode[dipolestyle=thyristor](2.5,4.5)(4.5,4.5){$T_2$} + \wire[intensity,intensitylabel=$i_2$](4.5,4.5)(6.5,4.5) + \capacitor[tension,tensionlabel=$u_c$,tensionoffset=-0.75, + tensionlabeloffset=-1](6.5,4.5)(6.5,6){$C_k$} + \qdisk(2.5,4.5){2pt}\qdisk(6.5,4.5){2pt} + \wire[intensity,intensitylabel=$i_3$](6.5,4.5)(6.5,3) + \multidipole(6.5,3)(2.5,3)% + \coil[dipolestyle=rectangle,labeloffset=-0.75]{$L_3$}% + \diode[labeloffset=-0.75]{$D_3$}. + \wire(6.5,6)(9,6)\qdisk(9,6){2pt} + \diode(9,0)(9,6){$D_4$} + \wire[intensity,intensitylabel=$i_4$](9,3.25)(9,6) + \wire[intensity,intensitylabel=$i_a$](9,6)(11,6) + \multidipole(11,6)(11,0)% + \resistor{$R_L$} + \coil[dipolestyle=rectangle]{$L_L$} + \circledipole[labeloffset=0,tension,tensionoffset=0.7,tensionlabel=$U_B$]{\LARGE\textbf{=}}. + \wire(0,0)(11,0)\qdisk(9,0){2pt} + \pnode(12.5,5.5){A}\pnode(12.5,0.5){B} + \tension(A)(B){$u_a$} +\end{pspicture} +\end{LTXexample} \makeatletter @@ -943,7 +1199,8 @@ the coils are drawn as rectangles and the resistor as a zigzag. \def\REG{\@ifnextchar[{\pst@REG}{\pst@REG[]}} % \def\pst@REG[#1](#2)(#3)(#4)#5{{% - \setkeys{psset}{#1,dimen=middle,arm=0}% + \psset{dimen=middle,arm=0}% + \psset{#1} \pst@getcoor{#2}\pst@tempa \pst@getcoor{#3}\pst@tempb \pst@getcoor{#4}\pst@tempc @@ -986,50 +1243,39 @@ the coils are drawn as rectangles and the resistor as a zigzag. \makeatother The fellowing example was written by Manuel Luque. -\begin{CenterExample} - \begin{pspicture}(14,4) - \psgrid[subgriddiv=1,griddots=10] + +\begin{LTXexample}[pos=t] + \begin{pspicture}(0,-0.5)(14,4) +% \psgrid[subgriddiv=1,griddots=10] \pnode(0,0){B}\pnode(0,3){A} - \pnode(2.5,3.5){C}\pnode(2.5,-0.5){D} - \pnode(5,3){E}\pnode(6.5,1.5){F} - \pnode(5,0){G}\pnode(3.5,1.5){H} - \pnode(8,2.5){I}\pnode(8,1){J} - \pnode(10,2.5){K}\pnode(10,1){L} - \pnode(14,2.5){M}\pnode(12,1){N} - \pnode(3,1){H'}\pnode(14,2.5){O} - \pnode(14,1){P}\pnode(13.5,1){Q} - \transformer[transformeriprimarylabel=$i_1$, - transformerisecondarylabel=$i_2$, - primarylabel=$n_1$,secondarylabel=$n_2$]% - (A)(B)(C)(D){$T_1$} + \pnode(2.5,3.5){C}\pnode(2.5,-0.5){D}\pnode(5,3){E}\pnode(6.5,1.5){F} + \pnode(5,0){G}\pnode(3.5,1.5){H} \pnode(8,2.5){I}\pnode(8,1){J} + \pnode(10,2.5){K}\pnode(10,1){L} \pnode(14,2.5){M}\pnode(12,1){N} + \pnode(3,1){H'}\pnode(14,2.5){O} \pnode(14,1){P}\pnode(13.5,1){Q} + \transformer[transformeriprimarylabel=$i_1$,transformerisecondarylabel=$i_2$, + primarylabel=$n_1$,secondarylabel=$n_2$](A)(B)(C)(D){$T_1$} {\psset{fillstyle=solid,fillcolor=black} - \diode(H)(E){}\diode(H)(G){} - \diode(E)(F){}\diode(G)(F){}} - \capacitor[dipolestyle=chemical](I)(J){} - \capacitor(K)(L){} + \diode(H)(E){}\diode(H)(G){} \diode(E)(F){}\diode(G)(F){}} + \capacitor[dipolestyle=chemical](I)(J){} \capacitor(K)(L){} \REG(K)(M)(N)% {\shortstack{\textsf{% \textbf{\large LM7805}}\\\textbf{+5V}}} - \ncangle{I}{F}\psline(I)(K) - \ncangle{E}{C}\ncangle{G}{D} - \ncangle[arm=0]{P}{Q} - \ncangle[arm=0]{H}{H'} - \ground(H')\ground(J) - \ground(L)\ground(N) - \ground(Q)\qdisk(I){1.5pt} - \qdisk(K){1.5pt}\qdisk(E){1.5pt} - \qdisk(G){1.5pt}\qdisk(H){1.5pt} - \qdisk(F){1.5pt} - \pscircle[fillstyle=solid](A){0.075} - \pscircle[fillstyle=solid](B){0.075} - \pscircle[fillstyle=solid](P){0.075} - \pscircle[fillstyle=solid](O){0.075} + \ncangle{I}{F}\psline(I)(K) \ncangle{E}{C}\ncangle{G}{D} + \ncangle[arm=0]{P}{Q} \ncangle[arm=0]{H}{H'} + \ground(H')\ground(J)\ground(L)\ground(N) + \ground(Q)\qdisk(I){1.5pt}\qdisk(K){1.5pt}\qdisk(E){1.5pt} + \qdisk(G){1.5pt}\qdisk(H){1.5pt}\qdisk(F){1.5pt} + \pscircle[fillstyle=solid](A){0.075} \pscircle[fillstyle=solid](B){0.075} + \pscircle[fillstyle=solid](P){0.075} \pscircle[fillstyle=solid](O){0.075} \end{pspicture} -\end{CenterExample} +\end{LTXexample} +\clearpage The fellowing example was written by Lionel Cordesses. -\begin{CenterExample} + + +\begin{LTXexample}[pos=t] \begin{pspicture}(11,3) \psset{dipolestyle=elektor} \pnode(1,2){Vin}\pnode(0.5,2){S}\pnode(0.5,0){Sm} @@ -1048,33 +1294,503 @@ The fellowing example was written by Lionel Cordesses. \pscircle*(A){2\pslinewidth} \pscircle*(Am){2\pslinewidth} \pscircle*(B){2\pslinewidth} \pscircle*(Bm){2\pslinewidth} \end{pspicture} -\end{CenterExample} +\end{LTXexample} + +\clearpage +The fellowing example was written by Christian Hoffmann. + + +\begin{LTXexample}[pos=t] + \SpecialCoor + \begin{pspicture}(0,-1)(7,6.5)%\psgrid + \pnode(0,6){plus} + \pnode(3,3){basis} + \pnode([nodesep=-2] basis){schalter} + \pnode(0,0){masse} + \wire[arrows=o-*](plus)(basis|plus) + \uput[l](plus){$U_0$} + \resistor[labeloffset=.8](basis|plus)(basis){$R_1$} + \transistor[basesep=2cm](basis){emitter}{kollektor} + \wire[arrows=-*](schalter)(basis) +% \wire(basis)([nodesep=2] basis) + \wire(TBaseNode)(basis) + \switch(schalter|masse)(schalter){S} + \lamp(kollektor|plus)(kollektor){L} + \resistor(kollektor|plus)(basis|plus){$R_2$} + \wire(emitter)(emitter|masse) + \wire(emitter|masse)(basis|masse) + \capacitor(basis)(basis|masse){$C_1$} + \wire[arrows=*-](basis|masse)(schalter|masse) + \wire[arrows=*-o](schalter|masse)(masse) + \end{pspicture} +\end{LTXexample} + + + +\clearpage +\section{Flip Flops -- logical elements} + +The syntax for all logical base circuits is +\begin{verbatim} +logic[<options>](<originX,originY>){Label} +\end{verbatim} + +\noindent where the options and the origin are optional. If they are missing, +then the default options, described in the next section and the default +origin $(0,0)$ is used. The origin specifies the lower left corner +of the logical circuit. + +\begin{verbatim} +logic{Demo} +logic[logicType=and]{Demo} +logic(0,0){Demo} +logic[logicType=and](0,0){Demo} +\end{verbatim} + +The above four ,,different`` calls of the \verb|logic| macro give the +same output, because they are equivalent. + +\subsection{The Options} + +\begin{description} +\item[logicShowNode (boolean):] (\emph{default:~false}) +\item[logicShowDot (boolean):] (\emph{default:~false}) +\item[logicNodestyle (command):] (\emph{default:~\textbackslash footnotesize}) +\item[logicSymbolstyle (command):] (\emph{default:~\textbackslash large}) +\item[logicSymbolpos (value):] (\emph{default:~0.5}) +\item[logicLabelstyle (command):] (\emph{default:~\textbackslash small}) +\item[logicType (string):] (\emph{default:~and}) +\item[logicChangeLR (boolean):] (\emph{default:~false}) +\item[logicWidth (length):] (\emph{default:~1.5}) +\item[logicHeight (length):] (\emph{default:~2.5}) +\item[logicWireLength (length):] (\emph{default:~0.5}) +\item[logicNInput (number):] (\emph{default:~2}) +\item[logicJInput (number):] (\emph{default:~2}) +\item[logicKInput (number):] (\emph{default:~2}) +\end{description} + +\subsection{Basic Logical Circuits} +At least the basic objects require a unique label name, otherwise it is +not sure, that all nodes will work well. The label may contain any +alphanumerical character and most of all symbols. But it is save +using only combinations of letters and digits. For example: +\begin{verbatim} +And0 +a0 +a123 +12 +NOT123a +\end{verbatim} + +\verb|A_1| is not a good choice, the underscore may causes some +problems. + +\subsubsection{And} + +\psset{subgriddiv=0,griddots=5,gridlabels=7pt} +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-1,0)(3,3) + \psgrid + \logic{AND1} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicChangeLR=true]{AND2} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(-0.5,0)(4,5) + \psgrid + \logic[logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicNInput=6,% + logicChangeLR=true](1,1){AND3} + \end{pspicture} +\end{LTXexample} + +\subsubsection{NotAnd} +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=nand",% + logicShowNode=true]{NAND1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=nand,% + logicChangeLR=true]{NAND2} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=nand,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicNInput=6,% + logicChangeLR=true](1,1){NAND3} + \end{pspicture} +\end{LTXexample} + +\subsubsection{Or} +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=or",% + logicShowNode=true]{OR1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=or,% + logicChangeLR=true]{OR2} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=or,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicNInput=6,% + logicChangeLR=true](1,1){OR3} + \end{pspicture} +\end{LTXexample} + +\clearpage +\subsubsection{Not Or} + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=nor",% + logicShowNode=true]{NOR1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=nor,% + logicChangeLR=true]{NOR2} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=nor,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicNInput=6,% + logicChangeLR=true](1,1){NOR3} + \end{pspicture} +\end{LTXexample} + + +\subsubsection{Not} + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=not",% + logicShowNode=true]{NOT1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=not,% + logicChangeLR=true]{NOT2} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=not,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicChangeLR=true](1,1){NOT3} + \end{pspicture} +\end{LTXexample} + +\subsubsection{Exclusive OR} + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=exor",% + logicShowNode=true]{ExOR1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=exor,% + logicChangeLR=true]{ExOR2} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=exor,% + logicShowNode=true,% + logicNInput=6,% + logicWidth=2,% + logicHeight=4,% + logicChangeLR=true](1,1){ExOR3} + \end{pspicture} +\end{LTXexample} + + +\clearpage +\subsubsection{Exclusive NOR} + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=exnor",% + logicShowNode=true]{ExNOR1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=exnor,% + logicChangeLR=true]{ExNOR2} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=exnor,% + logicShowNode=true,% + logicNInput=6,% + logicWidth=2,% + logicHeight=4,% + logicChangeLR=true](1,1){ExNOR3} + \end{pspicture} +\end{LTXexample} + + +\subsection{RS Flip Flop} + +\begin{LTXexample}[width=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=RS"]{RS1} + \end{pspicture} +\end{LTXexample} + + +\begin{LTXexample}[width=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=RS,% + logicChangeLR=true]{RS2} + \end{pspicture} +\end{LTXexample} + + +\subsection{D Flip Flop} + +\begin{LTXexample}[width=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=D"]{D1} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=D,% + logicChangeLR=true]{D2} + \end{pspicture} +\end{LTXexample} + + +\subsection{JK Flip Flop} +\begin{LTXexample}[width=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=JK",% + logicKInput=2,% + logicJInput=2]{JK1} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=JK,% + logicKInput=2, logicJInput=4,% + logicChangeLR=true]{JK2} + \end{pspicture} +\end{LTXexample} + +\subsection{Other Options} + +\begin{LTXexample}[width=3.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,2.5) + \logic[logicShowDot=true]{A0} + \end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=4.5cm](4,3) + \begin{pspicture}(-1,0)(3,2.5) + \logic[logicWireLength=1,% + logicShowDot=true]{A1} + \end{pspicture} +\end{LTXexample} + +\bigskip +The unit of \verb|logicWireLength| is the same than the actual one for pstricks, set by +the \verb|unit| option. + +\subsection{The Node Names} +Every logic circuit is defined with its name, which should be a unique one. +If we have the following NAND circuit, then \verb|pst-circ| defines the nodes +\begin{verbatim} +NAND11, NAND12, NAND13, NAND14, NAND1Q +\end{verbatim} + +\noindent If there exists an inverted output, like for alle Flip Flops, +then the negated one gets the appendix \verb|neg| to the node name. For +example: +\begin{verbatim} +NAND1Q, NAND1Qneg +\end{verbatim} + +\begin{LTXexample}[width=3cm](3,3.5) + \begin{pspicture}(-0.5,0)(2.5,3) + \logic[logicShowNode=true,% + logicLabelstyle=\footnotesize,% + logicType=nand,% + logicNInput=4]{NAND1} + \multido{\n=1+1}{4}{% + \pscircle*[linecolor=red](NAND1\n){2pt}% + } + \pscircle*[linecolor=blue](NAND1Q){2pt} + \end{pspicture} +\end{LTXexample} + +\vspace{0.5cm} +Now it is possible to draw a line from the output to the input + +\begin{verbatim} +\ncbar[angleA=0,angleB=180]{<Node A>}{<Node B>} +\end{verbatim} + +It may be easier to print a grid since the drawing phase and then comment it out if +all is finished. + +\bigskip +\begin{LTXexample}[width=3.5cm](3,3.5) + \begin{pspicture}(-1,-1)(2.5,3) + \logic[logicShowNode=true,% + logicLabelstyle=\footnotesize,% + logicType=nand,% + logicWireLength=1,% + logicNInput=4]{NAND1} + \pnode(-0.5,0|NAND11){tempA} + \pnode(2,0|NAND1Q){tempB} + \end{pspicture} + \ncbar[angleA=-90,angleB=0,arm=0.75,% + arrows=*-*, dotsize=0.15]{tempA}{tempB} +\end{LTXexample} + +\subsection{Examples} + +\begin{LTXexample}[pos=t] + \begin{pspicture}(-1,0)(5,5) + \psgrid + \psset{logicType=nor, logicLabelstyle=\normalsize,% + logicWidth=1, logicHeight=1.5, dotsize=0.15} + \logic(1.5,0){nor1} + \logic(1.5,3){nor2} + \psline(nor2Q)(4,0|nor2Q) + \uput[0](4,0|nor2Q){$Q$} + \psline(nor1Q)(4,0|nor1Q) + \uput[0](4,0|nor1Q){$\overline{Q}$} + \psline{*-}(3.50,0|nor2Q)(3.5,2.5)(1.5,2.5) + (0.5,1.75)(0.5,0|nor12)(nor12) + \psline{*-}(3.50,0|nor1Q)(3.5,2)(1.5,2) + (0.5,2.5)(0.5,0|nor21)(nor21) + \psline(0,0|nor11)(nor11)\uput[180](0,0|nor11){R} + \psline(0,0|nor22)(nor22)\uput[180](0,0|nor22){S} + \end{pspicture} +\end{LTXexample} + +\bigskip +\begin{LTXexample}[pos=t] + \begin{pspicture}(-4,0)(5,7) + \psgrid + \psset{logicWidth=1, logicHeight=2, dotsize=0.15} + \logic[logicWireLength=0](-2,0){A0} + \logic[logicWireLength=0](-2,5){A1} + \ncbar[angleA=-180,angleB=-180,arm=0.5]{A11}{A02} + \psline[dotsize=0.15]{-*}(-3.5,3.5)(-2.5,3.5) + \uput[180](-3.5,3.5){$T$} + \psline(-3.5,0.5)(A01)\uput[180](-3.5,0.5){$S$} + \psline(-3.5,6.5)(A12)\uput[180](-3.5,6.5){$R$} + \psset{logicType=nor, logicLabelstyle=\normalsize} + \logic(1,0.5){nor1} + \logic(1,4.5){nor2} + \psline(nor2Q)(4,0|nor2Q) + \uput[0](4,0|nor2Q){$Q$} + \psline(nor1Q)(4,0|nor1Q) + \uput[0](4,0|nor1Q){$\overline{Q}$} + \psline{*-}(3,0|nor2Q)(3,4)(1,4)(0,3)(0,0|nor12)(nor12) + \psline{*-}(3,0|nor1Q)(3,3)(1,3)(0,4)(0,0|nor21)(nor21) + \psline(A0Q)(nor11) + \psline(A1Q)(nor22) + \end{pspicture} +\end{LTXexample} + + + + + \section{Adding new components} Adding new components is not simple. As a matter of fact, because of the complex -mechanism of \cs{multidipole}, there are multiple steps. The easiest way to proceed is -to draw the component, send it to me (\texttt{\makeatletter -christophe.jorssen@noos.fr\makeatother}) and I'll do the programming work regarding your -component. Nevertheless, it can take some time\dots +mechanism of \cs{multidipole}, there are multiple steps. Nevertheless, it can take some time\ldots If you want to modify the code, you need to know the following things. For a dipole, you first -need to define the following items \fvset{commandchars=/&"} +need to define the following items: -\begin{Verbatim} - \def\/emph&component/_name"{\@ifnextchar[{\pst@/emph&component/_name"}{\pst@/emph&component/_name"[]}} +\begin{lstlisting}[language=TeX] + \def\component_name{\@ifnextchar[{\pst@component_name}{\pst@component_name[]}} % - \def\pst@/emph&component/_name"[#1](#2)(#3)#4{{% - \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@/emph&component/_name" + \def\pst@component/_name[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@component_name }\ignorespaces} % - \def\pst@multidipole@/emph&component/_name"{\@ifnextchar[{\pst@multidipole@/emph&component/_name"@}% - {\pst@multidipole@/emph&component/_name"@[]}} + \def\pst@multidipole@component_name{\@ifnextchar[{\pst@multidipole@component_name@}% + {\pst@multidipole@component_name@[]}} % - \def\pst@multidipole@/emph&component/_name"@[#1]#2{% + \def\pst@multidipole@component_name@[#1]#2{% \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% + {\psset{#1}% \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% \pst@circ@count@ii=\pst@circ@count@i% \advance\pst@circ@count@ii\@ne% @@ -1082,7 +1798,7 @@ need to define the following items \fvset{commandchars=/&"} \edef\pst@multidipole@output{% \the\toks0% \pst@multidipole@def@coor% - \noexpand\/emph&component/_name"[#1]% + \noexpand\component_name[#1]% (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname}% @@ -1090,17 +1806,16 @@ need to define the following items \fvset{commandchars=/&"} \pst@multidipole@ } % - \def\pst@draw@/emph&component/_name"{% + \def\pst@draw@component_name{% % The PSTricks code for your component % The center of the component is at (0,0) - \pnode(/emph&component/_left/_end",0){dipole@1} - \pnode(/emph&component/_right/_end",0){dipole@2} - } -\end{Verbatim} + \pnode(component_left_end,0){dipole@1} + \pnode(component_right_end,0){dipole@2}} +\end{lstlisting} Then, you have to make some changes in the \cs{multidipole} core code\dots In the definition -of \Verb+\pst@multidipole+, look for the last \Verb+\ifx+ test -\begin{Verbatim} +of \verb+\pst@multidipole+, look for the last \verb+\ifx+ test +\begin{lstlisting}[language=TeX] % ... % Extract from \pst@multidipole \else @@ -1117,9 +1832,9 @@ of \Verb+\pst@multidipole+, look for the last \Verb+\ifx+ test \fi % Extract form \pst@multidipole % ... -\end{Verbatim} -and add (in red) -\begin{Verbatim} +\end{lstlisting} +and add (marked with \verb+%%%+) +\begin{lstlisting}[language=TeX] % ... % Extract from \pst@multidipole \else @@ -1129,19 +1844,19 @@ and add (in red) \ifx\LED #4% \let\next\pst@multidipole@LED \else - /red&\ifx\/emph&component/_name" #4%" - /red&\let\next\pst@multidipole@/emph&component/_name"" - /red&\else" + \ifx\component_name #4%%% + \let\next\pst@multidipole@component_name%%% + \else%%% \let\next\ignorespaces - /red&\fi" + \fi%%% \fi \fi \fi % Extract form \pst@multidipole % ... -\end{Verbatim} -Do the same in \Verb+\pst@multidipole@+ -\begin{Verbatim} +\end{lstlisting} +Do the same in \verb+\pst@multidipole@+ +\begin{lstlisting}[language=TeX] % ... % Extract from \pst@multidipole@ \else @@ -1151,22 +1866,22 @@ Do the same in \Verb+\pst@multidipole@+ \ifx\LED #1% \let\next\pst@multidipole@LED \else - /red&\ifx\/emph&component/_name" #1%" - /red&\let\next\pst@multidipole@/emph&component/_name"" - /red&\else" + \ifx\component_name #1%%% + \let\next\pst@multidipole@component_name%%% + \else%%% \let\next\ignorespaces \pst@multidipole@output - /red&\fi" + \fi%%% \fi \fi \fi % Extract form \pst@multidipole@ % ... -\end{Verbatim} +\end{lstlisting} and that's it! All you have to do then is send your modified \texttt{pst-circ.tex} to me and it will become part of the official release of \CircPackage. -\textbf{Important:} Pay attention to the comment character \Verb+%+ +\textbf{Important:} Pay attention to the comment character \verb+%+ at the end of lines. They are \emph{very} important in order to avoid spurious blanks. \section{Acknowledgements} @@ -1175,6 +1890,15 @@ We thank of course Manuel Luque for his original work on pst-circ and for his ci drawings: this wouldn't have been possible without him. As usual, Denis Girou gave us a precious hand with some dark tricks of \TeX{} and PSTricks. Jean-C\^ome Charpentier wrote the outline of \cs{multidipole} (a story about riri, fifi and loulou\dots). -Thanks also to Douglas Waud. + +Thanks also to Douglas Waud, Patrick Drechsler (dashpot), Alan Ristow, and Ted Pavlic. + + +\nocite{*} + +{\raggedright +\bibliographystyle{plain} +\bibliography{pst-circ-doc} +} \end{document} diff --git a/Master/texmf-dist/dvips/pst-circ/pst-circ.pro b/Master/texmf-dist/dvips/pst-circ/pst-circ.pro index 2b6b1914ec5..c2210ce174c 100644 --- a/Master/texmf-dist/dvips/pst-circ/pst-circ.pro +++ b/Master/texmf-dist/dvips/pst-circ/pst-circ.pro @@ -1,12 +1,14 @@ %! % PostScript prologue for pst-circ.tex. +% version 0.01 2007-03-23 (hv) % For distribution, see pstricks.tex. % /GetNode { tx@NodeDict begin tx@NodeDict 1 index known { load GetCenter } { pop 0 0 } ifelse end -} bind def /ZeroEq { abs 1E-10 lt } bind def /EqDr { +} bind def +/ZeroEq { abs 1E-10 lt } bind def /EqDr { 4 copy 3 -1 roll sub 7 1 roll exch sub 5 1 roll 4 -1 roll mul 3 1 roll mul exch sub } bind def /InterLines { diff --git a/Master/texmf-dist/source/generic/pst-circ/Makefile b/Master/texmf-dist/source/generic/pst-circ/Makefile new file mode 100644 index 00000000000..72804d65ca0 --- /dev/null +++ b/Master/texmf-dist/source/generic/pst-circ/Makefile @@ -0,0 +1,48 @@ + +# `Makefile' for `pst-circ.pdf', hv, 2007/03/17 + +.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps + +PACKAGE = pst-circ + +MAIN = $(PACKAGE)-doc + +LATEX = latex + +ARCHNAME = $(MAIN)-$(shell date +%y%m%d) + +ARCHFILES = $(PACKAGE).sty $(PACKAGE).tex $(PACKAGE).pro $(MAIN).tex README Changes Makefile + +all : doc clean +doc: $(MAIN).pdf + +$(MAIN).pdf : $(MAIN).ps + GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $< + +$(MAIN).ps : $(MAIN).dvi + dvips $< + +$(MAIN).dvi : $(MAIN).tex + $(LATEX) $< + $(LATEX) $< + if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi + if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi + makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \ + $(basename $<).glo + makeindex -t $(basename $<).ilg -o $(basename $<).ind \ + $(basename $<).idx + bibtex $(basename $<) + $(LATEX) $< + $(LATEX) $< + +clean : + $(RM) $(addprefix $(MAIN), .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl ) + $(RM) $(addprefix $(MAIN), .dvi .ps) + +veryclean : clean + $(RM) $(addprefix $(MAIN), .pdf .bbl .blg) + +arch : + zip $(ARCHNAME).zip $(ARCHFILES) + +# EOF 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 c7fe66cdb48..c1693b566de 100644 --- a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex +++ b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex @@ -5,8 +5,10 @@ %% %% Package `pst-circ.tex' %% -%% Christophe Jorssen <Christophe.Jorssen@noos.fr> -%% Herbert Voss <voss@perce.de> +%% Original idea: A.Premoli I.Maio, M.Luque, +%% +%% Christophe Jorssen <Jorssen.lerraincy _at_ free.fr> +%% Herbert Voss <voss _at_ pstricks.de> %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -17,286 +19,294 @@ %% %% For a ChangeLog go the the end %% -\def\fileversion{1.21} -\def\filedate{2004/06/10} -\message{`pst-circ' v\fileversion,% - (Original idea: A.Premoli I.Maio,% - Design: M.Luque, - Code: C.Jorssen, H.Voss)} -% \csname PSTcircLoaded\endcsname \let\PSTcircLoaded\endinput % % Require PSTricks and pst-node packages % +\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi \ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi -% \ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi +\ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi % -% DPC interface to the `keyval' package -% -\input pst-key.tex -\input multido.tex +\def\fileversion{1.42} +\def\filedate{2007/10/15} +\message{`pst-circ' v\fileversion (CJ,hv,pd)} % \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax +\pst@addfams{pst-circ} % \pstheader{pst-circ.pro} -% \SpecialCoor % -\newdimen\Pst@circ@position -% -\newcount\pst@circ@count@i -\newcount\pst@circ@count@ii -\newcount\pst@circ@count@iii -% -\newif\ifPst@circ@intensity -\newif\ifPst@circ@tension -\newif\ifPst@circ@dipole@convention -\newif\ifPst@circ@direct@convention -\newif\ifPst@circ@parallel -\newif\ifPst@circ@parallel@node -\newif\ifPst@circ@wire@intersect -\newif\ifPst@circ@OA@perfect -\newif\ifPst@circ@OA@invert -\newif\ifPst@circ@OA@iplus -\newif\ifPst@circ@OA@iminus -\newif\ifPst@circ@OA@iout -\newif\ifPst@circ@transistor@circle% hv 2003-07-23 -\newif\ifPst@circ@transistor@invert -\newif\ifPst@circ@transistor@ibase -\newif\ifPst@circ@transistor@icollector -\newif\ifPst@circ@transistor@iemitter -\newif\ifPst@circ@transistor@type -\newif\ifPst@circ@transformer@iprimary -\newif\ifPst@circ@transformer@isecondary -\newif\ifPst@circ@variable -% -\newif\ifPst@circ@logic@showDot % hv -\newif\ifPst@circ@logic@showNode % hv -\newif\ifPst@circ@logic@changeLR % hv -% -\def\pst@string@dipole@convention@receptor{receptor} -\def\pst@string@dipole@convention@generator{generator} -\def\pst@string@transistor@type@PNP{PNP} -\def\pst@string@transistor@type@NPN{NPN} +\newdimen\Pst@position +% +\newcount\pst@count@i +\newcount\pst@count@ii +\newcount\pst@count@iii +% +\newif\ifPst@intensity +\newif\ifPst@tension +\newif\ifPst@Dconvention +\newif\ifPst@direct@convention +\newif\ifPst@parallel +\newif\ifPst@parallel@node +\newif\ifPst@wire@intersect +\newif\ifPst@OA@perfect +\newif\ifPst@OA@power +\newif\ifPst@OA@invert +\newif\ifPst@OA@iplus +\newif\ifPst@OA@iminus +\newif\ifPst@OA@iout +\newif\ifPst@T@circle% hv 2003-07-23 +\newif\ifPst@T@invert +\newif\ifPst@T@iB +\newif\ifPst@T@iC +\newif\ifPst@T@iE +\newif\ifPst@T@changeLR +\newif\ifPst@Ttype +\newif\ifPst@FETchanneltype% Ted +\newif\ifPst@Trafo@iprimary +\newif\ifPst@Trafo@isecondary +\newif\ifPst@variable +% +\newif\ifPst@logic@showDot % hv +\newif\ifPst@logic@showNode % hv +\newif\ifPst@logic@changeLR % hv +% +\def\pst@Dconvention@receptor{receptor} +\def\pst@Dconvention@generator{generator} +\def\pst@Ttype@PNP{PNP} +\def\pst@Ttype@NPN{NPN} +\def\pst@Ttype@FET{FET} +\def\pst@FETchanneltype@P{P}% Ted +\def\pst@FETchanneltype@N{N}% Ted % start Herbert 2003-07-17 -\def\pst@string@dipole@style@thyristor{thyristor} -\def\pst@string@dipole@style@GTO{GTO} -\def\pst@string@dipole@style@triac{triac} +\def\pst@Dstyle@varistor{varistor} +\def\pst@Dstyle@thyristor{thyristor} +\def\pst@Dstyle@GTO{GTO} +\def\pst@Dstyle@triac{triac} +\def\pst@Dstyle@Z{Z} % end Herbert 2003-07-17 -\def\pst@string@dipole@style@normal{normal} -\def\pst@string@dipole@style@chemical{chemical} -\def\pst@string@dipole@style@elektor{elektor} -\def\pst@string@dipole@style@elektorchemical{elektorchemical} -\def\pst@string@dipole@style@elektorcurved{elektorcurved} -\def\pst@string@dipole@style@curved{curved} -\def\pst@string@dipole@style@rectangle{rectangle} -\def\pst@string@dipole@style@open{open} -\def\pst@string@dipole@style@close{close} -\def\pst@string@dipole@style@zigzag{zigzag} -\def\pst@string@tripole@style@left{left} -\def\pst@string@tripole@style@right{right} -\def\pst@string@tripole@style@center{center} -\def\pst@string@tripole@style@french{french} -% -\define@key{psset}{intensity}[true]{\@nameuse{Pst@circ@intensity#1}} -\define@key{psset}{intensitylabel}{\edef\psk@circ@intensity@label{#1}} -\define@key{psset}{intensitylabelcolor}{\edef\psk@circ@intensity@labelcolor{#1}} -\define@key{psset}{intensitylabeloffset}{\edef\psk@circ@intensity@label@offset{#1}} -\define@key{psset}{intensitycolor}{\edef\psk@circ@intensity@color{#1}} -\define@key{psset}{intensitywidth}{\edef\psk@circ@intensity@width{#1}} -\define@key{psset}{tension}[true]{\@nameuse{Pst@circ@tension#1}} -\define@key{psset}{tensionlabel}{\edef\psk@circ@tension@label{#1}} -\define@key{psset}{tensionlabelcolor}{\edef\psk@circ@tension@labelcolor{#1}} -\define@key{psset}{tensionoffset}{\edef\psk@circ@tension@offset{#1}} -\define@key{psset}{tensionlabeloffset}{\edef\psk@circ@tension@label@offset{#1}} -\define@key{psset}{tensioncolor}{\def\psk@circ@tension@color{#1}} -\define@key{psset}{tensionwidth}{\edef\psk@circ@tension@width{#1}} -\define@key{psset}{labeloffset}{\edef\psk@circ@label@offset{#1}} -\define@key{psset}{labelangle}{\edef\psk@circ@label@angle{#1}} -\define@key{psset}{dipoleconvention}{\edef\psk@circ@dipole@convention{#1}} -\define@key{psset}{directconvention}[true]{\@nameuse{Pst@circ@direct@convention#1}} -\define@key{psset}{dipolestyle}{\edef\psk@circ@dipole@style{#1}} -\define@key{psset}{parallel}[true]{\@nameuse{Pst@circ@parallel#1}} -\define@key{psset}{parallelarm}{\edef\psk@circ@parallel@arm{#1}} -\define@key{psset}{parallelsep}{\edef\psk@circ@parallel@sep{#1}} -\define@key{psset}{parallelnode}[true]{\@nameuse{Pst@circ@parallel@node#1}} -\define@key{psset}{intersect}[true]{\@nameuse{Pst@circ@wire@intersect#1}} -\define@key{psset}{intersectA}{\edef\psk@circ@wire@intersectA{#1}} -\define@key{psset}{intersectB}{\edef\psk@circ@wire@intersectB{#1}} -\define@key{psset}{OAperfect}[true]{\@nameuse{Pst@circ@OA@perfect#1}} -\define@key{psset}{OAinvert}[true]{\@nameuse{Pst@circ@OA@invert#1}} -\define@key{psset}{OAiplus}[true]{\@nameuse{Pst@circ@OA@iplus#1}} -\define@key{psset}{OAiminus}[true]{\@nameuse{Pst@circ@OA@iminus#1}} -\define@key{psset}{OAiout}[true]{\@nameuse{Pst@circ@OA@iout#1}} -\define@key{psset}{OAipluslabel}{\edef\psk@circ@label@OA@iplus{#1}} -\define@key{psset}{OAiminuslabel}{\edef\psk@circ@label@OA@iminus{#1}} -\define@key{psset}{OAioutlabel}{\edef\psk@circ@label@OA@iout{#1}} -\define@key{psset}{transistorcircle}[true]{\@nameuse{Pst@circ@transistor@circle#1}}% hv 2003-07-23 -\define@key{psset}{transistorinvert}[true]{\@nameuse{Pst@circ@transistor@invert#1}} -\define@key{psset}{transistoribase}[true]{\@nameuse{Pst@circ@transistor@ibase#1}} -\define@key{psset}{transistoricollector}[true]{\@nameuse{Pst@circ@transistor@icollector#1}} -\define@key{psset}{transistoriemitter}[true]{\@nameuse{Pst@circ@transistor@iemitter#1}} -\define@key{psset}{transistoribaselabel}{\edef\psk@circ@label@transistor@ibase{#1}} -\define@key{psset}{transistoricollectorlabel}{\edef\psk@circ@label@transistor@icollector{#1}} -\define@key{psset}{transistoriemitterlabel}{\edef\psk@circ@label@transistor@iemitter{#1}} -\define@key{psset}{transistortype}{\edef\psk@circ@transistor@type{#1}} -\define@key{psset}{primarylabel}{\edef\psk@circ@transformer@primary@label{#1}} -\define@key{psset}{secondarylabel}{\edef\psk@circ@transformer@secondary@label{#1}} -\define@key{psset}{transformeriprimary}[true]{\@nameuse{Pst@circ@transformer@iprimary#1}} -\define@key{psset}{transformerisecondary}[true]{\@nameuse{Pst@circ@transformer@isecondary#1}} -\define@key{psset}{transformeriprimarylabel}{\edef\psk@circ@transformer@iprimary@label{#1}} -\define@key{psset}{transformerisecondarylabel}{\edef\psk@circ@transformer@isecondary@label{#1}} -\define@key{psset}{tripolestyle}{\edef\psk@circ@tripole@style{#1}} -\define@key{psset}{variable}[true]{\@nameuse{Pst@circ@variable#1}} -% -\define@key{psset}{logicChangeLR}[false]{\@nameuse{Pst@circ@logic@changeLR#1}}% hv -\define@key{psset}{logicShowDot}[false]{\@nameuse{Pst@circ@logic@showDot#1}}% hv -\define@key{psset}{logicShowNode}[false]{\@nameuse{Pst@circ@logic@showNode#1}}% hv -%\define@key{psset}{logicOrigin}{\edef\psk@circ@logic@origin{#1}}% hv -\define@key{psset}{logicWidth}{\edef\psk@circ@logic@width{#1}}% hv -\define@key{psset}{logicHeight}{\edef\psk@circ@logic@height{#1}}% hv -\define@key{psset}{logicType}{\edef\psk@circ@logic@type{#1}}% hv -\define@key{psset}{logicNInput}{\edef\psk@circ@logic@nInput{#1}}% hv -\define@key{psset}{logicJInput}{\edef\psk@circ@logic@JInput{#1}}% hv -\define@key{psset}{logicKInput}{\edef\psk@circ@logic@KInput{#1}}% hv -\define@key{psset}{logicWireLength}{\edef\psk@circ@logic@wireLength{#1}}% hv -\define@key{psset}{logicLabelstyle}{\edef\psk@circ@logic@labelstyle{\noexpand #1}}% hv -\define@key{psset}{logicSymbolstyle}{\edef\psk@circ@logic@symbolstyle{\noexpand #1}}% hv -\define@key{psset}{logicSymbolpos}{\edef\psk@circ@logic@symbolpos{#1}}% hv -\define@key{psset}{logicNodestyle}{\edef\psk@circ@logic@nodestyle{\noexpand #1}}% hv -% -\def\pst@string@logic@type@and{and} -\def\pst@string@logic@type@or{or} -\def\pst@string@logic@type@nand{nand} -\def\pst@string@logic@type@nor{nor} -\def\pst@string@logic@type@not{not} -\def\pst@string@logic@type@exor{exor} -\def\pst@string@logic@type@exnor{exnor} -% -\def\pst@string@logic@type@RS{RS} -\def\pst@string@logic@type@D{D} -\def\pst@string@logic@type@JK{JK} -% -\setkeys{psset}{% - intensity=false,intensitylabel=\empty,intensitylabeloffset=0.5, +\def\pst@Dstyle@normal{normal} +\def\pst@Dstyle@chemical{chemical} +\def\pst@Dstyle@elektor{elektor} +\def\pst@Dstyle@elektorchemical{elektorchemical} +\def\pst@Dstyle@elektorcurved{elektorcurved} +\def\pst@Dstyle@curved{curved} +\def\pst@Dstyle@rectangle{rectangle} +\def\pst@Dstyle@open{open} +\def\pst@Dstyle@close{close} +\def\pst@Dstyle@zigzag{zigzag} +\def\pst@Dstyle@diamond{diamond} +\def\pst@tripole@style@left{left} +\def\pst@tripole@style@right{right} +\def\pst@tripole@style@center{center} +\def\pst@tripole@style@french{french} +% +\define@key[psset]{pst-circ}{intensity}[true]{\@nameuse{Pst@intensity#1}} +\define@key[psset]{pst-circ}{intensitylabel}{\def\psk@I@label{#1}} +\define@key[psset]{pst-circ}{intensitylabelcolor}{\def\psk@I@labelcolor{#1}} +\define@key[psset]{pst-circ}{intensitylabeloffset}{\def\psk@I@label@offset{#1}} +\define@key[psset]{pst-circ}{intensitycolor}{\def\psk@I@color{#1}} +\define@key[psset]{pst-circ}{intensitywidth}{\def\psk@I@width{#1}} +\define@key[psset]{pst-circ}{tension}[true]{\@nameuse{Pst@tension#1}} +\define@key[psset]{pst-circ}{tensionlabel}{\def\psk@tension@label{#1}} +\define@key[psset]{pst-circ}{tensionlabelcolor}{\def\psk@tension@labelcolor{#1}} +\define@key[psset]{pst-circ}{tensionoffset}{\def\psk@tension@offset{#1}} +\define@key[psset]{pst-circ}{tensionlabeloffset}{\def\psk@tension@label@offset{#1}} +\define@key[psset]{pst-circ}{tensioncolor}{\def\psk@tension@color{#1}} +\define@key[psset]{pst-circ}{tensionwidth}{\def\psk@tension@width{#1}} +\define@key[psset]{pst-circ}{labeloffset}{\def\psk@label@offset{#1}} +\define@key[psset]{pst-circ}{labelangle}{\def\psk@label@angle{#1}} +\define@key[psset]{pst-circ}{labelInside}{\def\psk@labelInside{#1}} +\define@key[psset]{pst-circ}{dipoleconvention}{\def\psk@Dconvention{#1}} +\define@key[psset]{pst-circ}{directconvention}[true]{\@nameuse{Pst@direct@convention#1}} +\define@key[psset]{pst-circ}{dipolestyle}{\def\psk@Dstyle{#1}} +\define@key[psset]{pst-circ}{parallel}[true]{\@nameuse{Pst@parallel#1}} +\define@key[psset]{pst-circ}{parallelarm}{\def\psk@parallel@arm{#1}} +\define@key[psset]{pst-circ}{parallelsep}{\def\psk@parallel@sep{#1}} +\define@key[psset]{pst-circ}{parallelnode}[true]{\@nameuse{Pst@parallel@node#1}} +\define@key[psset]{pst-circ}{intersect}[true]{\@nameuse{Pst@wire@intersect#1}} +\define@key[psset]{pst-circ}{intersectA}{\def\psk@wire@intersectA{#1}} +\define@key[psset]{pst-circ}{intersectB}{\def\psk@wire@intersectB{#1}} +\define@key[psset]{pst-circ}{OAperfect}[true]{\@nameuse{Pst@OA@perfect#1}} +\define@key[psset]{pst-circ}{OApower}[true]{\@nameuse{Pst@OA@power#1}} +\define@key[psset]{pst-circ}{OAinvert}[true]{\@nameuse{Pst@OA@invert#1}} +\define@key[psset]{pst-circ}{OAiplus}[true]{\@nameuse{Pst@OA@iplus#1}} +\define@key[psset]{pst-circ}{OAiminus}[true]{\@nameuse{Pst@OA@iminus#1}} +\define@key[psset]{pst-circ}{OAiout}[true]{\@nameuse{Pst@OA@iout#1}} +\define@key[psset]{pst-circ}{OAipluslabel}{\def\psk@label@OA@iplus{#1}} +\define@key[psset]{pst-circ}{OAiminuslabel}{\def\psk@label@OA@iminus{#1}} +\define@key[psset]{pst-circ}{OAioutlabel}{\def\psk@label@OA@iout{#1}} +\define@key[psset]{pst-circ}{transistorcircle}[true]{\@nameuse{Pst@T@circle#1}}% hv 2003-07-23 +\define@key[psset]{pst-circ}{transistorinvert}[true]{\@nameuse{Pst@T@invert#1}} +\define@key[psset]{pst-circ}{transistoribase}[true]{\@nameuse{Pst@T@iB#1}} +\define@key[psset]{pst-circ}{transistoricollector}[true]{\@nameuse{Pst@T@iC#1}} +\define@key[psset]{pst-circ}{transistoriemitter}[true]{\@nameuse{Pst@T@iE#1}} +\define@key[psset]{pst-circ}{transistoribaselabel}{\def\psk@labelT@iB{#1}} +\define@key[psset]{pst-circ}{transistoricollectorlabel}{\def\psk@labelT@iC{#1}} +\define@key[psset]{pst-circ}{transistoriemitterlabel}{\def\psk@labelT@iE{#1}} +\define@key[psset]{pst-circ}{FETchanneltype}{\def\psk@FETchanneltype{#1}}% Ted 2007-10-15 +\define@key[psset]{pst-circ}{transistortype}{% + \def\psk@Ttype{#1}% + \ifx\psk@Ttype\pst@Ttype@FET\relax\@nameuse{Pst@T@circlefalse}\fi} +\newdimen\Pst@basesep +\define@key[psset]{pst-circ}{basesep}{\pst@getlength{#1}\Pst@basesep} +\define@key[psset]{pst-circ}{TRot}{\pst@checknum{#1}\Pst@TRot} +\define@key[psset]{pst-circ}{edge}{% + \def\psedge{#1}% + \ifx\psedge\@none\def\psedge##1##2{}\fi% +} +% +\define@key[psset]{pst-circ}{primarylabel}{\def\psk@Trafo@primary@label{#1}} +\define@key[psset]{pst-circ}{secondarylabel}{\def\psk@Trafo@secondary@label{#1}} +\define@key[psset]{pst-circ}{transformeriprimary}[true]{\@nameuse{Pst@Trafo@iprimary#1}} +\define@key[psset]{pst-circ}{transformerisecondary}[true]{\@nameuse{Pst@Trafo@isecondary#1}} +\define@key[psset]{pst-circ}{transformeriprimarylabel}{\def\psk@Trafo@iprimary@label{#1}} +\define@key[psset]{pst-circ}{transformerisecondarylabel}{\def\psk@Trafo@isecondary@label{#1}} +\define@key[psset]{pst-circ}{tripolestyle}{\def\psk@tripole@style{#1}} +\define@key[psset]{pst-circ}{variable}[true]{\@nameuse{Pst@variable#1}} +% +\define@key[psset]{pst-circ}{logicChangeLR}[false]{\@nameuse{Pst@logic@changeLR#1}}% hv +\define@key[psset]{pst-circ}{logicShowDot}[false]{\@nameuse{Pst@logic@showDot#1}}% hv +\define@key[psset]{pst-circ}{logicShowNode}[false]{\@nameuse{Pst@logic@showNode#1}}% hv +%\define@key[psset]{pst-circ}{logicOrigin}{\def\psk@logic@origin{#1}}% hv +\define@key[psset]{pst-circ}{logicWidth}{\def\psk@logic@width{#1}}% hv +\define@key[psset]{pst-circ}{logicHeight}{\def\psk@logic@height{#1}}% hv +\define@key[psset]{pst-circ}{logicType}{\def\psk@logic@type{#1}}% hv +\define@key[psset]{pst-circ}{logicNInput}{\def\psk@logic@nInput{#1}}% hv +\define@key[psset]{pst-circ}{logicJInput}{\def\psk@logic@JInput{#1}}% hv +\define@key[psset]{pst-circ}{logicKInput}{\def\psk@logic@KInput{#1}}% hv +\define@key[psset]{pst-circ}{logicWireLength}{\def\psk@logic@wireLength{#1}}% hv +\define@key[psset]{pst-circ}{logicLabelstyle}{\def\psk@logic@labelstyle{#1}}% hv +\define@key[psset]{pst-circ}{logicSymbolstyle}{\def\psk@logic@symbolstyle{#1}}% hv +\define@key[psset]{pst-circ}{logicSymbolpos}{\def\psk@logic@symbolpos{#1}}% hv +\define@key[psset]{pst-circ}{logicNodestyle}{\def\psk@logic@nodestyle{#1}}% hv +% +\def\pst@logic@type@and{and} +\def\pst@logic@type@or{or} +\def\pst@logic@type@nand{nand} +\def\pst@logic@type@nor{nor} +\def\pst@logic@type@not{not} +\def\pst@logic@type@exor{exor} +\def\pst@logic@type@exnor{exnor} +% +\def\pst@logic@type@RS{RS} +\def\pst@logic@type@D{D} +\def\pst@logic@type@JK{JK} +% +\psset{% + labelInside=0,% + intensity=false,intensitylabel=\@empty,intensitylabeloffset=0.5, intensitycolor=black,intensitylabelcolor=black,intensitywidth=\pslinewidth, - tension=false,tensionlabel=\empty,tensionoffset=1,tensionlabeloffset=1.2, + tension=false,tensionlabel=\@empty,tensionoffset=1,tensionlabeloffset=1.2, tensioncolor=black,tensionlabelcolor=black,tensionwidth=\pslinewidth, labeloffset=0.7,labelangle=0,dipoleconvention=receptor,directconvention=true,dipolestyle=normal parallel=false,parallelarm=1.5,parallelsep=0,parallelnode=false, intersect=false,OAperfect=true,OAinvert=true, - OAiplus=false,OAiminus=false,OAiout=false,OAipluslabel=\empty, - OAiminuslabel=\empty,OAioutlabel=\empty, + OAiplus=false,OAiminus=false,OAiout=false,OAipluslabel=\@empty, + OAiminuslabel=\@empty,OAioutlabel=\@empty,OApower=false,% transistorcircle=true, transistorinvert=false, % hv 2003-07-23 - transistoribase=false,transistoricollector=false,transistoriemitter=false,transistoribaselabel=\empty, - transistoricollectorlabel=\empty,transistoriemitterlabel=\empty, - transistortype=PNP, - primarylabel=\empty,secondarylabel=\empty,transformeriprimary=false,transformerisecondary=false, - transformeriprimarylabel=\empty,transformerisecondarylabel=\empty, - tripolestyle=normal,variable=false,% + transistoribase=false,transistoricollector=false,transistoriemitter=false,% + transistoribaselabel=\@empty,basesep=0pt,edge=\pcangle,% + transistoricollectorlabel=\@empty,transistoriemitterlabel=\@empty, + transistortype=NPN,TRot=0,% + primarylabel=\@empty,secondarylabel=\@empty,transformeriprimary=false,transformerisecondary=false, + transformeriprimarylabel=\@empty,transformerisecondarylabel=\@empty, + tripolestyle=normal,variable=false,% logicShowDot=false, logicShowNode=false, logicChangeLR=false,% hv logicWireLength=0.5, logicWidth=1.5, logicHeight=2.5, % hv logicNInput=2, logicJInput=2, logicKInput=2, logicType=and,% hv - logicLabelstyle=\small, logicSymbolstyle=\large, + logicLabelstyle=\small, logicSymbolstyle=\large, logicSymbolpos=0.5,logicNodestyle=\footnotesize}% hv % +\newpsstyle{baseOpt}{edge=\pcline,arrows=-,arm=.5,angleA=0,angleB=180} +\newpsstyle{emitterOpt}{arrows=-,arm=.5,angleA=180,angleB=-90}% +\newpsstyle{collectorOpt}{arrows=-,arm=.5,angleA=180,angleB=90} +% \def\wire{\@ifnextchar[{\pst@draw@wire}{\pst@draw@wire[]}} % \def\tension{\@ifnextchar[{\pst@draw@tension@}{\pst@draw@tension@[]}} % \def\resistor{\@ifnextchar[{\pst@resistor}{\pst@resistor[]}} -% \def\pst@resistor[#1](#2)(#3)#4{{% - \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@resistor + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@resistor% }\ignorespaces} % \def\capacitor{\@ifnextchar[{\pst@capacitor}{\pst@capacitor[]}} -% \def\pst@capacitor[#1](#2)(#3)#4{{% - \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@capacitor + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@capacitor% }\ignorespaces} % \def\battery{\@ifnextchar[{\pst@battery}{\pst@battery[]}} -% \def\pst@battery[#1](#2)(#3)#4{{% - \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@battery + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@battery% }\ignorespaces} % \def\coil{\@ifnextchar[{\pst@coil}{\pst@coil[]}} -% \def\pst@coil[#1](#2)(#3)#4{{% - \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@coil + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@coil% }\ignorespaces} % \def\Ucc{\@ifnextchar[{\pst@Ucc}{\pst@Ucc[]}} -% \def\pst@Ucc[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@Ucc }\ignorespaces} % \def\Icc{\@ifnextchar[{\pst@Icc}{\pst@Icc[]}} -% \def\pst@Icc[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@Icc }\ignorespaces} % \def\switch{\@ifnextchar[{\pst@switch}{\pst@switch[]}} -% \def\pst@switch[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@switch }\ignorespaces} % \def\diode{\@ifnextchar[{\pst@diode}{\pst@diode[]}} -% \def\pst@diode[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@diode }\ignorespaces} % \def\Zener{\@ifnextchar[{\pst@Zener}{\pst@Zener[]}} -% \def\pst@Zener[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@Zener }\ignorespaces} % \def\lamp{\@ifnextchar[{\pst@lamp}{\pst@lamp[]}} -% \def\pst@lamp[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@lamp }\ignorespaces} % \def\circledipole{\@ifnextchar[{\pst@circledipole}{\pst@circledipole[]}} -% \def\pst@circledipole[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@circledipole }\ignorespaces} % \def\LED{\@ifnextchar[{\pst@LED}{\pst@LED[]}} -% \def\pst@LED[#1](#2)(#3)#4{{% \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@LED }\ignorespaces} % -\def\OA{\@ifnextchar[{\pst@OA}{\pst@OA[]}} -% -\def\pst@OA[#1](#2)(#3)(#4){{% - \setkeys{psset}{#1,dimen=middle}% - \if\psk@circ@label@OA@iplus\@empty\else - \setkeys{psset}{OAiplus=true}% - \fi - \if\psk@circ@label@OA@iminus\@empty\else - \setkeys{psset}{OAiminus=true}% - \fi - \if\psk@circ@label@OA@iout\@empty\else - \setkeys{psset}{OAiout=true}% - \fi - \ifPst@circ@intensity - \setkeys{psset}{OAiplus=true,OAiminus=true,OAiout=true}% - \fi - \pst@getcoor{#2}\pst@tempa - \pst@getcoor{#3}\pst@tempb - \pst@getcoor{#4}\pst@tempc +% pd start ==================================================== +\def\dashpot{\@ifnextchar[{\pst@dashpot}{\pst@dashpot[]}} +\def\pst@dashpot[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@dashpot + }\ignorespaces} +% pd end ====================================================== +% +\def\OA{\pst@object{OA}} +\def\OA@i(#1)(#2)(#3){% + \addbefore@par{dimen=middle}% + \begin@ClosedObj% + \if\psk@label@OA@iplus\@empty\else\psset{OAiplus=true}\fi% + \if\psk@label@OA@iminus\@empty\else\psset{OAiminus=true}\fi% + \if\psk@label@OA@iout\@empty\else\psset{OAiout=true}\fi% + \ifPst@intensity\psset{OAiplus=true,OAiminus=true,OAiout=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 @@ -308,77 +318,127 @@ /YC Y1 Y2 add 2 div def XC YC){C@} \rput(C@){\pst@draw@OA} - \ncangle[arm=.5,angleA=0,angleB=180]{#2}{\ifPst@circ@OA@invert Minus@\else Plus@\fi} - \ncput[npos=2]{\pnode{\ifPst@circ@OA@invert Minus@@\else Plus@@\fi}} - \ifPst@circ@OA@iplus - \ifPst@circ@OA@invert\else + \ncangle[arrows=-,arm=.5,angleA=0,angleB=180]{#1}{\ifPst@OA@invert Minus@\else Plus@\fi} + \ncput[npos=2]{\pnode{\ifPst@OA@invert Minus@@\else Plus@@\fi}} + \ifPst@OA@iplus + \ifPst@OA@invert\else \ncput[npos=2.5]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@OA@iplus} + \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@OA@iplus} \fi \fi - \ifPst@circ@OA@iminus - \ifPst@circ@OA@invert + \ifPst@OA@iminus + \ifPst@OA@invert \ncput[npos=2.5]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@OA@iminus} + \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@OA@iminus} \fi \fi - \ncangle[arm=.5,angleA=0,angleB=180]{#3}{\ifPst@circ@OA@invert Plus@\else Minus@\fi} - \ncput[npos=2]{\pnode{\ifPst@circ@OA@invert Plus@@\else Minus@@\fi}} - \ifPst@circ@OA@iplus - \ifPst@circ@OA@invert + \ncangle[arrows=-,arm=.5,angleA=0,angleB=180]{#2}{\ifPst@OA@invert Plus@\else Minus@\fi} + \ncput[npos=2]{\pnode{\ifPst@OA@invert Plus@@\else Minus@@\fi}} + \ifPst@OA@iplus + \ifPst@OA@invert \ncput[npos=2.5]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \nbput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@OA@iplus} + \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@OA@iplus} \fi \fi - \ifPst@circ@OA@iminus - \ifPst@circ@OA@invert\else + \ifPst@OA@iminus + \ifPst@OA@invert\else \ncput[npos=2.5]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \nbput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@OA@iminus} + \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@OA@iminus} \fi \fi - \ncangle[arm=.5,angleA=180,angleB=0]{#4}{S@} + \ncangle[arrows=-,arm=.5,angleA=180,angleB=0]{#3}{S@} \ncput[npos=2]{\pnode{S@@}} - \ifPst@circ@OA@iout + \ifPst@OA@iout \ncput[npos=2.5]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@OA@iout} + \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@OA@iout} \fi - }\ignorespaces} -% -\def\transistor{\@ifnextchar[{\pst@transistor}{\pst@transistor[]}} + \psline[linestyle=none](#1)(#2)% for the end arrows + \psline[linestyle=none](#1)(#3)% for the end arrows + \end@ClosedObj + \ignorespaces% +} % -\def\pst@transistor[#1](#2)(#3)(#4){{% - \setkeys{psset}{#1,dimen=middle}% - \ifx\psk@circ@transistor@type\pst@string@transistor@type@PNP - \Pst@circ@transistor@typetrue +\newif\ifPst@temp +\def\transistor{\@ifnextchar[{\transistor@i}{\transistor@i[]}} +\def\transistor@i[#1](#2){% + \begingroup + \psset{#1} + \@ifnextchar({\transistor@iii(#2)}{\Pst@tempfalse\transistor@ii(#2)}} +% +\def\transistor@ii(#1)#2#3{% with one node, the base + \pst@killglue% + \ifPst@temp\pnode(#1){TBaseNode}% + \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% + \rput{\Pst@TRot}(TBaseNode){% + \ifPst@T@circle\pscircle(0.3,0){0.7}\fi + \ifx\psk@Ttype\pst@Ttype@FET\relax% + \psline[arrows=-,linewidth=\psk@I@width](0,0.5)(0,-0.5) + \else + \psline[arrows=-,linewidth=4\pslinewidth](0,0.4)(0,-0.4) + \fi + \ifnum180=\Pst@TRot\relax% + \ifx\psk@Ttype\pst@Ttype@FET\relax% + \ifPst@T@invert\pnode(0.65,-0.5){#2}\else\pnode(0.65,-0.5){#3}\fi% + \ifPst@T@invert\pnode(0.65,0.5){#3}\else\pnode(0.65,0.5){#2}\fi% + \else + \ifPst@T@invert\pnode(0.5,-0.5){#2}\else\pnode(0.5,-0.5){#3}\fi% + \ifPst@T@invert\pnode(0.5,0.5){#3}\else\pnode(0.5,0.5){#2}\fi% + \fi + \else% + \ifx\psk@Ttype\pst@Ttype@FET\relax% + \ifPst@T@invert\pnode(0.65,0.5){#2}\else\pnode(0.65,0.5){#3}\fi% + \ifPst@T@invert\pnode(0.65,-0.5){#3}\else\pnode(0.65,-0.5){#2}\fi% + \else + \ifPst@T@invert\pnode(0.5,0.5){#2}\else\pnode(0.5,0.5){#3}\fi% + \ifPst@T@invert\pnode(0.5,-0.5){#3}\else\pnode(0.5,-0.5){#2}\fi% + \fi + \fi% + \ifx\psk@Ttype\pst@Ttype@FET\relax% + \psline[arrows=-](0.65,0.5)(0.15,0.5)(0.15,-0.5)(0.65,-0.5) + \else + \psline[arrows=-](0.5,0.5)(0,0)(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 + \psline[origin={#3},arrowinset=0,arrowsize=8\pslinewidth]{->}(-0.5,0) + \else% + \psline[origin={#2},arrowinset=0,arrowsize=8\pslinewidth]{<-}(-0.5,0) + \fi% \else - \Pst@circ@transistor@typefalse - \fi - \if\psk@circ@label@transistor@ibase\@empty\else - \setkeys{psset}{transistoribase=true}% - \fi - \if\psk@circ@label@transistor@iemitter\@empty\else - \setkeys{psset}{transistoriemitter=true}% - \fi - \if\psk@circ@label@transistor@icollector\@empty\else - \setkeys{psset}{transistoricollector=true}% + \ifx\psk@Ttype\pst@Ttype@PNP\relax% + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(#3)(TBaseNode) + \else% + \psline[arrowinset=0,arrowsize=8\pslinewidth]{->}(TBaseNode)(#2) + \fi% \fi - \ifPst@circ@intensity - \setkeys{psset}{transistoribase=true, - transistoriemitter=true,transistoricollector=true}% - \fi - \pst@getcoor{#2}\pst@tempa - \pst@getcoor{#3}\pst@tempb - \pst@getcoor{#4}\pst@tempc + \ifPst@temp\else\endgroup\fi% + \ignorespaces% +} +% +\def\transistor@iii(#1)(#2)(#3){% with three nodes + \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 @@ -386,63 +446,78 @@ /X2 exch \pst@number\psxunit div def \pst@tempc /Y3 exch \pst@number\psyunit div def /X3 exch \pst@number\psxunit div def - /XC X2 X3 lt {X1 X2} {X1 X3} ifelse add 2 div def - /YC Y2 Y3 add 2 div def - XC YC){C@} - \rput(C@){\pst@draw@transistor} - \ncangle[arm=.5,angleA=0,angleB=180]{#2}{base@} - \ncput[npos=2]{\pnode{base@@}} - \ifPst@circ@transistor@ibase - \ncput[npos=2.5]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@transistor@ibase} - \fi - \ncangle[arm=.5,angleA=0,angleB=90]{#3}{\ifPst@circ@transistor@invert emitter@\else collector@\fi} - \ncput[npos=2]{\pnode{\ifPst@circ@transistor@invert emitter@@\else collector@@\fi}} - \ifPst@circ@transistor@iemitter - \ifPst@circ@transistor@invert - \ncput[npos=2.5,nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \nbput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@transistor@iemitter} - \fi - \fi - \ifPst@circ@transistor@icollector - \ifPst@circ@transistor@invert\else - \ncput[npos=2.5,nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \nbput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@transistor@icollector} - \fi - \fi - \ncangle[arm=.5,angleA=0,angleB=-90]{#4}{\ifPst@circ@transistor@invert collector@\else emitter@\fi} - \ncput[npos=2]{\pnode{\ifPst@circ@transistor@invert collector@@\else emitter@@\fi}} - \ifPst@circ@transistor@iemitter - \ifPst@circ@transistor@invert\else - \ncput[npos=2.5,nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@transistor@iemitter} - \fi - \fi - \ifPst@circ@transistor@icollector - \ifPst@circ@transistor@invert - \ncput[npos=2.5,nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@label@transistor@icollector} - \fi - \fi - }\ignorespaces} -% -\def\Tswitch{\@ifnextchar[{\pst@Tswitch}{\pst@Tswitch[]}} + /LR X1 X2 lt { false }{ true } ifelse def % change left-right + /basesep \Pst@basesep\space \pst@number\psxunit div def + /XBase X1 basesep \Pst@TRot\space cos mul add def + /YBase Y1 basesep \Pst@TRot\space sin mul add def + XBase YBase ){@@base}% base node +% + \Pst@temptrue% + \transistor@ii(@@base){@@emitter}{@@collector}% +% + \if\psk@labelT@iB\@empty\else\psset{transistoribase=true}\fi% + \if\psk@labelT@iE\@empty\else\psset{transistoriemitter=true}\fi% + \if\psk@labelT@iC\@empty\else\psset{transistoricollector=true}\fi% + \ifPst@intensity\psset{transistoribase=true,transistoriemitter=true,transistoricollector=true}\fi% +% + \bgroup\psset{style=baseOpt}\psedge(#1)(TBaseNode)\egroup% + \ifPst@T@iB% base current? + \ncput[npos=0.5,nrot=\Pst@TRot]{% + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width,% + arrowsize=6\pslinewidth,arrowinset=0]{->}(-.1,0)(.1,0)}% + \naput[npos=0.5]{\csname\psk@I@labelcolor\endcsname\psk@labelT@iB}% + \fi% + \bgroup% + \psset{style=collectorOpt}% + \ifPst@T@invert\psedge(#3)(@@emitter)\else\psedge(#3)(@@collector)\fi% + \egroup% + \ncput[npos=2]{\pnode{\ifPst@T@invert @@emitter\else @@collector\fi}}% + \ifPst@T@iE% emitter current? + \ifPst@T@invert% emitter/collector changed? + \ncput[npos=1.5,nrot=:U]{% + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width,% + arrowsize=6\pslinewidth,arrowinset=0]{->}(-0.1,0)(0.1,0)} + \nbput[npos=1.5]{\csname\psk@I@labelcolor\endcsname\psk@labelT@iE} + \fi\fi% + \ifPst@T@iC% collector current? + \ifPst@T@invert\else% emitter/collector changed? + \ncput[npos=1.5,nrot=:U]{% + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width,% + arrowsize=6\pslinewidth,arrowinset=0]{->}(-.1,0)(.1,0)} + \nbput[npos=1.5]{\csname\psk@I@labelcolor\endcsname\psk@labelT@iC} + \fi\fi% + \bgroup + \psset{style=emitterOpt} + \ifPst@T@invert\psedge(#2)(@@collector)\else\psedge(#2)(@@emitter)\fi + \egroup + \ncput[npos=2]{\pnode{\ifPst@T@invert @@collector\else @@emitter\fi}} + \ifPst@T@iE + \ifPst@T@invert\else + \ncput[npos=1.5,nrot=:U]{% + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width, + arrowsize=6\pslinewidth,arrowinset=0]{<-}(-.1,0)(.1,0)} + \naput[npos=1.5]{\csname\psk@I@labelcolor\endcsname\psk@labelT@iE} + \fi\fi% + \ifPst@T@iC% collector current? + \ifPst@T@invert% emitter/collector changed? + \ncput[npos=1.5,nrot=:U]{% + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width, + arrowsize=6\pslinewidth,arrowinset=0]{<-}(-.1,0)(.1,0)} + \naput[npos=1.5]{\csname\psk@I@labelcolor\endcsname\psk@labelT@iC} + \fi\fi + \psline[linestyle=none](#1)(#2)% for the end arrows + \psline[linestyle=none](#1)(#3)% for the end arrows + \endgroup + \ignorespaces% +} % -\def\pst@Tswitch[#1](#2)(#3)(#4)#5{{% - \setkeys{psset}{#1,dimen=middle}% - \pst@getcoor{#2}\pst@tempa - \pst@getcoor{#3}\pst@tempb - \pst@getcoor{#4}\pst@tempc +\def\Tswitch{\pst@object{Tswitch}} +\def\Tswitch@i(#1)(#2)(#3)#4{% + \addbefore@par{dimen=middle}% + \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 @@ -454,75 +529,80 @@ /YC Y2 def XC YC){C@} \rput(C@){\pst@draw@Tswitch} - \ncangle[arm=0.5,angleB=180]{#2}{Tswi@left} - \ncangle[arm=0.5,angleB=0]{#3}{Tswi@right} - \ncangle[arm=0.5,angleB=-90]{#4}{Tswi@center} - \ncline[linestyle=none,fillstyle=none]{Tswi@left}{Tswi@right} - \naput{#5} - }\ignorespaces} + \ncangle[arrows=-,arm=0.5,angleB=180]{#1}{Tswi@left} + \ncangle[arrows=-,arm=0.5,angleB=0]{#2}{Tswi@right} + \ncangle[arrows=-,arm=0.5,angleB=-90]{#3}{Tswi@center} + \ncline[arrows=-,linestyle=none,fillstyle=none]{Tswi@left}{Tswi@right} + \naput{#4} + \pcline[linestyle=none](#1)(#2)% for the endarrows + \pcline[linestyle=none](#2)(#3)% for the endarrows + \end@ClosedObj + \ignorespaces% +} % % 20030830 hv % -\def\potentiometer{\@ifnextchar[{\pst@potentiometer}{\pst@potentiometer[]}} -% -\def\pst@potentiometer[#1](#2)(#3)(#4)#5{{% - \psset{arrowsize=0.2} - \resistor[#1](#2)(#3){#5} - \psset{#1} - \pst@getcoor{#2}\pst@tempa - \pst@getcoor{#3}\pst@tempb - \pst@getcoor{#4}\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 - /dx X2 X1 sub def - /dy Y2 Y1 sub def - dx 2 div X1 add - dy 2 div Y1 add ){Center@} - \pst@getcoor{Center@}\pst@tempd - \pnode(!% - \pst@tempd /Y4 exch \pst@number\psyunit div def - /X4 exch \pst@number\psxunit div def - dx abs 0.01 lt{ - X3 Y4 - }{dy abs 0.01 lt { - X4 Y3 - }{/m dy dx div def - /x Y4 Y3 sub m X3 mul add X4 m div add m 1 m div add div def - x dup X3 sub m mul Y3 add - } ifelse - }ifelse){@tempNodeB} - \pnode(!% - /Alpha dy dx atan def - /dx Alpha sin 0.25 mul def - /dy Alpha cos 0.25 mul def - Y3 Y2 gt {X4 dx sub Y4 dy add}{X4 dx add Y4 dy sub}ifelse ){@tempNodeC} - \psline[arrows=->](#4)(@tempNodeB)(@tempNodeC) -}\ignorespaces} +\def\potentiometer{\pst@object{potentiometer}} +\def\potentiometer@i(#1)(#2)(#3)#4{% + \begin@ClosedObj + \resistor(#1)(#2){#4} + \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 + /dx X2 X1 sub def + /dy Y2 Y1 sub def + dx 2 div X1 add + dy 2 div Y1 add ){Center@} + \pst@getcoor{Center@}\pst@tempd + \pnode(!% + \pst@tempd /Y4 exch \pst@number\psyunit div def + /X4 exch \pst@number\psxunit div def + dx abs 0.01 lt{ + X3 Y4 + }{dy abs 0.01 lt { + X4 Y3 + }{/m dy dx div def + /x Y4 Y3 sub m X3 mul add X4 m div add m 1 m div add div def + x dup X3 sub m mul Y3 add + } ifelse + }ifelse){@tempNodeB} + \pnode(!% + /Alpha dy dx atan def + /dx Alpha sin 0.25 mul def + /dy Alpha cos 0.25 mul def + Y3 Y2 gt {X4 dx sub Y4 dy add}{X4 dx add Y4 dy sub}ifelse ){@tempNodeC} + \psline[arrows=->,arrowsize=0.2](#3)(@tempNodeB)(@tempNodeC) + \pcline[linestyle=none](#1)(#3)% for the endarrows + \end@ClosedObj% + \ignorespaces% +} % % quadrupoles % -\def\transformer{\@ifnextchar[{\pst@transformer}{\pst@transformer[]}} -% -\def\pst@transformer[#1](#2)(#3)(#4)(#5)#6{{% - \setkeys{psset}{#1,dimen=middle,arm=0}% - \if\psk@circ@transformer@iprimary@label\@empty\else - \setkeys{psset}{transformeriprimary=true}% +\def\transformer{\pst@object{transformer}} +\def\transformer@i(#1)(#2)(#3)(#4)#5{% + \addbefore@par{dimen=middle,arm=0}% + \begin@ClosedObj% + \if\psk@Trafo@iprimary@label\@empty\else + \psset{transformeriprimary=true}% \fi - \if\psk@circ@transformer@isecondary@label\@empty\else - \setkeys{psset}{transformerisecondary=true}% + \if\psk@Trafo@isecondary@label\@empty\else + \psset{transformerisecondary=true}% \fi - \ifPst@circ@intensity - \setkeys{psset}{transformeriprimary=true,transistorisecondary=true}% + \ifPst@intensity + \psset{transformeriprimary=true,transformerisecondary=true}% \fi - \pst@getcoor{#2}\pst@tempa - \pst@getcoor{#3}\pst@tempb - \pst@getcoor{#4}\pst@tempc - \pst@getcoor{#5}\pst@tempd + \pst@getcoor{#1}\pst@tempa + \pst@getcoor{#2}\pst@tempb + \pst@getcoor{#3}\pst@tempc + \pst@getcoor{#4}\pst@tempd \pnode(!% \pst@tempa /Y1 exch \pst@number\psyunit div def /X1 exch \pst@number\psxunit div def @@ -536,37 +616,41 @@ /YC Y1 Y3 lt {Y1} {Y3} ifelse Y2 Y4 lt {Y2} {Y4} ifelse add 2 div def XC YC){C@} \rput(C@){\pst@draw@transformer} - \ncangle[arm=0.5,angleB=90]{#2}{inup@} - \ifPst@circ@transformer@iprimary - \ncput[npos=2.5,nrot=:U]{\psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \nbput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@transformer@iprimary@label} + \ncangle[arrows=-,arm=0.5,angleB=90]{#1}{inup@} + \ifPst@Trafo@iprimary + \ncput[npos=2.5,nrot=:U]{\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@Trafo@iprimary@label} \fi - \ncangle[arm=0.5,angleB=-90]{#3}{indown@} - \ncangle[arm=0.5,angleB=90]{#4}{outup@} - \ifPst@circ@transformer@iprimary - \ncput[npos=2.5,nrot=:U]{\psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \naput[npos=2.5]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@transformer@isecondary@label} + \ncangle[arrows=-,arm=0.5,angleB=-90]{#2}{indown@} + \ncangle[arrows=-,arm=0.5,angleB=90]{#3}{outup@} + \ifPst@Trafo@iprimary + \ncput[npos=2.5,nrot=:U]{\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@Trafo@isecondary@label} \fi - \ncangle[arm=0.5,angleB=-90]{#5}{outdown@} - \ncline[linestyle=none,fillstyle=none]{indown@}{inup@} - \naput{\psk@circ@transformer@primary@label} - \ncline[linestyle=none,fillstyle=none]{outdown@}{outup@} - \nbput{\psk@circ@transformer@secondary@label} - \ncline[linestyle=none,fillstyle=none]{indown@}{outdown@} - \nbput{#6} - }\ignorespaces} + \ncangle[arrows=-,arm=0.5,angleB=-90]{#4}{outdown@} + \ncline[arrows=-,linestyle=none,fillstyle=none]{indown@}{inup@} + \naput{\psk@Trafo@primary@label} + \ncline[arrows=-,linestyle=none,fillstyle=none]{outdown@}{outup@} + \nbput{\psk@Trafo@secondary@label} + \ncline[arrows=-,linestyle=none,fillstyle=none]{indown@}{outdown@} + \nbput{#5} + \pcline[linestyle=none](#1)(#3)% for the end arrows + \pcline[linestyle=none](#2)(#4)% for the end arrows + \end@ClosedObj% + \ignorespaces% +} % % Start hv 2003-07-23 -\def\optoCoupler{\@ifnextchar[{\pst@optoCoupler}{\pst@optoCoupler[]}} -% -\def\pst@optoCoupler[#1](#2)(#3)(#4)(#5)#6{{% - \setkeys{psset}{#1,dimen=middle,arm=0}% - \pst@getcoor{#2}\pst@tempa - \pst@getcoor{#3}\pst@tempb - \pst@getcoor{#4}\pst@tempc - \pst@getcoor{#5}\pst@tempd +\def\optoCoupler{\pst@object{optoCoupler}} +\def\optoCoupler@i(#1)(#2)(#3)(#4)#5{% + \addbefore@par{dimen=middle,arm=0}% + \begin@ClosedObj% + \pst@getcoor{#1}\pst@tempa + \pst@getcoor{#2}\pst@tempb + \pst@getcoor{#3}\pst@tempc + \pst@getcoor{#4}\pst@tempd \pnode(!% \pst@tempa /Y1 exch \pst@number\psyunit div def /X1 exch \pst@number\psxunit div def @@ -580,13 +664,17 @@ /YC Y1 Y3 lt {Y1} {Y3} ifelse Y2 Y4 lt {Y2} {Y4} ifelse add 2 div def XC YC){C@} \rput(C@){\pst@draw@optoCoupler} - \ncangle[arm=0.5,angleB=90]{#2}{inup@} - \ncangle[arm=0.5,angleB=-90]{#3}{indown@} - \ncangle[arm=0.5,angleB=90]{#4}{outup@} - \ncangle[arm=0.5,angleB=-90]{#5}{outdown@} - \ncline[linestyle=none,fillstyle=none]{indown@}{outdown@} - \nbput{#6} -}\ignorespaces} + \ncangle[arrows=-,arm=0.5,angleB=90]{#1}{inup@} + \ncangle[arrows=-,arm=0.5,angleB=-90]{#2}{indown@} + \ncangle[arrows=-,arm=0.5,angleB=90]{#3}{outup@} + \ncangle[arrows=-,arm=0.5,angleB=-90]{#4}{outdown@} + \ncline[arrows=-,linestyle=none,fillstyle=none]{indown@}{outdown@} + \nbput{#5} + \pcline[linestyle=none](#1)(#3)% for the end arrows + \pcline[linestyle=none](#2)(#4)% for the end arrows + \end@ClosedObj% + \ignorespaces% +} % % The logical circuits part % @@ -594,20 +682,20 @@ % \def\ground{\@ifnextchar[{\pst@ground}{\pst@ground[]}} \def\pst@ground[#1]{% - \@ifnextchar({\pst@groundi[#1]{0}}{\pst@groundi[#1]}% + \@ifnextchar({\pst@groundi[#1]{0}}{\pst@groundi[#1]}% } \def\pst@groundi[#1]#2(#3){{% - \psset{#1}% - \rput{#2}(#3){% - \psframe[fillstyle=vlines,% - linestyle=none,% - fillstyle=none,% - hatchwidth=0.5\pslinewidth](-0.5,-0.7)(0.5,-0.5) - \psline[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,-0.5) - \psline(0,0)(0,-0.5) - \pscircle*(#3){2\pslinewidth}% - } - \ignorespaces% + \psset{#1}% + \rput{#2}(#3){% + \psframe[fillstyle=vlines,% + linestyle=none,% + fillstyle=none,% + hatchwidth=0.5\pslinewidth](-0.5,-0.7)(0.5,-0.5) + \psline[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,-0.5) + \psline(0,0)(0,-0.5) + \pscircle*(#3){2\pslinewidth}% + } + \ignorespaces% }} % % end hv 2003-08-29 @@ -616,7 +704,7 @@ \def\multidipole{\@ifnextchar[{\pst@multidipole}{\pst@multidipole[]}} % \def\pst@multidipole[#1](#2)(#3)#4{% - \setkeys{psset}{#1}% + \psset{#1}% \pst@getcoor{#2}\pst@tempa \pst@getcoor{#3}\pst@tempb \pst@Verb{% @@ -634,8 +722,8 @@ /X@length Xend Xbegin sub Yend Ybegin sub Pyth @angle cos mul Xend@ Xbegin@ lt {neg} if def /Y@length Xend Xbegin sub Yend Ybegin sub Pyth @angle sin mul Yend@ Ybegin@ lt {neg} if def grestore}% - \pst@circ@count@i=\z@ - \let\pst@multidipole@output\empty + \pst@count@i=\z@ + \let\pst@multidipole@output\@empty \ifx\resistor #4% \let\next\pst@multidipole@resistor \else @@ -674,8 +762,12 @@ \else \ifx\LED #4% \let\next\pst@multidipole@LED - \else - \let\next\ignorespaces + \else%%% pd change + \ifx\dashpot #4%%% pd change + \let\next\pst@multidipole@dashpot + \else%%% pd change + \let\next\ignorespaces + \fi%%% pd change \fi \fi \fi @@ -689,8 +781,8 @@ \fi \fi \fi - \advance\pst@circ@count@i\@ne - \advance\pst@circ@count@iii\@ne + \advance\pst@count@i\@ne + \advance\pst@count@iii\@ne \next } % @@ -733,9 +825,13 @@ \else \ifx\LED #1% \let\next\pst@multidipole@LED - \else - \let\next\ignorespaces - \pst@multidipole@output + \else%%% pd change + \ifx\dashpot #1%%% pd change + \let\next\pst@multidipole@dashpot + \else%%% pd change + \let\next\ignorespaces + \pst@multidipole@output + \fi%%% pd change \fi \fi \fi @@ -749,47 +845,68 @@ \fi \fi \fi - \advance\pst@circ@count@i\@ne - \advance\pst@circ@count@iii\@ne + \advance\pst@count@i\@ne + \advance\pst@count@iii\@ne \next } % \def\pst@multidipole@resistor{\@ifnextchar[{\pst@multidipole@resistor@}{\pst@multidipole@resistor@[]}} % \def\pst@multidipole@resistor@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i% - \advance\pst@circ@count@ii\@ne% + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i% + \advance\pst@count@ii\@ne% \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0% \pst@multidipole@def@coor% \noexpand\resistor[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname}% + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname}% }% \pst@multidipole@ } % +% pd start ==================================================== +\def\pst@multidipole@dashpot{\@ifnextchar[{\pst@multidipole@dashpot@}{\pst@multidipole@dashpot@[]}} +% +\def\pst@multidipole@dashpot@[#1]#2{% + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i% + \advance\pst@count@ii\@ne% + \toks0\expandafter{\pst@multidipole@output}% + \edef\pst@multidipole@output{% + \the\toks0% + \pst@multidipole@def@coor% + \noexpand\dashpot[#1]% + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname}% + }% + \pst@multidipole@ +} +% pd end ====================================================== \def\pst@multidipole@capacitor{\@ifnextchar[{\pst@multidipole@capacitor@}{\pst@multidipole@capacitor@[]}} % \def\pst@multidipole@capacitor@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\capacitor[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -797,19 +914,19 @@ \def\pst@multidipole@battery{\@ifnextchar[{\pst@multidipole@battery@}{\pst@multidipole@battery@[]}} % \def\pst@multidipole@battery@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\battery[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -817,19 +934,19 @@ \def\pst@multidipole@coil{\@ifnextchar[{\pst@multidipole@coil@}{\pst@multidipole@coil@[]}} % \def\pst@multidipole@coil@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\coil[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -837,19 +954,19 @@ \def\pst@multidipole@Ucc{\@ifnextchar[{\pst@multidipole@Ucc@}{\pst@multidipole@Ucc@[]}} % \def\pst@multidipole@Ucc@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\Ucc[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -857,19 +974,19 @@ \def\pst@multidipole@Icc{\@ifnextchar[{\pst@multidipole@Icc@}{\pst@multidipole@Icc@[]}} % \def\pst@multidipole@Icc@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\Icc[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -877,19 +994,19 @@ \def\pst@multidipole@switch{\@ifnextchar[{\pst@multidipole@switch@}{\pst@multidipole@switch@[]}} % \def\pst@multidipole@switch@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\switch[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -897,39 +1014,38 @@ \def\pst@multidipole@diode{\@ifnextchar[{\pst@multidipole@diode@}{\pst@multidipole@diode@[]}} % \def\pst@multidipole@diode@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\diode[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } % \def\pst@multidipole@Zener{\@ifnextchar[{\pst@multidipole@Zener@}{\pst@multidipole@Zener@[]}} -% \def\pst@multidipole@Zener@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\Zener[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -937,19 +1053,19 @@ \def\pst@multidipole@lamp{\@ifnextchar[{\pst@multidipole@lamp@}{\pst@multidipole@lamp@[]}} % \def\pst@multidipole@lamp@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\lamp[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -957,19 +1073,19 @@ \def\pst@multidipole@circledipole{\@ifnextchar[{\pst@multidipole@circledipole@}{\pst@multidipole@circledipole@[]}} % \def\pst@multidipole@circledipole@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\circledipole[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -977,19 +1093,19 @@ \def\pst@multidipole@LED{\@ifnextchar[{\pst@multidipole@LED@}{\pst@multidipole@LED@[]}} % \def\pst@multidipole@LED@[#1]#2{% - \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + \expandafter\def\csname pst@tmp@\number\pst@count@iii\endcsname{#2}% + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor \noexpand\LED[#1]% - (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% - (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% - {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname} + (! X@\the\pst@count@i\space Y@\the\pst@count@i)% + (! X@\the\pst@count@ii\space Y@\the\pst@count@ii)% + {\noexpand\csname pst@tmp@\number\pst@count@iii\endcsname} }% \pst@multidipole@ } @@ -997,209 +1113,280 @@ \def\pst@multidipole@wire{\@ifnextchar[{\pst@multidipole@wire@}{\pst@multidipole@wire@[]}} % \def\pst@multidipole@wire@[#1]{% - {\setkeys{psset}{#1}% - \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% - \pst@circ@count@ii=\pst@circ@count@i - \advance\pst@circ@count@ii\@ne + {\psset{#1}% + \ifPst@parallel\aftergroup\advance\aftergroup\pst@count@i\aftergroup\m@ne\fi}% + \pst@count@ii=\pst@count@i + \advance\pst@count@ii\@ne \toks0\expandafter{\pst@multidipole@output}% \edef\pst@multidipole@output{% \the\toks0 \pst@multidipole@def@coor - \noexpand\wire[#1](! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)(! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii) + \noexpand\wire[#1](! X@\the\pst@count@i\space Y@\the\pst@count@i)(! X@\the\pst@count@ii\space Y@\the\pst@count@ii) }% \pst@multidipole@ } % \def\pst@multidipole@def@coor{% \noexpand\pst@Verb{% - /X@\the\pst@circ@count@i\space \the\pst@circ@count@i\space 1 sub X@length \noexpand\the\pst@circ@count@i\space div mul Xbegin@ add def - /Y@\the\pst@circ@count@i\space \the\pst@circ@count@i\space 1 sub Y@length \noexpand\the\pst@circ@count@i\space div mul Ybegin@ add def - /X@\the\pst@circ@count@ii\space \the\pst@circ@count@i\space X@length \noexpand\the\pst@circ@count@i\space div mul Xbegin@ add def - /Y@\the\pst@circ@count@ii\space \the\pst@circ@count@i\space Y@length \noexpand\the\pst@circ@count@i\space div mul Ybegin@ add def + /X@\the\pst@count@i\space \the\pst@count@i\space 1 sub X@length \noexpand\the\pst@count@i\space div mul Xbegin@ add def + /Y@\the\pst@count@i\space \the\pst@count@i\space 1 sub Y@length \noexpand\the\pst@count@i\space div mul Ybegin@ add def + /X@\the\pst@count@ii\space \the\pst@count@i\space X@length \noexpand\the\pst@count@i\space div mul Xbegin@ add def + /Y@\the\pst@count@ii\space \the\pst@count@i\space Y@length \noexpand\the\pst@count@i\space div mul Ybegin@ add def }% \ignorespaces} % %%%%%%%%%%%%%%%%%%%%%%%% % +\def\pst@draw@dipole#1#2#3#4#5{% suggestion by Alain Ristow + \psset{dimen=middle}% + \psset{#1}% + \if\psk@I@label\@empty\else\psset{intensity=true}\fi + \if\psk@tension@label\@empty\else\psset{tension=true}\fi + \ifx\psk@Dconvention\pst@Dconvention@generator + \Pst@Dconventiontrue + \else + \ifx\psk@Dconvention\pst@Dconvention@receptor + \Pst@Dconventionfalse + \fi + \fi + \pcline[arrows=-,linestyle=none,fillstyle=none](#2)(#3) + \ncput[nrot=:U]{\pnode{dipole@M}} + \ifPst@parallel + \pcline[arrows=-,linestyle=none,fillstyle=none](#2)(dipole@M) + \ncput[npos=\psk@parallel@sep]{\pnode{dipole@@1}} + \pcline[arrows=-,linestyle=none,fillstyle=none](#3)(dipole@M) + \ncput[npos=\psk@parallel@sep]{\pnode{dipole@@2}} + \pcline[arrows=-,linestyle=none, + fillstyle=none, + offset=\psk@parallel@arm](dipole@@1)(dipole@@2) + \ncput[npos=0]{\pnode{dipole@@@1}} + \ncput[npos=1]{\pnode{dipole@@@2}} + \ncput[nrot=:U]{#5} + \pcline[arrows=-](dipole@@1)(dipole@@@1) + \pcline[arrows=-](dipole@@@1)(dipole@1) + \pcline[arrows=-](dipole@2)(dipole@@@2) + \pcline[arrows=-](dipole@@@2)(dipole@@2) + \ifPst@parallel@node + \pscircle*(dipole@@1){2\pslinewidth} + \pscircle*(dipole@@2){2\pslinewidth} + \fi + \pcline[arrows=-,linestyle=none, + fillstyle=none, + offset=\psk@label@offset](dipole@@@1)(dipole@@@2) + \ncput[nrot=\psk@label@angle]{#4} + \pst@intensity{dipole@@@1}{dipole@@@2} + \pst@tension{dipole@@@1}{dipole@@@2} + \else + \ncput[nrot=:U]{#5} + \pcline[arrows=-,linestyle=none, + fillstyle=none,offset=\psk@label@offset](#2)(#3) + \ncput[nrot=\psk@label@angle]{#4} + %%% + % CHANGES HERE!!! + %%% + \pcline[arrows=-C](#2)(dipole@1) + \pcline[arrows=C-](dipole@2)(#3) + \pcline[linestyle=none](#2)(#3) + \pst@intensity{#2}{#3} + \pst@tension{#2}{#3} + \fi% + }% +% +\iffalse % the original stuff \def\pst@draw@dipole#1#2#3#4#5{% - \setkeys{psset}{#1,dimen=middle}% - \if\psk@circ@intensity@label\@empty\else - \setkeys{psset}{intensity=true}% - \fi - \if\psk@circ@tension@label\@empty\else - \setkeys{psset}{tension=true}% - \fi - \ifx\psk@circ@dipole@convention\pst@string@dipole@convention@generator - \Pst@circ@dipole@conventiontrue + \psset{dimen=middle}% + \psset{#1}% + \if\psk@I@label\@empty\else\psset{intensity=true}\fi + \if\psk@tension@label\@empty\else\psset{tension=true}\fi + \ifx\psk@Dconvention\pst@Dconvention@generator + \Pst@Dconventiontrue \else - \ifx\psk@circ@dipole@convention\pst@string@dipole@convention@receptor - \Pst@circ@dipole@conventionfalse + \ifx\psk@Dconvention\pst@Dconvention@receptor + \Pst@Dconventionfalse \fi \fi - \pcline[linestyle=none,fillstyle=none](#2)(#3) + \pcline[arrows=-,linestyle=none,fillstyle=none](#2)(#3) \ncput[nrot=:U]{\pnode{dipole@M}} - \ifPst@circ@parallel - \pcline[linestyle=none,fillstyle=none](#2)(dipole@M) - \ncput[npos=\psk@circ@parallel@sep]{\pnode{dipole@@1}} - \pcline[linestyle=none,fillstyle=none](#3)(dipole@M) - \ncput[npos=\psk@circ@parallel@sep]{\pnode{dipole@@2}} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@parallel@arm](dipole@@1)(dipole@@2) + \ifPst@parallel + \pcline[arrows=-,linestyle=none,fillstyle=none](#2)(dipole@M) + \ncput[npos=\psk@parallel@sep]{\pnode{dipole@@1}} + \pcline[arrows=-,linestyle=none,fillstyle=none](#3)(dipole@M) + \ncput[npos=\psk@parallel@sep]{\pnode{dipole@@2}} + \pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk@parallel@arm](dipole@@1)(dipole@@2) \ncput[npos=0]{\pnode{dipole@@@1}} \ncput[npos=1]{\pnode{dipole@@@2}} \ncput[nrot=:U]{#5} - \pcline(dipole@@1)(dipole@@@1) - \pcline(dipole@@@1)(dipole@1) - \pcline(dipole@2)(dipole@@@2) - \pcline(dipole@@@2)(dipole@@2) - \ifPst@circ@parallel@node + \pcline[arrows=-](dipole@@1)(dipole@@@1) + \pcline[arrows=-](dipole@@@1)(dipole@1) + \pcline[arrows=-](dipole@2)(dipole@@@2) + \pcline[arrows=-](dipole@@@2)(dipole@@2) + \ifPst@parallel@node \pscircle*(dipole@@1){2\pslinewidth} \pscircle*(dipole@@2){2\pslinewidth} \fi - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@label@offset](dipole@@@1)(dipole@@@2) - \ncput[nrot=\psk@circ@label@angle]{#4} - \pst@circ@intensity{dipole@@@1}{dipole@@@2} - \pst@circ@tension{dipole@@@1}{dipole@@@2} + \pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk@label@offset](dipole@@@1)(dipole@@@2) + \ncput[nrot=\psk@label@angle]{#4} + \pst@intensity{dipole@@@1}{dipole@@@2} + \pst@tension{dipole@@@1}{dipole@@@2} \else \ncput[nrot=:U]{#5} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@label@offset](#2)(#3) - \ncput[nrot=\psk@circ@label@angle]{#4} - \pcline(#2)(dipole@1) - \pcline(dipole@2)(#3) - \pst@circ@intensity{#2}{#3} - \pst@circ@tension{#2}{#3} + \pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk@label@offset](#2)(#3) + \ncput[nrot=\psk@label@angle]{#4} + \pcline[arrows=-](#2)(dipole@1) + \pcline[arrows=-](dipole@2)(#3) + \pcline[linestyle=none](#2)(#3) + \pst@intensity{#2}{#3} + \pst@tension{#2}{#3} \fi } +\fi % -\def\pst@circ@intensity#1#2{% - \ifPst@circ@intensity - \ifPst@circ@direct@convention - \pcline[linestyle=none,fillstyle=none](#1)(dipole@1) +\def\pst@intensity#1#2{% + \ifPst@intensity + \ifPst@direct@convention + \pcline[arrows=-,linestyle=none,fillstyle=none](#1)(dipole@1) \ncput[nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@intensity@label@offset](#1)(dipole@1) - \ncput[nrot=\psk@circ@label@angle]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@intensity@label} + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk@I@label@offset](#1)(dipole@1) + \ncput[nrot=\psk@label@angle]{\csname\psk@I@labelcolor\endcsname\psk@I@label} \else - \pcline[linestyle=none,fillstyle=none](dipole@2)(#2) + \pcline[arrows=-,linestyle=none,fillstyle=none](dipole@2)(#2) \ncput[nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color,linewidth=\psk@circ@intensity@width]{<-}(-.1,0)(.1,0)} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@intensity@label@offset](dipole@2)(#2) - \ncput[nrot=\psk@circ@label@angle]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@intensity@label} + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width]{<-}(-.1,0)(.1,0)} + \pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk@I@label@offset](dipole@2)(#2) + \ncput[nrot=\psk@label@angle]{\csname\psk@I@labelcolor\endcsname\psk@I@label} \fi \fi } % -\def\pst@circ@tension#1#2{% - \ifPst@circ@tension - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@tension@offset](#1)(dipole@1) +\def\pst@tension#1#2{% + \ifPst@tension + \pcline[arrows=-,linestyle=none,fillstyle=none,% + offset=\psk@tension@offset](#1)(dipole@1) \ncput[npos=.5]{\pnode{tension@1}} - \pcline[linestyle=none,fillstyle=none,offset=-\psk@circ@tension@offset](#2)(dipole@2) + \pcline[arrows=-,linestyle=none,fillstyle=none, + offset=-\psk@tension@offset](#2)(dipole@2) \ncput[npos=.5]{\pnode{tension@2}} - \ifPst@circ@direct@convention - \ifPst@circ@dipole@convention - \pcline[linecolor=\psk@circ@tension@color, - linewidth=\psk@circ@tension@width,arrowinset=0]{<-}(tension@1)(tension@2) + \ifPst@direct@convention + \ifPst@Dconvention + \pcline[linecolor=\psk@tension@color, + linewidth=\psk@tension@width,arrowinset=0]{<-}(tension@1)(tension@2) \else - \pcline[linecolor=\psk@circ@tension@color, - linewidth=\psk@circ@tension@width,arrowinset=0]{->}(tension@1)(tension@2) + \pcline[linecolor=\psk@tension@color, + linewidth=\psk@tension@width,arrowinset=0]{->}(tension@1)(tension@2) \fi \else - \ifPst@circ@dipole@convention - \pcline[linecolor=\psk@circ@tension@color, - linewidth=\psk@circ@tension@width,arrowinset=0]{->}(tension@1)(tension@2) + \ifPst@Dconvention + \pcline[linecolor=\psk@tension@color, + linewidth=\psk@tension@width,arrowinset=0]{->}(tension@1)(tension@2) \else - \pcline[linecolor=\psk@circ@tension@color, - linewidth=\psk@circ@tension@width,arrowinset=0]{<-}(tension@1)(tension@2) + \pcline[linecolor=\psk@tension@color, + linewidth=\psk@tension@width,arrowinset=0]{<-}(tension@1)(tension@2) \fi \fi - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@tension@label@offset](dipole@1)(dipole@2) - \ncput[nrot=\psk@circ@label@angle]{% - \csname\psk@circ@tension@labelcolor\endcsname\psk@circ@tension@label} + \pcline[arrows=-,linestyle=none,fillstyle=none,% + offset=\psk@tension@label@offset](dipole@1)(dipole@2) + \ncput[nrot=\psk@label@angle]{% + \csname\psk@tension@labelcolor\endcsname\psk@tension@label} \fi } % \def\pst@draw@resistor{% - \ifx\psk@circ@dipole@style\pst@string@dipole@style@zigzag + \ifx\psk@Dstyle\pst@Dstyle@zigzag \pnode(-0.75,0){dipole@1} \pnode(0.75,0){dipole@2} \multips(-0.75,0)(0.5,0){3}% - {\psline[linewidth=1.5\pslinewidth](0,0)(0.125,0.25)(0.375,-0.25)(0.5,0)}% + {\psline[arrows=-,linewidth=1.5\pslinewidth]% + (0,0)(0.125,0.25)(0.375,-0.25)(0.5,0)}% \else \pnode(-0.5,0){dipole@1} \pnode(0.5,0){dipole@2} \psframe[linewidth=1.5\pslinewidth](-0.5,-0.25)(0.5,0.25) \fi - \ifPst@circ@variable% + \ifPst@variable% \psline{->}(-0.5,-0.55)(0.5,0.55)% \fi + \ifx\psk@Dstyle\pst@Dstyle@varistor + \psline[linewidth=0.8pt](-0.75,-0.55)(-0.5,-0.55)(0.5,0.55)% + \fi } % +% pd start ==================================================== +\def\pst@draw@dashpot{% + \pnode(0,0){dipole@1}% + \pnode(0.5,0){dipole@2}% + \psline[linewidth=1.5\pslinewidth]% + (-0.5,-0.5)(0.5,-0.5)(0.5,0.5)(-0.5,0.5)% + \psline[linewidth=1.5\pslinewidth](0,-0.4)(0,0.4)% +} +% pd end ====================================================== \def\pst@draw@capacitor{% \bgroup \psset{linewidth=1.5\pslinewidth}% - \ifx\psk@circ@dipole@style\pst@string@dipole@style@chemical - \psline(-0.2,-0.5)(-0.2,0.5) - \psarc(1.1875,0){1.0625}{154.8}{205.2} + \ifx\psk@Dstyle\pst@Dstyle@chemical + \psline[arrows=-](-0.2,-0.5)(-0.2,0.5) + \psarc[arrows=-](1.1875,0){1.0625}{154.8}{205.2} \pnode(-0.2,0){dipole@1} \pnode(0.125,0){dipole@2} \else - \ifx\psk@circ@dipole@style\pst@string@dipole@style@elektorchemical + \ifx\psk@Dstyle\pst@Dstyle@elektorchemical \psframe[framearc=0.01,dimen=outer](-0.2284123,0.2743733)(-0.0557103,-0.2743733) \psframe[framearc=0.01,dimen=outer,fillstyle=solid,fillcolor=black](0.0557103,0.2743733)(0.2284123,-0.2743733) \pnode(-0.2284123,0){dipole@1} \pnode(0.2284123,0){dipole@2} \else - \ifx\psk@circ@dipole@style\pst@string@dipole@style@elektor + \ifx\psk@Dstyle\pst@Dstyle@elektor \psframe[framearc=0.01,dimen=outer,fillstyle=solid,fillcolor=black](-0.2284123,0.2743733)(-0.0557103,-0.2743733) \psframe[framearc=0.01,dimen=outer,fillstyle=solid,fillcolor=black](0.0557103,0.2743733)(0.2284123,-0.2743733) \pnode(-0.2284123,0){dipole@1} \pnode(0.2284123,0){dipole@2} \else - \psline(-0.2,-0.5)(-0.2,0.5) - \psline(0.2,-0.5)(0.2,0.5) + \psline[arrows=-](-0.2,-0.5)(-0.2,0.5) + \psline[arrows=-](0.2,-0.5)(0.2,0.5) \pnode(-0.2,0){dipole@1} \pnode(0.2,0){dipole@2} \fi \fi \fi - \ifPst@circ@variable% - \psline{->}(-0.5,-0.55)(0.5,0.55)% + \ifPst@variable% + \psline[arrows=->](-0.5,-0.55)(0.5,0.55)% \fi \egroup } % \def\pst@draw@OA{% - \ifx\psk@circ@tripole@style\pst@string@tripole@style@french + \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 - \psline(-1,-0.75)(-1,0.75) - \psline(-1,0.75)(1,0) - \psline(-1,-0.75)(1,0) + \pspolygon[arrows=-](-1,-0.75)(-1,0.75)(1,0)(-1,-0.75) + \ifPst@OA@power + \psline{-o}(0,0.375)(0,0.75)\uput[90](0,0.75){$+$} + \psline{-o}(0,-0.375)(0,-0.75)\uput[-90](0,-0.75){$-$} + \fi \fi - \pnode(-1,0.25){\ifPst@circ@OA@invert Minus@\else Plus@\fi} - \pnode(-1,-0.25){\ifPst@circ@OA@invert Plus@\else Minus@\fi} + \pnode(-1,0.25){\ifPst@OA@invert Minus@\else Plus@\fi} + \pnode(-1,-0.25){\ifPst@OA@invert Plus@\else Minus@\fi} \pnode(1,0){S@} - \uput{0.1}[0](-1,0.25){\ifPst@circ@OA@invert$-$\else$+$\fi} - \uput{0.1}[0](-1,-0.25){\ifPst@circ@OA@invert$+$\else$-$\fi} - \ifPst@circ@OA@perfect - \rput(0.25,0){$\infty$} - \fi - } + \uput{0.1}[0](-1,0.25){\ifPst@OA@invert$-$\else$+$\fi} + \uput{0.1}[0](-1,-0.25){\ifPst@OA@invert$+$\else$-$\fi} + \ifPst@OA@perfect\rput(0.25,0){$\infty$}\fi% +} % \def\pst@draw@battery{% - \psline[linewidth=1.5\pslinewidth](-0.10,-0.5)(-0.10,0.5) - \psline[linewidth=3\pslinewidth](0.10,-0.25)(0.10,0.25) + \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) \pnode(-0.1,0){dipole@1} \pnode(0.1,0){dipole@2} - \ifPst@circ@variable% + \ifPst@variable% \psline{->}(-0.75,-0.5)(0.75,0.5)% \fi } % \def\pst@draw@coil{% - \ifx\psk@circ@dipole@style\pst@string@dipole@style@curved - \pscurve(-0.7,0)(-0.6,0.3)(-0.35,0)(-0.4,-0.2) + \ifx\psk@Dstyle\pst@Dstyle@curved + \pscurve[arrows=-](-0.7,0)(-0.6,0.3)(-0.35,0)(-0.4,-0.2) (-0.5,0)(-0.4,0.3)(-0.15,0)(-0.2,-0.2)(-0.3,0) (-0.2,0.3)(0.05,0)(0,-0.2)(-0.1,0) (0,0.3)(0.25,0)(0.2,-0.2)(0.1,0) @@ -1208,7 +1395,7 @@ \pnode(-0.7,0){dipole@1} \pnode(0.5,0){dipole@2} \else - \ifx\psk@circ@dipole@style\pst@string@dipole@style@elektor + \ifx\psk@Dstyle\pst@Dstyle@elektor \psarcn[arrows=c-](-0.3885794,0){0.1295265}{-180}{0} \psarcn(-0.1295265,0){0.1295265}{-180}{0} \psarcn(0.1295265,0){0.1295265}{-180}{0} @@ -1216,59 +1403,63 @@ \pnode(-0.5181058,0){dipole@1} \pnode(0.5181058,0){dipole@2} \else - \ifx\psk@circ@dipole@style\pst@string@dipole@style@elektorcurved + \ifx\psk@Dstyle\pst@Dstyle@elektorcurved \psarcn[arrows=c-c](-0.408167,0.089453){0.211665}{-155}{-410} \psarcn[arrows=-c](-0.136056,0.089453){0.211665}{-130}{-410} \psarcn[arrows=-c](0.136055,0.089453){0.211665}{-130}{-410} \psarcn[arrows=-c](0.408167,0.089453){0.211665}{-130}{-385} \pnode(-0.6,0){dipole@1} \pnode(0.6,0){dipole@2} - \else - \ifx\psk@circ@dipole@style\pst@string@dipole@style@rectangle - \pnode(-0.5,0){dipole@1} - \pnode(0.5,0){dipole@2} - \psframe[linewidth=1.5\pslinewidth,fillstyle=solid,fillcolor=black](-0.5,-0.25)(0.5,0.25) - \else - \pscurve[linewidth=1.5\pslinewidth](-1,0)(-0.75,0.5)(-0.5,0) - \pscurve[linewidth=1.5\pslinewidth](-0.5,0)(-0.25,0.5)(0,0) - \pscurve[linewidth=1.5\pslinewidth](0,0)(0.25,0.5)(0.5,0) - \pscurve[linewidth=1.5\pslinewidth](0.5,0)(0.75,0.5)(1,0) - \pnode(-1,0){dipole@1} - \pnode(1,0){dipole@2} - \fi - \fi - \fi - \fi - \ifPst@circ@variable% - \psline{->}(-0.75,-0.5)(0.75,0.5)% - \fi + \else + \ifx\psk@Dstyle\pst@Dstyle@rectangle + \pnode(-0.5,0){dipole@1} + \pnode(0.5,0){dipole@2} + \psframe[linewidth=1.5\pslinewidth,fillstyle=solid,fillcolor=black](-0.5,-0.25)(0.5,0.25) + \else + \pscurve[arrows=-,linewidth=1.5\pslinewidth](-1,0)(-0.75,0.5)(-0.5,0) + \pscurve[arrows=-,linewidth=1.5\pslinewidth](-0.5,0)(-0.25,0.5)(0,0) + \pscurve[arrows=-,linewidth=1.5\pslinewidth](0,0)(0.25,0.5)(0.5,0) + \pscurve[arrows=-,linewidth=1.5\pslinewidth](0.5,0)(0.75,0.5)(1,0) + \pnode(-1,0){dipole@1} + \pnode(1,0){dipole@2} + \fi\fi\fi\fi% + \ifPst@variable\psline{->}(-0.75,-0.5)(0.75,0.5)\fi% } % \def\pst@draw@Ucc{% \pnode(-0.5,0){dipole@1} \pnode(0.5,0){dipole@2} - \psline[linewidth=2\pslinewidth]{->}(-0.35,0)(0.35,0) - \pscircle[linewidth=1.5\pslinewidth](0,0){0.5} - } + \ifx\psk@Dstyle\pst@Dstyle@diamond + \pspolygon[linewidth=1.5\pslinewidth](-0.5,0)(0,0.5)(0.5,0)(0,-0.5) + \else + \pscircle[linewidth=1.5\pslinewidth](0,0){0.5} + \fi + \ifcase\psk@labelInside\or% do nothing + \psline[arrows=-,linewidth=2\pslinewidth]{->}(-0.35,0)(0.35,0)\or% case 1 + \uput{0.1}[0]{90}(-0.5,0){$-$}% case 2 + \uput{0.1}[0]{90}(0,0){$+$}\or% case 3 + \rput(0,0){\large\bf =} + \fi +} % \def\pst@draw@Icc{% \pnode(-0.5,0){dipole@1} \pnode(0.5,0){dipole@2} \pscircle[linewidth=1.5\pslinewidth](0,0){0.5} - \psline[linewidth=1.5\pslinewidth](0,-0.5)(0,0.5) + \psline[arrows=-,linewidth=1.5\pslinewidth](0,-0.5)(0,0.5) } % \def\pst@draw@switch{% - \ifx\psk@circ@dipole@style\pst@string@dipole@style@close + \ifx\psk@Dstyle\pst@Dstyle@close \pnode(-0.5,0){dipole@1} \pnode(0.5,0){dipole@2} \qdisk(-0.5,0){1.5pt} \qdisk(0.5,0){1.5pt} - \psline[linewidth=2\pslinewidth](-0.5,0.05)(0.5,0.05) + \psline[arrows=-,linewidth=2\pslinewidth](-0.5,0.05)(0.5,0.05) \else \pnode(-0.55,0){dipole@1} \pnode(0.5,0){dipole@2} - \psline[linewidth=2\pslinewidth](-0.5,0)(0.5,0.5) + \psline[arrows=-,linewidth=2\pslinewidth](-0.5,0)(0.5,0.5) \psarcn[arrowinset=0]{->}(-0.5,0){0.75}{45}{-45} \pscircle[fillstyle=solid](-0.5,0){0.07} \qdisk(0.5,0){1.5pt} @@ -1276,43 +1467,42 @@ } % \def\pst@draw@diode{% -% start Herbert 2003-07-23 - \ifx\psk@circ@dipole@style\pst@string@dipole@style@triac + \ifx\psk@Dstyle\pst@Dstyle@triac \pspolygon[linewidth=1.5\pslinewidth](-0.25,-0.4)(-0.25,0)(0.25,-0.2) \pspolygon[linewidth=1.5\pslinewidth](0.25,0)(-0.25,0.2)(0.25,0.4) - \psline[linewidth=1.5\pslinewidth](-0.25,-0.4)(-0.25,0.4) - \psline[linewidth=1.5\pslinewidth](0.25,-0.4)(0.25,0.4) - \psline[linewidth=\pslinewidth](0.25,-0.2)(0.5,-0.3)(0.5,-0.6) + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.25,-0.4)(-0.25,0.4) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,-0.4)(0.25,0.4) + \psline[arrows=-,linewidth=\pslinewidth](0.25,-0.2)(0.5,-0.3)(0.5,-0.6) \else -% end Herbert 2003-07-23 - \pspolygon[linewidth=1.5\pslinewidth](-0.25,-0.2)(-0.25,0.2)(0.25,0) - \psline[linewidth=1.5\pslinewidth](0.25,0.2)(0.25,-0.2) -% start Herbert 2003-07-17 - \ifx\psk@circ@dipole@style\pst@string@dipole@style@thyristor - \psline[linewidth=1.5\pslinewidth](0,-0.1)(0,-0.35) + \pspolygon[arrows=-,linewidth=1.5\pslinewidth](-0.25,-0.2)(-0.25,0.2)(0.25,0) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0.2)(0.25,-0.2) + \ifx\psk@Dstyle\pst@Dstyle@thyristor + \psline[arrows=-,linewidth=1.5\pslinewidth](0,-0.1)(0,-0.35) \fi - \ifx\psk@circ@dipole@style\pst@string@dipole@style@GTO - \psline[linewidth=1.5\pslinewidth](-0.1,-0.12)(-0.1,-0.35) - \psline[linewidth=1.5\pslinewidth](0,-0.1)(0,-0.35) + \ifx\psk@Dstyle\pst@Dstyle@GTO + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.1,-0.12)(-0.1,-0.35) + \psline[arrows=-,linewidth=1.5\pslinewidth](0,-0.1)(0,-0.35) \fi \fi -% end Herbert 2003-07-17 \pnode(-0.25,0){dipole@1} \pnode(0.25,0){dipole@2} } % \def\pst@draw@Zener{% \pspolygon[linewidth=1.5\pslinewidth](-0.25,-0.2)(-0.25,0.2)(0.25,0) - \psline[linewidth=1.5\pslinewidth](0.25,0.2)(0.25,-0.2) - \psline[linewidth=1.5\pslinewidth](0.25,0.25)(0.25,-0.25)(0,-0.25) + \ifx\psk@Dstyle\pst@Dstyle@Z + \psline[arrows=-,linewidth=1.5\pslinewidth](0.1,0.35)(0.25,0.25)(0.25,-0.25)(0.4,-0.35) + \else + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0.25)(0.25,-0.25)(0,-0.25) + \fi \pnode(-0.25,0){dipole@1} \pnode(0.25,0){dipole@2} } % \def\pst@draw@lamp{% \pscircle[linewidth=1.5\pslinewidth]{0.5} - \psline[linewidth=1.5\pslinewidth](0.5;45)(0.5;225) - \psline[linewidth=1.5\pslinewidth](0.5;135)(0.5;315) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.5;45)(0.5;225) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.5;135)(0.5;315) \pnode(-0.5,0){dipole@1} \pnode(0.5,0){dipole@2} } @@ -1324,53 +1514,23 @@ } % \def\pst@draw@LED{% - \pspolygon[linewidth=1.5\pslinewidth](-0.25,-0.2)(-0.25,0.2)(0.25,0) - \psline[linewidth=1.5\pslinewidth](0.25,0.2)(0.25,-0.2) + \pspolygon[arrows=-,linewidth=1.5\pslinewidth](-0.25,-0.2)(-0.25,0.2)(0.25,0) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0.2)(0.25,-0.2) \pnode(-0.25,0){dipole@1} \pnode(0.25,0){dipole@2} - \bgroup% - \psset{arrows=->}% - \multips(-0.25,0.3)(0.25,0){3}{\psline(0.25,0.22)}% - \egroup% -} -% -\def\pst@draw@transistor{% - \ifPst@circ@transistor@circle - \pscircle(0,0){0.8} - \fi - \psline[linewidth=4\pslinewidth](-0.3,-0.5)(-0.3,0.5) - \psline(-0.3,-0.25)(0.25,-0.5)(0.25,-0.759934) - \ifPst@circ@transistor@invert\else - \pnode(-0.3,-0.25){@emitter} - \pnode(0.25,-0.5){@@emitter} - \fi - \pnode(0.25,-0.759934){\ifPst@circ@transistor@invert collector@\else emitter@\fi} - \psline(-0.3,0.25)(0.25,0.5)(0.25,0.759934) - \ifPst@circ@transistor@invert - \pnode(-0.3,0.25){@emitter} - \pnode(0.25,0.5){@@emitter} - \fi - \pnode(0.25,0.759934){\ifPst@circ@transistor@invert emitter@\else collector@\fi} - \psline(-0.3,0)(-.8,0) - \pnode(-.8,0){base@} - \ifPst@circ@transistor@type - \ncline[linestyle=none,fillstyle=none]{@@emitter}{@emitter} - \else - \ncline[linestyle=none,fillstyle=none]{@emitter}{@@emitter} - \fi - \ncput[nrot=:U]{\psline[arrowinset=0,arrowscale=2]{->}(0,0)(.2,0)} + \multips(-0.25,0.3)(0.25,0){3}{\psline[arrows=->](0.25,0.22)}% } % \def\pst@draw@Tswitch{% - \ifx\psk@circ@tripole@style\pst@string@tripole@style@right - \psline[linewidth=2\pslinewidth](0.5,0)(0,-1) + \ifx\psk@tripole@style\pst@tripole@style@right + \psline[arrows=-,linewidth=2\pslinewidth](0.5,0)(0,-1) \psarcn[arrowinset=0]{<-}(0,-1){0.75}{135}{45} \else - \ifx\psk@circ@tripole@style\pst@string@tripole@style@left - \psline[linewidth=2\pslinewidth](-0.5,0)(0,-1) + \ifx\psk@tripole@style\pst@tripole@style@left + \psline[arrows=-,linewidth=2\pslinewidth](-0.5,0)(0,-1) \psarcn[arrowinset=0]{->}(0,-1){0.75}{135}{45} \else - \psline[linewidth=2\pslinewidth](0,0.1)(0,-1) + \psline[arrows=-,linewidth=2\pslinewidth](0,0.1)(0,-1) \psarcn[linewidth=1pt,arrowinset=0]{<->}(0,-1){0.75}{135}{45} \fi \fi @@ -1383,14 +1543,14 @@ } % \def\pst@draw@transformer{ - \ifx\psk@circ@dipole@style\pst@string@dipole@style@rectangle + \ifx\psk@Dstyle\pst@Dstyle@rectangle \psframe[fillstyle=solid,fillcolor=black](-0.7,-0.75)(-0.2,0.75) \psframe[fillstyle=solid,fillcolor=black](0.7,-0.75)(0.2,0.75) - \psline[linewidth=0.1cm](0,-0.75)(0,0.75) + \psline[arrows=-,linewidth=0.1cm](0,-0.75)(0,0.75) \pnode(-0.5,0.75){inup@} \pnode(-0.5,-0.75){indown@} \else - \pscurve(-0.5,0.9)(-0.2,0.8)(-0.5,0.7)(-0.7,0.8)(-0.5,0.82)(-0.2,0.6) + \pscurve[arrows=-](-0.5,0.9)(-0.2,0.8)(-0.5,0.7)(-0.7,0.8)(-0.5,0.82)(-0.2,0.6) (-0.5,0.5)(-0.7,0.6)(-0.5,0.62)(-0.2,0.4) (-0.5,0.3)(-0.7,0.4)(-0.5,0.42)(-0.2,0.2) (-0.5,0.1)(-0.7,0.2)(-0.5,0.22)(-0.2,0) @@ -1398,16 +1558,16 @@ (-0.5,-0.3)(-0.7,-0.2)(-0.5,-0.18)(-0.2,-0.4) (-0.5,-0.5)(-0.7,-0.4)(-0.5,-0.38)(-0.2,-0.6) (-0.5,-0.7)(-0.7,-0.6)(-0.5,-0.58)(-.2,-0.8)(-0.5,-0.9) - \pscurve(0.5,0.7)(0.2,0.6)(0.5,0.5)(0.7,0.6)(0.5,0.62) + \pscurve[arrows=-](0.5,0.7)(0.2,0.6)(0.5,0.5)(0.7,0.6)(0.5,0.62) (0.2,0.4)(0.5,0.3)(0.7,0.4)(0.5,0.42) (0.2,0.2)(0.5,0.1)(0.7,0.2)(0.5,0.22) (0.2,0.)(0.5,-0.1)(0.7,0)(0.5,0.02) (0.2,-0.2)(0.5,-0.3)(0.7,-0.2)(0.5,-0.18) (0.2,-0.4)(0.5,-0.5)(0.7,-0.4)(0.5,-0.38) (0.2,-0.6)(0.5,-0.7) - \psline(-0.1,0.7)(-0.1,-0.7) - \psline(0,0.7)(0,-0.7) - \psline(0.1,0.7)(0.1,-0.7) + \psline[arrows=-](-0.1,0.7)(-0.1,-0.7) + \psline[arrows=-](0,0.7)(0,-0.7) + \psline[arrows=-](0.1,0.7)(0.1,-0.7) \pnode(-0.5,0.9){inup@} \pnode(-0.5,-0.9){indown@} \fi @@ -1418,19 +1578,19 @@ \def\pst@draw@optoCoupler{% % diode \pspolygon[linewidth=1.5\pslinewidth](-0.5,-0.25)(-0.7,0.25)(-0.3,0.25) - \psline[linewidth=1.5\pslinewidth](-0.7,-0.25)(-0.3,-0.25) + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.7,-0.25)(-0.3,-0.25) \psline{->}(-0.2,0.2)(0,0.1) \psline{->}(-0.2,0)(0,-0.1) % transistor - \psline[linewidth=4\pslinewidth](0.25,-0.3)(0.25,0.3) - \psline[linewidth=1.5\pslinewidth](0.25,0)(0.75,0.5) - \psline[linewidth=1.5\pslinewidth](0.25,0)(0.75,-0.5) + \psline[arrows=-,linewidth=4\pslinewidth](0.25,-0.3)(0.25,0.3) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0)(0.75,0.5) + \psline[arrows=-,linewidth=1.5\pslinewidth](0.25,0)(0.75,-0.5) \pnode(0.75,-0.5){d@1} \pnode(0.25,0){d@2} - \ifx\psk@circ@transistor@type\pst@string@transistor@type@PNP - \ncline[linestyle=none,fillstyle=none]{d@1}{d@2} + \ifx\psk@Ttype\pst@Ttype@PNP + \ncline[arrows=-,linestyle=none,fillstyle=none]{d@1}{d@2} \else - \ncline[linestyle=none,fillstyle=none]{d@2}{d@1} + \ncline[arrows=-,linestyle=none,fillstyle=none]{d@2}{d@1} \fi \ncput[nrot=:U]{\psline[arrowinset=0,arrowscale=2]{->}(0,0)(.2,0)} \pnode(-0.5,0.25){inup@} @@ -1442,65 +1602,65 @@ \def\pst@draw@logic[#1]{\@ifnextchar({\pst@draw@logici[#1]}{\pst@draw@logici[#1](0,0)}} % \def\pst@draw@logici[#1](#2)#3{{% - \setkeys{psset}{#1}% + \psset{#1}% \rput[lb](#2){% - \psframe[linewidth=2\pslinewidth](0,0)(\psk@circ@logic@width,\psk@circ@logic@height)% + \psframe[linewidth=2\pslinewidth](0,0)(\psk@logic@width,\psk@logic@height)% } \pst@getcoor{#2}\pst@tempa - \ifPst@circ@logic@changeLR\def\logic@LR{true}\else\def\logic@LR{false}\fi% + \ifPst@logic@changeLR\def\logic@LR{true}\else\def\logic@LR{false}\fi% \pstVerb{ /YA \pst@tempa exch pop \pst@number\psyunit div def - /YB YA \psk@circ@logic@height\space add def + /YB YA \psk@logic@height\space add def \logic@LR {% /XB \pst@tempa pop \pst@number\psxunit div def - /XA XB \psk@circ@logic@width\space add def + /XA XB \psk@logic@width\space add def }{% /XA \pst@tempa pop \pst@number\psxunit div def - /XB XA \psk@circ@logic@width\space add def + /XB XA \psk@logic@width\space add def } ifelse /dy YB YA sub def } - \ifx\psk@circ@logic@type\pst@string@logic@type@RS%---------------- RS ----------------- + \ifx\psk@logic@type\pst@logic@type@RS%---------------- RS ----------------- \pnode(! XA YA dy 4 div add){#3S} \pnode(! XA YA dy 4 div 3 mul add){#3R} \psline(#3R)(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 4 div 3 mul add) \psline(#3S)(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 4 div add) - \uput[\ifPst@circ@logic@changeLR 180\else 0\fi](#3R){\psk@circ@logic@nodestyle R} - \uput[\ifPst@circ@logic@changeLR 180\else 0\fi](#3S){\psk@circ@logic@nodestyle S} + \uput[\ifPst@logic@changeLR 180\else 0\fi](#3R){\psk@logic@nodestyle R} + \uput[\ifPst@logic@changeLR 180\else 0\fi](#3S){\psk@logic@nodestyle S} \pnode(! XB 0.2 \logic@LR {sub}{add} ifelse YA dy 4 div add){#3Qneg} \pscircle[linewidth=0.5pt](! XB 0.1 \logic@LR {sub}{add} ifelse YA dy 4 div add){0.1} \pnode(! XB YA dy 4 div 3 mul add){#3Q} - \psline(#3Q)(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add) - \psline(#3Qneg)(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div add) - \uput[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Q){\psk@circ@logic@nodestyle Q} - \uput{0.4}[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Qneg){\psk@circ@logic@nodestyle $\mathrm{\overline{Q}}$} - \ifPst@circ@logic@showDot - \qdisk(! XA \psk@circ@logic@wireLength\space \logic@LR {add}{sub} ifelse YA dy 4 div 3 mul add){3pt} - \qdisk(! XA \psk@circ@logic@wireLength\space \logic@LR {add}{sub} ifelse YA dy 4 div add){3pt} - \qdisk(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add){3pt} - \qdisk(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div add){3pt} + \psline(#3Q)(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add) + \psline(#3Qneg)(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div add) + \uput[\ifPst@logic@changeLR 0\else 180\fi](#3Q){\psk@logic@nodestyle Q} + \uput{0.4}[\ifPst@logic@changeLR 0\else 180\fi](#3Qneg){\psk@logic@nodestyle $\mathrm{\overline{Q}}$} + \ifPst@logic@showDot + \qdisk(! XA \psk@logic@wireLength\space \logic@LR {add}{sub} ifelse YA dy 4 div 3 mul add){3pt} + \qdisk(! XA \psk@logic@wireLength\space \logic@LR {add}{sub} ifelse YA dy 4 div add){3pt} + \qdisk(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add){3pt} + \qdisk(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 4 div add){3pt} \fi \rput[b](!% /dx XB XA sub 2 div def - XA dx add YA 0.1 add){\psk@circ@logic@labelstyle #3} + XA dx add YA 0.1 add){\psk@logic@labelstyle #3} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@D%---------------- D ----------------- + \ifx\psk@logic@type\pst@logic@type@D%---------------- D ----------------- \pnode(! XA YA dy 2 div add){#3C} \pnode(! XA YA dy 4 div 3 mul add){#3D} \psline(#3D)(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 4 div 3 mul add) \psline(#3C)(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 2 div add) \psline[linewidth=0.5pt](! XA YA dy 2 div add 0.15 add) (! XA 0.4 \logic@LR {sub}{add} ifelse YA dy 2 div add)(! XA YA dy 2 div add 0.15 sub) - \uput[\ifPst@circ@logic@changeLR 180\else 0\fi](#3D){\psk@circ@logic@nodestyle D} - \uput{0.5}[\ifPst@circ@logic@changeLR 180\else 0\fi](#3C){\psk@circ@logic@nodestyle C} + \uput[\ifPst@logic@changeLR 180\else 0\fi](#3D){\psk@logic@nodestyle D} + \uput{0.5}[\ifPst@logic@changeLR 180\else 0\fi](#3C){\psk@logic@nodestyle C} \pnode(! XB 0.2 \logic@LR {sub}{add} ifelse YA dy 4 div add){#3Qneg} \pscircle[linewidth=0.5pt](! XB 0.1 \logic@LR {sub}{add} ifelse YA dy 4 div add){0.1} \pnode(! XB YA dy 4 div 3 mul add){#3Q} \psline(#3Q)(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add) \psline(#3Qneg)(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div add) - \uput[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Q){\psk@circ@logic@nodestyle Q} - \uput{0.4}[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Qneg){\psk@circ@logic@nodestyle $\mathrm{\overline{Q}}$} - \ifPst@circ@logic@showDot + \uput[\ifPst@logic@changeLR 0\else 180\fi](#3Q){\psk@logic@nodestyle Q} + \uput{0.4}[\ifPst@logic@changeLR 0\else 180\fi](#3Qneg){\psk@logic@nodestyle $\mathrm{\overline{Q}}$} + \ifPst@logic@showDot \qdisk(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 4 div 3 mul add){3pt} \qdisk(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 2 div add){3pt} \qdisk(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add){3pt} @@ -1508,38 +1668,38 @@ \fi \rput[b](!% /dx XB XA sub 2 div def - XA dx add YA 0.1 add){\psk@circ@logic@labelstyle #3} + XA dx add YA 0.1 add){\psk@logic@labelstyle #3} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@JK%---------------- JK ----------------- - \multido{\n=1+1}{\psk@circ@logic@JInput}{% + \ifx\psk@logic@type\pst@logic@type@JK%---------------- JK ----------------- + \multido{\n=1+1}{\psk@logic@JInput}{% \pnode(!% - /Step dy 2 div \psk@circ@logic@JInput\space div def + /Step dy 2 div \psk@logic@JInput\space div def /yNew Step \n\space mul def XA YA yNew add Step 2 div sub){#3J\n} \pst@getcoor{#3J\n}\pst@tempc - \uput[\ifPst@circ@logic@changeLR 180\else 0\fi](#3J\n){\psk@circ@logic@nodestyle J\n} + \uput[\ifPst@logic@changeLR 180\else 0\fi](#3J\n){\psk@logic@nodestyle J\n} \pnode(! /YC \pst@tempc exch pop \pst@number\psyunit div def /XC \pst@tempc pop \pst@number\psxunit div def XC 0.5 \logic@LR {add}{sub} ifelse YC){tempJ\n} \psline(#3J\n)(tempJ\n)% input - \ifPst@circ@logic@showDot + \ifPst@logic@showDot \qdisk(tempJ\n){3pt} \fi } - \multido{\n=1+1}{\psk@circ@logic@KInput}{% + \multido{\n=1+1}{\psk@logic@KInput}{% \pnode(!% - /Step dy 2 div \psk@circ@logic@KInput\space div def + /Step dy 2 div \psk@logic@KInput\space div def /yNew Step \n\space mul def XA YB yNew sub Step 2 div add){#3K\n} \pst@getcoor{#3K\n}\pst@tempc - \uput[\ifPst@circ@logic@changeLR 180\else 0\fi](#3K\n){\psk@circ@logic@nodestyle K\n} + \uput[\ifPst@logic@changeLR 180\else 0\fi](#3K\n){\psk@logic@nodestyle K\n} \pnode(! /YC \pst@tempc exch pop \pst@number\psyunit div def /XC \pst@tempc pop \pst@number\psxunit div def XC 0.5 \logic@LR {add}{sub} ifelse YC){tempK\n} \psline(#3K\n)(tempK\n)% input - \ifPst@circ@logic@showDot + \ifPst@logic@showDot \qdisk(tempK\n){3pt} \fi } @@ -1547,108 +1707,108 @@ (! XA 0.4 \logic@LR {sub}{add} ifelse YA dy 2 div add)(! XA YA dy 2 div add 0.15 sub) \pnode(! XA YA dy 2 div add){#3C} \psline(#3C)(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 2 div add) - \uput{0.5}[\ifPst@circ@logic@changeLR 180\else 0\fi](#3C){\psk@circ@logic@nodestyle C} + \uput{0.5}[\ifPst@logic@changeLR 180\else 0\fi](#3C){\psk@logic@nodestyle C} \pnode(! XB 0.2 \logic@LR {sub}{add} ifelse YA dy 4 div add){#3Qneg} \pscircle[linewidth=0.5pt](! XB 0.1 \logic@LR {sub}{add} ifelse YA dy 4 div add){0.1} \pnode(! XB YA dy 4 div 3 mul add){#3Q} \psline(#3Q)(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add) \psline(#3Qneg)(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div add) - \uput[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Q){\psk@circ@logic@nodestyle Q} - \uput{0.4}[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Qneg){\psk@circ@logic@nodestyle $\mathrm{\overline{Q}}$} - \ifPst@circ@logic@showDot + \uput[\ifPst@logic@changeLR 0\else 180\fi](#3Q){\psk@logic@nodestyle Q} + \uput{0.4}[\ifPst@logic@changeLR 0\else 180\fi](#3Qneg){\psk@logic@nodestyle $\mathrm{\overline{Q}}$} + \ifPst@logic@showDot \qdisk(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div 3 mul add){3pt} \qdisk(! XB 0.5 \logic@LR {sub}{add} ifelse YA dy 4 div add){3pt} \qdisk(! XA 0.5 \logic@LR {add}{sub} ifelse YA dy 2 div add){3pt} - \fi + \fi \rput[b](!% /dx XB XA sub 2 div def - XA dx add YA 0.1 add){\psk@circ@logic@labelstyle #3} + XA dx add YA 0.1 add){\psk@logic@labelstyle #3} \else%---------------- default AND/NAND/OR/NOR/NOT/EXOR/ENOR ----------------- - \ifx\psk@circ@logic@type\pst@string@logic@type@not + \ifx\psk@logic@type\pst@logic@type@not \def\@nMax{1} - \else - \def\@nMax{\psk@circ@logic@nInput} - \fi + \else + \def\@nMax{\psk@logic@nInput} + \fi \multido{\n=1+1}{\@nMax}{% \pnode(!% - /Step dy \psk@circ@logic@nInput\space div def + /Step dy \psk@logic@nInput\space div def /yNew Step \n\space mul def XA YA yNew add \@nMax\space 1 gt {Step 2 div sub} if){#3\n} \pst@getcoor{#3\n}\pst@tempc \pnode(! /YC \pst@tempc exch pop \pst@number\psyunit div def /XC \pst@tempc pop \pst@number\psxunit div def - XC \psk@circ@logic@wireLength\space \logic@LR {add}{sub} ifelse YC){temp#3\n} + XC \psk@logic@wireLength\space \logic@LR {add}{sub} ifelse YC){temp#3\n} \psline(#3\n)(temp#3\n)% input - \ifPst@circ@logic@showDot + \ifPst@logic@showDot \qdisk(temp#3\n){3pt} \fi - \ifPst@circ@logic@showNode - \uput[\ifPst@circ@logic@changeLR 180\else 0\fi](#3\n){\psk@circ@logic@nodestyle\n} + \ifPst@logic@showNode + \uput[\ifPst@logic@changeLR 180\else 0\fi](#3\n){\psk@logic@nodestyle\n} \fi } - \ifx\psk@circ@logic@type\pst@string@logic@type@not\else - \ifx\psk@circ@logic@type\pst@string@logic@type@nand\else - \ifx\psk@circ@logic@type\pst@string@logic@type@nor\else - \ifx\psk@circ@logic@type\pst@string@logic@type@exnor\else - \pnode(! XB YA dy 2 div add){#3Q} - \psline(#3Q)(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add)% output - \ifPst@circ@logic@showDot - \qdisk(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add){3pt} + \ifx\psk@logic@type\pst@logic@type@not\else + \ifx\psk@logic@type\pst@logic@type@nand\else + \ifx\psk@logic@type\pst@logic@type@nor\else + \ifx\psk@logic@type\pst@logic@type@exnor\else + \pnode(! XB YA dy 2 div add){#3Q} + \psline(#3Q)(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add)% output + \ifPst@logic@showDot + \qdisk(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add){3pt} \fi - \ifPst@circ@logic@showNode - \uput[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Q){\psk@circ@logic@nodestyle Q} + \ifPst@logic@showNode + \uput[\ifPst@logic@changeLR 0\else 180\fi](#3Q){\psk@logic@nodestyle Q} \fi - \fi - \fi - \fi - \fi - \ifx\psk@circ@logic@type\pst@string@logic@type@and\else% NotX output - \ifx\psk@circ@logic@type\pst@string@logic@type@or\else - \ifx\psk@circ@logic@type\pst@string@logic@type@exor\else + \fi + \fi + \fi + \fi + \ifx\psk@logic@type\pst@logic@type@and\else% NotX output + \ifx\psk@logic@type\pst@logic@type@or\else + \ifx\psk@logic@type\pst@logic@type@exor\else \pnode(! XB 0.2 \logic@LR {sub}{add} ifelse YA dy 2 div add){#3Q} \pscircle[linewidth=0.5pt](! XB 0.1 \logic@LR {sub}{add} ifelse YA dy 2 div add){0.1} - \psline(#3Q)(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add)% output - \ifPst@circ@logic@showDot - \qdisk(! XB \psk@circ@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add){3pt} + \psline(#3Q)(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add)% output + \ifPst@logic@showDot + \qdisk(! XB \psk@logic@wireLength\space \logic@LR {sub}{add} ifelse YA dy 2 div add){3pt} \fi - \ifPst@circ@logic@showNode - \uput{0.4}[\ifPst@circ@logic@changeLR 0\else 180\fi](#3Q){\psk@circ@logic@nodestyle Q} + \ifPst@logic@showNode + \uput{0.4}[\ifPst@logic@changeLR 0\else 180\fi](#3Q){\psk@logic@nodestyle Q} \fi \fi \fi - \fi - \ifx\psk@circ@logic@type\pst@string@logic@type@or + \fi + \ifx\psk@logic@type\pst@logic@type@or \def\logic@type{$\ge\kern-5pt 1$} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@not + \ifx\psk@logic@type\pst@logic@type@not \def\logic@type{1} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@nand + \ifx\psk@logic@type\pst@logic@type@nand \def\logic@type{\&} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@nor + \ifx\psk@logic@type\pst@logic@type@nor \def\logic@type{$\ge\kern-5pt 1$} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@exor + \ifx\psk@logic@type\pst@logic@type@exor \def\logic@type{=1} \else - \ifx\psk@circ@logic@type\pst@string@logic@type@exnor + \ifx\psk@logic@type\pst@logic@type@exnor \def\logic@type{=} \else \def\logic@type{\&} - \fi - \fi - \fi + \fi + \fi + \fi \fi - \fi + \fi \fi \rput(!% - /dx XB XA sub \psk@circ@logic@symbolpos\space mul def - XA dx add YB 0.3 sub){\psk@circ@logic@symbolstyle\textbf{\logic@type}} + /dx XB XA sub \psk@logic@symbolpos\space mul def + XA dx add YB 0.3 sub){\psk@logic@symbolstyle\textbf{\logic@type}} \rput[b](!% /dx XB XA sub 2 div def - XA dx add YA 0.1 add){\psk@circ@logic@labelstyle #3} + XA dx add YA 0.1 add){\psk@logic@labelstyle #3} \fi \fi \fi% end of no special RS/JK/D @@ -1657,23 +1817,20 @@ % end hv 2003-07-28 % \def\pst@draw@wire[#1](#2)(#3){{% - \setkeys{psset}{#1}% - \if\psk@circ@intensity@label\@empty\else - \setkeys{psset}{intensity=true}% + \psset{#1}% + \ifx\psk@I@label\@empty\else\psset{intensity=true}\fi + \ifx\psk@Dconvention\pst@Dconvention@generator + \Pst@Dconventiontrue + \else\ifx\psk@Dconvention\pst@Dconvention@receptor\Pst@Dconventionfalse\fi \fi - \ifx\psk@circ@dipole@convention\pst@string@dipole@convention@generator - \Pst@circ@dipole@conventiontrue - \else - \ifx\psk@circ@dipole@convention\pst@string@dipole@convention@receptor - \Pst@circ@dipole@conventionfalse - \fi - \fi - \ifPst@circ@wire@intersect - \pnode(#2){Inter@1} - \pnode(#3){Inter@2} + \bgroup + \pnode(#2){Inter@1} + \pnode(#3){Inter@2} + \psset{arrows=-} + \ifPst@wire@intersect \rput(! - /N@Inter@1 GetNode /N@Inter@2 GetNode /N@\psk@circ@wire@intersectA\space - GetNode /N@\psk@circ@wire@intersectB\space GetNode InterLines + /N@Inter@1 GetNode /N@Inter@2 GetNode /N@\psk@wire@intersectA\space + GetNode /N@\psk@wire@intersectB\space GetNode InterLines \pst@number\psyunit div exch \pst@number\psxunit div exch){\pnode{@M}}% \ncline[linestyle=none,fillstyle=none]{Inter@1}{@M} \ncput[nrot=:U,npos=.85]{\pnode{@M1}} @@ -1684,34 +1841,36 @@ \ncarc[arcangle=90]{@M1}{@M2} \else \pcline(#2)(#3) - \ifPst@circ@intensity - \ifPst@circ@direct@convention + \ifPst@intensity + \ifPst@direct@convention \ncput[nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color, - linewidth=\psk@circ@intensity@width,arrowinset=0]{->}(-.1,0)(.1,0)} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@intensity@label@offset](#2)(#3) - \ncput[nrot=\psk@circ@label@angle]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@intensity@label} + \psline[linecolor=\psk@I@color, + linewidth=\psk@I@width,arrowinset=0]{->}(-.1,0)(.1,0)} + \pcline[linestyle=none,fillstyle=none,offset=\psk@I@label@offset](#2)(#3) + \ncput[nrot=\psk@label@angle]{\csname\psk@I@labelcolor\endcsname\psk@I@label} \else \ncput[nrot=:U]{% - \psline[linecolor=\psk@circ@intensity@color,linewidth=\psk@circ@intensity@width]{<-}(-.1,0)(.1,0)} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@intensity@label@offset](#2)(#3) - \ncput[nrot=\psk@circ@label@angle]{\csname\psk@circ@intensity@labelcolor\endcsname\psk@circ@intensity@label} + \psline[linecolor=\psk@I@color,linewidth=\psk@I@width]{<-}(-.1,0)(.1,0)} + \pcline[linestyle=none,fillstyle=none,offset=\psk@I@label@offset](#2)(#3) + \ncput[nrot=\psk@label@angle]{\csname\psk@I@labelcolor\endcsname\psk@I@label} \fi \fi \fi + \egroup + \ncline[linestyle=none]{Inter@1}{Inter@2} }\ignorespaces} % % \def\pst@draw@tension@[#1](#2)(#3)#4{{% - \setkeys{psset}{#1}% + \psset{#1}% \pnode(#2){pst@tempa} % hv \pnode(#3){pst@tempb} % hv \ncline[linestyle=none,fillstyle=none]{pst@tempa}{pst@tempb} \ncput[nrot=:U,npos=0.05]{\pnode{@M1}} \ncput[nrot=:U,npos=0.95]{\pnode{@M2}} - \ncline[arrowinset=0,linecolor=\psk@circ@tension@color]{->}{@M1}{@M2} - \pcline[linestyle=none,fillstyle=none,offset=\psk@circ@label@offset](@M1)(@M2) - \ncput[nrot=\psk@circ@label@angle]{\csname\psk@circ@tension@labelcolor\endcsname #4} + \ncline[arrowinset=0,linecolor=\psk@tension@color]{->}{@M1}{@M2} + \pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk@label@offset](@M1)(@M2) + \ncput[nrot=\psk@label@angle]{\csname\psk@tension@labelcolor\endcsname #4} }\ignorespaces} % \def\node(#1){% @@ -1719,15 +1878,3 @@ % \endinput % -%% ChangeLog -%% 1.21 2004-06-10 (hv) option for the logic symbol -%% 1.20 2004-04-30 (hv) options for the logic part -%% 1.2b 2003-08-30 (hv) new tripole potentiometer, -%% fixes some typos in the doc -%% 1.2a 2003-08-28 (hv) added options for ground -%% 1.2 2003-07-28 (hv) added dipolestyle "optoCoupler" and the logic part (Flip Flops) -%% 1.1b 2003-07-24 (hv) added dipolestyle "triac" and use "rectangle" also for the -%% quadrupol transformer; added quadrupol optoCoupler -%% 1.1a 2003-07-22 (hv) fix a bug with tension -%% 1.1 2003-07-18 (hv) fix some bugs and added new dipolestyles for the diode/resistor -%% 1.0 2003-07-10 (cj) first CTAN version diff --git a/Master/texmf-dist/tex/latex/pst-circ/pst-circ.sty b/Master/texmf-dist/tex/latex/pst-circ/pst-circ.sty index b6b3c68e4ab..31dd14f6045 100644 --- a/Master/texmf-dist/tex/latex/pst-circ/pst-circ.sty +++ b/Master/texmf-dist/tex/latex/pst-circ/pst-circ.sty @@ -1,3 +1,11 @@ -\ProvidesPackage{pst-circ}[2004/06/10 package wrapper for PSTricks pst-circ.tex (cj/hv)] -\input pst-circ.tex +\RequirePackage{pstricks} +\ProvidesPackage{pst-circ}[2004/10/31 package wrapper for + pst-circ.tex (hv)] +\input{pst-circ.tex} +\IfFileExists{pst-circ.pro}{% + \ProvidesFile{pst-circ.pro} + [2007/09/04 v. 0.14, PostScript prologue file (hv)] + \@addtofilelist{pst-circ.pro}}{}% +\ProvidesFile{pst-circ.tex} + [\filedate\space v\fileversion\space `PST-circ' (CJ,hv)] \endinput |