Circuitikz 提出如何解决电压箭头问题

Circuitikz 提出如何解决电压箭头问题
\begin{circuitikz} [european, scale=1.75]
\draw
(0,0) to[sinusoidal voltage source, l=Uq](0,4)
  (0,4) -- (3.9999,4) 
 (3.9999,4) to[short, -*, l=$P_0$](4,4)
  (4,4) to[C,  l_=$d_{eff}$,i>^=$I_C$] (4,1.9999) 
  (4,1.9999) to[short, -*, l=$P_1$](4,2)
  (4,2) to[R, l=$R_s$] (4,0)
  (4,0) -- (0,0)
  (4,2) to[amp,/tikz/circuitikz/bipoles/length=2cm,t=1000x] (6,2) 
  (6,2) to node[draw,circle,fill=white] {V} (6,0)
  (4,4) -- (8,4)
  to node[draw,circle,fill=white] {V} (8,0) -- (3.9999,0)
 (3.9999,0) to[short, -*, l_=$P_2$](4,0)



  (0,0) node[rground] (0,-1);

\end{circuitikz}

这是我现在的电路代码。我知道这不是最好的解决方案,但看起来还不错。我现在需要的是 3 个电压箭头。一个在电压源处。如果我将“V<=Uq”添加到电压源,正弦电压源将变为直流源。另外 2 个在电压表上,但我不能使用普通电压表,因为它有电位器箭头,上次使用它时我损失了 2 分。

答案1

可能你正在寻找这样的东西:

在此处输入图片描述

对于电压表,我定义了新的模式样式,如果电压表位于单独的\draw分支中,则它可以正常工作:

\documentclass[margin=3mm]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{arrows}

\begin{document}
    \begin{circuitikz} [european,
Vm/.style = {circle, draw, semithick, minimum size=9mm,
                 append after command={\pgfextra{\let\LN\tikzlastnode
                 \node[circle, fill=white, minimum size=9mm]
                        at (\LN.center) {\textbf{V}};
                 \draw [-latex, shorten >=-3mm, shorten <=-3mm]
                        (\LN.240) -- (\LN.45);
                    }}
            }
                        ]
    \ctikzset{bipoles/capacitor/height=0.5,
          bipoles/capacitor/width=0.1,
          bipoles/amp/width=1
          }
\draw   (0,0)   to [sV=$Uq$]                (0,4) % <---
                to[short, -*]               (3,4) node[above] {$P_0$}
                to[C=$d_{\mathrm{eff}}$,
                   i>^=$I_C$]               (3,2) node[left]  {$P_1$}
                to[R, l=$R_s$]              (3,0) node[below] {$P_2$}
        (3,2)   to[short, *- ]              (4,2)
                to[amp, t=$1000\times$]     (6,2)
                --                          (6,0)% Vm
        (3,4)   -|                          (8,0)% Vm
                to[short, -*]               (3,0) 
                -- (0,0)
                node[rground] {};
\draw   (6,2)   to node (vm) [Vm] {}        (6,0)   % <---
        (8,4)   to node (vm) [Vm] {}        (8,0);  % <---
    \end{circuitikz}
\end{document}

附录:circuitikzgit在看到以下软件包的附录中 关于新版本的广告后Rmano 的回答,我快速检查了包中的新奇之处。为了测试,我使用它重新编程了我的答案:

\documentclass[border=3.14159]{standalone}
\usepackage[siunitx]{circuitikzgit}

\begin{document}
    \begin{circuitikz}[european]
\ctikzset{bipoles/capacitor/height=0.5,
          bipoles/capacitor/width=0.1,
          bipoles/amp/width=1
          }
\draw
(0,0)   to [sV=$Uq$]                        (0,4)
        to[short, -*]                       (3,4) node[above] {$P_0$}
        to[C=$d_{\mathrm{eff}}$,i>^=$I_C$]  (3,2) node[left]  {$P_1$}
        to[R, l=$R_s$]                      (3,0) node[below] {$P_2$}
        to[short, -*]                       (0,0)
        node[rground] {}
(3,2)   to[short, *- ]                      (3.2,2)
        to[amp, t=$1000\times$]             (6,2)
        to[rmeterwa, t=$V_0$]               (6,0)% Vm 1
        to[short, -*]                       (3,0)
(3,4)   to[short, *-]                       (8,4)
        to[rmeterwa, t=$V_1$]               (8,0)% Vm 2
        to[short, -*]                       (6,0);
    \end{circuitikz}
\end{document}

在此处输入图片描述

真正更简单、更短的解决方案!我期待该软件包的进一步开发及其在 CTAN 上的可用性。

答案2

那里有一些奇怪的事情,比如所有坐标x.99999都避免使用简单节点,并且地面节点没有错误{}并用作路径节点,但是:

  1. to[sV, v=...]您可以使用及其变体v<等在正弦发电机上施加电压v_>(参见手册);

  2. 如果您不喜欢电压表上的箭头,您可以使用空的发电机符号,命名它,并添加您想要的任何内容。

例如(我会进一步优化这个,有重复的坐标,但我只做了最少的更改):

\documentclass[border=10pt]{standalone}
\usepackage[siunitx]{circuitikz}
\begin{document}
\begin{circuitikz} [european, scale=1.75]
  \draw
  (0,0) to[sinusoidal voltage source, v=Uq] (0,4)
  (0,4)  to[short, -*](4,4) node[above]{$P_0$}
  (4,4) to[C,  l_=$d_\mathrm{eff}$,i>^=$I_C$, -*]
  (4,2) node[left]{$P_1$}
  (4,2) to[R, l=$R_s$] (4,0)
  (4,0) -- (0,0)
  (4,2) to[amp,/tikz/circuitikz/bipoles/length=2cm,t=1000x] (6,2)
  (6,2) to[esource, v<=$V_0$, name=V0] (6,0)
  (4,4) -- (8,4) to[esource, v<=$V_1$, name=V1] (8,0)
  to[short, -*](4,0) node[below]{$P_2$}
  (0,0) node[rground]{};
  \path (V0.center) node{V} (V1.center) node{V};
\end{circuitikz}
\end{document}

结果

笔记:

  1. 当然,正弦电压发生器的符号很重要,最多时间。想象一下两台发电机同相或反相串联……

  2. 在新版本的包中我希望添加一种更快捷的方法来在空生成器上添加文本。

  3. 新版手册中有几个教程可能会对你有帮助:请参阅https://circuitikz.github.io/circuitikz/

更新:使用 的最新版本(未发布)circuitikz,您可以执行以下操作:

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikzgit}
\begin{document}
\begin{circuitikz} [european, scale=1.75]
  \draw
  (0,0) to[sinusoidal voltage source, v=Uq]
  (0,4) to[short, -*](4,4) node[above]{$P_0$}
  (4,4) to[C,  l_=$d_\mathrm{eff}$,i>^=$I_C$, -*]
  (4,2) node[left]{$P_1$} to[R, l=$R_s$]
  (4,0) -- (0,0)
  (4,2) to[amp,/tikz/circuitikz/bipoles/length=2cm,t=1000x] (6,2)
  (6,2) to[smeter, t=V, v<=$V_0$] (6,0)
  (4,4) -- (8,4) to[smeter, t=V, v<=$V_1$] 
  (8,0) to[short, -*](4,0) node[below]{$P_2$}
  (0,0) node[rground]{};
\end{circuitikz}
\end{document}

新的 circuitikz 图像

相关内容