diff options
author | Karl Berry <karl@freefriends.org> | 2019-12-22 21:55:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-12-22 21:55:04 +0000 |
commit | 43e0008a52cd84bc0f2940deec3a5c87f982c014 (patch) | |
tree | ef911ff0e7fd75e17b82db67f9d2b927120f852c /Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex | |
parent | 3b3666879f7acdee9e0bc770836aa3524429e165 (diff) |
circuitikz (22dec19)
git-svn-id: svn://tug.org/texlive/trunk@53208 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex | 564 |
1 files changed, 521 insertions, 43 deletions
diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex index 90beddf1533..a7a6616cf5f 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex @@ -2902,6 +2902,12 @@ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@x } + \savedanchor\left{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@y=0pt + } \anchor{south}{ \northwest \pgf@y=-\pgf@y @@ -2912,12 +2918,11 @@ \pgf@x=0pt } \savedanchor\left{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x \pgf@y=0pt } - \anchor{leftedge} - {\left - \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x - } \savedanchor\inOneFixed{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen @@ -2985,12 +2990,46 @@ \pgf@x=-\pgf@x } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } - \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} + \anchor{text}{\pgfpoint{-.6\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} \backgroundpath{ \pgfsetcolor{\ctikzvalof{color}} @@ -3024,7 +3063,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} % Positive input terminal \pgfpathmoveto{\pgfpoint @@ -3033,7 +3072,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} % Output terminal \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} @@ -3056,6 +3095,12 @@ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@x } + \savedanchor\left{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@y=0pt + } \anchor{south}{ \northwest \pgf@y=-\pgf@y @@ -3065,14 +3110,6 @@ \northwest \pgf@x=0pt } - \savedanchor\left{% - \pgf@y=0pt - } - \anchor{leftedge} - { - \left - \pgf@x = \ctikzvalof{tripoles/en amp/port width}\pgf@x - } \savedanchor\inOneFixed{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen @@ -3125,6 +3162,40 @@ \left \pgf@x=-\pgf@x } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/en amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } @@ -3156,7 +3227,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} @@ -3164,7 +3235,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} @@ -3207,6 +3278,9 @@ \northwest\pgf@x=0pt\relax } \savedanchor\left{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x \pgf@y=0pt } \savedanchor\inOneFixed{% @@ -3283,6 +3357,70 @@ \pgf@y=-\ctikzvalof{tripoles/fd op amp/output height}\pgf@y \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/fd op amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + \anchor{bout +}{ + \outline + \pgf@xa=\pgf@x\pgf@ya=\pgf@y + \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}} + {\pgfpoint{\pgf@xa}{0pt}} + {\pgfpoint{0pt}{\pgf@ya}} + } + \anchor{bout -}{ + \outline + \pgf@xa=\pgf@x\pgf@ya=\pgf@y + \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}} + {\pgfpoint{\pgf@xa}{0pt}} + {\pgfpoint{0pt}{\pgf@ya}} + \pgf@y=-\pgf@y + } + \anchor{bout up}{ + \northwest + \pgf@xa=\pgf@x\pgf@ya=\pgf@y + \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}} + {\pgfpoint{\pgf@xa}{0pt}} + {\pgfpoint{0pt}{\pgf@ya}} + } + \anchor{bout down}{ + \northwest + \pgf@xa=\pgf@x\pgf@ya=\pgf@y + \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}} + {\pgfpoint{\pgf@xa}{0pt}} + {\pgfpoint{0pt}{\pgf@ya}} + \pgf@y=-\pgf@y + } + % end border anchors \anchor{west}{ \left } @@ -3298,6 +3436,7 @@ \anchor{north east}{ \northwest \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x \pgf@y=-\pgf@y } + \anchor{text}{\pgfpoint{-.6\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} \backgroundpath{ \pgfsetcolor{\ctikzvalof{color}} @@ -3350,7 +3489,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} % Positive input terminal \pgfpathmoveto{\pgfpoint @@ -3359,13 +3498,13 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} % Negative output terminal label - \pgftext[right, bottom, x=3pt, y=1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup$-$\else$+$\fi} + \pgftext[right, bottom, x=3pt, y=1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} % Positive output terminal label - \pgftext[right, top, x=3pt, y=-1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup$+$\else$-$\fi} + \pgftext[right, top, x=3pt, y=-1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} \pgfsetrectcap \pgfusepath{draw} @@ -3524,6 +3663,57 @@ \outportfixed \pgf@y=-\pgf@y } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/fd inst amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@x=-\pgf@x \pgf@y=0pt + } + \anchor{bout +}{ + \outport + \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya + } + \anchor{bout -}{ + \outport + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya + } + \anchor{bout up}{ + \outportfixed + \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya + } + \anchor{bout down}{ + \outportfixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya + } + % end border anchors % \anchor{west}{ \left @@ -3580,7 +3770,7 @@ {\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}} % - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} % input terminal down \pgfpathmoveto{\pgfpoint @@ -3590,7 +3780,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} % output leads down and up \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}} @@ -3692,6 +3882,40 @@ \pgf@y=0pt \pgf@x=-\pgf@x } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/gm amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors \anchor{west}{ \left } @@ -3704,10 +3928,7 @@ \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } - \anchor{text}{\northwest - \pgf@x=\ctikzvalof{tripoles/op amp/port width}\pgf@x - \pgfpoint{-.5\wd\pgfnodeparttextbox+.25\pgf@x}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} - + \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} \backgroundpath{ \pgfsetcolor{\ctikzvalof{color}} @@ -3743,7 +3964,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} \pgfpathmoveto{\pgfpoint @@ -3752,7 +3973,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right}{0pt}} % @@ -3883,6 +4104,40 @@ \pgf@y=0pt \pgf@x=-\pgf@x } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/inst amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors \anchor{west}{ \left } @@ -3940,7 +4195,7 @@ {\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}} % - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} % Positive input terminal \pgfpathmoveto{\pgfpoint @@ -3950,7 +4205,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} % Output terminal \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} @@ -4028,17 +4283,16 @@ % you can change that with the `ra pos` key (use 0.5 for one-R). \savedanchor\raOneFixed{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} - \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen - \pgf@y=.5\pgf@y - \pgf@y=\ctikzvalof{tripoles/inst amp ra/input height}\pgf@y - \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen - \pgf@x=.5\pgf@x + \pgf@y=\pgf@circ@scaled@Rlen + \pgf@y=\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@y + \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x } \anchor{ra up}{ - \inOneFixed + \raOneFixed } \anchor{ra down}{ - \inOneFixed + \raOneFixed \pgf@y=-\pgf@y } \savedanchor\raOne{% @@ -4111,6 +4365,58 @@ \pgf@y=0pt \pgf@x=-\pgf@x } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/inst amp ra/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ + \inOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bra up}{ + \raOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bra down}{ + \raOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bra-}{ + \raOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bra+}{ + \raOne + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors \anchor{west}{ \left } @@ -4185,7 +4491,7 @@ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}} % - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup$+$\else$-$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi} % Positive input terminal \pgfpathmoveto{\pgfpoint @@ -4195,7 +4501,7 @@ \pgfpathlineto{\pgfpoint {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left} {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}} - \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup$-$\else$+$\fi} + \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi} % Output terminal \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} @@ -4240,8 +4546,18 @@ \pgf@y=0pt \pgf@x=-\pgf@x } + \anchor{bin}{ + \northwest + \pgf@y=0pt + \pgf@x=0.7\pgf@x + } + \anchor{bout}{ + \northwest + \pgf@y=0pt + \pgf@x=-0.7\pgf@x + } - \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} + \anchor{text}{\pgfpoint{-.6\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} \backgroundpath{ \pgfsetcolor{\ctikzvalof{color}} @@ -4307,6 +4623,15 @@ \pgf@y=\ctikzvalof{tripoles/plain amp/input height}\pgf@y \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen \pgf@x=.5\pgf@x + \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi + } + \savedanchor\inOneFixed{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen + \pgf@y=.5\pgf@y + \pgf@y=\ctikzvalof{tripoles/plain amp/input height}\pgf@y + \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x } \anchor{-}{ \inOne @@ -4316,12 +4641,46 @@ \pgf@y=-\pgf@y } \anchor{in up}{ - \inOne + \inOneFixed } \anchor{in down}{ + \inOneFixed + \pgf@y=-\pgf@y + } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/plain amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin up}{ + \inOneFixed + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bin down}{ + \inOneFixed + \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b-}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{b+}{ \inOne \pgf@y=-\pgf@y + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors \savedanchor\up{% \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen @@ -4351,7 +4710,7 @@ \pgf@x=-\pgf@x } - \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} + \anchor{text}{\pgfpoint{-.6\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} \backgroundpath{ \pgfsetcolor{\ctikzvalof{color}} @@ -4397,6 +4756,125 @@ } } +% plain amplifier, no symbols, one input +\pgfdeclareshape{plain mono amp} +{ + \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}} + \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} + \anchor{center}{\pgfpointorigin} + \savedanchor\northwest{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen + \pgf@y=.5\pgf@y + \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + } + \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } + \anchor{west}{ \northwest \pgf@y=0pt } + \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } + \anchor{north}{ \northwest \pgf@x=0pt } + \anchor{south west}{ \northwest \pgf@y=-\pgf@y } + \anchor{north east}{ \northwest \pgf@x=-\pgf@x } + \anchor{north west}{ \northwest } + \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } + \savedanchor\left{% + \pgf@y=0pt + } + \savedanchor\inOne{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@y=0pt\relax + } + \anchor{in}{ + \inOne + } + % support for border anchors + \savedanchor\leftedge{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@x = \ctikzvalof{tripoles/plain amp/port width}\pgf@x + \pgf@y=0pt + } + \anchor{leftedge}{\leftedge} + \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x } + \anchor{bin}{ + \inOne + \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya + } + \anchor{bout}{ + \leftedge + \pgf@y=0pt + \pgf@x=-\pgf@x + } + % end border anchors + \savedanchor\up{% + \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen} + \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen + \pgf@y=.5\pgf@y + \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen + \pgf@x=.5\pgf@x + \pgf@circ@res@up = \pgf@y + \pgf@circ@res@right = -\pgf@x + \pgf@circ@res@left = \pgf@x + \pgfpointlineattime{ + \ctikzvalof{tripoles/plain amp/up pos}}{ + \pgfpoint{ + \ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left} + {\pgf@circ@res@up}} + {\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@right}{0pt}} + } + \anchor{up}{ + \up + } + \anchor{down}{ + \up + \pgf@y=-\pgf@y + } + \anchor{out}{ + \northwest + \pgf@y=0pt + \pgf@x=-\pgf@x + } + + \anchor{text}{\pgfpoint{-.6\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}} + + \backgroundpath{ + \pgfsetcolor{\ctikzvalof{color}} + + \northwest + \pgf@circ@res@up = \pgf@y + \pgf@circ@res@down = -\pgf@y + \pgf@circ@res@right = -\pgf@x + \pgf@circ@res@left = \pgf@x + + \pgfscope + \pgf@circ@setlinewidth{tripoles}{\pgflinewidth} + \pgftransformxshift{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left} + \pgf@circ@res@step=\pgf@circ@res@right + \advance\pgf@circ@res@step by -\pgf@circ@res@left + \pgf@circ@res@step=\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@step + + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} + \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} + \pgfpathclose + \pgf@circ@draworfill + \endpgfscope + \pgfpathmoveto{\pgfpoint + {\pgf@circ@res@left} + {0pt}} + \pgfpathlineto{\pgfpoint + {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left} + {0pt}} + + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} + \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@right}{0pt}} + + \pgfusepath{draw} + } +} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% electromechanical device (motor/generator) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |