CircuiTikz - 狭窄电路中的正确标签

CircuiTikz - 狭窄电路中的正确标签

我的目标是创建一个相当宽的电路,但在正确标记组件方面遇到了问题。有没有办法将这些标签放在狭窄的自由空间中?

\begin{circuitikz}[]
    \draw (0,0) to[isource, l=$i_0$] (0,2) -- (1.5,2) to[R, l_=$G_S$] (1.5,0) -- (0,0);
    \draw (1.5,0) ++(1,1) node[draw,rounded corners=5pt,minimum width=1cm,minimum height=3cm] (box) {};
    \draw (1.5,0) -- (2,0);
    \draw (1.5,2) -- (2,2);
    \draw (3,0) -- (5,0);
    \draw (3,2) -- (5,2);
    \draw (3.5,2) to[C, l_=$C_1$] (3.5,0);
    \draw (4.5,2) to[R, l_=$jB_1$] (4.5,0);
\end{circuitikz}

该电路如下所示: 在此处输入图片描述

想象一下这个部分重复 5 次。为了将其全部放在一行中,我必须非常节省空间……如果你们能帮助我,我将不胜感激 :)

祝你今天过得愉快!

答案1

这里有几种方法可以实现。

标准方法是使用 左右,如第 5.1.1 节所述label distance = 3mm。然而,这在这里不起作用(青色 C1)。

circuitikz构建后您Tikz仍然可以使用它的概念。参见下面两个插入的节点,一个相对于上(第一个)坐标(红色),另一个相对于下(第二个)坐标(蓝色)。

结果

\documentclass[10pt,a4paper]{article}
\usepackage{circuitikz}

\begin{document}
 \begin{circuitikz}[]
    \draw (0,0) to[isource, l=$i_0$] (0,2) -- (1.5,2) to[R, l_=$G_S$] (1.5,0) -- (0,0);
    \draw (1.5,0) ++(1,1) node[draw,rounded corners=5pt,minimum width=1cm,minimum height=3cm] (box) {};
    \draw (1.5,0) -- (2,0);
    \draw (1.5,2) -- (2,2);
    \draw (3,0) -- (5,0);
    \draw (3,2) -- (5,2);
    \draw (3.5,2) node[yshift=5mm,red]{$C_1$} 
                    to[C, l_=$C_1$, label distance=3mm,teal] (3.5,0);
    \draw (4.5,2) to[R, l_=$jB_1$] (4.5,0) node[yshift=-5mm,blue]{$R_1$};
\end{circuitikz}
\end{document}

答案2

每个标签实际上是一个单独的节点,并且可以手动将节点放置在几乎任何地方。

一个警告,该to命令会旋转节点,从而相应地移动节点锚点。请参阅第 3.1.1 节了解锚点名称和定义。

\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}

\begin{circuitikz}[every node/.style={font=\footnotesize}]
    \draw (0,0) to[isource, l=$i_0$] (0,2) -- (1.5,2) to[R, l_=$G_S$] (1.5,0) -- (0,0);
    \draw (1.5,0) ++(1,1) node[draw,rounded corners=5pt,minimum width=1cm,minimum height=3cm] (box) {};
    \draw (1.5,0) -- (2,0);
    \draw (1.5,2) -- (2,2);
    \draw (3,0) -- (5,0);
    \draw (3,2) -- (5,2);
    \draw (3.5,2) to[C, n=C1] (3.5,0);
      \node[above left] at (C1.west) {$C_1$};
    \draw (4.5,2) to[R, n=B1] (4.5,0);
      \node[left] at (B1.west) {$jB_1$};
\end{circuitikz}

\end{document}

演示

相关内容