Circuitikz 手册中的示例解释

Circuitikz 手册中的示例解释

我继续学习 Circuitikz,尝试解决稍微复杂一点的电路。我尝试重现 3.3(第 32 页)中出现的图表,其中包括一个 AO 和两个晶体管。复制并粘贴手册中给出的代码后,我遇到了一些理解问题和错误:

  • 第 11 行(\draw (bb) --++(1,0) node[npn, anchor=B](Q1){} \bjtname{Q1};)和第 12 行\draw (bb1) --++(1,0) node[npn, anchor=B](Q2){} \bjtname{Q2};导致我出现“预期 + 或 -”和“放弃此路径”错误:我必须上传特定的包吗?
  • 前两行是干什么的?\def\killdepth#1{{\raisebox{0pt}[\height][0pt]{#1}}}\newcommand\bjtname[1]{($(#1.C)!0.5!(#1.E)$) node[anchor=west]{\killdepth{#1}} }

感谢您的帮助。

我复制了手册的代码

\documentclass{standalone}
\usepackage[european, straightvoltages]{circuitikz}
\usepackage{siunitx}
\begin{document}

\def\killdepth#1{{\raisebox{0pt}[\height][0pt]{#1}}}
\newcommand\bjtname[1]{($(#1.C)!0.5!(#1.E)$) node[anchor=west]{\killdepth{#1}} }
\begin{circuitikz}[american, cute inductors]
\node [op amp](A1){\texttt{OA1}};
\draw (A1.-) to[short] ++(0,1) coordinate(tmp) to[R, l_=$R$] (tmp -| A1.out) to[short] (A1.out);
\draw (tmp) to[short] ++(0,1) coordinate(tmp) to[C=$C$] (tmp -| A1.out) to[short] (A1.out);
\draw (A1.+) to [battery2, invert] ++(0,-2.5) node[ground](GND){};
\draw (A1.-) to [L=$L$] ++(-2,0) coordinate(tmp) to[sV, l=$v_s$, fill=yellow] (tmp |-GND) node[ground]{};    
\draw (A1.out) to[R=$R_s$] ++(2,0) coordinate(bb) to[I, l_=$I_B$, invert] ++(0,2) node[vcc](VCC){};
\draw (bb) to[D, l=$D$, *-] ++(0,-2) coordinate(bb1) to[R=$R_m$] ++(0,-2) node[vee](VEE){};
\draw (bb) --++(1,0) node[npn, anchor=B](Q1){} \bjtname{Q1};
\draw (bb1) --++(1,0) node[pnp, anchor=B](Q2){} \bjtname{Q2};
\draw (Q1.E) -- (Q2.E) ($(Q1.E)!0.5!(Q2.E)$) to [short, *-o, name=S] ++(2.5,0) node[right]{$v_{o_Q}$};
\draw (S.s) to[european resistor, l=$Z_L$, *-] (S.s|-GND) node[ground]{};
\draw (Q1.C) -- (Q1.C|-VCC) node[vcc]{\SI{5}{V}};17\draw (Q2.C) -- (Q2.C|-VEE) node[vee]{\SI{-5}{V}};
\end{circuitikz}
\end{document}

答案1

好吧,一旦修复了代码片段以便可以编译,我至少可以回答这些问题:

  1. 你的电路中没有错误;请注意,通常是由于忘记了计算坐标中的+ or - expected闭合而引起的,例如(找到两个坐标之间的中点,参见 Ti$($(a)!0.5!(b)$)Z 手册 13.5“坐标计算”,大约第 145 页)。

  2. \bjtname是我在 0.9.7 版本中修复自动标签定位之前用来排版晶体管名称的宏;你可以在手册circuitikz第 3.17.4 节第 77 页左右看到更多注释:

    在此处输入图片描述

    我应该更改教程;现在写作应该node[npn](Q){Q}可以正常工作。谢谢你的提醒,我会尽快处理。如果你不熟悉宏,你可以看看这个很好的解释。(向下滚动到“定义命令”)。

  3. \killdepth是另一个宏;我在这里使用了纯 TeX 语法,这是我在手册中应该更改的另一件事。手册中有解释,我将在这里复制它,因为我认为我无法更好地解释它(没有版权问题,是我写的!)...

    在此处输入图片描述 在此处输入图片描述

    (第 17-18 页 --- 99% 的时间你可以忘记它,但是,TeX/LaTeX 主要是对排版很挑剔...)。

相关内容