diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/circuitikz/CHANGELOG | 3 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/circuitikz/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf | bin | 259777 -> 262410 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex | 56 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty | 22 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty | 172 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty | 2 |
7 files changed, 250 insertions, 7 deletions
diff --git a/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG b/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG index fd3ead44653..619f95681d8 100644 --- a/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG +++ b/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG @@ -1,5 +1,8 @@ CircuiTikz - Changelog +* Version 0.2.1 - 20090503 + - Op-amps added + - added options arrowmos and noarrowmos, to add arrows to pmos and nmos * Version 0.2 - 20090417 First public release on CTAN - *Backward incompatibility*: labels ending with \texttt{:}\textit{angle} are not parsed for positioning anymore. diff --git a/Master/texmf-dist/doc/latex/circuitikz/README b/Master/texmf-dist/doc/latex/circuitikz/README index 78ee622c266..a03af7bda4a 100644 --- a/Master/texmf-dist/doc/latex/circuitikz/README +++ b/Master/texmf-dist/doc/latex/circuitikz/README @@ -1,4 +1,4 @@ -This is CircuiTikz, version 0.2. +This is CircuiTikz, version 0.2.1. This package provides a set of macros for naturally typesetting electrical and (somewhat less naturally, perhaps) electronical networks. diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf Binary files differindex a5c6bd193ea..0b687addc0b 100644 --- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf +++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex index 3a81f19564f..8ae502a7706 100644 --- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex +++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex @@ -1,4 +1,4 @@ -\documentclass{article} +\documentclass[a4paper]{article} \usepackage[siunitx]{circuitikz} \usepackage{showexpl} @@ -6,7 +6,7 @@ \usepackage{hyperref} \hypersetup{ bookmarks=false, % show bookmarks bar? - pdftitle={CircuitTikZ v. 2.0 - manual}, % title + pdftitle={CircuitTikZ v. 0.2.1 - manual}, % title pdfauthor={Massimo Redaelli}, % author pdfsubject={CircuitTikZ manual}, % subject of the document pdfkeywords={}, % list of keywords @@ -32,7 +32,7 @@ \lstset{frameround=fttt} \lstloadlanguages{TeX} -\title{Circui\TikZ \\{\large version 0.2}} +\title{Circui\TikZ \\{\large version 0.2.1}} \author{Massimo A. Redaelli} \date{\today} @@ -97,8 +97,13 @@ None, as far as I know. \item \texttt{nosiunitx}: labels are not interpreted as above; \item \texttt{fulldiode}: the various diodes are drawn \emph{and} filled by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Un-filled diode can always be forced with \texttt{Do}, \texttt{sDo}, \ldots \item \texttt{emptydiode}: the various diodes are drawn \emph{but not} filled by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Filled diode can always be forced with \texttt{D*}, \texttt{sD*}, \ldots + \item \texttt{arrowmos}: pmos and nmos have arrows analogous to those of pnp and npn transistors; + \item \texttt{noarrowmos}: pmos and nmos do not have arrows analogous to those of pnp and npn transistors. \end{itemize} +Loading the package with no options is equivalent to:\\ + \verb!\usepackage[european, nosiunitx, noarrowmos]{circuitikz}!. + \section{The components} Here follows the list of all the shapes defined by Circui\TikZ. These are all \texttt{pgf} nodes, so they are usable in both \texttt{pgf} and \TikZ. @@ -238,6 +243,14 @@ One can also use the related styles \texttt{[european current]} [resp. \texttt{[ \circuititem{pnp}{pnp}{} \end{itemize} +If the option \texttt{arrowmos} is used (or after the commant \verb!\ctikzset{tripoles/mos style/arrows}! is given), this is the output: +\ctikzset{tripoles/mos style/arrows} +\begin{itemize} + \circuititem{nmos}{nmos}{} + \circuititem{pmos}{pmos}{} +\end{itemize} +\ctikzset{tripoles/mos style/no arrows} + \subsection{Double bipoles} \begin{itemize} @@ -260,6 +273,11 @@ One can also use the related styles \texttt{[european current]} [resp. \texttt{[ \end{itemize} +\subsection{Operational Amplifier} +\begin{itemize} + \circuititem{op amp}{Operational amplifier}{} +\end{itemize} + \subsection{Support shapes} \begin{itemize} @@ -815,6 +833,31 @@ Here is one composite example: ;\end{circuitikz} \end{LTXexample} +\paragraph{Operational amplifier} The op amp defines the inverting input (\texttt{-}), the non-inverting input (\texttt{+}) and the output (\texttt{out}) anchors: + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz} \draw + (0,0) node[op amp] (opamp) {} + (opamp.+) node[left] {$v_+$} + (opamp.-) node[left] {$v_-$} + (opamp.out) node[right] {$v_o$} +;\end{circuitikz} +\end{LTXexample} + +There are also two more anchors defined, \texttt{up} and \texttt{down}, for the power supplies: +\begin{LTXexample}[varwidth=true] +\begin{circuitikz} \draw + (0,0) node[op amp] (opamp) {} + (opamp.+) node[left] {$v_+$} + (opamp.-) node[left] {$v_-$} + (opamp.out) node[right] {$v_o$} + (opamp.down) node[ground] {} + (opamp.up) ++ (0,.5) node[above] {\SI{12}{\volt}} + -- (opamp.up) +;\end{circuitikz} +\end{LTXexample} + + \paragraph{Double bipoles} All the (few, actually) double bipoles/quadrupoles have the four anchors, two for each port. The first port, to the left, is port \texttt{A}, having the anchors \texttt{A1} (up) and \texttt{A2} (down); same for port \texttt{B}. They also expose the \texttt{base} anchor, for labelling: @@ -1058,6 +1101,13 @@ And yes: this is a bug and \emph{not} a feature\ldots \section{Revision history} \begin{itemize} +\item[\itshape version 0.2.1] (20090503). + \begin{enumerate} + \item Op-amps added. + \item Added options \texttt{arrowmos} and \texttt{noarrowmos}. + \end{enumerate} + + \item[\itshape version 0.2] First public release on CTAN (20090417). \begin{enumerate} \item \textbf{Backward incompatibility}: labels ending with \texttt{:}\textit{angle} are not parsed for positioning anymore. diff --git a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty index e3feb982875..1ff69513393 100644 --- a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty +++ b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty @@ -10,7 +10,7 @@ \NeedsTeXFormat{LaTeX2e} -\def\pgfcircversion{0.2} +\def\pgfcircversion{0.2.1} \ProvidesPackage{circuitikz}% [2009/04/17 The CircuiTikz circuit drawing package version \pgfcircversion] @@ -68,6 +68,15 @@ \pgf@circ@siunitxfalse } +\DeclareOption{arrowmos}{ + \pgf@circuit@mos@arrowstrue +} + +\DeclareOption{noarrowmos}{ + \pgf@circuit@mos@arrowsfalse +} + + %% Keys \newcommand{\pgf@circ@comment}[1]{} @@ -145,6 +154,10 @@ \ctikzset{bipoles/not port/height/.initial=.8} \ctikzset{bipoles/not port/circle width/.initial=.15} +\newif\ifpgf@circuit@mos@arrows +\ctikzset{tripoles/mos style/.is choice} +\ctikzset{tripoles/mos style/no arrows/.code={\pgf@circuit@mos@arrowsfalse}} +\ctikzset{tripoles/mos style/arrows/.code={\pgf@circuit@mos@arrowstrue}} \ctikzset{tripoles/nmos/width/.initial=.7} \ctikzset{tripoles/nmos/gate height/.initial=.35} \ctikzset{tripoles/nmos/base height/.initial=.5} @@ -221,6 +234,11 @@ \ctikzset{tripoles/xnor port/ccc/.initial=.5} \ctikzset{tripoles/xnor port/ddd/.initial=.0} \ctikzset{tripoles/xnor port/circle width/.initial=.15} +\ctikzset{tripoles/op amp/width/.initial=1.7} +\ctikzset{tripoles/op amp/port width/.initial=.7} +\ctikzset{tripoles/op amp/height/.initial=1.4} +\ctikzset{tripoles/op amp/input height/.initial=.5} +\ctikzset{tripoles/op amp/up pos/.initial=.45} \ctikzset{quadpoles/transformer/width/.initial=1.5} \ctikzset{quadpoles/transformer/height/.initial=1.5} @@ -339,7 +357,7 @@ -\ExecuteOptions{european, nosiunitx} +\ExecuteOptions{european, nosiunitx, noarrowmos} \ProcessOptions diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty index 641dd0c40e6..cc32b915ad1 100644 --- a/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty +++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty @@ -524,6 +524,24 @@ \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope + + \ifpgf@circuit@mos@arrows + \pgfscope + \pgfslopedattimetrue + \pgfallowupsidedownattimetrue + \pgftransformlineattime{.6}{% + \pgfpoint% + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left}% + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}% + }{% + \pgfpoint + {\pgf@circ@res@right}% + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}% + } + \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} + \endpgfscope + \fi + \pgfmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left} @@ -557,6 +575,23 @@ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}} \pgfusepath{draw} + \ifpgf@circuit@mos@arrows + \pgfscope + \pgfslopedattimetrue + \pgfallowupsidedownattimetrue + \pgftransformlineattime{.4}{% + \pgfpoint% + {\pgf@circ@res@right}% + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}% + }{% + \pgfpoint + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left}% + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}% + } + \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} + \endpgfscope + \fi + \pgfscope \pgfmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} @@ -746,4 +781,141 @@ } + + + + + + + + + + + + + + + + + + + +\pgfdeclareshape{op amp} + { + \anchor{center}{\pgfpointorigin} + \savedanchor\northwest{% + \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} + \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y + \pgf@y=.5\pgf@y + \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} + \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x + \pgf@x=.5\pgf@x + } + \anchor{south}{ + \northwest + \pgf@y=-\pgf@y + } + \savedanchor\left{% + \pgf@y=0pt + } + \savedanchor\inOne{% + \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} + \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y + \pgf@y=.5\pgf@y + \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@y + \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} + \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x + \pgf@x=.5\pgf@x + } + \anchor{-}{ + \inOne + } + \anchor{+}{ + \inOne + \pgf@y=-\pgf@y + } + \savedanchor\up{% + \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} + \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y + \pgf@y=.5\pgf@y + \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} + \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x + \pgf@x=.5\pgf@x + \pgf@circ@res@up = \pgf@y + \pgf@circ@res@right = -\pgf@x + \pgf@circ@res@left = \pgf@x + \pgfpointlineattime{ + \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/up pos}}{ + \pgfpoint{ + \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} + {\pgf@circ@res@up}} + {\pgfpoint{.7\pgf@circ@res@right}{0pt}} + } + \anchor{up}{ + \up + } + \anchor{down}{ + \up + \pgf@y=-\pgf@y + } + \anchor{out}{ + \northwest + \pgf@y=0pt + \pgf@x=-\pgf@x + } + + \backgroundpath{ + \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} + + + \northwest + \pgf@circ@res@up = \pgf@y + \pgf@circ@res@down = -\pgf@y + \pgf@circ@res@right = -\pgf@x + \pgf@circ@res@left = \pgf@x + + \pgfpathmoveto{\pgfpoint + {\pgf@circ@res@left} + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} + \pgfpathlineto{\pgfpoint + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} + \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}]{\ $-$} + + + \pgfpathmoveto{\pgfpoint + {\pgf@circ@res@left} + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} + {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} + \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}]{\ $+$} + + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} + \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} + + \pgfusepath{draw} + + + \pgfscope + \pgfsetlinewidth{2\pgflinewidth} + \pgftransformxshift{.7\pgf@circ@res@left} + \pgf@circ@res@step=\pgf@circ@res@right + \advance\pgf@circ@res@step by -\pgf@circ@res@left + \pgf@circ@res@step=.7\pgf@circ@res@step + + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} + \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} + \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} + \pgfusepath{draw} + \endpgfscope + + + + } + } + + + \endinput diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty index 7fa55c85998..49c3cef228a 100644 --- a/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty +++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty @@ -9,7 +9,7 @@ \def\pgf@circ@handleSI#1{ - \noexpandarg +% \noexpandarg \def\pgf@temp{} \StrBetween{#1}{<}{>}[\pgf@circ@handleSI@unit] \StrLen{\pgf@circ@handleSI@unit}[\pgf@circ@handleSI@unit@len] |