
次の 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
それよりも着色彼を使用する場合は、マニュアルで指定された構文を使用する必要があります。