[Tex/LaTex] How to draw this latex diagram. I need to, how to fix it

tikz-arrowstikz-pgftikz-styles

\documentclass{artilce}
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{tikz}
\tikzset{
      keep name/.style={
        prefix after command={
          \pgfextra{\let\fixname\tikzlastnode}
        }
      },
      partialbox/.style={
        keep name,
        append after command={
      ([xshift=#1]\fixname.north west) --
      (\fixname.north west) --
      (\fixname.south west) --
      ([xshift=#1]\fixname.south west)
      ([xshift=-#1]\fixname.north east) --
      (\fixname.north east) --
      (\fixname.south east) --
      ([xshift=-#1]\fixname.south east)
        }
      },
      partialbox/.default=15pt
    }


\begin{document}


    \begin{tikzpicture}
    \path[draw,rounded corners]
     node[partialbox,minimum height=30pt,align=center]
      at (0,4) (A) {\TeX};
    \path[draw,rounded corners]
     node[partialbox=30pt,minimum height=30pt,align=center]
      at (0,2) (B) {\LaTeX};
      \path[draw,rounded corners]
     node[partialbox=30pt,minimum height=30pt,fill=cyan!20]
       at (0,-1)
       (C)
      {PostScript};

    \path[draw,rounded corners]
     node[partialbox=30pt,minimum height=30pt,fill=cyan!20]
       at (-3,-1)
       (D)
      {PDF};
    \path[draw,rounded corners]
     node[partialbox=20pt,minimum height=30pt,fill=cyan!20]
       at (3,-1)
       (E)
      {DVI};


    %\path[draw,rounded corners,dashed]
    %node[partialbox,minimum height=30pt,align=center]
    %   at (4,-4)
    %   (C)
    %  {Some gffggfg};
    \draw[-latex]
      (A.east) -- ++(0pt,0pt) -| (E.north);
    \draw[-latex]
      (A.west) -- ++(0pt,0pt) -| (D.north);
    \draw[-latex]
      (B.east) -- ++(0pt,0pt) -| (E.north);
    \draw[-latex]
      (B.west) -- ++(0pt,0pt) -| (D.north);



    \draw[latex-latex]
      (D.east) -- ++(10pt,0pt) |- (C.west);

    \draw[latex-]
      (C.east) -- ++(10pt,0pt) |- (E.west);
    \draw[latex-]
      (D.south) -- ++(0pt,-25pt) -| (E.south);
    \end{tikzpicture}
\end{document}

enter image description here

enter image description here

Best Answer

Like this?

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{backgrounds}
\tikzset{
  partialbox/.style={draw,rounded corners,fill=white,text=red,
  minimum height=30pt,align=center},
  el/.style={text=blue,font=\sffamily\bfseries,align=center},
  ml/.style={font=\tiny,text=green!70!black,align=left,
    inner sep=0pt,outer sep=0.5pt,minimum height=0pt,}
}
\begin{document}
\begin{tikzpicture}[thick]
 \path[nodes=partialbox,local bounding box=upper]
   (0,4) node (A) {\TeX}
   (0,2) node (B) {\LaTeX};
 \path[nodes=partialbox,local bounding box=lower] (0,-1) node (C) {PostScript}
  (-4,-1)  
  node[label={[ml,anchor=north east]south west:(pdf\\ \hphantom{(}png\\ \hphantom{(}jpg)}] (D) {PDF} 
   (4,-1)  
  node[label={[ml,anchor=north west]south east:(eps)}] (E) {DVI};
 \begin{scope}[on background layer]
  \draw[fill=gray!20] ([xshift=-2em,yshift=2em]upper.north west)
   rectangle ([xshift=2em,yshift=-2em]upper.south east)
   node[anchor=south east,font=\tiny]{Source formats};
  \draw[fill=gray!20] ([xshift=-2em,yshift=2em]lower.north west)
   rectangle ([xshift=2em,yshift=-2em]lower.south east)
   ([yshift=2em]lower.north) node[anchor=north west,font=\tiny]{Output formats};
 \end{scope}
 \draw[-latex]
   (A.east)  -| ([xshift=1ex]E.north) node[el,pos=0.25,above]{tex};
 \draw[-latex]
   (A.west) -| ([xshift=-1ex]D.north)node[el,pos=0.25,above]{luatex,\\ xetex,\\ pdftex};
 \draw[-latex]
   (B.east)  -| ([xshift=-1ex]E.north)node[el,pos=0.25,above]{latex};
 \draw[-latex]  (B.west)-| ([xshift=1ex]D.north)node[el,pos=0.25,above]{lualatex,\\ xelatex,\\ pdflatex};
 \draw[latex-latex]
  (D.east) -- node[el,pos=0.5,above]{ps2pdf} 
  node[el,pos=0.5,below]{pdf2ps} (C.west);
 \draw[latex-]
  (C.east) --  node[el,pos=0.5,above]{dvips}  (E.west);
 \draw[latex-]
  (D.south) -- ++(0pt,-25pt) -| (E.south)
  node[el,pos=0.25,above]{dvipdfm};
\end{tikzpicture}
\end{document}

enter image description here