我有一张包含一些节点的图表,我想在多张图纸上重复这些节点。节点的位置对于每张图纸来说都应该相同,但我想改变绘制的边以及实际显示或隐藏的节点。
目前我有类似的东西
\node (a) at (0,0) {$æA$};
\node (b) at (2.5,0) {$æB$};
\node (c) at (1,-2) {$æC$};
\node (d) at (2.2,-2.5) {$æD$};
在每次绘图开始时重复。但如果我想更改布局,我必须在所有地方更新此代码。
现在我可以为这种情况编写一个宏。但我感兴趣的是,我是否可以将其作为样式应用于绘图。
答案1
我找到了以下解决方案。它没有定义坐标,这也很有用,但它通过样式提供了位置。
首先定义使用以下方式设置位置的样式at
:
\tikzset{
layout/.style={
a/.style={at={(0,0)}},
b/.style={at={(2.5,0)}},
c/.style={at={(1,-2)}},
d/.style={at={(2.2,-2.5)}}
}
}
然后对于每个图形:
\begin{tikzpicture}[layout]{
\node[a] (a) {A};
\node[b] (b) {B};
\node[c] (c) {C};
\node[d] (d) {D};
}
如果我想隐藏一个节点,我会\node[a] (a) {};
改为\coordinate[a] (a);
。