texlive[44488] Master/texmf-dist: circuitikz (28may17)

commits+karl at tug.org commits+karl at tug.org
Tue Jun 6 01:20:06 CEST 2017


Revision: 44488
          http://tug.org/svn/texlive?view=revision&revision=44488
Author:   karl
Date:     2017-06-06 01:20:06 +0200 (Tue, 06 Jun 2017)
Log Message:
-----------
circuitikz (28may17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
    trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
    trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
    trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
    trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirccurrent.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirclabel.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircshapes.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex
    trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircflow.tex

Modified: trunk/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md	2017-06-05 23:20:06 UTC (rev 44488)
@@ -1,6 +1,17 @@
 <!--- CircuiTikz - Changelog --->
 The major changes among the different circuitikz versions are listed here. See <https://github.com/circuitikz/circuitikz/commits> for a full list of changes.
 
+* Version 0.8.3 (2017-05-28) 
+	- Removed unwanted lines at to-paths if the starting point is a node without a explicit anchor.
+	- Fixed scaling option, now all parts are scaled by bipoles/length
+	- Surge arrester appears no more if a to path is used without []-options
+	- Fixed current placement now possible with paths at an angle of around 280°
+	- Fixed voltage placement now possible with paths at an angle of around 280°
+	- Fixed label and annotation placement (at some angles position not changable)
+	- Adjustable default distance for straight-voltages: 'bipoles/voltage/straight label distance'
+	- Added Symbol for bandstop filter
+	- New annotation type to show flows using f=... like currents, can be used for thermal, power or current flows
+	
 * Version 0.8.2 (2017-05-01)
 	- Fixes pgfkeys error using alternatively specified mixed colors(see pgfplots manual section "4.7.5 Colors")
 	- Added new switches "ncs" and "nos"

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -6,6 +6,37 @@
 \begin{itemize}
 \tightlist
 \item
+  Version 0.8.3 (2017-05-28)
+
+  \begin{itemize}
+  \tightlist
+  \item
+    Removed unwanted lines at to-paths if the starting point is a node
+    without a explicit anchor.
+  \item
+    Fixed scaling option, now all parts are scaled by bipoles/length
+  \item
+    Surge arrester appears no more if a to path is used without
+    {[}{]}-options
+  \item
+    Fixed current placement now possible with paths at an angle of
+    around 280°
+  \item
+    Fixed voltage placement now possible with paths at an angle of
+    around 280°
+  \item
+    Fixed label and annotation placement (at some angles position not
+    changable)
+  \item
+    Adjustable default distance for straight-voltages:
+    `bipoles/voltage/straight label distance'
+  \item
+    Added Symbol for bandstop filter
+  \item
+    New annotation type to show flows using f=\ldots{} like currents,
+    can be used for thermal, power or current flows
+  \end{itemize}
+\item
   Version 0.8.2 (2017-05-01)
 
   \begin{itemize}

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -512,6 +512,7 @@
 	\circuititembip{twoport}{generic two port\footnote{To specify text to be put in the component: \texttt{twoport[t=text]}): \tikz \draw[scale=.5, transform shape] (0,0) to[twoport,>,t=text] (2,0); }}{}
 	\circuititembip{vco}{vco}{}
 	\circuititembip{bandpass}{bandpass}{}
+	\circuititembip{bandstop}{bandstop}{}
 	\circuititembip{highpass}{highpass}{}
 	\circuititembip{lowpass}{lowpass}{}
 	\circuititembip{adc}{A/D converter}{}
@@ -998,7 +999,53 @@
 \end{circuitikz}
 \end{LTXexample}			
 
+\subsection{Flows}\label{flows}
+As an alternative for the current arrows, you can also use the following flows. They can also be used to indicate thermal or power flows. The syntax is pretty the same as for currents.
 
+\textit{This is a new beta feature since version 0.8.3, therefore, please provide bugreports or hints to optimize this feature regarding placement and appearance! This means, that the appearance may change in the future!}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f<=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f_=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f_>=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f<^=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f<_=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+   \draw (0,0) to[R, f>_=$i_1$] (3,0);
+\end{circuitikz}
+\end{LTXexample}
+
 \subsection{Voltages}
 See introduction note at Currents (chapter \ref{currents}, page \pageref{currents})!
 

Modified: trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
===================================================================
--- trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -1,5 +1,5 @@
-\def\pgfcircversion{0.8.2}
-\def\pgfcircversiondate{2017/05/01}
+\def\pgfcircversion{0.8.3}
+\def\pgfcircversiondate{2017/05/28}
 \writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
 
 \usemodule[tikz]
@@ -29,6 +29,7 @@
 \input pgfcirclabel.tex
 \input pgfcircvoltage.tex
 \input pgfcirccurrent.tex
+\input pgfcircflow.tex
 
 % defaults
 

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -59,10 +59,10 @@
 \ctikzset{bipoles/.is family}
 \ctikzset{bipoles/border margin/.initial=1.1}
 \ctikzset{bipoles/thickness/.initial=2} 
-\ctikzset{bipoles/length/.initial=1.4cm} 
 \ctikzset{nodes width/.initial=.04}
 \newdimen\pgf at circ@Rlen 
-\ctikzset{bipoles/length/.code={\pgf at circ@Rlen = #1}} 
+\ctikzset{bipoles/length/.code={\pgf at circ@Rlen = #1}}
+\pgf at circ@Rlen = 1.4cm
 
 \ctikzset{monopoles/.is family}
 \ctikzset{monopoles/ground/width/.initial=.25}
@@ -267,6 +267,7 @@
 \ctikzset{bipoles/twoport/text/.initial=}
 \ctikzset{bipoles/vco/width/.initial=.7}
 \ctikzset{bipoles/bandpass/width/.initial=.7}
+\ctikzset{bipoles/bandstop/width/.initial=.7}
 \ctikzset{bipoles/highpass/width/.initial=.7}
 \ctikzset{bipoles/lowpass/width/.initial=.7}
 \ctikzset{bipoles/adc/width/.initial=.7}
@@ -792,10 +793,28 @@
 \ctikzset{bipole/current/y position/.is choice}
 \ctikzset{bipole/current/y position/above/.code={\pgf at circuit@bipole at current@belowfalse}}
 \ctikzset{bipole/current/y position/below/.code={\pgf at circuit@bipole at current@belowtrue}}
-
 \ctikzset{bipole/current/label/unit/.initial=}
 \ctikzset{bipole/current/label/name/.initial=}
 
+\ctikzset{bipole/flow/.is family}
+\newif\ifpgf at circuit@bipole at flow@backward
+\ctikzset{bipole/flow/direction/.is choice}
+\ctikzset{bipole/flow/direction/forward/.code={\pgf at circuit@bipole at flow@backwardfalse}}
+\ctikzset{bipole/flow/direction/backward/.code={\pgf at circuit@bipole at flow@backwardtrue}}
+\newif\ifpgf at circuit@bipole at flow@before
+\ctikzset{bipole/flow/x position/.is choice}
+\ctikzset{bipole/flow/x position/after/.code={\pgf at circuit@bipole at flow@beforefalse}}
+\ctikzset{bipole/flow/x position/before/.code={\pgf at circuit@bipole at flow@beforetrue}}
+\newif\ifpgf at circuit@bipole at flow@below
+\ctikzset{bipole/flow/y position/.is choice}
+\ctikzset{bipole/flow/y position/above/.code={\pgf at circuit@bipole at flow@belowfalse}}
+\ctikzset{bipole/flow/y position/below/.code={\pgf at circuit@bipole at flow@belowtrue}}
+\ctikzset{bipole/flow/label/unit/.initial=}
+\ctikzset{bipole/flow/label/name/.initial=}
+\ctikzset{flow/distance/.initial = .5}
+\ctikzset{flow/offset/.initial = .2}%distance between flow-arrow and conductor
+
+
 \ctikzset{bipole/label/.is family}
 \ctikzset{bipole/label/position/.initial=90}
 \ctikzset{bipole/label/unit/.initial=}
@@ -905,6 +924,7 @@
 \ctikzset{current/.is family}
 \ctikzset{current/distance/.initial = .5}
 
+
 \tikzset{american currents/.style = { \circuitikzbasekey/current = american } }
 \tikzset{european currents/.style = { \circuitikzbasekey/current = european } }
 \tikzset{american voltages/.style = { \circuitikzbasekey/voltage = american } }
@@ -913,19 +933,19 @@
 \tikzset{european resistors/.style = { \circuitikzbasekey/resistor = european } }
 
 \newif\ifpgf at circuit@europeangfsurgearrester
-\ctikzset{gas filled surge arrester/.is choice}
-\ctikzset{gas filled surge arrester/european/.code= {\pgf at circuit@europeangfsurgearrestertrue } }
-\ctikzset{gas filled surge arrester/american/.code= {\pgf at circuit@europeangfsurgearresterfalse } } 
+\ctikzset{gas filled surge arrester choice/.is choice}
+\ctikzset{gas filled surge arrester choice/european/.code= {\pgf at circuit@europeangfsurgearrestertrue } }
+\ctikzset{gas filled surge arrester choice/american/.code= {\pgf at circuit@europeangfsurgearresterfalse } }
 
-\tikzset{american gas filled surge arrester/.style = { \circuitikzbasekey/gas filled surge arrester = american } }
-\tikzset{european gas filled surge arrester/.style = { \circuitikzbasekey/gas filled surge arrester = european } }
+\tikzset{american gas filled surge arrester set/.style = { \circuitikzbasekey/gas filled surge arrester choice=american } }
+\tikzset{european gas filled surge arrester set/.style = { \circuitikzbasekey/gas filled surge arrester choice=european } }
 \tikzset{american inductors/.style = { \circuitikzbasekey/inductor = american } }
 \tikzset{european inductors/.style = { \circuitikzbasekey/inductor = european } }
 \tikzset{cute inductors/.style = { \circuitikzbasekey/inductor = cute } }
 \tikzset{american ports/.style = { \circuitikzbasekey/logic ports = american } }
 \tikzset{european ports/.style = { \circuitikzbasekey/logic ports = european } }
-\tikzset{european/.style = { european currents, european voltages, european resistors, european inductors, european ports, european gas filled surge arrester } }
-\tikzset{american/.style = { american currents, american voltages, american resistors, american inductors, american ports, american gas filled surge arrester } }
+\tikzset{european/.style = { european currents, european voltages, european resistors, european inductors, european ports, european gas filled surge arrester set} }
+\tikzset{american/.style = { american currents, american voltages, american resistors, american inductors, american ports, american gas filled surge arrester set} }
 \tikzset{cute/.style = { european currents, european voltages, american resistors, cute inductors, american ports } }
 
 % I should try to make the tree clearer (this voltaege conflicts with the options above)

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -1843,11 +1843,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{south}{
@@ -1910,11 +1908,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{south}{
@@ -1925,12 +1921,10 @@
 	  	\pgf at y=0pt
 	  }
 	  \savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }	  
 	  \anchor{-}{
@@ -1941,11 +1935,9 @@
 		\pgf at y=-\pgf at y
 	  }
 	  \savedanchor\up{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 			\pgf at circ@res at up = \pgf at y 
 			\pgf at circ@res at right = -\pgf at x
@@ -2181,6 +2173,73 @@
 		\pgfusepath{draw}
 }
 
+%% bandstop filter
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/bandstop/width}}{bandstop}{\ctikzvalof{bipoles/bandstop/width}}{\ctikzvalof{bipoles/bandstop/width}}{
+	\pgf at circ@res at step = \ctikzvalof{bipoles/bandstop/width}\pgf at circ@Rlen
+	\divide \pgf at circ@res at step by 2
+
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at zero}}
+	\pgf at circ@res at other = \pgf at circ@res at left
+	\advance\pgf at circ@res at other by \pgf at circ@res at step
+
+	\ifpgf at circuit@dashed
+	\pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+	\fi
+
+	% draw outer box
+	\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+	\pgfpathrectanglecorners{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up}}{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at down}}
+	\pgfusepath{draw}
+
+	\ifpgf at circuit@inputarrow
+	{
+		\advance \pgf at circ@res at left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth
+		\pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
+		\pgfnode{inputarrow}{tip}{}{pgf at inputarrow}{\pgfusepath{fill}}
+	}
+	\fi
+
+	% rotate inner symbol
+	\def\pgfcircmathresult{\expandafter\pgf at circ@stripdecimals\pgf at circ@direction\pgf at nil}
+	\ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135
+	\pgftransformrotate{270}
+	\fi\fi
+	\ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225% 134 degree, because >= 135 is not possible
+	\pgftransformrotate{180}
+	\fi\fi
+	\ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315
+	\pgftransformrotate{90}
+	\fi\fi
+
+	% draw inner symbol
+	\pgfsetdash{}{0pt}% always draw solid line for inner symbol
+	\pgfsetarrows{-}%never draw arrows
+	\pgfsetlinewidth{\pgfstartlinewidth}
+	\pgfpathmoveto{\pgfpoint{-0.5\pgf at circ@res at step}{0.5\pgf at circ@res at step}}
+	\pgfpathsine{\pgfpoint{.25\pgf at circ@res at step}{.25\pgf at circ@res at step}}
+	\pgfpathcosine{\pgfpoint{.25\pgf at circ@res at step}{-.25\pgf at circ@res at step}}
+	\pgfpathsine{\pgfpoint{.25\pgf at circ@res at step}{-.25\pgf at circ@res at step}}
+	\pgfpathcosine{\pgfpoint{.25\pgf at circ@res at step}{.25\pgf at circ@res at step}}
+	\pgfusepath{draw}
+
+	\pgfpathmoveto{\pgfpoint{-0.5\pgf at circ@res at step}{0}}
+	\pgfpathsine{\pgfpoint{.25\pgf at circ@res at step}{.25\pgf at circ@res at step}}
+	\pgfpathcosine{\pgfpoint{.25\pgf at circ@res at step}{-.25\pgf at circ@res at step}}
+	\pgfpathsine{\pgfpoint{.25\pgf at circ@res at step}{-.25\pgf at circ@res at step}}
+	\pgfpathcosine{\pgfpoint{.25\pgf at circ@res at step}{.25\pgf at circ@res at step}}
+	\pgfusepath{draw}
+	\pgfpathmoveto{\pgfpoint{-0.15\pgf at circ@res at step}{-0.15\pgf at circ@res at step}}
+	\pgfpathlineto{\pgfpoint{0.15\pgf at circ@res at step}{0.15\pgf at circ@res at step}}
+	\pgfusepath{draw}
+
+	\pgfpathmoveto{\pgfpoint{-0.5\pgf at circ@res at step}{-0.5\pgf at circ@res at step}}
+	\pgfpathsine{\pgfpoint{.25\pgf at circ@res at step}{.25\pgf at circ@res at step}}
+	\pgfpathcosine{\pgfpoint{.25\pgf at circ@res at step}{-.25\pgf at circ@res at step}}
+	\pgfpathsine{\pgfpoint{.25\pgf at circ@res at step}{-.25\pgf at circ@res at step}}
+	\pgfpathcosine{\pgfpoint{.25\pgf at circ@res at step}{.25\pgf at circ@res at step}}
+	\pgfusepath{draw}
+}
+
 %% highpass filter
 \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/highpass/width}}{highpass}{\ctikzvalof{bipoles/highpass/width}}{\ctikzvalof{bipoles/highpass/width}}{
 		\pgf at circ@res at step = \ctikzvalof{bipoles/highpass/width}\pgf at circ@Rlen

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirccurrent.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirccurrent.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirccurrent.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -153,7 +153,7 @@
 				 \def\pgf at circ@dir{east}\else \def\pgf at circ@dir{west}
 			\fi
 		\fi\fi
-		\ifnum\pgfcircmathresult >284 \ifnum\pgfcircmathresult <356
+		\ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356
 			\ifpgf at circuit@bipole at current@below
 				  \def\pgf at circ@dir{north east}\else\def\pgf at circ@dir{south west}
 			\fi

Added: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircflow.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircflow.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircflow.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -0,0 +1,193 @@
+% Copyright 2007-2009 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/LICENSE for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% flow handling
+
+%% Options
+\ctikzset{f^>/.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = forward,
+		\circuitikzbasekey/bipole/flow/x position = after,
+		\circuitikzbasekey/bipole/curflowrent/y position = above
+	}
+}
+
+\ctikzset{f_>/.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = forward,
+		\circuitikzbasekey/bipole/flow/x position = after,
+		\circuitikzbasekey/bipole/flow/y position = below
+	}
+}
+
+\ctikzset{f>^/.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = forward,
+		\circuitikzbasekey/bipole/flow/x position = before,
+		\circuitikzbasekey/bipole/flow/y position = above
+	}
+}
+
+\ctikzset{f>_/.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = forward,
+		\circuitikzbasekey/bipole/flow/x position = before,
+		\circuitikzbasekey/bipole/flow/y position = below
+	}
+}
+
+\ctikzset{f^</.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = backward,
+		\circuitikzbasekey/bipole/flow/x position = after,
+		\circuitikzbasekey/bipole/flow/y position = above
+	}
+}
+
+\ctikzset{f_</.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = backward,
+		\circuitikzbasekey/bipole/flow/x position = after,
+		\circuitikzbasekey/bipole/flow/y position = below
+	}
+}
+
+\ctikzset{f<^/.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = backward,
+		\circuitikzbasekey/bipole/flow/x position = before,
+		\circuitikzbasekey/bipole/flow/y position = above
+	}
+}
+
+\ctikzset{f<_/.style = {
+		f = #1,
+		\circuitikzbasekey/bipole/flow/direction = backward,
+		\circuitikzbasekey/bipole/flow/x position = before,
+		\circuitikzbasekey/bipole/flow/y position = below
+	}
+}
+
+\ctikzset{f</.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = backward} }
+\ctikzset{f_/.style = { f = #1, \circuitikzbasekey/bipole/flow/y position = below } }
+\ctikzset{f>/.style = { f = #1, \circuitikzbasekey/bipole/flow/direction = forward } }
+\ctikzset{f^/.style = { f = #1, \circuitikzbasekey/bipole/flow/y position = above } }
+
+\ctikzset{f/.code = {
+	\pgfkeys{\circuitikzbasekey/bipole/flow/direction = forward,
+					\circuitikzbasekey/bipole/flow/x position = after,
+					\circuitikzbasekey/bipole/flow/y position = above }
+	\pgfkeys{/tikz/circuitikz/bipole/flow/label/name=#1}
+	\ctikzsetvalof{bipole/flow/label/unit}{}
+	\ifpgf at circ@siunitx 
+		\pgf at circ@handleSI{#1}
+		\ifpgf at circ@siunitx at res 
+			\edef\pgf at temp{\pgf at circ@handleSI at val}
+			\pgfkeyslet{/tikz/circuitikz/bipole/flow/label/name}{\pgf at temp}
+			\edef\pgf at temp{\pgf at circ@handleSI at unit}
+			\pgfkeyslet{/tikz/circuitikz/bipole/flow/label/unit}{\pgf at temp}
+		\else
+		\fi
+	\else
+	\fi
+}
+}
+
+%% Output routine 
+\def\pgf at circ@drawflow{
+	\pgfextra{
+		\edef\pgf at circ@ffffff{\pgf at circ@direction}
+		\def\pgfcircmathresult{\expandafter\pgf at circ@stripdecimals\pgf at circ@ffffff\pgf at nil}
+
+		\ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86
+			\ifpgf at circuit@bipole at flow@below
+				\def\pgf at circ@dir{north west} \else \def\pgf at circ@dir{south east}
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95
+			\ifpgf at circuit@bipole at flow@below
+				\def\pgf at circ@dir{west} \else \def\pgf at circ@dir{east} 
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176
+			\ifpgf at circuit@bipole at flow@below
+				 \def\pgf at circ@dir{south west}\else \def\pgf at circ@dir{north east}
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185
+			\ifpgf at circuit@bipole at flow@below
+				  \def\pgf at circ@dir{south}\else\def\pgf at circ@dir{north}
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266
+			\ifpgf at circuit@bipole at flow@below
+				 \def\pgf at circ@dir{south east}\else\def\pgf at circ@dir{north west}
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275
+			\ifpgf at circuit@bipole at flow@below
+				 \def\pgf at circ@dir{east}\else \def\pgf at circ@dir{west}
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356
+			\ifpgf at circuit@bipole at flow@below
+				  \def\pgf at circ@dir{north east}\else\def\pgf at circ@dir{south west}
+			\fi
+		\fi\fi
+		\ifnum\pgfcircmathresult <5
+			\ifpgf at circuit@bipole at flow@below
+				 \def\pgf at circ@dir{north}\else\def\pgf at circ@dir{south} 
+			\fi
+		\fi
+		\ifnum\pgfcircmathresult >355
+			\ifpgf at circuit@bipole at flow@below
+				 \def\pgf at circ@dir{north}\else\def\pgf at circ@dir{south} 
+			\fi
+		\fi
+		
+		\ifpgf at circuit@bipole at flow@below
+			\def\pgf at circ@bipole at flow@label at where{-90}
+		\else
+			\def\pgf at circ@bipole at flow@label at where{+90}
+		\fi
+	}
+	
+	\pgfextra{\def\pgf at temp{short}\edef\pgf at circ@temp{\ctikzvalof{bipole/kind}}}
+		\ifx\pgf at circ@temp\pgf at temp%draw flow at a short at middle of the line
+				(\tikztostart)--(\tikztotarget)
+		\else% normal bipole or source
+			\ifpgf at circuit@bipole at flow@before
+				 (\tikztostart)--(anchorstartnode)
+			\else
+				(anchorendnode)--(\tikztotarget)
+			\fi
+		\fi
+	\pgfextra{
+		\ifpgf at circuit@bipole at flow@backward
+			\ifpgf at circuit@bipole at flow@below
+				\def\flow at offset{\ctikzvalof{flow/offset}\pgf at circ@Rlen}
+			\else
+				\def\flow at offset{-\ctikzvalof{flow/offset}\pgf at circ@Rlen}
+			\fi
+			\pgfmathsubtract{\pgf at circ@ffffff}{180}
+			\edef\pgf at circ@ffffff{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}	
+		\else
+			\ifpgf at circuit@bipole at flow@below
+				\def\flow at offset{-\ctikzvalof{flow/offset}\pgf at circ@Rlen}
+			\else
+				\def\flow at offset{\ctikzvalof{flow/offset}\pgf at circ@Rlen}
+			\fi
+		\fi
+	}
+	coordinate[flowarrow,pos=\ctikzvalof{flow/distance},rotate=\pgf at circ@ffffff,yshift=\flow at offset](Farrowpos)
+	(Farrowpos.\pgf at circ@bipole at flow@label at where) node[anchor=\pgf at circ@dir]{ \pgf at circ@finallabels{flow/label}}
+}
+
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircflow.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirclabel.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirclabel.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirclabel.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -87,6 +87,28 @@
 
 
 \def\pgf at circ@drawlabels#1{
+	\pgfextra{
+		\pgfmathsubtract{\pgf at circ@direction}{90}
+		\edef\pgf at circ@labanc{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
+		
+		\edef\pgf at circ@temp{\ctikzvalof{bipole/#1/position}} 
+		\ifnum \pgf at circ@temp < 0
+			\pgfmathadd{\pgf at circ@labanc}{180}
+			\edef\pgf at circ@labanc{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
+		\fi
+		\ifpgf at circuit@bipole at inverted
+			\pgfmathadd{\pgf at circ@temp}{180} %If shape is inverted, use opposite anchor
+			\edef\pgf at circ@temp{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
+		\fi
+		
+		\ifnum \ctikzvalof{mirror value} = -1
+			\pgfmathadd{\pgf at circ@temp}{180} %If shape is mirrored, use opposite anchor
+			\edef\pgf at circ@temp{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
+		\fi
+	}
+		%Firstly, place a coodinate directly at the edge of the shape
+		(\ctikzvalof{bipole/name}.\pgf at circ@temp) coordinate (labelcoor)
+		%now decide, which labels should be drawn
 		\pgfextra{
 			\edef\pgf at temp{\ctikzvalof{label/align}}
 			\def\pgf at circ@temp{straight}
@@ -97,7 +119,7 @@
 			\pgfextra{\def\pgf at circ@temp{rotate}}
 			\ifx\pgf at temp\pgf at circ@temp %rotate
 				\pgf at circ@drawrotlabels{#1}
-			\else % smart
+			\else% smart
 				\pgf at circ@drawsmartlabels{#1}
 			\fi
 		\fi
@@ -123,61 +145,70 @@
 
 \def\pgf at circ@drawrotlabels#1{
 	\pgfextra{
-		\def\pgf at circ@temp{\ctikzvalof{bipole/#1/position}} 
-		\edef\pgfcirclabrot{\pgf at circ@direction} % first or fourth quadrant
-		\edef\pgfcircmathresult{\expandafter\pgf at circ@stripdecimals\pgf at circ@direction\pgf at nil}
-		\ifnum \pgfcircmathresult > 90 \ifnum \pgfcircmathresult < 270 % second or third quadrant
+		\ifnum \ctikzvalof{bipole/#1/position}>0
+		%we need some more space for placement below, due to mid-anchor
+			\def\pgf at circ@labposdistance{1.5ex}
+			\else
+			\def\pgf at circ@labposdistance{2ex}
+		\fi
+		%Calculate rotation of the label from direction and strip decimals
+		\edef\pgfcirclabrot{\expandafter\pgf at circ@stripdecimals\pgf at circ@direction\pgf at nil}
+		% rotate the label at second or third quadrant:
+		\ifnum \pgfcirclabrot > 90 \ifnum \pgfcirclabrot < 270
 			\pgfmathsubtract{\pgf at circ@direction}{180}
 			\edef\pgfcirclabrot{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
-			\pgfmathadd{\pgf at circ@temp}{180} %%%
-			\edef\pgf at circ@temp{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil} %%%
+			%invert the space relationships due to rotatet strings
+			\ifnum \ctikzvalof{bipole/#1/position}>0
+				\def\pgf at circ@labposdistance{2ex}
+			\else
+				\def\pgf at circ@labposdistance{1.5ex}
+			\fi
 		\fi\fi
-	
-		\pgfmathadd{\pgf at circ@direction}{90}
-		\edef\pgf at circ@labpos{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
-		}
-		\ifnum \ctikzvalof{mirror value} = -1
-			(\ctikzvalof{bipole/name}.south)++(\pgf at circ@labpos:1.5ex) coordinate (labelcoor)
-		\else
-			(\ctikzvalof{bipole/name}.north)++(\pgf at circ@labpos:1.5ex) coordinate (labelcoor)
-		\fi
-		(labelcoor) node [rotate=\pgfcirclabrot,anchor=mid] {\pgf at circ@finallabels{#1}} 
+		\pgfmathparse{\ctikzvalof{bipole/#1/position}>0?\pgf at circ@direction+90:\pgf at circ@direction-90}
+		\edef\pgf at circ@labposangle{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
+	}				
+	(labelcoor)++(\pgf at circ@labposangle:\pgf at circ@labposdistance) coordinate(labelcoor)
+	node[anchor=mid,rotate=\pgfcirclabrot](\ctikzvalof{bipole/name}#1){\pgf at circ@finallabels{#1}}
 }
 
 \def\pgf at circ@drawreglabels#1{
+
+	%Now calculate all shape positions
+	%Use mid-anchor at x-axis and base-anchor at y-axis, respectively.
+	%All points between will be addressed by angled-anchors:
 	\pgfextra{
-		\pgfmathsubtract{\pgf at circ@direction}{90}
-		\edef\pgf at circ@labanc{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
-		
-		\edef\pgf at circ@temp{\ctikzvalof{bipole/#1/position}} 
-		\ifnum \pgf at circ@temp < 0
-			\pgfmathadd{\pgf at circ@labanc}{180}
-			\edef\pgf at circ@labanc{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
-		\fi
-		\ifpgf at circuit@bipole at inverted
-				\pgfmathadd{\pgf at circ@temp}{180}
-				\edef\pgf at circ@temp{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
-		\fi
-		
-		\ifnum \ctikzvalof{mirror value} = -1
-				\pgfmathadd{\pgf at circ@temp}{180}
-				\edef\pgf at circ@temp{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
-		\fi
-		\pgfmathadd{\pgf at circ@direction}{90}
-		\edef\pgf at circ@labpos{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}		
+		\pgfmathadd{\pgf at circ@labanc}{90}
+		\edef\pgf at circ@temp{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
+		\pgfmathparse{mod(\pgf at circ@temp,180)>135?mod(\pgf at circ@temp,180)-180:mod(\pgf at circ@temp,180)}
+		\edef\pgfcircmathresult{\expandafter\pgf at circ@stripdecimals\pgfmathresult\pgf at nil}
 	}
-
-	\ifnum \pgf at circ@labanc = -90
-		\ifnum \ctikzvalof{mirror value} = -1
-			(\ctikzvalof{bipole/name}.south)++(\pgf at circ@labpos:1.5ex) coordinate (labelcoor)
+	%Values between -5 and 5 are at pos /neg x-axis, values around 90 are at both y-axis
+	\ifnum \pgfcircmathresult > 84 \ifnum \pgfcircmathresult< 96
+		\pgfextra{\edef\pgf at circ@labpos{\expandafter\pgf at circ@stripdecimals\pgf at circ@direction\pgf at nil}}
+		\ifnum \pgf at circ@labpos > 180
+			\ifnum \ctikzvalof{bipole/#1/position} > 0
+				\pgfextra{\def\pgf at circ@labanc{mid west}}
+			\else
+				\pgfextra{\def\pgf at circ@labanc{mid east}}
+			\fi
 		\else
-			(\ctikzvalof{bipole/name}.north)++(\pgf at circ@labpos:1.5ex) coordinate (labelcoor)
+			\ifnum \ctikzvalof{bipole/#1/position} > 0
+				\pgfextra{\def\pgf at circ@labanc{mid east}}
+			\else
+				\pgfextra{\def\pgf at circ@labanc{mid west}}
+			\fi
 		\fi
-		(labelcoor) node [anchor=mid] {\pgf at circ@finallabels{#1}} 
-
-	\else
-		(\ctikzvalof{bipole/name}.\pgf at circ@temp) node [anchor=\pgf at circ@labanc]{\pgf at circ@finallabels{#1}}
- 	 \fi
+	\fi\fi
+	\ifnum \pgfcircmathresult <6
+		\ifnum \ctikzvalof{bipole/#1/position} < 0
+			%we need some more space for placement below, due to mid-anchor
+			(labelcoor)++(-\pgf at circ@labanc:2ex) coordinate(labelcoor)
+		\else
+			(labelcoor)++(-\pgf at circ@labanc:1.5ex) coordinate(labelcoor)
+		\fi
+		\pgfextra{\def\pgf at circ@labanc{mid}}
+	\fi
+	 (labelcoor) node[anchor=\pgf at circ@labanc](\ctikzvalof{bipole/name}#1){\pgf at circ@finallabels{#1}}
 }
 
 \def\pgf at circ@finallabels#1{%

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircpath.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -1,5 +1,4 @@
 
-\pgf at circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
 \def\pgf at circ@direction{0.0}
 
 % Names
@@ -44,13 +43,32 @@
    }
 }
 
+%% Helper function for path-function to ensure using anchors between nodes
+\def\set at explicit@center at anchor#1{
+	\pgfutil at ifundefined{pgf at sh@ns@#1}
+	{
+	%This coordinate is no node(but a relative position or a coordinate), no further handling needed
+	}{
+	\pgfutil at in@.{#1}
+	\ifpgfutil at in@
+	% Anchor is used, do nothing!
+	\else%
+		\let\tikz at moveto@waiting=\relax
+		\pgfpathmoveto{\tikz at last@position}%force movement, because tikz at moveto@waiting
+		\edef#1{#1.center}%ensure using center anchor
+	\fi
+	}
+}
 
+
 %% Generic bipole path
 \def\pgf at circ@bipole at path#1#2{
 
 \pgfextra{
+		\set at explicit@center at anchor{\tikztostart}
+		\set at explicit@center at anchor{\tikztotarget}
+		\pgfsyssoftpath at getcurrentpath{\myp at th}%% save current path to extend after calculation of correct start/end coordinates
 		\ctikzset{bipole/kind = #1}
-		
 		\edef\pgf at temp{\ctikzvalof{bipole/name}}
 		\def\pgf at circ@temp{}
 		\ifx\pgf at temp\pgf at circ@temp % if it has not a name
@@ -57,13 +75,11 @@
 			\pgfmathrandominteger{\pgf at circ@rand}{1000}{9999}
 			\ctikzset{bipole/name = #2\pgf at circ@rand} % create it
 		\fi
-		\pgfsyssoftpath at getcurrentpath{\myp at th}%% save current path to extend after calculation of correct start/end coordinates
 	}
 	
 		(\tikztostart) coordinate (\ctikzvalof{bipole/name}start)%necessary to get correct coordinates in the case of relativ start/end or constructions like ((node1)-|(node2))
 		(\tikztotarget) coordinate (\ctikzvalof{bipole/name}end)
 		\pgfextra{
-			\let\tikz at moveto@waiting=\relax%necessary, if \tikztatarget is a node
 			\pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
 							{\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
 			\edef\pgf at circ@direction{\pgfmathresult}%Calculate direction(angle) of path
@@ -115,6 +131,7 @@
 	\pgf at circ@ifkeyempty{bipole/annotation/name}\else\pgf at circ@drawlabels{annotation}\fi
 	\pgf at circ@ifkeyempty{bipole/voltage/label/name}\else\pgf at circ@drawvoltage\fi
 	\pgf at circ@ifkeyempty{bipole/current/label/name}\else\pgf at circ@drawcurrent\fi
+	\pgf at circ@ifkeyempty{bipole/flow/label/name}\else\pgf at circ@drawflow\fi
 	\pgfextra{\def\pgf at temp{open}\def\pgf at circ@temp{#1}}
 	\ifx\pgf at temp\pgf at circ@temp  % if it is an open
 		(\ctikzvalof{bipole/name}end)%Move to end of path
@@ -242,6 +259,7 @@
 \def\pgf at circ@twoport at path#1{\pgf at circ@bipole at path{twoport}{#1}}
 \def\pgf at circ@vco at path#1{\pgf at circ@bipole at path{vco}{#1}}
 \def\pgf at circ@bandpass at path#1{\pgf at circ@bipole at path{bandpass}{#1}}
+\def\pgf at circ@bandstop at path#1{\pgf at circ@bipole at path{bandstop}{#1}}
 \def\pgf at circ@highpass at path#1{\pgf at circ@bipole at path{highpass}{#1}}
 \def\pgf at circ@lowpass at path#1{\pgf at circ@bipole at path{lowpass}{#1}}
 \def\pgf at circ@adc at path#1{\pgf at circ@bipole at path{adc}{#1}}
@@ -356,6 +374,7 @@
 \compattikzset{twoport/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@twoport at path}}
 \compattikzset{vco/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@vco at path}}
 \compattikzset{bandpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@bandpass at path}}
+\compattikzset{bandstop/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@bandstop at path}}
 \compattikzset{highpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@highpass at path}}
 \compattikzset{lowpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@lowpass at path}}
 \compattikzset{adc/.style = {\circuitikzbasekey, /tikz/to path=\pgf at circ@adc at path}}

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -18,11 +18,9 @@
 		\pgf at x=0pt
 	  }
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=.5\pgf at x
+		\pgf at x=.5\pgf at circ@Rlen
 		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/width}\pgf at x
 	  }
 	  \anchor{A2}{
@@ -89,8 +87,6 @@
 			\pgf at circ@res at right = -\pgf at x
 			\pgf at circ@res at left = \pgf at x
 			
-			%\pgf at circ@Rlen=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			
 			#2
 	  
 	  }
@@ -217,11 +213,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{south}{
@@ -235,12 +229,10 @@
 	  	\pgf at y=0pt
 	  }
 	  \savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{-}{
@@ -251,11 +243,9 @@
 		\pgf at y=-\pgf at y
 	  }
 	  \savedanchor\up{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 			\pgf at circ@res at up = \pgf at y
 			\pgf at circ@res at right = -\pgf at x
@@ -440,11 +430,9 @@
 			\pgf at y=0pt
 		}
 		\savedanchor\northwest{%
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=.5\pgf at x
+			\pgf at x=.5\pgf at circ@Rlen
 			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/width}\pgf at x
 			}
 		\anchor{north}{

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircshapes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircshapes.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircshapes.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -54,12 +54,12 @@
 		\pgf at circ@res at left=\pgf at x
 		\pgf at circ@res at up=\pgf at y
 		\pgfpointborderellipse{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up}
-}{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}}		
+}{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}}		
 	}
 	\behindforegroundpath{		
 		
 		\pgfscope
-			\pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}
+			\pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
 			\pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
 			\pgfusepath{draw,fill}		
 		\endpgfscope
@@ -77,13 +77,13 @@
 		\pgf at circ@res at left=\pgf at x
 		\pgf at circ@res at up=\pgf at y
 		\pgfpointborderellipse{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up}
-}{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}}		
+}{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}}		
 	}
 
 	\behindforegroundpath{		
 		
 		\pgfscope
-			\pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}
+			\pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
 			\pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
 			\pgfsetfillcolor{white}
 			\pgfusepath{draw,fill}		
@@ -104,7 +104,7 @@
 	}
 	\behindforegroundpath{		
 		\pgfscope
-			\pgfmathsetlength{\pgf at circ@res at temp}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}
+			\pgfmathsetlength{\pgf at circ@res at temp}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
 			\pgftransformrotate{45}
 			\pgfpathrectanglecorners
 			{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at temp}{\pgf at circ@res at up+\pgf at circ@res at temp}}
@@ -145,7 +145,7 @@
 	}
 		\anchor{tip}{
 		\pgfpointorigin
-			\pgf at circ@res at step = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+			\pgf at circ@res at step = \pgf at circ@Rlen
 				\divide \pgf at circ@res at step by 16
 		\pgf at x	=\pgf at circ@res at step
 		}
@@ -152,7 +152,7 @@
 	\behindforegroundpath{		
 		
 		\pgfscope
-			\pgf at circ@res at step = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+			\pgf at circ@res at step = \pgf at circ@Rlen
 			\divide \pgf at circ@res at step by 16
 
 			\pgfpathmoveto{\pgfpoint{-.7\pgf at circ@res at step}{0pt}}
@@ -168,8 +168,34 @@
 
 }
 
-%% Current arrow
+%% Flow arrow
 
+\pgfdeclareshape{flowarrow}{
+	\anchor{center}{
+		\pgfpointorigin
+	}
+		\anchor{tip}{
+		\pgfpointorigin
+			\pgf at circ@res at step = \pgf at circ@Rlen
+				\divide \pgf at circ@res at step by 16
+		\pgf at x	=\pgf at circ@res at step
+		}
+	\behindforegroundpath{
+		\pgfscope
+			\pgf at circ@res at step = \pgf at circ@Rlen
+			\divide \pgf at circ@res at step by 4
+			\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at step}{0pt}}
+			\pgfpathlineto{\pgfpoint{\pgf at circ@res at step}{0pt}}
+			\pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
+			\pgfusepath{draw}
+			\pgftransformshift{\pgfpoint{\pgf at circ@res at step}{0pt}}
+			\pgfnode{currarrow}{tip}{}{}{\pgfusepath{fill}}
+		\endpgfscope
+	}
+}
+
+%% Input arrow
+
 \pgfdeclareshape{inputarrow}{
 	\savedanchor{\tip}{
 		\pgfpointorigin
@@ -183,7 +209,7 @@
 	\behindforegroundpath{		
 		
 		\pgfscope
-			\pgf at circ@res at step = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+			\pgf at circ@res at step = \pgf at circ@Rlen
 			\divide \pgf at circ@res at step by 16
 
 			\pgfpathmoveto{\pgfpoint{-1.7\pgf at circ@res at step}{0pt}}

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -15,11 +15,9 @@
 \pgfdeclareshape{spdt}
 	{
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{left}{%
@@ -142,11 +140,9 @@
 	\pgfdeclareshape{american #1 port}
 	{
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \savedanchor\left{%
@@ -153,12 +149,10 @@
 	  	\pgf at y=0pt
 	  }
 	  \savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }	  
 	  \anchor{in 1}{
@@ -562,11 +556,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \savedanchor\left{%
@@ -662,11 +654,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \savedanchor\left{%
@@ -774,11 +764,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \savedanchor\left{%
@@ -889,11 +877,9 @@
 	\pgfdeclareshape{european #1 port}
 	{
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \savedanchor\left{%
@@ -900,12 +886,10 @@
 	  	\pgf at y=0pt
 	  }
 	  \savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }	  
 	  \anchor{in}{
@@ -1034,20 +1018,18 @@
 		 \pgfpointorigin
 	 }
 	\savedanchor\northeast{% upper right
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at x=0pt
 	}
 	\savedanchor\left{%center left
 	  	\pgf at y=0pt
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf at circ@Rlen
 	}
 	\anchor{text}{
 	 \northeast
 	 \pgf at y=.7\pgf at y
-	 \pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+	 \pgf at x= \pgf at circ@Rlen
 	 \pgf at x=0.1\pgf at x
 	}
 	\anchor{pathstart}{ % south
@@ -1523,8 +1505,8 @@
 				\pgfusepath{draw}
 			\fi
 			\pgfpathcircle{\pgfpoint
-				{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf at circ@res at left - \pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}
-				{\pgf at circ@res at up+\pgf at circ@res at down}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}
+				{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf at circ@res at left - \pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
+				{\pgf at circ@res at up+\pgf at circ@res at down}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
 			\ifpgf at circuit@pmos at emptycircle
 				\pgfsetfillcolor{white}
 			\fi
@@ -2260,11 +2242,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{south}{
@@ -2284,12 +2264,10 @@
 		  \pgf at x = \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf at x
 	  }
 	  \savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }	  
 	  \anchor{-}{
@@ -2300,11 +2278,9 @@
 		\pgf at y=-\pgf at y
 	  }
 	  \savedanchor\up{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 			\pgf at circ@res at up = \pgf at y 
 			\pgf at circ@res at right = -\pgf at x
@@ -2393,11 +2369,9 @@
 {
 	\anchor{center}{\pgfpointorigin}
 	\savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	}
 	\anchor{south}{
@@ -2418,12 +2392,10 @@
 	 	\pgf at x = \pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/port width}\pgf at x
 	}
 	\savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/en amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	}	  
 	\anchor{-}{
@@ -2503,11 +2475,9 @@
 	{
 	  \anchor{center}{\pgfpointorigin}
 	  \savedanchor\northwest{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }
 	  \anchor{south}{
@@ -2525,12 +2495,10 @@
   	  	\pgf at x = \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf at x
 	  }
 	  \savedanchor\inOne{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
 		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/input height}\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 	  }	  
 	  \anchor{-}{
@@ -2541,11 +2509,9 @@
 		\pgf at y=-\pgf at y
 	  }
 	  \savedanchor\up{%
-		\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf at y
+		\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/height}\pgf at circ@Rlen
 		\pgf at y=.5\pgf at y
-		\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf at x
+		\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/gm amp/width}\pgf at circ@Rlen
 		\pgf at x=.5\pgf at x
 			\pgf at circ@res at up = \pgf at y 
 			\pgf at circ@res at right = -\pgf at x
@@ -2709,18 +2675,14 @@
 {
 	\savedanchor\northwest{
 		\ifpgf at circuit@boxed
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 		\else	
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 		\fi
 	}
@@ -2857,18 +2819,14 @@
 {
 	\savedanchor\northwest{
 		\ifpgf at circuit@boxed
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 		\else	
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 		\fi
 	}
@@ -3007,17 +2965,13 @@
 {
 	\savedanchor\northwest{
 		\ifpgf at circuit@boxed
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 		\else	
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/oscillator/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/oscillator/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/oscillator/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/oscillator/width}\pgf at circ@Rlen
 		\fi
 	}
 	\anchor{center}{
@@ -3091,18 +3045,14 @@
 {
 	\savedanchor\northwest{
 		\ifpgf at circuit@boxed
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 		\else	
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 		\fi
 	}
@@ -3207,10 +3157,9 @@
 			\pgf at y=0pt
 		}
 		\savedanchor\northwest{%
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/height}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/height}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+			\pgf at x= \pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
 			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/width}\pgf at x
 			}
@@ -3329,21 +3278,10 @@
 \pgfdeclareshape{elmech}
 {
 	\savedanchor\northwest{
-		%\ifpgf at circuit@boxed
-		%	\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		%	\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at y
-		%	\pgf at y=.5\pgf at y
-		%	\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		%	\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at x
-		%	\pgf at x=.5\pgf at x
-		%\else
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/elmech/height}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/elmech/height}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/elmech/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/elmech/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
-		%\fi
 	}
 	\anchor{center}{
 		\pgfpointorigin
@@ -3432,21 +3370,10 @@
 \pgfdeclareshape{magnetron}
 {
 	\savedanchor\northwest{
-		%\ifpgf at circuit@boxed
-		%	\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		%	\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at y
-		%	\pgf at y=.5\pgf at y
-		%	\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-		%	\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/twoport/width}\pgf at x
-		%	\pgf at x=.5\pgf at x
-		%\else
-			\pgf at y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/magnetron/width}\pgf at y
+			\pgf at y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/magnetron/width}\pgf at circ@Rlen
 			\pgf at y=.5\pgf at y
-			\pgf at x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/magnetron/width}\pgf at x
+			\pgf at x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/magnetron/width}\pgf at circ@Rlen
 			\pgf at x=.5\pgf at x
-		%\fi
 	}
 	\anchor{center}{
 		\pgfpointorigin

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircvoltage.tex	2017-06-05 23:20:06 UTC (rev 44488)
@@ -36,9 +36,13 @@
 		v = #1,
 		\circuitikzbasekey/bipole/voltage/direction = backward,
 		\circuitikzbasekey/bipole/voltage/position = below
-	} 
+	}
 }
 
+\ctikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = below} }
+\ctikzset{v^/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position  = above} }
+\ctikzset{v>/.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = forward} }
+\ctikzset{v</.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = backward} }
 
 % Default position varies whether the component is a voltage source
 % or not
@@ -68,7 +72,7 @@
 	\ctikzsetvalof{bipole/voltage/label/unit}{}
 	\ifpgf at circ@siunitx 
 		\pgf at circ@handleSI{#1}
-		\ifpgf at circ@siunitx at res 
+		\ifpgf at circ@siunitx at res
 			\edef\pgf at temp{\pgf at circ@handleSI at val}
 			\pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/name}{\pgf at temp}
 			\edef\pgf at temp{\pgf at circ@handleSI at unit}
@@ -77,26 +81,33 @@
 		\fi
 	\else
 	\fi
-	} 
+	}
 }
 
-\ctikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = below} }
-\ctikzset{v^/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position  = above} }
-\ctikzset{v>/.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = forward} }
-\ctikzset{v</.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = backward} }
 
 
+
 %% Output routine for generic bipoles
 
 \def\pgf at circ@drawvoltagegeneric{
-	\pgfextra{\edef\pgf at temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance}
+	\pgfextra{
+			\edef\pgf at temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance}
 			\pgfkeysifdefined{\pgf at temp}
-				{ \edef\partwidth{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance}} 
-					\def\tmpdistfromline{\partwidth\pgf at circ@Rlen}}
 				{ 
-		\edef\partwidth{0.5*\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/height}}
-			\def\tmpdistfromline{(\partwidth\pgf at circ@Rlen+0.2\pgf at circ@Rlen)}
-	}
+					\edef\partheight{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/straight label distance}}
+					\edef\tmpdistfromline{(\partheight\pgf at circ@Rlen)}
+				}
+				{
+				\pgfkeysifdefined{/tikz/circuitikz/bipoles/voltage/straight label distance}
+					{
+						\edef\partheight{\ctikzvalof{bipoles/voltage/straight label distance}}
+						\edef\tmpdistfromline{(\partheight\pgf at circ@Rlen)}
+					}
+					{%calculate default value from part height
+						\edef\partheight{0.5*\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/height}}
+						\edef\tmpdistfromline{(\partheight\pgf at circ@Rlen+0.2\pgf at circ@Rlen)}
+					}
+				}
 		\ifnum \ctikzvalof{mirror value}=-1
 			\ifpgf at circuit@bipole at inverted
 				\ifpgf at circuit@bipole at voltage@straight
@@ -126,13 +137,11 @@
 				\fi
 			\fi
 		\fi
-		
 		\ifpgf at circuit@bipole at voltage@below
 			\def\pgf at circ@voltage at angle{90}
 		\else
-			\def\pgf at circ@voltage at angle{-90} 
-		\fi	
-		
+			\def\pgf at circ@voltage at angle{-90}
+		\fi
 		\edef\pgf at temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/distance from node}
 		\pgfkeysifdefined{\pgf at temp}
 			{ \edef\distacefromnode{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/distance from node}} }
@@ -142,19 +151,16 @@
 			{ \edef\bumpb{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/bump b}} }
 			{ \edef\bumpb{\ctikzvalof{voltage/bump b}} }
 	}
-	
-	% %\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}/16 is equal to the length of the currarrow
-	coordinate (pgfcirc at midtmp) at ($(\tikztostart) ! \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}/16 ! (anchorstartnode)$) %absolute move, minimum space is length of arrowhead
+	% %\pgf at circ@Rlen/16 is equal to the length of the currarrow
+	coordinate (pgfcirc at midtmp) at ($(\tikztostart) ! \pgf at circ@Rlen/16 ! (anchorstartnode)$) %absolute move, minimum space is length of arrowhead
 	coordinate (pgfcirc at midtmp) at ($(pgfcirc at midtmp) ! \distacefromnode ! (anchorstartnode)$)
 
-	
-	coordinate (pgfcirc at Vfrom) at ($(pgfcirc at midtmp) ! -\distfromline ! \pgf at circ@voltage at angle:(anchorstartnode)$) 
-	coordinate (pgfcirc at midtmp) at ($(\tikztotarget) ! \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}/16 ! (anchorendnode)$)%absolute move, minimum space is length of arrowhead
+	coordinate (pgfcirc at Vfrom) at ($(pgfcirc at midtmp) ! -\distfromline ! \pgf at circ@voltage at angle:(anchorstartnode)$)
+	coordinate (pgfcirc at midtmp) at ($(\tikztotarget) ! \pgf at circ@Rlen/16 ! (anchorendnode)$)%absolute move, minimum space is length of arrowhead
 	coordinate (pgfcirc at midtmp) at ($(pgfcirc at midtmp) ! \distacefromnode ! (anchorendnode)$)
 
 	coordinate (pgfcirc at Vto) at ($(pgfcirc at midtmp) ! \distfromline ! \pgf at circ@voltage at angle : (anchorendnode)$)
 
-
 	\ifpgf at circuit@bipole at voltage@below
 		coordinate (pgfcirc at Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-110)$)
 		coordinate (pgfcirc at Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-70)$)
@@ -166,45 +172,43 @@
 	\ifpgf at circuit@europeanvoltage
 		\ifpgf at circuit@bipole at voltage@straight
 			\ifpgf at circuit@bipole at voltage@backward
-				(pgfcirc at Vto) --(pgfcirc at Vfrom) node[currarrow, sloped,  allow upside down, pos=1,anchor=tip] {} 
+				(pgfcirc at Vto) --(pgfcirc at Vfrom) node[currarrow, sloped,  allow upside down, pos=1,anchor=tip] {}
 			\else
-				(pgfcirc at Vfrom) --(pgfcirc at Vto) node[currarrow, sloped,  allow upside down, pos=1,anchor=tip] {} 
-				 	
-			\fi	
+				(pgfcirc at Vfrom) --(pgfcirc at Vto) node[currarrow, sloped,  allow upside down, pos=1,anchor=tip] {}
+			\fi
 		\else
 			\ifpgf at circuit@bipole at voltage@backward
-				(pgfcirc at Vto) .. controls (pgfcirc at Vcont2)  and (pgfcirc at Vcont1) .. 
-					node[currarrow, sloped,  allow upside down, pos=1] {} 
-				(pgfcirc at Vfrom) 
+				(pgfcirc at Vto) .. controls (pgfcirc at Vcont2)  and (pgfcirc at Vcont1) ..
+					node[currarrow, sloped,  allow upside down, pos=1] {}
+				(pgfcirc at Vfrom)
 			\else
 				(pgfcirc at Vfrom) .. controls (pgfcirc at Vcont1)  and (pgfcirc at Vcont2) ..
 					node[currarrow, sloped,  allow upside down, pos=1] {}
-				(pgfcirc at Vto) 	
-			\fi	
+				(pgfcirc at Vto)
+			\fi
 		\fi
 	\else
 		\ifpgf at circuit@bipole at voltage@backward
 			\ifpgf at circ@oldvoltagedirection
-				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$+$}   
+				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$+$}
 				(pgfcirc at Vto) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{$-$}
 			\else
-				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$-$}   
+				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$-$}
 				(pgfcirc at Vto) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{$+$}
 			\fi
 		\else
 			\ifpgf at circ@oldvoltagedirection
-				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$-$}   
+				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$-$}
 				(pgfcirc at Vto) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{$+$}
 			\else
-				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$+$}   
+				(pgfcirc at Vfrom) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{\scriptsize$+$}
 				(pgfcirc at Vto) node[inner sep=0, anchor=\pgf at circ@bipole at voltage@label at anchor]{$-$}
 			\fi
-		\fi	
+		\fi
 	\fi
 }
 
 %% Output routine for voltage sources
-
 \def\pgf at circ@drawvoltagegenerator{
 	\ifpgf at circuit@bipole at voltage@below
 		coordinate (pgfcirc at Vfrom) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.-120)$)
@@ -213,7 +217,6 @@
 		coordinate (pgfcirc at Vfrom) at ($ (\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.120)$)
 		coordinate (pgfcirc at Vto) at ($ (\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.60)$)
 	\fi
-
 	\ifpgf at circuit@europeanvoltage
 		\ifpgf at circuit@bipole at voltage@backward
 			(pgfcirc at Vto)  -- node[currarrow, sloped,  allow upside down, pos=1] {} (pgfcirc at Vfrom)
@@ -220,10 +223,8 @@
 		\else
 			(pgfcirc at Vfrom)  -- node[currarrow, sloped,  allow upside down, pos=1] {} (pgfcirc at Vto)
 		\fi
-	
-	\else % american voltage
-		
-	\ifpgf at circuit@bipole at voltageoutsideofsymbol
+	\else% american voltage
+		\ifpgf at circuit@bipole at voltageoutsideofsymbol
 		% if it is a battery, must put + and -
 			\ifpgf at circuit@bipole at voltage@backward
 				(pgfcirc at Vfrom)  node {$-$}  (pgfcirc at Vto) node {$+$}
@@ -231,26 +232,24 @@
 				(pgfcirc at Vfrom)  node {$+$}  (pgfcirc at Vto) node {$-$}
 			\fi
 		\fi
-		
 	\fi
 }
 
 %% Output routine
-
-\def\pgf at circ@drawvoltage{   % node name 
+\def\pgf at circ@drawvoltage{% node name 
+%\pgf at circ@direction
 	\pgfextra{
 		\edef\pgfcircmathresult{\expandafter\pgf at circ@stripdecimals\pgf at circ@direction\pgf at nil}
-
 		\ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86
 			\ifpgf at circuit@bipole at voltage@below
-				\def\pgf at circ@bipole at voltage@label at anchor{north west} 
+				\def\pgf at circ@bipole at voltage@label at anchor{north west}
 			\else \def\pgf at circ@bipole at voltage@label at anchor{south east}
 			\fi
 		\fi\fi
 		\ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95
 			\ifpgf at circuit@bipole at voltage@below
-				\def\pgf at circ@bipole at voltage@label at anchor{west} 
-			\else \def\pgf at circ@bipole at voltage@label at anchor{east} 
+				\def\pgf at circ@bipole at voltage@label at anchor{west}
+			\else \def\pgf at circ@bipole at voltage@label at anchor{east}
 			\fi
 		\fi\fi
 		\ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176
@@ -277,7 +276,7 @@
 			\else \def\pgf at circ@bipole at voltage@label at anchor{west}
 			\fi
 		\fi\fi
-		\ifnum\pgfcircmathresult >284 \ifnum\pgfcircmathresult <356
+		\ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356
 			\ifpgf at circuit@bipole at voltage@below
 				  \def\pgf at circ@bipole at voltage@label at anchor{north east}
 			\else\def\pgf at circ@bipole at voltage@label at anchor{south west}
@@ -286,7 +285,7 @@
 		\ifnum\pgfcircmathresult >-1 \ifnum\pgfcircmathresult <5
 			\ifpgf at circuit@bipole at voltage@below
 				 \def\pgf at circ@bipole at voltage@label at anchor{north}
-			\else\def\pgf at circ@bipole at voltage@label at anchor{south} 
+			\else\def\pgf at circ@bipole at voltage@label at anchor{south}
 			\fi
 		\fi\fi
 		\ifnum\pgfcircmathresult >355 \ifnum\pgfcircmathresult <361
@@ -295,7 +294,7 @@
 			\else\def\pgf at circ@bipole at voltage@label at anchor{south}
 			\fi
 		\fi\fi
-		
+
 		\ifnum \ctikzvalof{mirror value}=-1
 			\ifpgf at circuit@bipole at voltage@below
 				\pgf at circuit@bipole at voltage@belowfalse
@@ -303,7 +302,7 @@
 				\pgf at circuit@bipole at voltage@belowtrue
 			\fi
 		\fi
-		
+
 		\ifpgf at circuit@bipole at inverted
 			\ifpgf at circuit@bipole at voltage@below
 				\pgf at circuit@bipole at voltage@belowfalse
@@ -311,33 +310,32 @@
 				\pgf at circuit@bipole at voltage@belowtrue
 			\fi
 		\fi
-		
+
 		\ifpgf at circuit@bipole at voltage@below
 			\def\pgf at circ@bipole at voltage@label at where{-90}
 		\else
 			\def\pgf at circ@bipole at voltage@label at where{90}
 		\fi
-						
-		
-		\edef\pgf at temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label 
-		distance}
+
+
+		\edef\pgf at temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance}
 		\pgfkeysifdefined{\pgf at temp}
 			{ \edef\eudist{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance}} }
 			{ \edef\eudist{\ctikzvalof{voltage/european label distance}} }
-	
+
 	\pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners!
-	} %end pgfextra
+	}%end pgfextra
 
 		\ifpgf at circuit@bipole at isvoltage
-			\pgf at circ@drawvoltagegenerator 
+			\pgf at circ@drawvoltagegenerator
 		\else
-			\pgf at circ@drawvoltagegeneric 
+			\pgf at circ@drawvoltagegeneric
 		\fi
-		
+
 	%	(\ctikzvalof{bipole/name}.\pgf at circ@bipole at voltage@label at where) %Zeile sinnlos!?
 		\ifpgf at circuit@bipole at voltage@straight
 			coordinate (Vlab) at ($(pgfcirc at Vto)!0.5!(pgfcirc at Vfrom) $)
-			node [anchor=\pgf at circ@bipole at voltage@label at anchor, inner sep=2pt] 
+			node [anchor=\pgf at circ@bipole at voltage@label at anchor, inner sep=2pt]
 					  at (Vlab) { \pgf at circ@finallabels{voltage/label} }
 		\else
 		coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center) !
@@ -347,10 +345,7 @@
 				\ctikzvalof{voltage/american label distance}
 			\fi !
 			(\ctikzvalof{bipole/name}.\pgf at circ@bipole at voltage@label at where)$)
-		node [anchor=\pgf at circ@bipole at voltage@label at anchor, inner sep=2pt] 
-					  at (Vlab) { \pgf at circ@finallabels{voltage/label} }
-		
+		node [anchor=\pgf at circ@bipole at voltage@label at anchor, inner sep=2pt] at (Vlab) { \pgf at circ@finallabels{voltage/label} }
 		\fi
-		}%end drawvoltages
-
+}%end drawvoltages
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty	2017-06-05 23:19:45 UTC (rev 44487)
+++ trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty	2017-06-05 23:20:06 UTC (rev 44488)
@@ -10,8 +10,8 @@
 
 \NeedsTeXFormat{LaTeX2e}
 
-\def\pgfcircversion{0.8.2}
-\def\pgfcircversiondate{2017/05/01}
+\def\pgfcircversion{0.8.3}
+\def\pgfcircversiondate{2017/05/28}
 
 \ProvidesPackage{circuitikz}%
         [\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion]
@@ -80,11 +80,11 @@
 
 \DeclareOption{european}{
 	\ctikzset{voltage=european} \ctikzset{current=european} \ctikzset{inductor=european}
-	 \ctikzset{resistor=european} \ctikzset{logic ports=european} \ctikzset{gas filled surge arrester = european} 
+	 \ctikzset{resistor=european} \ctikzset{logic ports=european} \ctikzset{gas filled surge arrester choice = european}
 }
 
 \DeclareOption{american}{
-	\ctikzset{voltage=american} \ctikzset{current=american} \ctikzset{resistor=american} \ctikzset{inductor=american} \ctikzset{gas filled surge arrester = american}
+	\ctikzset{voltage=american} \ctikzset{current=american} \ctikzset{resistor=american} \ctikzset{inductor=american} \ctikzset{gas filled surge arrester choice = american}
 	\ctikzset{logic ports = american}
 }
 
@@ -141,11 +141,11 @@
 }
 
 \DeclareOption{americangfsurgearrester}{
-	\ctikzset{gas filled surge arrester = american}
+	\ctikzset{gas filled surge arrester choice = american}
 }
 
 \DeclareOption{europeangfsurgearrester}{
-	\ctikzset{gas filled surge arrester = european}
+	\ctikzset{gas filled surge arrester choice = european}
 }
 
 \DeclareOption{siunitx}{
@@ -311,6 +311,7 @@
 \input pgfcirclabel.tex
 \input pgfcircvoltage.tex
 \input pgfcirccurrent.tex
+\input pgfcircflow.tex
 
 \ExecuteOptions{nofetbodydiode,nofetsolderdot,nooldvoltagedirection,europeancurrents,europeanvoltages,americanports,americanresistors,cuteinductors,europeangfsurgearrester,nosiunitx,noarrowmos,smartlabels,nocompatibility}
 



More information about the tex-live-commits mailing list