summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
blob: 4184114b75b935f8fd14d98b3f039f93d01193cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
\def\pgfcircversion{0.4}
\writestatus{loading}{2015/05/15 The CircuiTikz circuit drawing package version \pgfcircversion}

\usemodule[tikz]

\startmodule[circuitikz]

\unprotect

\edef\tikzatcode{\the\catcode`\@}
\edef\tikzbarcode{\the\catcode`\|}
\edef\tikzexclaimcode{\the\catcode`\!}
\catcode`\@=11
\catcode`\|=12
\catcode`\!=12

\usepgflibrary [decorations.pathmorphing]
\usetikzlibrary[calc]

\input circuitikz.code.tex

% defaults

\setupmodule
   [current=european,
    voltage=european,
    resistor=american,
    inductor=cute,
    logic=american,
    siunitx=true,
    arrowmos=false]

\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}]

\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}},
    false=>]
%   \s!default=>\pgf@circ@siunitxtrue,

\processaction
   [\currentmoduleparameter{arrowmos}]
   [true=>\pgf@circuit@mos@arrowstrue,
    false=>\pgf@circuit@mos@arrowsfalse]
%   \s!default=>\pgf@circuit@mos@arrowstrue,


\ifpgf@circ@siunitx
 % nothing! siunitx and xstrings don't work in context
\fi


% Context specific

\ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]}

\input circuitikz1.code.tex

\catcode`\@=\tikzatcode
\catcode`\|=\tikzbarcode
\catcode`\!=\tikzexclaimcode

% define the environment
\long\def\startcircuitikz#1\stopcircuitikz{\starttikzpicture#1\stoptikzpicture}

\protect

\stopmodule

\endinput