From 8e604fd314ceb4046499cd237b8ffb3fbc2eda2e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 22 Dec 2008 23:26:45 +0000 Subject: pst-circ 1.49 (22dec08) git-svn-id: svn://tug.org/texlive/trunk@11687 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/generic/pst-circ/Changes | 9 +- .../doc/generic/pst-circ/pst-circ-doc.bib | 4 +- .../doc/generic/pst-circ/pst-circ-doc.pdf | Bin 464092 -> 520104 bytes .../doc/generic/pst-circ/pst-circ-doc.tex | 424 +++++++++++---------- 4 files changed, 223 insertions(+), 214 deletions(-) (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/generic/pst-circ/Changes b/Master/texmf-dist/doc/generic/pst-circ/Changes index d8beb170c38..66b7fc5a5f9 100644 --- a/Master/texmf-dist/doc/generic/pst-circ/Changes +++ b/Master/texmf-dist/doc/generic/pst-circ/Changes @@ -1,4 +1,11 @@ -1.47 2008-08-06 (hv) - fix bug with \newcommand insread of \def +1.49 2008-11-18 (hv) - fix bug with edge, renamed to circedge + - fixed bug with the current arrows of transsistor type + - renamed \next to \circnext +1.48 2008-09-26 (hv) - new option memory for a FET, suggested by + Christoph Friederich (doesn't really work) + - fix bug with TRot for FET type + - added dipolestyle twoCircles for Icc +1.47 2008-08-06 (hv) - fix bug with \newcommand instead of \def 1.46 2008-07-15 (hv) - optional dot for the (new)ground symbol (rw) - added dipolstyle crystal for the capacitor 1.45 2008-03-16 (hv) - fix bug with a switch as multidipole 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 716e220fb1e..85aea905da3 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 @@ -112,9 +112,9 @@ @Book{PSTricks2, author = {Herbert Vo\ss}, title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX}, - edition = {4.}, + edition = {5.}, publisher = {DANTE -- Lehmanns}, - year = {2007}, + year = {2008}, address = {Heidelberg/Hamburg} } 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 index 4ebcd8c1ae4..0b5a1e676aa 100644 Binary files a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf and b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf 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 index 5b2bbbaea37..332d2a17772 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,70 +1,37 @@ -%% $Id: pst-circ-doc.tex 18 2008-03-22 20:20:39Z herbert $ -\listfiles -\documentclass{article} -\usepackage[a4paper]{geometry} -\usepackage[T1]{fontenc} -\usepackage{arev}% use this if you do not have the palatino math font -%\usepackage{mathpazo} -\usepackage{fancyhdr} -\usepackage{url,array,longtable} -% -\usepackage[dvipsnames]{pstricks} +%% $Id: pst-circ-doc.tex 70 2008-12-22 13:03:24Z herbert $ +\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings + headexclude,footexclude,oneside]{pst-doc} +\usepackage[utf8]{inputenc} \usepackage{pst-circ} -\let\verPstCirc\fileversion -\usepackage{multicol} -\usepackage{showexpl,lscape} -\lstset{language=PSTricks, - morekeywords={psGammaDist,psChiIIDist,psTDist,psFDist,psBetaDist,psPlotImpl}} -\lstdefinestyle{syntax}{backgroundcolor=\color{blue!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt, - frame=single} -% +\let\pstCircFV\fileversion +\lstset{pos=l,wide=false,language=PSTricks, + morekeywords={multidipole,parallel},basicstyle=\footnotesize\ttfamily} % +\newcommand{\CircPackage}{\textsf{`pst-circ'}} \makeatletter -\def\@UrlFont{\small\ttfamily} \renewenvironment{description} {\list{}{\labelwidth\z@ \itemindent-\leftmargin \itemsep0pt \parsep0pt \let\makelabel\descriptionlabel}} {\endlist} - -\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} -\def\PS{PostScript} -\newcommand{\CircPackage}{\textsf{`pst-circ'}} - -\lhead{\CircPackage}\rhead{A PSTricks package for drawing electric circuits} -\pagestyle{fancy} - -\psset{subgriddiv=0,griddots=10,gridlabels=7pt}% -%\showgrid -\usepackage[colorlinks,linktocpage]{hyperref} +\makeatother \begin{document} -\title{\texttt{pst-circ}\\[10pt] - {\Large A PSTricks package for drawing electric circuits}\\\normalsize ver. \verPstCirc} -\author{Christophe Jorssen\thanks{\url{}} \and -Herbert Vo\ss\thanks{\url{}}} +\title{\texttt{pst-circ}} +\subtitle{A PSTricks package for drawing electric circuits; v.\pstCircFV} +\author{Christoph Jorssen \\Herbert Vo\ss} +\docauthor{} \date{\today} \maketitle -\begin{abstract} -\CircPackage{} is a PSTricks package to draw easily electric circuits. Most -dipoles, tripoles and quadrupoles used in classical electrotechnical -circuits are provided as graphical units which can readily be -interconnectedd to produce circuit diagrams of a reasonable level of complexity. -\end{abstract} - -\clearpage - -\setlength{\columnseprule}{0.6pt} -\begin{multicols}{2} -{\parskip 0pt \tableofcontents} -\end{multicols} +\tableofcontents \clearpage -\section{Introduction} -The package \CircPackage{} is a collection of graphical elements based +\begin{abstract} +\noindent +The package \LPack{pst-circ} 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 @@ -74,6 +41,25 @@ 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. +\LPack{pst-circ} loads by default the following packages: \LPack{pst-node}, +\LPack{multido}, \LPack{pst-xkey}, and, of course \LPack{pstricks}. +All should be already part of your local \TeX\ installation. If not, or in case +of having older versions, go to \url{http://www.CTAN.org/} and load the newest version. + +\vfill\noindent +Thanks to: \\ +Rafal Bartczuk, +Fran\c{c}ois Boone, + Jean-C\^ome Charpentier, + Patrick Drechsler, + Manuel Luque, + Ted Pavlic, + Alan Ristow, +Douglas Waud, and +Richard Weissnar. +\end{abstract} + + \section{The basic system} \subsection{Parameters} @@ -84,66 +70,68 @@ objects you are drawing. \begin{longtable}{@{}>{\ttfamily}l l l@{}} \textrm{\emph{name}} & \emph{type} & \emph{default}\\\hline \endhead -intensity & boolean & \emph{false} \\ -intensitylabel & string & \emph{ } \\ -intensitylabeloffset & dimension & \emph{ 0.5} \\ -intensitycolor & PSTricks color & \emph{ black} \\ -intensitylabelcolor & PSTricks color & \emph{ black} \\ -intensitywidth & dimension & \emph{ \texttt{\cs{pslinewidth}}} \\ -tension & boolean & \emph{ false} \\ -tensionlabel & string & \emph{ } \\ -tensionoffset & dimension & \emph{ 1} \\ -tensionlabeloffset & dimension & \emph{ 1.2} \\ -tensioncolor & PSTricks color & \emph{ black} \\ -tensionlabelcolor & PSTricks color & \emph{ black} \\ -tensionwidth & dimension & \emph{ \texttt{\cs{pslinewidth}}} \\ -labeloffset & dimension & \emph{ 0.7} \\ -labelangle & PSTricks label angle & \emph{ 0} \\ -labelInside & integer & \emph{ 0} \\ -dipoleconvention & & \emph{ receptor} \\ -directconvetion & boolean & \emph{ true} \\ -dipolestyle & string & \emph{ normal} \\ -variable & boolean & \emph{ false} \\ -parallel & boolean & \emph{ false} \\ -parallelarm & dimension & \emph{ 1.5} \\ -parallelsep & real & \emph{ 0} \\ -parallelnode & boolean & \emph{ false} \\ -intersect & boolean & \emph{ false} \\ -intersectA & node & \\ -intersectB & node & \\ -OAinvert & boolean & \emph{ true} \\ -OAperfect & boolean & \emph{ true} \\ -OAiplus & boolean & \emph{ false} \\ -OAiminus & boolean & \emph{ false} \\ -OAiout & boolean & \emph{ false} \\ -OAipluslabel & string & \emph{ } \\ -OAiminuslabel & string & \emph{ } \\ -OAioutlabel & string & \emph{ } \\ -transistorcircle & boolean & \emph{ true} \\ -transistorinvert & boolean & \emph{ false} \\ -transistoribase & boolean & \emph{ false} \\ -transistoricollector & boolean & \emph{ false} \\ -transistoriemitter & boolean & \emph{ false} \\ -transistoribaselabel & string & \emph{ } \\ -transistoricollectorlabel & string & \emph{ } \\ -transistoriemitterlabel & string & \emph{ } \\ -TRot & angle & \emph{ 0} \\ -edge & macro & \emph{ \texttt{\textbackslash ncangles}} \\ -transistortype & string & \emph{ PNP} \\ -FETchanneltype & string & \emph{ N} \\ -primarylabel & string & \emph{ } \\ -secondarylabel & string & \emph{ } \\ -transformeriprimary & boolean & \emph{ false} \\ -transformerisecondary & boolean & \emph{ false} \\ -transformeriprimarylabel & string & \emph{ } \\ -transformerisecondarylabel & string & \emph{ } \\ -tripolestyle & string & \emph{ normal} +\Lkeyword{intensity} & boolean & \emph{false} \\ +\Lkeyword{intensitylabel} & string & \emph{ } \\ +\Lkeyword{intensitylabeloffset} & dimension & \emph{ 0.5} \\ +\Lkeyword{intensitycolor} & color & \emph{ black} \\ +\Lkeyword{intensitylabelcolor} & color & \emph{ black} \\ +\Lkeyword{intensitywidth} & dimension & \emph{ \texttt{\Lcs{pslinewidth}}} \\ +\Lkeyword{tension} & boolean & \emph{ false} \\ +\Lkeyword{tensionlabel} & string & \emph{ } \\ +\Lkeyword{tensionoffset} & dimension & \emph{ 1} \\ +\Lkeyword{tensionlabeloffset} & dimension & \emph{ 1.2} \\ +\Lkeyword{tensioncolor} & color & \emph{ black} \\ +\Lkeyword{tensionlabelcolor} & color & \emph{ black} \\ +\Lkeyword{tensionwidth} & dimension & \emph{ \texttt{\Lcs{pslinewidth}}} \\ +\Lkeyword{labeloffset} & dimension & \emph{ 0.7} \\ +\Lkeyword{labelangle} & label angle & \emph{ 0} \\ +\Lkeyword{labelInside} & integer & \emph{ 0} \\ +\Lkeyword{dipoleconvention} & & \emph{ receptor} \\ +\Lkeyword{directconvetion} & boolean & \emph{ true} \\ +\Lkeyword{dipolestyle} & string & \emph{ normal} \\ +\Lkeyword{variable} & boolean & \emph{ false} \\ +\Lkeyword{parallel} & boolean & \emph{ false} \\ +\Lkeyword{parallelarm} & dimension & \emph{ 1.5} \\ +\Lkeyword{parallelsep} & real & \emph{ 0} \\ +\Lkeyword{parallelnode} & boolean & \emph{ false} \\ +\Lkeyword{intersect} & boolean & \emph{ false} \\ +\Lkeyword{intersectA} & node & \\ +\Lkeyword{intersectB} & node & \\ +\Lkeyword{OAinvert} & boolean & \emph{ true} \\ +\Lkeyword{OAperfect} & boolean & \emph{ true} \\ +\Lkeyword{OAiplus} & boolean & \emph{ false} \\ +\Lkeyword{OAiminus} & boolean & \emph{ false} \\ +\Lkeyword{OAiout} & boolean & \emph{ false} \\ +\Lkeyword{OAipluslabel} & string & \emph{ } \\ +\Lkeyword{OAiminuslabel} & string & \emph{ } \\ +\Lkeyword{OAioutlabel} & string & \emph{ } \\ +\Lkeyword{transistorcircle} & boolean & \emph{ true} \\ +\Lkeyword{transistorinvert} & boolean & \emph{ false} \\ +\Lkeyword{transistoribase} & boolean & \emph{ false} \\ +\Lkeyword{transistoricollector} & boolean & \emph{ false} \\ +\Lkeyword{transistoriemitter} & boolean & \emph{ false} \\ +\Lkeyword{transistoribaselabel} & string & \emph{ } \\ +\Lkeyword{transistoricollectorlabel} & string & \emph{ } \\ +\Lkeyword{transistoriemitterlabel} & string & \emph{ } \\ +\Lkeyword{TRot} & angle & \emph{ 0} \\ +\Lkeyword{edge} & macro & \emph{ \texttt{\textbackslash ncangles}} \\ +\Lkeyword{transistortype} & string & \emph{ NPN} \\ +\Lkeyword{FETchanneltype} & string & \emph{ N} \\ +\Lkeyword{FETmemory} & boolean & \emph{ false} \\ +\Lkeyword{primarylabel} & string & \emph{ } \\ +\Lkeyword{secondarylabel} & string & \emph{ } \\ +\Lkeyword{transformeriprimary} & boolean & \emph{ false} \\ +\Lkeyword{transformerisecondary} & boolean & \emph{ false} \\ +\Lkeyword{transformeriprimarylabel} & string & \emph{ } \\ +\Lkeyword{transformerisecondarylabel} & string & \emph{ } \\ +\Lkeyword{tripolestyle} & string & \emph{ normal} \end{longtable} \subsection{Macros} \subsubsection{Dipole macros} +\psset{griddots=10,subgriddiv=0} \begin{LTXexample}[width=3.5cm] \begin{pspicture}(3,2)\psgrid \pnode(0,1){A} @@ -251,9 +239,9 @@ tripolestyle & string & \emph{ normal} \bigskip \subsubsection{Tripole macros} -Obviously, tripoles are not node connections. So \CircPackage{} tries its best to adjust the +Obviously, tripoles are not node connections. So \LPack{pst-circ} 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 +\Lcs{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! @@ -290,7 +278,8 @@ ideas, please mail us.}, so don't try to use tripole macros in strange situation \begin{LTXexample}[width=5.5cm] \begin{pspicture}(5,3)\psgrid \pnode(0,1.5){A}\psset{linewidth=1pt} - \transistor[basesep=2cm,arrows=o-o](A){Emitter}{Collector} + \transistor[transistortype=PNP,basesep=2cm, + arrows=o-o](A){Emitter}{Collector} \psline{o-}(5,3)(3,3)(3,3|Collector)(Collector) \psline{o-}(5,0)(3,0)(3,3|Emitter)(Emitter) \psline{o-}(A)([nodesep=2]A) @@ -342,8 +331,8 @@ ideas, please mail us.}, so don't try to use tripole macros in strange situation \subsubsection{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 +\Lcs{multidipole} is a macro that allows multiple dipoles to be drawn between two specified nodes. +\Lcs{multidipole} takes as many arguments as you want. \textbf{Note the \rnode{Dot}{dot} that is after the last dipole.} \bigskip @@ -368,7 +357,7 @@ after the last dipole.} \bigskip \ncangles[linestyle=dashed,linecolor=gray,nodesep=3pt,armA=.5cm,angleA=-90,armB=4cm,angleB=0]{->}{Dot}{Dot2} -Important: for the time being, \cs{multidipole} takes optional arguments but does not +Important: for the time being, \Lcs{multidipole} takes optional arguments but does not restore original values. We recommand not using it. @@ -465,13 +454,13 @@ restore original values. We recommand not using it. \bigskip \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}, +If the \Lkeyword{intensity} parameter is set to \true, an arrow is drawn on the wire +connecting one of the nodes to the dipole. If the \Lkeyword{tension} parameter is set to \true, an arrow is drawn parallel to the dipole. -The way those arrows are drawn is set by \texttt{dipoleconvention} and \texttt{directconvention} -parameters. \texttt{dipoleconvention} can take two values~: \texttt{generator} or \texttt{receptor}. -\texttt{directconvention} is a boolean. +The way those arrows are drawn is set by \Lkeyword{dipoleconvention} and \Lkeyword{directconvention} +parameters. \Lkeyword{dipoleconvention} can take two values~: \Lkeyval{generator} or \Lkeyval{receptor}. +\Lkeyword{directconvention} is a boolean. \begin{LTXexample}[width=3.5cm] @@ -509,8 +498,8 @@ parameters. \texttt{dipoleconvention} can take two values~: \texttt{generator} o \end{pspicture} \end{LTXexample} -If \texttt{intensitylabel} is set to an non empty argument, then \texttt{intensity} is automatically -set to true. If \texttt{tensionlabel} is set to an non empty argument, then \texttt{tension} is +If \Lkeyword{intensitylabel} is set to an non empty argument, then \Lkeyword{intensity} is automatically +set to true. If \Lkeyword{tensionlabel} is set to an non empty argument, then \Lkeyword{tension} is automatically set to true. \begin{LTXexample}[width=3.5cm] @@ -542,7 +531,7 @@ automatically set to true. \end{pspicture} \end{LTXexample} -Some specific intensity parameters are available for tripoles and quadrupoles. +Some specific intensity parameters are available for \Index{tripole}s and \Index{quadrupole}s. \begin{LTXexample}[width=5.5cm] \begin{pspicture}(5,3)\psgrid @@ -581,7 +570,7 @@ Some specific intensity parameters are available for tripoles and quadrupoles. \subsubsection{Parallel parameters} -If the \texttt{parallel} parameter is set to \texttt{true}, the dipole is drawn parallel to the line +If the \Lkeyword{parallel} parameter is set to \true, the dipole is drawn parallel to the line connecting the nodes. \begin{LTXexample}[width=3.5cm] @@ -633,7 +622,7 @@ connecting the nodes. \end{pspicture} \end{LTXexample} -Note: When used with \cs{multidipole}, the parallel \texttt{parameter} +Note: When used with \Lcs{multidipole}, the \Lkeyword{parallel} parameter must not be set for the first dipole. @@ -651,7 +640,7 @@ must not be set for the first dipole. \end{pspicture} \end{LTXexample} -Wire intersect parameters work also with \cs{multidipole}. +Wire intersect parameters work also with \Lcs{multidipole}. \begin{LTXexample}[width=6.5cm] \begin{pspicture}(7,7)\psgrid @@ -670,6 +659,14 @@ Wire intersect parameters work also with \cs{multidipole}. \bigskip \subsubsection{Dipole style parameters} +\begin{LTXexample}[width=3.5cm] +\begin{pspicture}[showgrid=true](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \Icc[dipolestyle=twoCircles](A)(B){$I$} +\end{pspicture} +\end{LTXexample} + \begin{LTXexample}[width=3.5cm] \begin{pspicture}[showgrid=true](3,2) \pnode(0,1){A} @@ -999,10 +996,17 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{pspicture} \end{LTXexample} +\begin{LTXexample}[width=5.5cm] +\begin{pspicture}(5,3) +\transistor[basesep=2cm,transistortype=FET, + FETmemory=true](0,1.5)(5,0)(5,3) +\end{pspicture} +\end{LTXexample} + \clearpage \subsection{Special objects} -\subsubsection{\texttt{\textbackslash dashpot}} +\subsubsection{\nxLcs{dashpot}} \begin{LTXexample}[pos=t] @@ -1039,7 +1043,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \subsection{Examples} -\begin{LTXexample}[width=8cm] +\begin{LTXexample}[pos=t] \begin{pspicture}(-1.5,-1)(6,5) % \psgrid[subgriddiv=1,griddots=10] % Node definitions @@ -1062,7 +1066,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=8cm] +\begin{LTXexample}[pos=t] \begin{pspicture}(-0.5,0)(7,8) % \psgrid[subgriddiv=1,griddots=10] % Node definitions @@ -1095,7 +1099,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=8.5cm] +\begin{LTXexample}[pos=t] \begin{pspicture}(-1,0)(7,8) % \psgrid[subgriddiv=1,griddots=10] % Node definitions @@ -1128,7 +1132,7 @@ the coils are drawn as rectangles and the resistor as a zigzag. \end{pspicture} \end{LTXexample} -\begin{LTXexample}[width=8.5cm] +\begin{LTXexample}[pos=t] \begin{pspicture}(6,6) % \psgrid[subgriddiv=1,griddots=10] % Node definitions @@ -1354,8 +1358,8 @@ Since for microwave signal, the direction in which the signal spreads is very im 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} -%%%%% +\xLcs{ifPst@inputarrow}\xLcs{pcline} +\begin{lstlisting}[style=code] \ifPst@inputarrow \ifx\psk@Dinput\pst@Dinput@right \pcline[arrows=-C](#2)(dipole@1) @@ -1369,8 +1373,7 @@ The value of theses parameters are left or right for the first one and true or f \pcline[arrows=C-](dipole@2)(#3) \fi \pcline[fillstyle=none,linestyle=none](#2)(#3) -%%%%% -\end{verbatim} +\end{lstlisting} 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 @@ -1388,23 +1391,22 @@ Finally, something doesn't work with multidipole: this following example works: \end{pspicture} \end{LTXexample} +\bigskip However, this following one doesn't work: \begin{lstlisting} -\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{lstlisting} \subsection{New monopole components} \subsubsection{New ground} \begin{description} - \item[groundstyle:] ads | old | triangle + \item[\Lkeyword{groundstyle}:] \Lkeyval{ads} | \Lkeyval{old} | \Lkeyval{triangle} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1421,7 +1423,7 @@ However, this following one doesn't work: \subsubsection{Antenna} \begin{description} - \item[antennastyle:] two | three | triangle + \item[\Lkeyword{antennastyle}:] \Lkeyval{two} | \Lkeyval{three} | \Lkeyval{triangle} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1449,9 +1451,9 @@ However, this following one doesn't work: \subsection{New monopole macro-components} \subsubsection{Oscillator} \begin{description} - \item[output:] top | right | bottom | left - \item[inputarrow:] false | true - \item[LOstyle:] -- | crystal + \item[\Lkeyword{output}:] \Lkeyval{top} | \Lkeyval{right} | \Lkeyval{bottom} | \Lkeyval{left} + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{LOstyle}:] -- | \Lkeyval{crystal} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1489,9 +1491,9 @@ However, this following one doesn't work: \subsection{New dipole macro-components} \subsubsection{Filters} \begin{description} - \item[dipolestyle:] bandpass | lowpass | highpass - \item[inputarrow:] false | true - \item[dipoleinput:] left | right + \item[\Lkeyword{dipolestyle}:] \Lkeyval{bandpass} | \Lkeyval{lowpass} | \Lkeyval{highpass} + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1530,8 +1532,8 @@ However, this following one doesn't work: \subsubsection{Isolator} \begin{description} - \item[inputarrow:] false | true - \item[dipoleinput:] left | right + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1561,11 +1563,11 @@ However, this following one doesn't work: \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 + \item[\Lkeyword{dipolestyle}:] \Lkeyval{multiplier} | \Lkeyval{divider} + \item[\Lkeyword{value}:] \Lkeyval{N} | $n\in N$ + \item[\Lkeyword{programmable}:] \false | \true + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1599,8 +1601,8 @@ However, this following one doesn't work: \subsubsection{Phase shifter} \begin{description} - \item[inputarrow:] false | true - \item[dipoleinput:] left | right + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1623,8 +1625,8 @@ However, this following one doesn't work: \subsubsection{VCO} \begin{description} - \item[inputarrow:] false | true - \item[dipoleinput:] left | right + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1645,8 +1647,8 @@ However, this following one doesn't work: \subsubsection{Amplifier} \begin{description} - \item[inputarrow:] false | true - \item[dipoleinput:] left | right + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1675,8 +1677,8 @@ However, this following one doesn't work: \subsubsection{Detector} \begin{description} - \item[inputarrow:] false | true - \item[dipoleinput:] left | right + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{dipoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1706,9 +1708,9 @@ However, this following one doesn't work: \subsection{New tripole macro-components} \subsubsection{Mixer} \begin{description} - \item[tripolestyle:] bottom | top - \item[tripoleconfig:] left | right - \item[inputarrow:] false | true + \item[\Lkeyword{tripolestyle}:] \Lkeyval{bottom} | \Lkeyval{top} + \item[\Lkeyword{tripoleconfig}:] \Lkeyval{left} | \Lkeyval{right} + \item[\Lkeyword{inputarrow}:] \false | \true \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1733,9 +1735,9 @@ However, this following one doesn't work: \subsubsection{Circulator} \begin{description} - \item[tripolestyle:] circulator | isolator - \item[inputarrow:] false | true - \item[tripoleinput:] left | right + \item[\Lkeyword{tripolestyle}:] \Lkeyval{circulator} | \Lkeyval{isolator} + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{tripoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1780,8 +1782,8 @@ However, this following one doesn't work: \subsubsection{Agc} \begin{description} - \item[inputarrow:] false | true - \item[tripoleinput:] left | right + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{tripoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -1806,9 +1808,9 @@ However, this following one doesn't work: \subsection{New quadripole macro-components} \subsubsection{Coupler} \begin{description} - \item[couplerstyle:] hybrid | directional - \item[inputarrow:] false | true - \item[quadripoleinput:] left | right + \item[\Lkeyword{couplerstyle}:] \Lkeyval{hybrid} | \Lkeyval{directional} + \item[\Lkeyword{inputarrow}:] \false | \true + \item[\Lkeyword{quadripoleinput}:] \Lkeyval{left} | \Lkeyval{right} \end{description} \begin{LTXexample}[width=3.5cm,rframe={}] @@ -2105,23 +2107,24 @@ From Chang, K., RF and Microwave Wireless Systems, Wiley InterScience, page 319, \section{Flip Flops -- logical elements} The syntax for all logical base circuits is -\begin{lstlisting}[style=syntax] -logic[](){Label} -\end{lstlisting} +\begin{BDef} +\Lcs{logic}\OptArgs\OptArg*{\coord0}\Largb{label} +\end{BDef} \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{lstlisting}[style=syntax] -logic{Demo} -logic[logicType=and]{Demo} -logic(0,0){Demo} -logic[logicType=and](0,0){Demo} +\xLcs{logic}xLkeyword{logicType} +\begin{lstlisting}[style=code] +\logic{Demo} +\logic[logicType=and]{Demo} +\logic(0,0){Demo} +\logic[logicType=and](0,0){Demo} \end{lstlisting} -The above four ,,different`` calls of the \verb|logic| macro give the +The above four ,,different`` calls of the \Lcs{logic} macro give the same output, because they are equivalent. \subsection{The Options} @@ -2129,20 +2132,20 @@ same output, because they are equivalent. \begin{longtable}{@{}>{\ttfamily}l l l@{}} \textrm{\emph{name}} & \emph{type} & \emph{default}\\\hline \endhead -logicShowNode & boolean & \emph{ false} \\ -logicShowDot & boolean & \emph{ false} \\ -logicNodestyle & command & \emph{ \textbackslash footnotesize} \\ -logicSymbolstyle & command & \emph{ \textbackslash large} \\ -logicSymbolpos & value & \emph{ 0.5} \\ -logicLabelstyle & command & \emph{ \textbackslash small} \\ -logicType & string & \emph{ and} \\ -logicChangeLR & boolean & \emph{ false} \\ -logicWidth & length & \emph{ 1.5} \\ -logicHeight & length & \emph{ 2.5} \\ -logicWireLength & length & \emph{ 0.5} \\ -logicNInput & number & \emph{ 2} \\ -logicJInput & number & \emph{ 2} \\ -logicKInput & number &\emph{ 2} +\Lkeyword{logicShowNode} & boolean & \false \\ +\Lkeyword{logicShowDot} & boolean & \false \\ +\Lkeyword{logicNodestyle} & command & \emph{\textbackslash footnotesize} \\ +\Lkeyword{logicSymbolstyle} & command & \emph{\textbackslash large} \\ +\Lkeyword{logicSymbolpos} & value & \emph{0.5} \\ +\Lkeyword{logicLabelstyle} & command & \emph{\textbackslash small} \\ +\Lkeyword{logicType} & string & \Lkeyval{and} \\ +\Lkeyword{logicChangeLR} & boolean & \false \\ +\Lkeyword{logicWidth} & length & \emph{1.5} \\ +\Lkeyword{logicHeight} & length & \emph{2.5} \\ +\Lkeyword{logicWireLength} & length & \emph{0.5} \\ +\Lkeyword{logicNInput} & number & \emph{2} \\ +\Lkeyword{logicJInput} & number & \emph{2} \\ +\Lkeyword{logicKInput} & number &\emph{2} \end{longtable} \subsection{Basic Logical Circuits} @@ -2158,11 +2161,9 @@ a123 NOT123a \end{verbatim} -\verb|A_1| is not a good choice, the underscore may causes some -problems. +\verb|A_1| is not a good choice, the underscore may cause some problems. \subsubsection{And} - \psset{subgriddiv=0,griddots=5,gridlabels=7pt} \begin{LTXexample}[width=4.5cm](3,3) \begin{pspicture}(-1,0)(3,3) @@ -2437,12 +2438,12 @@ problems. \end{LTXexample} \bigskip -The unit of \verb|logicWireLength| is the same than the actual one for pstricks, set by -the \verb|unit| option. +The unit of \Lkeyword{logicWireLength} is the same than the actual one for pstricks, set by +the \Lkeyword{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 +If we have the following NAND circuit, then \LPack{pst-circ} defines the nodes \begin{verbatim} NAND11, NAND12, NAND13, NAND14, NAND1Q \end{verbatim} @@ -2550,7 +2551,7 @@ all is finished. \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. Nevertheless, it can take some time\ldots +mechanism of \Lcs{multidipole}, there are multiple steps. Nevertheless, it can take some time\ldots If you want to modify the code, you need to know the following things. For a dipole, you first @@ -2591,8 +2592,8 @@ need to define the following items: \pnode(component_right_end,0){dipole@2}} \end{lstlisting} -Then, you have to make some changes in the \cs{multidipole} core code\dots In the definition -of \verb+\pst@multidipole+, look for the last \verb+\ifx+ test +Then, you have to make some changes in the \Lcs{multidipole} core code\dots In the definition +of \Lcs{pst@multidipole}, look for the last \Lcs{ifx} test \begin{lstlisting}[language=TeX] % ... % Extract from \pst@multidipole @@ -2656,31 +2657,32 @@ Do the same in \verb+\pst@multidipole@+ % Extract form \pst@multidipole@ % ... \end{lstlisting} -and that's it! All you have to do then is send your modified \texttt{pst-circ.tex} to -me and it will become part of the official release of \CircPackage. +and that's it! All you have to do then is send your modified \LFile{pst-circ.tex} to +me and it will become part of the official release of \LPack{pst-circ}. \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 Fran\c{c}ois Boone (\url{francois.boone@usherbrooke.ca} -- microwave symbols), -Douglas Waud, Patrick Drechsler (dashpot), Alan Ristow, Ted Pavlic, -and Richard Weissnar. +\clearpage +\section{List of all optional arguments for \texttt{pst-circ}} + +\xkvview{family=pst-circ,columns={key,type,default}} +\bgroup +\raggedright \nocite{*} - -{\raggedright \bibliographystyle{plain} \bibliography{pst-circ-doc} -} +\egroup + +\printindex + + + \end{document} -- cgit v1.2.3