我在 circuitikz 中使用范围时遇到问题。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{circuitikz}
\usepackage{siunitx}
%Inicio Preambulo
\ctikzset{%
monopoles/vcc/arrow={Triangle[width=0.8*\scaledwidth, length=\scaledwidth]},
monopoles/vee/arrow={Triangle[width=6pt, length=8pt]},
resistors/thickness=3,
}
%Fin Preambulo
\begin{document}
\ctikzsubcircuitdef{buffer}{in 1, out 1}{
coordinate (#1-in 1) to[C,l=$C$,*-*] ++(2,0) coordinate(A)
node[op amp, noinv input up, anchor=+, yscale=-1](OA){}
(A) to[R,l=$R$,*-*]++(0,-2) node[ground](GND){}
(OA.out) coordinate (#1-out 1)
(OA.-)--++(0,1) -| (OA.out)
}
\ctikzsubcircuitdef{inver}{in 1, out 1}{
coordinate (#1-in 1) to[R,l=$R_{1}$,*-*] ++(2,0) coordinate(B)
node[op amp, anchor=-](OA){}
(B) --++(0,1) to[R,l=$R_{2}$,*-*] ++(2.4,0) coordinate(C)
(C) -| (OA.out)
(OA.out) coordinate (#1-out 1)
(OA.+) --++(-0.3,0) --++(0,-0.4) node[ground](GND){}
}
\ctikzsubcircuitactivate{buffer}
\ctikzsubcircuitactivate{inver}
\begin{circuitikz}\draw
(0,0)\buffer{buf}{in 1}
(4.38,0.49)\buffer{buff}{in 1}
(8.76,0.98)\buffer{bufff}{in 1}
(13.14, 1.47)\inver{inver}{in 1}
(buf-out 1) -| (buff-in 1)
(buff-out 1) -| (bufff-in 1)
(buf-in 1) --++(0,3.5) coordinate(C)
(C) -| (inver-out 1)
;\end{circuitikz}
\end{document}
\begin{document}
\ctikzset{diodes/scale=0.6}
\begin{circuitikz}\draw
node[op amp, noinv input up, yscale=-1](OA){}
(OA.-) --++(0,1) coordinate(A) to[R,l=$R_{2}$,*-] ++(2.3,0) -| (OA.out) node[right]{$V_{o}$}
(OA.+) --++(0,-1) coordinate(B) to[R,l=$R$,*-] ++(2.3,0) -| (OA.out)
(A) to[C,l=$C$,*-*] ++(-2,0) node[ground](GND){}
(B) to[R,l=$R$] ++(-2,0) node[ground](GND){}
(A) --++(0,1) to[R,l=$R_{1}$,*-] ++(1.7,0) to[D, l=$D$, invert, fill=black] ++(0.5,0) -| (OA.out)
;\end{circuitikz}
\end{document}
\begin{document}
%\ctikzset{diodes/scale=0.6}
\begin{circuitikz}\draw
node[op amp, noinv input up, yscale=-1](OAF){}
(OAF.out) to[R, l=$R_{4}$,-*] ++(2,0) coordinate(A)
(OAF.+) --++(0,-1.5) coordinate(B) to[R,l=$R_{2}$,*-] ++(2,0) -| (A)
(-5,-1.99) node[op amp, noinv input up, yscale=-1](OAS){}
(B) to[R,l=$R_{1}$] ++(-3,0) -| (OAS.out)
(OAS.-) --++(0,1) coordinate(C) to[C,l=$C$] ++(2.3,0) -| (OAS.out)
(OAS.+) --++(-0.5,0) node[ground](GND){}
(-2,0.49) node[potentiometershape, rotate=-90,label=south:$R_{V3}$](P){}
(P.wiper) -| (OAF.-)
(P.east) node[vee](VEE){$V_{EE}$}
(P.west) node[vcc](VCC){$V_{CC}$}
(A) --++(0,3) coordinate (D) to[D, fill=black] ++(-3,0) to[R,l=$R_{5}$]++(-3,0) node[potentiometershape, rotate=-180, anchor=west,label=south east:$R_{V2}$](PP){} ++(-3,0)
(PP.east) -| (C)
(PP.west) --++(0.30,0) --++(0,-0.75) -| (PP.wiper)
(D) --++(0,1.5) to[D, fill=black, invert] ++(-3,0) to[R,l=$R_{3}$]++(-3,0) node[potentiometershape, rotate=0, anchor=east,label=south east:$R_{V1}$](PPP){} ++(-3,0)
(PPP.west) -| (C)
(PPP.east) --++(0.30,0) --++(0,0.75) -| (PPP.wiper)
;\end{circuitikz}
\end{document}
答案1
\documentclass{article}
\usepackage[margin=1cm,paperheight=17cm]{geometry}
\usepackage{tikz}
\usepackage{circuitikz}
\usepackage{siunitx}
%Inicio Preambulo
\ctikzset{%
monopoles/vcc/arrow={Triangle[width=0.8*\scaledwidth, length=\scaledwidth]},
monopoles/vee/arrow={Triangle[width=6pt, length=8pt]},
resistors/thickness=3,
}
%Fin Preambulo
\pagestyle{empty}
\begin{document}
\centering
\ctikzsubcircuitdef{buffer}{in 1, out 1}{
coordinate (#1-in 1) to[C,l=$C$,*-*] ++(2,0) coordinate(A)
node[op amp, noinv input up, anchor=+, yscale=-1](OA){}
(A) to[R,l=$R$,*-*]++(0,-2) node[ground](GND){}
(OA.out) coordinate (#1-out 1)
(OA.-)--++(0,1) -| (OA.out)
}
\ctikzsubcircuitdef{inver}{in 1, out 1}{
coordinate (#1-in 1) to[R,l=$R_{1}$,*-*] ++(2,0) coordinate(B)
node[op amp, anchor=-](OA){}
(B) --++(0,1) to[R,l=$R_{2}$,*-*] ++(2.4,0) coordinate(C)
(C) -| (OA.out)
(OA.out) coordinate (#1-out 1)
(OA.+) --++(-0.3,0) --++(0,-0.4) node[ground](GND){}
}
\ctikzsubcircuitactivate{buffer}
\ctikzsubcircuitactivate{inver}
\begin{circuitikz}\draw
(0,0)\buffer{buf}{in 1}
(4.38,0.49)\buffer{buff}{in 1}
(8.76,0.98)\buffer{bufff}{in 1}
(13.14, 1.47)\inver{inver}{in 1}
(buf-out 1) -| (buff-in 1)
(buff-out 1) -| (bufff-in 1)
(buf-in 1) --++(0,3.5) coordinate(C)
(C) -| (inver-out 1)
;\end{circuitikz}
\ctikzset{diodes/scale=0.6}
\begin{circuitikz}\draw
node[op amp, noinv input up, yscale=-1](OA){}
(OA.-) --++(0,1) coordinate(A) to[R,l=$R_{2}$,*-] ++(2.3,0) -| (OA.out) node[right]{$V_{o}$}
(OA.+) --++(0,-1) coordinate(B) to[R,l=$R$,*-] ++(2.3,0) -| (OA.out)
(A) to[C,l=$C$,*-*] ++(-2,0) node[ground](GND){}
(B) to[R,l=$R$] ++(-2,0) node[ground](GND){}
(A) --++(0,1) to[R,l=$R_{1}$,*-] ++(1.7,0) to[D, l=$D$, invert, fill=black] ++(0.5,0) -| (OA.out)
;\end{circuitikz}
%\ctikzset{diodes/scale=0.6}
\begin{circuitikz}\draw
node[op amp, noinv input up, yscale=-1](OAF){}
(OAF.out) to[R, l=$R_{4}$,-*] ++(2,0) coordinate(A)
(OAF.+) --++(0,-1.5) coordinate(B) to[R,l=$R_{2}$,*-] ++(2,0) -| (A)
(-5,-1.99) node[op amp, noinv input up, yscale=-1](OAS){}
(B) to[R,l=$R_{1}$] ++(-3,0) -| (OAS.out)
(OAS.-) --++(0,1) coordinate(C) to[C,l=$C$] ++(2.3,0) -| (OAS.out)
(OAS.+) --++(-0.5,0) node[ground](GND){}
(-2,0.49) node[potentiometershape, rotate=-90,label=south:$R_{V3}$](P){}
(P.wiper) -| (OAF.-)
(P.east) node[vee](VEE){$V_{EE}$}
(P.west) node[vcc](VCC){$V_{CC}$}
(A) --++(0,3) coordinate (D) to[D, fill=black] ++(-3,0) to[R,l=$R_{5}$]++(-3,0) node[potentiometershape, rotate=-180, anchor=west,label=south east:$R_{V2}$](PP){} ++(-3,0)
(PP.east) -| (C)
(PP.west) --++(0.30,0) --++(0,-0.75) -| (PP.wiper)
(D) --++(0,1.5) to[D, fill=black, invert] ++(-3,0) to[R,l=$R_{3}$]++(-3,0) node[potentiometershape, rotate=0, anchor=east,label=south east:$R_{V1}$](PPP){} ++(-3,0)
(PPP.west) -| (C)
(PPP.east) --++(0.30,0) --++(0,0.75) -| (PPP.wiper)
;\end{circuitikz}
\end{document}