diff options
author | Karl Berry <karl@freefriends.org> | 2019-05-10 21:15:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-05-10 21:15:08 +0000 |
commit | 0adb4af0234da7598911f149b7884b86b514e07d (patch) | |
tree | 1aa91d19135a803261a775221880a00982082242 /Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex | |
parent | d2b8d33bc4070a7246b3cd1d3074b6d369c3ef7d (diff) |
circuitikz (10may19)
git-svn-id: svn://tug.org/texlive/trunk@51071 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex | 649 |
1 files changed, 357 insertions, 292 deletions
diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex index 143f697ce04..62c10016603 100644 --- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex +++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex @@ -5,38 +5,38 @@ % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % -% See the file doc/LICENSE for more details. +% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Voltage management \ctikzset{v^>/.style = { - v = #1, - \circuitikzbasekey/bipole/voltage/direction = forward, - \circuitikzbasekey/bipole/voltage/position = above - } + v = #1, + \circuitikzbasekey/bipole/voltage/direction = forward, + \circuitikzbasekey/bipole/voltage/position = above + } } \ctikzset{v^</.style = { - v = #1, - \circuitikzbasekey/bipole/voltage/direction = backward, - \circuitikzbasekey/bipole/voltage/position = above - } + v = #1, + \circuitikzbasekey/bipole/voltage/direction = backward, + \circuitikzbasekey/bipole/voltage/position = above + } } \ctikzset{v_>/.style = { - v = #1, - \circuitikzbasekey/bipole/voltage/direction = forward, - \circuitikzbasekey/bipole/voltage/position = below - } + v = #1, + \circuitikzbasekey/bipole/voltage/direction = forward, + \circuitikzbasekey/bipole/voltage/position = below + } } \ctikzset{v_</.style = { - v = #1, - \circuitikzbasekey/bipole/voltage/direction = backward, - \circuitikzbasekey/bipole/voltage/position = below - } + v = #1, + \circuitikzbasekey/bipole/voltage/direction = backward, + \circuitikzbasekey/bipole/voltage/position = below + } } \ctikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = below} } @@ -47,305 +47,370 @@ % Default position varies whether the component is a voltage source % or not \ctikzset{v/.code = { - \ifpgf@circuit@bipole@isvoltage - \pgfkeys{\circuitikzbasekey/bipole/voltage/position=above, - \circuitikzbasekey/bipole/voltage/direction=forward} - \else - \ifpgf@circ@oldvoltagedirection - \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, - \circuitikzbasekey/bipole/voltage/direction=backward} - \else - \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, - \circuitikzbasekey/bipole/voltage/direction=forward} - \fi - \fi - \ifpgf@circ@oldvoltagedirection\else - \ifpgf@circuit@bipole@iscurrent - \ifpgf@circuit@bipole@current@backward - \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, - \circuitikzbasekey/bipole/voltage/direction=forward} - \else - \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, - \circuitikzbasekey/bipole/voltage/direction=backward} - \fi\fi\fi - \pgfkeys{/tikz/circuitikz/bipole/voltage/label/name=#1} - \ctikzsetvalof{bipole/voltage/label/unit}{} - \ifpgf@circ@siunitx - \pgf@circ@handleSI{#1} - \ifpgf@circ@siunitx@res - \edef\pgf@temp{\pgf@circ@handleSI@val} - \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/name}{\pgf@temp} - \edef\pgf@temp{\pgf@circ@handleSI@unit} - \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/unit}{\pgf@temp} - \else - \fi - \else - \fi - } + \ifpgf@circuit@bipole@isvoltage + \pgfkeys{\circuitikzbasekey/bipole/voltage/position=above, + \circuitikzbasekey/bipole/voltage/direction=forward} + \else + \ifpgf@circ@oldvoltagedirection + \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, + \circuitikzbasekey/bipole/voltage/direction=backward} + \else + \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, + \circuitikzbasekey/bipole/voltage/direction=forward} + \fi + \fi + \ifpgf@circ@oldvoltagedirection + \ifpgf@circuit@bipole@iscurrent\ifpgf@circ@fixbatteries + \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, + \circuitikzbasekey/bipole/voltage/direction=forward} + \fi\fi + \else + \ifpgf@circuit@bipole@iscurrent + \ifpgf@circuit@bipole@current@backward + \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, + \circuitikzbasekey/bipole/voltage/direction=forward} + \else + \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below, + \circuitikzbasekey/bipole/voltage/direction=backward} + \fi\fi\fi + \pgfkeys{/tikz/circuitikz/bipole/voltage/label/name=#1} + \ctikzsetvalof{bipole/voltage/label/unit}{} + \ifpgf@circ@siunitx + \pgf@circ@handleSI{#1} + \ifpgf@circ@siunitx@res + \edef\pgf@temp{\pgf@circ@handleSI@val} + \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/name}{\pgf@temp} + \edef\pgf@temp{\pgf@circ@handleSI@unit} + \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/unit}{\pgf@temp} + \else + \fi + \else + \fi + } } - - +% american voltage font selection and symbol definition +% the default font command is {} --- nothing +\def\pgf@circ@avfont{\ctikzvalof{voltage/american font}} +% +% plus and minus symbols (default is $+$ and $-$, see pgfcirc.defines.tex) +% notice that the double braces are needed to be able +% to use \boldmath in the font (although it is semi-deprecated...) +% +\def\pgf@circ@avplus{\ctikzvalof{voltage/american plus}} +\def\pgf@circ@avminus{\ctikzvalof{voltage/american minus}} %% Output routine for generic bipoles \def\pgf@circ@drawvoltagegeneric{ - \pgfextra{ - \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance} - \pgfkeysifdefined{\pgf@temp} - { - \edef\partheight{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance}} - \edef\tmpdistfromline{(\partheight\pgf@circ@Rlen)} - } - { - \pgfkeysifdefined{/tikz/circuitikz/bipoles/voltage/straight label distance} - { - \edef\partheight{\ctikzvalof{bipoles/voltage/straight label distance}} - \edef\tmpdistfromline{(\partheight\pgf@circ@Rlen)} - } - {%calculate default value from part height - \edef\partheight{0.5*\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/height}} - \edef\tmpdistfromline{(\partheight\pgf@circ@Rlen+0.2\pgf@circ@Rlen)} - } - } - \ifnum \ctikzvalof{mirror value}=-1 - \ifpgf@circuit@bipole@inverted - \ifpgf@circuit@bipole@voltage@straight - \def\distfromline{\tmpdistfromline} - \else - \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} - \fi - \else - \ifpgf@circuit@bipole@voltage@straight - \def\distfromline{-\tmpdistfromline} - \else - \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} - \fi - \fi - \else - \ifpgf@circuit@bipole@inverted - \ifpgf@circuit@bipole@voltage@straight - \def\distfromline{-\tmpdistfromline} - \else - \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} - \fi - \else - \ifpgf@circuit@bipole@voltage@straight - \def\distfromline{\tmpdistfromline} - \else - \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} - \fi - \fi - \fi - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@voltage@angle{90} - \else - \def\pgf@circ@voltage@angle{-90} - \fi - \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/distance from node} - \pgfkeysifdefined{\pgf@temp} - { \edef\distacefromnode{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/distance from node}} } - { \edef\distacefromnode{\ctikzvalof{voltage/distance from node}} } - \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/bump b} - \pgfkeysifdefined{\pgf@temp} - { \edef\bumpb{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/bump b}} } - { \edef\bumpb{\ctikzvalof{voltage/bump b}} } - } - % %\pgf@circ@Rlen/16 is equal to the length of the currarrow - coordinate (pgfcirc@midtmp) at ($(\tikztostart) ! \pgf@circ@Rlen/16 ! (anchorstartnode)$) %absolute move, minimum space is length of arrowhead - coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distacefromnode ! (anchorstartnode)$) + \pgfextra{ + \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance} + \pgfkeysifdefined{\pgf@temp} + { + \edef\partheight{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance}} + \edef\tmpdistfromline{(\partheight\pgf@circ@Rlen)} + } + { + \pgfkeysifdefined{/tikz/circuitikz/bipoles/voltage/straight label distance} + { + \edef\partheight{\ctikzvalof{bipoles/voltage/straight label distance}} + \edef\tmpdistfromline{(\partheight\pgf@circ@Rlen)} + } + {%calculate default value from part height + \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/height} + \pgfkeysifdefined{\pgf@temp} + { + \edef\partheight{0.5*\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/height}} + \edef\tmpdistfromline{(\partheight\pgf@circ@Rlen+0.2\pgf@circ@Rlen)} + } + { + \edef\tmpdistfromline{(.5\pgf@circ@Rlen)} %fallback to fixed value + } + } + } + \ifnum \ctikzvalof{mirror value}=-1 + \ifpgf@circuit@bipole@inverted + \ifpgf@circuit@bipole@voltage@straight + \def\distfromline{\tmpdistfromline} + \else + \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} + \fi + \else + \ifpgf@circuit@bipole@voltage@straight + \def\distfromline{-\tmpdistfromline} + \else + \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} + \fi + \fi + \else + \ifpgf@circuit@bipole@inverted + \ifpgf@circuit@bipole@voltage@straight + \def\distfromline{-\tmpdistfromline} + \else + \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} + \fi + \else + \ifpgf@circuit@bipole@voltage@straight + \def\distfromline{\tmpdistfromline} + \else + \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen} + \fi + \fi + \fi + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@voltage@angle{90} + \else + \def\pgf@circ@voltage@angle{-90} + \fi + \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/distance from node} + \pgfkeysifdefined{\pgf@temp} + { \edef\distacefromnode{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/distance from node}} } + { \edef\distacefromnode{\ctikzvalof{voltage/distance from node}} } + \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/bump b} + \pgfkeysifdefined{\pgf@temp} + { \edef\bumpb{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/bump b}} } + { \edef\bumpb{\ctikzvalof{voltage/bump b}} } + \edef\shiftv{\ctikzvalof{voltage/shift}} + \pgfmathsetmacro{\bumpb}{\bumpb + \shiftv} %% adjust the bump is shift + \ifpgf@circuit@bipole@inverted + \pgfmathsetmacro{\shiftv}{-\shiftv} + \fi + \ifnum \ctikzvalof{mirror value} = -1 + \pgfmathsetmacro{\shiftv}{-\shiftv} + \fi + } + % %\pgf@circ@Rlen/\pgfkeysvalueof{/tikz/circuitikz/current arrow scale} is equal to the length of the currarrow + coordinate (pgfcirc@midtmp) at ($(\tikztostart) ! \pgf@circ@Rlen/\pgfkeysvalueof{/tikz/circuitikz/current arrow scale} ! (anchorstartnode)$) %absolute move, minimum space is length of arrowhead + coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distacefromnode ! (anchorstartnode)$) - coordinate (pgfcirc@Vfrom) at ($(pgfcirc@midtmp) ! -\distfromline ! \pgf@circ@voltage@angle:(anchorstartnode)$) - coordinate (pgfcirc@midtmp) at ($(\tikztotarget) ! \pgf@circ@Rlen/16 ! (anchorendnode)$)%absolute move, minimum space is length of arrowhead - coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distacefromnode ! (anchorendnode)$) + coordinate (pgfcirc@Vfrom) at ($(pgfcirc@midtmp) ! -\distfromline ! \pgf@circ@voltage@angle:(anchorstartnode)$) + coordinate (pgfcirc@midtmp) at ($(\tikztotarget) ! \pgf@circ@Rlen/\pgfkeysvalueof{/tikz/circuitikz/current arrow scale} ! (anchorendnode)$)%absolute move, minimum space is length of arrowhead + coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distacefromnode ! (anchorendnode)$) - coordinate (pgfcirc@Vto) at ($(pgfcirc@midtmp) ! \distfromline ! \pgf@circ@voltage@angle : (anchorendnode)$) + coordinate (pgfcirc@Vto) at ($(pgfcirc@midtmp) ! \distfromline ! \pgf@circ@voltage@angle : (anchorendnode)$) - \ifpgf@circuit@bipole@voltage@below - coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-110)$) - coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-70)$) - \else - coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.110)$) - coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.70)$) - \fi + \ifpgf@circuit@bipole@voltage@below + coordinate (pgfcirc@Vto) at ($(pgfcirc@Vto) ! \shiftv!90 : (anchorendnode)$) + coordinate (pgfcirc@Vfrom) at ($(pgfcirc@Vfrom) ! \shiftv!-90 : (anchorstartnode)$) + coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-110)$) + coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-70)$) + \else + coordinate (pgfcirc@Vto) at ($(pgfcirc@Vto) ! -\shiftv!90 : (anchorendnode)$) + coordinate (pgfcirc@Vfrom) at ($(pgfcirc@Vfrom) ! -\shiftv!-90 : (anchorstartnode)$) + coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.110)$) + coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.70)$) + \fi - \ifpgf@circuit@europeanvoltage - \ifpgf@circuit@bipole@voltage@straight - \ifpgf@circuit@bipole@voltage@backward - (pgfcirc@Vto) --(pgfcirc@Vfrom) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {} - \else - (pgfcirc@Vfrom) --(pgfcirc@Vto) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {} - \fi - \else - \ifpgf@circuit@bipole@voltage@backward - (pgfcirc@Vto) .. controls (pgfcirc@Vcont2) and (pgfcirc@Vcont1) .. - node[currarrow, sloped, allow upside down, pos=1] {} - (pgfcirc@Vfrom) - \else - (pgfcirc@Vfrom) .. controls (pgfcirc@Vcont1) and (pgfcirc@Vcont2) .. - node[currarrow, sloped, allow upside down, pos=1] {} - (pgfcirc@Vto) - \fi - \fi - \else - \ifpgf@circuit@bipole@voltage@backward - \ifpgf@circ@oldvoltagedirection - (pgfcirc@Vfrom) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{\scriptsize$+$} - (pgfcirc@Vto) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{$-$} - \else - (pgfcirc@Vfrom) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{\scriptsize$-$} - (pgfcirc@Vto) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{$+$} - \fi - \else - \ifpgf@circ@oldvoltagedirection - (pgfcirc@Vfrom) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{\scriptsize$-$} - (pgfcirc@Vto) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{$+$} - \else - (pgfcirc@Vfrom) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{\scriptsize$+$} - (pgfcirc@Vto) node[inner sep=0, anchor=\pgf@circ@bipole@voltage@label@anchor]{$-$} - \fi - \fi - \fi + \ifpgf@circuit@europeanvoltage + \ifpgf@circuit@bipole@voltage@straight + \ifpgf@circuit@bipole@voltage@backward + (pgfcirc@Vto) --(pgfcirc@Vfrom) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {} + \else + (pgfcirc@Vfrom) --(pgfcirc@Vto) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {} + \fi + \else + \ifpgf@circuit@bipole@voltage@backward + (pgfcirc@Vto) .. controls (pgfcirc@Vcont2) and (pgfcirc@Vcont1) .. + node[currarrow, sloped, allow upside down, pos=1] {} + (pgfcirc@Vfrom) + \else + (pgfcirc@Vfrom) .. controls (pgfcirc@Vcont1) and (pgfcirc@Vcont2) .. + node[currarrow, sloped, allow upside down, pos=1] {} + (pgfcirc@Vto) + \fi + \fi + \else + \ifpgf@circuit@bipole@voltage@backward + \ifpgf@circ@oldvoltagedirection + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + \else + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + \fi + \else + \ifpgf@circ@oldvoltagedirection + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + \else + (pgfcirc@Vfrom) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus} + (pgfcirc@Vto) node[inner sep=0, node font=\pgf@circ@avfont, + anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus} + \fi + \fi + \fi } %% Output routine for voltage sources \def\pgf@circ@drawvoltagegenerator{ - \ifpgf@circuit@bipole@voltage@below - coordinate (pgfcirc@Vfrom) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.-120)$) - coordinate (pgfcirc@Vto) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.-60)$) - \else - coordinate (pgfcirc@Vfrom) at ($ (\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.120)$) - coordinate (pgfcirc@Vto) at ($ (\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.60)$) - \fi - \ifpgf@circuit@europeanvoltage - \ifpgf@circuit@bipole@voltage@backward - (pgfcirc@Vto) -- node[currarrow, sloped, allow upside down, pos=1] {} (pgfcirc@Vfrom) - \else - (pgfcirc@Vfrom) -- node[currarrow, sloped, allow upside down, pos=1] {} (pgfcirc@Vto) - \fi - \else% american voltage - \ifpgf@circuit@bipole@voltageoutsideofsymbol - % if it is a battery, must put + and - - \ifpgf@circuit@bipole@voltage@backward - (pgfcirc@Vfrom) node {$-$} (pgfcirc@Vto) node {$+$} - \else - (pgfcirc@Vfrom) node {$+$} (pgfcirc@Vto) node {$-$} - \fi - \fi - \fi + % the following is affected indirectly by voltage/shift, you can move the arrow with voltage/bump a. + % it's not perfect, but I can't find the way to do it correctly... + \pgfextra{ + \edef\shiftv{\ctikzvalof{voltage/shift}} + \edef\bumpa{\ctikzvalof{voltage/bump a}} + \pgfmathsetmacro{\bumpaplus}{\bumpa + \shiftv} + } + \ifpgf@circuit@bipole@voltage@below + coordinate (pgfcirc@Vfrom) at ($(\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.-120)$) + coordinate (pgfcirc@Vto) at ($(\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.-60)$) + \else + coordinate (pgfcirc@Vfrom) at ($ (\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.120)$) + coordinate (pgfcirc@Vto) at ($ (\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.60)$) + \fi + \ifpgf@circuit@europeanvoltage + \ifpgf@circuit@bipole@voltage@backward + (pgfcirc@Vto) -- node[currarrow, sloped, allow upside down, pos=1] {} (pgfcirc@Vfrom) + \else + (pgfcirc@Vfrom) -- node[currarrow, sloped, allow upside down, pos=1] {} (pgfcirc@Vto) + \fi + \else% american voltage + \ifpgf@circuit@bipole@voltageoutsideofsymbol + % if it is a battery, must put + and - + + \ifpgf@circ@fixbatteries + \ifpgf@circuit@bipole@voltage@backward + (pgfcirc@Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus} + (pgfcirc@Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus} + \else + (pgfcirc@Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus} + (pgfcirc@Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus} + \fi + \else + \ifpgf@circuit@bipole@voltage@backward + (pgfcirc@Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus} + (pgfcirc@Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus} + \else + (pgfcirc@Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus} + (pgfcirc@Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus} + \fi + \fi + \fi + \fi } %% Output routine -\def\pgf@circ@drawvoltage{% node name -%\pgf@circ@direction - \pgfextra{ - \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} - \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{north west} - \else \def\pgf@circ@bipole@voltage@label@anchor{south east} - \fi - \fi\fi - \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{west} - \else \def\pgf@circ@bipole@voltage@label@anchor{east} - \fi - \fi\fi - \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{south west} - \else \def\pgf@circ@bipole@voltage@label@anchor{north east} - \fi - \fi\fi - \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{south} - \else\def\pgf@circ@bipole@voltage@label@anchor{north} - \fi - \fi\fi - \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{south east} - \else\def\pgf@circ@bipole@voltage@label@anchor{north west} - \fi - \fi\fi - \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{east} - \else \def\pgf@circ@bipole@voltage@label@anchor{west} - \fi - \fi\fi - \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{north east} - \else\def\pgf@circ@bipole@voltage@label@anchor{south west} - \fi - \fi\fi - \ifnum\pgfcircmathresult >-1 \ifnum\pgfcircmathresult <5 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{north} - \else\def\pgf@circ@bipole@voltage@label@anchor{south} - \fi - \fi\fi - \ifnum\pgfcircmathresult >355 \ifnum\pgfcircmathresult <361 - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@anchor{north} - \else\def\pgf@circ@bipole@voltage@label@anchor{south} - \fi - \fi\fi +\def\pgf@circ@drawvoltage{% node name + \pgfextra{ %WARNING: indentation is probably wrong + \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} + \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{north west} + \else + \def\pgf@circ@bipole@voltage@label@anchor{south east} + \fi + \fi\fi + \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{west} + \else + \def\pgf@circ@bipole@voltage@label@anchor{east} + \fi + \fi\fi + \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{south west} + \else \def\pgf@circ@bipole@voltage@label@anchor{north east} + \fi + \fi\fi + \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{south} + \else\def\pgf@circ@bipole@voltage@label@anchor{north} + \fi + \fi\fi + \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{south east} + \else\def\pgf@circ@bipole@voltage@label@anchor{north west} + \fi + \fi\fi + \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{east} + \else \def\pgf@circ@bipole@voltage@label@anchor{west} + \fi + \fi\fi + \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{north east} + \else\def\pgf@circ@bipole@voltage@label@anchor{south west} + \fi + \fi\fi + \ifnum\pgfcircmathresult >-1 \ifnum\pgfcircmathresult <5 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{north} + \else\def\pgf@circ@bipole@voltage@label@anchor{south} + \fi + \fi\fi + \ifnum\pgfcircmathresult >355 \ifnum\pgfcircmathresult <361 + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@anchor{north} + \else\def\pgf@circ@bipole@voltage@label@anchor{south} + \fi + \fi\fi + + \ifnum \ctikzvalof{mirror value}=-1 + \ifpgf@circuit@bipole@voltage@below + \pgf@circuit@bipole@voltage@belowfalse + \else + \pgf@circuit@bipole@voltage@belowtrue + \fi + \fi - \ifnum \ctikzvalof{mirror value}=-1 - \ifpgf@circuit@bipole@voltage@below - \pgf@circuit@bipole@voltage@belowfalse - \else - \pgf@circuit@bipole@voltage@belowtrue - \fi - \fi + \ifpgf@circuit@bipole@inverted + \ifpgf@circuit@bipole@voltage@below + \pgf@circuit@bipole@voltage@belowfalse + \else - \ifpgf@circuit@bipole@inverted - \ifpgf@circuit@bipole@voltage@below - \pgf@circuit@bipole@voltage@belowfalse - \else - \pgf@circuit@bipole@voltage@belowtrue - \fi - \fi + \pgf@circuit@bipole@voltage@belowtrue + \fi + \fi - \ifpgf@circuit@bipole@voltage@below - \def\pgf@circ@bipole@voltage@label@where{-90} - \else - \def\pgf@circ@bipole@voltage@label@where{90} - \fi + \ifpgf@circuit@bipole@voltage@below + \def\pgf@circ@bipole@voltage@label@where{-90} + \else + \def\pgf@circ@bipole@voltage@label@where{90} + \fi - \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance} - \pgfkeysifdefined{\pgf@temp} - { \edef\eudist{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance}} } - { \edef\eudist{\ctikzvalof{voltage/european label distance}} } + \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance} + \pgfkeysifdefined{\pgf@temp} + { \edef\eudist{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance}} } + { \edef\eudist{\ctikzvalof{voltage/european label distance}} } + \edef\shiftv{\ctikzvalof{voltage/shift}} + % adjust the label distance to the shift. + \pgfmathsetmacro{\eudistplus}{\eudist+\shiftv} - \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners! - }%end pgfextra + \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners! + }%end pgfextra - \ifpgf@circuit@bipole@isvoltage - \pgf@circ@drawvoltagegenerator - \else - \pgf@circ@drawvoltagegeneric - \fi + \ifpgf@circuit@bipole@isvoltage + \pgf@circ@drawvoltagegenerator + \else + \pgf@circ@drawvoltagegeneric + \fi - % (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where) %Zeile sinnlos!? - \ifpgf@circuit@bipole@voltage@straight - coordinate (Vlab) at ($(pgfcirc@Vto)!0.5!(pgfcirc@Vfrom) $) - node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt] - at (Vlab) { \pgf@circ@finallabels{voltage/label} } - \else - coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center) ! - \ifpgf@circuit@europeanvoltage - \eudist - \else - \ctikzvalof{voltage/american label distance} - \fi ! - (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where)$) - node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt] at (Vlab) { \pgf@circ@finallabels{voltage/label} } - \fi + % (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where) %Zeile sinnlos!? + \ifpgf@circuit@bipole@voltage@straight + coordinate (Vlab) at ($(pgfcirc@Vto)!0.5!(pgfcirc@Vfrom) $) + node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt] + at (Vlab) { \pgf@circ@finallabels{voltage/label} } + \else + coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center) ! + \ifpgf@circuit@europeanvoltage + \eudistplus + \else + \ctikzvalof{voltage/american label distance} + \fi ! + (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where)$) + node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt] at (Vlab) { \pgf@circ@finallabels{voltage/label} } + \fi }%end drawvoltages \endinput |