如何将矩形框延伸到一侧并适合多个节点?

如何将矩形框延伸到一侧并适合多个节点?

如何延伸底线下方的虚线框?上部框坐标应保持在同一位置:

\documentclass[preview,border=12pt,12pt, varwidth=\maxdimen]{standalone}
\usepackage[americaninductors, europeanresistor]{circuitikz}
\usepackage{siunitx}
\usepackage{nccmath}
\usetikzlibrary{fit}
\usetikzlibrary{shapes.arrows}
\begin{document}
\sisetup{output-decimal-marker = {,}}

\begin{circuitikz}[every label/.style = {label distance=3mm,
                draw, inner sep=1.2mm,
                font=\bfseries}
    ]
    \ctikzset{wiper end arrow={Latex[width=4pt]}}


    \draw (0,-10) coordinate (p4)
    to[R, l_=$\underline{Z}_1$, name=Z1, mirror, -*] ++ (0, 4) coordinate (p1)
    to[R=$\underline{Z}_2$, name=Z2, label distance=2px, -*] ++ (4, 0) coordinate (p2)
    to[R=$\underline{Z}_3$, -*] ++ (0, -4) -| (p4)

    (p2) to[R=$\underline{Z}_5$, label distance=2px, -*] ++ (4, 0) coordinate (p30)
    to[R=$\underline{Z}_6$, -*] ++ (0, -4) -- ++ (-4, 0)

    (p30) to[short, -o] ++ (2, 0)
    -- ++ (1,0) -- ++ (0, -1) coordinate (aux1)
    to[pR, l=$\underline{Z}_a{=}\underline{Z}_7$, name=R3, *-] ++ (0, -2) coordinate (aux2)
    (aux1)  -|  (R3.wiper)
    (aux2) -- ++ (0, -1) -- ++ (-1,0) to[short, o-] ++ (-2, 0)

    (p1) -- ++ (0,2) to[R=$\underline{Z}_4$, label distance=2px] ++ (8,0) -- (p30)

    (p1) to [short, -o] ++ (-2,0)
    (p4) to [short, *-o] ++ (-2,0);

   %Dashed box with label inside
    \node [draw, dashed, fit={(Z1) (Z2)}, inner xsep=0.5cm, inner ysep=0.8cm](dashed box){};
    \node [draw, thick, outer sep=1mm, above right] at (dashed box.south west) {A1};

\end{circuitikz}
\end{document}

在此处输入图片描述

应该是这样的(底部电线下方标记“A1”,电阻器 Z1 仅作为示例):

在此处输入图片描述

答案1

在这种情况下,我的建议是将最后两行更改为如下方式:

  1. 将“A1”放在你想要的位置:
%% draw the label before (remember the anchor rotate rigidly with the component!)
    \path (Z1.north west) ++(-.3,-.3) node[draw, thick, below left](lab A1) {A1};
  1. 之后,使用对称适合框(注意的使用Z2label,它是自动创建的标签节点的名称circuitikz):
%Dashed box with label inside
    \node [draw, dashed, fit={(Z1) (Z2) (Z2label) (lab A1)}, inner sep=4pt](dashed box){};

结果如下:

在此处输入图片描述

完整的代码如下:我从独立版中删除了previewvarwidth东西(创建了满满的盒子),并删除了every label,这只影响本国的Z 标签,而不是circuitikz那些。

\documentclass[border=12pt,12pt,]{standalone}
\usepackage[americaninductors, europeanresistor]{circuitikz}
\usepackage{siunitx}
\usepackage{nccmath}
\usetikzlibrary{fit}
\usetikzlibrary{shapes.arrows}
\begin{document}
\sisetup{output-decimal-marker = {,}}

\begin{circuitikz}
    \ctikzset{wiper end arrow={Latex[width=4pt]}}

    \draw (0,-10) coordinate (p4)
    to[R, l_=$\underline{Z}_1$, name=Z1, mirror, -*] ++ (0, 4) coordinate (p1)
    to[R=$\underline{Z}_2$, name=Z2, label distance=2px, -*] ++ (4, 0) coordinate (p2)
    to[R=$\underline{Z}_3$, -*] ++ (0, -4) -| (p4)

    (p2) to[R=$\underline{Z}_5$, label distance=2px, -*] ++ (4, 0) coordinate (p30)
    to[R=$\underline{Z}_6$, -*] ++ (0, -4) -- ++ (-4, 0)

    (p30) to[short, -o] ++ (2, 0)
    -- ++ (1,0) -- ++ (0, -1) coordinate (aux1)
    to[pR, l=$\underline{Z}_a{=}\underline{Z}_7$, name=R3, *-] ++ (0, -2) coordinate (aux2)
    (aux1)  -|  (R3.wiper)
    (aux2) -- ++ (0, -1) -- ++ (-1,0) to[short, o-] ++ (-2, 0)

    (p1) -- ++ (0,2) to[R=$\underline{Z}_4$, label distance=2px] ++ (8,0) -- (p30)

    (p1) to [short, -o] ++ (-2,0)
    (p4) to [short, *-o] ++ (-2,0);

    %% draw the label before (remember the anchor rotate rigidly with the component!)
    \path (Z1.north west) ++(-.3,-.3) node[draw, thick, below left](lab A1) {A1};

   %Dashed box with label inside
    \node [draw, dashed, fit={(Z1) (Z2) (Z2label) (lab A1)}, inner sep=4pt](dashed box){};

\end{circuitikz}
\end{document}

您可以通过使用 A1 移动块来调整矩形:注意命令,它是

\path (Z1.north west) ++(-.3, -.3) node...

意思是:获取电阻西北点的位置(旋转后,现在位于左下角),移动相对地相对于它(在本例中,向左移动 0.3 格,向下移动 0.3 格)并定位“A1”标签。

如果将其更改++(-.3, -.3)++(-1, -2)

在此处输入图片描述

或者位置 A1 相对于 P4:

 \path (p4) ++(-.1,-.1) node[draw, thick, below left](lab A1) {A1};

在此处输入图片描述

相关内容