这是代码。
\documentclass[12pt,letterpaper]{article}
\usepackage[left=20mm,top=30mm,bottom=30mm,right=20mm]{geometry}
\usepackage[siunitx]{circuitikz} % circuit package and include electrical units in our labels
\begin{document}
\begin{center}
\begin{circuitikz} [american voltages] \draw
(0,6) rectangle (2,7) node[pos=.5] (m) {$K_M$} (m.4) to[short,-, i>=$$] ++(0,-1.5) (m.2) to[short,-, i<=$$] ++(0,2);
\draw(0,4) rectangle (2,5) node[pos=.5] {$\mbox{\huge$\times$}$};
\draw(0,2) rectangle (2,3) node[pos=.5] (m) {$K$} (m.1) to[short,-, i<=$$] ++(-3,0);
\draw(0,0) rectangle (2,1) node[pos=.5] {$N()$} (0,0.5) -- (-1,0.5) -- (-1,4.5) -- (0,4.5);
\draw(5,2.5) node[mixer] (m) {}
(m.1) to[short,-, i<=$$] ++(-2.5,0)
(m.2) to[short,-, i<=$$] ++(0,-1.5) --(2,0.5)
(m.3) to[short,-] ++(1,0)
(m.4) to[short,-, i<=$$] ++(0,1.5) --(2,4.5);
\end{circuitikz}
\end{center}
\end{document}
这张图片展示了我从上面的代码中得到的结果。
这就是我在这里想要实现的目标。
答案1
举个例子,这就是你可以用 做的事情。块元素大多是正方形的(你可以扩展通用元素,但评论中指出的circuitikz
选项可能更好)。我只实现了图表的一部分。@js bibra
\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}[]
% \node (modtext) {Modifying $I_M$};
\draw (0,0) coordinate(in up)
to[twoport, name=blX, t={\Huge$\times$}, >] ++(2,0)
-- node[midway, above] {$K_M I_M$} ++(1,0) coordinate(kmim);
\draw (0,-2) coordinate(in)
to[twoport, t=$K$, >, name=blK] ++(2,0)
-- node[midway, above] {$K I$} ++(1,0)
node[mixer, anchor=west](M){};
% input join
\draw (in up) -- (in) node[circ]{} -- ++(-1,0) node[inputarrow, midway]{};
% mixer arrow
\path (M.west) node[inputarrow]{}
(M.north) node[inputarrow,rotate=-90]{};
% upper link
\draw (kmim) -| (M.north);
% output
\draw (M.east) -- node[inputarrow]{} ++(2,0) node[right]{$O$};
% block above
\draw ([yshift=3cm]blX.north)
-- node[inputarrow, rotate=-90](IA){} ++(0,-1)
to[twoport, name=blKm, t=$K_M$] (blX.north)
node[inputarrow, rotate=-90]{};
% text above
\path(IA) node[anchor=base east]{Modifying}
node[anchor=base west]{$I_M$};
% dashed box
\node[draw, dashed, fit=(blKm) (blK) (M) (in)]{};
\end{tikzpicture}
\end{document}