
我有以下程式碼:
\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 呼叫的情況下這是否可能?或者我是否需要在額外的命令中手動指定該邊緣?
(也就是說,我的問題與問題中的問題基本上相同tikz 中的邊緣錨點,但我想使用 TikZ 的圖形繪製功能而不是手動建立邊。
答案1
答案2
我從來沒有用過\graph
。我做類似你所要求的事情的自然方法是使用\node
s 和anchor
s,如下所示:
\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}
當然,你必須設定節點之間適當的距離;如果不是這樣,箭頭可能會與矩形相交,但是除了改變箭頭之外沒有辦法避免這種情況。此外,您可以使用彎曲的箭頭。