12

Please consider the following example of an arrow I would like to draw in a tikzpicture-environment:

arrow

My MWE draws a single arrow but only with one head. Does anyone know how I can add a second head as shown in the picture above (i.e. an inverted triangle)?

enter image description here

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes,arrows}

\begin{document}


\tikzstyle{MyArrow} = [
    single arrow,
    draw=none,
    single arrow head extend=0ex,
    text centered,
    fill=black,
    node distance=4cm
    ]



\begin{figure}

    \centering
    \begin{tikzpicture}

    \node[MyArrow,name=a1] {\textcolor{white}{Beschaffung}};
    \node[MyArrow,name=a2,right of=a1]  {\textcolor{white}{Produktion}};

    \end{tikzpicture}

\end{figure}


\end{document}
10

As said in the comment, this is the new type of diagram of the smartdiagram package, available from version 0.2.

In order to obtain the same result displayed below, some customization is needed because by default each item in the sequence has different color.

The code (much more compact with respect to the manual definition):

\documentclass[tikz,border=2pt,png]{standalone}
\usepackage{smartdiagram}

\begin{document}
\smartdiagramset{uniform sequence color=true,
  sequence item uniform color=gray!50!black,
  sequence item border color=gray!50!white,
  sequence item text color=gray!50!white,
  sequence item border size=\pgflinewidth,
}
\smartdiagram[sequence diagram]{Beschauffung,Produktion}
\end{document}

First version

I won't use the single arrow shape for this, but rather the signal one from the library shapes.symbols.

You can customized it with signal from=west and signal to=east to achieve the desired heads.

An example:

\documentclass[tikz,border=2pt,png]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}

\tikzset{product size/.style={minimum width=2cm, 
    minimum height=1cm,
  },
  product/.style={
    draw,signal, 
    signal to=east, 
    signal from=west,
    product size,
    fill=gray!50!black,
    draw=gray!50!white,
    text=gray!50!white,
  },
}
\begin{document}

\begin{tikzpicture}
\node[product] (first) {Beschauffung};
\node[product, anchor=west] at (first.east){Produktion};
\end{tikzpicture}

\end{document}

The result:

enter image description here

Here is a method to do things in a simpler manner and automatically:

\documentclass[tikz,border=2pt,png]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}

\tikzset{product size/.style={minimum width=2cm, 
    minimum height=1cm,
    text height=1ex,
  },
  product/.style={
    draw,signal, 
    signal to=east, 
    signal from=west,
    product size,
    fill=gray!50!black,
    draw=gray!50!white,
    text=gray!50!white,
  },
}

\newcommand{\diagram}[1]{%
 \foreach \x[count=\xi, count=\prevx from 0] in {#1}{%
  \ifnum\xi=1
    \node[product] (x-\xi) {\x};
  \else
    \node[product,anchor=west] (x-\xi) at (x-\prevx.east) {\x};
  \fi
 }
}


\begin{document}

\begin{tikzpicture}
\diagram{One,Two,Three}
\end{tikzpicture}

\end{document}

The result:

enter image description here

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.