summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/circuitikz
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-02-04 22:15:37 +0000
committerKarl Berry <karl@freefriends.org>2020-02-04 22:15:37 +0000
commit0d6d3d58752320a0b2ab7a41555048566e23f03c (patch)
treeaac06a103dc0dde56c03966c093601853a7f4b00 /Master/texmf-dist/doc/latex/circuitikz
parentc356197cfd9b78dd01edd4679c895f4a51f7d3b5 (diff)
circuitikz (4feb20)
git-svn-id: svn://tug.org/texlive/trunk@53667 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuitikz')
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/changelog.tex51
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdfbin877095 -> 897426 bytes
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex171
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty15
4 files changed, 236 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/circuitikz/changelog.tex b/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
index 9a745ee128c..8c56ba379dd 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
@@ -4,6 +4,57 @@ here. See \url{https://github.com/circuitikz/circuitikz/commits} for a
full list of changes.
\begin{itemize}
+\tightlist
+\item
+ Version 1.0 (2020-02-04)
+\end{itemize}
+
+And finally\ldots{} version 1.0 (2020-02-04) of \texttt{circuitikz} is
+released.
+
+The main updates since version 0.8.3, which was the last release before
+Romano started co-maintaining the project, are the following --- part
+coded by Romano, part by several collaborators around the internet:
+
+\begin{itemize}
+\item
+ The manual has been reorganized and extended, with the addition of a
+ tutorial part; tens of examples have been added all over the map.
+\item
+ Around 74 new shapes where added. Notably, now there are chips,
+ mux-demuxes, multi-terminal transistors, several types of switches,
+ flip-flops, vacuum tubes, 7-segment displays, more amplifiers, and so
+ on.
+\item
+ Several existing shapes have been enhanced; for example, logic gates
+ have a variable number of inputs, transistors are more configurable,
+ resistors can be shaped more, and more.
+\item
+ You can style your circuit, changing relative sizes, default thickness
+ and fill color, and more details of how you like your circuit to look;
+ the same you can do with labels (voltages, currents, names of
+ components and so on).
+\item
+ A lot of bugs have been squashed; especially the (very complex)
+ voltage direction conundrum has been clarified and you can choose your
+ preferred style here too.
+\end{itemize}
+
+A detailed list of changes can be seen below.
+
+\begin{itemize}
+\item
+ Version 1.0.0-pre3 (not released)
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Added a Reed switch
+ \item
+ Put the copyright and license notices on all files and update them
+ \item
+ Fixed the loading of style; we should not guard against reload
+ \end{itemize}
\item
Version 1.0.0-pre2 (2020-01-23)
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
index c0fc6167d88..88c21dac4ac 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 b0a108d60c1..fc156f1fc2b 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
@@ -5,6 +5,19 @@
% !TeX spellcheck = en_US
% !TeX encoding = utf8
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 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 files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%
+
\documentclass[a4paper, titlepage]{article}
\usepackage{a4wide} % smaller borders
\usepackage{titling}
@@ -154,7 +167,17 @@
\tableofcontents
\cleardoublepage
+
\section{Introduction}
+
+\hfill\begin{minipage}[t]{0.5\textwidth}
+ \small\slshape\raggedleft
+ Lorenzo and Mirella, 57 years ago, started a trip that eventually lead to a lot of things --- among them, \Circuitikz{} \texttt{v1.0}.
+
+ In loving memory
+ --- R.\@G.\@, 2020-02-04
+\end{minipage}
+
\subsection{About}
\Circuitikz\ was initiated by Massimo Redaelli in 2007, who was working as a research assistant at the Polytechnic University of Milan, Italy, and needed a tool for creating exercises and exams.
After he left University in 2010 the development of \Circuitikz\ slowed down, since \LaTeX\ is mainly established in the academic world. In 2015 Stefan Lindner and Stefan Erhardt, both working as research assistants at the University of Erlangen-Nürnberg, Germany, joined the team and now maintain the project together with the initial author. In 2018 Romano Giannetti, full professor of Electronics at Comillas Pontifical University of Madrid, joined the team.
@@ -162,7 +185,12 @@ After he left University in 2010 the development of \Circuitikz\ slowed down, si
The use of \Circuitikz\ is, of course, not limited to academic teaching. The package gets widely used by engineers for typesetting electronic circuits for articles and publications all over the world.
\subsection{License}
-Copyright \copyright\ 2007--2019 Massimo Redaelli. This package is author-maintained. Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3.1, or the GNU Public License. This software is provided ‘as is’, without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
+Copyright \copyright{}
+2007--2020 by Massimo Redaelli,
+2013-2020 by Stefan Erhardt,
+2015-2020 by Stefan Lindner,
+and 2018-2020 by Romano Giannetti.
+This package is author-maintained. Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3.1, or the GNU Public License. This software is provided ‘as is’, without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
\subsection{Loading the package}
\begin{table}[h]
@@ -3419,6 +3447,7 @@ These are all of the to-style type:
\circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}
\circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}
\circuitdescbip[toggleswitch]{toggle switch}{Toggle switch}{}
+ \circuitdescbip*{reed}{Reed switch}{}
\end{groupdesc}
while this is a node-style component:
@@ -4259,6 +4288,23 @@ The code that implemented the printing of the numbers (which in \texttt{muxdemux
}
\end{lstlisting}
+You can use these shapes to draw a lot of symbols that are unavailable; using a bit of \LaTeX{} command trickery you can use them quite naturally too...
+
+\begin{LTXexample}[varwidth=true]
+\def\tgate#1{
+ node[simple triangle, anchor=left, no input leads](#1-LR){}
+ (#1-LR.right) node[simple triangle, xscale=-1,
+ anchor=left](#1-RL){}
+ ([yshift=.5ex]#1-RL.btpin 1) node[ocirc]{}}
+\begin{circuitikz}[
+ simple triangle/.style={muxdemux, muxdemux def={
+ NL=1, NR=1, NB=1, NT=1, w=2, Lh=2, Rh=0,
+ }}]
+ \draw (0,0) \tgate{A} (0,-2) \tgate{B};
+ \draw (A-RL.bpin 1) -- (B-RL.tpin 1);
+\end{circuitikz}
+\end{LTXexample}
+
\subsection{Chips (integrated circuits)}
\texttt{CircuiTikZ} supports two types of variable-pin chips: DIP (Dual-in-Line Package) and QFP (Quad-Flat Package).
@@ -5933,6 +5979,28 @@ which leads to:
\end{circuitikz}
\end{LTXexample}
+Now you can check if the voltage labels are correct for your new component:
+
+\begin{LTXexample}[varwidth]
+\begin{circuitikz}[]
+ \draw (0,0) to[spring] ++(2,0)
+ to[viscoe, v=V] ++(2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+If you think they are too tight or too loose you can use a (developer-only) key to adjust the distance:
+
+\begin{LTXexample}[varwidth]
+\begin{circuitikz}
+ \ctikzset{bipoles/viscoe/voltage/additional label 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).
+
+
As a final note, notice that the \texttt{viscoe} element is already added to the standard package.
\subsection{Node-style component}
@@ -6092,6 +6160,107 @@ The best way of contributing is forking the project, adding your component in th
\end{circuitikz}
\end{LTXexample}
+\ctikzloadstyle{romano}
+\scalebox{0.707}{%
+\begin{circuitikz}[american, romano circuit style]
+ \ctikzset{bipoles/cuteswitch/thickness=0.5}
+ \draw (0,0) node[ground](GND0){} to[sV, l=$v_{cm}$] ++(0,1)
+ to [R, l=$R_c$, -*] ++(0,1.5) coordinate(vcm) --++(0,0.5) coordinate(diffc);
+ \draw (diffc) -| ++(-0.5, 0.5) to[sV,l=$v_+$, name=vplus] ++(0,1) --++(0,2)
+ -- ++(2.5,0) coordinate(skin+ a) to[battery2, l=$E_+$, name=eplus] ++(1,0)
+ to[R=$R_+$, name=rplus] ++(2,0) coordinate(skin+ b) -- ++(0.5,0)
+ -- ++(4,0) coordinate(hpin+) to[highpass] ++(2,0)
+ node[inst amp, anchor=+, noinv input up,
+ circuitikz/amplifiers/scale=1.6,
+ circuitikz/tripoles/inst amp/width=1](LNA){LNA}
+ (LNA.out);
+ \coordinate (skin- a) at (LNA.- -| skin+ a);
+ \draw (diffc) -| ++(0.5,0.5) to[sV,l_=$v_-$, name=vminus] ++(0, 1) |- (skin- a);
+ \draw (skin- a) to[battery2, l_=$E_-$, name=eminus] ++(1,0)
+ to[R, l_=$R_-$, name=rminus] ++(2,0) coordinate(skin- b) -- ++(2.5,0)
+ -- (skin- b -| hpin+) to[highpass] (LNA.-);
+ \coordinate (gnd a) at (vcm -| skin+ a);
+ \draw (vcm) -- (gnd a) to[battery2, l_=$E_\mathrm{gnd}$, name=egnd] ++(1,0)
+ to[R, l_=$R_\mathrm{gnd}$, name=rgnd] ++(2,0) coordinate(gnd b);
+ % switch set
+ \def\swdown{-3.2}
+ \draw (skin- b) ++(1,0) coordinate(sw1) to[cosw, invert, mirror, l=1, *-, name=s1] ++(0,\swdown) to[short, -*] ++(0, -1.5);
+ \draw (sw1) ++(1,0) coordinate(sw2) to[cosw, invert, mirror, l=2, *-] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw2|-skin+ b) ++(1,0) coordinate(sw3) to[short, *-] (sw3|-sw2) to[cosw, invert, mirror, l=3,] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw3) ++(1,0) coordinate(sw4) to[short, *-] (sw4|-sw2) to[cosw, invert, mirror, l=4, name=s4] ++(0,\swdown) to[short] ++(0, -1.5) coordinate(endsw);
+ \draw (gnd b) |- (endsw) node[rectjoinfill]{};
+ % boxes
+ \node [rectangle, draw, dashed, fit=(GND0) (vplus) (vpluslabel) (vminuslabel)](body){};
+ \node [anchor=south east, align=center] at (body.south east) {Body} ;
+ \node [rectangle, draw, dashed, fit=(rplus) (eplus) (epluslabel) (rpluslabel)](top){};
+ \node [rectangle, draw, dashed, fit=(eminus) (rminus) (eminuslabel) (rminuslabel)](bot){};
+ \node [anchor=center, align=center] at ($(top.south)!0.5!(bot.north)$) {electrodes} ;
+ \node [rectangle, draw, dashed, fit=(egnd) (rgnd) (egndlabel) (rgndlabel)](gnd){};
+ \node [below, align=center] at (gnd.south) {ground\\ electrode} ;
+ \node [rectangle, draw, dashed, fit=(s1) (s4label), inner ysep=8pt](switches){};
+ % ADC and micro
+ \draw (LNA.out) -- ++(0.5,0) node[msport,circuitikz/RF/scale=2](ADC){ADC};
+ \draw (ADC.right) -- ++(0.5,0) node[twoportshape, anchor=left, t=$\upmu$C](uC){};
+ \draw (uC.south) -- (uC.south |- switches.east) -- ++(-4,0)
+ node[align=left, anchor=east](DCS){\small digitally\\ controlled\\ switches};
+ \draw[-Stealth] (DCS.west) -- (switches.east);
+ % components
+ \node [anchor=north west] at ([xshift=-10pt, yshift=-5pt]switches.south east) {ADG1414};
+ \node [anchor=north west] at ([yshift=-5pt]LNA.refv down) {AD8429};
+\end{circuitikz}
+} % scalebox
+
+\begin{lstlisting}[basicstyle=\small\ttfamily]
+\ctikzloadstyle{romano}
+\scalebox{0.707}{%
+\begin{circuitikz}[american, romano circuit style]
+ \ctikzset{bipoles/cuteswitch/thickness=0.5}
+ \draw (0,0) node[ground](GND0){} to[sV, l=$v_{cm}$] ++(0,1)
+ to [R, l=$R_c$, -*] ++(0,1.5) coordinate(vcm) --++(0,0.5) coordinate(diffc);
+ \draw (diffc) -| ++(-0.5, 0.5) to[sV,l=$v_+$, name=vplus] ++(0,1) --++(0,2)
+ -- ++(2.5,0) coordinate(skin+ a) to[battery2, l=$E_+$, name=eplus] ++(1,0)
+ to[R=$R_+$, name=rplus] ++(2,0) coordinate(skin+ b) -- ++(0.5,0)
+ -- ++(4,0) coordinate(hpin+) to[highpass] ++(2,0)
+ node[inst amp, anchor=+, noinv input up,
+ circuitikz/amplifiers/scale=1.6,
+ circuitikz/tripoles/inst amp/width=1](LNA){LNA}
+ (LNA.out);
+ \coordinate (skin- a) at (LNA.- -| skin+ a);
+ \draw (diffc) -| ++(0.5,0.5) to[sV,l_=$v_-$, name=vminus] ++(0, 1) |- (skin- a);
+ \draw (skin- a) to[battery2, l_=$E_-$, name=eminus] ++(1,0)
+ to[R, l_=$R_-$, name=rminus] ++(2,0) coordinate(skin- b) -- ++(2.5,0)
+ -- (skin- b -| hpin+) to[highpass] (LNA.-);
+ \coordinate (gnd a) at (vcm -| skin+ a);
+ \draw (vcm) -- (gnd a) to[battery2, l_=$E_\mathrm{gnd}$, name=egnd] ++(1,0)
+ to[R, l_=$R_\mathrm{gnd}$, name=rgnd] ++(2,0) coordinate(gnd b);
+ % switch set
+ \def\swdown{-3.2}
+ \draw (skin- b) ++(1,0) coordinate(sw1) to[cosw, invert, mirror, l=1, *-, name=s1] ++(0,\swdown) to[short, -*] ++(0, -1.5);
+ \draw (sw1) ++(1,0) coordinate(sw2) to[cosw, invert, mirror, l=2, *-] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw2|-skin+ b) ++(1,0) coordinate(sw3) to[short, *-] (sw3|-sw2) to[cosw, invert, mirror, l=3,] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw3) ++(1,0) coordinate(sw4) to[short, *-] (sw4|-sw2) to[cosw, invert, mirror, l=4, name=s4] ++(0,\swdown) to[short] ++(0, -1.5) coordinate(endsw);
+ \draw (gnd b) |- (endsw) node[rectjoinfill]{};
+ % boxes
+ \node [rectangle, draw, dashed, fit=(GND0) (vplus) (vpluslabel) (vminuslabel)](body){};
+ \node [anchor=south east, align=center] at (body.south east) {Body} ;
+ \node [rectangle, draw, dashed, fit=(rplus) (eplus) (epluslabel) (rpluslabel)](top){};
+ \node [rectangle, draw, dashed, fit=(eminus) (rminus) (eminuslabel) (rminuslabel)](bot){};
+ \node [anchor=center, align=center] at ($(top.south)!0.5!(bot.north)$) {electrodes} ;
+ \node [rectangle, draw, dashed, fit=(egnd) (rgnd) (egndlabel) (rgndlabel)](gnd){};
+ \node [below, align=center] at (gnd.south) {ground\\ electrode} ;
+ \node [rectangle, draw, dashed, fit=(s1) (s4label), inner ysep=8pt](switches){};
+ % ADC and micro
+ \draw (LNA.out) -- ++(0.5,0) node[msport,circuitikz/RF/scale=2](ADC){ADC};
+ \draw (ADC.right) -- ++(0.5,0) node[twoportshape, anchor=left, t=$\upmu$C](uC){};
+ \draw (uC.south) -- (uC.south |- switches.east) -- ++(-4,0)
+ node[align=left, anchor=east](DCS){\small digitally\\ controlled\\ switches};
+ \draw[-Stealth] (DCS.west) -- (switches.east);
+ % components
+ \node [anchor=north west] at ([xshift=-10pt, yshift=-5pt]switches.south east) {ADG1414};
+ \node [anchor=north west] at ([yshift=-5pt]LNA.refv down) {AD8429};
+\end{circuitikz}
+} % scalebox
+\end{lstlisting}
\begin{tabular}{l}\label{ex:compatibility}
\IfFileExists{compatibility.pdf}
diff --git a/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty b/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty
index ae4035128c1..8d364404f0c 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty
+++ b/Master/texmf-dist/doc/latex/circuitikz/ctikzmanutils.sty
@@ -1,9 +1,24 @@
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 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 files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ctikzmanutils}[2019/07/26 utilities for formatting circuitikz manual]
\RequirePackage{ifthen}
\RequirePackage{xparse}
\RequirePackage{showexpl}
\RequirePackage{ragged2e}
+% for some example we need them...
+\usetikzlibrary{calc,fit}
+\RequirePackage{upgreek}
%
% The following trick is used to silence showexpl a bit, so that the
% logs are readable...