Можно ли добавлять имена в кавычки?

Можно ли добавлять имена в кавычки?

Следующий MWE работает так, как и ожидалось:

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{quotes}

\begin{document}
\begin{tikzpicture}
  \path (0,0) edge node[auto] (label) {label} (1,1);
  \draw (label.south west) rectangle (label.north east);
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Однако, когда я пытаюсь заменить строку кода

\path (0,0) edge node[auto] (label) {label} (1,1);;

с

\path (0,0) edge ["label",name=label] (1,1);

Я получаю сообщение об ошибке «Нет неизвестной фигуры с именем fr0»...

Я ожидал, что согласно описанию в руководстве TikZ (стр. 237) должна быть возможность добавлять имя в кавычки:

Подробно, когда загружена библиотека кавычек, каждый раз, когда пара ключ-значение в списке параметров, переданных ребру или команде пути, начинается с ", пара ключ-значение фактически должна быть строкой следующего вида:

"<text>"’<options>

Эта строка преобразуется в следующее:

edge node=node [every edge quotes]<options>]{<text>}

Вопросы:

  • можно ли добавить имя к кавычкам на краю, которое впоследствии можно будет использовать в качестве координат, как показано на изображении выше?
  • если возможно, то как это сделать?

решение1

Ваш код не соответствует указанному синтаксису.

Работаем с более минимальным примером:

\documentclass[tikz]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}
  \path (0,0) edge ["My name is Harry."{name=Harry}] (1,1);
  \draw (Harry.south west) rectangle (Harry.north east);
\end{tikzpicture}
\end{document}

Гарри

Когда ты говоришь

<options>, "<text>"

<options>применяются к edgeне к edge quotes. Вы должны использовать

"<text>"<options>

как сказано в руководстве, если вы хотите <options>применить к , edge quotesа не к edge.

Сравнивать

  \path (0,0) edge [blue, "My name is Harry."{name=Harry, red}] (1,1);

красный Гарри

что относится redк My name is Harry.и blueк edge. Часто, конечно, эта разница не имеет значения, поскольку узлы на путях наследуют атрибуты от этих путей. Так что если вы просто скажете

  \path (0,0) edge [blue, "My name is Harry."{name=Harry}] (1,1);

и то Harryи другое edgeбудет blue.

синий Гарри

Но это не потому, blueчто применяется напрямую, Harryа только потому, что узлы на путях наследуют цвета от этих путей по умолчанию. Однако имена не наследуются таким образом. Поэтому, если вы хотитеимя Harryскорее, чемраскрашиваниеего, необходимо использовать синтаксис, указанный в руководстве.

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