在 CircuiTikz 中为环境定义 \newcommand

在 CircuiTikz 中为环境定义 \newcommand

我已经在 circuitikz 中为带有开放连接器的运算放大器制作了以下宏:

\newenvironment{opamp5}[5]
{
\begin{circuitikz}
\draw (0,0) node[op amp] (opamp) {};
\draw (-2,-0.49) to[short, o-] (opamp.+) (-2.2,-0.49) node[anchor=east] {${#1}$};
\draw (-2,0.49) to[short, o-] (opamp.-) (-2.2,0.49) node[anchor=east] {${#2}$};
\draw (-0.08,1.5) to[short, o-] (opamp.up) (-0.08,1.6) node[anchor=south] {${#3}$};
\draw (-0.08,-1.5) to[short, o-] (opamp.down) (-0.08,-1.6) node[anchor=north] {${#5}$};
\draw (1,0) to[short, -o] (2,0) -- (opamp.out) (2.1,0) node[anchor=west] {${#4}$};
\end{circuitikz}
}

要绘制带有标签的运算放大器,从正输入端开始顺时针移动到负 Vcc 端,只需输入我上面定义的环境 opamp5:

\begin{opamp5}
{1}{2}{3}{4}{5}
\end{opamp5}

我的问题是,除了将这个 circuitikz 图片设为环境之外,我还有没有什么方法可以将其定义为命令,以便链接到电路图的其他元素?我尝试使用相同的语法,并将其定义为 \newcommand,但 LaTeX 不喜欢这样。我的目标是拥有各种可以顺利链接在一起的新命令,而不是每次在电路图中需要运算放大器时都手动绘制运算放大器。如果我可以使用更短的语法来生成相同的图片,那么就不必开始和结束环境,这会方便得多。

谢谢

答案1

宏名称中不能包含数字(至少不采用一些技巧的话)。

以下操作正常:

\documentclass{article}
\usepackage{circuitikz}

\begin{document}

\newcommand\opampfive[5]
{
\begin{circuitikz}
\draw (0,0) node[op amp] (opamp) {};
\draw (-2,-0.49) to[short, o-] (opamp.+) (-2.2,-0.49) node[anchor=east] {${#1}$};
\draw (-2,0.49) to[short, o-] (opamp.-) (-2.2,0.49) node[anchor=east] {${#2}$};
\draw (-0.08,1.5) to[short, o-] (opamp.up) (-0.08,1.6) node[anchor=south] {${#3}$};
\draw (-0.08,-1.5) to[short, o-] (opamp.down) (-0.08,-1.6) node[anchor=north] {${#5}$};
\draw (1,0) to[short, -o] (2,0) -- (opamp.out) (2.1,0) node[anchor=west] {${#4}$};
\end{circuitikz}
}

\opampfive{1}{2}{3}{4}{5}
\end{document}

相关内容