TikZ: crea una cadena descendente de nodos con diferentes alturas

TikZ: crea una cadena descendente de nodos con diferentes alturas

Quiero crear una cadena descendente de nodos TikZ. Algunos nodos están girados y pueden diferir en altura.

Considere el resultado del MWE a continuación:

ingrese la descripción de la imagen aquí

La cadena horizontal se adapta a los distintos anchos de los nudos, mientras que la descendente no. ¿Podría esto tener algo que ver con la rotación? ¿Sabes cómo puedo hacer que la cadena descendente evite intersecciones de nodos como lo hace la horizontal?

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{chains,shapes}
\tikzstyle{arrow}
  = [ shape=single arrow
    , single arrow head extend=.75em
    , single arrow head indent=.25em
    , minimum width=3em
    , draw
    ]
\tikzstyle{rarrow}
  = [ shape=single arrow
    , single arrow head extend=.75em
    , single arrow head indent=.25em
    , minimum width=3em
    , draw
    , rotate=-90
    ]
\begin{document}
    \begin{tikzpicture}[start chain,every node/.style={on chain,join}]
        \node[arrow] {foo};
        \node[arrow] {foo};
        \node[arrow] {foooooooooo};
        \node[arrow] {foo};
    \end{tikzpicture}\\
    \begin{tikzpicture}[start chain=going below,every node/.style={on chain,join}]
        \node[rarrow] {foo};
        \node[rarrow] {foo};
        \node[rarrow] {foooooooooo};
        \node[rarrow] {foo};
    \end{tikzpicture}

\end{document}

Respuesta1

Esta es una solución bastante rápida ya que los tikzpictureentornos son independientes entre sí:

\documentclass{article}
\parindent=0pt
\usepackage{tikz}
\usetikzlibrary{chains,shapes}
\tikzstyle{arrow}
  = [ shape=single arrow
    , single arrow head extend=.75em
    , single arrow head indent=.25em
    , minimum width=3em
    , draw
    ]
\tikzstyle{rarrow}
  = [ shape=single arrow
    , single arrow head extend=.75em
    , single arrow head indent=.25em
    , minimum width=3em
    , draw
    ]
\begin{document}
    \begin{tikzpicture}[start chain,every node/.style={on chain,join}]
        \node[arrow] {foo};
        \node[arrow] {foo};
        \node[arrow] {foooooooooo};
        \node[arrow] {foo};
    \end{tikzpicture}\\
\rotatebox{-90}{%
    \begin{tikzpicture}[start chain,
 every node/.style={on chain,join}]
        \node[rarrow] {foo};
        \node[rarrow] {foo};
        \node[rarrow] {foooooooooo};
        \node[rarrow] {foo};
    \end{tikzpicture}}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada