0

I have this arrow which works fine if it is used with a node:

\node[draw, single arrow,
        minimum height=9mm, minimum width=1mm,
        single arrow head extend=0mm,
        anchor=west]

but how can I get the same arrow with \draw and in an "angled"-version like (a) |- (b)?

1
  • 1
    Coud you please add a small but complete example document?
    – leandriis
    Commented Mar 22, 2020 at 11:26

2 Answers 2

3

If I have correctly understand the OP, this is my attempt:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\newcommand{\angledArrowDown}[3]{
\coordinate (A) at #2;
\coordinate (B) at #3;
\node[anchor=south west,inner sep=#1/4] (StPoint-1)at (A){};
\node[anchor=north west,inner sep=#1/4] (StPoint-2) at (A){};
\node[anchor=south west,inner sep=#1/2] (EndPoint-1)at (B){};
\node[anchor=south east,inner sep=#1/2] (EndPoint-2) at (B){};
\draw (StPoint-1.north west) -| (EndPoint-1.north) -- (EndPoint-1.north east) -- (B) 
-- (EndPoint-2.north west) -- (EndPoint-2.north) |- (StPoint-2.south west) -- cycle;}

\newcommand{\angledArrowUp}[3]{
\coordinate (A) at #2;
\coordinate (B) at #3;
\node[anchor=south west,inner sep=#1/4] (StPoint-1)at (A){};
\node[anchor=north west,inner sep=#1/4] (StPoint-2) at (A){};
\node[anchor=north east,inner sep=#1/2] (EndPoint-1)at (B){};
\node[anchor=north west,inner sep=#1/2] (EndPoint-2) at (B){};
\draw (StPoint-1.north west) -| (EndPoint-1.south) -- (EndPoint-1.south west) -- (B) 
-- (EndPoint-2.south east) -- (EndPoint-2.south) |- (StPoint-2.south west) -- cycle;}
\begin{document}
\begin{tikzpicture}
%\angledArrowDown{thick}{star point}{end point below start point}
\angledArrowDown{5mm}{(0,1)}{(1,-1)}

%\angledArrowUp{thick}{star point}{end point above start point}
\angledArrowUp{5mm}{(0,-3)}{(1,-1)}
\end{tikzpicture}
\end{document}

enter image description here

1

Just for fun: some arrow style of that sort. The advantage is that you can draw the arrow with simple commands like

\draw[outlined arrow] (-1,3) -| (0,0);  

The disadvantage is that, unlike vi pa's nice answer or this answer, it overpaints the interior in white. The appearance is controlled by various pgf keys (see the examples in the shifted scope).

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[outlined arrow/.code={\tikzset{oarrow/.cd,#1},
    \def\pv##1{\pgfkeysvalueof{/tikz/oarrow/##1}}%
    \edef\locallw{\the\pgflinewidth}%
    \tikzset{-{Triangle[open,fill=white,line width=\locallw,
        length=\pv{head length},width=\pv{head width}]},
    line width=\pv{line width},
    postaction={-,draw=white,line width=\pv{line width}-2*\locallw,
        shorten <=\locallw,shorten >=\pv{head length}-1.5*\locallw}%
    }},oarrow/.cd,line width/.initial=0.6cm,head width/.initial=1.2cm,
    head length/.initial=1cm]
 \draw[outlined arrow] (-1,3) -| (0,0); 
 \draw[outlined arrow] (-1,-3) -| (0,0);
 \begin{scope}[xshift=5cm]
  \draw[blue,thick,outlined arrow={line width=0.7cm,head width=1.4cm}] (-1,3) -| (0,0); 
  \draw[red,outlined arrow={line width=0.5cm,head length=0.8cm}] (-1,-3) -| (0,0);
 \end{scope}
\end{tikzpicture}
\end{document}

enter image description here

Curved arrows do not work with this style, you may want to look e.g. here for a possible way to do curved arrows.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .