我使用 LaTeX 和 CircuiTikZ 来创建电路图。使用 CircuiTikZ 文档和此社区中的许多问题和答案,我能够很好地浏览它。
我必须重新创建一个 8 针 DIP 芯片,其中包含一个内部连接到引脚的放大器符号。我可以使用以下代码创建它:
\begin{tikzpicture}
% DIP chip
\draw (0,0) node[dipchip,
num pins=8,
external pins width=0.3,
external pad fraction=3,
hide numbers](C){};
% amplifier
\draw (C) node[op amp, scale=0.571](OA){};
% amplifier connection to the chip pins
\draw (OA.-) |- (C.bpin 2)
(OA.+) |- (C.bpin 3)
(OA.out) |- (C.bpin 6);
\end{tikzpicture}
结果正是我想要的:
创建此图像的主要目的是将 dipchip 引脚与放大器 + 和 - 输入对齐。我通过手动调整放大器的大小(如scale=0.571
代码中所示)来实现这一点,直到其输入完全对齐。由于这是一项非常繁琐的反复试验任务,我想知道是否有更简单(可能更优雅)的方法来实现相同的结果。
谢谢
答案1
Ti 中的维度钾Z 是相对于基本长度的(不容易获得,有点可惜),但每个元素通常都有不同的方式来使用各种参数。例如,芯片中引脚之间的距离是multipoles/dipchip/pin spacing
;输入之间的距离op amp
是tripoles/op amp/input height
,但它是相对于组件的高度(tripoles/op amp/height
);这基本上是历史性的。
然后,组件可以按以下方式缩放样式(amplifiers/scale
和chips/scale
)...
因此,这就是您可以让小型放大器输入之间的距离与芯片相匹配的方法:
\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
% \ctikzset{amplifiers/scale=1.5} % this will change the relative sizes
\begin{document}
\begin{tikzpicture}
\pgfmathsetmacro{\myscale}{
\ctikzvalof{multipoles/dipchip/pin spacing}*
\ctikzvalof{chips/scale} /
(\ctikzvalof{tripoles/op amp/height}*
\ctikzvalof{tripoles/op amp/input height}*
\ctikzvalof{amplifiers/scale})
}
\draw (0,2) node[]{\myscale}; % show the magic number
% DIP chip
\draw (0,0) node[dipchip,
num pins=8,
external pins width=0.3,
external pad fraction=3,
hide numbers](C){};
% amplifier --- position it relative to the chip
%(so I can move it around)
\draw (C.bpin 2) node[op amp, scale=\myscale, anchor=-](OA){};
% amplifier connection to the chip pins
\draw (OA.-) |- (C.bpin 2)
(OA.+) |- (C.bpin 3)
(OA.out) |- (C.bpin 6);
\end{tikzpicture}
\end{document}
还要注意,我对内部运算放大器符号使用了相对定位,这样您就可以移动主芯片而不改变任何东西。