请考虑以下我想在tikzpicture
环境中绘制的箭头的示例:
我的平均能量损失画了一个single arrow
但只有一个头。有人知道我如何添加第二个头,如上图所示(即倒三角形)吗?
\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}
答案1
正如评论中所说,这是smartdiagram
包,从 0.2 版本开始可用。
为了获得下面显示的相同结果,需要进行一些定制,因为默认情况下序列中的每个项目都有不同的颜色。
代码(相对于手册定义来说更加紧凑):
\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}
第一个版本
我不会使用这个single arrow
形状,而是使用signal
来自库的形状shapes.symbols
。
您可以使用和进行定制,signal from=west
以signal to=east
实现所需的头部。
一个例子:
\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}
结果:
这是一种以更简单且自动的方式完成事情的方法:
\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}
结果: