![我的电路中的接地对齐](https://linux22.com/image/426518/%E6%88%91%E7%9A%84%E7%94%B5%E8%B7%AF%E4%B8%AD%E7%9A%84%E6%8E%A5%E5%9C%B0%E5%AF%B9%E9%BD%90.png)
我希望能够将左侧的质量与右侧的质量对齐:我尝试了几种方法,但都无济于事,我无法对齐。我也无法将 15kW 指示置于左侧阻力上方。感谢您的帮助
\documentclass[border=1mm]{standalone}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[european, straightvoltages]{circuitikz}
\usepackage{siunitx}
\usepackage{tabularx}
\usetikzlibrary{babel}
\begin{document}
\begin{circuitikz}[voltage dir=RP]
\draw (0,2.5) node[en amp](opamp){\texttt{LM358}}
(opamp.up) to[crossing] ++(0,0.5) node[above]{\SI{5}{\volt}}
(opamp.down) node[ground]{}
;
\draw (opamp.-) --++(0,1) -| (opamp.out) to[short] ++(0.5,0) coordinate(Rsortie) to[R, l^=$\SI{1}{\kilo\ohm}$] ++(0,-2) node[ground] (GND){}++(0,-0.5);
\draw (opamp.+) --++(-1,0) coordinate(deuxR) to[R, l_=$\SI{10}{\kilo\ohm}$] ++(0,-2) node[ground] {} (GND -|deuxR);
\draw (deuxR) to[R, l^=$\SI{15}{\kilo\ohm}$] ++(-3.5,0) to[short, -o] ++(-0.5,0) coordinate(depart);
\draw (Rsortie) to[short, -o] ++(1.5,0) coordinate(Vs);
\draw (Vs |- GND) node[ground]{} to[open, v>=$V_s$] (Vs);
\draw (Vs) node[above]{A1};
\draw (depart) node [above] {D11};
\end{circuitikz}
\end{document}
答案1
我会按照以下方式绘制电路,从左到右书写,因为我觉得这样更自然。因此,我将从
\draw (0,0) node[above]{D11} to[R=\SI{15}{\kohm}, o-] ++(3,0) coordinate(corner-in)
to [R=\SI{10}{\kohm}] ++(0,-3) % this -3 will fix the gnd line
node[tlground](GND){};
现在让我们定位运算放大器并将其连接到 GND:
\draw (corner-in) -- ++(1,0) node[en amp, anchor=+](opamp){\texttt{LM358}}
(opamp.down) -- (opamp.down|-GND) node[tlground]{};
现在,我觉得输入的标准位置en amps
有点局促。快速浏览手册后,我发现解决方案是\ctikzset{tripoles/en amp/input height=0.45}
;我会把它放在序言中(完整代码稍后发布)。
下一步是关闭缓冲反馈回路并添加电源。我建议不要使用交叉的东西,但如果你想要,解决方案可能是:
\draw (opamp.up) to[crossing, name=X] ++(0,1) node[vcc]{\SI{5}{V}};
\draw (opamp.-) |- (X.center) -| (opamp.out);
注意我如何给交叉口命名,然后使用锚点X.center
画线 --- 所以现在我可以改变++(0,1)
那边,任何东西都会回到原位。|-
和-|
非常方便 Ti钾Z 快捷方式。
现在让我们完成带有负载电阻和输出电压指示的电路。此时,我决定tlground
将ground
有小尾巴,并将地电平移高——注意,这只是改变一数字并搜索并替换为tlground
。ground
最终代码是
\documentclass[border=2mm]{standalone}
\usepackage[european, RPvoltages, siunitx, straightvoltages]{circuitikz}
\ctikzset{tripoles/en amp/input height=0.45}
\begin{document}
\begin{circuitikz}
\draw (0,0) node[above]{D11} to[R=\SI{15}{\kohm}, o-] ++(3,0) coordinate(corner-in)
to [R=\SI{10}{\kohm}] ++(0,-2) % this -2 will fix the gnd line
node[ground](GND){};
\draw (corner-in) -- ++(1,0) node[en amp, anchor=+](opamp){\texttt{LM358}}
(opamp.down) -- (opamp.down|-GND) node[ground]{};
\draw (opamp.up) to[crossing, name=X] ++(0,1) node[vcc]{\SI{5}{V}};
\draw (opamp.-) |- (X.center) -| (opamp.out);
\draw (opamp.out) -- ++(0.5,0) coordinate(rload)
to[short, -o] ++(1.5,0) coordinate(out) node[above]{A1};
\draw (rload) to[R=\SI{1}{\kohm}] (rload|-GND) node[ground]{};
\draw (out) to[open, v^=$V_s$] (out|-GND) node[ground]{};
\end{circuitikz}
\end{document}
请注意,最后一张截图是用 完成的evince
,而前面的截图是用 完成的okular
,它对抗锯齿线条有一个奇怪的想法……
最后,真正让我开始使用 的circuitikz
是,现在,只需进行一些微小的更改(只需更改en amp
为op amp
,稍微提高一点vcc
— 再次更改一个数字! — 并\ctikzsetstyle{romano}
在加载包后添加某处),您就可以
最后要注意的是:唯一的绝对坐标是(0,0)
起始处的。移动它,电路就会跟随;这非常适合创建重复项,或者创建可以重复使用的基本块(我通常为它们创建宏)。
答案2
像这样吗?
\documentclass[border=1mm]{standalone}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[european, straightvoltages]{circuitikz}
\usepackage{siunitx}
\usepackage{tabularx}
\usetikzlibrary{babel}
\begin{document}
\begin{circuitikz}[voltage dir=RP]
\draw (0,2.5) node[en amp](opamp){\texttt{LM358}}
(opamp.up) to[crossing] ++(0,0.5) node[above]{\SI{5}{\volt}}
(opamp.down) node[ground]{}
;
\draw (opamp.-) --++(0,1) -| (opamp.out) to[short] ++(0.5,0) coordinate(Rsortie) to[R, l^=$\SI{1}{\kilo\ohm}$] ++(0,-2) node[ground] (GND){}++(0,-0.5);
\draw (opamp.+) --++(-1,0) coordinate(deuxR) to[R, l_=$\SI{10}{\kilo\ohm}$] ++(0,-1.66) node[ground] {} (GND -|deuxR);
\draw (deuxR) to[R, l_=$\SI{15}{\kilo\ohm}$] ++(-3.5,0) to[short, -o] ++(-0.5,0) coordinate(depart);
\draw (Rsortie) to[short, -o] ++(1.5,0) coordinate(Vs);
\draw (Vs |- GND) node[ground]{} to[open, v>=$V_s$] (Vs);
\draw (Vs) node[above]{A1};
\draw (depart) node [above] {D11};
\end{circuitikz}
\end{document}
我没有对你的例子做太多改动,只改了两件事。
为了使 15 kΩ 电阻的标签位于电阻上方,我将
l^=$\SI{15}{\kilo\ohm}$
其改为 。这是因为电阻是从右到左绘制的,因此和l_=$\SI{15}{\kilo\ohm}$
颠倒了。^
_
为了让左侧的地面与右侧的地面垂直对齐,我只需更改节点的放置位置即可。在这里,我只是尝试了不同的值,直到看起来足够对齐,但通常确保对齐的一个好方法是使用绝对坐标来放置对象,而不是相对于其他对象放置对象。