在 circuitikz 中绘制电流时出错

在 circuitikz 中绘制电流时出错

这是我在电路学中画的第一个完整电路。我试图画一个电路来展示基尔霍夫定律。我能够画出节点和电压,但用箭头表示电流却给我带来了麻烦。

  \documentclass{article}
  \usepackage{tikz}
  \usepackage[american,siunitx]{circuitikz}
  \usepackage{latexsym,amssymb,amsmath}
  \usepackage[active,tightpage]{preview}
  \PreviewEnvironment{tikzpicture}
  \setlength\PreviewBorder{50pt}%

  \begin{document}


  \begin{tikzpicture} [auto, circuitikz]

  %produces error. Without i=$I$, it works
  \draw (0,0) to [R=$R_1$, v_=$v_1$, i=$I$, *-*] (2,0)
              -| (3,-1) 
              to [R=$R_2$, v_=$v_2$, *-*] (3,-3)
              |- (-1,-4) 
              to [battery, l = $V$, *-*] (-1,0)
              -- (0,0)
        (1,-2) node[scale=6]{$\circlearrowright$}
        (1,-2) node{$I$};

  \end{tikzpicture}

  \end{document}

我收到的错误是“!包 PGF 数学错误:未知函数‘south’(在‘south’中)”。

其次,我想将电压稍微移离电阻。我该怎么做?

答案1

此解决方案使用circuitikz环境而不是tikzpicutre环境,然后错误就消失了。要将 v1 移离电阻器,raisebox{neg height}{content}使用,而仅v2使用\,\,

在此处输入图片描述

代码

  \documentclass{article}
  \usepackage{tikz}
  \usepackage[american,siunitx]{circuitikz}
  \usepackage{latexsym,amssymb,amsmath}
  \usepackage[active,tightpage]{preview}
  \PreviewEnvironment{tikzpicture}
  \setlength\PreviewBorder{50pt}%

  \begin{document}


  \begin{circuitikz} 
  %produces error. Without i=$I$, it works
  \draw (0,0) to [R=$R_1$,v_=\raisebox{-10pt}{$v_1$}, i=$I$, *-*] (2,0)
              -| (3,-1) 
              to [R=$R_2$, v_={$v_2$\,\,}, *-*] (3,-3)
              |- (-1,-4) 
              to [battery, v_ = $V$, *-*] (-1,0)
              -- (0,0)
        (1,-2) node[scale=6]{$\circlearrowright$}
        (1,-2) node{$I$};
  \end{circuitikz}

  \end{document}

答案2

据我所知,原始错误消息的原因是选项auto,它似乎与 中 currents 的排版方式不兼容circuitikz。我遇到了同样的问题,不得不调试了很长时间才发现罪魁祸首是 \tikzset{auto} 文件头中的,我需要在同一文档中为其他一些 tikz 图形使用它。因为我想在文档中保留这个默认设置,所以我最终 \begin{circuitikz}[auto=false] 对我拥有的几幅circuitikz插图做了这个设置。

相关内容