在电路图中,如何避免标签相互重叠、添加 +/- 以及添加自定义元素?

在电路图中,如何避免标签相互重叠、添加 +/- 以及添加自定义元素?

我把它剪掉以避免混淆。

我有这张照片:

在此处输入图片描述

我画出了这个:

在此处输入图片描述

代码如下:

\begin{figure}
\begin{circuitikz}[european]
\draw[o-] (0,2.2) to (0,4);
\draw (0,4) -- (1,4);
\draw (1,4) to[R,l_=\SI{1}{\kilo\ohm},-*]  (1,2) to[R,l_=\SI{500}{\ohm},-*] (1,0)
        -- (0,0);
\draw[-o] (0,0) -- (0,1.5);
\draw (1,2) -- (3,2);
\draw (3,2) -- (4,2) node[component]{A} -- (5,2);
\draw (3,0) -- (3,1) node[component]{V} -- (3,2);
\draw
 (6,2.27) node[njfet]{}
    node[anchor=east] {G}
    node[anchor=north] {D}
    node[anchor=south] {S};
\draw (6,0) -- (6,2);
\draw (6,3) -- (6,4);
\draw (1,0) -- (8,0);
\draw (2,0) to[C,l^=\SI{4.7}{\nano\farad},*-*] (2,2);
\draw (7,0) -- (7,2) node[component]{V} -- (7,4);
\draw (6,4) -- (6.5,4) node[component]{A} -- (8,4);
\draw[o-] (8,2.2) to (8,4);
\draw[-o] (8,0) to (8,1.5);
\end{circuitikz}
\end{figure}

我想你应该知道问题出在哪里了:

  1. 如何在节点上添加 + 和 - ?
  2. 如何让文字不互相重叠?
  3. 当我尝试按照手册中的方法为 jfet 编写代码时,出现了有关 (njfet. G) 内容的错误...

那么关于如何解决这个问题有什么建议吗?

编辑:哦,我能以某种方式修改元素吗?因为,例如,npn BJT 有指向发射极外的箭头,我需要它指向发射极内...

答案1

为了避免重叠,绘制组件,然后在组件旁边绘制并旋转文本。

要改变箭头方向,请更改元素:njfet(输出)更改为 pjfet(输入)或 npn(输出)更改为 pnp(输入)。

它还可能有助于“拉伸”或“压缩”电路的某些部分。尝试一下这个重新制作的示例,看看它是否适合您。

\documentclass{article}
\usepackage[european]{circuitikz}
\usepackage{siunitx}

\begin{document}
%----Fet circuit
\begin{circuitikz}[european]
\draw (3,3.5) node[above] {FET circuit}; 
\draw
(0,2.2) node[left] {$+$} to[short,o-] (0,4);
\draw (0,4) -- (1,4);
%\draw (1,4) to[R,l^=\SI{1}{\kilo\ohm},-*]  (1,2) 
%   to[R,l^=\SI{500}{\ohm},-*] (1,0) -- (0,0);
\draw (1,4) to[R,-*]  (1,2) 
    to[R,-*] (1,0) -- (0,0);

% place labels for resistors
\draw (0.5,1.5) node[rotate=90,left]{500 $\Omega$};
\draw (0.5,3.2) node[rotate=90,left]{1 $\Omega$};

\draw (0,1.5) node[left] {$-$} to[short,o-] (0,0);
\draw (1,2) -- (3.6,2);
\draw (3.6,2) to[ammeter] (5,2);
\draw (3.5,0) to[voltmeter] (3.5,2);
\draw  
    (6,2.27) node[njfet] (fet) {} 
    (fet.G) node[anchor=south]  {G}
    (fet.D) node[anchor=north east] {D}
    (fet.S) node[anchor=south east] {S};
\draw (6,0) -- (fet.S);
\draw (fet.D) -- (6,4);
\draw (1,0) -- (9,0);
%\draw (2,0) to[C,l_=\SI{4.7}{\nano\farad},*-*] (2,2);
\draw (2,0.6) node[right]{4.7 nF};
\draw (2,0) to[C,*-*] (2,2);
\draw (8,0) to[voltmeter] (8,4);
\draw (6,4) to[ammeter] (8,4) -- (9,4);
\draw (9,2.2) to[short,o-]  (9,4);
\draw (9,0)   to[short,-o]  (9,1.5);
\end{circuitikz}
\end{document}

答案2

  1. 对于 + 和 - :在适当的位置添加节点。例如,在代码的开头:

    \draw (0,2.2) node[left] {$+$} to[short,o-] to (0,4);
    

    (请注意,我也改变了圆圈的创建方式)

  2. 我在文档中找不到任何关于它的具体信息。我建议做的是稍微移动一些组件(例如将电容器和电压表向右移动)并使用较小的字体。另一种方法是添加显式节点。然后您可以完全控制放置。

  3. 对于 jfet 上的标签:所有节点都相对于点 (6,2.27) 放置。您希望标签相对于组件放置。为此,为组件命名并相对于输入和输出 (G、D 和 S) 放置标签节点:

    \draw  (6,2.27) node[njfet] (myname){} 
       (myname.G) node[anchor=east] {G}
       (myname.D) node[anchor=north] {D}
       (myname.S) node[anchor=south] {S};
    

相关内容