如何延伸底线下方的虚线框?上部框坐标应保持在同一位置:
\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
在这种情况下,我的建议是将最后两行更改为如下方式:
- 将“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};
- 之后,使用对称适合框(注意的使用
Z2label
,它是自动创建的标签节点的名称circuitikz
):
%Dashed box with label inside
\node [draw, dashed, fit={(Z1) (Z2) (Z2label) (lab A1)}, inner sep=4pt](dashed box){};
结果如下:
完整的代码如下:我从独立版中删除了preview
和varwidth
东西(创建了满满的盒子),并删除了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};