我决定不喜欢 TikZ 标签功能的行为。我想获取使用与指定标签角度相反的锚点定位的标签。因此,例如,如果标签在节点选项列表中声明为,[..., label = {210: my label}, ...]
则应使用其(标签的)30
锚点将标签定位在角度 210 处(210 +/- 180 是 30 模 360)。(TikZ 标签定位逻辑不会这样做。相反(根据 3.00 手册),它会根据角度为标签选择 8 个锚点之一north
,,,...。)north east
east
north west
由于标签节点将在宏中创建,而不是直接输入 TikZ 代码,因此似乎只需自己创建标签节点而不实际使用“标签”功能就足够简单了。但是,仍然需要获得正确的答案label distance
。我希望标签距离能够响应 TikZ 键的变化label distance
,就像真正的 TikZ 标签一样。
但是,似乎没有 /tikz/ 或 /pgf/ 键来存储label distance
。有/tikz/label distance
,但这似乎是用于设置标签距离而不是存储它;如果您尝试使用 读取它\pgfkeysgetvalue
,您将得到\relax
。查看 TikZ 的代码,似乎当前标签距离存储在名为 的宏中\tikz@label@distance
。所以我尝试了复制此宏的值并使用它来定位替代标签的代码,它似乎工作正常。
我的问题是,这是我“应该”确定标签距离的方式吗?我的意思是,我在这里所做的是“深入了解”Tikz/PGF 并修改其内部结构。如果 TikZ/PGF 的更高版本重命名宏\tikz@label@distance
或开始使用 PGFkeys 键来存储它,我的代码就会中断。有没有更好的方法?