我应该如何读取当前的 TikZ“标签距离”?

我应该如何读取当前的 TikZ“标签距离”?

我决定不喜欢 TikZ 标签功能的行为。我想获取使用与指定标签角度相反的锚点定位的标签。因此,例如,如果标签在节点选项列表中声明为,[..., label = {210: my label}, ...]则应使用其(标签的)30锚点将标签定位在角度 210 处(210 +/- 180 是 30 模 360)。(TikZ 标签定位逻辑不会这样做。相反(根据 3.00 手册),它会根据角度为标签选择 8 个锚点之一north,,,...。)north easteastnorth 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 键来存储它,我的代码就会中断。有没有更好的方法?

相关内容