Search code examples
latextikz

How to avoid tiltled lines in circuitikz?


I want the line on the left to end right at the y-coordinate of the SPDT input so I can connect them seamlessly with a straight line. As you can see, the line on the left ends a bit lower than the SPDT input which causes the connecting line to be tilted

Is there a way to automatically adjust the length? I'd rather avoid inching towards an acceptable result by adjusting the length over and over again manually.

Here is the code

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{circuitikz}

\begin{document}
    \begin{figure}
        \begin{circuitikz}
            \node [spdt, rotate=90] (S) {};
            \draw
            (S.in) to [C] ++(0,-2)
            to ++(-2,0)
            to [V] ++(0,3)
            to(S.out 1);
        \end{circuitikz}
    \end{figure}
\end{document}

Solution

  • Instead of adjusting the length on the left, I would just make sure that it is above the switch and then use -| to connect it with first an horizontal segment and then a vertical segment:

    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \usepackage{circuitikz}
    
    \begin{document}
        \begin{figure}
            \begin{circuitikz}
                \node [spdt, rotate=90] (S) {};
                \draw
                (S.in) to [C] ++(0,-2)
                to ++(-2,0)
                to [V] ++(0,3.5)
                -| (S.out 1)
                ;
            \end{circuitikz}
        \end{figure}
    \end{document}
    

    enter image description here