Circuitikz - 复杂电路的绘图错误

Circuitikz - 复杂电路的绘图错误

如果我尝试编译电路回答,它给了我奇怪的错误:

Undefined control sequence \draw

在线上

\draw (oa.+) -| (gnn) node[ground]{}; 

以及以下的。

我完全复制了答案中的代码,按原样进行编译,未做任何修改。

这正常吗?如何修复?

答案1

siunitx自问题答案撰写以来,集成已发生变化。如今,您可以通过加载选项然后使用以下形式的语法siunitx来方便地使用circuitikzcircuitikzsiunitx

R=1<\kilo\ohm>

其余的也类似。这些更改使错误消息消失。以下是完全更正后的代码:

\documentclass{article}  
\usepackage[american,siunitx]{circuitikz}  
\usetikzlibrary{positioning}  

\begin{document}  
\begin{circuitikz}[on grid]  
\draw   (0,1) node {Basic opamp};  
% Define coordinates and nodes  
\node (vi)  {};   
\node (a) [right=2 of vi] [label=below:$a$]{};  
\node[ground](gnn)  [below=1.0 of a,xshift=5mm] {};  
\node[ground](gnp)  [below=2.5 of vi] {};  
\node[op amp](oa)   [right=2 of a, yshift=-5mm]{};   
\node (vo)  [right=0.6 of oa.out]{};  
\node[ground](gnd)  [below=2 of vo] {};  

% connect coordinates, inputs, outputs, and components, i.e. draw the circuit  
\draw (gnp) to[V=1<\volt>] (vi);  
\draw (vi)  to[R=1<\kilo\ohm>] (oa.-);   
\draw (oa.+) -| (gnn) node[ground]{};  
\draw (oa.out)  to[short]   (vo);  
\draw (vo)  to[R=1<\kilo\ohm>]  (gnd);  
\end{circuitikz}  
\end{document}

在此处输入图片描述

更新:也许我的代码风格不太理想或者有点深奥,但我个人会这样编写电路:

\documentclass{standalone}
\usepackage[american,siunitx]{circuitikz}

\begin{document}
\begin{circuitikz} \draw
  (0,0) node[op amp] (oa) {}
  (oa.out) to[short] ++(0.6,0) coordinate (vo)
  (oa.-) coordinate (a) node[below] {$a$}
  to[R,l_=1<\kilo\ohm>] ++(-2,0) coordinate (vi)
  ++(0,-2.25) node[ground] (gnp) {}
  to[V=1<\volt>] (vi)
  (vo) to[R=1<\kilo\ohm>] (vo |- gnp)
  node[ground] (gnd) {}
  (oa.+) to[short] ++(-0.25,0) node[ground] (gnn) {}
;\end{circuitikz}
\end{document}

输出略有不同,因为我根据自己的喜好改变了一些间距:

在此处输入图片描述

相关内容