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.tex405
1 files changed, 383 insertions, 22 deletions
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index e598203179..eb7d914fb2 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -49,10 +49,11 @@
{gen}
{absolute value function}
\macrodef{ACsymbol}{ACsymbol}{(at {\sl position, len, ht,}
- [A]U|D|L|R|{\sl degrees}) }
+ [n:][A]U|D|L|R|{\sl degrees}) }
{cct}
- {draw an AC symbol ( 1-cycle sine wave); If arg 4 contains A, two arcs
- are drawn. The current drawing direction is default, otherwise Up, Down,
+ {draw a stack of $n$ (default 1) AC symbols
+ ( 1-cycle sine waves); If arg 4 contains A, two arcs
+ are used. The current drawing direction is default, otherwise Up, Down,
Left, Right, or at {\sl degrees} slant; \seesect{Twoterminal:} e.g.,\\
{\tt ebox; $\lbrace$ACsymbol(at last [],{,}dimen\_/8)$\rbrace$}}
\macrodef{adc}{adc}{({\sl width,height,nIn,nN,nOut,nS})}
@@ -349,10 +350,11 @@
arg5 = wid (defaults F: {\sl height}*0.3,
C,P: {\sl height}*0.4, CP: {\sl height}*0.8, E,K: {\sl height})
\seesect{Twoterminal:}}
-\macrodef{cbreaker}{cbreaker}{(\linespec,L|R,D|Th|TS)}
+\macrodef{cbreaker}{cbreaker}{(\linespec, L|R, D|Th|TS, body name)}
{cct}
{circuit breaker to left or right, {\tt D}=with dots; {\tt Th}=thermal;
- {\tt TS}=squared thermal\seesect{Twoterminal:}}
+ {\tt TS}=squared thermal; default body bounding box name is
+ {\sl Br}\seesect{Twoterminal:}}
\macrodef{ccoax}{ccoax}{(at {\sl location}, M|F, {\sl diameter})}
{cct}
{coax connector, {\tt M}=male, {\tt F}=female
@@ -441,9 +443,10 @@
\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})}
{3D}
{cross product of two triples}
-\macrodef{crossover}{crossover}{(\linespec, L|R, Line1, ...)}
+\macrodef{crossover}{crossover}{(\linespec, [L|R][:{\sl line attributes}],
+ Line1, Line2, .{.}.)}
{cct}
- {line jumping left or right over named lines\seesect{Semiconductors:}}
+ {line jumping left or right over ordered named lines\seesect{Semiconductors:}}
\macrodef{crosswd\_}{crosswd_}{}
{gen}
{cross dimension}
@@ -557,7 +560,9 @@
U|D|L|R|{\sl degrees}) (default {\tt U} for up)}
{cct}
{Delta symbol for power-system diagrams.
- {\sl keys:} {\tt size={\sl expression}}}
+ {\sl keys:} {\tt size={\sl expression;}}
+ {\tt type=C|O} (default {\tt C} for closed;
+ {\tt O} draws an ``open'' symbol); }
\macrodef{Demux}{Demux}{({\sl n},{\sl label},
{\tt [L][B|H|X][N[{\sl n}]|S[{\sl n}]][[N]OE],
{\sl wid},{\sl ht}})}
@@ -593,7 +598,7 @@
{macro for dimensioning diagrams;
{\sl arrowhead=}{\tt -> | <-}}
\macrodef{diode}{diode}{(\linespec,%
-B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
+B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
[R][E])}
{cct}
{diode:
@@ -607,6 +612,7 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
{\tt S}=Schottky,
{\tt Sh}=Shockley,
{\tt T}=tunnel,
+ {\tt U}=limiting,
{\tt V}=varicap,
{\tt v}=varicap (curved plate),
{\tt w}=varicap (reversed polarity),
@@ -699,7 +705,7 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
\macrodef{drjust}{drjust}{(at {\sl location})}
{darrow}
{rjust (displaced dlinewid/2)}
-\macrodef{dswitch}{dswitch}{(\linespec,L|R,W[ud]B[K]{\sl chars})}
+\macrodef{dswitch}{dswitch}{(\linespec,L|R,W[ud]B {\sl chars})}
{cct}
{SPST switch left or right, W=baseline, B=contact blade,
dB=contact blade to the right of drawing direction,
@@ -1511,6 +1517,23 @@ elementspec}\char39,%
{cct}
{pass transistor; {\tt L=} left orientation
\seesect{Semiconductors:}}
+\macrodef{pushkey\_}{pushkey_}{({\sl string, key, default value,}[N])}
+ {gen}
+ {Key-value definition.
+ If {\sl string} contains the substring
+ {\sl key}{\tt =}{\sl expr} then macro {\tt m4{\sl key}}
+ is defined using {\tt pushdef()} to
+ expand to {\tt ({\sl expr})}, or to {\tt ({\sl default value})} if the
+ substring is missing. Arg 1 can contain several such substrings separated
+ by semicolons.
+ If arg4 is nonblank, the parentheses are omitted.
+ \seesect{Macroarguments:}}
+\macrodef{pushkeys\_}{pushkeys_}{({\sl string, key sequence})}
+ {gen}
+ {Multiple key-value definitions. Arg 2 is a semicolon-separated
+ sequence of terms of the form {\tt {\sl key}:{\sl default value}:[N]}.
+ Macro {\tt pushkey\_} is applied to each of the terms in order.
+ \seesect{Macroarguments:}}
\Letter{R}%
\macrodef{r\_}{r_}{}
{gen}
@@ -1606,6 +1629,10 @@ degrees})}
{Draw a right-angle symbol at {\sl Pos2}, of size
given by arg4. Arg5 =
line attributes, e.g., {\tt outlined "gray"}}
+\macrodef{r\_text}{s_text}{({\sl text},{\sl degrees})}
+ {gen}
+ {Rotate text by arg2 degrees (PSTricks, PGF, or SVG only).
+ \seesect{Interaction:}, \seesect{Pstricks:}}
\macrodef{rjust\_}{rjust_}{}
{gen}
{right justify with respect to current direction}
@@ -1660,10 +1687,16 @@ degrees})}
\macrodef{rrot\_}{rrot_}{({\sl x, y, angle})}
{gen}
{\tt Here + vrot\_({\sl x, y, cos(angle), sin(angle))}}
-\macrodef{rs\_box}{rs_box}{({\sl text},{\sl expr1},$\cdots$)}
+\macrodef{rs\_box}{rs_box}{([angle={\sl expr};]
+ {\sl text},{\sl expr1},$\cdots$)}
{gen}
{like {\tt s\_box} but the text is rotated by {\tt text\_ang}
- (default 90) degrees \seesect{Interaction:}, \seesect{Pstricks:}}
+ (default 90) degrees. Two or more args are passed to {\tt sprintf()}.
+ If the first argument begins with {\tt angle={\sl expr};} then
+ the specified angle is used.
+ The examples {\tt define(`text\_ang',45); rs\_box(Hello World)} and
+ {\tt rs\_box(angle=45; Hello World)} are equivalent
+ \seesect{Interaction:}, \seesect{Pstricks:}}
\macrodef{rsvec\_}{rsvec_}{({\sl position})}
{gen}
{Here + {\sl position}}
@@ -1756,7 +1789,7 @@ $\ldots$)}
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})}
+ 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
@@ -1771,11 +1804,14 @@ U|D|R|L|{\sl degrees})}
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
- 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.}
+ {Key-value definition, like {\tt pushkey\_()} but the resulting
+ macro is defined using {\tt define()} rather than {\tt pushdef().}
+ \seesect{Macroarguments:}}
+\macrodef{setkeys\_}{setkeys_}{({\sl string, key sequence})}
+ {gen}
+ {Multiple key-value definition using {\tt define()} rather than
+ {\tt pushdef().} See macro {\tt pushkeys\_}.
+ \seesect{Macroarguments:}}
\macrodef{setview}{setview}{({\sl azimuth degrees},{\sl elevation
degrees})}
{3D} {set projection viewpoint}
@@ -1850,8 +1886,8 @@ justification})}
\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})}
@@ -1867,14 +1903,339 @@ justification})}
{gen}
{sine of an expression in degrees}
\macrodef{sinusoid}{sinusoid}{({\sl amplitude, frequency, phase, tmin,
-tmax,
- linetype})}
+ 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}}
+\macrodef{sl\_box}{sl_box}{({\sl stem linespec, keys, stem object})}
+ {SLD}
+ {One-terminal SLD element: argument 1 is a \linespec\ to define the stem
+ or, in the case of a zero-length stem, one of {\tt U, D, L, R,} or an
+ angle in degrees, optionally followed by {\tt at {\sl position}}.
+ The position is {\sl Here} by default.
+
+ Argument 2 contains semicolon (;)-separated key-value attributes
+ of the head:
+ {\tt name={\sl{}Name}} (default {\sl Head});
+ {\tt lgth={\sl{}expr}};
+ {\tt wdth={\sl{}expr}};
+ {\tt text="{\sl{}text}"},
+ {\tt box={\sl{}box pic attributes}}.
+
+ If argument 3 is null then a plain stem is drawn; if it is of the
+ form {\tt S:}{\sl keys} or {\tt S$n$:}{\sl keys} an $n$-line slash
+ symbol is overlaid on the stem; otherwise the keys are for an overlaid
+ breaker, so that a {\tt C} specifies a default closed breaker, {\tt
+ O} an open breaker, {\tt X,} {\tt /,} or \bsl\ for these marks, or
+ \MR{sl_ttbox}{\tt sl\_ttbox} key-value pairs defining box attributes
+ for the breaker (default name {\sl Br})
+
+ \seesect{SingleLine:}}
+\macrodef{sl\_breaker}{sl_breaker}{({\sl linespec,} {\tt type=[A|C][D];}
+ {\sl ttbox args})}
+ {SLD}
+ {Two-terminal SLD element:
+ type {\tt A} (the default) is for a box breaker; type
+ {\tt C} for a curved breaker; adding a {\tt D} puts drawout elements
+ in the input and output leads.
+ Otherwise, the arguments are as for
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ \seesect{SingleLine:}}
+\macrodef{sl\_busbar}{sl_busbar}{({\sl linespec, np, keys})}
+ {SLD}
+ {Composite SLD element drawn in a {\tt [ ]} block. A busbar is
+ essentially a thick straight line
+ drawn along the {\sl linespec} with positions evenly distributed
+ along it. For example,
+ {\tt line right\_; sl\_busbar(, up\_ 4.5, 5) with .P3 at Here}.
+
+ Argument 1 is a \linespec\ to define the direction and length of the
+ busbar (but not its position, since it is drawn in a {\tt [ ]} block).
+
+ Argument 2 is the number $np$ of evenly spaced positions
+ $P1, P2, \ldots Pnp$ along the line with $P1$ and $Pnp$ indented
+ from the ends of the line.
+
+ Argument 3 contains semicolon (;)-separated key-value attributes
+ of the line:
+ {\tt port=D} (for a dot at each port position);
+ {\tt line=}{\sl pic line attributes}.
+ {\tt indent=}{\sl indent distance}.
+ \seesect{SingleLine:}}
+\macrodef{sl\_ct}{sl_ct}{%
+ ({\tt at}{\sl position},{\sl keys},{\tt R|L|U|D|}{\sl degrees})}
+ {SLD}
+ {Composite SLD element drawn in a {\tt [ ]} block:
+
+ The keys are as follows:
+ {\tt type=L|N|S[n]} (default {\tt L;} {\tt S$n$} draws an $n$-line slash
+ symbol, default 2); {\tt N} means no stem);
+ {\tt scale={\sl expr} (default 1.0)};
+ {\tt grnd={\sl expr} attached ground at given angle
+ (type {\tt S} or {\tt N}))};
+ {\tt stemlgth={\sl{}expr}};
+ {\tt wdth={\sl{}expr}};
+ {\tt direct=U|D|L|R|{\sl degrees}} (drawing direction).
+
+ Key {\tt stemlgth} is the length of the leads at the start, centre, and end,
+ with labeled ends {\sl Tstart, Tc,} and {\sl Tend}.
+ The {\tt L} (default) variant also defines internal labels
+ Internal labels {\sl L} and {\sl C} are included.
+
+ Key {\tt scale} allows scaling (default scale 1.0) but, with \dpic,
+ the {\tt scaled} directive can also be used.
+ \seesect{SingleLine:}}
+\macrodef{sl\_disk}{sl_disk}{({\sl stem linespec, keys, breaker})}
+ {SLD}
+ {One-terminal SLD element: argument 1 is a \linespec\ to define the stem
+ or, in the case of a zero-length stem, one of {\tt U, D, L, R,} or an
+ angle in degrees, optionally followed by {\tt at {\sl position}}.
+ The position is {\sl Here} by default.
+
+ Argument 2 contains semicolon (;)-separated key-value attributes
+ of the head:
+ {\tt name={\sl{}Name}} (default {\sl Head});
+ {\tt text="{\sl{}text}"};
+ {\tt diam={\sl{}expr}};
+ {\tt circle={\sl{}circle pic attributes}}.
+
+ Argument 3 is null for no breaker in the stem, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ key-value pairs defining box attributes for the breaker
+ (default name {\sl Br})
+ \label{sl_disk}%
+ \seesect{SingleLine:}}
+\macrodef{sl\_drawout}{sl_drawout}{({\sl linespec, keys,} R)}
+ {SLD}
+ {Two-terminal SLD element: argument 1 is a \linespec\ as for ordinary
+ two-terminal elements.
+
+ Argument 2 contains semicolon (;)-separated key-value body attributes:
+ {\tt type=T} (for truncated leads);
+ {\tt lgth={\sl{}expr},}
+ {\tt wdth={\sl{}expr}} (body size);
+ {\tt name={\sl{}Name}} (default {\sl Body});
+ {\tt line={\sl{}pic line attributes}}; (e.g., {\tt thick 2})
+
+ Argument 3 is {\tt R} to reverse the direction of the drawn chevrons.
+ \seesect{SingleLine:}}
+\macrodef{sl\_generator}{sl_generator}{({\sl stem linespec, keys, breaker})}
+ {SLD}
+ {One-terminal SLD element: argument 2 is
+ {\tt type=AC|WT|BS|StatG|PV|Y|Delta} and,
+ if {\tt type=PV,} the {\tt SL\_box} keys;
+ otherwise, the {\tt sl\_disk} body keys.
+
+ Argument 3 is null for no breaker in the stem, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ key-value pairs defining box attributes for the breaker
+ (default name {\sl Br})
+ \seesect{SingleLine:}}
+\macrodef{sl\_grid}{sl_grid}{({\sl stem linespec, keys, breaker})}
+ {SLD}
+ {One-terminal SLD element: argument 1 is a \linespec\ to define the stem
+ or, in the case of a zero-length stem, one of {\tt U, D, L, R,} or an
+ angle in degrees, optionally followed by {\tt at {\sl position}}.
+ The position is {\sl Here} by default.
+
+ Argument 2 contains semicolon (;)-separated key-value attributes
+ of the head:
+ {\tt name={\sl{}Name}} (default {\sl Head});
+ {\tt lgth={\sl{}expr}};
+ {\tt wdth={\sl{}expr}}.
+
+ Argument 3 is null for no breaker in the stem, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ key-value pairs defining box attributes for the breaker
+ (default name {\sl Br})
+ \seesect{SingleLine:}}
+\macrodef{sl\_inverter}{sl_inverter}{({\sl ttbox args})}
+ {SLD}
+ {Two-terminal SLD element: the arguments are as for
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ \seesect{SingleLine:}}
+\macrodef{sl\_lamp}{sl_lamp}{({\sl stem linespec, keys, breaker})}
+ {SLD}
+ {One-terminal SLD element: the arguments are as for
+ \MR{sl_disk}{\tt sl\_disk}
+ \seesect{SingleLine:}}
+\macrodef{sl\_load}{sl_load}{({\sl stem linespec, keys, breaker})}
+ {SLD}
+ {One-terminal SLD element: argument 1 is a \linespec\ to define the stem
+ or, in the case of a zero-length stem, one of {\tt U, D, L, R,} or an
+ angle in degrees, optionally followed by {\tt at {\sl position}}.
+ The position is {\sl Here} by default.
+
+ Argument 2 contains semicolon (;)-separated key-value attributes
+ of the head:
+ {\tt name={\sl{}Name}} (default {\sl Head});
+ {\tt lgth={\sl{}expr}};
+ {\tt wdth={\sl{}expr}};
+ {\tt head={\sl{}arrowhead pic attributes}}.
+
+ Argument 3 is null for no breaker in the stem, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ key-value pairs defining box attributes for the breaker
+ (default name {\sl Br})
+ \seesect{SingleLine:}}
+\macrodef{sl\_meterbox}{sl_meterbox}{({\sl stem linespec, keys, breaker})}
+ {SLD}
+ {One-terminal SLD element: argument 1 is a \linespec\ to define the stem
+ or, in the case of a zero-length stem, one of {\tt U, D, L, R,} or an
+ angle in degrees, optionally followed by {\tt at {\sl position}}.
+ The position is {\sl Here} by default.
+
+ Argument 2 contains semicolon (;)-separated key-value attributes
+ of the head:
+ {\tt name={\sl{}Name}} (default {\sl Head});
+ {\tt lgth={\sl{}expr}};
+ {\tt wdth={\sl{}expr}};
+ {\tt text="{\sl{}text}"},
+ {\tt box={\sl{}box pic attributes}}.
+
+ Argument 3 is null for no breaker in the stem, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ key-value pairs defining box attributes for the breaker
+ (default name {\sl Br})
+ \seesect{SingleLine:}}
+\macrodef{sl\_reactor}{sl_reactor}{({\sl stem linespec, keys, breaker keys,
+ breaker keys})}
+ {SLD}
+ {Two-terminal SLD element: argument 1 is a \linespec\ as for ordinary
+ two-terminal elements.
+
+ Argument 2 contains semicolon (;)-separated key-value body attributes:
+ {\tt name={\sl{}Name}} (default {\sl Body});
+ {\tt diam={\sl{}expr}}.
+
+ Argument 3 is null for no breaker in the input lead, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ key-value pairs as above defining breaker attributes
+ except that the default breaker name is {\sl BrI}.
+
+ Argument 4 defines the breaker in the output lead as for argument 3
+ except that the default breaker name is {\sl BrO}.
+ \seesect{SingleLine:}}
+\macrodef{sl\_rectifier}{sl_rectifier}{({\sl ttbox args})}
+ {SLD}
+ {Two-terminal SLD element: the arguments are as for
+ \MR{sl_ttbox}{\tt sl\_ttbox}
+ \seesect{SingleLine:}}
+\macrodef{sl\_slash}{sl_slash}{(at {\sl position, keys,}
+ [$n$:]R|L|U|D|{\sl degrees})}
+ {SLD}
+ {Slash symbol for SLD elements: draws $n$ slashes in a {\tt [] } block.
+ The keys are
+ {\tt lines={\sl line attributes,} e.g., dotted thick {\sl expr}};
+ {\tt size=}{\sl expr} (default {\tt ht dimen\_/3}).
+ \seesect{SingleLine:}}
+%
+\macrodef{sl\_transformer}{sl_transformer}{({\sl linespec, keys,
+ input breaker keys, output breaker keys,
+ input circle inner object, output circle inner object})}
+ {SLD}
+ {Two-terminal SLD element: argument 1 is a \linespec\ as for ordinary
+ two-terminal elements.
+
+ Argument 2 contains semicolon (;)-separated key-value body attributes:
+ {\tt name={\sl{}Name}} (default {\sl Body});
+ {\tt scale={\sl expr}} (body size factor, default 1.0);
+ {\tt type=I|S|A[R]} (default {\tt I}).
+
+ Additional type {\tt I} keys are
+ {\tt cycles={\sl{}integer}} (default 4);
+ {\tt core=A|M[$n$]|P[$n$]|K[$n$]}, $n$={\sl integer} (default 2 lines).
+
+ Additional type {\tt S} keys are
+ {\tt body={\sl circle pic attributes}} e.g., {\tt shaded "{\sl color}"}.
+
+ Type {\tt A} keys are
+ {\tt body={\sl circle pic attributes}}. Type {\tt AR} means right
+ orientation.
+
+ Argument 3 is null for no breaker in the input lead, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ key-value pairs as above defining breaker attributes
+ except that the default breaker name is {\sl BrI}.
+
+ Argument 4 defines the breaker in the output lead as for argument 3
+ except that the default breaker name is {\sl BrO}.
+
+ Argumentss 5 and 6 for the input and output circles respectively are:
+ {\tt Y} for a Y-symbol;
+ {\tt YN} for a Y-symbol with ground;
+ {\tt Delta} for a $\Delta$ symbol;
+ 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}
+ {Two-terminal SLD element: argument 1 is a \linespec\ as for ordinary
+ two-terminal elements.
+
+ Argument 2 contains semicolon (;)-separated key-value body attributes:
+ {\tt name={\sl{}Name}} (default {\sl Body});
+ {\tt lgth={\sl{}expr}};
+ {\tt wdth={\sl{}expr}};
+ {\tt text="{\sl{}text}"};
+ {\tt box={\sl{}box pic attributes}};
+ {\tt supp={\sl{}additional {\tt rotbox} commands}}.
+
+ Argument 3 is null for no breaker in the input lead, {\tt C} for a default
+ closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
+ these marks, or
+ key-value pairs as above defining breaker attributes
+ except that the default breaker name is {\sl BrI}.
+
+ Argument 4 defines the breaker in the output lead as for argument 3
+ except that the default breaker name is {\sl BrO}.
+ \label{sl_ttbox}%
+ \seesect{SingleLine:}}
\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)}