summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex')
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex64
1 files changed, 60 insertions, 4 deletions
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
index fc156f1fc2b..1475ffc16f0 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
@@ -248,6 +248,33 @@ Correcting this will need a big rewrite of the path routines, and although the a
This same issue create a lot of problem of compatibility between \Circuitikz{} and the new \texttt{pic} Ti\emph{k}Z feature, so basically don't put components into \texttt{pic}s.
+\subsection{Scale factors inaccuracies}\label{sec:usefpu}
+
+Sometimes, when using fractional scaling factors and big values for the coordinates, the basic layer inaccuracies from \TeX{} can bite you, producing results like the following one:
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}[scale=1.2, transform shape,
+ ]
+ \draw (60,1) to [battery2, v_=$V_{cc}$, name=B] ++(0,2);
+ \node[draw,red,circle,inner sep=4pt] at(B.left) {};
+ \node[draw,red,circle,inner sep=4pt] at(B.right) {};
+\end{circuitikz}
+\end{LTXexample}
+
+A general solution for this problem is difficult to find; probably the best approach is to use a \verb|scalebox| command to scale the circuit instead of relying on internal scaling.
+
+Nevertheless, \href{https://tex.stackexchange.com/a/529159/38080}{Schrödinger's cat} found a solution which has been ported to \Circuitikz: you can use the key \texttt{use fpu reciprocal} which will patch a standard low-level math routine with a more precise one.
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}[scale=1.2, transform shape,
+ use fpu reciprocal,
+ ]
+\draw (60,1) to [battery2, v_=$V_{cc}$] ++(0,2);
+\end{circuitikz}
+\end{LTXexample}
+
+They \texttt{use fpu reciprocal} key seems to have no side effects, but given that it is patching an internal interface of \TikZ{} it can break any time, so it is advisable to use it only if and when needed.
+
\subsection{Incompabilities between version}
Here, we will provide a list of incompabilitys between different version of circuitikz. We will try to hold this list short, but sometimes it is easier to break with old syntax than including a lot of switches and compatibility layers.
@@ -266,14 +293,15 @@ You can check the used version at your local installation using the macro \verb!
If you have older projects that show compatibility problems, you have two options:
\begin{itemize}
\item you can use an older version locally using the git-version and picking the correct commit from the repository (branch gh-pages) or the main GitHub site directly;
- \item if you are using \LaTeX, the distribution has embedded several important old versions: \texttt{0.4}, \texttt{0.6}, \texttt{0.7}, \texttt{0.8.3}, \texttt{0.9.3} and \texttt{0.9.6}. To switch to use them, you simply change your \verb|\usepackage| invocation like
+ \item if you are using \LaTeX, the distribution has embedded several important old versions: \texttt{0.4}, \texttt{0.6}, \texttt{0.7}, \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6} and \texttt{1.0}.
+ To switch to use them, you simply change your \verb|\usepackage| invocation like
\begin{lstlisting}
- \usepackage[]{circuitik-0.8.3} % or circuitikz-0.4, 0.6...
+ \usepackage[]{circuitikz-0.8.3} % or circuitikz-0.4, 0.6...
\end{lstlisting}
You have to take care of the options that may have changed between versions;
- \item if you are using \ConTeXt, only versions \texttt{0.8.3}, \texttt{0.9.3} and \texttt{0.9.6} are packaged for now; if can use it with
+ \item if you are using \ConTeXt, only versions \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6} and \texttt{1.0} are packaged for now; if can use it with
\begin{lstlisting}
- \usemodule[circuitik-0.8.3]
+ \usemodule[circuitikz-0.8.3]
\end{lstlisting}
\end{itemize}
@@ -1268,6 +1296,7 @@ If you want that the arrows behave like the legacy symbols (which are shapes), \
\circuitdescbip{short}{Short circuit}{}
\circuitdescbip{open}{Open circuit}{}
\circuitdescbip*{generic}{Generic (symmetric) bipole}{}
+ \circuitdescbip*{xgeneric}{Crossed generic (symmetric) bipole}{}
\circuitdescbip*{tgeneric}{Tunable generic bipole}{}
\circuitdescbip*{ageneric}{Generic asymmetric bipole}{}
\circuitdescbip*{memristor}{Memristor}{Mr}
@@ -1551,6 +1580,30 @@ You can change the scale of the diodes by setting the key \texttt{diodes/scale}
\end{circuitikz}
\end{LTXexample}
+You can change the direction of the LEDs and photodiodes' arrows by using the binary keys \texttt{led arrows from cathode} and \texttt{pd arrows to cathode} (the default are \texttt{led arrows from anode} and \texttt{pd arrows to anode}), as you can see in the following example.
+
+\begin{LTXexample}[varwidth=true]
+ \begin{circuitikz}
+ \ctikzset{led arrows from anode} % default
+ \ctikzset{pd arrows to anode} % default
+ \ctikzset{full diodes}
+ \draw (0,0) to[leD] ++(1.5,0) to[pD] ++(1.5,0);
+ \ctikzset{stroke diodes}
+ \draw (0,-1) to[leD] ++(1.5,0) to[pD] ++(1.5,0);
+ \ctikzset{empty diodes}
+ \draw (0,-2) to[leD] ++(1.5,0) to[pD] ++(1.5,0);
+
+ \ctikzset{led arrows from cathode}
+ \ctikzset{pd arrows to cathode}
+ \ctikzset{full diodes}
+ \draw (0,-4) to[leD] ++(1.5,0) to[pD] ++(1.5,0);
+ \ctikzset{stroke diodes}
+ \draw (0,-5) to[leD] ++(1.5,0) to[pD] ++(1.5,0);
+ \ctikzset{empty diodes}
+ \draw (0,-6) to[leD] ++(1.5,0) to[pD] ++(1.5,0);
+ \end{circuitikz}
+\end{LTXexample}
+
\subsection{Sources and generators}
Notice that source and generators are divided in three classes that can be styled independently: traditional battery symbols (class \texttt{batteries}), independent generators (class \texttt{sources}) and dependent generators (class \texttt{csources}). This is because they are often treated differently, and so you can choose to, for example, fill the dependent sources but not the independent ones.
@@ -1922,8 +1975,11 @@ Here you'll find bipoles that are not easily grouped in the categories above.
\circuitdescbip*{afuse}{Asymmetric fuse}{asymmetric fuse}
\circuitdescbip{squid}{Squid}{}
\circuitdescbip{barrier}{Barrier}{}
+ \circuitdescbip{openbarrier}{Open barrier}{}
\end{groupdesc}
+ You can tune how big is the gap in the \texttt{openbarrier} component by setting the key \texttt{bipoles/openbarrier/gap} (default value \texttt{0.5}; \texttt{0} means no gap and \texttt{1} full gap).
+
\begin{groupdesc}
\circuitdescbip*{european gas filled surge arrester}{European gas filled surge arrester}{}
\circuitdescbip*{american gas filled surge arrester}{American gas filled surge arrester}{}