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) に配置されます。通常のラインツーでは、これはラインの実際の中央にあります。直交パスでは-||-これはコーナーにあります。位置pos = .75(= near end) は、2 番目の部分の中間点にあります。(結合された TikZ パス上のノード

キーswap(またはそのショートカット') を使用すると、反対側のパスに沿ってノードを配置できます。(グラフは内部的にautoのデフォルトのオプションを使用しますauto=leftswapキーはこれを に切り替え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}

出力

ここに画像の説明を入力してください

関連情報