summaryrefslogtreecommitdiff
path: root/tex/context/modules/mkiv/m-circuitikz.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/modules/mkiv/m-circuitikz.mkiv')
-rw-r--r--tex/context/modules/mkiv/m-circuitikz.mkiv138
1 files changed, 138 insertions, 0 deletions
diff --git a/tex/context/modules/mkiv/m-circuitikz.mkiv b/tex/context/modules/mkiv/m-circuitikz.mkiv
new file mode 100644
index 000000000..27ef72642
--- /dev/null
+++ b/tex/context/modules/mkiv/m-circuitikz.mkiv
@@ -0,0 +1,138 @@
+%D \module
+%D [ file=m-circuitikz,
+%D version=2021.12.03,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=CURCUITIKZ support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A fixed variant of the t-curcuitikz module distributed with tikz. This one
+%D is for \LMTX.
+
+\usemodule[m][tikz]
+
+\startmodule[circuitikz]
+
+\usetikzlibrary[calc]
+\usetikzlibrary[arrows.meta]
+\usetikzlibrary[bending]
+\usetikzlibrary[fpu] % may be needed for use fpu reciprocal (v1.0.1)
+
+\tikzinputfile{pgfcirc.defines.tex}
+\tikzinputfile{pgfcircutils.tex}
+\tikzinputfile{pgfcircpath.tex}
+
+\tikzinputfile{pgfcircshapes.tex}
+\tikzinputfile{pgfcircmonopoles.tex}
+\tikzinputfile{pgfcircbipoles.tex}
+\tikzinputfile{pgfcirctripoles.tex}
+\tikzinputfile{pgfcircquadpoles.tex}
+\tikzinputfile{pgfcircmultipoles.tex}
+
+\tikzinputfile{pgfcirclabel.tex}
+\tikzinputfile{pgfcircvoltage.tex}
+\tikzinputfile{pgfcirccurrent.tex}
+\tikzinputfile{pgfcircflow.tex}
+
+\ifdefined\pgfcircversion \else \def\pgfcircversion {0.0.0} \fi
+\ifdefined\pgfcircversiondate \else \def\pgfcircversiondate {1010/01/01} \fi
+
+% defaults
+
+\setupmodule
+ [current=european,
+ voltage=european,
+ resistor=american,
+ inductor=cute,
+ logic=american,
+ %siunitx=true,
+ arrowmos=false]
+
+% can be done nicer ... todo
+
+\processaction
+ [\currentmoduleparameter{voltage}]
+ [european=>\ctikzset{voltage=european},
+ american=>\ctikzset{voltage=american}]
+
+\processaction
+ [\currentmoduleparameter{current}]
+ [european=>\ctikzset{current=european},
+ american=>\ctikzset{current=american}]
+
+\processaction
+ [\currentmoduleparameter{label}]
+ [straight=>\ctikzset{label/align=straight},
+ align=>\ctikzset{label/align=rotate},
+ smart=>\ctikzset{label/align=smart}]
+
+\processaction
+ [\currentmoduleparameter{resistor}]
+ [european=>\ctikzset{resistor=european},
+ american=>\ctikzset{resistor=american}]
+
+\processaction
+ [\currentmoduleparameter{inductor}]
+ [european=>\ctikzset{inductor=european},
+ american=>\ctikzset{inductor=american},
+ cute=>\ctikzset{inductor=cute}]
+
+\processaction
+ [\currentmoduleparameter{diode}]
+ [ full=>\ctikzset{diode=full},
+ empty=>\ctikzset{diode=empty}]
+
+\processaction
+ [\currentmoduleparameter{logic}]
+ [european=>\ctikzset{logic ports=european},
+ american=>\ctikzset{logic ports=american}]
+
+% hm, we have units since '97 so one can load the units module in mkii or
+% assume it is present (mkiv and therefore lmtx)
+%
+% \processaction
+% [\currentmoduleparameter{siunitx}]
+% [true=>\def\SI #1#2{#1\,#2}
+% \def\ampere {\rm{A}}
+% \def\volt {\rm{V}}
+% \def\ohm {\Omega}
+% \def\siemens {\rm{S}}
+% \def\farad {\rm{F}}
+% \def\henry {\rm{H}}
+% \def\second {\rm{s}}
+% \def\coulomb {\rm{C}}
+% \def\siemens {\rm{S}}
+% \def\radians {\rm{rad}}
+% \def\milli {\rm{m}}
+% \def\micro {\mu}
+% \def\nano {\rm{n}}
+% \def\pico {\rm{p}}
+% \def\kilo {\rm{k}}
+% \def\mega {\rm{M}}
+% \def\giga {\rm{G}}
+% \def\tera {\rm{T}}]
+
+\unprotect
+
+\processaction
+ [\currentmoduleparameter{arrowmos}]
+ [true=>\pgf@circuit@mos@arrowstrue,
+ false=>\pgf@circuit@mos@arrowsfalse]
+
+\protect
+
+\ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]}
+
+\aliased\let\stopcircuitikz\relax
+
+\permanent\protected\def\startcircuitikz#1\stopcircuitikz
+ {\starttikzpicture#1\stoptikzpicture}
+
+\stopmodule
+
+\endinput