这是我在电路学中画的第一个完整电路。我试图画一个电路来展示基尔霍夫定律。我能够画出节点和电压,但用箭头表示电流却给我带来了麻烦。
\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
插图做了这个设置。