Die Platzierung der Circuitikz-Beschriftungen scheint inkonsistent zu sein – wie kann ich das beheben?

Die Platzierung der Circuitikz-Beschriftungen scheint inkonsistent zu sein – wie kann ich das beheben?

Ich bin neu incircuitikzund bin ziemlich neu bei TikZ und habe ein scheinbar einfaches Problem. Die Beschriftungen auf meinen Widerständen befinden sich auf gegenüberliegenden Seiten, ohne dass ich einen Grund dafür erkennen kann.

Ausgabe

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

Ich könnte die Beschriftungen vermutlich (halb)manuell platzieren (da ich nicht weiß, wie man einen Knoten relativ zu einem Pfad platziert, müsste ich sie vorerst vollständig manuell platzieren), aber ich bin sicher, dass es eine Möglichkeit geben sollte, anzugeben, auf welche Seite des Widerstands (oder einer anderen Linie) die Beschriftung platziert werden soll.

Antwort1

Wie in den Kommentaren bereits erwähnt, ergibt sich eine unterschiedliche Platzierung, da die Pfade unterschiedliche Richtungen verwenden: Die erste Komponente befindet sich auf einem Pfad, der nach unten führt, und die zweite auf einem Pfad, der nach oben führt.

circuitikzverwendet die Richtung des Pfades, um die Beschriftungen zu platzieren; standardmäßig werden Beschriftungen rechts für nach unten verlaufende Pfade und oben für von links nach rechts verlaufende Pfade platziert; Beschriftungen werden links für nach oben verlaufende Pfade und unten für von rechts nach links verlaufende Pfade platziert. Der standardmäßige Platzierungsort kann mit den Modifikatoren l^, geändert werden l_(siehe zweiter Code unten).

Um ein konsistentes Ergebnis zu erhalten, können Sie Ihre Komponenten einfach mit Pfaden in der gleichen Richtung zeichnen. Für die zweite Komponente also statt

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

Sie können verwenden

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

Ein vollständiges Beispiel:

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

Bildbeschreibung hier eingeben

Eine andere Möglichkeit besteht darin, Ihre Pfade in eine beliebige Richtung zu zeichnen und dann die Syntax l^=oder zu verwenden l_=, um die Beschriftungen an der entsprechenden Stelle zu platzieren:

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

Antwort2

Eine PSTricks-Lösung:

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

Ausgabe

verwandte Informationen