[Tex/LaTex] Drawing a block arrow in latex

blockdiagrams

In a block diagram, I want to connect two blocks with block arrow rather than a single arrow. Is there any LaTex command for that.

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

I have two main issues:

  1. Between Blocks C & D and between E & F, I want block arrow inside of the arrow obtained from the code.
  2. I want long text in last block to be accommodated inside the block or oriented in the vertical direction.

Best Answer

Do you mind arrow like red one on the picture below?

enter image description here

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

I modified your MWE with goal to make code concise as possible. For arrow I use shape single arrow from tikzlibrary shapes.arrows. An adjustbox can become a source of unexpected problems, so better solution is to accommodate node and font size accordingly. As you can see, I erase it.