summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/doc/defines.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/circuit_macros/doc/defines.tex')
-rw-r--r--graphics/circuit_macros/doc/defines.tex762
1 files changed, 412 insertions, 350 deletions
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index fdc1f85c35..da19a5fcf0 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -38,7 +38,7 @@
\noindent
\LR{A} \LR{B} \LR{C} \LR{D} \LR{E} \LR{F} \LR{G} \LR{H} \LR{I} \LR{J}
\LR{K} \LR{L} \LR{M} \LR{N} \LR{O} \LR{P}
-\LR{R} \LR{S} \LR{T} \LR{U} \LR{V} \LR{W} \LR{X}
+\LR{R} \LR{S} \LR{T} \LR{U} \LR{V} \LR{W} \LR{X} \LR{Y}
\\
\Letter{A}%
@@ -122,11 +122,11 @@
{gen}
{arc with acute angle (obtuse if radius is negative), drawn in a [ ] block}
\macrodef{ArcAngle}{ArcAngle}{({\sl position, position, position, radius,
- modifiers}) }
+ modifiers, label}) }
{gen}
{Arc angle symbol drawn ccw at arg2. Arg4 is the radius from arg2;
- arg5 contains line attributes, e.g., {\tt thick linethick/2}}
-
+ arg5 contains line attributes, e.g., {\tt thick linethick/2 ->};
+ arg6 is an optional label at mid-arc}
\macrodef{arcd}{arcd}{({\sl center},
{\sl radius},{\sl start degrees},{\sl end degrees}) }
{gen}
@@ -191,6 +191,9 @@
{Draw the tree for a gate as in the {\tt Autologix} macro. No inputs
or external connections are drawn. The names of the internal gate
inputs are stacked in {\tt `AutoInNames'}}
+\macrodef{assign3}{assign3}{({\sl var name,var name,var name,arg4,arg5,arg6})}
+ {gen}
+ {Assigns \$1 = arg4 if \$1 is nonblank; similarly \$2 = arg5 and \$3 = arg6}
\macrodef{Autologix}{Autologix}%
{({\sl Boolean function sequence},%
[N[oconnect]][L[eftinputs]][R][V][M][;offset={\sl value}]}
@@ -321,22 +324,27 @@
{buzzer, {\sl In1} to {\sl In3} defined, C=curved
\seesect{Composite:}}
\Letter{C}%
-\macrodef{c\_fet}{c_fet}{(\linespec,L|R,P)}
+\macrodef{c\_fet}{c_fet}{(\linespec,R,P)}
{cct}
{left or right, plain or negated pin simplified MOSFET}
-\macrodef{capacitor}{capacitor}{(\linespec,{\sl char}[+[L]],R,
+\macrodef{capacitor}{capacitor}{(\linespec,{\sl chars},R,
{\sl height}, {\sl wid})}
{cct}
- {capacitor, {\sl char}: F or none=flat plate, C=curved-plate,
- E=polarized boxed plates,
- K=filled boxed plates,
- M=unfilled boxes,
- M=one rectangular plate,
- P=alternate polarized; + adds a polarity sign;
+ {capacitor, {\sl chars}:
+ F or blank=flat plate;
+ dF flat plate with hatched fill;
+ C=curved-plate;
+ dC=curved-plate with variability arrowhead;
+ E=polarized boxed plates;
+ K=filled boxed plates;
+ M=unfilled boxes;
+ M=one rectangular plate;
+ P=alternate polarized;
+ + adds a polarity sign;
+L polarity sign to the left of drawing direction;
- arg3: R=reversed polarity,
+ arg3: R=reversed polarity;
arg4 = height (defaults F: {\tt dimen\_}$/3$,
- C,P: {\tt dimen\_}$/4$, E,K: {\tt dimen\_}$/5$)
+ C,P: {\tt dimen\_}$/4$, E,K: {\tt dimen\_}$/5$);
arg5 = wid (defaults F: {\sl height}*0.3,
C,P: {\sl height}*0.4, E,K: {\sl height}) \seesect{Twoterminal:}}
\macrodef{cbreaker}{cbreaker}{(\linespec,L|R,D|Th|TS)}
@@ -358,9 +366,17 @@
{gen}
{Upper (lower if arg5={\tt R}) intersection of circles at
{\sl Pos1} and {\sl Pos2}, radius {\sl rad1} and {\sl rad2}}
-\macrodef{clabel}{clabel}{({\sl label},{\sl label},{\sl label})}
- {cct}
- {centre triple label \seesect{Labels:}}
+\macrodef{clabel}{clabel}{({\sl label},{\sl label},{\sl label},{\sl arg4},%
+ {\sl arg5})}
+ {cct}
+ {Triple label along the drawing axis of an element in the current
+ direction \seesect{Labels:}. Labels are placed at the beginning,
+ centre, or end of the last {\tt []} block (or a named {\tt []}
+ block). The labels are treated as math, but copied literally if
+ in double quotes or defined by sprintf. {\sl Arg4} can be {\tt
+ above,} {\tt below,} {\tt left,} or {\tt right} to supplement the
+ default position. {\sl Arg5} is the optional name of a {\tt []}
+ block to be labelled and is {\tt last []} by default}
\macrodef{cm\_\_}{cm__}{}
{gen}
{absolute centiimetres}
@@ -433,10 +449,9 @@
{cct}
{controlled-source width}
\Letter{D}%
-\macrodef{d\_fet}{d_fet}{(\linespec,L|R,P,S,E|S)}
+\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)}
{cct}
- {left or right, N or P depletion MOSFET, normal or simplified,
- without or with envelope or thick channel
+ {left or right, N or P depletion MOSFET, envelope or simplified
\seesect{Semiconductors:}}
\macrodef{dabove}{dabove}{(at {\sl location})}
{darrow}
@@ -536,6 +551,11 @@
\macrodef{deleminit\_}{deleminit_}{}
{darrow}
{sets drawing direction for dlines}
+\macrodef{Deltasymbol}{Deltasymbol}{(at {\sl position},keys,
+ U|D|L|R|{\sl degrees}) (default {\tt U} for up)}
+ {cct}
+ {Delta symbol for power-system diagrams.
+ {\sl keys:} {\tt size={\sl expression}}}
\macrodef{Demux}{Demux}{({\sl n},{\sl label},
{\tt [L][B|H|X][N[{\sl n}]|S[{\sl n}]][[N]OE],
{\sl wid},{\sl ht}})}
@@ -591,6 +611,18 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
{\tt Z}=zener;
appending {\tt K} to arg 2 draws open arrowheads;
arg 3: {\tt R}=reversed polarity, {\tt E}=enclosure \seesect{Twoterminal:}}
+%\macrodef{DIP}{DIP}{({\sl pin count, attributes})}%
+% {log}
+% {Dual in-line package diagram. Default pin count = 8.
+% Arg2 ({\sl attributes})= semicolon-separated list of optional terms:
+% {\tt bodywid=}{\sl expr} (default 0.25$\,$in${}={}$5{\tt *L\_unit}),
+% {\tt bodylen=}{\sl expr} (default {\sl pin count} $\times$ {\sl pin pitch}),
+% {\tt pinpitch=}{\sl expr} (default 0.1),
+% {\tt pinwid=}{\sl expr} (default 0.06),
+% {\tt pinlen=}{\sl expr} (default 0.05),
+% {\tt direct=U|D|L|R} (default {\tt U} for up),
+% {\tt type=I|Q} (default {\tt I}; Q=pins of alternating length)
+% \seesect{Logicgates:}}
\macrodef{dir\_}{dir_}{}
{darrow}
{used for temporary storage of direction by darrow macros}
@@ -714,10 +746,10 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
\macrodef{e\_}{e_}{}
{gen}
{.e relative to current direction}
-\macrodef{e\_fet}{e_fet}{(\linespec,L|R,P,S,E|S)}
+\macrodef{e\_fet}{e_fet}{(\linespec,R,P,E|S)}
{cct}
{left or right, N or P enhancement MOSFET, normal
- or simplified, without or with envelope or thick channel
+ or simplified, without or with envelope
\seesect{Semiconductors:}}
\macrodef{earphone}{earphone}{( U|D|L|R|{\sl degrees, size})}
{cct}
@@ -766,6 +798,11 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
{3D}
{vector projected on current view plane with top face
of 3-dimensonal arrowhead normal to x2,y2,z2 }
+\macrodef{Fe\_fet}{Fe_fet}{(\linespec,R,{\sl chars})}
+ {cct}
+ {FET with superimposed ferroelectric symbol. Args 1 to 3 are as for
+ the {\tt mosfet} macro
+ \seesect{Semiconductors:}}
\macrodef{FF\_ht}{FF_ht}{}
{cct}
{flipflop height parameter in {\tt L\_unit}s}
@@ -841,6 +878,10 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
\macrodef{G\_hht}{G_hht}{}
{log}
{gate half-height in {\tt L\_unit}s}
+\macrodef{g\_fet}{g_fet}{(\linespec,R,P,{\sl shade spec})}
+ {cct}
+ {left or right, N or P graphene FET, without or with shading
+ \seesect{Semiconductors:}}
\macrodef{gap}{gap}{(\linespec,{\sl fill},A)}
{cct}
{gap with (filled) dots, A=chopped arrow between dots\seesect{Twoterminal:}}
@@ -972,11 +1013,14 @@ n|e|s|w,{\sl length})}
\macrodef{in\_\_}{in__}{}
{gen}
{absolute inches}
-\macrodef{inductor}{inductor}{(\linespec,W|L,{\sl n},[M|P],{\sl loop wid})}
+\macrodef{inductor}{inductor}{(\linespec, W|L, {\sl cycles}, M[n]|P[n]|K[n],
+ {\sl loop wid})}
{cct}
{inductor, arg2: narrow (default), W=wide, L=looped;
- arg3: {\sl n} arcs (default 4);
- arg4: M=magnetic core, P=powder (dashed) core,
+ arg3: number of arcs or cycles (default 4);
+ arg4: M=magnetic core, P=powder (dashed) core, K=long-dashed core,
+ n={\sl integer} (default 2) number of core lines named
+ {\sl M4Core1, M4Core2,} $\ldots$;
arg5: loop width (default L,W: {\tt dimen\_}/5; other: {\tt dimen\_}/8)
\seesect{Twoterminal:}}
\macrodef{inner\_prod}{inner_prod}{({\sl linear obj},{\sl linear obj})}
@@ -1092,9 +1136,17 @@ n|e|s|w,{\sl length})}
\macrodef{ljust\_}{ljust_}{}
{gen}
{ljust with respect to current direction}
-\macrodef{llabel}{llabel}{({\sl label},{\sl label},{\sl label})}
- {cct}
- {triple label on left side of the element \seesect{Labels:}}
+\macrodef{llabel}{llabel}{({\sl label},{\sl label},{\sl label},{\sl arg4},%
+ {\sl arg5})}
+ {cct}
+ {Triple label on the left of an element with respect to the current
+ direction \seesect{Labels:}. Labels are placed at the beginning,
+ centre, or end of the last {\tt []} block (or a named {\tt []}
+ block). The labels are treated as math, but copied literally if
+ in double quotes or defined by sprintf. {\sl Arg4} can be {\tt
+ above,} {\tt below,} {\tt left,} or {\tt right} to supplement the
+ default position. {\sl Arg5} is the optional name of a {\tt []}
+ block to be labelled and is {\tt last []} by default}
\macrodef{loc\_}{loc_}{({\sl x}, {\sl y})}
{gen}
{location adjusted for current direction}
@@ -1108,24 +1160,26 @@ n|e|s|w,{\sl length})}
\macrodef{loge}{loge}{}
{gen}
{logarithm, base $e$}
-\macrodef{Loopover\_}{Loopover_}{(`{\sl variable}',{\sl actions},{\sl value1,
+\macrodef{Loopover\_}{Loopover_}{(`{\sl variable}',{\sl actions},{\sl
+value1,
value2, $\ldots$})}
{gen}
{Repeat {\sl actions} with {\sl variable} set successively to
- {\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2, $\ldots$,
- terminating if {\sl variable} is nul}
+ {\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2,
+ $\ldots$, terminating if {\sl variable} is nul}
\macrodef{lp\_xy}{lp_xy}{}
{log}
{coordinates used by {\tt lg\_pin}}
-\macrodef{lpop}{lpop}{({\sl xcoord}, {\sl ycoord}, {\sl radius}, {\sl fill},
- {\sl zero ht})}
- {gen}
- {for lollipop graphs: filled circle with stem to (xcoord,zeroht)}
+\macrodef{lpop}{lpop}{({\sl xcoord}, {\sl ycoord}, {\sl radius},
+{\sl fill},
+ {\sl zero ht})} {gen}
+ {for lollipop graphs: filled circle with stem to
+ (xcoord,zeroht)}
\macrodef{lswitch}{lswitch}{( \linespec, L|R, {\sl chars} )}
{cct}
{knife switch R=right orientation (default L=left);
- {\sl chars}=[O{\tt|}C][D][K][A] O=opening arrow; C=closing arrow; D=dots;
- K=closed switch; A=blade arrowhead \seesect{Twoterminal:}}
+ {\sl chars}=[O{\tt|}C][D][K][A] O=opening arrow; C=closing arrow;
+ D=dots; K=closed switch; A=blade arrowhead \seesect{Twoterminal:}}
\macrodef{lt\_}{lt_}{}
{gen}
{left with respect to current direction}
@@ -1141,7 +1195,8 @@ n|e|s|w,{\sl length})}
{arrow with adjustable head, filled when possible}
\macrodef{m4dupstr}{m4dupstr}{({\sl string},{\sl n},`{\sl name}')}
{gen}
- {Defines {\sl name} as {\sl n} concatenated copies of {\sl string}.}
+ {Defines {\sl name} as {\sl n} concatenated copies of {\sl
+ string}.}
\macrodef{m4lstring}{m4lstring}{({\sl arg1},{\sl arg2})}
{gen}
{expand {\sl arg1} if it begins
@@ -1163,9 +1218,9 @@ n|e|s|w,{\sl length})}
{memristor element\seesect{Twoterminal:}}
\macrodef{microphone}{microphone}{( A|U|D|L|R|{\sl degrees, size})}
{cct}
- {microphone; if arg1 = A: upright mic, otherwise arg1 sets direction
- of standard microphone with
- {\sl In1} to {\sl In3} defined
+ {microphone; if arg1 = A: upright mic, otherwise arg1 sets
+ direction
+ of standard microphone with {\sl In1} to {\sl In3} defined
\seesect{Composite:}}
\macrodef{Min}{Min}{({\sl arg, arg, $\ldots$})}
{gen}
@@ -1181,33 +1236,28 @@ n|e|s|w,{\sl length})}
({\sl Position1,Position2,Position3,length,line attributes})}
{gen}
{e.g., {\tt mitre\_(A,B,C)} draws angle ABC with legs
- of length arg4 (default {\tt linethick bp\_\_/2});
- sets {\tt Here} to Position2
+ of length arg4 (default {\tt linethick bp\_\_/2}); sets {\tt Here}
+ to Position2
\seesect{Corners:}}
\macrodef{mm\_\_}{mm__}{}
{gen}
{absolute millimetres}
\macrodef{mosfet}{mosfet}{(\linespec,L|R,{\sl chars},E)}
{cct}
- {MOSFET left or right, included components defined by characters, envelope.
+ {MOSFET left or right, included components defined by characters,
+ envelope.
arg 3 chars:
- {\tt [u][d]B:} center bulk connection pin;
- {\tt D:} D pin and lead;
- {\tt E:} dashed substrate;
- {\tt F:} solid-line substrate;
- {\tt [u][d]G:} G pin to substrate at source;
- {\tt [u][d]H:} G pin to substrate at center;
- {\tt L:} G pin to channel (obsolete);
- {\tt [u][d]M:} G pin to channel; u: at drain end; d: at source end
- {\tt [u][d]M{\sl n}:} multiple gates G0 to G{\sl n}
- {\tt Py:} parallel diode;
- {\tt Pz:} parallel zener diode;
- {\tt Q:} connect B pin to S pin;
- {\tt R:} thick channel;
- {\tt [u][d]S:} S pin and lead u: arrow up; d: arrow down;
- {\tt [d]T:} G pin to center of channel d: not circle;
- {\tt X:} XMOSFET terminal;
- {\tt Z:} simplified complementary MOS
+ {\tt [u][d]B:} center bulk connection pin; {\tt D:} D pin and lead;
+ {\tt E:} dashed substrate; {\tt F:} solid-line substrate; {\tt
+ [u][d]G:} G pin to substrate at source; {\tt [u][d]H:} G pin to
+ substrate at center; {\tt L:} G pin to channel (obsolete); {\tt
+ [u][d]M:} G pin to channel; u: at drain end; d: at source end {\tt
+ [u][d]M{\sl n}:} multiple gates G0 to G{\sl n} {\tt Py:} parallel
+ diode; {\tt Pz:} parallel zener diode; {\tt Q:} connect B pin to
+ S pin; {\tt R:} thick channel; {\tt [u][d]S:} S pin and lead u:
+ arrow up; d: arrow down; {\tt [d]T:} G pin to center of channel
+ d: not circle; {\tt X:} XMOSFET terminal; {\tt Z:} simplified
+ complementary MOS
\seesect{Semiconductors:}}
\macrodef{Mux\_ht}{Mux_ht}{}
{cct}
@@ -1216,19 +1266,15 @@ n|e|s|w,{\sl length})}
{cct}
{Mux width parameter in {\tt L\_unit}s}
\macrodef{Mux}{Mux}{({\sl n},{\sl label},
- {\tt [L][B|H|X][N[{\sl n}]|S[{\sl n}]][[N]OE],
- {\sl wid},{\sl ht}})}
+ {\tt [L][B|H|X][N[{\sl n}]|S[{\sl n}]][[N]OE], {\sl wid},{\sl ht}})}
{log}
{binary multiplexer, $n$ inputs,
- {\tt L} reverses input pin numbers,
- {\tt B} display binary pin numbers,
- {\tt H} display hexadecimal pin numbers,
- {\tt X} do not print pin numbers,
- {\tt N[{\sl n}]} puts Sel or Sel$0$ .. Sel$n$ at the top
- (i.e., to the left of the drawing direction),
- {\tt S[{\sl n}]} puts the Sel inputs at the bottom (default)
- {\tt OE} ({\tt N=}negated) {\tt OE} pin
- \seesect{Logicgates:}}
+ {\tt L} reverses input pin numbers, {\tt B} display binary pin
+ numbers, {\tt H} display hexadecimal pin numbers, {\tt X} do not
+ print pin numbers, {\tt N[{\sl n}]} puts Sel or Sel$0$ .. Sel$n$
+ at the top (i.e., to the left of the drawing direction), {\tt
+ S[{\sl n}]} puts the Sel inputs at the bottom (default) {\tt OE}
+ ({\tt N=}negated) {\tt OE} pin \seesect{Logicgates:}}
\macrodef{Mx\_pins}{Mx_pins}{}
{log}
{max number of gate inputs without wings}
@@ -1245,23 +1291,24 @@ n|e|s|w,{\sl length})}
\macrodef{NAND\_gate}{NAND_gate}{({\sl n},N)}
{log}
{`nand' gate, 2 or {\sl n\/} inputs; N=negated input.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}
- to define normal or negated inputs.
+ Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
+ normal or negated inputs.
\seesect{Logicgates:}}
\macrodef{ne\_}{ne_}{}
{gen}
{.ne with respect to current direction}
\macrodef{NeedDpicTools}{NeedDpicTools}{}
{gen}
- {executes {\tt copy "HOMELIB\_/dpictools.pic"} if the file has not been read}
+ {executes {\tt copy "HOMELIB\_/dpictools.pic"} if the file has
+ not been read}
\macrodef{neg\_}{neg_}{}
{gen}
{unary negation}
\macrodef{NOR\_gate}{NOR_gate}{({\sl n},N)}
{log}
{`nor' gate, 2 or {\sl n\/} inputs; N=negated input.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}
- to define normal or negated inputs.
+ Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
+ normal or negated inputs.
\seesect{Logicgates:}}
\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})}
{cct}
@@ -1269,13 +1316,14 @@ n|e|s|w,{\sl length})}
\macrodef{NOT\_circle}{NOT_circle}{}
{log}
{`not' circle}
-\macrodef{NOT\_gate}{NOT_gate}{(\linespec,[B][N|n],{\sl wid},{\sl height})}
+\macrodef{NOT\_gate}{NOT_gate}{(\linespec,[B][N|n],{\sl wid},{\sl
+height})}
{log}
{`not' gate.
When {\sl linespec} is blank then the element is composite and In1,
- Out, C, NE, and SE are defined; otherwise the element is drawn as
- a two-terminal element. arg2: {\tt B}=box gate, {\tt N}=not circle at input
- and output, {\tt n}=not circle at input only
+ Out, C, NE, and SE are defined; otherwise the element is drawn as a
+ two-terminal element. arg2: {\tt B}=box gate, {\tt N}=not circle at
+ input and output, {\tt n}=not circle at input only
\seesect{Logicgates:}}
\macrodef{NOT\_rad}{NOT_rad}{}
{log}
@@ -1289,21 +1337,20 @@ n|e|s|w,{\sl length})}
nw,nn,ne,ns,space ratio,pin lgth,style, other commands})}
{cct}
{ Default is a standard-box twoport. Args 2 to 5 are
- the number of ports to be drawn on w, n, e, s sides.
- The port pins are named by side, number, and by a or b pin,
- e.g., W1a, W1b, W2a, $\ldots$
- Arg 6 specifies the ratio of port width to interport space (default 2),
- and arg 7 is the pin length. Set arg 8 to N to omit the dots on
- the port pins. Arguments 1 and 9 allow customizations
+ the number of ports to be drawn on w, n, e, s sides. The port pins
+ are named by side, number, and by a or b pin, e.g., W1a, W1b, W2a,
+ $\ldots$ Arg 6 specifies the ratio of port width to interport space
+ (default 2), and arg 7 is the pin length. Set arg 8 to N to omit
+ the dots on the port pins. Arguments 1 and 9 allow customizations
\seesect{Composite:}}
\macrodef{nterm}{nterm}{({\sl box spec{\tt ;}other commands,
nw,nn,ne,ns,pin lgth,style, other commands})}
{cct}
{n-terminal box macro (default three pins).
- Args 2 to 5 are the number of pins to be drawn on W, N, E, S sides.
- The pins are named by side and number, e.g. W1, W2, N1, $\ldots$
- Arg 6 is the pin length. Set arg 7 to N to omit the dots
- on the pins. Arguments 1 and 8 allow customizations, e.g.
+ Args 2 to 5 are the number of pins to be drawn on W, N, E, S
+ sides. The pins are named by side and number, e.g. W1, W2, N1,
+ $\ldots$ Arg 6 is the pin length. Set arg 7 to N to omit the
+ dots on the pins. Arguments 1 and 8 allow customizations, e.g.
{\tt nterm(,{,},{,},{,}N,"\$a\$" at Box.w ljust,"\$b\$" at Box.e rjust,
"\$c\$" at Box.s above)} }
\macrodef{nullator}{nullator}{(\linespec,{\sl width},{\sl ht})}
@@ -1315,18 +1362,20 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{NXOR\_gate}{NXOR_gate}{({\sl n},N)}
{log}
{`nxor' gate, 2 or {\sl n\/} inputs; N=negated input.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}
- to define normal or negated inputs.
+ Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
+ normal or negated inputs.
\seesect{Logicgates:}}
\Letter{O}%
-\macrodef{opamp}{opamp}{(\linespec,{\sl label},{\sl label},{\sl size},{\sl
+\macrodef{opamp}{opamp}{(\linespec,{\sl label},{\sl
+label},{\sl size},{\sl
chars}, other commands)}
{cct}
{operational amplifier with $-,$ $+$ or other internal labels,
- specified size. {\sl chars:} {\tt P=} add power connections,
- {\tt R=} swap In1, In2 labels,
- {\tt T=} truncated point.
- The first and last arguments allow added customizations
+ specified size. {\sl chars:} {\tt P=} add power connections, {\tt
+ R=} swap In1, In2 labels, {\tt T=} truncated point. The internally
+ defined positions are {\sl W, N, E, S, Out, NE, SE, In, In2}, and
+ the (obsolete) positions {\sl E1 = NE, E2 = SE}. The first and last
+ arguments allow added customizations
\seesect{Composite:}}
\macrodef{open\_arrow}{open_arrow}{(\linespec,{\sl ht},{\sl wid})}
{gen}
@@ -1334,40 +1383,39 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{OR\_gate}{OR_gate}{({\sl n},N)}
{log}
{`or' gate, 2 or {\sl n\/} inputs; N=negated input.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}
- to define normal or negated inputs.
+ Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
+ normal or negated inputs.
\seesect{Logicgates:}}
\macrodef{OR\_gen}{OR_gen}{($n$,{\sl chars},[{\sl wid},[{\sl ht}]])}
{log}
{general OR gate: $n$=number of inputs $(0\leq n\leq 16)$;
{\sl chars:} B=base and straight sides; A=Arcs;
- [N]NE,[N]SE,[N]I,[N]N,[N]S=inputs or circles;
- [N]P=XOR arc; [N]O=output; C=center.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}
- to define normal or negated inputs.}
+ [N]NE,[N]SE,[N]I,[N]N,[N]S=inputs or circles; [N]P=XOR arc;
+ [N]O=output; C=center.
+ Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
+ normal or negated inputs.}
\macrodef{OR\_rad}{OR_rad}{}
{log}
{radius of OR input face in {\tt L\_unit}s}
\Letter{P}%
-\macrodef{parallel\_}{parallel_}{(\char96{\sl elementspec}\char39,%
+\macrodef{parallel\_}{parallel_}{(\char96{\sl
+elementspec}\char39,%
\char96{\sl elementspec}\char39 $\ldots$)}
{cct}
- { Parallel combination of two-terminal elements in a {\tt [ ]} block.
- Each argument is a {\em quoted} elementspec of the form
- {\tt[Sep={\sl val};][{\sl Label}:] {\sl element}; [{\sl attributes}]}
- where an {\sl attribute} is of the form
- {\tt[llabel($\ldots$);] | [rlabel($\ldots$);] | [b\_current($\ldots$);]}.
- An argument may also be {\tt series\_($\ldots$)} or
- {\tt parallel\_($\ldots$)} {\em without} attributes or quotes.
- Sep={\sl val}; in the first branch sets the default
- separation of all branches to {\sl val}; in a later
- element Sep={\sl val}; applies only to that branch.
- An element may have normal arguments but should
- not change the drawing direction.
+ { Parallel combination of two-terminal elements in a {\tt [
+ ]} block.
+ Each argument is a {\em quoted} elementspec of the form {\tt[Sep={\sl
+ val};][{\sl Label}:] {\sl element}; [{\sl attributes}]} where
+ an {\sl attribute} is of the form {\tt[llabel($\ldots$);] |
+ [rlabel($\ldots$);] | [b\_current($\ldots$);]}. An argument may
+ also be {\tt series\_($\ldots$)} or {\tt parallel\_($\ldots$)} {\em
+ without} attributes or quotes. Sep={\sl val}; in the first branch
+ sets the default separation of all branches to {\sl val}; in a later
+ element Sep={\sl val}; applies only to that branch. An element may
+ have normal arguments but should not change the drawing direction.
\seesect{Seriesandparallel:}}
%\macrodef{par\_}{par_}{({\sl element},{\sl element},{\sl separation})}
-% {cct}
-% {two same-direction, same-length elements in parallel}
+% {cct} % {two same-direction, same-length elements in parallel}
\macrodef{proximity}{proximity}{(\sl linespec)}
{cct}
{proximity detector (= {\tt consource(,P)})}
@@ -1383,13 +1431,9 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{pconnex}{pconnex}{(R|L|U|D|{\sl degrees},{\sl chars})}
{cct}
{power connectors, arg 1: drawing direction; {\sl chars:}
- {\tt R}=right orientation,
- {\tt M|F}= male, female,
- {\tt A|AC}=115V, 3 prong, B=box, C=circle,
- {\tt P}= PC connector,
- {\tt D}= 2-pin connector,
- {\tt G|GC}= GB 3-pin,
- {\tt J}= 110V 2-pin
+ {\tt R}=right orientation, {\tt M|F}= male, female, {\tt A|AC}=115V,
+ 3 prong, B=box, C=circle, {\tt P}= PC connector, {\tt D}= 2-pin
+ connector, {\tt G|GC}= GB 3-pin, {\tt J}= 110V 2-pin
\seesect{Composite:}}
\macrodef{pi\_}{pi_}{}
{gen}
@@ -1397,8 +1441,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{plug}{plug}{(U|D|L|R|{\sl degrees},[2|3][R])}
{cct}
{arg1: drawing direction; string arg2: {\tt R} right orientation,
- {\tt 2|3} number of conductors
- \seesect{Composite:}}
+ {\tt 2|3} number of conductors \seesect{Composite:}}
\macrodef{pmod}{pmod}{({\sl integer}, {\sl integer})}
{gen}
{+ve $\hbox{mod}(M,N)$ e.g., $\hbox{\tt pmod}(-3,5)=2$}
@@ -1407,7 +1450,8 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{(radians) set direction cosines}
\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Line, Point})}
{gen}
- {{\sl Point} is the label for the point on {\sl Line} of the perpendicular
+ {{\sl Point} is the label for the point on {\sl Line} of the
+ perpendicular
from {\sl Point} to {\sl Line}.}
\macrodef{Point\_}{Point_}{({\sl integer})}
{gen}
@@ -1417,22 +1461,21 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{rectangular-to polar conversion}
\macrodef{langle}{langle}{({\sl Start, End})}
{gen}
- {Angle in radians from horizontal of the line from {\sl Start} to {\sl End}.}
+ {Angle in radians from horizontal of the line from {\sl Start}
+ to {\sl End}.}
\macrodef{potentiometer}{potentiometer}{(\linespec,%
- {\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)}
- {cct}
+ {\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)} {cct}
{resistor with taps T1, T2, $\ldots$
- with specified fractional positions and lengths (possibly neg)
+ with specified fractional positions and lengths (possibly neg)
\seesect{Composite:}}
\macrodef{print3D}{print3D}{(x,y,z)}
- {3D}
- {write out triple for debugging}
+ {3D} {write out triple for debugging}
\macrodef{prod\_}{prod_}{({\sl a},{\sl b})}
{gen}
{binary multiplication}
\macrodef{project}{project}{({\sl x},({\sl y},({\sl z})}
- {3D}
- {3D to 2D projection onto the plane perpendicular to the view vector with
+ {3D} {3D to 2D projection onto the plane perpendicular to the view
+ vector with
angles defined by {\tt setview({\sl azim, elev})}}
\macrodef{psset\_}{psset_}{({\sl PSTricks settings})}
{gen}
@@ -1440,6 +1483,11 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{pt\_\_}{pt__}{}
{gen}
{\TeX\ point-size factor, in scaled inches, ({\tt *scale/72.27})}
+\macrodef{PtoL}{PtoL}{({\sl position}, U|D|L|R|{\sl degrees}, {\sl length}) }
+ {gen}
+ {Evaluates to {\tt from {\sl position} to
+ {\sl position} + Rect\_({\sl length, angle}) }
+ from the polar-coordinate data in the arguments }
\macrodef{ptrans}{ptrans}{(\linespec, [R|L])}
{cct}
{pass transistor; {\tt L=} left orientation
@@ -1458,40 +1506,31 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{rect\_}{rect_}{({\sl radius},{\sl angle})}
{gen}
{(radians) polar-rectangular conversion}
-\macrodef{reed}{reed}{({\sl linespec, width, height, box attribues}, [R][C])}
+\macrodef{reed}{reed}{({\sl linespec, width, height, box attribues},
+[R][C])}
{cct}
{Enclosed reed two-terminal contact;
- {\tt R}=right orientation; {\tt C}=closed contact;
- e.g., {\tt reed(,,dimen\_/5,shaded "lightgreen"}
- \seesect{Composite:}}
+ {\tt R}=right orientation; {\tt C}=closed contact; e.g., {\tt
+ reed(,,dimen\_/5,shaded "lightgreen"} \seesect{Composite:}}
\macrodef{relay}{relay}{({\sl number of poles, chars})}
{cct}
{relay: n poles (default 1), {\sl chars:} {\tt O}=normally open,
- {\tt C}=normally closed, {\tt P}=three position, default double throw,
- {\tt L}=drawn left (default),
- {\tt R}=drawn right, {\tt Th}=thermal.
- Argument 3={\tt [L|R]} is deprecated but works for
+ {\tt C}=normally closed, {\tt P}=three position, default double
+ throw, {\tt L}=drawn left (default), {\tt R}=drawn right, {\tt
+ Th}=thermal. Argument 3={\tt [L|R]} is deprecated but works for
backward compatibility
\seesect{Composite:}}
-\macrodef{relaycoil}{relaycoil}{({\sl chars, wid, ht,} R|L|U|D|{\sl degrees})}
- {cct}
- {chars:
- {\tt X}=or default: external lines from A2 and B2;
- {\tt AX}=external lines at positions A1,A3;
- {\tt BX}=external lines at positions B1,B3;
- {\tt NX}=no lines at positions A1,A2,A3,B1,B2,B3;
- {\tt SO}=slow operating;
- {\tt SOR}=slow operating and release;
- {\tt SR}=slow release;
- {\tt HS}=hight speed;
- {\tt HS}=hight speed;
- {\tt NAC}=unaffected by AC current;
- {\tt AC AC}=current;
- {\tt ML}=mechanically latched;
- {\tt PO}=polarized;
- {\tt RM}=remanent;
- {\tt RH}=remanent;
- {\tt TH}=thermal;
+\macrodef{relaycoil}{relaycoil}{({\sl chars, wid, ht,} R|L|U|D|{\sl
+degrees})}
+ {cct}
+ {chars:
+ {\tt X}=or default: external lines from A2 and B2; {\tt AX}=external
+ lines at positions A1,A3; {\tt BX}=external lines at positions
+ B1,B3; {\tt NX}=no lines at positions A1,A2,A3,B1,B2,B3; {\tt
+ SO}=slow operating; {\tt SOR}=slow operating and release; {\tt
+ SR}=slow release; {\tt HS}=high speed; {\tt NAC}=unaffected by AC
+ current; {\tt AC AC}=current; {\tt ML}=mechanically latched; {\tt
+ PO}=polarized; {\tt RM}=remanent; {\tt RH}=remanent; {\tt TH}=thermal;
{\tt EL}=electronic
\seesect{Composite:}}
\macrodef{resetdir\_}{resetdir_)}{}
@@ -1504,14 +1543,10 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
cycle wid})}
{cct}
{resistor, n cycles (default 3), {\sl chars:}
- {\tt E}={\tt ebox},
- {\tt ES}={\tt ebox} with slash,
- {\tt Q}=offset,
- {\tt H}=squared,
- {\tt N}=IEEE,
- {\tt V}=varistor variant,
- {\tt R}=right-oriented,
- {\sl cycle width} (default {\tt dimen\_}$/6$) \seesect{Twoterminal:}}
+ {\tt E}={\tt ebox}, {\tt ES}={\tt ebox} with slash, {\tt Q}=offset,
+ {\tt H}=squared, {\tt N}=IEEE, {\tt B}=not burnable, {\tt V}=varistor
+ variant, {\tt R}=right-oriented, {\sl cycle width} (default {\tt
+ dimen\_}$/6$) \seesect{Twoterminal:}}
\macrodef{resized}{resized}{({\sl factor},`{\sl macro name}',args)}
{cct}
{scale the element body size by {\sl factor}}
@@ -1526,47 +1561,51 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{gen}
{color drawing for PSTricks, pgf, MetaPost, SVG postprocessors;
(color entries are 0 to 1 except for SVG entries which are 0 to 255),
- see {\tt setrgb} \seesect{Semiconductors:}.
- Exceptionally, the color of
- SVG arrows other than the default black has to be defined using
- the {\tt outlined }{\sl string} and {\tt shaded }{\sl string} constructs.}
+ see {\tt setrgb} \seesect{Semiconductors:}. Exceptionally, the color
+ of SVG arrows other than the default black has to be defined using the
+ {\tt outlined }{\sl string} and {\tt shaded }{\sl string} constructs.}
\macrodef{rgbfill}{rgbfill}{({\sl color triple}, {\sl closed path})}
{gen}
- {fill with arbitrary color (color entries are 0 to 1 except
- SVG entries which are 0 to 255); see {\tt setrgb}\seesect{Semiconductors:}}
+ {fill with arbitrary color (color entries are 0 to 1 except
+ SVG entries which are 0 to 255); see {\tt
+ setrgb}\seesect{Semiconductors:}}
\macrodef{rgbstring}{rgbstring}{({\sl color triple or color name})}
{gen}
{evaluates to a string compatible with the postprocessor in use
to go with {\tt colored}, {\tt shaded}, or {\tt outlined} attributes.
- (PSTricks, metapost, pgf-tikz, pdf, postscript, svg).
- The arguments are fractions
- in the range $[0,1]$; For example,
- {\tt box outlined rgbstring(0.1,0.2,0.7) shaded rgbstring(0.75,0.5,0.25)}.
- For those postprocessors that allow it,
- there can be one argument which is the name of a defined color}
+ (PSTricks, metapost, pgf-tikz, pdf, postscript, svg). The arguments
+ are fractions in the range $[0,1]$; For example, {\tt box outlined
+ rgbstring(0.1,0.2,0.7) shaded rgbstring(0.75,0.5,0.25)}. For those
+ postprocessors that allow it, there can be one argument which is the
+ name of a defined color}
\macrodef{right\_}{right_}{}
{gen}
{set current direction right \seesect{Placing:}}
\macrodef{RightAngle}{RightAngle}{({\sl Pos1, Pos2, Pos3, line len,
- attributes})}
- {gen}
- {Draw a right-angle symbol at {\sl Pos2}, of size given by arg4. Arg5 =
+ attributes})} {gen}
+ {Draw a right-angle symbol at {\sl Pos2}, of size
+ given by arg4. Arg5 =
line attributes, e.g., {\tt outlined "gray"}}
\macrodef{rjust\_}{rjust_}{}
{gen}
{right justify with respect to current direction}
-\macrodef{rlabel}{rlabel}{({\sl label},{\sl label},{\sl label})}
- {cct}
- {triple label on right side of the element \seesect{Labels:}}
+\macrodef{rlabel}{rlabel}{({\sl label},{\sl label},{\sl label},{\sl arg4},%
+ {\sl arg5})}
+ {cct}
+ {Triple label on the right of an element with respect to the current
+ direction \seesect{Labels:}. Labels are placed at the beginning,
+ centre, or end of the last {\tt []} block (or a named {\tt []}
+ block). The labels are treated as math, but copied literally if
+ in double quotes or defined by sprintf. {\sl Arg4} can be {\tt
+ above,} {\tt below,} {\tt left,} or {\tt right} to supplement the
+ default position. {\sl Arg5} is the optional name of a {\tt []}
+ block to be labelled and is {\tt last []} by default}
\macrodef{rot3Dx}{rot3Dx}{({\sl radians,x,y,z})}
- {3D}
- {rotates x,y,z about x axis}
+ {3D} {rotates x,y,z about x axis}
\macrodef{rot3Dy}{rot3Dy}{({\sl radians,x,y,z})}
- {3D}
- {rotates x,y,z about y axis}
+ {3D} {rotates x,y,z about y axis}
\macrodef{rot3Dz}{rot3Dz}{({\sl radians,x,y,z})}
- {3D}
- {rotates x,y,z about z axis}
+ {3D} {rotates x,y,z about z axis}
\macrodef{Rot\_}{Rot_}{({\sl position, degrees})}
{gen}
{rotate position by degrees}
@@ -1576,20 +1615,20 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{rotbox}{rotbox}{({\sl wid,ht,type},[r|t={\sl val}])}
{gen}
{box oriented in current direction in {\tt [ ]} block;
- {\sl type}= e.g. {\tt dotted shaded "green".} Defined
- internal locations: N, E, S, W (and NE, SE, NW, SW if arg4 is blank).
- If arg4 is {\tt r=}{\sl val} then corners have radius {\sl val}.
- If arg4 is {\tt t=}{\sl val} then a spline with tension {\sl val}
- is used to draw a ``superellipse,'' and the bounding box is then
- only approximate. }
+ {\sl type}= e.g. {\tt dotted shaded "green".} Defined internal
+ locations: N, E, S, W (and NE, SE, NW, SW if arg4 is blank). If arg4
+ is {\tt r=}{\sl val} then corners have radius {\sl val}. If arg4 is
+ {\tt t=}{\sl val} then a spline with tension {\sl val} is used to draw
+ a ``superellipse,'' and the bounding box is then only approximate. }
\macrodef{rotellipse}{rotellipse}{({\sl wid,ht,type})}
{gen}
{ellipse oriented in current direction in {\tt [ ]} block;
- e.g. {\tt Point\_(45); rotellipse(,{},dotted fill\_(0.9)).} Defined internal
- locations: N, S, E, W.}
+ e.g. {\tt Point\_(45); rotellipse(,{},dotted fill\_(0.9)).} Defined
+ internal locations: N, S, E, W.}
\macrodef{round}{round}{(at {\sl location,line thickness,attributes})}
{gen}
- {filled circle for rounded corners; attributes={\tt colored "gray"}
+ {filled circle for rounded corners; attributes={\tt colored
+ "gray"}
for example; leaves {\tt Here} unchanged if arg1 is blank
\seesect{Corners:}}
\macrodef{rpoint\_}{rpoint_}{(\linespec)}
@@ -1639,7 +1678,8 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\seesect{Interaction:}}
\macrodef{s\_init}{s_init}{({\sl name})}
{gen}
- {initialize {\tt s\_box} string label to {\sl name} which should be unique
+ {initialize {\tt s\_box} string label to {\sl name} which should
+ be unique
\seesect{Interaction:}}
\macrodef{s\_name}{s_name}{}
{gen}
@@ -1674,43 +1714,50 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{se\_}{se_}{}
{gen}
{.se with respect to current direction}
-\macrodef{series\_}{series_}{({\sl elementspec}, {\sl elementspec}, $\ldots$)}
+\macrodef{series\_}{series_}{({\sl elementspec}, {\sl elementspec},
+$\ldots$)}
{cct}
{ Series combination in a {\tt []} block of elements
- with shortened default length. An {\sl elementspec} is of the form
- {\tt [{\sl Label}:] {\sl element}; [{\sl attributes}]},
- where an {\sl attribute} is of the form
- {\tt [llabel($\ldots$);] | [rlabel($\ldots$);] [b\_current($\ldots$);]}.
- Internal points {\tt Start}, {\tt End}, and {\tt C} are defined
+ with shortened default length. An {\sl elementspec} is of the
+ form {\tt [{\sl Label}:] {\sl element}; [{\sl attributes}]},
+ where an {\sl attribute} is of the form {\tt [llabel($\ldots$);] |
+ [rlabel($\ldots$);] [b\_current($\ldots$);]}. Internal points {\tt
+ Start}, {\tt End}, and {\tt C} are defined
\seesect{Seriesandparallel:} }
-\macrodef{setdir\_}{setdir_}{(R|L|U|D|{\sl degrees}, {\sl default} U|D|R|L|{\sl degrees})}
+\macrodef{setdir\_}{setdir_}{(R|L|U|D|{\sl degrees}, {\sl default}
+U|D|R|L|{\sl degrees})}
{gen}
{store drawing direction and set it to
- up, down, left, right, or angle in degrees (reset by {\tt resetdir\_}).
- The directions may be spelled out, i.e., Right, Left, $\ldots$
+ up, down, left, right, or angle in degrees (reset by {\tt
+ resetdir\_}). The directions may be spelled out, i.e., Right,
+ Left, $\ldots$
\seesect{Seriesandparallel:}}
\macrodef{setrgb}{setrgb}{({\sl red value, green value, blue value},[{\sl
name}])}
{gen}
- {define colour for lines and text, optionally named (default {\tt lcspec});
+ {define colour for lines and text, optionally named (default
+ {\tt lcspec});
svg values are integers from 0 to 255\seesect{Semiconductors:}}
\macrodef{setkey\_}{setkey_}{({\sl string, key, default,}[N])}
{gen}
- {Key-value definition. The string contains semicolon-separated terms
+ {Key-value definition. The string contains semicolon-separated
+ terms
of the form {\sl key}{\tt =}{\sl value}. Then macro {\tt m4{\sl key}}
- is defined using {\tt pushdef} to be {\tt ({\sl value})} but if arg4 is
- nonbland, the parentheses are omitted.}
-\macrodef{setview}{setview}{({\sl azimuth degrees},{\sl elevation degrees})}
- {3D}
- {set projection viewpoint}
-\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad, arrowhd len,
- arrowhd wid}), (reads {\tt libcct.m4})}
- {cct}
- {initialization of signal flow graph macros}
+ is defined using {\tt pushdef} to be {\tt ({\sl value})} but if arg4
+ is nonbland, the parentheses are omitted.}
+\macrodef{setview}{setview}{({\sl azimuth degrees},{\sl elevation
+degrees})}
+ {3D} {set projection viewpoint}
+\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad,
+arrowhd len,
+ arrowhd wid}), (reads {\tt libcct.m4})} {cct}
+ {initialization of signal
+ flow graph macros}
\macrodef{sfgabove}{sfgabove}{}
{cct}
{like above but with extra space}
-\macrodef{sfgarc}{sfgarc}{(\linespec,{\sl text},{\sl text justification},cw|ccw,
+\macrodef{sfgarc}{sfgarc}{(\linespec,{\sl text},{\sl text
+justification},cw|ccw,
{\sl height scale factor})}
{cct}
{directed arc drawn between nodes, with text label
@@ -1718,16 +1765,17 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{sfgbelow}{sfgbelow}{}
{cct}
{like below but with extra space}
-\macrodef{sfgline}{sfgline}{(\linespec,{\sl text},{\sl text justification})}
+\macrodef{sfgline}{sfgline}{(\linespec,{\sl text},{\sl text
+justification})}
{cct}
{directed straight line chopped by node radius, with text label}
\macrodef{sfgnode}{sfgnode}{(at {\sl location},{\sl text},above|below,{\sl
circle options})}
{cct}
- {small circle default white interior, with text label. The default label
- position is inside if the diameter is bigger than {\tt textht} and
- {\tt textwid}; otherwise it is {\tt sfgabove.} Options such as fill or
- line thickness can be given.}
+ {small circle default white interior, with text label. The default
+ label position is inside if the diameter is bigger than {\tt textht}
+ and {\tt textwid}; otherwise it is {\tt sfgabove.} Options such as
+ fill or line thickness can be given.}
\macrodef{sfgself}{sfgself}{(at {\sl location}, U|D|L|R|{\sl degrees},
{\sl text}, {\sl text justification}, cw|ccw, {\sl scale factor})}
{cct}
@@ -1740,19 +1788,27 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{gen}
{box with edge shading}
\macrodef{ShadedPolygon}{ShadedPolygon}{({\sl vertexseq, line attributes,
- degrees, colorseq})}
- {gen}
- {Draws the polygon specified in arg1 and shades the interior according
- to arg4 by drawing lines perpendicular to the angle in arg3.
- The {\sl vertexseq} is a colon ({\tt:}) separated sequence of vertex
- positions (or names) of the polygon in cw or ccw order. A {\sl colorseq}
- is of the form 0, r0,g0,b0, {\sl frac1},r1,g1,b1, {\sl frac2},r2,g2,b2,
- \ldots 1,rn,gn,bn with $0 < \hbox{\sl frac1} < \hbox{\sl frac2} \ldots 1$
-}
+ degrees, colorseq})} {gen}
+ {Draws the polygon specified in arg1 and
+ shades the interior according
+ to arg4 by drawing lines perpendicular to the angle in arg3. The {\sl
+ vertexseq} is a colon ({\tt:}) separated sequence of vertex positions
+ (or names) of the polygon in cw or ccw order. A {\sl colorseq} is of
+ the form 0, r0,g0,b0, {\sl frac1},r1,g1,b1, {\sl frac2},r2,g2,b2,
+ \ldots 1,rn,gn,bn with $0 < \hbox{\sl frac1} < \hbox{\sl frac2}
+ \ldots 1$
+} \macrodef{shielded}{shielded}{(`{\sl two-terminal element}',
+ L|U, {\sl line attributes})} {cct}
+ {shielding in a {\tt [ ]} box for
+ two-terminal element. Arg2= blank
+ (default) to enclose the element body; L for the left side with
+ respect to drawing direction, R for right. Internal points {\tt
+ .Start, .End,} and {\tt .C} are defined}
\macrodef{SIdefaults}{SIdefaults}{}
{gen}
{Sets {\tt scale = 25.4} for drawing units in mm, and sets
- pic parameters {\tt lineht = 12, linewid = 12, moveht = 12, movewid = 12,
+ pic parameters {\tt lineht = 12, linewid = 12, moveht = 12, movewid
+ = 12,
arcrad = 6, circlerad = 6, boxht = 12, boxwid = 18, ellipseht = 12,
ellipsewid = 18, dashwid = 2, arrowht = 3, arrowwid = arrowht/2,}}
\macrodef{sign\_}{sign_}{({\sl number})}
@@ -1767,29 +1823,30 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{sind}{sind}{({\sl arg})}
{gen}
{sine of an expression in degrees}
-\macrodef{sinusoid}{sinusoid}{({\sl amplitude, frequency, phase, tmin, tmax,
+\macrodef{sinusoid}{sinusoid}{({\sl amplitude, frequency, phase, tmin,
+tmax,
linetype})}
{gen}
- {draws a sinusoid over the interval
- $(t_{\hbox{\scriptsize min}}, t_{\hbox{\scriptsize max}})$;
- e.g., to draw a dashed sine curve, amplitude {\sl a}, of {\sl n} cycles
- of length {\sl x} from {\sl A},
- {\tt sinusoid(a,twopi\_*n/x,-pi\_/2,0,x,dashed) with .Start at A}}
+ {draws a sinusoid over the interval $(t_{\hbox{\scriptsize min}},
+ t_{\hbox{\scriptsize max}})$;
+ e.g., to draw a dashed sine curve, amplitude {\sl a},
+ of {\sl n} cycles of length {\sl x} from {\sl A}, {\tt
+ sinusoid(a,twopi\_*n/x,-pi\_/2,0,x,dashed) with .Start at A}}
\macrodef{source}{source}{(\linespec,
- V|v|I|i|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other},
- {\sl diameter},R)}
+ V|v|I|i|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other}, {\sl
+ diameter},R)}
{cct}
{source, blank or:
- V = voltage source; v = alternate voltage source;
- I = current source; i = alternate current source;
- AC = AC source; B = bulb; F = fluorescent; G =
- generator; H = step function; L = lamp;
- N = neon; P = pulse; Q = charge; R = ramp; r = right
- orientation; S = sinusoid; SC = quarter arc; SE =
- arc; T = triangle; U = square-wave; X = interior X;
- other = custom interior label or waveform;
- arg 4: R = reversed polarity;
- arg 5 modifies the circle with e.g., color or fill
+ V = voltage source; v = alternate voltage source; I =
+ current source; i = alternate current source; AC =
+ AC source; B = bulb; F = fluorescent; G = generator;
+ H = step function; L = lamp; N = neon; P = pulse;
+ Q = charge; R = ramp; r = right orientation; S =
+ sinusoid; SC = quarter arc; SE = arc; T = triangle;
+ U = square-wave; X = interior X; other = custom
+ interior label or waveform; arg 4: R = reversed
+ polarity; arg 5 modifies the circle with e.g.,
+ color or fill
\seesect{Twoterminal:}}
\macrodef{sourcerad\_}{sourcerad_}{}
{cct}
@@ -1802,8 +1859,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{speaker, {\sl In1} to {\sl In7} defined; {\tt H}=horn
\seesect{Composite:}}
\macrodef{sprod3D}{sprod3D}{(a,x,y,z)}
- {3D}
- {scalar product of triple x,y,z by a}
+ {3D} {scalar product of triple x,y,z by a}
\macrodef{sqrta}{sqrta}{({\sl arg})}
{gen}
{square root of the absolute value of {\sl arg}; i.e.,
@@ -1811,32 +1867,31 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{SQUID}{SQUID}{({\sl n, diameter, initial angle}, {\tt ccw|cw})}
{cct}
{Superconducting quantum interface device
- with {\sl }n junctions labeled {\tt J1, ... J}{\sl n}
- placed around a circle with initial
- angle -90 deg (by default) with respect
- to the current drawing direction. The
- default diameter is {\tt dimen\_} }
+ with {\sl }n junctions labeled {\tt J1, ... J}{\sl n} placed around
+ a circle with initial angle -90 deg (by default) with respect to the
+ current drawing direction. The default diameter is {\tt dimen\_} }
\macrodef{stackargs\_}{stackargs}{(`{\sl stackname}',{\sl args})}
{gen}
{Stack arg 2, arg 3, ... onto the named stack up to a blank arg}
\macrodef{stackcopy\_}{stackcopy_}{(`{\sl name 1}',`{\sl name 2}')}
{gen}
- {Copy stack 1 into stack 2, preserving the order of pushed elements}
+ {Copy stack 1 into stack 2, preserving the order of pushed
+ elements}
\macrodef{stackdo\_}{stackdo}{(`{\sl stackname}',{\sl commands})}
{gen}
{Empty the stack to the first blank entry, performing arg 2}
\macrodef{stackexec\_}{stackexec_}{(`{\sl name 1}',`{\sl name 2}',%
{\sl commands})}
{gen}
- {Copy stack 1 into stack 2, performing arg3 for each nonblank entry}
+ {Copy stack 1 into stack 2, performing arg3 for each nonblank
+ entry}
\macrodef{stackprint\_}{stackprint_}{(`{\sl stack name}')}
{gen}
{Print the contents of the stack to the terminal}
-%\macrodef{stackpromote\_}{stackpromote_}{({\sl prefix},%
+%\macrodef{stackpromote\_}{stackpromote_}{({\sl prefix},%
% `{\sl stack name}',{\sl In name})}
% {gen}
-% {Define locations {\tt In1} or {\sl In name }{\tt 1}, $\ldots$ corresponding
-% to the locations in stack {\sl stack name}, as created by the
+% {Define locations {\tt In1} or {\sl In name }{\tt 1}, $\ldots$ corresponding % to the locations in stack {\sl stack name}, as created by the
% {\tt AutoGate} and {\tt Autologic} macros. Each location is prefixed
% by argument 1 ``.''}
\macrodef{stackreverse\_}{stackreverse_}{(`{\sl stack name}')}
@@ -1845,14 +1900,15 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{stacksplit\_}{stacksplit_}{(`{\sl stack name}',{\sl string},{\sl
separator})}
{gen}
- {Stack the fields of {\sl string} left to right separated by nonblank
- {\sl separator} (default .). White space preceding the fields is ignored.}
+ {Stack the fields of {\sl string} left to right separated
+ by nonblank
+ {\sl separator} (default .). White space preceding the fields
+ is ignored.}
\macrodef{sum\_}{sum_}{({\sl a},{\sl b})}
{gen}
{binary sum}
\macrodef{sum3D}{sum3D}{({\sl x1,y1,z1,x2,y2,z2})}
- {3D}
- {sum of two triples}
+ {3D} {sum of two triples}
\macrodef{sus}{sus}{({\sl linespec, chars, label})}
{cct}
{Wrapper to place an SUS thyristor as a two-terminal element with
@@ -1881,29 +1937,29 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
[{\sl arrowhd} | type={\sl arrowhd};name={\sl Name}],
{\sl fraction, length, fraction, length,} $\cdots$)}
{cct}
- {Draw the two-terminal element with taps in a [ ] block (see {\tt addtaps}).
- {\sl arrowhd} = blank or one of {\tt . - <- -> <->}.
- Each fraction determines the position along the element body of the tap.
- A negative length draws the tap to the right of the current
- direction; positive length to the left.
- Tap names are Tap1, Tap2, $\cdots$ by default or
- Name1, Name2, $\cdots$ if specified.
- Internal block names are {\tt .Start, .End,} and {.C} corresponding to the
- drawn element, and the tap names
- \seesect{Composite:} }
+ {Draw the two-terminal element with taps in a [ ] block (see
+ {\tt addtaps}).
+ {\sl arrowhd} = blank or one of {\tt . - <- -> <->}. Each fraction
+ determines the position along the element body of the tap. A negative
+ length draws the tap to the right of the current direction; positive
+ length to the left. Tap names are Tap1, Tap2, $\cdots$ by default
+ or Name1, Name2, $\cdots$ if specified. Internal block names are
+ {\tt .Start, .End,} and {.C} corresponding to the drawn element,
+ and the tap names \seesect{Composite:} }
\macrodef{tbox}{tbox}{({\sl text,wid,ht},<|>|<>,{\sl type})}
{cct}
- {Pointed terminal box. The {\sl text} is placed at the rectangular center
- in math mode unless the text begins with {\tt "} or {\tt sprintf} in which
- case the arument is used literally. Arg 4 determines whether the point is
- forward, backward, or both with respect to the current drawing direction.
+ {Pointed terminal box. The {\sl text} is placed at the rectangular
+ center
+ in math mode unless the text begins with {\tt "} or {\tt sprintf} in
+ which case the arument is used literally. Arg 4 determines whether
+ the point is forward, backward, or both with respect to the current
+ drawing direction.
\seesect{Composite:}}
\macrodef{tconn}{tconn}{({\sl linespec,}>|>>|<|<<|O[F],{\sl wid})}
{cct}
{Terminal connector, {\tt O}=circle; {\tt OF}=filled circle;
- {\tt > or >>} output connector
- (default {\tt >}) ;
- {\tt < or << input connector}; arg3 is arrowhead width or circle diameter
+ {\tt > or >>} output connector (default {\tt >}) ; {\tt < or <<
+ input connector}; arg3 is arrowhead width or circle diameter
\seesect{Composite:}}
\macrodef{tgate}{tgate}{({\sl linespec,} [B][R|L])}
{cct}
@@ -1911,11 +1967,11 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\seesect{Semiconductors:}}
\macrodef{thermocouple}{thermocouple}{({\sl linespec, wid, ht,} L|R)}
{cct}
- { Thermocouple drawn to the left (by default) of the {\sl linespec}
- line. If the {\sl linespec} length equals {\sl wid}
- (default {\tt dimen\_/5}), then only the two branches appear.
- {\tt R=} right orientation.
- \seesect{Twoterminal:}}
+ { Thermocouple drawn to the left (by default) of the {\sl
+ linespec}
+ line. If the {\sl linespec} length equals {\sl wid} (default
+ {\tt dimen\_/5}), then only the two branches appear. {\tt R=}
+ right orientation. \seesect{Twoterminal:}}
\macrodef{thicklines\_}{thicklines_}{({\sl number})}
{gen}
{set line thickness in points}
@@ -1923,40 +1979,40 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{gen}
{set line thickness in points}
\macrodef{threeD\_init}{threeD_init}{}
- {3D}
- {initialize 3D transformations (reads {\tt lib3D.m4})}
+ {3D} {initialize 3D transformations (reads {\tt lib3D.m4})}
\macrodef{thyristor}{thyristor}{(\linespec,%
{\tt [SCR|SCS|SUS|SBS|IEC][{\sl chars}]})}
{cct}
{Composite thyristor element in {\tt []}block:
types
- SCR: silicon controlled rectifier (default),
- SCS: silicon controlled switch,
- SUS: silicon unilateral switch,
- SBS: silicon bilateral switch,
- IEC: type IEC.
+ SCR: silicon controlled rectifier
+ (default), SCS: silicon controlled
+ switch, SUS: silicon unilateral switch,
+ SBS: silicon bilateral switch, IEC:
+ type IEC.
{\sl Chars} to modify or define the element:
- K: open arrowheads,
- A: arrowhead,
- F: half arrowhead,
- B: bidirectional diode,
- E: adds envelope,
- H: perpendicular gate (endpoint G),
- N: anode gate (endpoint Ga),
- U: centre line in diodes
- V: perpendicular gate across arrowhead centre,
- R=right orientation,
- E=envelope
+ K: open arrowheads, A: arrowhead, F:
+ half arrowhead, B: bidirectional diode,
+ E: adds envelope, H: perpendicular
+ gate (endpoint G), N: anode gate
+ (endpoint Ga), U: centre line in diodes
+ V: perpendicular gate across arrowhead
+ centre,
+ R=right orientation, E=envelope
\seesect{Semiconductors:}}
\macrodef{tikznode}{tikznode}{({\sl \Tikz node name, position}) }
{pgf}
{insert \Tikz code to define a zero-size \Tikz node at {\sl location}
- (default {\tt Here}) to assist with inclusion of \pic code output in
- \Tikz diagrams. This macro must be invoked in the outermost \pic scope.
- \seesect{Tikzwithpic:}}
+ (default {\tt Here}) to assist with inclusion of \pic code output
+ in \Tikz diagrams. This macro must be invoked in the outermost
+ \pic scope. \seesect{Tikzwithpic:}}
\macrodef{tline}{tline}{(\linespec,{\sl wid},{\sl ht}) }
{cct}
{transmission line, manhattan direction\seesect{Twoterminal:}}
+\macrodef{ToPos}{ToPos}{({\sl position}, U|D|L|R|{\sl degrees}, {\sl length}) }
+ {gen}
+ {Evaluates to {\tt from {\sl position} - Rect\_({\sl length, angle}) to
+ {\sl position}} from the polar-coordinate data in the arguments }
\macrodef{tr\_xy\_init}{tr_xy_init}{({\sl origin, unit size, sign })}
{cct}
{initialize {\tt tr\_xy}}
@@ -1966,26 +2022,22 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{transformer}{transformer}{(\linespec,L|R,{\sl np},%
[A|P][W|L][D1|D2|D12|D21],{\sl ns})}
{cct}
- {2-winding transformer or choke with terminals P1, P2, TP, S1, S2, TS:
- arg2: L = left, R = right,
- arg3: np primary arcs,
- arg5: ns secondary arcs,
- arg4: A = air core, P = powder (dashed) core,
- W = wide windings, L = looped windings,
- D1: phase dots at P1 and S1 end; D2 at P2 and S2 end; D12 at P1 and S2 end;
- D21 at P2 and S1 end
+ {2-winding transformer or choke with terminals P1, P2, TP, S1,
+ S2, TS:
+ arg2: L = left, R = right, arg3: np primary arcs, arg5: ns secondary
+ arcs, arg4: A = air core, P = powder (dashed) core, W = wide windings,
+ L = looped windings, D1: phase dots at P1 and S1 end; D2 at P2 and
+ S2 end; D12 at P1 and S2 end; D21 at P2 and S1 end
\seesect{Composite:}}
\macrodef{tstrip}{tstrip}{(R|L|U|D|{\sl degrees, nterms, chars})}
{cct}
{terminal strip, chars:
- I=invisible terminals,
- C=circle terminals (default),
- D=dot terminals,
- O=omitted separator lines,
- {\tt wid=}value{\tt ;} total strip width,
+ I=invisible terminals, C=circle terminals (default), D=dot terminals,
+ O=omitted separator lines, {\tt wid=}value{\tt ;} total strip width,
{\tt ht=}value{\tt ;} strip height
\seesect{Composite:}}
-\macrodef{ttmotor}{ttmotor}{({\sl linespec, string, diameter, brushwid, brushht})}
+\macrodef{ttmotor}{ttmotor}{({\sl linespec, string, diameter, brushwid,
+brushht})}
{cct}
{motor with label\seesect{Twoterminal:}}
\macrodef{twopi\_}{twopi_}{}
@@ -1997,8 +2049,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{unijunction transistor, right, P-channel, envelope
\seesect{Semiconductors:}}
\macrodef{unit3D}{unit3D}{(x,y,z)}
- {3D}
- {unit triple in the direction of triple x,y,z}
+ {3D} {unit triple in the direction of triple x,y,z}
\macrodef{up\_\_}{up__}{}
{gen}
{up with respect to current direction}
@@ -2007,30 +2058,33 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{set current direction up \seesect{Placing:}}
\Letter{V}%
\macrodef{variable}{variable}{(`{\sl element}',
- {\tt [A|P|L|[u]N|[u]NN][C|S]},{\sl angle},{\sl length})}
+ {\tt [A|P|L|[u]N|[u]NN][C|S]}, [+|-]{\sl angle},
+ {\sl length}, at position)}
{cct}
{overlaid arrow or line to indicate variable 2-terminal element:
- {\tt A}=arrow, {\tt P}=preset,
- {\tt L}=linear,
- {\tt N}= symmetric nonlinear,
- {\tt C}=continuous, {\tt S}=setpwise; {\tt u} changes the
- nonlinearity direction
+ {\tt A}=arrow, {\tt P}=preset, {\tt L}=linear, {\tt N}= symmetric
+ nonlinear, {\tt C}=continuous, {\tt S}=setpwise; {\tt u} changes
+ the nonlinearity direction. The angle is absolute but preceding
+ it with a sign makes the angle (often -30 or -45) relative to the
+ element drawing direction. If arg5 is blank the symbol is placed
+ over the last {\tt [ ]} block
\seesect{Twoterminal:}}
\macrodef{Vcoords\_}{Vcoords_}{({\sl position})}
{gen}
{The $x, y$ coordinate pair of the position}
\macrodef{Vdiff\_}{Vdiff_}{({\sl position},{\sl position})}
{gen}
- {{\tt Vdiff\_(A,B)} evaluates to {\tt A-(B)} with dpic, {\tt A-(B.x,B.y)}
+ {{\tt Vdiff\_(A,B)} evaluates to {\tt A-(B)} with dpic, {\tt
+ A-(B.x,B.y)}
with gpic}
\macrodef{vec\_}{vec_}{({\sl x},{\sl y})}
{gen}
{position rotated with respect to current direction}
\macrodef{View3D}{View3D}{}
- {3D}
- {The view vector (triple) defined by {\tt setview({\sl azim, elev})}. The
- {\tt project}
- macro projects onto the plane perpendicular to this vector}
+ {3D} {The view vector (triple) defined by {\tt setview({\sl azim,
+ elev})}. The
+ {\tt project} macro projects onto the plane perpendicular to this
+ vector}
\macrodef{vlength}{vlength}{({\sl x},{\sl y})}
{gen}
{vector length $\sqrt{x^2+y^2}$}
@@ -2039,7 +2093,8 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{unit-vector pair CCW-perpendicular to linear object}
\macrodef{Vperp}{Vperp}{({\sl position name}, {\sl position name})}
{gen}
- {unit-vector pair CCW-perpendicular to line joining two named positions}
+ {unit-vector pair CCW-perpendicular to line joining two named
+ positions}
\macrodef{vrot\_}{vrot_}{({\sl x},{\sl y},{\sl xcosine},{\sl ycosine})}
{gen}
{rotation operator}
@@ -2051,7 +2106,8 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{The vector in arg 1 multiplied by the scalar in arg 2}
\macrodef{Vsum\_}{Vsum_}{({\sl position},{\sl position})}
{gen}
- {{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt A+(B.x,B.y)}
+ {{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt
+ A+(B.x,B.y)}
with gpic}
\Letter{W}%
\macrodef{w\_}{w_}{}
@@ -2071,8 +2127,8 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{XOR\_gate}{XOR_gate}{({\sl n},N)}
{log}
{`xor' gate, 2 or {\sl n\/} inputs; N=negated input.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}
- to define normal or negated inputs.
+ Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
+ normal or negated inputs.
\seesect{Logicgates:}}
\macrodef{XOR\_off}{XOR_off}{}
{log}
@@ -2084,4 +2140,10 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
\macrodef{xtract}{xtract}{({\sl string, substr1, substr2, $\ldots$})}
{gen}
{returns substrings if present}
+\Letter{Y}%
+\macrodef{Ysymbol}{Ysymbol}{(at {\sl position},keys,
+ U|D|L|R|{\sl degrees}) (default {\tt U} for up)}
+ {cct}
+ {Y symbol for power-system diagrams
+ {\sl keys:} {\tt size={\sl expression}; type=G}}
% \end{tabbing}