summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdfbin17750 -> 17750 bytes
-rw-r--r--Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md14
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/changelog.tex34
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdfbin978781 -> 1003704 bytes
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex321
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty30
6 files changed, 365 insertions, 34 deletions
diff --git a/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf b/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
index c551b09b497..11d0fef2f0c 100644
--- a/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
+++ b/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md b/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
index 969f9946515..a24cbe44f28 100644
--- a/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
+++ b/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
@@ -1,6 +1,20 @@
<!--- 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 1.2.0 (2020-06-21)
+
+ In this release, the big change is the rewriting of the voltages output routine. Now all voltage options (american, european, and straight) take into account the shape (square border) of the component. The adjusting parameters are now (at least for passive elements) acting in similar way for all the options, too.
+
+ - Bumped version number to 1.2 (potentially incompatible changes!)
+ - Added 1.1.2 checkpoint
+ - New path-style not, buffer, and Schmitt logic ports
+ - New tutorial (using the "inline not" component)
+ - Voltage output routine rewrite; now it takes into account the shape of the component also for "american" and "straight" voltages
+ - Several fixes in the logic ports: fixed IEEE `invschmitt` name, added symmetry to the three-style shorthands for the ports, and so on
+ - Fixed a gross bug in square poles anchor borders
+ - Fixed size of not circles in flip-flops (based on logic ports style)
+ - Fixed the order of initial options, to avoid "european" overwriting single options
+
* Version 1.1.2 (2020-05-17)
- Blocks and component for three-phase networks (3-lines wire, AC/DC and DC/AC converters blocks and grid node block) added by user `@olfline` on GitHub
diff --git a/Master/texmf-dist/doc/latex/circuitikz/changelog.tex b/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
index 5a06b7c0cce..80bc730a3e1 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
@@ -5,6 +5,40 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.2.0 (2020-06-21)
+
+ In this release, the big change is the rewriting of the voltages
+ output routine. Now all voltage options (american, european, and
+ straight) take into account the shape (square border) of the
+ component. The adjusting parameters are now (at least for passive
+ elements) acting in similar way for all the options, too.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Bumped version number to 1.2 (potentially incompatible changes!)
+ \item
+ Added 1.1.2 checkpoint
+ \item
+ New path-style not, buffer, and Schmitt logic ports
+ \item
+ New tutorial (using the ``inline not'' component)
+ \item
+ Voltage output routine rewrite; now it takes into account the shape
+ of the component also for ``american'' and ``straight'' voltages
+ \item
+ Several fixes in the logic ports: fixed IEEE \texttt{invschmitt}
+ name, added symmetry to the three-style shorthands for the ports,
+ and so on
+ \item
+ Fixed a gross bug in square poles anchor borders
+ \item
+ Fixed size of not circles in flip-flops (based on logic ports style)
+ \item
+ Fixed the order of initial options, to avoid ``european''
+ overwriting single options
+ \end{itemize}
+\item
Version 1.1.2 (2020-05-17)
\begin{itemize}
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
index 62be3797649..1547fdaa575 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
index fdf6d43878e..9ecca9a39ad 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
@@ -280,6 +280,8 @@ They \texttt{use fpu reciprocal} key seems to have no side effects, but given th
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.
You can check the used version at your local installation using the macro \verb!\pgfcircversion{}!.
\begin{itemize}
+ \item After v1.2.0: voltage arrows, symbols and label positions are calculated with a rewritten routine. There should be little change, \emph{unless} you touched internal values\dots
+ \item After v1.1.3: during the 1.1.0 --- 1.1.2 version, the inverted Schmitt buffer in IEEE style ports was called \texttt{inv schmitt} (with an additional space). The correct name is \texttt{invschmitt port} (the same as the legacy american port).
\item After v1.1.2: the position of \texttt{american} voltages for the \texttt{open} bipoles (you can revert to old behavior, see section~\ref{sec:sub-voltage-position}).
\item After v0.9.7: the position of the text of transistor nodes has changed; see section~\ref{sec:transistors-labels}.
\item After v0.9.4: added the concept of styling of circuits. It should be backward compatible, but it's a big change, so be ready to use the \texttt{0.9.3} snapshot (see below for details).
@@ -294,13 +296,13 @@ 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}, \texttt{0.9.6} and \texttt{1.0}.
+ \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}, \texttt{1.0} and \texttt{1.1.2}.
To switch to use them, you simply change your \verb|\usepackage| invocation like
\begin{lstlisting}
\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}, \texttt{0.9.6} and \texttt{1.0} 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}, \texttt{1.0} and \texttt{1.1.2} are packaged; if can use it with
\begin{lstlisting}
\usemodule[circuitikz-0.8.3]
\end{lstlisting}
@@ -512,6 +514,7 @@ And finally, this is still \TikZ, so that you can freely mix other graphics elem
\end{circuitikz}
\end{LTXexample}
+\clearpage
\subsection{A more complex tutorial: circuits, Romano style.}
\begingroup % do not propagate to the rest of the manual
@@ -745,9 +748,251 @@ and you will obtain the following diagram with the exact same code (I just remov
\draw [blockdef] (vi2|-VEE) ++(0,-2) \coord(tmp)
-- node[midway, fill=white]{bloque 2} (vo2|- tmp);
\end{circuitikz}
-
\endgroup
+\clearpage
+\subsection{Tutorial: a logic circuit}
+
+\begingroup % let's keep the tutorial thing separated.
+\tikzset{sr-ff/.style={flipflop, flipflop def={
+ t1=S, t2=CP, t3=R, t4={\ctikztextnot{Q}},t6=Q, td=~, nd=1}},
+}
+\ctikzset{
+ logic ports=ieee,
+ logic ports/scale=0.7,
+}
+\newcommand*{\myblock}[1]{% the parameter will be prepended to the relevant node names
+ node[sr-ff](#1-FF){} (#1-FF.bup) node[above]{SR-FF}
+ (#1-FF.pin 1) -- ++(-1,0) node[and port, anchor=out](#1-AND1){}
+ % notice the second coordinate here, so that I have just one number
+ % to change if I want more or less space
+ (#1-FF.pin 3) -- (#1-FF.pin 3 -| #1-AND1.out) node[and port, anchor=out](#1-AND2){}
+ % go left again to put the not insert point
+ (#1-AND1.in 1) to[short, -*] ++(-1,0) coordinate(#1-in)
+ % let's position the NOT in the center to be really finicky
+ % this is using the calc tikz library
+ % ($(not up)!0.5!(not up|- #1-AND2.in 2)$) node[not port, rotate=-90](#1-NOT){}
+ % and connect it
+ % (not up) -- (#1-NOT.in) (#1-NOT.out) |- (#1-AND2.in 2)
+ % with the new path-style not
+ to[inline not] (#1-in |- #1-AND2.in 2) -- (#1-AND2.in 2);
+}
+\newcommand*{\fullcirc}[1][]{%
+\begin{circuitikz}
+ \draw (0,0) \myblock{A};
+ \draw (0,-4) \myblock{B};
+ %
+ % do the connection
+ %
+ \draw (A-AND1.in 2) to[short, -*] (A-AND2.in 1)
+ to[short, -*] (B-AND1.in 2) to[short, -*] (B-AND2.in 1)
+ -- ++(0, -2) coordinate(down) node[below]{ENABLE};
+ \draw (A-FF.pin 2) to[short, -*] (B-FF.pin 2)
+ -- (B-FF.pin 2 |- down) node[below]{CP};
+ % look at the manual again here
+ \draw (B-FF.down) to[short, -*] ++(0,-0.3) coordinate(dd);
+ \draw (A-FF.down) -- ++(0,-.5) -- ++(1.5,0) |- (dd)
+ -- (dd |- down) node[below]{RESET};
+ \draw (A-in) -- ++(-0.5, 0) node[below]{$a_0$};
+ \draw (B-in) -- ++(-0.5, 0) node[below]{$a_1$};
+ %
+ #1
+ %
+\end{circuitikz}%
+}
+
+\begin{minipage}{0.45\linewidth}
+\parskip=6pt plus 12pt minus 2pt
+
+Let's suppose we want to reproduce the circuit on the right\footnotemark, maybe as part of a more complex one.
+
+Looking at the circuit to draw, I see that there is a basic block: the flip-flop with the added three-port circuit to its left, marked with the red dashed rectangle.
+The main distance to respect here is that we want the two ANDs in line with the flip-flop inputs, so I'll start with the flip-flop and then add the rest of the block.
+
+The shapes are very similar to the IEEE logic gates (see section~\ref{sec:ieeestdports});
+after a first check, the standard size of the port is a bit too big with respect to the flip-flop, so I scale them down a bit.
+
+\begin{lstlisting}
+\ctikzset{
+ logic ports=ieee,
+ logic ports/scale=0.7,
+}
+\end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}{0.5\linewidth}
+ \fullcirc[{
+ \node[draw, red, dashed, fit=(A-in) (A-FF)]{};
+ }]
+\end{minipage}
+\footnotetext{It seems a quite popular one on \href{https://tex.stackexchange.com/q/545317/38080}{tex.stackexchange}\dots}
+
+I want a reusable block, so I will start from a coordinate and then use only relative, defining coordinates along the way.
+
+\begin{minipage}{0.7\linewidth}
+ The first thing is to define a suitable flip-flop. The standard SR~(see \ref{sec:flipflops}) is \emph{almost} what we need, but not exactly the same. So let's define a new one:
+ \begin{lstlisting}
+\tikzset{sr-ff/.style={flipflop, flipflop def={
+ t1=S, t2=CP, t3=R, t4={\ctikztextnot{Q}},
+ t6=Q, nd=1}},
+}
+ \end{lstlisting}
+\end{minipage}\hfill
+\begin{minipage}{0.2\linewidth}
+ \begin{circuitikz}[scale=0.8, transform shape]
+ \tikzset{sr-ff/.style={flipflop, flipflop def={
+ t1=S, t2=CP, t3=R, t4={\ctikztextnot{Q}},
+ t6=Q, nd=1}},
+ }
+ \node[sr-ff]{};
+ \end{circuitikz}
+\end{minipage}
+
+\begin{minipage}{0.7\linewidth}
+
+ If you look closer, you can notice that the new flip-flop has no lead in the bottom pin; this is due to the fact that there is no label here, and leads are drawn in flip-flops only if there is a label. This can be fixed by adding a blank label (like \verb|td=~|); otherwise you have to utilize the anchors on the internal ``not'' circle.
+
+\end{minipage}\hfill
+\begin{minipage}{0.2\linewidth}
+ \begin{circuitikz}[scale=0.8, transform shape]
+ \node[sr-ff]{};
+ \end{circuitikz}
+\end{minipage}
+
+Now we can add the ``and'' gates. For example, we can add the gates to the right like this:
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[]
+ \draw (0,0) node[sr-ff](FF){} (FF.bup)
+ node[above]{SR-FF};
+ \draw (FF.pin 1) -- ++(-1,0) node[and port,
+ anchor=out](AND1){}
+ (FF.pin 3) -- ++(-1,0) node[and port,
+ anchor=out](AND2){};
+\end{circuitikz}
+\end{LTXexample}
+
+You can notice a pair of things here: first of all, the use of the \texttt{anchor=out} in the port, to tell \TikZ{} that we want the node moved so that the \texttt{out} anchor is the reference one. The second one is that we have repeated the absolute shift (the \texttt{++(-1, 0)}) twice. This is a bad practice; it is much better to have the ``free'' parameters of a schematic just stated once, so that we can change them in just one point.
+
+You can of course use a macro, like \verb|\newcommand{\andshift}{(-1,0)}| but it is much more elegant to do something like this:
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[]
+ \draw (0,0) node[sr-ff](FF){} (FF.bup)
+ node[above]{SR-FF};
+ \draw (FF.pin 1) -- ++(-1,0) node[and port,
+ anchor=out](AND1){}
+ (FF.pin 3) -- (FF.pin 3 -| AND1.out)
+ node[and port, anchor=out](AND2){};
+\end{circuitikz}
+\end{LTXexample}
+
+In this snippet, the coordinate \texttt{(FF.pin 3 -| AND1.out)} is the \TikZ{} way to say ``the point which is horizontally straight from \texttt{FF.pin 3} and vertically form \texttt{AND1.out}''. That way one can change the number \texttt{-1} to move both AND ports nearer or farther away.
+
+Now we can add the not port. Since version~\texttt{1.1.3} you can use a path-style not port, so you can just say: this:
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[scale=0.8, transform shape]
+\draw (0,0) node[sr-ff](FF){} (FF.bup)
+ node[above]{SR-FF} (FF.pin 1) -- ++(-1,0)
+ node[and port, anchor=out](AND1){}
+ (FF.pin 3) -- (FF.pin 3 -| AND1.out)
+ node[and port, anchor=out](AND2){}
+ (AND1.in 1) to[short, -*] ++(-1,0) coordinate(in)
+ to[inline not] (in |- AND2.in 2) -- (AND2.in 2);
+\end{circuitikz}
+\end{LTXexample}
+
+In earlier version, you should have found the center point between the two terminal, position the ``not'' shape and ten connect it, like for example (this code must stay into the \verb|\draw| command):
+
+\begin{lstlisting}
+ % let's position the NOT in the center
+ % this is using the calc tikz library
+ ($(in)!0.5!(in |- AND2.in 2)$) node[not port, rotate=-90](NOT){}
+ % and connect it
+ (in) -- (NOT.in) (NOT.out) |- (AND2.in 2)
+\end{lstlisting}
+
+Now we have the basic block; we have to use it twice, so one of the possible way to do it is to prepare a command.
+We will change the names of the nodes and the coordinates to be different for any ``call'' of the block (another option is to use a \texttt{pic}; but this is more straightforward).
+
+\begin{lstlisting}
+\newcommand*{\myblock}[1]{% Add #1- to the node and coord names
+ node[sr-ff](#1-FF){} (#1-FF.bup) node[above]{SR-FF}
+ (#1-FF.pin 1) -- ++(-1,0) node[and port, anchor=out](#1-AND1){}
+ (#1-FF.pin 3) -- (#1-FF.pin 3 -| #1-AND1.out)
+ node[and port, anchor=out](#1-AND2){}
+ (#1-AND1.in 1) to[short, -*] ++(-1,0) coordinate(#1-in)
+ to[inline not] (#1-in |- #1-AND2.in 2) -- (#1-AND2.in 2);
+}
+\end{lstlisting}
+
+
+\begin{minipage}{0.45\linewidth}
+\parskip=6pt plus 12pt minus 2pt
+
+So now we can draw two of our blocks:
+\begin{lstlisting}
+ \draw (0,0) \myblock{A};
+ \draw (0,-4) \myblock{B};
+\end{lstlisting}
+Part of the anchors and coordinates that we have accessible are marked in red in the diagram at the side.
+
+Now we have to just connect the relevant parts and add the labels. The names of the inputs are quite easy:
+\begin{lstlisting}
+ \draw (A-in) -- ++(-0.5, 0) node[below]{$a_0$};
+ \draw (B-in) -- ++(-0.5, 0) node[below]{$a_1$};
+\end{lstlisting}
+And finally:
+\end{minipage}\hfill
+\begin{minipage}{0.5\linewidth}
+ \begingroup
+ \def\showcoord(#1)<#2:#3>{%
+ node[circle, red, draw, inner sep=1pt,pin={%
+ [red, inner sep=0.5pt, font=\small,
+ pin distance=#3cm, pin edge={red, }%
+ ]#2:#1}](){}}
+ \begin{circuitikz}[]
+ \draw (0,0) \myblock{A};
+ \draw (0,-4) \myblock{B};
+ \foreach \b in {A, B}
+ \foreach \n in {in, AND1.in 2, AND2.in 1, FF.pin 2, FF.down}
+ \path (\b-\n) \showcoord(\b-\n)<45:0.6>;
+ \end{circuitikz}
+ \endgroup
+\end{minipage}
+
+\begin{lstlisting}
+ \draw (A-AND1.in 2) to[short, -*] (A-AND2.in 1)
+ to[short, -*] (B-AND1.in 2) to[short, -*] (B-AND2.in 1)
+ -- ++(0, -2) coordinate(down) node[below]{ENABLE};
+ \draw (A-FF.pin 2) to[short, -*] (B-FF.pin 2)
+ -- (B-FF.pin 2 |- down) node[below]{CP};
+ \draw (B-FF.down) to[short, -*] ++(0,-0.3) coordinate(dd);
+ \draw (A-FF.down) -- ++(0,-.5) -- ++(1.5,0) |- (dd)
+ -- (dd |- down) node[below]{RESET};
+\end{lstlisting}
+
+Will create the final diagram:
+
+\begin{circuitikz}[scale=0.8, transform shape]
+ \draw (0,0) \myblock{A};
+ \draw (0,-4) \myblock{B};
+ %
+ % do the connection
+ %
+ \draw (A-AND1.in 2) to[short, -*] (A-AND2.in 1)
+ to[short, -*] (B-AND1.in 2) to[short, -*] (B-AND2.in 1)
+ -- ++(0, -2) coordinate(down) node[below]{ENABLE};
+ \draw (A-FF.pin 2) to[short, -*] (B-FF.pin 2)
+ -- (B-FF.pin 2 |- down) node[below]{CP};
+ % look at the manual again here
+ \draw (B-FF.down) to[short, -*] ++(0,-0.3) coordinate(dd);
+ \draw (A-FF.down) -- ++(0,-.5) -- ++(1.5,0) |- (dd)
+ -- (dd |- down) node[below]{RESET};
+ \draw (A-in) -- ++(-0.5, 0) node[below]{$a_0$};
+ \draw (B-in) -- ++(-0.5, 0) node[below]{$a_1$};
+ %
+\end{circuitikz}
+\endgroup
\section{The components}
@@ -1618,12 +1863,12 @@ Notice that source and generators are divided in three classes that can be style
\subsubsection{Stationary sources}
\begin{groupdesc}
- \circuitdescbip*[vsource]{european voltage source}{Voltage source (european style)}{}
+ \circuitdescbip*[vsource]{european voltage source}{Voltage source (european style)}{vsource}
\circuitdescbip*[vsourceC]{cute european voltage source}{Voltage source (cute european style)}{vsourceC, ceV}
- \circuitdescbip*[vsourceAM]{american voltage source}{Voltage source (american style)}{}
- \circuitdescbip*[isource]{european current source}{Current source (european style)}{}
+ \circuitdescbip*[vsourceAM]{american voltage source}{Voltage source (american style)}{vsourceAM}
+ \circuitdescbip*[isource]{european current source}{Current source (european style)}{isource}
\circuitdescbip*[isourceC]{cute european current source}{Current source (cute european style)}{isourceC, ceI}
- \circuitdescbip*[isourceAM]{american current source}{Current source (american style)}{}
+ \circuitdescbip*[isourceAM]{american current source}{Current source (american style)}{isourceAM}
\end{groupdesc}
\begin{framed}
@@ -1649,12 +1894,12 @@ Similarly, if (default behaviour) \texttt{europeanvoltages} option is active (or
\subsubsection{Controlled sources}
\begin{groupdesc}
- \circuitdescbip*[cvsource]{european controlled voltage source}{Controlled voltage source (european style)}{}
+ \circuitdescbip*[cvsource]{european controlled voltage source}{Controlled voltage source (european style)}{cvsource}
\circuitdescbip*[cvsourceC]{cute european controlled voltage source}{Voltage source (cute european style)}{cvsourceC, cceV}
- \circuitdescbip*[cvsourceAM]{american controlled voltage source}{Controlled voltage source (american style)}{}
- \circuitdescbip*[cisource]{european controlled current source}{Controlled current source (european style)}{}
+ \circuitdescbip*[cvsourceAM]{american controlled voltage source}{Controlled voltage source (american style)}{cvsourceAM}
+ \circuitdescbip*[cisource]{european controlled current source}{Controlled current source (european style)}{cisource}
\circuitdescbip*[cisourceC]{cute european controlled current source}{Current source (cute european style)}{cisourceC, cceI}
- \circuitdescbip*[cisourceAM]{american controlled current source}{Controlled current source (american style)}{}
+ \circuitdescbip*[cisourceAM]{american controlled current source}{Controlled current source (american style)}{cisourceAM}
\circuitdescbip*[ecsource]{empty controlled source}{Empty controlled source}{ecsource}
\end{groupdesc}
@@ -3885,7 +4130,7 @@ Logic gates, with two or more input, are supported. Albeit in principle these co
\circuitdesc*{american not port}{American \textsc{not} port}{}
\end{groupdesc}
-There is no ``european'' version of the following symbols (but you can probably use the \texttt{schmitt symbol} of the IEEE standard ports.
+There is no ``european'' version of the following symbols; for now they are used both in \texttt{american} and \texttt{european} styles, but iy may change in the future.
\begin{groupdesc}
\circuitdesc*{schmitt}{Non-Inverting Schmitt trigger}{}
@@ -3910,7 +4155,7 @@ These ports are completely independent from the legacy set (either \texttt{ameri
\circuitdesc*{ieeestd buffer port}{IEEE standard buffer port}{}(in 1/180/0.2, bin 1/-155/0.2, up/30/0.2, down/-30/0.2)
\circuitdesc*{ieeestd not port}{IEEE standard ``not'' port}{}(in/180/0.2, bin/-155/0.2, out/0/0.2, bout/45/0.2)
\circuitdesc*{ieeestd schmitt port}{Schmitt port matched to IEEE standard ports}{}(in/180/0.2, out/0/0.2, bout/45/0.2)
- \circuitdesc*{ieeestd inv schmitt port}{Inverting Schmitt port matched to IEEE standard ports}{}
+ \circuitdesc*{ieeestd invschmitt port}{Inverting Schmitt port matched to IEEE standard ports}{}
\circuitdesc*{notcirc}{Inverting dot for IEEE ports}{}(west/180/0.1, east/0/0.1)
\circuitdesc*{schmitt symbol}{Schmitt symbol to add to input pins if needed}{}(north west/145/0.1, south east/-45/0.1)
\end{groupdesc}
@@ -3928,15 +4173,37 @@ These ports are completely independent from the legacy set (either \texttt{ameri
\end{groupdesc}
\begin{framed}
-If (default behaviour) \texttt{americanports} option is active (or the style \texttt{[american ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{not port}, \texttt{nand port}, \texttt{not port}, \texttt{xor port}, and \texttt{xnor port} are equivalent to the american version of the respective logic port.
+If (default behaviour) \texttt{americanports} option is active (or the style \texttt{[american ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{buffer port}, \texttt{nand port}, \texttt{nor port}, \texttt{not port}, \texttt{xor port}, \texttt{xnor port}, \texttt{schmitt port} and \texttt{invschmitt port} are equivalent to the american version of the respective logic port.
-If otherwise \texttt{europeanports} option is active (or the style \texttt{[european ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{not port}, \texttt{nand port}, \texttt{not port}, \texttt{xor port}, and \texttt{xnor port} are equivalent to the european version of the respective logic port.
+If otherwise \texttt{europeanports} option is active (or the style \texttt{[european ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{buffer port}, \texttt{nand port}, \texttt{nor port}, \texttt{not port}, \texttt{xor port}, \texttt{xnor port} are equivalent to the european version of the respective logic port; \texttt{schmitt port} and \texttt{invschmitt port} are the same as in \texttt{american ports} style.
Finally, for version \texttt{1.1.0} and up, you can use the style \texttt{ieee ports} to set the shorthands to the set of \texttt{ieeestd} ports. (There is no global option for this).
\end{framed}
+\subsubsection{Path-style logic ports}
+
+The one-input, one-output ports have a handy path-style equivalent; they are the following:
+
+\begin{groupdesc}
+ \ctikzset{logic ports=ieee}
+ \circuitdescbip*{inline not}<not port>{``not'' logic port}{}
+ \circuitdescbip*{inline buffer}<buffer port>{``buffer'' logic port}{}
+ \circuitdescbip*{inline schmitt}<schmitt port>{Schmitt logic port}{}
+ \circuitdescbip*{inline invschmitt}<invschmitt port>{Inverting Schmitt logic port}{}
+\end{groupdesc}
+
+Those ports follows the current selected style, although you can change it on the fly (even if it has not a lot of sense); you can apply labels, annotations and (again, not a lot of sense) voltages to them. The assigned value is typeset as if it were the main text of the node.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[american]
+ \ctikzset{logic ports=ieee}
+ \draw (0,0) to[inline not=I1, l=label, v=$\Delta V$] ++(2,0);
+ \draw (0,-2) to[inline not, a=ann, european ports] ++(2,0);
+\end{circuitikz}
+\end{LTXexample}
+
-\subsubsection{American port usage}
+\subsubsection{American ports usage}
Since version \texttt{1.0.0}, the default shape of the family of american ``or'' ports has changed to a more ``pointy'' one, for better distinguish them from the ``and''-type ports. You can still going back to the previous aspect with the key \texttt{american or shape} that can be set to \texttt{pointy} or \texttt{roundy}. The \texttt{legacy} style will enact the old, roundy style also.
@@ -4023,7 +4290,7 @@ This is useful if you need to draw a generic port, like the one following here:
\end{circuitikz}
\end{LTXexample}
-The flag works also for the european-style ports, and it suppress only the input leads because the negated ports in european style are ill-specified if you do not draw the output leads (and moreover, it seems really less useful).
+In an analogous manner, there is a setting \texttt{logic ports draw output leads} (and a corresponding style \texttt{no output leads}) that suppresses the drawing of the output lead. A shortcut boolean key \texttt{logic ports draw leads} will suppress or enable all leads (the corresponding styles are \texttt{no leads} and \texttt{all leads}).
You can tweak the appearance of american ``or'' family (\texttt{or}, \texttt{nor}, \texttt{xor} and \texttt{xnor}) ports, too, with the parameters \texttt{inner} (how much the base circle go ``into'' the shape, default 0.3) and \texttt{angle} (the angle at which the base starts, default 70).
@@ -4133,6 +4400,18 @@ In the case of \textsc{not}, there are only \texttt{in} and \texttt{out} (althou
;\end{circuitikz}
\end{LTXexample}
+This last circuit could be drawn also (and probably in a more natural manner) using the path-style components:
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[american]
+ \draw (0,0) node[ground]{} to[C] ++(0,1.5)
+ coordinate(c)
+ to[inline not] ++(2.5,0) -- ++(0,1)
+ -| ++(-5,-1)
+ to[inline not] (c);
+\end{circuitikz}
+\end{LTXexample}
+
@@ -5593,7 +5872,7 @@ Use option \texttt{americanvoltage} or set \verb![american voltages]! or use the
\end{circuitikz}
\end{LTXexample}
-You can fine-tune the position of the \texttt{+} and \texttt{-} symbols and the label in independent way using \texttt{voltage/shift} (default \texttt{0.0} for the former and \texttt{voltage/american label distance} (the distance of the label form the lines of the symbols, default \texttt{1.1}) for the latter.
+You can fine-tune the position of the \texttt{+} and \texttt{-} symbols and the label in independent way using \texttt{voltage/shift} (default \texttt{0.0} for the former and \texttt{voltage/american label distance} (the distance of the label form the lines of the symbols, default \texttt{1.4}) for the latter.
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}[american voltages]
@@ -5684,7 +5963,7 @@ This could be especially useful if you define a style, to use like this:
\tikz \draw (0,0) to[C, i=$\imath$] (2,0);
\end{LTXexample}
-However, you can override the properties \texttt{voltage/distance from node} (how distant from the initial and final points of the path the arrow starts and ends) and \texttt{voltage/bump b} (how high the bump of the arrow is --- how curved it is)\footnote{Prior to 0.9.4 you had also \texttt{voltage/european label distance} (how distant from the bipole the voltage label will be) but this is deprecated, and the european-style label is printed near the bump)} on a per-component basis, in order to fine-tune the voltages:
+However, you can override the properties \texttt{voltage/distance from node} (how distant from the initial and final points of the path the arrow starts and ends, default \texttt{0.5}) and \texttt{voltage/bump b} (how high the bump of the arrow is --- how curved it is, default \texttt{1.5}), and also \texttt{voltage/european label distance} (how distant from the ``bump'' the voltage label will be, default \texttt{1.4}) on a per-component basis, in order to fine-tune the voltages:
\begin{LTXexample}[varwidth=true]
@@ -6572,13 +6851,13 @@ If you think they are too tight or too loose you can use a (developer-only) key
\begin{LTXexample}[varwidth]
\begin{circuitikz}
- \ctikzset{bipoles/viscoe/voltage/additional label shift/.initial=1}
+ \ctikzset{bipoles/viscoe/voltage/additional shift/.initial=1}
\draw (0,0) to[spring] ++(2,0)
to[viscoe, v=V] ++(2,0);
\end{circuitikz}
\end{LTXexample}
-Notice that by default the key \texttt{bipoles/\emph{mybipole}/voltage/additional label shift} is not defined, so if you want to use it you must create it before (this is the meaning of the \texttt{.initial} here).
+Notice that by default the key \texttt{bipoles/\emph{mybipole}/voltage/additional shift} is not defined, so if you want to use it you must create it before (this is the meaning of the \texttt{.initial} here).
As a final note, notice that the \texttt{viscoe} element is already added to the standard package.
diff --git a/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty b/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty
index 8d364404f0c..38bf7716fcd 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty
+++ b/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty
@@ -81,14 +81,17 @@
\checkclass{N}%
}%
}
-% description of a path-style component:
+% description of a path-style bipole component:
% optional: main name, if different from above
-% mandatory component name, description, comma separated alias
+% mandatory component name
+% optional between <>: shapename, if note "nodeshape"
+% mandatory description, comma separated alias
% optional between (): anchor specification list
% optional between []: internal nodes specification list
-\NewDocumentCommand{\circuitdescbip}{s o m m m d() d[]}
+% 1 2 3 4 5 6 7 8
+\NewDocumentCommand{\circuitdescbip}{s o m d<> m m d() d[]}
{
-\index{#3} \tikz\foreach \i in {#5} {\index{\i|see{#3}} };
+\index{#3} \tikz\foreach \i in {#6} {\index{\i|see{#3}} };
\twopartbox{%
\begin{circuitikz}
\IfBooleanTF{#1}{%
@@ -96,22 +99,23 @@
}{
\draw (0,0) to[#3, name=B] (2,0);
}
- \IfValueT{#6}{%
- \foreach \n/\a/\d in {#6} \path(B.\n) \showcoord(\n)<\a:\d>;
+ \IfValueT{#7}{%
+ \foreach \n/\a/\d in {#7} \path(B.\n) \showcoord(\n)<\a:\d>;
}
- \IfValueT{#7}{%
- \foreach \n/\a/\d in {#7} \path(B-\n) \showcoordb(B-\n)<\a:\d>;
+ \IfValueT{#8}{%
+ \foreach \n/\a/\d in {#8} \path(B-\n) \showcoordb(B-\n)<\a:\d>;
}
\end{circuitikz}%
}{\sloppy%
- \texttt{\textbf{#3}}: #4, \texttt{type: path-style\IfBooleanT{#1}{, fillable}%
- \IfValueT{#7}{, \texttt{name=B}}%
+ \texttt{\textbf{#3}}: #5, \texttt{type: path-style\IfBooleanT{#1}{, fillable}%
+ \IfValueT{#8}{, \texttt{name=B}}%
+ \IfValueTF{#4}{, nodename: #4.}{
\IfValueTF{#2}{, nodename: #2shape.%\drawphantomshape{#2shape}%
}{, nodename: #3shape.%\drawphantomshape{#3shape}%
- }%
+ }}%
}%
- \ifthenelse{\equal{#5}{}}{ }{%
- Aliases: \texttt{#5}. }\checkclass{B}%
+ \ifthenelse{\equal{#6}{}}{ }{%
+ Aliases: \texttt{#6}. }\checkclass{B}%
}%
}