如何简化具有多个名称的 Circuitikz 图?

如何简化具有多个名称的 Circuitikz 图?

我想学习电路图,所以我重画了以下双晶体管振荡器:

在此处输入图片描述

我提出的文件如下:

\documentclass{article}
\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{figure}
  \begin{center}
    \begin{circuitikz}[american]
        coordinate (orig) at (0, 0);
        
        \draw (0, 0) 
            to[led] ++(0, -2)
            to[R, l_=$R_1$] ++(0, -2) coordinate(r1b)
            to[C, l^=$C_1$] ++(2, 0) coordinate(r2b)
            to[R, l_=$R_2$] ++(0, 2) 
            to[short] ++(0, 2) coordinate(p1)
            to[short] ++(-2, 0);

        \draw (6, 0) 
            to[led] ++(0, -2)
            to[R, l^=$R_4$] ++(0, -2) coordinate(r4b)
            to[C, l_=$C_2$] ++(-2, 0) coordinate(r3b)
            to[R, l^=$R_3$] ++(0, 2) 
            to[short] ++(0, 2) coordinate(p2)
            to[short] ++(2, 0);

        \draw (p1) to[short, *-*] (p2);
        
        \draw (r1b) to[short] ++(0, -1) coordinate (q1c); 
        \draw (q1c) node[npn, anchor=C, xscale=-1] (q1) {\scalebox{-1}[1]{Q1}};
        \draw (q1.E) to[short] ++(0, -1) coordinate(q1e);

        \draw (r4b) to[short] ++(0, -1) coordinate (q2c); 
        \draw (q2c) node[npn, anchor=C] (q2) {Q2};
        \draw (q2.E) to[short] ++(0, -1) coordinate(q2e);

        \draw (q1e) to[short] (q2e);

        \draw (r3b) to[short] (r2b |- q1.B) to[short] (q1.B);
        \draw (r2b) to[short] (r3b |- q2.B) to[short] (q2.B);

    \end{circuitikz}
    \caption{My first circuit.}
  \end{center}
\end{figure}


\end{document}

生成以下内容:

在此处输入图片描述

我对结果很满意,但意识到我必须定义大量坐标才能使其正常工作。例如,对于晶体管,因为我想延长集电极和发射极引线,所以我必须重新定义它们的名称,而不是使用内置的名称。

有没有更好的方法来构建这个图表以减少所需代码而不牺牲可读性?

相关内容