diff options
author | Karl Berry <karl@freefriends.org> | 2008-02-29 19:16:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-02-29 19:16:32 +0000 |
commit | 5a2a066ad2bb1f45481e00ba816bac18458e6856 (patch) | |
tree | 911424e3a99109f188c84c16716c9dbe2ef19adb /Master | |
parent | f79f8dc28a02eb586b4cb2eecfe693a201c0725c (diff) |
pst-circ 1.44 (28feb08)
git-svn-id: svn://tug.org/texlive/trunk@6775 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/Changes | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf | bin | 428660 -> 506212 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex | 817 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pst-circ/pst-circ.pro | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex | 922 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-circ/pst-circ.sty | 1 |
7 files changed, 1683 insertions, 67 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-circ/Changes b/Master/texmf-dist/doc/generic/pst-circ/Changes index 92309c71048..ff340303f99 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/Changes +++ b/Master/texmf-dist/doc/generic/pst-circ/Changes @@ -1,3 +1,4 @@ +1.44 2008-02-28 (hv) - added the microwave part (Francois Boone) 1.43 2007-12-18 (hv) - fixed bug with \@empty 1.42 2007-10-15 (hv) - added better FET support (Ted Pavlic) - small changes to draw@dipole (Alan Ristow) 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 index 3b785845e22..716e220fb1e 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib +++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.bib @@ -101,12 +101,11 @@ @Book{companion, - author = {Michel Goosens and Frank Mittelbach and Alexander - Samarin}, + author = {Michel Goosens and Frank Mittelbach and Serbastian Rahtz and Denis Roegel and Herbert Vo\ss}, title = {The {\LaTeX} {G}raphics {C}ompanion}, publisher = {{Addison-Wesley Publishing Company}}, - year = {2004}, - edition = {2.}, + year = {2007}, + edition = {2nd}, address = {Reading, Mass.} } 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 c34ec7b22fa..990e456369b 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 63a82398914..d1877f73eb7 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,14 +1,17 @@ +%% $Id: pst-circ-doc.tex 3 2007-12-23 16:23:22Z herbert $ \listfiles \documentclass{article} \usepackage[a4paper]{geometry} +\usepackage[T1]{fontenc} +\usepackage{mathpazo} \usepackage{fancyhdr} \usepackage{url} % -\usepackage{pst-all} +\usepackage[dvipsnames]{pstricks} \usepackage{pst-circ} \let\verPstCirc\fileversion \usepackage{multicol} -\usepackage{showexpl} +\usepackage{showexpl,lscape} % \makeatletter \def\@UrlFont{\small\ttfamily} @@ -32,8 +35,9 @@ \begin{document} \title{\texttt{pst-circ}\\ A PSTricks package for drawing electric circuits\\\normalsize ver. \verPstCirc} -\author{Christophe Jorssen\thanks{\url{<CJ@PSTricks.de>}} and -Herbert Vo\ss\thanks{\url{<voss@PSTricks.de>}}} +\author{Christophe Jorssen\thanks{\url{<CJ@PSTricks.de>}} \and +Herbert Vo\ss\thanks{\url{<voss@PSTricks.de>}} \and Fran\c{c}ois Boone% +\thanks{(microwave symbols) \url{francois.boone@usherbrooke.ca}}} \date{\today} \maketitle @@ -61,7 +65,7 @@ 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} +\section{The basic system} \subsection{Parameters} @@ -128,9 +132,9 @@ objects you are drawing. \end{description} %\end{multicols} -\section{Macros} +\subsection{Macros} -\subsection{Dipole macros} +\subsubsection{Dipole macros} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,2)\psgrid @@ -237,7 +241,7 @@ objects you are drawing. \end{LTXexample} \bigskip -\subsection{Tripole macros} +\subsubsection{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 @@ -304,7 +308,7 @@ ideas, please mail us.}, so don't try to use tripole macros in strange situation \end{LTXexample} \bigskip -\subsection{Quadrupole macros} +\subsubsection{Quadrupole macros} \begin{LTXexample}[width=5.5cm] \begin{pspicture}(5,5)\psgrid @@ -327,7 +331,7 @@ ideas, please mail us.}, so don't try to use tripole macros in strange situation \end{LTXexample} \clearpage -\subsection{Multidipole} +\subsubsection{Multidipole} \cs{multidipole} is a macro that allows multiple dipoles to be drawn between two specified nodes. @@ -361,7 +365,7 @@ restore original values. We recommand not using it. \bigskip -\subsection{Wire} +\subsubsection{Wire} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,2)\psgrid @@ -372,7 +376,7 @@ restore original values. We recommand not using it. \end{LTXexample} \bigskip -\subsection{Potential} +\subsubsection{Potential} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,2)\psgrid @@ -383,7 +387,7 @@ restore original values. We recommand not using it. \end{LTXexample} \bigskip -\subsection{ground} +\subsubsection{ground} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,2)\psgrid @@ -397,9 +401,9 @@ restore original values. We recommand not using it. \end{LTXexample} \bigskip -\section{Parameters} +\subsection{Parameters} -\subsection{Label parameters} +\subsubsection{Label parameters} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,1)\psgrid @@ -451,7 +455,7 @@ restore original values. We recommand not using it. \end{LTXexample} \bigskip -\subsection{Current intensity and electrical potential parameters} +\subsubsection{Current intensity and electrical potential parameters} 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}, @@ -567,7 +571,7 @@ Some specific intensity parameters are available for tripoles and quadrupoles. \end{LTXexample} -\subsection{Parallel parameters} +\subsubsection{Parallel parameters} If the \texttt{parallel} parameter is set to \texttt{true}, the dipole is drawn parallel to the line connecting the nodes. @@ -626,7 +630,7 @@ must not be set for the first dipole. -\subsection{Wire intersections} +\subsubsection{Wire intersections} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,3)\psgrid @@ -656,7 +660,7 @@ Wire intersect parameters work also with \cs{multidipole}. \bigskip -\subsection{Dipole style parameters} +\subsubsection{Dipole style parameters} \begin{LTXexample}[width=3.5cm] \begin{pspicture}[showgrid=true](3,2) @@ -818,7 +822,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{LTXexample} -\subsection{Tripole style parameters} +\subsubsection{Tripole style parameters} \begin{LTXexample}[width=5.5cm] \begin{pspicture}(5,3) @@ -847,7 +851,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{pspicture} \end{LTXexample} -\subsection{Potentiometer tripole} +\subsubsection{Potentiometer tripole} \begin{pspicture}(3,3) \psgrid @@ -926,7 +930,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \potentiometer[dipolestyle=zigzag](A)(B)(C){P} \end{pspicture} -\subsection{Other Parameters} +\subsubsection{Other Parameters} \begin{LTXexample}[width=5.5cm] \begin{pspicture}(5,3) @@ -980,9 +984,9 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{LTXexample} \clearpage -\section{Special objects} +\subsection{Special objects} -\subsection{\texttt{\textbackslash dashpot}} +\subsubsection{\texttt{\textbackslash dashpot}} \begin{LTXexample}[pos=t] @@ -1017,7 +1021,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. -\section{Examples} +\subsection{Examples} \begin{LTXexample}[width=8cm] \begin{pspicture}(-1.5,-1)(6,5) @@ -1242,7 +1246,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. % \makeatother -The fellowing example was written by Manuel Luque. +The following example was written by Manuel Luque. \begin{LTXexample}[pos=t] \begin{pspicture}(0,-0.5)(14,4) @@ -1271,7 +1275,7 @@ The fellowing example was written by Manuel Luque. \end{LTXexample} \clearpage -The fellowing example was written by Lionel Cordesses. +The following example was written by Lionel Cordesses. @@ -1297,7 +1301,7 @@ The fellowing example was written by Lionel Cordesses. \end{LTXexample} \clearpage -The fellowing example was written by Christian Hoffmann. +The following example was written by Christian Hoffmann. \begin{LTXexample}[pos=t] @@ -1327,6 +1331,759 @@ The fellowing example was written by Christian Hoffmann. + +\clearpage +\section{Microwave symbols} +Since for microwave signal, the direction in which the signal spreads is very important, +There are dipoleinput or tripoleinput or quadripoleinput and arrowinput parameters. +The value of theses parameters are left or right for the first one and true or false for second one. +% +\begin{verbatim} +%%%%% +\ifPst@inputarrow + \ifx\psk@Dinput\pst@Dinput@right + \pcline[arrows=-C](#2)(dipole@1) + \pcline[arrows=->,arrowinset=0](#3)(dipole@2) + \else + \pcline[arrows=->,arrowinset=0](#2)(dipole@1) + \pcline[arrows=C-](dipole@2)(#3) + \fi +\else + \pcline[arrows=-C](#2)(dipole@1) + \pcline[arrows=C-](dipole@2)(#3) +\fi +\pcline[fillstyle=none,linestyle=none](#2)(#3) +%%%%% +\end{verbatim} +The last line is to correct somme problems when I use colors (see example2) + +To add color in components (Monopole, tripole and Quadripole) I add a new +argument since I don't know how to do this by another way. However, +I think it is not the optimal solution. For dipole, to put commands for +color in the first optionnal argument is ok. + +Finally, something doesn't work with multidipole: this following example works: +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(4,2)\psgrid + \pnode(0.5,1){A} + \pnode(3.5,1){B} + \multidipole(A)(B)\filter{BPF}% + \resistor{$R$}. +\end{pspicture} +\end{LTXexample} +However, this following one doesn't work: +\begin{verbatim} +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(4,2)\psgrid + \pnode(0.5,1){A} + \pnode(3.5,1){B} + \multidipole(A)(B)\amplifier{LNA}% + \resistor{$R$}. +\end{pspicture} +\end{LTXexample} +\end{verbatim} + + +\subsection{New monopole components} +\subsubsection{New ground} +\begin{description} + \item[groundstyle:] ads | old | triangle +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(1,1){B} + \pnode(2.5,1){C} + \newground(A) + \newground[groundstyle=old]{135}(B) + \newground[linecolor=blue,groundstyle=triangle]{180}(C) +\end{pspicture} +\end{LTXexample} + + +\subsubsection{Antenna} +\begin{description} + \item[antennastyle:] two | three | triangle +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,0.5){A} + \antenna[antennastyle=three](A) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,0.5){A} + \antenna(A) +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,0.5){A} + \antenna[antennastyle=triangle](A) +\end{pspicture} +\end{LTXexample} + + +\subsection{New monopole macro-components} +\subsubsection{Oscillator} +\begin{description} + \item[output:] top | right | bottom | left + \item[inputarrow:] false | true + \item[LOstyle:] -- | crystal +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,1){A} + \oscillator[output=left,inputarrow=false](A)% + {$f_{LO}$}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,1){A} + \oscillator[output=top,inputarrow=true,LOstyle=crystal](A)% + {f$_{\textrm{LO}}$}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,1){A} + \oscillator[output=right,inputarrow=false](A)% + {$f_{LO}$}{fillstyle=solid,fillcolor=blue} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(1,1){A} + \oscillator[output=bottom,inputarrow=false](A)% + {$f_{LO}$}{} +\end{pspicture} +\end{LTXexample} + +\subsection{New dipole macro-components} +\subsubsection{Filters} +\begin{description} + \item[dipolestyle:] bandpass | lowpass | highpass + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \filter(A)(B){BPF} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \filter[dipolestyle=lowpass,fillstyle=solid,% + fillcolor=red](A)(B){LPF} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \filter[dipolestyle=highpass,dipoleinput=right,% + inputarrow=true](A)(B){HPF} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \filter[dipolestyle=highpass,inputarrow=true](A)(B){BPF} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Isolator} +\begin{description} + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \isolator[inputarrow=true](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \isolator[dipoleinput=right,inputarrow=true,fillstyle=solid,% + fillcolor=yellow](A)(B){Isolator} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \isolator[dipoleinput=left](A)(B){} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Frequency multiplier/divider} +\begin{description} + \item[dipolestyle:] multiplier | divider + \item[value:] N | $n\in N$ + \item[programmable:] false | true + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \freqmult[dipolestyle=divider,inputarrow=true](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \freqmult[dipolestyle=multiplier,value=10](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,3)\psgrid + \pnode(0,1.5){A} + \pnode(3,1.5){B} + \freqmult[dipolestyle=multiplier,programmable=true,% + labeloffset=-1,% + dipoleinput=right,% + inputarrow=true, + fillstyle=solid, + fillcolor=green](A)(B){10<N<35} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Phase shifter} +\begin{description} + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A1} + \pnode(3,1){A2} + \phaseshifter(A1)(A2){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){B1} + \pnode(3,1){B2} + \phaseshifter[inputarrow=true,% + dipoleinput=right,fillstyle=solid,fillcolor=red]% + (B1)(B2){90\ensuremath{^\circ}} +\end{pspicture} +\end{LTXexample} + +\subsubsection{VCO} +\begin{description} + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A1} + \pnode(3,1){A2} + \vco[fillstyle=solid,fillcolor=yellow](A1)(A2){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){B1} + \pnode(3,1){B2} + \vco[dipoleinput=right,inputarrow=true](B1)(B2){VCO} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Amplifier} +\begin{description} + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \amplifier[inputarrow=true](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \amplifier[dipoleinput=right,inputarrow=true](A)(B){PA} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \amplifier[dipoleinput=left](A)(B){LNA} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Detector} +\begin{description} + \item[inputarrow:] false | true + \item[dipoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \detector[inputarrow=true](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \detector[dipoleinput=right,inputarrow=true](A)(B){} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \detector[dipoleinput=left](A)(B){} +\end{pspicture} +\end{LTXexample} + +\subsection{New tripole macro-components} +\subsubsection{Mixer} +\begin{description} + \item[tripolestyle:] bottom | top + \item[tripoleconfig:] left | right + \item[inputarrow:] false | true +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,2){C} + \mixer[tripolestyle=top,inputarrow=true](A)(B)(C)% + {Mixer}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,0){C} + \mixer[inputarrow=true,tripoleinput=right](A)(B)(C)% + {Mixer}{fillstyle=solid,fillcolor=yellow} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Circulator} +\begin{description} + \item[tripolestyle:] circulator | isolator + \item[inputarrow:] false | true + \item[tripoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,0){C} + \circulator{0}(A)(B)(C){Circulator}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,3)\psgrid + \pnode(1.5,0.5){A} + \pnode(1.5,2.5){B} + \pnode(0.5,1.5){C} + \circulator[tripolestyle=isolator,inputarrow=true]{90}% + (A)(B)(C){Isolator}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,0){C} + \circulator[tripoleconfig=right,tripolestyle=isolator,% + inputarrow=true,tripoleinput=right]{0}% + (B)(A)(C){Isolator}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,2){C} + \circulator[tripoleconfig=right,inputarrow=true]{180}% + (A)(B)(C){Isolator}{fillstyle=solid,fillcolor=red} +\end{pspicture} +\end{LTXexample} + +\subsubsection{Agc} +\begin{description} + \item[inputarrow:] false | true + \item[tripoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,0){C} + \agc(A)(B)(C){AGC}{fillstyle=solid,fillcolor=yellow} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0.5,1){A} + \pnode(2.5,1){B} + \pnode(1.5,0){C} + \agc[tripoleinput=right,inputarrow=true](A)(B)(C)% + {AGC}{fillstyle=solid,fillcolor=blue} +\end{pspicture} +\end{LTXexample} + +\subsection{New quadripole macro-components} +\subsubsection{Coupler} +\begin{description} + \item[couplerstyle:] hybrid | directional + \item[inputarrow:] false | true + \item[quadripoleinput:] left | right +\end{description} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1.4){A} + \pnode(0,0.6){B} + \pnode(3,1.4){C} + \pnode(3,0.6){D} + \coupler[couplerstyle=hybrid,inputarrow=true](A)(B)(C)(D)% + {Hyb. $180$\ensuremath{^\circ}}% + {fillstyle=solid,fillcolor=yellow} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1.4){A} + \pnode(0,0.6){B} + \pnode(3,1.4){C} + \pnode(3,0.6){D} + \coupler[couplerstyle=directional](A)(B)(C)(D){10~dB}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1.4){A} + \pnode(0,0.6){B} + \pnode(3,1.4){C} + \pnode(3,0.6){D} + \coupler[couplerstyle=hybrid,inputarrow=true,% + quadripoleinput=right](A)(B)(C)(D)% + {Hyb. $180$\ensuremath{^\circ}}{} +\end{pspicture} +\end{LTXexample} + +\begin{LTXexample}[width=3.5cm,rframe={}] +\begin{pspicture}(3,2)\psgrid + \pnode(0,1.4){A} + \pnode(0,0.6){B} + \pnode(3,1.4){C} + \pnode(3,0.6){D} + \coupler[couplerstyle=directional,quadripoleinput=right,% + inputarrow=true](A)(B)(C)(D){10~dB}{} +\end{pspicture} +\end{LTXexample} + + +\subsection{Examples} +\subsubsection{Radiometer block diagram example} +From Chang, K., RF and Microwave Wireless Systems, Wiley InterScience, page 319, ISBN 0-471-35199-7 + +\noindent +\resizebox{\linewidth}{!}{% +\begin{pspicture}(1,2)(19,9) + \pnode(2,8){A} + \antenna{90}(A) + \rput(4,8){\rnode{B}{\psframebox{\begin{tabular}{c}Ferrite\\Switch\end{tabular}}}} + \ncline{A}{B} + %%% Branche Calibration + \pnode(4,6){C} + \pnode(4,4){D} + \pnode(5,5){E} + \circulator[tripolestyle=isolator,tripoleconfig=right]{90}(C)(D)(E){Isolator}{} + \ncline{B}{C} + \pnode(3,3){F} + \pnode(5,3){G} + \resistor[unit=0.5,dipolestyle=zigzag,variable=true](F)(G){} + \pnode(4,3){H} + \ncline{D}{H} + \rput[t](4,2.75){% + \begin{tabular}{c} + Hot and Cold\\ + loads for calibration + \end{tabular}} + %%% Branche réception + \pnode(6,8){R1} + \pnode(8,8){R2} + \pnode(7,7){X1} + \circulator[tripolestyle=isolator,tripoleconfig=right]{180}(R1)(R2)(X1){Isolator}{} + \ncline{B}{R1} + \pnode(10,8){R3} + \pnode(9,7){X2} + \mixer[inputarrow=true](R2)(R3)(X2){Mixer}{} + \pnode(9,6){X3} + \oscillator[output=top](X3){LO}{} + \pnode(12,8){R4} + \ncline{R3}{R4} + \naput{0.5~GHZ} + \pnode(14,8){R5} + \filter(R4)(R5){BPF}% + \pnode(16,8){R6} + \amplifier[inputarrow=true](R5)(R6){IF~Amp} + \pnode(18,8){R7} + \detector[inputarrow=true](R6)(R7){Detector} + \pnode(18,4){R8} + \amplifier[inputarrow=true,labeloffset=-1](R7)(R8){Amp} + \pscircle[fillstyle=solid,fillcolor=white](18,4){0.1} + \rput[t](18,3.9){% + \begin{tabular}{c} + Output\\ + for processing + \end{tabular}} +\end{pspicture}} + +\clearpage +\begin{landscape} +\subsubsection{Ku-band Transceiver} +\resizebox{\linewidth}{!}{% +\psset{unit=1cm} +\begin{pspicture}(0,-3.5)(29.25,11) + \rput[r](1.9,8){70/140MHz} + \pnode(2,8){N1} + \pnode(4,8){N2} + \amplifier[fillstyle=solid,fillcolor=Thistle,inputarrow=true](N1)(N2){IF~Amp} + + \pnode(6,8){N3} + \pnode(5,7){D1} + \mixer(N2)(N3)(D1){}{} + + \pnode(5,5){D2} + \amplifier[fillstyle=solid,fillcolor=CornflowerBlue,labeloffset=-1.5](D2)(D1){L-Band Buffers} + \pnode(3,5){D3} + \amplifier[fillstyle=solid,fillcolor=CornflowerBlue](D3)(D2){} + \pnode(2,5){D4} + \oscillator[output=right](D4){VCO}{fillstyle=solid,fillcolor=Orange} + \psframe(1.25,3)(2.75,5.75) + \rput[b](2,3.1){\large\textbf{L-band}} + \pnode(5,3){D5} + \amplifier[fillstyle=solid,fillcolor=CornflowerBlue](D2)(D5){} + + \pnode(2,2){R1} + \pnode(4,2){R2} + \amplifier[fillstyle=solid,fillcolor=Thistle](R2)(R1){IF~Amp} + \rput[r](1.9,2){70/140MHz} + \pnode(6,2){R3} + \filter(R3)(R2){} + \pnode(8,2){R4} + \pnode(7,3){D6} + \mixer[tripolestyle=top](R3)(R4)(D6){}{} + \ncline{D5}{D6} + + \pnode(8,8){N4} + \filter(N3)(N4){} + \pnode(10,8){N5} + \amplifier[fillstyle=solid,fillcolor=NavyBlue](N4)(N5){L-band Amp} + \pnode(12,8){N6} + \resistor[unit=0.5,dipolestyle=zigzag,variable=true,labeloffset=-0.8](N5)(N6){RF Atten} + \pnode(11,8){U0} + + \pnode(14,8){N7} + \amplifier[fillstyle=solid,fillcolor=NavyBlue](N6)(N7){} + \pnode(16,8){N8} + \pnode(15,7){D7} + \mixer(N7)(N8)(D7){Mixer}{fillstyle=solid,fillcolor=BurntOrange} + \pnode(18,8){N9} + \filter(N8)(N9){} + \pnode(20,8){N10} + \amplifier[fillstyle=solid,fillcolor=NavyBlue,labeloffset=-0.8](N9)(N10){L-band Amp} + \pnode(22,8){N11} + \pnode(21,7){X1} + \mixer(N10)(N11)(X1){Mixer}{fillstyle=solid,fillcolor=BurntOrange} + \pnode(24,8){N12} + \filter(N11)(N12){} + \pnode(26,8){N13} + \amplifier[fillstyle=solid,fillcolor=RubineRed,labeloffset=-0.8](N12)(N13){Ku-band Amp} + + \pnode(18,10){U2} + \pnode(20,10){U3} + \detector[fillstyle=solid,fillcolor=NavyBlue,dipoleinput=right](U2)(U3){Det L-Band} + \pnode(11,10){U1} + \ncline{U2}{U1} + \ncline{U1}{U0} + \pnode(24,10){U4} + \pnode(26,10){U5} + \detector[fillstyle=solid,fillcolor=RubineRed,dipoleinput=right](U4)(U5){Det Ku-Band} + \ncline{U4}{U3} + \ncline{U5}{N13} + + \pnode(15,5){D8} + \amplifier[fillstyle=solid,fillcolor=CornflowerBlue,labeloffset=-1.5](D8)(D7){L-Band Buffers} + \pnode(13,5){D9} + \amplifier[fillstyle=solid,fillcolor=CornflowerBlue](D9)(D8){} + \pnode(13,4){D10} + \ncline{D9}{D10} + \pnode(11,4){D11} + \vco[fillstyle=solid,fillcolor=Orange](D11)(D10){VCO} + \rput(10,4){\rnode{D12}{\psframebox{\textbf{PLL}}}} + \ncline{D11}{D12} + \pnode(10,6){D13} + \ncline{D12}{D13} + \pnode(11,6){D14} + \ncline{D13}{D14} + \pnode(13,6){D15} + \freqmult[fillstyle=solid,fillcolor=Goldenrod,dipolestyle=divider](D14)(D15){Prescaler} + \ncline{D15}{D9} + \psframe(9.5,3.25)(13.1,7) + \rput[tl](9.7,6.8){\large\textbf{L-Band}} + + \pnode(10,2){R5} + \amplifier[fillstyle=solid,fillcolor=NavyBlue](R5)(R4){L-band Amp} + \pnode(12,2){R6} + \resistor[unit=0.5,dipolestyle=zigzag,variable=true,labeloffset=-0.8](R5)(R6){RF Atten} + \pnode(14,2){R7} + \amplifier[fillstyle=solid,fillcolor=NavyBlue](R7)(R6){L-band Amp} + \pnode(16,2){R8} + \filter(R8)(R7){} + \pnode(18,2){R9} + \pnode(17,3){D17} + \mixer[tripolestyle=top](R8)(R9)(D17){Mixer}{fillstyle=solid,fillcolor=BurntOrange} + + \pnode(15,3){D16} + \amplifier[fillstyle=solid,fillcolor=CornflowerBlue](D8)(D16){} + \ncline{D16}{D17} + + \pnode(20,2){R10} + \amplifier[fillstyle=solid,fillcolor=NavyBlue](R10)(R9){L-band Amp} + \pnode(22,2){R11} + \amplifier[fillstyle=solid,fillcolor=NavyBlue](R11)(R10){L-band Amp} + \pnode(24,2){R12} + \filter(R12)(R11){} + \pnode(26,2){R13} + \pnode(25,1){R15} + \mixer(R12)(R13)(R15){Mixer}{fillstyle=solid,fillcolor=BurntOrange} + \pnode(28,2){R14} + \amplifier[fillstyle=solid,fillcolor=Purple](R14)(R13){Ku-band LNA} + + \pnode(25,-1){R16} + \amplifier[fillstyle=solid,fillcolor=OliveGreen,labeloffset=-1.6](R16)(R15){Ku-band Buffers} + \pnode(24,-1){R17} + \ncline{R16}{R17} + \pnode(24,-2){R18} + \ncline{R17}{R18} + \pnode(22,-2){R19} + \vco[fillstyle=solid,fillcolor=Red](R18)(R19){Ku-band} + \rput(21,-2){\rnode{R20}{\psframebox{\textbf{PLL}}}} + \ncline{R19}{R20} + \pnode(21,0){R21} + \ncline{R20}{R21} + \pnode(22,0){R22} + \ncline{R21}{R22} + \pnode(24,0){R23} + \freqmult[fillstyle=solid,fillcolor=Goldenrod,dipolestyle=divider](R22)(R23){Prescaler} + \ncline{R23}{R17} + \psframe(18,-3)(28.5,3) + \rput[br](28,-2.75){\large\textbf{LNB}} + \rput[bl](18,3.1){% + \begin{tabular}{l} + \textbf{950-1540 MHz}\\ + \textbf{900-1700 MHz} + \end{tabular}} + \cnode(29,2){.1}{S2} + \ncline{R14}{S2} + + \pnode(21,5.5){X2} + \ncline{X1}{X2} + \pnode(24,5.5){X3} + \amplifier[fillstyle=solid,fillcolor=OliveGreen](X3)(X2){Ku-band Buffers} + \pnode(24,6.25){X4} + \ncline{X3}{X4} + \pnode(26,6.25){X5} + \freqmult[fillstyle=solid,fillcolor=Goldenrod,dipolestyle=divider,labeloffset=-0.7](X4)(X5){Prescaler} + \pnode(27,6.25){X6} + \ncline{X5}{X6} + \rput(27,4.75){\rnode{X7}{\psframebox{\textbf{PLL}}}} + \ncline{X6}{X7} + \pnode(26,4.75){X8} + \ncline{X7}{X8} + \pnode(24,4.75){X9} + \vco[fillstyle=solid,fillcolor=Red](X8)(X9){Ku-band} + \ncline{X9}{X3} + \psframe(23.75,3.25)(28.5,7) + \rput[br](28,3.5){\large\textbf{Ku-band}} + + \pnode(28.5,8){N14} + \amplifier[fillstyle=solid,fillcolor=RubineRed](N13)(N14){} + \cnode(29,8){.1}{S1} + \ncline{N14}{S1} + \psframe(26.25,7.25)(28.5,10) + \rput[t](27.375,9.75){\large \textbf{SSPA}} + + \rput[lt](2,0){\large% + \begin{tabular}{l} + \textbf{Tx/GHz: 13.75-14.00, 14.00-14.50}\\ + \textbf{Rx/GHz: 10.95-11.70, 11.20-11.70, 11.70-12.20, 12.25-12.75} + \end{tabular}} +\end{pspicture}} + +\end{landscape} + + + \clearpage \section{Flip Flops -- logical elements} @@ -1769,6 +2526,8 @@ all is finished. + + \section{Adding new components} Adding new components is not simple. As a matter of fact, because of the complex @@ -1884,6 +2643,8 @@ 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 diff --git a/Master/texmf-dist/dvips/pst-circ/pst-circ.pro b/Master/texmf-dist/dvips/pst-circ/pst-circ.pro index c2210ce174c..9eb1977939d 100644 --- a/Master/texmf-dist/dvips/pst-circ/pst-circ.pro +++ b/Master/texmf-dist/dvips/pst-circ/pst-circ.pro @@ -1,4 +1,6 @@ %! +% $Id: pst-circ.pro 3 2007-12-23 16:23:22Z herbert $ +% % PostScript prologue for pst-circ.tex. % version 0.01 2007-03-23 (hv) % For distribution, see pstricks.tex. diff --git a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex index 490bdc5b9c1..534cebc83f5 100644 --- a/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex +++ b/Master/texmf-dist/tex/generic/pst-circ/pst-circ.tex @@ -29,8 +29,8 @@ \ifx\PSTnodeLoaded\endinput\else\input pst-node.tex\fi \ifx\PSTXKeyLoaded\endinput\else\input pst-xkey \fi % -\def\fileversion{1.43} -\def\filedate{2007/12/19} +\def\fileversion{1.44} +\def\filedate{2008/02/27} \message{`pst-circ' v\fileversion (CJ,hv,pd)} % \edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax @@ -380,12 +380,12 @@ \ifPst@temp\pnode(#1){TBaseNode}% \else% \pst@getcoor{#1}\pst@tempa% - \pnode(! + \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 + /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 @@ -406,7 +406,7 @@ \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 + \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 @@ -446,12 +446,12 @@ /X2 exch \pst@number\psxunit div def \pst@tempc /Y3 exch \pst@number\psyunit div def /X3 exch \pst@number\psxunit div def - /LR X1 X2 lt { false }{ true } ifelse def % change left-right - /basesep \Pst@basesep\space \pst@number\psxunit div def + /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 -% + XBase YBase ){@@base}% base node +% \Pst@temptrue% \transistor@ii(@@base){@@emitter}{@@collector}% % @@ -459,7 +459,7 @@ \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]{% @@ -476,14 +476,14 @@ \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)} + 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)} + arrowsize=6\pslinewidth,arrowinset=0]{->}(-.1,0)(.1,0)} \nbput[npos=1.5]{\csname\psk@I@labelcolor\endcsname\psk@labelT@iC} \fi\fi% \bgroup @@ -495,14 +495,14 @@ \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)} + 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)} + 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 @@ -766,8 +766,16 @@ \ifx\dashpot #4%%% pd change \let\next\pst@multidipole@dashpot \else%%% pd change - \let\next\ignorespaces - \fi%%% pd change + \ifx\filter #4% + \let\next\pst@multidipole@filter + \else + \ifx\isolator #4% + \let\next\pst@multidipole@filter + \else + \let\next\ignorespaces + \fi + \fi + \fi%%% pd change \fi \fi \fi @@ -829,8 +837,16 @@ \ifx\dashpot #1%%% pd change \let\next\pst@multidipole@dashpot \else%%% pd change - \let\next\ignorespaces - \pst@multidipole@output + \ifx\filter #1% + \let\next\pst@multidipole@filter + \else + \ifx\isolator #1% + \let\next\pst@multidipole@isolator + \else + \let\next\ignorespaces + \pst@multidipole@output + \fi + \fi \fi%%% pd change \fi \fi @@ -1154,9 +1170,9 @@ \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) + \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} @@ -1167,24 +1183,36 @@ \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) + \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) + \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) +%%%%% + \ifPst@inputarrow + \ifx\psk@Dinput\pst@Dinput@right + \pcline[fillstyle=none,arrows=-C](#2)(dipole@1) + \pcline[fillstyle=none,arrows=->,arrowinset=0](#3)(dipole@2) + \else + \pcline[fillstyle=none,arrows=->,arrowinset=0](#2)(dipole@1) + \pcline[fillstyle=none,arrows=C-](dipole@2)(#3) + \fi + \else + \pcline[fillstyle=none,arrows=-C](#2)(dipole@1) + \pcline[fillstyle=none,arrows=C-](dipole@2)(#3) + \fi + \pcline[fillstyle=none,linestyle=none](#2)(#3) +%%%%% \pst@intensity{#2}{#3} \pst@tension{#2}{#3} \fi% @@ -1871,8 +1899,832 @@ \ncput[nrot=\psk@label@angle]{\csname\psk@tension@labelcolor\endcsname #4} }\ignorespaces} % -\def\node(#1){% -\pscircle*(#1){2\pslinewidth}} +\def\node(#1){\pscircle*(#1){2\pslinewidth}} +% +% +% +\newif\ifPst@inputarrow +\define@key[psset]{pst-circ}{inputarrow}[false]{\@nameuse{Pst@inputarrow#1}} +\newif\ifPst@programmable +\define@key[psset]{pst-circ}{programmable}[false]{\@nameuse{Pst@programmable#1}} +% +\def\pst@Gstyle@old{old} +\def\pst@Gstyle@ads{ads} +\def\pst@Gstyle@triangle{triangle} +\def\pst@Astyle@two{two} +\def\pst@Astyle@three{three} +\def\pst@Astyle@triangle{triangle} +\def\pst@LOoutput@left{left} +\def\pst@LOoutput@top{top} +\def\pst@LOoutput@right{right} +\def\pst@LOoutput@bottom{bottom} +\def\pst@LOstyle@crystal{crystal} +\def\pst@Dstyle@lowpass{lowpass} +\def\pst@Dstyle@highpass{highpass} +\def\pst@Dinput@right{right} +\def\pst@Dinput@left{left} +\def\pst@Dstyle@multiplier{multiplier} +\def\pst@Dstyle@divider{divider} +\def\pst@FMvalue@value{0} +\def\pst@tripole@style@bottom{bottom} +\def\pst@tripole@style@top{top} +\def\pst@Tinput@left{left} +\def\pst@Tinput@right{right} +\def\pst@tripole@style@circulator{circulator} +\def\pst@tripole@style@isolator{isolator} +\def\pst@Tconfig@left{left} +\def\pst@Tconfig@right{right} +\def\pst@Qstyle@directional{directional} +\def\pst@Qstyle@hybrid{hybrid} +\def\pst@Qinput@left{left} +\def\pst@Qinput@right{right} +\define@key[psset]{pst-circ}{groundstyle}{\def\psk@Gstyle{#1}} +\define@key[psset]{pst-circ}{antennastyle}{\def\psk@Astyle{#1}} +\define@key[psset]{pst-circ}{output}{\def\psk@LOoutput{#1}} +\define@key[psset]{pst-circ}{LOstyle}{\def\psk@LOstyle{#1}} +\define@key[psset]{pst-circ}{dipoleinput}{\def\psk@Dinput{#1}} +\define@key[psset]{pst-circ}{value}{\def\psk@FMvalue{#1}} +\define@key[psset]{pst-circ}{tripoleinput}{\def\psk@Tinput{#1}} +\define@key[psset]{pst-circ}{tripoleconfig}{\def\psk@Tconfig{#1}} +\define@key[psset]{pst-circ}{couplerstyle}{\def\psk@Qstyle{#1}} +\define@key[psset]{pst-circ}{quadripoleinput}{\def\psk@Qinput{#1}} +\psset{groundstyle=ads,% + antennastyle=two,% + output=top,% + dipoleinput=left,% + dipolestyle=multiplier,% + value=0,% + dipoleinput=left,% + inputarrow=false,% + tripoleinput=left,% + tripolestyle=bottom,% + tripoleconfig=left,% + quadripoleinput=left,% + couplerstyle=hybrid} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% monopole +%%% newground: groundstyle: (ads), old, triangle +%%% Antenna: antennastyle: (two), three, triangle +%%% Oscillator: oscioutput: (top), right, bottom, left, +%%% inputarrow: (false), true +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% newground %%% +\def\newground{\@ifnextchar[{\pst@newground}{\pst@newground[]}} +\def\pst@newground[#1]{% + \@ifnextchar({\pst@newgroundi[#1]{0}}{\pst@newgroundi[#1]}% +} +\def\pst@newgroundi[#1]#2(#3){% + \psset{#1}% + \rput{#2}(#3){% + \ifx\psk@Gstyle\pst@Gstyle@ads + \psline[linewidth=1.5\pslinewidth]{c-c}(-0.3,-0.5)(0.3,-0.5) + \psline[linewidth=1.5\pslinewidth]{c-c}(-0.2,-0.6)(0.2,-0.6) + \psline[linewidth=1.5\pslinewidth]{c-c}(-0.1,-0.7)(0.1,-0.7) + \fi + \ifx\psk@Gstyle\pst@Gstyle@old + \psline[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,-0.5) + \fi + \ifx\psk@Gstyle\pst@Gstyle@triangle + \pstriangle[linewidth=1.5\pslinewidth](0,-0.5)(0.4,-0.4) + \fi + \psline(0,0)(0,-0.5) + \pscircle*(#3){2\pslinewidth}% + } + \ignorespaces% +} +% +%%% antenna %%% +% +\def\antenna{\@ifnextchar[{\pst@antenna}{\pst@antenna[]}} +\def\pst@antenna[#1]{% + \@ifnextchar({\pst@antennai[#1]{0}}{\pst@antennai[#1]}% +} +\def\pst@antennai[#1]#2(#3){% + \psset{#1}% + \rput{#2}(#3){% + \ifx\psk@Astyle\pst@Astyle@two + \psline[linewidth=1.5\pslinewidth](0,.75)(-0.2,1.25) + \psline[linewidth=1.5\pslinewidth](0,.75)(0.2,1.25) + \fi + \ifx\psk@Astyle\pst@Astyle@three + \psline[linewidth=1.5\pslinewidth](0,.75)(-0.2,1.25) + \psline[linewidth=1.5\pslinewidth](0,.75)(0,1.25) + \psline[linewidth=1.5\pslinewidth](0,.75)(0.2,1.25) + \fi + \ifx\psk@Astyle\pst@Astyle@triangle + \pstriangle[linewidth=1.5\pslinewidth](0,1.25)(0.4,-0.5) + \fi + \psline(0,0)(0,.75) + } + \ignorespaces% +} +% +%%% oscillator %%% +% +\def\oscillator{\@ifnextchar[{\pst@oscillator}{\pst@oscillator[]}} +\def\pst@oscillator[#1]{% + \@ifnextchar({\pst@oscillatori[#1]{0}}{\pst@oscillatori[#1]}% +} +\def\pst@oscillatori[#1]#2(#3)#4#5{% + \psset{#1}% + \rput{#2}(#3){% + \pscircle[#5,linewidth=1.5\pslinewidth](0,0){0.5} + \ifx\psk@LOstyle\pst@LOstyle@crystal + \psline(-0.2,-0.35)(-0.2,0.35) + \psframe(-0.15,-0.3)(0.15,0.3) + \psline(0.2,-0.35)(0.2,0.35) + \else + \pscurve[linewidth=1.5\pslinewidth]{c-c}(-0.3,0.000)(-0.225,0.088375)(-0.15,0.1250)(-0.075,0.088375)% + (0,0.000)(0.075,-0.088375)(0.15,-0.125)(0.225,-0.088375)(0.3,0.000) + \fi + \ifx\psk@LOoutput\pst@LOoutput@left + \pst@getcoor{#3}\pst@tempa + \pnode(!% + \pst@tempa /Y1 exch \pst@number\psyunit div def + /X1 exch \pst@number\psxunit div def + /XC X1 def + /YC Y1 -0.6 add def + XC YC){C@} + \rput[t]{#2}(C@){#4} + \ifPst@inputarrow + \psline[arrows=->,arrowinset=0](-0.5,0)(-1,0) + \else + \psline(-0.5,0)(-1,0) + \fi + \fi + \ifx\psk@LOoutput\pst@LOoutput@top + \pst@getcoor{#3}\pst@tempa + \pnode(!% + \pst@tempa /Y1 exch \pst@number\psyunit div def + /X1 exch \pst@number\psxunit div def + /XC X1 def + /YC Y1 -0.6 add def + XC YC){C@} + \rput[t]{#2}(C@){#4} + \ifPst@inputarrow + \psline[arrows=->,arrowinset=0](0,0.5)(0,1) + \else + \psline(0,0.5)(0,1) + \fi + \fi + \ifx\psk@LOoutput\pst@LOoutput@right + \pst@getcoor{#3}\pst@tempa + \pnode(!% + \pst@tempa /Y1 exch \pst@number\psyunit div def + /X1 exch \pst@number\psxunit div def + /XC X1 def + /YC Y1 -0.6 add def + XC YC){C@} + \rput[t]{#2}(C@){#4} + \ifPst@inputarrow + \psline[arrows=->,arrowinset=0](0.5,0)(1,0) + \else + \psline(0.5,0)(1,0) + \fi + \fi + \ifx\psk@LOoutput\pst@LOoutput@bottom + \pst@getcoor{#3}\pst@tempa + \pnode(!% + \pst@tempa /Y1 exch \pst@number\psyunit div def + /X1 exch \pst@number\psxunit div def + /XC X1 def + /YC Y1 0.6 add def + XC YC){C@} + \rput[b]{#2}(C@){#4} + \ifPst@inputarrow + \psline[arrows=->,arrowinset=0](0,-0.5)(0,-1) + \else + \psline(0,-0.5)(0,-1) + \fi + \fi + } + \ignorespaces% +} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Dipole +%%% filtre: dipolestyle: (bandpass), lowpass, highpass +%%% inputarrow: (false), true +%%% dipoleinput: (left), right +%%% isolator: dipoleinput: (left), right +%%% inputarrow: (false), true +%%% freqmult: dipolestyle: (multiplier), divider, +%%% value: (N), integer +%%% programmable: (false) true +%%% inputarrow: (false), true +%%% dipoleinput: (left), right +%%% phaseshifter: +%%% inputarrow: (false), true +%%% dipoleinput: (left), right +%%% vco: +%%% inputarrow: (false), true +%%% dipoleinput: (left), right +%%% amplifier: +%%% inputarrow: (false), true +%%% dipoleinput: (left), right +%%% detector: +%%% inputarrow: (false), true +%%% dipoleinput: (left), right +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% FILTER %%% +% +\def\filter{\@ifnextchar[{\pst@filter}{\pst@filter[]}} +% +\def\pst@filter[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@filter% + }\ignorespaces} +% +\def\pst@multidipole@filter{\@ifnextchar[{\pst@multidipole@filter@}% +{\pst@multidipole@filter@[]}} +% +\def\pst@multidipole@filter@[#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\filter[#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@ +} +% +\def\pst@draw@filter{% + \pnode(-0.5,0){dipole@1} + \pnode(0.5,0){dipole@2} + \psframe[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,0.5) + \pscurve[linewidth=1.5\pslinewidth]{c-c}(-0.4,0.250)(-0.2,0.3750)(0,0.250)(0.2,0.1250)(0.4,0.250) + \pscurve[linewidth=1.5\pslinewidth]{c-c}(-0.4,0.000)(-0.2,0.1250)(0,0.000)(0.2,-0.125)(0.4,0.000) + \pscurve[linewidth=1.5\pslinewidth]{c-c}(-0.4,-0.25)(-0.2,-0.125)(0,-0.25)(0.2,-0.375)(0.4,-0.25) +% \psline{c-c}(-0.1,0.2)(0.1,0.3) + \ifx\psk@Dstyle\pst@Dstyle@lowpass + \psline[fillstyle=none]{c-c}(-0.1,0.2)(0.1,0.3) + \psline[fillstyle=none]{c-c}(-0.1,-0.05)(0.1,0.05) + \else + \ifx\psk@Dstyle\pst@Dstyle@highpass + \psline[fillstyle=none]{c-c}(-0.1,-0.3)(0.1,-0.2) + \psline[fillstyle=none]{c-c}(-0.1,-0.05)(0.1,0.05) + \else + \psline[fillstyle=none]{c-c}(-0.1,0.2)(0.1,0.3) + \psline[fillstyle=none]{c-c}(-0.1,-0.3)(0.1,-0.2) + \fi + \fi +} + +%%% ISOLATOR %%% +% +\def\isolator{\@ifnextchar[{\pst@isolator}{\pst@isolator[]}} +% +\def\pst@isolator[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@isolator% + }\ignorespaces} +% +\def\pst@multidipole@isolator{\@ifnextchar[{\pst@multidipole@isolator@}% +{\pst@multidipole@isolator@[]}} +% +\def\pst@multidipole@isolator@[#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\isolator[#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@ +} +% +\def\pst@draw@isolator{% + \pnode(-0.5,0){dipole@1} + \pnode(0.5,0){dipole@2} + \psframe[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,0.5) + \ifx\psk@Dinput\pst@Dinput@right + \psline[fillstyle=none,linewidth=1.5\pslinewidth,arrowinset=0]{<-}(-0.4,0)(0.4,0) + \else + \psline[fillstyle=none,linewidth=1.5\pslinewidth,arrowinset=0]{->}(-0.4,0)(0.4,0) + \fi +} +% +%%% Frequency Multiplier or Divider %%% +\def\freqmult{\@ifnextchar[{\pst@freqmult}{\pst@freqmult[]}} +% +\def\pst@freqmult[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@freqmult% + }\ignorespaces} +% +\def\pst@multidipole@freqmult{\@ifnextchar[{\pst@multidipole@freqmult@}% +{\pst@multidipole@freqmult@[]}} +% +\def\pst@multidipole@freqmult@[#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\freqmult[#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@ +} +% +\def\pst@draw@freqmult{% + \pnode(-0.5,0){dipole@1} + \pnode(0.5,0){dipole@2} + \psframe[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,0.5) + \ifPst@programmable% + \psline[fillstyle=none](-0.4,-0.75)(-0.4,-0.5) + \psline[fillstyle=none](-0.2,-0.75)(-0.2,-0.5) + \psline(0,-0.75)(0,-0.5) + \psline[fillstyle=none](0.2,-0.75)(0.2,-0.5) + \psline[fillstyle=none](0.4,-0.75)(0.4,-0.5) + \ifx\psk@Dstyle\pst@Dstyle@divider + \rput(0,0){$\div\textrm{N}$} + \else + \rput(0,0){$\times\textrm{N}$} + \fi + \else + \ifx\psk@FMvalue\pst@FMvalue@value + \ifx\psk@Dstyle\pst@Dstyle@divider + \rput(0,0){$\div\textrm{N}$} + \else + \rput(0,0){$\times\textrm{N}$} + \fi + \else + \ifx\psk@Dstyle\pst@Dstyle@divider + \rput(0,0){$\div\textrm{\psk@FMvalue}$} + \else + \rput(0,0){$\times\textrm{\psk@FMvalue}$} + \fi + \fi + \fi% +} +% +%%% phaseshifter +\def\phaseshifter{\@ifnextchar[{\pst@phaseshifter}{\pst@phaseshifter[]}} +% +\def\pst@phaseshifter[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@phaseshifter% + }\ignorespaces} +% +\def\pst@multidipole@phaseshifter{\@ifnextchar[{\pst@multidipole@phaseshifter@}% +{\pst@multidipole@phaseshifter@[]}} +% +\def\pst@multidipole@phaseshifter@[#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\phaseshifter[#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@ +} +% +\def\pst@draw@phaseshifter{% + \pnode(-0.4,0){dipole@1} + \pnode(0.4,0){dipole@2} + \pscircle[linewidth=1.5\pslinewidth](0,0){0.4} + \psline[fillstyle=none,linewidth=1.5\pslinewidth,arrowinset=0]{->}(-0.5,-0.5)(0.5,0.5) +} +% +%%% VCO +\def\vco{\@ifnextchar[{\pst@vco}{\pst@vco[]}} +% +\def\pst@vco[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@vco% + }\ignorespaces} +% +\def\pst@multidipole@vco{\@ifnextchar[{\pst@multidipole@vco@}% +{\pst@multidipole@vco@[]}} +% +\def\pst@multidipole@vco@[#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\vco[#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@ +} +% +\def\pst@draw@vco{% + \pnode(-0.5,0){dipole@1} + \pnode(0.5,0){dipole@2} + \pscircle[linewidth=1.5\pslinewidth](0,0){0.5} + \pscurve[linewidth=1.5\pslinewidth]{c-c}(-0.3,0.000)(-0.225,0.088375)(-0.15,0.1250)(-0.075,0.088375)% + (0,0.000)(0.075,-0.088375)(0.15,-0.125)(0.225,-0.088375)(0.3,0.000) +} +% +%%% amplifier %%% +% +\def\amplifier{\@ifnextchar[{\pst@amplifier}{\pst@amplifier[]}} +% +\def\pst@amplifier[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@amplifier% + }\ignorespaces} +% +\def\pst@multidipole@amplifier{\@ifnextchar[{\pst@multidipole@amplifier@}% +{\pst@multidipole@amplifier@[]}} +% +\def\pst@multidipole@amplifier@[#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\amplifier[#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@ +} +% +\def\pst@draw@amplifier{% + \pnode(-0.433,0){dipole@1} + \pnode(0.433,0){dipole@2} + \ifx\psk@Dinput\pst@Dinput@right + \pstriangle[gangle=90,linewidth=1.5\pslinewidth](0.433,0)(1,0.866) + \else + \pstriangle[gangle=-90,linewidth=1.5\pslinewidth](-0.433,0)(1,0.866) + \fi +} +% +%%% detector %%% +% +\def\detector{\@ifnextchar[{\pst@detector}{\pst@detector[]}} +% +\def\pst@detector[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@detector% + }\ignorespaces} +% +\def\pst@multidipole@detector{\@ifnextchar[{\pst@multidipole@detector@}% +{\pst@multidipole@detector@[]}} +% +\def\pst@multidipole@detector@[#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\detector[#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@ +} +% +\def\pst@draw@detector{% + \pnode(-0.5,0){dipole@1} + \psline[fillstyle=none](-0.5,0)(-0.2165,0) + \pnode(0.5,0){dipole@2} + \psline[fillstyle=none](0.5,0)(0.2165,0) + \psframe[linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,0.5) + \ifx\psk@Dinput\pst@Dinput@right + \pstriangle[gangle=90,linewidth=1.5\pslinewidth,fillstyle=none](0.2165,0)(0.5,0.433) + \psline[fillstyle=none,linewidth=1.5\pslinewidth](-0.2165,-0.25)(-0.2165,0.25) + \else + \pstriangle[gangle=-90,linewidth=1.5\pslinewidth,fillstyle=none](-0.2165,0)(0.5,0.433) + \psline[fillstyle=none,linewidth=1.5\pslinewidth](0.2165,-0.25)(0.2165,0.25) + \fi +} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Tripole +%%% mixer: tripolestyle:(bottom), top +%%% inputarrow: (false) | true +%%% tripoleinput: (left) | right +%%% Circulator: tripolestyle=(circulator), isolator +%%% tripoleconfig: (left) | right +%%% inputarrow: (false) | true +%%% tripoleinput: (left) | right +%%% AGC: tripoleinput=(left)|right +%%% inputarrow: (false) | true +%%% tripoleinput: (left) | right +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\def\mixer{\pst@object{mixer}} +\def\mixer@i(#1)(#2)(#3)#4#5{% + \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 + \pst@tempb /Y2 exch \pst@number\psyunit div def + /X2 exch \pst@number\psxunit div def + \pst@tempc /Y3 exch \pst@number\psyunit div def + /X3 exch \pst@number\psxunit div def + /XC X1 X2 add 2 div def + /YC Y2 def + XC YC){C@} + \rput(C@){\pst@draw@mixer{#3}{#4}{#5}} + \ifx\psk@Tinput\pst@Tinput@left% + \ifPst@inputarrow + \ncangle[arrows=->,arrowinset=0,arm=0.5,angleB=180]{#1}{Tport@left} + \else + \ncangle[arrows=-,arm=0.5,angleB=180]{#1}{Tport@left} + \fi + \ncangle[arrows=-,arm=0.5,angleB=0]{#2}{Tport@right} + \else + \ifPst@inputarrow + \ncangle[arrows=<-,arrowinset=0,arm=0.5,angleB=180]{Tport@right}{#2} + \else + \ncangle[arrows=-,arm=0.5,angleB=180]{Tport@right}{#2} + \fi + \ncangle[arrows=-,arm=0.5,angleB=180]{#1}{Tport@left} + \fi + \pcline[linestyle=none](#1)(#2)% for the endarrows + \pcline[linestyle=none](#2)(#3)% for the endarrows + \end@ClosedObj + \ignorespaces% +} +\newcommand{\pst@draw@mixer}[3]{% + \pscircle[#3,linewidth=1.5\pslinewidth](0,0){0.5} + \psline[linewidth=1.5\pslinewidth](-0.3535,-0.3535)(0.3535,0.3535) + \psline[linewidth=1.5\pslinewidth](-0.3535,0.3535)(0.3535,-0.3535) + \pnode(-0.5,0){Tport@left} + \pnode(0.5,0){Tport@right} + \ifx\psk@tripole@style\pst@tripole@style@top% + \rput[t](0,-0.6){#2} + \pnode(0,0.5){Tport@center} + \ifPst@inputarrow + \ncangle[arrows=->,arrowinset=0,arm=0.5,angleB=90]{#1}{Tport@center} + \else + \ncangle[arrows=-,arm=0.5,angleB=90]{#1}{Tport@center} + \fi + \else + \rput[b](0,0.6){#2} + \pnode(0,-0.5){Tport@center} + \ifPst@inputarrow + \ncangle[arrows=->,arrowinset=0,arm=0.5,angleB=-90]{#1}{Tport@center} + \else + \ncangle[arrows=-,arm=0.5,angleB=-90]{#1}{Tport@center} + \fi + \fi +} +% +%%% Circulator +% +\def\circulator{\pst@object{circulator}} +\def\circulator@i#1(#2)(#3)(#4)#5#6{% + \addbefore@par{dimen=middle}% + \begin@ClosedObj + \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 Y2 add 2 div def + XC YC){C@} + \rput{#1}(C@){\pst@draw@circulator{#4}{#5}{#6}} + \nput{! 90 #1 add}{Tport@label}{#5} + \ifPst@inputarrow + \ncline[arrows=->,arrowinset=0]{#2}{Tport@input} %,arm=0.5,angleB=180 + \else + \ncline[arrows=-]{#2}{Tport@input} + \fi + \ncline[arrows=-]{#3}{Tport@output} %,arm=0.5,angleB=0 + \pcline[linestyle=none](#2)(#3)% for the endarrows + \pcline[linestyle=none](#3)(#4)% for the endarrows + \end@ClosedObj + \ignorespaces% +} +\newcommand{\pst@draw@circulator}[3]{% + \pscircle[#3,linewidth=1.5\pslinewidth](0,0){0.5} + \pnode(0,0.6){Tport@label} + \ifx\psk@Tconfig\pst@Tconfig@left% + \psarc[linewidth=1.5\pslinewidth,arrowinset=0]{<-}{0.35}{15}{155} + \pnode(-0.5,0){Tport@input} + \pnode(0.5,0){Tport@output} + \else + \psarc[linewidth=1.5\pslinewidth,arrowinset=0]{->}{0.35}{25}{165} + \pnode(-0.5,0){Tport@output} + \pnode(0.5,0){Tport@input} + \fi + \ifx\psk@tripole@style\pst@tripole@style@isolator% + \psline(0,-0.5)(0,-0.95) + \multips{0}(-0.225,-1)(0.1,0){5}% + {\psline[arrows=-,linewidth=1.5\pslinewidth](0,0)(0.025,0.05)(0.075,-0.05)(0.1,0)}% + \else + \pnode(0,-0.5){Tport@center} + \ncline[arrows=-]{#1}{Tport@center} + \fi +} +% +%%% AGC +\def\agc{\pst@object{agc}} +\def\agc@i(#1)(#2)(#3)#4#5{% + \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 + \pst@tempb /Y2 exch \pst@number\psyunit div def + /X2 exch \pst@number\psxunit div def + \pst@tempc /Y3 exch \pst@number\psyunit div def + /X3 exch \pst@number\psxunit div def + /XC X1 X2 add 2 div def + /YC Y2 def + XC YC){C@} + \rput(C@){\pst@draw@agc{#1}{#2}{#4}{#5}} + \ncangle[arrows=-,arm=0.5,angleB=-90]{#3}{Tport@center} + \pcline[linestyle=none](#1)(#2)% for the endarrows + \pcline[linestyle=none](#2)(#3)% for the endarrows + \end@ClosedObj + \ignorespaces% +} +\newcommand{\pst@draw@agc}[4]{% + \pnode(-0.433,0){Tport@left} + \pnode(0.433,0){Tport@right} + \pnode(0,-0.5){Tport@center} + \rput[b](0,0.6){#3} + \psline[arrows=->,arrowinset=0](0,-0.5)(0,-0.25) + \ifx\psk@Tinput\pst@Tinput@left% + \pstriangle[#4,gangle=-90,linewidth=1.5\pslinewidth](-0.433,0)(1,0.866) + \psline[linewidth=1.5\pslinewidth,arrows=->,arrowinset=0](-0.55,-0.5)(0.25,0.5) + \ifPst@inputarrow + \ncangle[arrows=->,arrowinset=0,arm=0.5,angleB=180]{#1}{Tport@left} + \else + \ncangle[arrows=-,arm=0.5,angleB=180]{#1}{Tport@left} + \fi + \ncangle[arrows=-,arm=0.5,angleB=0]{#2}{Tport@right} + \else + \pstriangle[#4,gangle=90,linewidth=1.5\pslinewidth](0.433,0)(1,0.866) + \psline[linewidth=1.5\pslinewidth,arrows=->,arrowinset=0](0.55,-0.5)(-0.25,0.5) + \ifPst@inputarrow + \ncangle[arrows=<-,arrowinset=0,arm=0.5,angleB=180]{Tport@right}{#2} + \else + \ncangle[arrows=-,arm=0.5,angleB=180]{Tport@right}{#2} + \fi + \ncangle[arrows=-,arm=0.5,angleB=180]{#1}{Tport@left} + \fi +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Quadripole +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Coupler %%% +\def\coupler{\pst@object{coupler}} +\def\coupler@i(#1)(#2)(#3)(#4)#5#6{% + \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 + \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 + \pst@tempc /Y4 exch \pst@number\psyunit div def + /X4 exch \pst@number\psxunit div def + /XC X1 X2 lt {X2} {X1} ifelse X3 X4 lt {X3} {X4} ifelse add 2 div def + /YC Y1 -0.4 add def + XC YC){C@} + \rput(C@){\pst@draw@coupler{#6}} + \ncangle[arrows=-,angleA=0,angleB=-180]{#1}{inup@} + \ncangle[arrows=-,angleA=180,angleB=0]{#3}{outup@} + \ifx\psk@Qinput\pst@Qinput@left% + \ifx\psk@Qstyle\pst@Qstyle@hybrid + \ncangle[arrows=-,angleA=0,angleB=-180]{#2}{indown@} + \fi + \ncangle[arrows=-,angleA=180,angleB=0]{#4}{outdown@} + \else + \ncangle[arrows=-,angleA=0,angleB=-180]{#2}{indown@} + \ifx\psk@Qstyle\pst@Qstyle@hybrid + \ncangle[arrows=-,angleA=180,angleB=0]{#4}{outdown@} + \fi + \fi +% \ncangle[arrows=-,angleA=180,angleB=0]{#4}{outdown@} + \ncline[arrows=-,linestyle=none,fillstyle=none]{inup@}{outup@} + \naput{#5} + \pcline[linestyle=none](#1)(#3)% for the end arrows + \pcline[linestyle=none](#2)(#4)% for the end arrows + \end@ClosedObj% + \ignorespaces% +} +% +\newcommand{\pst@draw@coupler}[1]{% + \pnode(-0.75,0.4){inup@} + \pnode(0.75,0.4){outup@} + \psframe[#1,linewidth=1.5\pslinewidth](-0.5,-0.5)(0.5,0.5) + \psline(-0.5,0.4)(0.5,0.4) + \psline(-0.5,-0.4)(0.5,-0.4) + \psline(-0.4,0.35)(0.4,-0.35) + \psline(-0.4,-0.35)(0.4,0.35) +% + \ifx\psk@Qinput\pst@Qinput@left% + \pnode(0.75,-0.4){outdown@} + \ifPst@inputarrow% + \psline[arrows=->,arrowinset=0](-0.75,0.4)(-0.5,0.4) + \else + \psline(-0.75,0.4)(-0.5,0.4) + \fi + \psline(0.5,0.4)(0.75,0.4) + \psline(0.5,-0.4)(0.75,-0.4) + \ifx\psk@Qstyle\pst@Qstyle@hybrid + \pnode(-0.75,-0.4){indown@} + \ifPst@inputarrow% + \psline[arrows=->,arrowinset=0](-0.75,-0.4)(-0.5,-0.4) + \else + \psline(-0.75,-0.4)(-0.5,-0.4) + \fi + \else + \ifx\psk@Qstyle\pst@Qstyle@directional + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.8,-0.75)(-0.8,-0.675) + \multips{90}(-0.8,-0.675)(0,0.1){4}% + {\psline[arrows=-,linewidth=1.5\pslinewidth](0,0)(0.025,0.05)(0.075,-0.05)(0.1,0)}% + \psline[arrows=-,linewidth=1.5\pslinewidth](-0.8,-0.275)(-0.8,-0.2) + \psline(-0.75,-0.4)(-0.5,-0.4) + \fi + \fi + \else + \pnode(-0.75,-0.4){indown@} + \ifPst@inputarrow + \psline[arrows=->,arrowinset=0](0.75,0.4)(0.5,0.4) + \else + \psline(0.75,0.4)(0.5,0.4) + \fi + \psline(-0.5,0.4)(-0.75,0.4) + \psline(-0.5,-0.4)(-0.75,-0.4) + \ifx\psk@Qstyle\pst@Qstyle@hybrid + \pnode(0.75,-0.4){outdown@} + \ifPst@inputarrow% + \psline[arrows=->,arrowinset=0](0.75,-0.4)(0.5,-0.4) + \else + \psline(0.75,-0.4)(0.5,-0.4) + \fi + \else + \ifx\psk@Qstyle\pst@Qstyle@directional + \psline[arrows=-,linewidth=1.5\pslinewidth](0.8,-0.75)(0.8,-0.675) + \multips{90}(0.8,-0.675)(0,0.1){4}% + {\psline[arrows=-,linewidth=1.5\pslinewidth](0,0)(0.025,0.05)(0.075,-0.05)(0.1,0)}% + \psline[arrows=-,linewidth=1.5\pslinewidth](0.8,-0.275)(0.8,-0.2) + \psline(0.75,-0.4)(0.5,-0.4) + \fi + \fi + \fi +% +} +% +\catcode`\@=\PstAtCode\relax % \endinput % 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 ec608bcb557..5034be3d68c 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,4 @@ +%% $Id: pst-circ.sty 3 2007-12-23 16:23:22Z herbert $ \RequirePackage{pstricks} \ProvidesPackage{pst-circ}[2007/12/23 package wrapper for pst-circ.tex (hv)] |