diff options
Diffstat (limited to 'graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex')
-rw-r--r-- | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex | 92 |
1 files changed, 71 insertions, 21 deletions
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex index 6bf0b72ac7..5be686bdff 100644 --- a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex +++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex @@ -1,7 +1,7 @@ -% Copyright 2018-2023 by Romano Giannetti -% Copyright 2015-2023 by Stefan Lindner -% Copyright 2013-2023 by Stefan Erhardt -% Copyright 2007-2023 by Massimo Redaelli +% Copyright 2018-2024 by Romano Giannetti +% Copyright 2015-2024 by Stefan Lindner +% Copyright 2013-2024 by Stefan Erhardt +% Copyright 2007-2024 by Massimo Redaelli % % This file may be distributed and/or modified % @@ -2167,12 +2167,74 @@ \pgfusepath{draw} } + +%% macros for the sources with plus and minus internally %% To change the internal symbols of the voltage source american style \ctikzset{bipoles/vsourceam/inner plus/.initial={$+$}} % In the mayority of fonts, the size of - is smaller than +, so we have % unaligned signs when positioned independently. % See https://github.com/circuitikz/circuitikz/issues/721 \ctikzset{bipoles/vsourceam/inner minus/.initial={$\vphantom{+}-$}} +%% +%% add the possibility to change the orientation of signs +\ctikzset{sources/symbol/sign rotation/.initial=default}% default, auto, or value +%% this should be more or less equivalent to \ctikzset{sources/symbol/sign rotation=90}, but it's font-dependent, +%% so you never know. Let's keep the traditional one here. +\def\pgf@circ@vsources@signs@default{% + \ifpgf@circ@oldvoltagedirection + \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner plus}}% + \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner minus}}% + \else + \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner minus}}% + \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner plus}}% + \fi +} +\def\pgf@circ@vsources@sign@auto@or@fix{% + \pgfgettransformentries\a\b\temp\temp\temp\temp + \pgfmathsetmacro{\rot}{-atan2(\b,\a)} + % the distance here is choosen so that it seems ok with standard fonts... probably, it must be changed. + \pgfmathsetlength{\pgf@circ@res@temp}{% + \ctikzvalof{bipoles/vsourceam/margin}*\pgf@circ@res@up + -0.5*height("\ctikzvalof{bipoles/vsourceam/inner plus}")} + \ifx\@@rotmode\@@auto + \pgfmathsetmacro{\innerrot}{abs(\rot)<46?0:(abs(\rot)>134?0:90)} + \else + \ifx\@@rotmode\@@straight + \pgfmathsetmacro{\innerrot}{\rot} + \else + \pgfmathsetmacro{\innerrot}{\@@rotmode} + \fi + \fi + \ifpgf@circ@oldvoltagedirection + \pgfscope + \pgftransformxshift{\pgf@circ@res@temp} + \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner plus}} + \endpgfscope + \pgfscope + \pgftransformxshift{-\pgf@circ@res@temp} + \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner minus}} + \endpgfscope + \else + \pgfscope + \pgftransformxshift{\pgf@circ@res@temp} + \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner minus}} + \endpgfscope + \pgfscope + \pgftransformxshift{-\pgf@circ@res@temp} + \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner plus}} + \endpgfscope + \fi +} +\def\pgf@circ@vsources@draw@signs{% + \edef\@@auto{auto}\edef\@@default{default}\edef\@@straight{straight}% + \edef\@@rotmode{\ctikzvalof{sources/symbol/sign rotation}}% + \ifx\@@rotmode\@@default + \pgf@circ@vsources@signs@default + \else + \pgf@circ@vsources@sign@auto@or@fix + \fi +} + %% Independent voltage source - American style \pgfcircdeclarebipolescaled{sources} {} @@ -2188,13 +2250,7 @@ \pgf@circ@draworfill \endpgfscope \pgf@circ@text@strokecolor - \ifpgf@circ@oldvoltagedirection - \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner plus}} - \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner minus}} - \else - \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner minus}} - \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner plus}} - \fi + \pgf@circ@vsources@draw@signs } %% Independent sinusoidal voltage source @@ -2992,13 +3048,7 @@ \pgf@circ@draworfill \endpgfscope \pgf@circ@text@strokecolor - \ifpgf@circ@oldvoltagedirection - \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner plus}} - \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner minus}} - \else - \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner minus}} - \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner plus}} - \fi + \pgf@circ@vsources@draw@signs } %% Controlled sinusoidal voltage source @@ -6303,7 +6353,7 @@ \pgfpatharc{\@starta}{\@stopa}{2\pgf@circ@res@up} \pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}} \pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up} - \pgfclosepath + \pgfpathclose \pgfpathmoveto{\pgfpointpolar{80}{2\pgf@circ@res@up}} \pgfpathlineto{\pgfpointpolar{80}{2.4\pgf@circ@res@up}} \pgfusepath{draw} @@ -6353,7 +6403,7 @@ \pgfpatharc{\@starta}{\@stopa}{2.1\pgf@circ@res@up} \pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}} \pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up} - \pgfclosepath + \pgfpathclose \pgfpathmoveto{\pgfpointpolar{83}{2.1\pgf@circ@res@up}} \pgfpathlineto{\pgfpointpolar{83}{2.4\pgf@circ@res@up}} \pgfusepath{draw} @@ -7090,7 +7140,7 @@ \pgfusepath{draw} \endpgfscope{} - \pgfcircle{\pgfpoint{\ctikzvalof{bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\ctikzvalof{bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\ctikzvalof{bipoles/american gas filled surge arrester/size}\pgf@circ@res@down} + \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\ctikzvalof{bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\ctikzvalof{bipoles/american gas filled surge arrester/size}\pgf@circ@res@down} \pgfusepath{fill} } |