Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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}
share|improve this question

1 Answer 1

up vote 10 down vote accepted

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

share|improve this answer
4  
This probably will be the next diagram type of smartdiagram. –  Claudio Fiandrino Mar 2 '13 at 12:53

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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