Circuitos eléctricos (circuitikz)

circuitikz es un paquete para dibujar esquemas eléctricos y electrónicos directamente dentro de LaTeX, en código. Construido sobre TikZ/PGF, conoce componentes como resistencias, condensadores, fuentes y transistores como símbolos correctos. Escribes el cableado como una ruta e insertas componentes con expresiones como to[R=…], y obtienes un esquema con la misma calidad que el texto circundante.

Qué es: primeros pasos

TikZ es un sistema de dibujo general que trata formas básicas: líneas, círculos, nodos (cubierto aparte en “Fundamentos de TikZ”). circuitikz toma esa base de TikZ y añade un vocabulario de símbolos eléctricos. No dibujas a mano el zigzag de una resistencia: nombras la clave de componente R y se coloca un símbolo correctamente orientado, con terminales y grosor adecuado. Fue creado por Massimo A. Redaelli y colaboradores.

Para empezar, carga \usepackage{circuitikz} en el preámbulo (TikZ se carga con él). Funciona directamente con pdfLaTeX, LuaLaTeX y XeLaTeX. Si pasas por DVI, como con pLaTeX o upLaTeX, especifica un driver, normalmente dvipdfmx, como opción de clase, igual que con TikZ. Si quieres un esquema independiente para exportarlo como imagen, la clase standalone resulta útil.

document.tex
\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}

Esto traza un cable desde el origen (0,0) hacia la derecha hasta (2,0), coloca un símbolo de resistencia en el camino y pone la etiqueta “R₁” encima. La forma básica es escribir los comandos de dibujo dentro del entorno circuitikz dedicado. Su contenido sigue la sintaxis ordinaria de TikZ; también podrías usar \begin{tikzpicture} con las bibliotecas de circuitikz cargadas, pero basta aprender primero este entorno.

El modismo central: to[…] coloca un componente

Todo circuitikz se resume en esta línea. Dentro de los corchetes de la operación de ruta to de TikZ, nombras una clave de componente, y se inserta un componente de ese tipo en el cable que une los dos puntos. Por ejemplo, \draw (0,0) to[R=$R_1$] (2,0); significa “ir de (0,0) a (2,0), pasando por la resistencia R₁”. Encadenando esto obtienes un circuito de cables y componentes alternados.

latex
\begin{circuitikz}
  \draw (0,0) to[R=$R_1$] (2,0)
              to[C=$C_1$] (2,-2);
\end{circuitikz}

Esto dibuja un cable en forma de L: una resistencia R₁ en el camino hacia la derecha desde (0,0), y luego un condensador C₁ en el camino hacia abajo desde (2,0). El atajo es que escribir =label justo después de una clave de componente lo convierte en la etiqueta de ese componente; así to[R=$R_1$] es la forma corta de to[R, l=$R_1$] (abajo). Cuando solo quieras un cable desnudo sin componente, usa to[short] (un conductor simple).

Las coordenadas son TikZ puro: cartesianas (x,y) (unidad por defecto en centímetros), y la práctica notación (a -| b) para enrutar cables en ángulo recto, el punto donde la coordenada x de a se encuentra con la coordenada y de b. La orientación de un componente sigue automáticamente la dirección de la ruta.

Componentes comunes de dos terminales (bipolos)

Lo que colocas en to[…] son bipolos, componentes con dos terminales. La tabla siguiente lista los frecuentes. Las claves de componentes son sobre todo iniciales mnemónicas (R resistencia, C condensador, L inductor), con alias escritos para fuentes y diodos.

ClaveComponenteEjemplo
RResistenciato[R=$R_1$]
CCondensadorto[C=$C_1$]
LInductor (bobina)to[L=$L_1$]
battery / battery1Batería (multi-/monocelda)to[battery1]
V / vsourceFuente de tensiónto[V=$U_q$]
I / isourceFuente de corrienteto[I=$I_0$]
DDiodoto[D]
short / openCable / circuito abiertoto[short]
closing switchInterruptor (abierto/cerrando)to[closing switch]

Las fuentes varían por símbolo y propósito: V (vsource) es una fuente de tensión genérica, un círculo a menudo con una senoide; battery1 es el símbolo de batería; y sV es una fuente sinusoidal para CA. Los interruptores distinguen su estado: closing switch (interruptor abierto mostrado cerrándose) y opening switch. Además del diodo por defecto D, se eligen por clave diodos LED, Zener y otros tipos.

Etiquetas y anotaciones de tensión/corriente

Una etiqueta coloca un valor o nombre junto a una pieza. La clave básica es l=…, que da el mismo resultado que el atajo to[R=$R_1$]. Eliges en qué lado del componente se coloca la etiqueta con un marcador: l_=… la empuja al otro lado (debajo o dentro de la línea), l^=… al lado opuesto (encima o fuera). Como “arriba/abajo” depende de si el cable va vertical u horizontal, alternas l y l_ según el aspecto.

Los esquemas a menudo necesitan mostrar no solo el valor de una pieza, sino la corriente que la atraviesa o la tensión en sus extremos, con una flecha. Hay claves dedicadas: i=… dibuja una corriente (flecha a lo largo del componente) y v=… dibuja una tensión (flecha que abarca el componente). Para invertir la dirección, añade un guion bajo: i_=… o v_=….

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

Este es un lazo cerrado: una fuente de tensión Uq en el lado vertical izquierdo, un cable simple arriba, la resistencia R₁ en el lado vertical derecho, y cables to[short] cerrando el resto. La resistencia lleva dos flechas: una para la corriente i₁ que la atraviesa y otra para la tensión u₁ en sus extremos. Los segmentos to[short] convierten los lados restantes en conductores desnudos que cierran el lazo.

Para escribir valores con unidades en una etiqueta, carga el paquete con la opción [siunitx] (\usepackage[siunitx]{circuitikz}); entonces funciona la forma number<\unit>, como l=5<\ohm> o l=3<\micro\farad>, compuesta correctamente como “5 Ω” y “3 µF”.

Componentes tipo nodo y estilos

Las piezas con tres o más terminales, transistores, amplificadores operacionales, tierra, no van en to[…]. Se colocan como nodos de TikZ: \node[part] (name) at (coordinate) {};. Las llaves {} son obligatorias incluso vacías. Cada nodo colocado expone anclas en sus terminales, que se referencian por nombre, como (name.output-pin), para cablearlo.

  • Tierra\node[ground] at (0,0) {};. Usa vcc/vee para símbolos de rieles de alimentación.
  • MOSFET\node[nmos] (q1) {};, \node[pmos] {};. Los transistores bipolares son npn/pnp.
  • Op-amp\node[op amp] (oa) {};. Referencia sus pines como oa.+ (entrada no inversora), oa.- (entrada inversora), oa.out (salida).
  • Para colocar un nodo a lo largo de una ruta, escribe node[nmos]{} después de una coordenada (por ejemplo (0,0) node[nmos]{} (2,0)).

Las convenciones de símbolos varían por país y campo. Puedes elegir si una resistencia se dibuja como rectángulo (IEC/europeo) o zigzag (estadounidense): pasa [american]/[european] como opción de entorno (o las más finas [american resistors]/[european resistors]), o fija una clave como resistor=american. Los inductores también tienen variantes cute/american/european.

Para dar estilo a todo un esquema de una vez, usa \ctikzset{…}, el equivalente de circuitikz a \tikzset de TikZ, usable en el preámbulo o a mitad del código. Con él puedes, por ejemplo, engrosar líneas o fijar la convención de flechas de tensión al estilo estadounidense (american voltages).

document.tex
\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}

Este es un lazo cerrado con tierra abajo a la izquierda, una fuente de tensión Uq a la izquierda, una resistencia estadounidense en zigzag R₁ arriba y un condensador C₁ a la derecha. El -- (0,0) final es una línea recta TikZ normal que cierra la parte inferior como cable, el mismo papel que to[short]. Como \ctikzset fija la longitud de los componentes a 1 cm, los símbolos quedan espaciados de forma uniforme.

Como circuitikz se apoya en TikZ, puedes combinar libremente las herramientas propias de TikZ: calc para aritmética de coordenadas, positioning para colocación relativa, \node normal para etiquetas, colores y estilos. En circuitos complejos, la división natural es construir la disposición al estilo TikZ y dejar que circuitikz suministre los componentes. Si la compilación se vuelve pesada, la biblioteca external cachea cada figura, igual que en TikZ.