circuitikz est un paquet pour dessiner directement dans LaTeX, en code, des schémas électriques et électroniques. Construit sur TikZ/PGF, il connaît les composants, résistances, condensateurs, sources, transistors, sous forme de symboles corrects. Vous écrivez le câblage comme un chemin et y insérez des composants avec des idiomes comme to[R=…]; le schéma obtenu a la même qualité que le texte environnant.
Ce que c’est : démarrer
TikZ est un système de dessin général qui manipule des formes brutes, lignes, cercles, nœuds (voir « Bases de TikZ »). circuitikz prend cette base TikZ et y ajoute un vocabulaire de symboles électriques. Vous ne dessinez jamais à la main le zigzag d’une résistance : vous nommez la clé de composant R, et un symbole correctement orienté, avec bornes et bonne épaisseur de trait, est placé pour vous. Il a été créé par Massimo A. Redaelli et des contributeurs.
Pour commencer, chargez \usepackage{circuitikz} dans le préambule (TikZ est chargé avec). Il fonctionne tel quel avec pdfLaTeX, LuaLaTeX et XeLaTeX. Si vous passez par DVI, comme avec pLaTeX ou upLaTeX, indiquez le pilote, généralement dvipdfmx, comme option de classe, exactement comme avec TikZ. Pour produire un schéma autonome à exporter comme image, la classe standalone est pratique.
\documentclass{article} % 回路図1枚なら \documentclass[border=3pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) to[R=$R_1$] (2,0);
\end{circuitikz}
\end{document}Cela trace un fil de l’origine (0,0) vers la droite jusqu’à (2,0), place un symbole de résistance sur le trajet et ajoute l’étiquette « R₁ » au-dessus. La forme de base consiste à écrire les commandes de dessin dans l’environnement circuitikz dédié. Son contenu suit la syntaxe TikZ ordinaire; on pourrait aussi utiliser \begin{tikzpicture} avec les bibliothèques circuitikz chargées, mais connaître cet environnement suffit pour commencer.
L’idiome central : to[…] place un composant
Tout circuitikz tient dans cette ligne. Dans les crochets de l’opération de chemin TikZ to, vous nommez une clé de composant, et un composant de ce type est inséré le long du fil reliant les deux points. Par exemple \draw (0,0) to[R=$R_1$] (2,0); se lit « aller de (0,0) à (2,0) en passant par la résistance R₁ ». Enchaînez ces segments et vous obtenez un circuit alternant fils et composants.
\begin{circuitikz}
\draw (0,0) to[R=$R_1$] (2,0)
to[C=$C_1$] (2,-2);
\end{circuitikz}Cela trace un fil en L : une résistance R₁ sur le trajet allant vers la droite depuis (0,0), puis un condensateur C₁ sur le trajet descendant depuis (2,0). Le raccourci utilisé est le suivant : écrire =label juste après la clé de composant en fait l’étiquette de ce composant; ainsi to[R=$R_1$] est la forme courte de to[R, l=$R_1$] (ci-dessous). Quand vous voulez seulement un fil sans composant, utilisez to[short] (conducteur simple).
Les coordonnées sont celles de TikZ : coordonnées cartésiennes (x,y) (unité par défaut : centimètres) et notation pratique (a -| b) pour les fils à angle droit, c’est-à-dire le point où la coordonnée x de a rencontre la coordonnée y de b. L’orientation d’un composant suit automatiquement la direction du chemin.
Composants à deux bornes courants (bipôles)
Ce que l’on place dans to[…], ce sont des bipôles, c’est-à-dire des composants à deux bornes. Le tableau ci-dessous liste les plus fréquents. Les clés de composant sont surtout des initiales mnémotechniques (R résistance, C condensateur, L inductance), avec aussi des alias écrits en toutes lettres pour les sources et diodes.
| Clé | Composant | Exemple |
|---|---|---|
R | Résistance | to[R=$R_1$] |
C | Condensateur | to[C=$C_1$] |
L | Inductance (bobine) | to[L=$L_1$] |
battery / battery1 | Pile/batterie (multi-/mono-cellule) | to[battery1] |
V / vsource | Source de tension | to[V=$U_q$] |
I / isource | Source de courant | to[I=$I_0$] |
D | Diode | to[D] |
short / open | Fil / circuit ouvert | to[short] |
closing switch | Interrupteur (ouvert/fermeture) | to[closing switch] |
Les sources varient selon le symbole et l’usage : V (vsource) est une source de tension générique, un cercle souvent avec une sinusoïde; battery1 est le symbole de pile; sV est une source sinusoïdale pour l’AC. Les interrupteurs distinguent leur état : closing switch (interrupteur ouvert représenté en fermeture) et opening switch. Au-delà de la diode par défaut D, des diodes électroluminescentes, Zener et autres types se choisissent par clé.
Étiquettes et annotations tension/courant
Une étiquette place une valeur ou un nom à côté d’un composant. La clé de base est l=…, avec le même résultat que le raccourci to[R=$R_1$]. On choisit de quel côté du composant l’étiquette se place par un marqueur : l_=… la pousse de l’autre côté (sous la ligne ou à l’intérieur), l^=… du côté opposé (au-dessus ou à l’extérieur). Comme « dessus/dessous » dépend de l’orientation du fil, on alterne l et l_ selon le rendu.
Un schéma doit souvent montrer non seulement la valeur d’un composant, mais aussi le courant qui le traverse ou la tension à ses bornes, avec une flèche. Des clés dédiées s’en chargent : i=… dessine un courant (flèche le long du composant) et v=… une tension (flèche à travers le composant). Pour inverser le sens, ajoutez un souligné : i_=… ou v_=….
\begin{circuitikz}
\draw (0,0) to[V=$U_q$] (0,2)
to[short] (2,2)
to[R=$R_1$, i=$i_1$, v=$u_1$] (2,0)
to[short] (0,0);
\end{circuitikz}C’est une boucle fermée : une source de tension Uq sur le côté vertical gauche, un fil simple en haut, une résistance R₁ sur le côté vertical droit, et des fils to[short] pour fermer le reste. La résistance porte deux flèches, l’une pour le courant i₁ qui la traverse, l’autre pour la tension u₁ à ses bornes. Les segments to[short] transforment les côtés restants en conducteurs simples qui ferment la boucle.
Pour écrire des valeurs avec unités dans une étiquette, chargez le paquet avec l’option [siunitx] (\usepackage[siunitx]{circuitikz}); la forme number<\unit> fonctionne alors, comme l=5<\ohm> ou l=3<\micro\farad>, composée correctement en « 5 Ω » et « 3 µF ».
Composants sous forme de nœuds et styles
Les composants à trois bornes ou plus, transistors, amplificateurs opérationnels, masse, ne vont pas dans to[…]. On les place comme nœuds TikZ : \node[part] (name) at (coordinate) {};. Les accolades {} sont obligatoires même vides. Chaque nœud placé expose des ancres à ses bornes, que l’on référence par nom, par exemple (name.output-pin), pour le câbler.
- Masse —
\node[ground] at (0,0) {};. Utilisezvcc/veepour les symboles de rails d’alimentation. - MOSFET —
\node[nmos] (q1) {};,\node[pmos] {};. Les transistors bipolaires sontnpn/pnp. - Ampli op —
\node[op amp] (oa) {};. Référencez ses broches paroa.+(entrée non inverseuse),oa.-(entrée inverseuse),oa.out(sortie). - Pour placer un nœud le long d’un chemin, écrivez
node[nmos]{}après une coordonnée (par ex.(0,0) node[nmos]{} (2,0)).
Les conventions de symboles varient selon les pays et les domaines. Vous choisissez si une résistance est dessinée comme un rectangle (IEC/européen) ou en zigzag (américain) : passez [american]/[european] comme option d’environnement (ou plus finement [american resistors]/[european resistors]), ou fixez une clé comme resistor=american. Les inductances ont de même des variantes cute/american/european.
Pour styliser tout un schéma à la fois, utilisez \ctikzset{…}, l’équivalent circuitikz de \tikzset dans TikZ, utilisable dans le préambule ou au milieu du code. On peut ainsi épaissir les lignes ou fixer la convention des flèches de tension en style américain (american voltages).
\usepackage[siunitx, american]{circuitikz}
\ctikzset{bipoles/length=1cm} % 部品の長さをそろえる
\begin{circuitikz}
\draw (0,0) node[ground]{} to[V=$U_q$] (0,2)
to[R=$R_1$] (2,2)
to[C=$C_1$] (2,0) -- (0,0);
\end{circuitikz}C’est une boucle fermée avec la masse en bas à gauche, une source de tension Uq à gauche, une résistance américaine en zigzag R₁ en haut, et un condensateur C₁ à droite. Le dernier -- (0,0) est une droite TikZ ordinaire qui ferme le bas comme un fil, avec le même rôle que to[short]. Comme \ctikzset fixe la longueur des composants à 1 cm, les symboles sont régulièrement espacés.
Comme circuitikz repose sur TikZ, vous pouvez combiner librement les outils propres à TikZ : calc pour les calculs de coordonnées, positioning pour le placement relatif, \node ordinaire pour les étiquettes, couleurs et styles. Pour les circuits complexes, la division naturelle consiste à construire la mise en page à la manière TikZ et à laisser circuitikz fournir les composants. Si la compilation devient lourde, la bibliothèque external met chaque figure en cache, comme avec TikZ.