Einen Blockpfeil in Latex zeichnen

Einen Blockpfeil in Latex zeichnen

In einem Blockdiagramm möchte ich zwei Blöcke mit Blockpfeilen statt mit einem einzelnen Pfeil verbinden. Gibt es dafür einen LaTex-Befehl?

 \documentclass[10pt,a4paper]{article}
\usepackage{tikz}
\usepackage{adjustbox}
\usetikzlibrary{shapes,shadows,arrows,decorations.markings}
\begin{document}
\tikzstyle{decision}=[diamond,draw,fill=blue!50]
\tikzstyle{line}=[draw, -stealth,thick]
\tikzstyle{block}=[draw,rectangle,  text width=4.5 em, minimum height=10 mm,text centered,node distance=4 em] 
\begin{figure}[htbp]
\begin{adjustbox}{max width=0.9\textheight,center}   %% adjust max height
\begin{tikzpicture}[thick]
\node [block] (a) {A};
\node [block,right of=a,xshift=6em] (b) {B};
\node [block,right of=b,xshift=3.5em] (c) { C};
\node [block,right of=c,xshift=3.5em] (d) {D};
\node [block,right of=d,xshift=3.5em] (e) {E};
\node [block,right of=e,xshift=3.5em] (f) {Accomodating Text inside a block needed};
% ARROWS
\path [line] (a) -- (b);
\path [line] (b) -- (c);
\path [line] (c) -- (d);
\path [line] (d) -- (e);
\path [line] (e) -- (f);
\end{tikzpicture}
\end{adjustbox}
\end{figure}
\end{document}

Ich habe zwei Hauptprobleme:

  1. Zwischen den Blöcken C und D und zwischen E und F möchte ich einen Blockpfeil innerhalb des aus dem Code erhaltenen Pfeils.
  2. Ich möchte, dass langer Text im letzten Block innerhalb des Blocks untergebracht oder vertikal ausgerichtet wird.

Antwort1

Stört Sie der Pfeil wie der rote auf dem Bild unten?

Bildbeschreibung hier eingeben

 \documentclass[10pt,a4paper]{article}
\usepackage{tikz}
\usepackage[margin=25mm,showframe]{geometry}
%\usepackage{adjustbox}% <--- not needed
\usetikzlibrary{arrows,
                chains,% <--- new
                decorations.markings,
                shadows, shapes.arrows}

\tikzset{% <--- modified
    decision/.style = {diamond,draw, fill=blue!50},
        line/.style = {draw, -stealth, thick},
       block/.style = {rectangle, draw,  text width=4 em, minimum height=10 mm,
                       align=center}
        }
\makeatletter
\tikzset{suspend join/.code={\def\tikz@after@path{}}}
\makeatother

    \begin{document}              
\begin{figure}[htbp]
    \begin{tikzpicture}[thick,
          node distance = 0ex and 3em,
            start chain = A going right,
      every join/.style = {draw, -stealth, thick},
    block/.append style = {on chain=A, join}
                        ]
\node [block]   {A};% <-- A-1
\node [block,right=5em of A-1]    {B};
\node [block]   {C};
\node [block]   {D};
\node [block]   {E};% <-- A-5
\node [block,suspend join]  {Accom\-modating Text
                             inside a block needed};
\node [single arrow, draw=red, minimum height=3em, outer sep=0pt,
       right=0pt of A-5.east] {\vphantom{x}};
    \end{tikzpicture}
\end{figure}
    \end{document}

Ich habe Ihr MWE geändert, um den Code so prägnant wie möglich zu gestalten. Für den Pfeil verwende ich die Form single arrowaus Tikzlibrary shapes.arrows. Ein adjustboxPfeil kann zu einer Quelle unerwarteter Probleme werden, daher ist es eine bessere Lösung, Knoten und Schriftgröße entsprechend anzupassen. Wie Sie sehen, habe ich ihn gelöscht.

verwandte Informationen