
Ich habe folgenden Code:
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle}] { a -> {b, long node name} };
\end{document}
Das Ergebnis ist folgende:
Ich möchte, dass die Kante „a“ -> „langer Knotenname“ nicht von Ost nach Nord, sondern von Süd nach West verläuft. Ist dies möglich, während trotzdem nur ein \graph-Aufruf verwendet wird? Oder muss ich diese Kante manuell in einem zusätzlichen Befehl angeben?
(Das heißt, ich habe im Grunde das gleiche Problem wie in der FrageKantenanker in Tikz, aber ich möchte die Graphenzeichenfunktionen von TikZ verwenden, anstatt Kanten manuell zu erstellen.)
Antwort1
Um einen Westanker für den Knoten zu erhalten, long node name
können Sie verwenden right anchor=west
.
Code
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle},right anchor=west] { a -> {b, long node name} };
\end{document}
Ergebnis
Antwort2
Ich glaube, das ist es, was Sie wollen.
Ich habe nie verwendet \graph
. Normalerweise verwende ich für etwas wie das, was Sie gefragt haben, \node
s und anchor
s, und zwar wie folgt:
\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}
Natürlich muss ein angemessener Abstand zwischen den Knotenpunkten eingestellt werden. Andernfalls könnte die Pfeilspitze das Rechteck schneiden. Dies lässt sich jedoch nur durch Ändern der Pfeilspitzen vermeiden. Darüber hinaus könnten Sie gekrümmte Pfeile verwenden.