summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/doc/defines.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-09-14 03:01:37 +0000
committerNorbert Preining <norbert@preining.info>2023-09-14 03:01:37 +0000
commit527001b634c06d34f92d1809f507add012c320f6 (patch)
tree17d54020bd8e320a65d118c5036beed8e4e18cb9 /graphics/circuit_macros/doc/defines.tex
parentde0fb15550a55ba5685a755fec7326e21a79fccd (diff)
CTAN sync 202309140301
Diffstat (limited to 'graphics/circuit_macros/doc/defines.tex')
-rw-r--r--graphics/circuit_macros/doc/defines.tex792
1 files changed, 429 insertions, 363 deletions
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index cf87a5b02f..7f3ceea1b3 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -187,14 +187,14 @@
{cct}
{line (dotted, dashed permissible) with centred arrowhead
\seesect{Twoterminal:}}
+\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{AutoGate}{AutoGate}{}
{log}
{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}])}
@@ -239,14 +239,6 @@
{\tt Autologix(Xor([PN],And(x,y),And(x,y)),LRV)}}
\Letter{B}%
-\macrodef{b\_}{b_}{}
- {gen}
- {blue color value}
-\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl
- frac})}
- {cct}
- {labelled branch-current arrow to {\sl frac} between branch end and body
- \seesect{Branchcurrent:}}
\macrodef{basename\_}{basename_}{({\sl string sequence, separator})}
{gen}
{Extract the rightmost name from a sequence of names separated by arg2
@@ -255,6 +247,14 @@
{cct}
{n-cell battery: default 1 cell,
R=reversed polarity\seesect{Twoterminal:}}
+\macrodef{b\_}{b_}{}
+ {gen}
+ {blue color value}
+\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl
+ frac})}
+ {cct}
+ {labelled branch-current arrow to {\sl frac} between branch end and body
+ \seesect{Branchcurrent:}}
\macrodef{beginshade}{beginshade}{({\sl gray value})}
{gen}
{begin gray shading, see {\tt shade}
@@ -270,10 +270,10 @@
{gen}
{Position {\sl distance} from {\sl Pos1} toward {\sl Pos2}. If
the fourth arg is {\tt R} then from {\sl Pos2} toward {\sl Pos1}.}
-\macrodef{bi\_tr}{bi_tr}{(\linespec,L|R,P,E)}
- {cct}
- {left or right, N- or P-type bipolar transistor, without or with envelope
- \seesect{Semiconductors:}}
+\macrodef{binary\_}{binary_}{($n$, [$m$])}
+ {gen}
+ {binary representation of $n,$ left padded to $m$ digits if the second
+ argument is nonblank}
\macrodef{bi\_trans}{bi_trans}{(\linespec,L|R,{\sl chars},E)}
{cct}
{ bipolar transistor, core left or right; chars:
@@ -291,15 +291,10 @@
{\tt [u]T}=thyristor trigger line;
arg 4 = E: envelope
\seesect{Semiconductors:}}
-\macrodef{binary\_}{binary_}{($n$, [$m$])}
- {gen}
- {binary representation of $n,$ left padded to $m$ digits if the second
- argument is nonblank}
-\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs,output,swid,sht,label})}
- {log}
- {output=[{\tt P|N}], inputs=[{\tt P|N}]$\ldots$, sizes swid and sht
- in {\tt L\_unit}s (default {\tt AND\_wd} = 7)
- \seesect{Logicgates:}}
+\macrodef{bi\_tr}{bi_tr}{(\linespec,L|R,P,E)}
+ {cct}
+ {left or right, N- or P-type bipolar transistor, without or with envelope
+ \seesect{Semiconductors:}}
\macrodef{boxcoord}{boxcoord}{({\sl planar obj},{\sl x fraction},{\sl y
fraction})}
{gen}
@@ -309,6 +304,11 @@
{evaluate, e.g.\ {\sl name}{\tt \_w} if defined, else {\sl default\/}
if given, else 0 {\tt v} gives sum of {\tt d} and {\tt h} values
\seesect{Interaction:}}
+\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs,output,swid,sht,label})}
+ {log}
+ {output=[{\tt P|N}], inputs=[{\tt P|N}]$\ldots$, sizes swid and sht
+ in {\tt L\_unit}s (default {\tt AND\_wd} = 7)
+ \seesect{Logicgates:}}
\macrodef{bp\_\_}{bp__}{}
{gen}
{big-point-size factor, in scaled inches, ({\tt *scale/72})}
@@ -316,12 +316,6 @@
{cct}
{pushbutton switch R=right orientation (default L=left);
chars: O= normally open, C=normally closed }
-\macrodef{BUF\_ht}{BUF_ht}{}
- {log}
- {basic buffer gate height in {\tt L\_unit}s}
-\macrodef{BUF\_wd}{BUF_wd}{}
- {log}
- {basic buffer gate width in {\tt L\_unit}s}
\macrodef{BUFFER\_gate}{BUFFER_gate}{(\linespec, [N|B],
{\sl wid, ht,} [N|P]\char42, [N|P]\char42, [N|P]\char42)}
{log}
@@ -339,14 +333,17 @@
Args 4-6 allow alternative
definitions of respective {\tt In, NE,}
and {\tt SE} argument sequences }
+\macrodef{BUF\_ht}{BUF_ht}{}
+ {log}
+ {basic buffer gate height in {\tt L\_unit}s}
+\macrodef{BUF\_wd}{BUF_wd}{}
+ {log}
+ {basic buffer gate width in {\tt L\_unit}s}
\macrodef{buzzer}{buzzer}{( U|D|L|R|{\sl degrees, size,}[C])}
{cct}
{buzzer, {\sl In1} to {\sl In3} defined, C=curved
\seesect{Composite:}}
\Letter{C}%
-\macrodef{c\_fet}{c_fet}{(\linespec,R,P)}
- {cct}
- {left or right, plain or negated pin simplified MOSFET}
\macrodef{capacitor}{capacitor}{(\linespec,{\sl chars},R,
{\sl height}, {\sl wid})}
{cct}
@@ -385,6 +382,9 @@
minimum long dash len, short dash len, gap len}}
{gen}
{Technical drawing centerline}
+\macrodef{c\_fet}{c_fet}{(\linespec,R,P)}
+ {cct}
+ {left or right, plain or negated pin simplified MOSFET}
\macrodef{Cintersect}{Cintersect}{({\sl Pos1, Pos2, rad1, rad2,} [R])}
{gen}
{Upper (lower if arg5={\tt R}) intersection of circles at
@@ -457,14 +457,14 @@
{\sl phase} )}
{gen}
{function $a\times\cos(\omega t + \phi)$ }
+\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})}
+ {3D}
+ {cross product of two triples}
\macrodef{cross}{cross}{(at {\sl location, size}|{\sl keys})}
{gen}
{Plots a small cross. The possible key-value pairs are:
{\tt size={\sl expr};},
{\tt line={\sl attributes};} }
-\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})}
- {3D}
- {cross product of two triples}
\macrodef{crossover}{crossover}{(\linespec, [L|R][:{\sl line attributes}],
Line1, Line2, .{.}.)}
{cct}
@@ -476,10 +476,6 @@
{cct}
{controlled-source width}
\Letter{D}%
-\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)}
- {cct}
- {left or right, N or P depletion MOSFET, envelope or simplified
- \seesect{Semiconductors:}}
\macrodef{dabove}{dabove}{(at {\sl location})}
{darrow}
{above (displaced dlinewid/2)}
@@ -488,18 +484,6 @@
{DAC with defined width, height, and number of inputs {\tt In$i$},
top terminals {\tt N$i$}, ouputs {\tt Out$i$},
and bottom terminals~{\tt S$i$} \seesect{Logicgates:}}
-\macrodef{darc}{darc}{({\sl center position},
- {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness},
- {\sl arrowhead wid}, {\sl arrowhead ht},
- {\sl terminals})}
- {darrow}
- {See also {\tt Darc}.
- CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads.
- Permissible {\sl terminals}:
- {\sl x}{\tt -},
- {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
- {\tt <-}, {\tt <-}{\sl x}, {\tt <->}
- where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.}
\macrodef{Darc}{Darc}{({\sl center position},
{\sl radius}, {\sl start radians}, {\sl end radians},
{\sl parameters})}
@@ -512,6 +496,20 @@
{\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
{\tt <-}, {\tt <-}{\sl x}, {\tt <->}
where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.}
+\macrodef{darc}{darc}{({\sl center position},
+ {\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness},
+ {\sl arrowhead wid}, {\sl arrowhead ht},
+ {\sl end symbols}, {\sl outline attributes}, {\sl inner attributes})}
+ {darrow}
+ {See also {\tt Darc}.
+ CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads.
+ Permissible {\sl end symbols}:
+ {\sl x}{\tt -},
+ {\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
+ {\tt <-}, {\tt <-}{\sl x}, {\tt <->}
+ where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.
+ An inner arc is drawn overlaying the outer arc.
+ Example: {\tt darc(,{,},{,},{,},{,}outlined "red",outlined "yellow")}.}
\macrodef{Darlington}{Darlington}{(L|R,{\sl chars})}
{cct}
{Composite Darlington pair Q1 and Q2 with internal locations E, B, C;
@@ -524,33 +522,44 @@
R2= Q2 bias resistor; E1= ebox,
Z= zener bias diode
\seesect{Semiconductors:}}
-\macrodef{darrow\_init}{darrow_init}{}
+\macrodef{darrow}{darrow}{(\linespec,
+ t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters},
+ {\sl color attributes})}
{darrow}
- {initialize darrow drawing parameters (reads {\tt darrow.m4})}
+ {See also {\tt Darrow}.
+ Double arrow, truncated at beginning (arg2={\tt t}) or
+ end (arg3={\tt t}), specified sizes,
+ with arrowhead and optional closed stem. The parameters (arg7) are
+ {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}}
+ or {\tt <->} where {\sl x} is {\tt |} or {\tt !}.
+ The {\tt !-} or {\tt -!} parameters close
+ the stem with half-thickness lines to simplify butting to other objects.
+ The color attributes are, e.g.,
+ {\tt outlined "{\sl color}" shaded "{\sl color}"}.
+ Example:
+ {\tt linethick=5; darrow(down\_\ 2,{,},0.5,0.75,0.75,|,outlined "red")}. }
\macrodef{Darrow}{Darrow}{(\linespec, {\sl parameters})}
{darrow}
{Wrapper for {\tt darrow}.
Semicolon-separated {\sl parameters}:
- {\tt S}, {\tt E} truncate at start or end by dline thickness/2;
- {\tt thick=}{\sl val} (total thicknes, ie width);
- {\tt wid=}{\sl val} (arrowhead width);
- {\tt ht=}{\sl val} (arrowhead height);
+ {\tt S;}, {\tt E;} truncate at start or end by dline thickness/2;
+ {\tt thick=}{\sl val}; (total thicknes, ie width);
+ {\tt wid=}{\sl val}; (arrowhead width);
+ {\tt ht=}{\sl val}; (arrowhead height);
{\tt ends=}
{\sl x}{\tt -}{\sl x} or
{\tt -}{\sl x} or
{\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line)
- or {\tt |} (full-width line).}
-\macrodef{darrow}{darrow}{(\linespec,
- t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters})}
+ or {\tt |} (full-width line).
+ Examples:
+ {\tt define(`dfillcolor',`1,0.85,0') linethick=5;
+ rgbdraw(1,0,0,Darrow(down\_\ 2,thick=0.5; wid=0.75; ht=0.75; ends=|->))},
+ which is equivalent to
+ {\tt Darrow(down\_\ 2,thick=0.5; wid=0.75; ht=0.75; \
+ ends=|->; outline="red")}. }
+\macrodef{darrow\_init}{darrow_init}{}
{darrow}
- {See also {\tt Darrow}.
- double arrow, truncated at beginning or end, specified sizes,
- with arrowhead or closed stem.
- {\sl parameters=}
- {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}}
- or {\tt <->} where {\sl x} is {\tt |} or {\tt !}.
- The {\tt !-} or {\tt -!} parameters close
- the stem with half-thickness lines to simplify butting to other objects. }
+ {Initialize darrow drawing parameters (reads library file {\tt darrow.m4})}
\macrodef{dashline}{dashline}{(\linespec,{\sl thickness}|{\sl color}|<->,
{\sl dash len, gap len},G)}
{gen}
@@ -567,14 +576,14 @@
{A DC symbol (a dashed line below a solid line).
The current drawing direction is default, otherwise Up, Down,
Left, Right, or at {\sl degrees} slant; e.g.,
- {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],,,R) $\rbrace$}
+ {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],{},{},R) $\rbrace$}
\seesect{Twoterminal:} }
-\macrodef{delay\_rad\_}{delay_rad_}{}
- {cct}
- {delay radius}
\macrodef{delay}{delay}{(\linespec,{\sl size})}
{cct}
{delay element\seesect{Twoterminal:}}
+\macrodef{delay\_rad\_}{delay_rad_}{}
+ {cct}
+ {delay radius}
\macrodef{deleminit\_}{deleminit_}{}
{darrow}
{sets drawing direction for dlines}
@@ -599,18 +608,26 @@
{\tt S[{\sl n}]} puts the Sel inputs at the bottom (default)
{\tt OE} ({\tt N=}negated) {\tt OE} pin
\seesect{Logicgates:}}
-\macrodef{dend}{dend}{(at {\sl location})}
+\macrodef{dend}{dend}{(at {\sl location},
+ {\sl line thickness}{\tt |}{\sl attributes})}
{darrow}
- {close (or start) double line}
+ {Close (or start) double line (Note specifying {\tt dends=} for {\tt Dline}
+ is a similar function. Arg2 is dline thickness or atributes:
+ {\tt thick={\sl expression};} (dline thickness in drawing units)
+ {\tt outline=({\sl r,g,b})|"{\sl color}";}}
+\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)}
+ {cct}
+ {left or right, N or P depletion MOSFET, envelope or simplified
+ \seesect{Semiconductors:}}
\macrodef{dfillcolor}{dfillcolor}{}
{darrow}
{dline fill color (default white)}
-\macrodef{diff\_}{diff_}{({\sl a},{\sl b})}
- {gen}
- {difference function}
\macrodef{diff3D}{diff3D}{({\sl x1,y1,z1,x2,y2,z2})}
{3D}
{difference of two triples}
+\macrodef{diff\_}{diff_}{({\sl a},{\sl b})}
+ {gen}
+ {difference function}
\macrodef{dimen\_}{dimen_}{}
{cct}
{size parameter for scaling circuit element bodies \seesect{Circuitscaling:}}
@@ -671,20 +688,27 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
line rather than the centre of the last {\tt [ ]};
L,R,A,B align labels ljust, rjust, above,
or below (absolute) respectively \seesect{Labels:}}
-\macrodef{dleft}{dleft}{}
+\macrodef{dleft}{dleft}{({\tt at} {\sl position}, {\sl line thickness},
+ {\sl attributes})}
{darrow}
- {double line left turn}
+ {Double line left turn 90 degrees. Attributes can be
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
+ where rgb values in parentheses or a defined color is specified.}
\macrodef{Dline}{Dline}{(\linespec, {\sl parameters})}
{darrow}
{Wrapper for {\tt dline}.
- Semicolon-separated {\sl parameters}:
- {\tt S}, {\tt E} truncate at start or end by dline thickness/2;
- {\tt thick=}{\sl val} (total thicknes, ie width);
+ The semicolon-separated {\sl parameters} are:
+ {\tt S;}, {\tt E;} truncate at start or end by dline thickness/2;
+ {\tt thick={\sl val};} (total thicknes, ie width);
+ {\tt outline={\sl color};} (e.g., {\tt "red"} or {\tt (1,0,0)}),
+ {\tt innershade={\sl color};} (e.g., {\tt (0,1,1)} or {\tt "cyan"}),
+ {\tt name={\sl Name};},
{\tt ends=}
{\sl x}{\tt -}{\sl x} or
{\tt -}{\sl x} or
{\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line)
- or {\tt |} (full-width line).}
+ or {\tt |;} (full-width line).}
\macrodef{dline}{dline}{(\linespec,t,t,{\sl width},{\sl parameters})}
{darrow}
{See also {\tt Dline}.
@@ -701,33 +725,37 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{dljust}{dljust}{(at {\sl location})}
{darrow}
{ljust (displaced dlinewid/2)}
-\macrodef{dn\_}{dnx}{}
- {gen}
- {down with respect to current direction}
\macrodef{dna\_}{dna_}{}
{cct}
{internal character sequence that specifies which subcomponents are drawn}
+\macrodef{dn\_}{dnx}{}
+ {gen}
+ {down with respect to current direction}
%\macrodef{dnm\_}{dnm_}{}
% {cct}
% {similar to dna\_}
+\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})}
+ {3D}
+ {dot product of two triples}
\macrodef{dot}{dot}{(at {\sl location},{\sl radius}|{\sl keys},{\sl fill})}
{gen}
{Filled circle (third arg= gray value: 0=black, 1=white). The possible
key-value pairs are:
{\tt rad={\sl expr};} and
{\tt circle={\sl attributes};} }
-\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})}
- {3D}
- {dot product of two triples}
\macrodef{dotrad\_}{dotrad_}{}
{gen}
{dot radius}
\macrodef{down\_}{down_}{}
{gen}
{sets current direction to down \seesect{Placing:}}
-\macrodef{dright}{dright}{}
+\macrodef{dright}{dright}{({\tt at} {\sl position}, {\sl line thickness},
+ {\sl attributes})}
{darrow}
- {double arrow right turn}
+ {Double line right turn 90 degrees. Attributes can be
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
+ where rgb values in parentheses or a defined color is specified.}
\macrodef{drjust}{drjust}{(at {\sl location})}
{darrow}
{rjust (displaced dlinewid/2)}
@@ -763,28 +791,30 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
Y = pull switch,
Z = turn switch
\seesect{Twoterminal:}}
-\macrodef{dtee}{dtee}{([L|R])}
+\macrodef{dtee}{dtee}{([L|R], {\sl line thickness}, {\sl attributes})}
{darrow}
- {double arrow tee junction with tail to left,
- right, or (default) back along current direction }
+ {Double arrow tee junction with tail to left,
+ right, or (default) back along current direction, leaving the current
+ location at the tee centre; e.g.,
+ {\tt dline(right\_,{,}t); dtee(R);
+ \{ darrow(down\_,t) \}; darrow(right\_,t)}.
+ The attributes are
+ {\tt thick={\sl expr};} (line thickness in drawing units),
+ {\tt innershade=({\sl r,g,b})|"{\sl color}";}
+ {\tt outline=({\sl r,g,b})|"{\sl color}";}. }
\macrodef{dtor\_}{dtor_}{}
{gen}
{degrees to radians conversion constant}
-\macrodef{dturn}{dturn}{({\sl degrees ccw})}
+\macrodef{dturn}{dturn}{({\sl degrees ccw},{\sl line thickness},
+ {\sl attributes})}
{darrow}
- {turn dline arg1 degrees left (ccw)}
+ {Tturn dline arg1 degrees left (ccw).
+ Attributes can be
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
+ where rgb values in parentheses or a defined color is specified.}
+%
\Letter{E}%
-\macrodef{E\_\_}{E__}{}
- {gen}
- {the constant $e$}
-\macrodef{e\_}{e_}{}
- {gen}
- {.e relative to current direction}
-\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
- \seesect{Semiconductors:}}
\macrodef{earphone}{earphone}{( U|D|L|R|{\sl degrees, size})}
{cct}
{earphone, {\sl In1} to {\sl In3} defined
@@ -800,6 +830,17 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
terms. The possible keys are {\tt lgth, wdth, text, box},
e.g., {\tt lgth=0.2; text=\char34{}XX\char34;
box=shaded \char34{}green\char34}\seesect{Twoterminal:}}
+\macrodef{E\_\_}{E__}{}
+ {gen}
+ {the constant $e$}
+\macrodef{e\_}{e_}{}
+ {gen}
+ {.e relative to current direction}
+\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
+ \seesect{Semiconductors:}}
\macrodef{elchop}{elchop}{({\sl Name1,Name2})}
{gen}
{{\tt chop} for ellipses: evaluates to {\tt chop} $r$ where $r$ is
@@ -812,6 +853,13 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{elen\_}{elen_}{}
{cct}
{default element length}
+\macrodef{ellipsearc}{ellipsearc}{({\sl width, height, startangle, endangle,
+ rotangle, {\tt cw|ccw}, line attributes})}
+ {gen}
+ {Arc of a rotated ellipse in a {\tt [ ]} block. Angles are in radians.
+ Arg5 is the angle of the width axis;
+ e.g., {\tt ellipsearc(2,1,0,pi\_,pi\_/4,{},dashed ->)}. Internal locations
+ are {\tt Start, End, C} (for centre). }
\macrodef{em\_arrows}{em_arrows}{({\sl type}|{\sl keys,angle,length})}
{cct}
{ Radiation arrows: {\sl type} {\tt N|I|E [D|T]}
@@ -832,6 +880,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{expe}{expe}{}
{gen}
{exponential, base $e$}
+%
\Letter{F}%
\macrodef{f\_box}{f_box}{({\sl boxspecs},{\sl text},{\sl expr1},$\cdots$)}
{gen}
@@ -860,11 +909,6 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{fitcurve}{fitcurve}{(V,n,[e.g. dotted],m (default 0))}
{gen}
{Draw a spline through positions V[m], $ldots$ V[n]: Works only with dpic.}
-\macrodef{FlipFlop}{FlipFlop}{(D|T|RS|JK,{\sl label},{\sl boxspec},%
- {\sl pinlength})}
- {log}
- {flip-flops,
- {\sl boxspec}=e.g.\ ht x wid y \seesect{Logicgates:}}
\macrodef{FlipFlop6}{FlipFlop6}{({\sl label},{\sl spec},{\sl boxspec})}
{log}
{{\em This macro (6-input flip-flops)
@@ -873,6 +917,11 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\sl spec}={\tt [[n]NQ][[n]Q][[n]CK][[n]PR][lb]}
{\tt [[n]CLR][[n]S][[n].|D|T|R]} to include and negate pins,
{\tt lb} to print labels }
+\macrodef{FlipFlop}{FlipFlop}{(D|T|RS|JK,{\sl label},{\sl boxspec},%
+ {\sl pinlength})}
+ {log}
+ {flip-flops,
+ {\sl boxspec}=e.g.\ ht x wid y \seesect{Logicgates:}}
\macrodef{FlipFlopJK}{FlipFlopJK}{({\sl label}, {\sl spec},{\sl boxspec})}
{log}
{{\em This macro (JK flip-flop)
@@ -903,9 +952,6 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\tt L}=active low out; {\tt M}=active low in;
{\tt E}=edge trigger \seesect{Logicgates:}. Optional arg 7 is the length
of pins}
-\macrodef{for\_}{for_}{({\sl start},{\sl end},{\sl increment},`{\sl actions}')}
- {gen}
- {integer for loop with index variable {\tt m4x} \seesect{Looping:}}
\macrodef{foreach\_}{foreach_}{(`{\sl variable}',{\sl actions},{\sl
value1, value2, $\ldots$})}
{gen}
@@ -913,6 +959,9 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
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}
+\macrodef{for\_}{for_}{({\sl start},{\sl end},{\sl increment},`{\sl actions}')}
+ {gen}
+ {integer for loop with index variable {\tt m4x} \seesect{Looping:}}
\macrodef{FTcap}{FTcap}{({\sl chars})}
{cct}
{Feed-through capacitor; example of a composite element derived from
@@ -923,17 +972,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{cct}
{fuse symbol, type$=$
{\tt A|B|C|D|S|HB|HC|SB} or {\tt dA=D}\seesect{Twoterminal:}}
+%
\Letter{G}%
-\macrodef{g\_}{g_}{}
- {gen}
- {green color value}
-\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:}}
@@ -941,6 +981,16 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{gen}
{initialize environment for general diagrams
(customizable, reads {\tt libgen.m4})}
+\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{g\_}{g_}{}
+ {gen}
+ {green color value}
+\macrodef{G\_hht}{G_hht}{}
+ {log}
+ {gate half-height in {\tt L\_unit}s}
\macrodef{glabel\_}{glabel_}{}
{cct}
{internal general labeller}
@@ -978,10 +1028,12 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{Gyrator two-port wrapper for {\tt nport}, {\tt N} omits pin dots; {\tt V}
gives a vertical orientation
\seesect{Composite:}}
+%
\Letter{H}%
-\macrodef{H\_ht}{H_ht}{}
- {log}
- {hysteresis symbol dimension in {\tt L\_unit}s}
+\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec})}
+ {gen}
+ {Manhattan box with 45 degree hatching, e.g.,
+ {\tt hatchbox(outlined "blue",{},dashed outlined "green" thick 0.4)}}
\macrodef{Header}{Header}{(1|2,{\sl rows,wid,ht,box attributes})}
{log}
{Header block with 1 or 2 columns and square Pin 1:
@@ -995,17 +1047,6 @@ n|e|s|w,{\sl length})}
{log}
{General pin for {\tt Header} macro; arg 4 specifies pin direction
with respect to the current drawing direction)}
-\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec})}
- {gen}
- {Manhattan box with 45 degree hatching, e.g.,
- {\tt hatchbox(outlined "blue",,dashed outlined "green" thick 0.4)}}
-\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht,
- boxspec}|[E[R][T]])}
- {cct}
- {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,}
- draws an {\tt heatere({\sl linespec, keys,} [R][T]),}
- otherwise a
- {\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}}
\macrodef{heatere}{heatere}{({\sl linespec, keys,} [R][T])}
{cct}
{Heater element with curved sides\seesect{Twoterminal:}.
@@ -1016,6 +1057,13 @@ n|e|s|w,{\sl length})}
{\tt wdth={\sl expr};} (default {\tt lgth*2/5});
{\tt cycles={\sl expr};}
{\tt line={\sl attributes};} (e.g., {\tt dotted, dashed, outlined})}
+\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht,
+ boxspec}|[E[R][T]])}
+ {cct}
+ {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,}
+ draws an {\tt heatere({\sl linespec, keys,} [R][T]),}
+ otherwise a
+ {\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}}
\macrodef{heatert}{heatert}{({\sl linespec, nparts|keys, wid, ht, boxspec})}
{cct}
{Two-terminal rectangular heater element\seesect{Twoterminal:}.
@@ -1026,13 +1074,16 @@ n|e|s|w,{\sl length})}
{\tt box={\sl body attributes};}
(e.g., {\tt dotted, dashed, outlined, shaded}).
Args 3--5 are unused if any key is given}
-\macrodef{hex\_digit}{hex_digit}{($n$)}
- {gen}
- {hexadecimal digit for $0 \leq n < 16$}
\macrodef{hexadecimal\_}{hexadecimal_}{($n$, [$m$])}
{gen}
{hexadecimal representation of $n,$ left padded to $m$ digits if the second
argument is nonblank}
+\macrodef{hex\_digit}{hex_digit}{($n$)}
+ {gen}
+ {hexadecimal digit for $0 \leq n < 16$}
+\macrodef{H\_ht}{H_ht}{}
+ {log}
+ {hysteresis symbol dimension in {\tt L\_unit}s}
\macrodef{hlth}{hlth}{}
{gen}
{current line half thickness in drawing units}
@@ -1042,6 +1093,7 @@ n|e|s|w,{\sl length})}
\macrodef{ht\_}{ht_}{}
{gen}
{height relative to current direction}
+%
\Letter{I}%
\macrodef{ifdpic}{ifdpic}{({\sl if true},{\sl if false})}
{gen}
@@ -1086,9 +1138,6 @@ n|e|s|w,{\sl length})}
{cct}
{left or right IGBT, L=alternate gate type, D=parallel diode,
dD=dotted connections }
-\macrodef{in\_\_}{in__}{}
- {gen}
- {absolute inches}
\macrodef{inductor}{inductor}{(\linespec, W|L, {\sl cycles}, M[n]|P[n]|K[n],
{\sl loop wid})}
{cct}
@@ -1099,12 +1148,12 @@ n|e|s|w,{\sl length})}
{\sl M4Core1, M4Core2,} $\ldots$;
arg5: loop width (default L,W: {\tt dimen\_}/5; other: {\tt dimen\_}/8)
\seesect{Twoterminal:}}
+\macrodef{in\_\_}{in__}{}
+ {gen}
+ {absolute inches}
\macrodef{inner\_prod}{inner_prod}{({\sl linear obj},{\sl linear obj})}
{gen}
{inner product of (x,y) dimensions of two linear objects}
-\macrodef{Int\_}{Int_}{}
- {gen}
- {corrected (old) gpic $int()$ function}
\macrodef{integrator}{integrator}{(\linespec,{\sl size})}
{cct}
{integrating amplifier\seesect{Twoterminal:}}
@@ -1115,23 +1164,27 @@ n|e|s|w,{\sl length})}
\macrodef{Intersect\_}{Intersect_}{({\sl Name1},{\sl Name2})}
{gen}
{intersection of two named lines}
+\macrodef{Int\_}{Int_}{}
+ {gen}
+ {corrected (old) gpic $int()$ function}
\macrodef{IOdefs}{IOdefs}{(\linespec,{\sl label},[P|N]*,L|R) }
{log}
{Define locations {\sl label}{\tt 1}, $\ldots$ {\sl label}{\tt n}
along the line; {\tt P}= label only;
{\tt N}=with {\tt NOT\_circle};
{\tt R}=circle to right of current direction }
+%
\Letter{J}%
-\macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)}
- {cct}
- {left or right, N or P JFET, without or with envelope
- \seesect{Semiconductors:}}
\macrodef{jack}{jack}{(U|D|L|R|{\sl degrees},{\sl chars})}
{cct}
{arg1: drawing direction; string arg2: {\tt R}=right orientation,
one or more {\tt L[M][B]} for L and auxiliary contacts with make or break
points; {\tt S[M][B]} for S and auxiliary contacts
\seesect{Composite:}}
+\macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)}
+ {cct}
+ {left or right, N or P JFET, without or with envelope
+ \seesect{Semiconductors:}}
\macrodef{jumper}{jumper}{({\sl linespec, chars}|{\sl keys})}
{cct}
{ Two-terminal solder jumper with named body parts.
@@ -1147,19 +1200,22 @@ n|e|s|w,{\sl length})}
{\tt wdth=}{\sl expr};
{\tt name=}{\sl chars} (the body name)%
\seesect{Twoterminal:}}
+%
\Letter{K}%
\macrodef{KelvinR}{KelvinR}{({\sl cycles},[R],{\sl cycle wid})}
{cct}
{IEEE resistor in a {\tt [ ]} block with Kelvin taps {\sl T1} and {\sl T2}
\seesect{Composite:}}
+%
\Letter{L}%
-\macrodef{L\_unit}{L_unit}{}
- {log}
- {logic-element grid size}
\macrodef{lamp}{lamp}{(\linespec, [R][T])}
{cct}
{Two-terminal incandescent lamp. {\tt T} truncates leads to the body width.
\seesect{Twoterminal:}}
+\macrodef{langle}{langle}{({\sl Start, End})}
+ {gen}
+ {Angle in radians from horizontal of the line from {\sl Start}
+ to {\sl End}.}
\macrodef{larrow}{larrow}{({\sl label},{\tt ->|<-},{\sl dist})}
{cct}
{arrow {\sl dist} to left of last-drawn 2-terminal element
@@ -1177,13 +1233,13 @@ n|e|s|w,{\sl length})}
\macrodef{left\_}{left_}{}
{gen}
{left with respect to current direction \seesect{Placing:}}
-\macrodef{length3D}{length3D}{(x,y,z)}
- {3D}
- {Euclidean length of triple x,y,z}
\macrodef{LEintersect}{LEintersect}{({\sl line name, Centre, ellipse wid,
ellipse ht}, [R])}
{gen}
{ First (second if arg5 is R) intersection of a line with an ellipse}
+\macrodef{length3D}{length3D}{(x,y,z)}
+ {3D}
+ {Euclidean length of triple x,y,z}
\macrodef{LEtangent}{LEtangent}{({\sl Pos1, Centre, ellips wid, ellipse ht}
[R])}
{gen}
@@ -1218,13 +1274,13 @@ n|e|s|w,{\sl length})}
{gen}
{the angle of a line or move from {\tt .start} to {\tt .end} of a linear
object (in degrees if arg2={\tt d})}
+\macrodef{linethick\_}{linethick_}{({\sl number})}
+ {gen}
+ {set line thickness in points}
\macrodef{lin\_leng}{lin_leng}{({\sl line-reference})}
{gen}
{length of a line, equivalent to {\sl line-reference}{\tt .len}
with dpic}
-\macrodef{linethick\_}{linethick_}{({\sl number})}
- {gen}
- {set line thickness in points}
\macrodef{ljust\_}{ljust_}{}
{gen}
{ljust with respect to current direction}
@@ -1243,44 +1299,48 @@ n|e|s|w,{\sl length})}
\macrodef{loc\_}{loc_}{({\sl x}, {\sl y})}
{gen}
{location adjusted for current direction}
-\macrodef{log\_init}{log_init}{}
- {log}
- {initialize environment for logic diagrams
- (customizable, reads {\tt liblog.m4})}
\macrodef{log10E\_}{log10E_}{}
{gen}
{constant $\log_{10}(e)$}
\macrodef{loge}{loge}{}
{gen}
{logarithm, base $e$}
+\macrodef{log\_init}{log_init}{}
+ {log}
+ {initialize environment for logic diagrams
+ (customizable, reads {\tt liblog.m4})}
\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}
-\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{lp\_xy}{lp_xy}{}
+ {log}
+ {coordinates used by {\tt lg\_pin}}
\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:}}
+\macrodef{lthick}{lthick}{}
+ {gen}
+ {current line thickness in drawing units}
\macrodef{lt\_}{lt_}{}
{gen}
{left with respect to current direction}
\macrodef{LT\_symbol}{LT_symbol}{(U|D|L|R|{\sl degrees})}
{log}
{logic-gate triangle symbol}
-\macrodef{lthick}{lthick}{}
- {gen}
- {current line thickness in drawing units}
+\macrodef{L\_unit}{L_unit}{}
+ {log}
+ {logic-element grid size}
+%
\Letter{M}%
\macrodef{m4\_arrow}{m4_arrow}{(\linespec,{\sl ht},{\sl wid})}
{gen}
@@ -1360,9 +1420,6 @@ n|e|s|w,{\sl length})}
\macrodef{Mux\_ht}{Mux_ht}{}
{cct}
{Mux height parameter in {\tt L\_unit}s}
-\macrodef{Mux\_wid}{Mux_wid}{}
- {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}})}
{log}
@@ -1373,28 +1430,23 @@ n|e|s|w,{\sl length})}
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{Mux\_wid}{Mux_wid}{}
+ {cct}
+ {Mux width parameter in {\tt L\_unit}s}
\macrodef{Mx\_pins}{Mx_pins}{}
{log}
{max number of gate inputs without wings}
+%
\Letter{N}%
-\macrodef{n\_}{n_}{}
- {gen}
- {.n with respect to current direction}
-\macrodef{N\_diam}{N_diam}{}
- {log}
- {diameter of `not' circles in {\tt L\_unit}s}
-\macrodef{N\_rad}{N_rad}{}
- {log}
- {radius of `not' circles in {\tt L\_unit}s}
\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.
\seesect{Logicgates:}}
-\macrodef{ne\_}{ne_}{}
- {gen}
- {.ne with respect to current direction}
+\macrodef{N\_diam}{N_diam}{}
+ {log}
+ {diameter of `not' circles in {\tt L\_unit}s}
\macrodef{NeedDpicTools}{NeedDpicTools}{}
{gen}
{executes {\tt copy "HOMELIB\_/dpictools.pic"} if the file has
@@ -1402,15 +1454,21 @@ n|e|s|w,{\sl length})}
\macrodef{neg\_}{neg_}{}
{gen}
{unary negation}
+\macrodef{ne\_}{ne_}{}
+ {gen}
+ {.ne with respect to current direction}
+\macrodef{n\_}{n_}{}
+ {gen}
+ {.n with respect to current direction}
+\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})}
+ {cct}
+ { norator two-terminal element \seesect{Twoterminal:}}
\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.
\seesect{Logicgates:}}
-\macrodef{norator}{norator}{(\linespec,{\sl width},{\sl ht})}
- {cct}
- { norator two-terminal element \seesect{Twoterminal:}}
\macrodef{NOT\_circle}{NOT_circle}{}
{log}
{`not' circle}
@@ -1441,6 +1499,9 @@ nw,nn,ne,ns,space ratio,pin lgth,style, other commands})}
(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{N\_rad}{N_rad}{}
+ {log}
+ {radius of `not' circles in {\tt L\_unit}s}
\macrodef{nterm}{nterm}{({\sl box spec{\tt ;}other commands,
nw,nn,ne,ns,pin lgth,style, other commands})}
{cct}
@@ -1463,6 +1524,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
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
@@ -1495,9 +1557,9 @@ label},{\sl size},{\sl
\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 [
@@ -1512,20 +1574,6 @@ elementspec}\char39,%
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}
-\macrodef{proximity}{proximity}{(\sl linespec)}
- {cct}
- {proximity detector (= {\tt consource(,P)})}
-\macrodef{pc\_\_}{pc__}{}
- {gen}
- {absolute points}
-\macrodef{pvcell}{pvcell}{({\sl linespec, width, height})}
- {cct}
- {PV cell}
-\macrodef{px\_\_}{px__}{}
- {gen}
- {absolute SVG screen pixels}
\macrodef{pconnex}{pconnex}{(R|L|U|D|{\sl degrees},{\sl chars})}
{cct}
{power connectors, arg 1: drawing direction; {\sl chars:}
@@ -1533,6 +1581,19 @@ elementspec}\char39,%
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{pc\_\_}{pc__}{}
+ {gen}
+ {absolute points}
+\macrodef{perpto}{perpto}{({\sl Pos1, Line, Point})}
+ {gen}
+ {{\sl Point} is the label for the point on {\sl Line} of the
+ perpendicular
+ from {\sl Point} to {\sl Line}.}
+\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Pos2, Pos3})}
+ {gen}
+ {The point between Pos2 and Pos3 of intersection of the perpendicular
+ to Pos1, i.e., the perpendicular projection of Pos1 onto the line
+ from Pos2 to Pos3.}
\macrodef{pi\_}{pi_}{}
{gen}
{$\pi$}
@@ -1546,26 +1607,12 @@ elementspec}\char39,%
\macrodef{point\_}{point_}{({\sl angle})}
{gen}
{(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
- from {\sl Point} to {\sl Line}.}
-\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Pos2, Pos3})}
- {gen}
- {The point between Pos2 and Pos3 of intersection of the perpendicular
- to Pos1, i.e., the perpendicular projection of Pos1 onto the line
- from Pos2 to Pos3.}
\macrodef{Point\_}{Point_}{({\sl integer})}
{gen}
{sets direction cosines in degrees \seesect{Placing:}}
\macrodef{polar\_}{polar_}{({\sl x},{\sl y})}
{gen}
{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}.}
\macrodef{potentiometer}{potentiometer}{(\linespec,%
{\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)} {cct}
{resistor with taps T1, T2, $\ldots$
@@ -1580,17 +1627,20 @@ elementspec}\char39,%
{3D} {3D to 2D projection onto the plane perpendicular to the view
vector with
angles defined by {\tt setview({\sl azim, elev})}}
+\macrodef{proximity}{proximity}{(\sl linespec)}
+ {cct}
+ {proximity detector (= {\tt consource(,P)})}
\macrodef{psset\_}{psset_}{({\sl PSTricks settings})}
{gen}
{set PSTricks parameters}
-\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{pt\_\_}{pt__}{}
+ {gen}
+ {\TeX\ point-size factor, in scaled inches, ({\tt *scale/72.27})}
\macrodef{ptrans}{ptrans}{(\linespec, [R|L])}
{cct}
{pass transistor; {\tt L=} left orientation
@@ -1613,10 +1663,14 @@ elementspec}\char39,%
which must contain no semicolons and the default values contain no colons.
Macro {\tt pushkey\_} is applied to each of the terms in order.
\seesect{Macroarguments:}}
-\Letter{R}%
-\macrodef{r\_}{r_}{}
+\macrodef{pvcell}{pvcell}{({\sl linespec, width, height})}
+ {cct}
+ {PV cell}
+\macrodef{px\_\_}{px__}{}
{gen}
- {red color value}
+ {absolute SVG screen pixels}
+%
+\Letter{R}%
\macrodef{rarrow}{rarrow}{({\sl label,{\tt ->|<-},{\sl dist}})}
{cct}
{arrow {\sl dist} to right of last-drawn 2-terminal element
@@ -1633,14 +1687,6 @@ elementspec}\char39,%
{Enclosed reed two-terminal contact;
{\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
- backward compatibility
- \seesect{Composite:}}
\macrodef{relaycoil}{relaycoil}{({\sl chars, wid, ht,} R|L|U|D|{\sl
degrees})}
{cct}
@@ -1654,6 +1700,14 @@ degrees})}
PO}=polarized; {\tt RM}=remanent; {\tt RH}=remanent; {\tt TH}=thermal;
{\tt EL}=electronic
\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
+ backward compatibility
+ \seesect{Composite:}}
\macrodef{resetdir\_}{resetdir_)}{}
{gen}
{resets direction set by {\tt setdir\_}}
@@ -1699,21 +1753,14 @@ degrees})}
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 =
line attributes, e.g., {\tt outlined "gray"}}
-\macrodef{r\_text}{r_text}{({\sl degrees},{\sl text},at {\sl position})}
+\macrodef{right\_}{right_}{}
{gen}
- {Rotate text by arg1 degrees (provides a single command for
- PSTricks, PGF, or SVG only) placed at position in arg3.
- The first argument is a decimal constant (not an expression) and
- the text is a simple string without quotes.
- \seesect{Interaction:}, \seesect{Pstricks:}}
+ {set current direction right \seesect{Placing:}}
\macrodef{rjust\_}{rjust_}{}
{gen}
{right justify with respect to current direction}
@@ -1735,12 +1782,6 @@ degrees})}
{3D} {rotates x,y,z about y axis}
\macrodef{rot3Dz}{rot3Dz}{({\sl radians,x,y,z})}
{3D} {rotates x,y,z about z axis}
-\macrodef{Rot\_}{Rot_}{({\sl position, degrees})}
- {gen}
- {rotate position by degrees}
-\macrodef{rot\_}{rot_}{({\sl x, y, angle})}
- {gen}
- {rotate {\sl x,y} by theta radians}
\macrodef{rotbox}{rotbox}{({\sl wid,ht,type},[r|t={\sl val}])}
{gen}
{box oriented in current direction in {\tt [ ]} block;
@@ -1754,6 +1795,12 @@ degrees})}
{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.}
+\macrodef{Rot\_}{Rot_}{({\sl position, degrees})}
+ {gen}
+ {rotate position by degrees}
+\macrodef{rot\_}{rot_}{({\sl x, y, angle})}
+ {gen}
+ {rotate {\sl x,y} by theta radians}
\macrodef{round}{round}{(at {\sl location,line thickness,attributes})}
{gen}
{filled circle for rounded corners; attributes={\tt colored
@@ -1766,6 +1813,9 @@ degrees})}
\macrodef{rpos\_}{rpos_}{({\sl position})}
{gen}
{Here + {\sl position}}
+\macrodef{r\_}{r_}{}
+ {gen}
+ {red color value}
\macrodef{rrot\_}{rrot_}{({\sl x, y, angle})}
{gen}
{\tt Here + vrot\_({\sl x, y, cos(angle), sin(angle))}}
@@ -1785,63 +1835,49 @@ degrees})}
\macrodef{rsvec\_}{rsvec_}{({\sl position})}
{gen}
{Here + {\sl position}}
-\macrodef{rt\_}{rt_}{}
+\macrodef{r\_text}{r_text}{({\sl degrees},{\sl text},at {\sl position})}
{gen}
- {right with respect to current direction}
+ {Rotate text by arg1 degrees (provides a single command for
+ PSTricks, PGF, or SVG only) placed at position in arg3.
+ The first argument is a decimal constant (not an expression) and
+ the text is a simple string without quotes.
+ \seesect{Interaction:}, \seesect{Pstricks:}}
\macrodef{rtod\_\_}{rtod__}{}
{gen}
{constant, degrees/radian}
\macrodef{rtod\_}{rtod_}{}
{gen}
{constant, degrees/radian}
+\macrodef{rt\_}{rt_}{}
+ {gen}
+ {right with respect to current direction}
\macrodef{rvec\_}{rvec_}{({\sl x},{\sl y})}
{gen}
{location relative to current direction}
+%
\Letter{S}%
-\macrodef{s\_}{s_}{}
- {gen}
- {.s with respect to current direction}
-\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)}
- {gen}
- {generate dimensioned text string using {\tt\char92{}boxdims} from
- {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()}
- (default 90) degrees \seesect{Interaction:}}
-\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})}
- {gen}
- {depth of the most recent (or named) {\tt s\_box}
- \seesect{Interaction:}}
-\macrodef{s\_ht}{s_ht}{({\sl name},{\sl default})}
- {gen}
- {height of the most recent (or named) {\tt s\_box}
- \seesect{Interaction:}}
-\macrodef{s\_init}{s_init}{({\sl name})}
- {gen}
- {initialize {\tt s\_box} string label to {\sl name} which should
- be unique
- \seesect{Interaction:}}
-\macrodef{s\_name}{s_name}{}
- {gen}
- {the value of the last {\tt s\_init} argument
- \seesect{Interaction:}}
-\macrodef{s\_wd}{s_wd}{({\sl name},{\sl default})}
- {gen}
- {width of the most recent (or named) {\tt s\_box}
- \seesect{Interaction:}}
\macrodef{sarrow}{sarrow}{(\linespec,{\sl keys})}
{gen}
{Single-segment, single-headed special arrows.
The {\sl keys} are
{\tt type=}{\tt O[pen]} (default)
- | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}{\tt ;}
+ | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}
+ | {\tt R[ight]} | {\tt L[eft]} {\tt ;}
{\tt wdth=}{\tt expression}{\tt ;} (default {\tt arrowwid})
{\tt lgth=}{\tt expression}{\tt ;} (default {\tt arrowht})
{\tt shaft=}{\sl shaft attributes} (e.g., {\tt dashed}){\tt ;}
{\tt head=}{\sl head attributes} (e.g., {\tt shaded}){\tt ;}
+ {\tt name=}{\sl Name}{\tt ;} (default {\sl Sarrow\_})
\seesect{Macroarguments:}}
\macrodef{savem4dir}{savem4dir}{([`{\sl stack name}'])}
{gen}
{Stack m4 direction parameters in the named stack
(default {\tt `savm4dir\_'})}
+\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)}
+ {gen}
+ {generate dimensioned text string using {\tt\char92{}boxdims} from
+ {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()}
+ (default 90) degrees \seesect{Interaction:}}
\macrodef{sbs}{sbs}{({\sl linespec, chars, label})}
{cct}
{Wrapper to place an SBS thyristor as a two-terminal element with
@@ -1860,9 +1896,10 @@ degrees})}
{Wrapper to place an SCS thyristor as a two-terminal element with
{\tt [ ]} block label given by the third argument
\seesect{Semiconductors:}}
-\macrodef{se\_}{se_}{}
+\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})}
{gen}
- {.se with respect to current direction}
+ {depth of the most recent (or named) {\tt s\_box}
+ \seesect{Interaction:}}
\macrodef{series\_}{series_}{({\sl elementspec}, {\sl elementspec},
$\ldots$)}
{cct}
@@ -1873,6 +1910,9 @@ $\ldots$)}
[rlabel($\ldots$);] [b\_current($\ldots$);]}. Internal points {\tt
Start}, {\tt End}, and {\tt C} are defined
\seesect{Seriesandparallel:} }
+\macrodef{se\_}{se_}{}
+ {gen}
+ {.se with respect to current direction}
\macrodef{setdir\_}{setdir_}{(R|L|U|D|{\sl degrees}, {\sl default}
U|D|R|L|{\sl degrees})}
{gen}
@@ -1881,11 +1921,6 @@ $\ldots$)}
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}); \seesect{Semiconductors:}}
\macrodef{setkey\_}{setkey_}{({\sl string, key, default,}[N])}
{gen}
{Key-value definition, like {\tt pushkey\_()} but the resulting
@@ -1896,14 +1931,14 @@ $\ldots$)}
{Multiple key-value definition using {\tt define()} rather than
{\tt pushdef().} See macro {\tt pushkeys\_}.
\seesect{Macroarguments:}}
+\macrodef{setrgb}{setrgb}{({\sl red value, green value, blue value},[{\sl
+ name}])}
+ {gen}
+ {define colour for lines and text, optionally named (default
+ {\tt lcspec}); \seesect{Semiconductors:}}
\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}
@@ -1916,6 +1951,11 @@ justification},cw|ccw,
\macrodef{sfgbelow}{sfgbelow}{}
{cct}
{like below but with extra space}
+\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{sfgline}{sfgline}{(\linespec,{\sl text},{\sl text
justification})}
{cct}
@@ -1932,11 +1972,6 @@ justification})}
{cct}
{self-loop drawn at angle {\sl angle} from a node,
with text label and a size-adjustment parameter }
-\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})}
- {gen}
- {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line
- thickness changes within this macro must be made via the {\tt linethick}
- environment variable rather than by the {\tt thickness} line attribute}
\macrodef{shadebox}{shadebox}{(box {\sl attributes, shade width})}
{gen}
{Box with edge shading. Arg2 is in points. See also {\tt shaded} }
@@ -1950,6 +1985,11 @@ justification})}
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{shade}{shade}{({\sl gray value},{\sl closed line specs})}
+ {gen}
+ {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line
+ thickness changes within this macro must be made via the {\tt linethick}
+ environment variable rather than by the {\tt thickness} line attribute}
\macrodef{shadowed}{shadowed}{(box|circle|ellipse|line,
{\sl position spec, keys})}
{gen}
@@ -1969,6 +2009,10 @@ justification})}
(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{s\_ht}{s_ht}{({\sl name},{\sl default})}
+ {gen}
+ {height of the most recent (or named) {\tt s\_box}
+ \seesect{Interaction:}}
\macrodef{SIdefaults}{SIdefaults}{}
{gen}
{Sets {\tt scale = 25.4} for drawing units in mm, and sets
@@ -1979,15 +2023,20 @@ justification})}
\macrodef{sign\_}{sign_}{({\sl number})}
{gen}
{sign function}
-\macrodef{Sin}{Sin}{({\sl integer})}
- {gen}
- {sine function, {\sl integer\/} degrees}
\macrodef{sinc}{sinc}{({\sl number})}
{gen}
{the $\hbox{sinc}(x)$ function}
\macrodef{sind}{sind}{({\sl arg})}
{gen}
{sine of an expression in degrees}
+\macrodef{s\_init}{s_init}{({\sl name})}
+ {gen}
+ {initialize {\tt s\_box} string label to {\sl name} which should
+ be unique
+ \seesect{Interaction:}}
+\macrodef{Sin}{Sin}{({\sl integer})}
+ {gen}
+ {sine function, {\sl integer\/} degrees}
\macrodef{sinusoid}{sinusoid}{({\sl amplitude, frequency, phase, tmin,
tmax, linetype})}
{gen}
@@ -2234,6 +2283,36 @@ justification})}
{\tt size=}{\sl expr} (default {\tt ht dimen\_/3}).
\seesect{SingleLine:}}
%
+\macrodef{sl\_transformer3}{sl_transformer3}{({\sl linespec, keys,
+ breaker keys, symbol keys})}
+ {SLD}
+ {Composite (block) SLD element: argument 1 is a \linespec\ that can be used
+ to set the direction and distance between primary terminals but not
+ position.
+
+ Argument 2 contains semicolon (;)-separated key-value body attributes:
+ {\tt name={\sl{}Name}} (default {\sl Body});
+ {\tt type=S|C} (default {\tt S});
+ {\tt scale={\sl expr}} (body size factor, default 1.0);
+ {\tt direct=L|R} (default {\tt L}) direction of the tertiary
+ circle and terminal relative to the drawing direction;
+ {\tt body={\sl circle attributes}}.
+
+ Argument 3 is colon (:)-separated sequence of up to three breaker
+ attribute specifications for the input, output, and teriary breaker
+ in order. A null or blank means no breaker, {\tt tt\_breaker}
+ specifications otherwise. Default breaker names are {\sl BrI}
+ and {\sl BrO} as for
+ {\tt sl\_transformer,} and {\sl Br} for the third breaker.
+
+ Argument 4 is colon (:)-separated sequence of up to three symbol
+ specifications for the input, output, and teriary circle
+ in order. A null or blank means no symbol;
+ {\tt Y} for a Y-symbol;
+ {\tt Delta} for a $\Delta$ symbol;
+ otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair.
+ \seesect{SingleLine:}}
+%
\macrodef{sl\_transformer}{sl_transformer}{({\sl linespec, keys,
input breaker keys, output breaker keys,
input circle inner object, output circle inner object})}
@@ -2273,35 +2352,6 @@ justification})}
otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair.
\seesect{SingleLine:}}
%
-\macrodef{sl\_transformer3}{sl_transformer3}{({\sl linespec, keys,
- breaker keys, symbol keys})}
- {SLD}
- {Composite (block) SLD element: argument 1 is a \linespec\ that can be used
- to set the direction and distance between primary terminals but not
- position.
-
- Argument 2 contains semicolon (;)-separated key-value body attributes:
- {\tt name={\sl{}Name}} (default {\sl Body});
- {\tt type=S|C} (default {\tt S});
- {\tt scale={\sl expr}} (body size factor, default 1.0);
- {\tt direct=L|R} (default {\tt L}) direction of the tertiary
- circle and terminal relative to the drawing direction;
- {\tt body={\sl circle attributes}}.
-
- Argument 3 is colon (:)-separated sequence of up to three breaker
- attribute specifications for the input, output, and teriary breaker
- in order. A null or blank means no breaker, {\tt tt\_breaker}
- specifications otherwise. Default breaker names are {\sl BrI}
- and {\sl BrO} as for
- {\tt sl\_transformer,} and {\sl Br} for the third breaker.
-
- Argument 4 is colon (:)-separated sequence of up to three symbol
- specifications for the input, output, and teriary circle
- in order. A null or blank means no symbol;
- {\tt Y} for a Y-symbol;
- {\tt Delta} for a $\Delta$ symbol;
- otherwise, other customization commands expanded in a {\tt \lbr\rbr} pair.
- \seesect{SingleLine:}}
\macrodef{sl\_ttbox}{sl_ttbox}{({\sl linespec, keys, input breaker keys,
output breaker keys})}
{SLD}
@@ -2326,34 +2376,38 @@ justification})}
except that the default breaker name is {\sl BrO}.
\label{sl_ttbox}%
\seesect{SingleLine:}}
+\macrodef{s\_name}{s_name}{}
+ {gen}
+ {the value of the last {\tt s\_init} argument
+ \seesect{Interaction:}}
+\macrodef{sourcerad\_}{sourcerad_}{}
+ {cct}
+ {default source radius}
\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
+ V|v|I|i|ii|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;
+ ii = double arrow 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}
- {default source radius}
-\macrodef{sp\_}{sp_}{}
- {gen}
- {evaluates to medium space for gpic strings}
\macrodef{speaker}{speaker}{( U|D|L|R|{\sl degrees},{\sl size},H)}
{cct}
{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}
+\macrodef{sp\_}{sp_}{}
+ {gen}
+ {evaluates to medium space for gpic strings}
\macrodef{sqrta}{sqrta}{({\sl arg})}
{gen}
{square root of the absolute value of {\sl arg}; i.e.,
@@ -2364,6 +2418,9 @@ justification})}
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{s\_}{s_}{}
+ {gen}
+ {.s with respect to current direction}
\macrodef{stackargs\_}{stackargs}{(`{\sl stackname}',{\sl args})}
{gen}
{Stack arg 2, arg 3, ... onto the named stack up to a blank arg}
@@ -2398,11 +2455,11 @@ justification})}
by nonblank
{\sl separator} (default .). White space preceding the fields
is ignored.}
+\macrodef{sum3D}{sum3D}{({\sl x1,y1,z1,x2,y2,z2})}
+ {3D} {sum of two triples}
\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}
\macrodef{sus}{sus}{({\sl linespec, chars, label})}
{cct}
{Wrapper to place an SUS thyristor as a two-terminal element with
@@ -2411,9 +2468,10 @@ justification})}
\macrodef{svec\_}{svec_}{({\sl x},{\sl y})}
{log}
{scaled and rotated grid coordinate vector}
-\macrodef{sw\_}{sw_}{}
+\macrodef{s\_wd}{s_wd}{({\sl name},{\sl default})}
{gen}
- {.sw with respect to current direction}
+ {width of the most recent (or named) {\tt s\_box}
+ \seesect{Interaction:}}
\macrodef{switch}{switch}{(\linespec,L|R,[C|O][D],[B|D])}
{cct}
{SPST switch (wrapper for bswitch, lswitch, and dswitch),
@@ -2423,10 +2481,11 @@ justification})}
if arg4=B (button switch): arg3 = O{\tt|}C
O=normally open, C=normally closed,
if arg4=D: arg3 = same as for dswitch \seesect{Twoterminal:}}
+\macrodef{sw\_}{sw_}{}
+ {gen}
+ {.sw with respect to current direction}
+%
\Letter{T}%
-\macrodef{ta\_xy}{ta_xy}{({\sl x, y})}
- {cct}
- {macro-internal coordinates adjusted for {\tt L|R}}
\macrodef{tapped}{tapped}{(`{\sl two-terminal element}',
[{\sl arrowhd} | type={\sl arrowhd};name={\sl Name}],
{\sl fraction, length, fraction, length,} $\cdots$)}
@@ -2440,6 +2499,9 @@ justification})}
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{ta\_xy}{ta_xy}{({\sl x, y})}
+ {cct}
+ {macro-internal coordinates adjusted for {\tt L|R}}
\macrodef{tbox}{tbox}{({\sl text,wid,ht},<|>|<>,{\sl type})}
{cct}
{Pointed terminal box. The {\sl text} is placed at the rectangular
@@ -2520,12 +2582,6 @@ justification})}
{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}}
-\macrodef{tr\_xy}{tr_xy}{({\sl x, y})}
- {cct}
- {relative macro internal coordinates adjusted for {\tt L|R}}
\macrodef{transformer}{transformer}{(\linespec,L|R,{\sl np},%
[A|P][W|L][D1|D2|D12|D21],{\sl ns})}
{cct}
@@ -2536,6 +2592,12 @@ justification})}
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{tr\_xy\_init}{tr_xy_init}{({\sl origin, unit size, sign })}
+ {cct}
+ {initialize {\tt tr\_xy}}
+\macrodef{tr\_xy}{tr_xy}{({\sl x, y})}
+ {cct}
+ {relative macro internal coordinates adjusted for {\tt L|R}}
\macrodef{tstrip}{tstrip}{(R|L|U|D|{\sl degrees, nterms, chars})}
{cct}
{terminal strip, chars:
@@ -2550,6 +2612,7 @@ brushht})}
\macrodef{twopi\_}{twopi_}{}
{gen}
{$2\pi$}
+%
\Letter{U}%
\macrodef{ujt}{ujt}{(\linespec,R,P,E)}
{cct}
@@ -2563,6 +2626,7 @@ brushht})}
\macrodef{up\_}{up_}{}
{gen}
{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},
@@ -2616,10 +2680,8 @@ brushht})}
{{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt
A+(B.x,B.y)}
with gpic}
+%
\Letter{W}%
-\macrodef{w\_}{w_}{}
- {gen}
- {.w with respect to current direction}
\macrodef{while\_}{while_}{(`{\sl test}',`{\sl actions}')}
{gen}
{Integer m4 while loop}
@@ -2631,6 +2693,9 @@ brushht})}
{cct}
{core winding drawn in the current direction; {\tt R}=right-handed
\seesect{Composite:}}
+\macrodef{w\_}{w_}{}
+ {gen}
+ {.w with respect to current direction}
\macrodef{XOR\_gate}{XOR_gate}{({\sl n},N)}
{log}
{`xor' gate, 2 or {\sl n\/} inputs; N=negated input.
@@ -2640,6 +2705,7 @@ brushht})}
\macrodef{XOR\_off}{XOR_off}{}
{log}
{XOR and NXOR offset of input face}
+%
\Letter{X}%
\macrodef{xtal}{xtal}{(\linespec,{\sl keys})}
{cct}