diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex | 64 |
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}{} |