La ubicación de la etiqueta de Circuitikz parece inconsistente: ¿cómo solucionarlo?

La ubicación de la etiqueta de Circuitikz parece inconsistente: ¿cómo solucionarlo?

Soy nuevo encircuitikzy bastante nuevo en TikZ, y tiene un problema aparentemente simple. Las etiquetas de mis resistencias están en lados opuestos, sin que pueda encontrar ninguna razón.

producción

\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[node distance = 0.5cm, auto, font=\tiny, inner sep =0.8mm,american voltages]
    \ctikzset {label/align = straight }
    %PSU
    \draw[dashed](0.5,-3.5)rectangle(3.5,2.5);  
    \node at (2,2.7) (PSU_l){PSU};
    \draw (2,0) to[V=$V_{\mathrm{DS}}$,*-*] (2,2);
    \draw (2,-3) to[V=$V_{\mathrm{GS}}$,*-*] (2,-1);
    \draw (2,-1) to (4,-1) to (4,0) to (2,0);

    %Load resistors 
    \draw (2,2) to (4,2);
    \draw (4,2)to[R=$R_{\mathrm{L1}}$,*-*] (4,0); 
    \draw (2,-3) to (4,-3);
    \draw(4,-3)to[R=$R_{\mathrm{L2}}$,*-*] (4,-1); 
\end{tikzpicture}
\end{document}

Probablemente podría colocar las etiquetas (semi)manualmente (ya que no sé cómo colocar un nodo en relación con una ruta, tendría que colocarlas completamente manualmente por ahora), pero estoy seguro de que debería haber una manera de decirlo. de qué lado de la resistencia (u otra línea) colocar la etiqueta.

Respuesta1

Como se mencionó en los comentarios, obtienes una ubicación diferente porque los caminos utilizan diferentes direcciones: el primer componente está en un camino que va hacia abajo y el segundo está en un camino que va hacia arriba.

circuitikzutiliza la dirección del camino para colocar las etiquetas; de forma predeterminada, las etiquetas se colocan a la derecha para los caminos que van hacia abajo y arriba para los caminos que van de izquierda a derecha; Las etiquetas se colocan a la izquierda para los caminos que van hacia arriba y hacia abajo para los caminos que van de derecha a izquierda. La ubicación de ubicación predeterminada se puede cambiar usando los l^modificadores l_(consulte el segundo código a continuación).

Para obtener un resultado consistente, simplemente puede dibujar sus componentes usando rutas en la misma dirección, de modo que para el segundo componente, en lugar de

\draw(4,-3)to[R=$R_{\mathrm{L2}}$,*-*] (4,-1); 

puedes usar

\draw(4,-1)to[R=$R_{\mathrm{L2}}$,*-*] (4,-3); 

Un ejemplo completo:

\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[node distance = 0.5cm, auto, font=\tiny, inner sep =0.8mm,american voltages]
    \ctikzset {label/align = straight }
    %PSU
    \draw[dashed](0.5,-3.5)rectangle(3.5,2.5);  
    \node at (2,2.7) (PSU_l){PSU};
    \draw (2,0) to[V=$V_{\mathrm{DS}}$,*-*] (2,2);
    \draw (2,-3) to[V=$V_{\mathrm{GS}}$,*-*] (2,-1);
    \draw (2,-1) to (4,-1) to (4,0) to (2,0);

    %Load resistors 
    \draw (2,2) to (4,2);
    \draw (4,2)to[R=$R_{\mathrm{L1}}$,*-*] (4,0); 
    \draw (2,-3) to (4,-3);
    \draw(4,-1)to[R=$R_{\mathrm{L2}}$,*-*] (4,-3); 
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Otra opción es dibujar los caminos en cualquier dirección y luego usar la sintaxis l^=o l_=para colocar las etiquetas en la ubicación adecuada:

\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[node distance = 0.5cm, auto, font=\tiny, inner sep =0.8mm,american voltages]
    \ctikzset {label/align = straight }
    %PSU
    \draw[dashed](0.5,-3.5)rectangle(3.5,2.5);  
    \node at (2,2.7) (PSU_l){PSU};
    \draw (2,0) to[V=$V_{\mathrm{DS}}$,*-*] (2,2);
    \draw (2,-3) to[V=$V_{\mathrm{GS}}$,*-*] (2,-1);
    \draw (2,-1) to (4,-1) to (4,0) to (2,0);

    %Load resistors 
    \draw (2,2) to (4,2);
    \draw (4,2)to[R=$R_{\mathrm{L1}}$,*-*] (4,0); 
    \draw (2,-3) to (4,-3);
    \draw(4,-3)to[R,l_=$R_{\mathrm{L2}}$,*-*] (4,-1); 
\end{tikzpicture}
\end{document}

Respuesta2

Una solución de PSTricks:

\documentclass{article}

\usepackage{pst-circ}

\begin{document}

\begin{pspicture}(7.25,10.4)
  \pnodes{P}(0,0)(0,0)(0,10)(5,10)(2.5,1)(2.5,4.5)(6,4.5)(6,1)(2.5,5.5)(2.5,9)(6,9)(6,5.5)
  \psframe[linestyle = dashed](P1)(P3)
  \pcline[linestyle = none, offset = 9pt](P2)(P3)
  \ncput{\textsc{psu}}
 \psset{arrows = *-*, dipolestyle = zigzag, labelInside = 2, labeloffset = 1}
  \Ucc(P4)(P5){$V_{\textsc{gs}}$}
  \wire(P5)(P6)
  \resistor(P6)(P7){$R_{\textsc{l}2}$}
  \wire(P7)(P4)
  \Ucc(P8)(P9){$V_{\textsc{ds}}$}
  \wire(P9)(P10)
  \resistor(P10)(P11){$R_{\textsc{l}1}$}
  \wire(P11)(P8)
\end{pspicture}

\end{document}

producción

información relacionada