在 circuitikz multiwire 中:如何指定标签位置?

在 circuitikz multiwire 中:如何指定标签位置?

Circuitikz 有很好的

\draw (a) to[multiwire=n] (b);

选项,在导线上画一条斜线来表示总线宽度。它将斜线和标签 n 放在中间。有没有方便的方法将它放在其他地方?常见的 tikz 选项(如“近端”)不起作用。这里没有其他与多线相关的问题不相关。

答案1

约翰·科米洛扎尔科注释:circuitikz将组件定位在路径坐标的中间to。更改它并不简单,因为您应该考虑组件大小和当前路径的缩放比例……

作为一种解决方法,如果您需要定位其中的许多,您可以使用一个宏(啊,TeX 的强大功能);下面是一个适用于 0.1 到 0.9 之间位置的肮脏的黑客技术:

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\newcommand{\mwire}[3]{% args: position (0.1-0.9), label, final coordinate
    % remove `node{x}` which is here just for debug
    coordinate(tmp1) #3 node{x} coordinate(tmp2)
    (tmp1) -- ($(tmp1)!{#1-0.1}!(tmp2)$) to[multiwire=#2] ($(tmp1)!{#1+0.1}!(tmp2)$) -- (tmp2)
}
\begin{document}
\begin{tikzpicture}[]
    \draw (0,2) \mwire{0.7}{2}{++(3,0)};
    \draw (0,1) \mwire{0.2}{2}{++(3,0)};
    \draw (0,0) \mwire{0.7}{4}{++(3,0)} to[R] ++(2,0);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容