Как мне следует читать текущее «расстояние между метками» TikZ?

Как мне следует читать текущее «расстояние между метками» TikZ?

Я решил, что мне не нравится поведение функциональности меток TikZ. Я хочу получить метки, которые позиционируются с использованием якоря напротив указанного угла метки. Так, например, если метка будет указана в списке параметров узла как , [..., label = {210: my label}, ...]то метка должна быть позиционирована под углом 210 с использованием ее (метки) 30якоря (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 для его хранения, мой код сломается. Есть ли лучший способ?

Связанный контент