Я хочу создать нисходящую цепочку узлов TikZ. Некоторые узлы повернуты и могут отличаться по высоте.
Рассмотрим результаты MWE ниже:
Горизонтальная цепь адаптируется к разной ширине узлов, а нисходящая — нет. Может ли это быть как-то связано с вращением? Знаете, как заставить нисходящую цепь предотвращать пересечения узлов, как это делает горизонтальная?
\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}
решение1
Это довольно быстрый обходной путь, поскольку tikzpicture
среды независимы друг от друга:
\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}