受到 Paul Gessler 的回答的启发这个问题,我决定尝试一下,并调整下图以使用垂直坐标:
\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw
(0,0) node[op amp] (opamp) {}
(opamp.-) node(node1)[circ]{}
(node1) -- ++(0,1.5) to[R] ++(1.5,0) node(node2){} to[short] ++(1.5,0) to[R] ++(0,-2)
;
\end{circuitikz}
\end{document}
请注意,最后的坐标(0,-2)
是通过反复试验找到的。因此,我尝试使用垂直坐标以避免猜测它们。以下是我写的。我只是定义了坐标foo
并遵循了 Paul 的回答。本来希望得到完全相同的结果,但不幸的是它不符合要求:
\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw
(0,0) node[op amp] (opamp) {}
(opamp.-) node(node1)[circ]{}
(node1) -- ++(0,1.5) to[R] ++(1.5,0) node(node2){} to[short] ++(1.5,0) coordinate (foo) to[R] (foo |- (opamp.out)) to[short] (opamp.out)
;
\end{circuitikz}
\end{document}
Package pgf Error: No shape named (opamp is known. ...dinate (leftC) to[R] (leftC |- (opamp.out)
(x3)
Package tikz Error: Giving up on this path. Did you forget a semicolon?. ...inate (leftC) to[R] (leftC |- (opamp.out))
什么原因导致了这个错误?
答案1
如果你要指定基于和的垂直坐标(a)
,(b)
则语法为
(a |- b)
或者
(a -| b)
如果你还在坐标周围添加括号,则会出现错误。也就是说
(a |- (b))
将不起作用,因为 TikZ 将寻找名为(b
而不是 的形状或坐标b
。
因此,可以通过省略额外的括号来更正您的代码:
\documentclass[tikz,border=5pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw
(0,0) node[op amp] (opamp) {} (opamp.-) node(node1)[circ]{} (node1) -- ++(0,1.5) to[R] ++(1.5,0) node(node2){} to[short] ++(1.5,0) coordinate (foo) to[R] (foo |- opamp.out) to[short] (opamp.out) ;
\end{circuitikz}
\end{document}