
Tengo el siguiente código:
\documentclass[tikz]{standalone}
\usetikzlibrary{graphs}
\begin{document}
\tikz \graph[grow right sep=20,nodes={draw,rectangle}] { a -> {b, long node name} };
\end{document}
Lo que produce esta salida:
Me gustaría que el borde "a" -> "nombre de nodo largo" no vaya de este a norte sino de sur a oeste. ¿Es esto posible mientras se sigue utilizando una sola llamada \graph? ¿O necesito especificar esa ventaja manualmente en un comando adicional?
(Es decir, tengo básicamente el mismo problema que en la preguntaAncla de borde en tikz, pero quiero usar las capacidades de dibujo de gráficos de TikZ en lugar de crear bordes manualmente).
Respuesta1
Respuesta2
Nunca usé \graph
. La forma natural en que hago algo como lo que pediste es usando \node
s y anchor
s, de la siguiente manera:
\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}
Claro, debes establecer una distancia adecuada entre los nodos; si no es así, la punta de la flecha podría cruzar el rectángulo, pero no hay otra manera de evitarlo que cambiar las puntas de las flechas. Además, puedes utilizar flechas curvas.