エッジ引用に名前を追加することは可能ですか?

エッジ引用に名前を追加することは可能ですか?

次の 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>には適用されませedgeedge quotes

"<text>"<options>

マニュアルに記載されているように、ではなく<options>に適用する場合は となります。edge quotesedge

比較する

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

レッドハリー

これは と に適用されます。redもちろん、パス上のノードはそれらのパスから属性を継承するため、この違いは関係ありません。したがって、次のように言うと、My name is Harry.blueedge

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

Harryとの両方edgeになりますblue

ブルーハリー

しかし、これはblue直接適用されるからHarryではなく、パス上のノードがデフォルトでそのパスから色を継承するからである。ただし、名前はこのように継承されない。したがって、名前 Harryそれよりも着色彼を使用する場合は、マニュアルで指定された構文を使用する必要があります。

関連情報