如何将节点宽度存储在变量中?

如何将节点宽度存储在变量中?

考虑以下节点:

\node (foo) [draw] { This is a fancy caption };

我试图将宽度存储foo在一个变量中,以便我可以相应地设置其他节点的宽度。这种方法对我有用:

\path let \p1=($(foo.west)-(foo.east)$), \n1 = {veclen(\p1)-\pgflinewidth} in 
      node (bar) [draw, minimum width=\n1] { Sor  };

问题是它\n1不是持久的,也就是说,我不能将它用于下一个节点,而每次我都需要提前调用 let。

是否可以将\n1其存储在变量中以便以后可以访问?像这样:

\def\mywidth{\n1} % pseudocode --> this doesn't work

答案1

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{math,calc}
\begin{document}
\begin{tikzpicture}
\node(foo) [draw] { This is a fancy caption };
\tikzmath{
coordinate \wNode;
\wNode1=(foo.east) - (foo.west);
\n1= {veclen(\wNodex1,\wNodey1) - \pgflinewidth};
}
\node[draw=red,opacity=0.5,minimum width=\n1 pt] {}; 
\end{tikzpicture}
\end{document}

节点宽度变量

相关内容