При использовании пользовательского стиля пути в графике tikz метка кавычек не печатается

При использовании пользовательского стиля пути в графике tikz метка кавычек не печатается

Я могу нормально размещать метки на обычных краях, но если к краю применить стиль, метка перестает применяться.

Есть идеи, что происходит/как это исправить?

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,quotes}
\begin{document}
\tikz[hv path/.style = {to path={-| (\tikztotarget)}}]
\graph[grow down sep, branch right = 4em] {
A ->["this prints"] B ->{C,D};
A ->[hv path,"this doesn't"] D;
}; 
\end{document}

решение1

Узлы фактически применяются, однако они не отображаются, поскольку to pathобъявление hv pathне содержит \tikztonodesмакрос, который затем будет расширен до узлов, собранных в какой-то момент библиотекой quotes.

Полное и правильное определение hv path:

hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}

Узлы по умолчанию размещаются в точке pos = .5(= midway) вдоль пути. В обычных линиях-tos это фактическая середина линии. В ортогональных путях -|это |-угол. Позиция pos = .75(= near end) находится в средней точке второй части. (См. такжеУзел на соединенном пути TikZ.)

Клавишу swap(или ее сокращение ') можно использовать для размещения узла вдоль пути на другой стороне. (Граф использует внутренне параметр, autoкоторый по умолчанию равен auto=left. swapКлавиша меняет его на auto=rightи наоборот.)

Код

\documentclass[tikz]{standalone}
\usetikzlibrary{graphs,quotes}
\begin{document}
\tikz[hv path/.style = {to path={-| (\tikztotarget) \tikztonodes}}]
  \graph[grow down sep, branch right = 4em] {
    A ->["this prints", '] B ->{C,D};
    A ->[hv path,"this doesn't" near end] D;
  }; 
\end{document}

Выход

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

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