
次のコードがあります:
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle}] { a -> {b, long node name} };
\end{document}
次のような出力が生成されます:
エッジ「a」->「長いノード名」を東から北ではなく南から西に移動させたいと思います。これは、\graph 呼び出しを 1 つだけ使用しても可能ですか? それとも、追加のコマンドでそのエッジを手動で指定する必要がありますか?
(つまり、私は基本的に質問と同じ問題を抱えているのですtikz のエッジ アンカーただし、手動でエッジを作成する代わりに、TikZ のグラフ描画機能を使用したいと思います。
答え1
答え2
私は を使用したことがありません\graph
。あなたが尋ねたことと同じようなことを私が自然に行う方法は、次のように\node
s とs を使用することです。anchor
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node[draw] (a) {a};
\node[draw,anchor=west] (b) at ($(a)+(1cm,0)$) {b};
\node[draw,anchor=west] (c) at ($(a)+(1cm,-1cm)$) {long node name};
\draw[->] (a) -- (b);
\draw[->] (a.south) -- (c.west);
\end{tikzpicture}
\end{document}
もちろん、ノード間に適切な距離を設定する必要があります。そうしないと、矢印の先が長方形と交差する可能性がありますが、矢印の先を変更する以外にこれを回避する方法はありません。さらに、曲線矢印を使用することもできます。