summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-circ
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:44:09 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:44:09 +0000
commitdec3d98ebe442d7ea93efbaa8dd2e2be8149a467 (patch)
tree64b660a18f1b3b95331a3c0ac2ba45c395e0bd88 /Master/texmf-dist/doc/generic/pst-circ
parentf9ba1f4431124f48769a2666d5d9ec921345ca71 (diff)
doc 3
git-svn-id: svn://tug.org/texlive/trunk@79 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-circ')
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/README6
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/Version-1.210
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/logic.ltx91
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/logic.pdfbin0 -> 72933 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/logic.tex436
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/poti.pdfbin0 -> 10548 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/poti.tex81
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdfbin0 -> 186471 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex1180
9 files changed, 1794 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-circ/README b/Master/texmf-dist/doc/generic/pst-circ/README
new file mode 100644
index 00000000000..6c34f8ddf0d
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/README
@@ -0,0 +1,6 @@
+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
diff --git a/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 b/Master/texmf-dist/doc/generic/pst-circ/Version-1.21
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/Version-1.21
diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.ltx b/Master/texmf-dist/doc/generic/pst-circ/logic.ltx
new file mode 100644
index 00000000000..2427a21f7fa
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/logic.ltx
@@ -0,0 +1,91 @@
+\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
new file mode 100644
index 00000000000..0a813ef62ba
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/logic.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.tex b/Master/texmf-dist/doc/generic/pst-circ/logic.tex
new file mode 100644
index 00000000000..ba2d7cb84f7
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/logic.tex
@@ -0,0 +1,436 @@
+\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&not",%
+ 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
new file mode 100644
index 00000000000..7cbeb47e31c
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/poti.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-circ/poti.tex b/Master/texmf-dist/doc/generic/pst-circ/poti.tex
new file mode 100644
index 00000000000..bd93942a9b8
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/poti.tex
@@ -0,0 +1,81 @@
+\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.pdf b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf
new file mode 100644
index 00000000000..aa74333ac9b
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf
Binary files differ
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
new file mode 100644
index 00000000000..09dba0a68ce
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex
@@ -0,0 +1,1180 @@
+\documentclass{article}
+
+\usepackage{multicol}
+\usepackage[a4paper,margin=1.5cm]{geometry}
+\usepackage{fancyhdr}
+\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'}}
+
+\lhead{\CircPackage}\rhead{A PSTricks package for drawing electric circuits}
+\pagestyle{fancy}
+
+\psset{subgriddiv=0,griddots=5,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}
+\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
+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}
+
+\setlength{\columnseprule}{0.6pt}
+\begin{multicols}{2}
+{\parskip 0pt \tableofcontents}
+\end{multicols}
+
+\section{Introduction}
+
+The package \CircPackage{} is a collection of graphical elements based
+on PStricks that can be used to facilitate display of electronic
+circuit elements. For example, an equivalent circuit of a voltage
+source, its source impedance, and a connected load can easily be
+constructed along with arrows indicating current flow and potential
+differences. The emphasis is upon the circuit elements and the
+details of the exact placement are hidden as much as possible so the
+author can focus on the circuitry without the distraction of sorting
+out the underlying vector graphics.
+
+\section{Usage}
+
+\subsection{Parameters}
+
+There are specific paramaters defined to change easily the behaviour of the pst-circ
+objects you are drawing.
+
+%\begin{multicols}{2}
+\begin{description}
+\item[\HLTTc{intensity} (boolean):] (\emph{default:~false})
+\item[\HLTTc{intensitylabel} (string):] (\emph{default:~\texttt{\cs{empty}}})
+\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{tensionoffset} (dimension):] (\emph{default:~1})
+\item[\HLTTc{tensionlabeloffset} (dimension):] (\emph{default:~1.2})
+\item[\HLTTc{tensioncolor} (PSTricks color):] (\emph{default:~black})
+\item[\HLTTc{tensionlabelcolor} (PSTricks color):] (\emph{default:~black})
+\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{dipoleconvention}:] (\emph{default:~receptor})
+\item[\HLTTc{directconvetion} (boolean):] (\emph{default:~true})
+\item[\HLTTc{dipolestyle} (string):] (\emph{default:~normal})
+\item[\HLTTc{variable} (boolean):] (\emph{default:~false})
+\item[\HLTTc{parallel} (boolean):] (\emph{default:~false})
+\item[\HLTTc{parallelarm} (dimension):] (\emph{default:~1.5})
+\item[\HLTTc{parallelsep} (real):] (\emph{default:~0})
+\item[\HLTTc{parallelnode} (boolean):] (\emph{default:~false})
+\item[\HLTTc{intersect} (boolean):] (\emph{default:~false})
+\item[\HLTTc{intersectA} (node):]
+\item[\HLTTc{intersectB} (node):]
+\item[\HLTTc{OAinvert} (boolean):] (\emph{default:~true})
+\item[\HLTTc{OAperfect} (boolean):] (\emph{default:~true})
+\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{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{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{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{tripolestyle} (string):] (\emph{default:~normal})
+\end{description}
+%\end{multicols}
+
+\section{Macros}
+
+\subsection{Dipole macros}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\resistor"(A)(B){$R$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\capacitor"(A)(B){$C$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\battery"(A)(B){$E$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\coil"(A)(B){$L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\Ucc"(A)(B){$E$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\Icc"(A)(B){$\eta$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\switch"(A)(B){$K$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\diode"(A)(B){$D$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\Zener"(A)(B){$D$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\lamp"(A)(B){$\mathcal L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\circledipole"(A)(B){$\mathcal G$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\LED"(A)(B){$\mathcal D$}
+\end{PSideBySideExample}
+
+\subsection{Tripole macros}
+
+Obviously, tripoles are not node connections. So \CircPackage{} tries its best to adjust the
+position of the tripole regarding the three nodes. Internally, the connections are done by the
+\cs{ncangle} pst-node macro. However, the auto-positionning and the auto-connections are not always
+well chosen\footnote{This is something we are working on. I think that auto-positionning and
+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)
+ \pnode(0,0){A}
+ \pnode(0,3){B}
+ \pnode(5,1.5){C}
+ /HLCBWz&\OA"(B)(A)(C)
+\end{PSideBySideExample}
+
+\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{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \pnode(0,2){A}
+ \pnode(5,2){B}
+ \pnode(0,0){C}
+ /HLCBWz&\Tswitch"(A)(B)(C){$K$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \pnode(3,2.25){C}
+ /HLCBWz&\potentiometer"[labeloffset=0pt](A)(B)(C){$P$}
+\end{PSideBySideExample}
+
+\subsection{Quadrupole macros}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5)
+ \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}
+
+\begin{PSideBySideExample}[xrightmargin=4.5cm](4,3)
+ \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}
+
+\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)
+ \pnode(0,0){A}
+ \pnode(8,8){B}
+ /HLCBWz&\multidipole"(A)(B)\resistor{$R$}%
+ \capacitor[linecolor=red]{$C$}%
+ \diode{$D$}/HLrnode&/HLCBWz."
+\end{PSideBySideExample}
+
+\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.
+
+
+\subsection{Wire}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\wire"(A)(B)
+\end{PSideBySideExample}
+
+\subsection{Potential}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ /HLCBWz&\tension"(A)(B){$u$}
+\end{PSideBySideExample}
+
+\subsection{ground}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \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}
+
+\section{Parameters}
+
+\subsection{Label parameters}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor[/HLCBWz&labeloffset"=0](A)(B){$R$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,0){A}
+ \pnode(3,2){B}
+ \resistor[/HLCBWz&labelangle"=:U](A)(B){$R$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,0){A}
+ \pnode(3,2){B}
+ \resistor[/HLCBWz&labelangle"=0](A)(B){$R$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5)
+ \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}
+
+
+\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},
+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.
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor[/HLCBWz&intensity",/HLCBWz&tension"](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor[intensity,tension,
+ /HLCBWz&dipoleconvention"=generator](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor[intensity,tension,
+ /HLCBWz&directconvention"=false](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor[intensity,tension,
+ dipoleconvention=generator,directconvention=false](A)(B){}
+\end{PSideBySideExample}
+
+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
+automatically set to true.
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor[/HLCBWz&intensitylabel"=$i$,/HLCBWz&tensionlabel"=$u$](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \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)
+ \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}
+
+Some specific intensity parameters are available for tripoles and quadrupoles.
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \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)
+ \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(0,5){A}
+ \pnode(0,0){B}
+ \pnode(5,5){C}
+ \pnode(5,0){D}
+ \transformer[/HLCBWz&transformeriprimarylabel"=$i_1$,
+ /HLCBWz&transformerisecondarylabel"=$i_2$]%
+ (A)(B)(C)(D){$\mathcal T$}
+\end{PSideBySideExample}
+
+
+\subsection{Parallel parameters}
+
+If the \HLTTc{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)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor(A)(B){}
+ \resistor[/HLCBWz&parallel"](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor(A)(B){}
+ \resistor[parallel,/HLCBWz&parallelsep"=.5](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor(A)(B){}
+ \resistor[parallel,parallelsep=.3,
+ /HLCBWz&parallelarm"=2](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3)
+ \pnode(0,.5){A}
+ \pnode(3,.5){B}
+ \resistor(A)(B){}
+ \resistor[parallel,parallelsep=.3,
+ parallelarm=2,/HLCBWz&parallelnode"](A)(B){}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8)
+ \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}
+
+Note: When used with \cs{multidipole}, the parallel \HLTTc{parameter}
+must not be set for the first dipole.
+
+\subsection{Wire intersections}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3)
+ \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 parameters work also with \cs{multidipole}.
+
+\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8)
+ \pnode(0,0){A}
+ \pnode(8,8){B}
+ \pnode(0,8){C}
+ \pnode(8,0){D}
+ \wire(A)(B)
+ \multidipole(C)(D)\resistor{$R$}%
+ \wire[intersect,intersectA=A,intersectB=B]%
+ \capacitor{$C$}.
+\end{PSideBySideExample}
+
+
+
+\subsection{Dipole style parameters}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \resistor[/HLCBWz&dipolestyle"=/HLCBWz&zigzag"](A)(B){$R$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \capacitor[dipolestyle=/HLCBWz&chemical"](A)(B){$C$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \capacitor[dipolestyle=/HLCBWz&elektor"](A)(B){$C$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \capacitor[dipolestyle=/HLCBWz&elektorchemical"](A)(B){$C$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \coil[dipolestyle=/HLCBWz&rectangle"](A)(B){$L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \coil[dipolestyle=/HLCBWz&curved"](A)(B){$L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \coil[dipolestyle=/HLCBWz&elektor"](A)(B){$L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \coil[dipolestyle=/HLCBWz&elektorcurved"](A)(B){$L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \diode[dipolestyle=/HLCBWz&thyristor"](A)(B){$T$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \diode[dipolestyle=/HLCBWz&GTO"](A)(B){$T$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \diode[dipolestyle=/HLCBWz&triac"](A)(B){$T$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \resistor[/HLCBWz&variable"](A)(B){$R$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \capacitor[/HLCBWz&variable"](A)(B){$C$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \coil[/HLCBWz&variable"](A)(B){$L$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \battery[/HLCBWz&variable"](A)(B){$U$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2)
+ \pnode(0,1){A}
+ \pnode(3,1){B}
+ \coil[dipolestyle=/HLCBWz&elektor",variable](A)(B){$L$}
+\end{PSideBySideExample}
+
+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)
+ \pnode(0,0){A}
+ \pnode(3,3){B}
+ \pnode(3,1.5){C}
+ \potentiometer[,dipolestyle=/HLCBWz&zigzag",%
+ labelangle=:U](A)(B)(C){$P$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=4.5cm](4,4)
+ \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}
+
+
+\subsection{Tripole style parameters}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \pnode(0,2){A}
+ \pnode(5,2){B}
+ \pnode(0,0){C}
+ \Tswitch[tripolestyle=left](A)(B)(C){$K$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \pnode(0,2){A}
+ \pnode(5,2){B}
+ \pnode(0,0){C}
+ \Tswitch[tripolestyle=right](A)(B)(C){$K$}
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \pnode(0,3){A}
+ \pnode(0,0){B}
+ \pnode(5,1.5){C}
+ \OA[tripolestyle=french](A)(B)(C)
+\end{PSideBySideExample}
+
+\subsection{Other Parameters}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \pnode(0,0){A}
+ \pnode(0,3){B}
+ \pnode(5,1.5){C}
+ \OA[/HLCBWz&OAinvert"=false](B)(A)(C)
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3)
+ \pnode(0,0){A}
+ \pnode(0,3){B}
+ \pnode(5,1.5){C}
+ \OA[/HLCBWz&OAperfect"=false](B)(A)(C)
+\end{PSideBySideExample}
+
+\begin{PSideBySideExample}[xrightmargin=5.5cm](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}
+
+
+\section{Examples}
+
+\begin{SideBySideExample}[xrightmargin=8cm]
+ \begin{pspicture}(-1.5,-1)(6,5)
+ \psgrid[subgriddiv=1,griddots=10]
+ % Node definitions
+ \pnode(0,0){A}
+ \pnode(0,3){B}
+ \pnode(4.5,3){C}
+ \pnode(4.5,0){D}
+ % Dipole node connection
+ \Ucc[tension,dipoleconvention=generator](A)(B){$E$}
+ \multidipole(B)(C)%
+ \switch[intensitylabel=$i$]{$K$}%
+ \resistor[labeloffset=0,tensionlabel=$u_R$]{$R$}.
+ \capacitor[tensionlabel={$u_C$},
+ tensionlabeloffset=-1.2,tensionoffset=-1,
+ directconvention=false](D)(C){$C$}
+ % Wire to complete circuit
+ \wire(A)(D)
+ % Ground
+ \ground(D)
+ \end{pspicture}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[xrightmargin=8cm]
+ \begin{pspicture}(-0.5,0)(7,8)
+ \psgrid[subgriddiv=1,griddots=10]
+ % Node definitions
+ \pnode(0.5,1){A}
+ \pnode(3.5,1){B}
+ \pnode(6.5,1){C}
+ \pnode(0.5,4){D}
+ \pnode(3.5,4){Minus}
+ \pnode(3.5,3){Plus}
+ \pnode(6.5,5){S}
+ \pnode(3.5,5){E}
+ % Dipole node connections
+ \resistor(D)(Minus){$R_2$}
+ \capacitor(E)(S){$C$}
+ \resistor[parallel,parallelarm=2](E)(S){$R_1$}
+ \OA[intensity](Minus)(Plus)(S)
+ % Wires
+ \wire(Minus)(E)
+ \wire(Plus)(B)
+ % Tensions
+ \tension(A)(D){$u_E$}
+ \makeatletter % (special tricks see below)
+ \tension(C)(S@@){$u_S$}
+ \tension[linecolor=blue](Plus@@)(Minus@@){$\epsilon$}
+ \makeatother
+ % Grounds
+ \ground(A)
+ \ground(B)
+ \ground(C)
+ \end{pspicture}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[xrightmargin=8.5cm]
+ \begin{pspicture}(-1,0)(7,8)
+ \psgrid[subgriddiv=1,griddots=10]
+ % Node definitions
+ \pnode(1,1){A}
+ \pnode(1,7){B}
+ \pnode(3,1){C}
+ \pnode(3,7){D}
+ % Dipole node connections
+ \Ucc[tensionlabel=$E$](A)(B){}
+ \resistor(B)(D){$R$}
+ \coil(D)(C){$L$}
+ \capacitor[parallel,parallelarm=2.5](D)(C){$C$}
+ % Wire
+ \wire(A)(C)
+ \end{pspicture}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[xrightmargin=8.5cm]
+ \begin{pspicture}(6,6)
+ \psgrid[subgriddiv=1,griddots=10]
+ % Node definitions
+ \pnode(0,3){A}
+ \pnode(3,3){B}
+ \pnode(6,3){C}
+ % Dipole node connections
+ \coil[intensitylabel=$i$](A)(B){$L$}
+ \coil[intensitylabel=$i'$,intensitycolor=green,%
+ parallel,parallelarm=2](B)(C){$L'$}
+ \capacitor[parallel,parallelarm=-2](B)(C){$C$}
+ \end{pspicture}
+\end{SideBySideExample}
+
+\begin{SideBySideExample}[xrightmargin=8.5cm]
+ \begin{pspicture}(6,6)
+ \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}
+ \pnode(2.5,4){Gprime}\pnode(2.5,0){Hprime}
+ \pnode(0,4){C}\pnode(6,4){D}
+ \pnode(0.3,6){E}\pnode(5.7,6){F}
+ \pnode(4,6){G}\pnode(4,0){H}
+ \multidipole(G)(H)%
+ \wire[intersect,
+ intersectA=C,intersectB=D]
+ \resistor{$R'_3$}.
+ \resistor(E)(G){$R'_1$}
+ \resistor(G)(F){$R'_2$}
+ \multidipole(C)(D)\resistor{$R_1$}%
+ \wire\resistor{$R_2$}.
+ \wire(A)(B)\wire(Cprime)(E)
+ \wire(Dprime)(F)
+ \resistor(Hprime)(Gprime){$R_3$}
+ \end{pspicture}
+\end{SideBySideExample}
+
+
+
+\begin{SideBySideExample}[xrightmargin=9.5cm]
+ \begin{pspicture}(9,11)
+ \psgrid[subgriddiv=1,griddots=10]
+ % 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}
+ %
+ \switch(A)(C){$K$}
+ \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$}
+ \coil(E)(D){$L$}
+ \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]%
+ \circledipole[labeloffset=-0.7]{$E$}%
+ \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)%
+ \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}
+
+
+\makeatletter
+%
+\def\REG{\@ifnextchar[{\pst@REG}{\pst@REG[]}}
+%
+\def\pst@REG[#1](#2)(#3)(#4)#5{{%
+ \setkeys{psset}{#1,dimen=middle,arm=0}%
+ \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
+ /XC X1 X2 add 2 div def
+ /YC Y1 2 mul Y3 add 3 div def
+ /Xin XC 1 sub def
+ /Yin YC 0.5 add def
+ /Xout XC 1 add def
+ /Yout Yin def
+ /Xref XC def
+ /Yref YC 1 sub def
+ XC YC){C@}
+ \pnode(! Xin Yin){in@}
+ \pnode(! Xout Yout){out@}
+ \pnode(! Xref Yref){ref@}
+ \rput(C@){\pst@draw@REG}
+ \ncangle{#2}{in@}
+ \ncangle{#3}{out@}
+ \ncangle{#4}{ref@}
+ \rput(C@){#5}
+ }\ignorespaces}
+%
+\def\pst@draw@REG{%
+ \begingroup
+ \psset{linewidth=1.5\pslinewidth}%
+ \psframe(-1,-0.5)(1,0.75)
+ \psline(-1.5,0.5)(-1,0.5)
+ \psline(1.5,0.5)(1,0.5)
+ \psline(0,-0.5)(0,-1)
+ \endgroup
+ }
+%
+\makeatother
+
+The fellowing example was written by Manuel Luque.
+\begin{CenterExample}
+ \begin{pspicture}(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$}
+ {\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){}
+ \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}
+ \end{pspicture}
+\end{CenterExample}
+
+The fellowing example was written by Lionel Cordesses.
+
+\begin{CenterExample}
+ \begin{pspicture}(11,3)
+ \psset{dipolestyle=elektor}
+ \pnode(1,2){Vin}\pnode(0.5,2){S}\pnode(0.5,0){Sm}
+ \pnode(2.5,2){A}\pnode(4.5,2){B}\pnode(6.5,2){C}
+ \pnode(8,2){Cd}\pnode(8.5,2){D}\pnode(9.5,2){E}
+ \pnode(2.5,0){Am}\pnode(4.5,0){Bm}\pnode(6.5,0){Cm}
+ \pnode(8.5,0){Dm}\pnode(9.5,0){Em}
+ \Ucc[labeloffset=0.9](Sm)(S){$V_{in}$}\resistor(Vin)(A){$R$}
+ \capacitor(A)(Am){$C_1$} \capacitor(B)(Bm){$C_3$}
+ \capacitor[labeloffset=-0.7](D)(Dm){$C_n$}\resistor(E)(Em){$R$}
+ \coil(A)(B){$L_2$}\coil(B)(C){$L_4$}
+ \wire(Am)(Bm)\wire(Bm)(Cm)\wire(Cm)(Dm)\wire(Dm)(Em)\wire(D)(E)
+ \wire(Cd)(D)\psline[linestyle=dashed](C)(Cd)
+ \wire(S)(Vin)\wire(Sm)(Am)
+ \pscircle*(D){2\pslinewidth} \pscircle*(Dm){2\pslinewidth}
+ \pscircle*(A){2\pslinewidth} \pscircle*(Am){2\pslinewidth}
+ \pscircle*(B){2\pslinewidth} \pscircle*(Bm){2\pslinewidth}
+ \end{pspicture}
+\end{CenterExample}
+
+\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
+
+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=/&"}
+
+\begin{Verbatim}
+ \def\/emph&component/_name"{\@ifnextchar[{\pst@/emph&component/_name"}{\pst@/emph&component/_name"[]}}
+ %
+ \def\pst@/emph&component/_name"[#1](#2)(#3)#4{{%
+ \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@/emph&component/_name"
+ }\ignorespaces}
+ %
+ \def\pst@multidipole@/emph&component/_name"{\@ifnextchar[{\pst@multidipole@/emph&component/_name"@}%
+ {\pst@multidipole@/emph&component/_name"@[]}}
+ %
+ \def\pst@multidipole@/emph&component/_name"@[#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%
+ \toks0\expandafter{\pst@multidipole@output}%
+ \edef\pst@multidipole@output{%
+ \the\toks0%
+ \pst@multidipole@def@coor%
+ \noexpand\/emph&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}%
+ }%
+ \pst@multidipole@
+ }
+ %
+ \def\pst@draw@/emph&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}
+
+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}
+ % ...
+ % Extract from \pst@multidipole
+ \else
+ \ifx\circledipole #4%
+ \let\next\pst@multidipole@circledipole
+ \else
+ \ifx\LED #4%
+ \let\next\pst@multidipole@LED
+ \else
+ % Put your modification here
+ \let\next\ignorespaces
+ \fi
+ \fi
+ \fi
+ % Extract form \pst@multidipole
+ % ...
+\end{Verbatim}
+and add (in red)
+\begin{Verbatim}
+ % ...
+ % Extract from \pst@multidipole
+ \else
+ \ifx\circledipole #4%
+ \let\next\pst@multidipole@circledipole
+ \else
+ \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"
+ \let\next\ignorespaces
+ /red&\fi"
+ \fi
+ \fi
+ \fi
+ % Extract form \pst@multidipole
+ % ...
+\end{Verbatim}
+Do the same in \Verb+\pst@multidipole@+
+\begin{Verbatim}
+ % ...
+ % Extract from \pst@multidipole@
+ \else
+ \ifx\circledipole #1%
+ \let\next\pst@multidipole@circledipole
+ \else
+ \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"
+ \let\next\ignorespaces
+ \pst@multidipole@output
+ /red&\fi"
+ \fi
+ \fi
+ \fi
+ % Extract form \pst@multidipole@
+ % ...
+\end{Verbatim}
+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+%+
+at the end of lines. They are \emph{very} important in order to avoid spurious blanks.
+
+\section{Acknowledgements}
+
+We thank of course Manuel Luque for his original work on pst-circ and for his circuit
+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.
+
+\end{document}