我怎样才能自动在circuitikz中绘制开关?

我怎样才能自动在circuitikz中绘制开关?

在此处输入图片描述

我试过

\documentclass[border=3.14mm]{standalone}
\usepackage[europeanresistors]{circuitikz}
\usepackage[locale = DE]{siunitx}
\begin{document}
\begin{circuitikz}
    \draw (0,-
    3)  --(-2,-3)   to[L, l={$L$}, inductors/width=1.4,inductors/coils=11] (-2,0)--(0,0) to [rmeter, t=$ A_2 $] ++(2,0)--(2.3,.3);  
    \draw (2.3,0)node[below]{$K$} -- (4,0) to[R={$R$},*-,european resistors](4,-3) -- (0,-
    3) to [rmeter, t=$ V_2 $] (0,0);
    \draw[fill=white] (2.3,0) circle[radius=1.5pt];
    \draw[fill=white] (2,0) circle[radius=1.5pt];
\end{circuitikz}
\end{document}

在此处输入图片描述

答案1

在手册中,隐藏在“开关,按钮和跳线”部分下,您可以找到这个(例如,有几个版本:)

在此处输入图片描述

你可以使用它例如像:

\documentclass[border=3.14mm]{standalone}
\usepackage[europeanresistors]{circuitikz}
\usepackage[locale = DE]{siunitx}
\begin{document}
\begin{circuitikz}
    \draw (0,-3)  --(-2,-3)
        to[L, l={$L$}, inductors/width=1.4,inductors/coils=11] (-2,0)
        --(0,0) to [rmeter, t=$ A_2 $] ++(2,0)
        to[cute open switch, l_=$K$] (4,0)
        to[R={$R$},*-](4,-3)
        -- (0,-3) to [rmeter, t=$ V_2 $] (0,0);
\end{circuitikz}
\end{document}

在此处输入图片描述

几点说明:

  1. 不要在减号和数字之间添加新行。在这种情况下,这样做是可行的,但后面可能会出现很多意外情况;
  2. 如果用作europeanresistors全局选项,则无需在组件中重复;
  3. 此外,您混合使用了很多绝对坐标和相对坐标,这也不是最佳选择。作为个人建议,请学习使用相对坐标、命名坐标和正交坐标(教程中有说明circuitikz),您的代码将更具可重用性。

如果开关对您来说太粗,您可以按照手册中的说明再次对其进行调整。

举个例子,我会像这样写电路:

\documentclass[border=3.14mm]{standalone}
\usepackage[EFvoltages]{circuitikz}
\usepackage[locale = DE]{siunitx}
% add here your "preferred style option"; if you have several, you can
% then create a style-file (see section 3.3 in the manual)
\ctikzset{european resistors, 
    bipoles/cuteswitch/thickness=0.25,
}
% define special components, you can reuse them also
\tikzset{longL/.style={
    L, inductors/width=1.4,inductors/coils=11},
}
\begin{document}
\begin{circuitikz}
    \draw (0,0) coordinate(start)   % name start and key positions
        to[longL, l={$L$}] ++(0,-3) coordinate(botL)
        (start) -- ++(2,0) coordinate(vtop)
        to [rmeter, t=$A_2$] ++(2,0)
        to[cute open switch, l_=$K$] ++(2,0)
        to[R=$R$] ++(0,-3) -- (botL)
        % here the first coordinate is: horizontal from botL, vertical from vtop
        (botL-|vtop) to [rmeter, t=$V_2$] (vtop)
        ;
\end{circuitikz}
\end{document}

现在您有了可重复使用的“样式”命令和一个longL元素。此外,如果您希望将此电路作为另一个电路的一部分,则只需从其起始位置进行更改 --- 顶部的 (0,0)。

在此处输入图片描述

相关内容