TikZ: Erstellen Sie eine Abwärtskette von Knoten mit unterschiedlichen Höhen

TikZ: Erstellen Sie eine Abwärtskette von Knoten mit unterschiedlichen Höhen

Ich möchte eine Abwärtskette von TikZ-Knoten erstellen. Einige Knoten sind gedreht und können unterschiedliche Höhen haben.

Betrachten Sie die Ausgabe des MWE unten:

Bildbeschreibung hier eingeben

Die horizontale Kette passt sich den unterschiedlichen Breiten der Knoten an, die abwärts gerichtete nicht. Könnte das etwas mit der Drehung zu tun haben? Wissen Sie, wie ich die abwärts gerichtete Kette dazu bringen kann, Knotenüberschneidungen zu verhindern, wie es die horizontale tut?

\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}

Antwort1

Dies ist eine recht schnelle Problemumgehung, da die tikzpictureUmgebungen voneinander unabhängig sind:

\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}

Bildbeschreibung hier eingeben

verwandte Informationen