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