How to change arrow tip in tikz

113.4k views Asked by At

Is there a simple way to increase the size of an arrow tip using something like:

\tikzset{myptr/.style=->, ????}

without designing a new arrow style from scratch?

2

There are 2 answers

4
MattAllegro On BEST ANSWER

One solution, very quick, to just scale the arrow head is number %2 in the following:

\documentclass[multi=false,tikz,border=2mm]{standalone}
\usetikzlibrary{arrows,decorations.markings}

\begin{document}

\begin{tikzpicture}
%1
\draw [->,>=stealth] (0,.5) -- (2,.5);
%2
\draw [decoration={markings,mark=at position 1 with
    {\arrow[scale=3,>=stealth]{>}}},postaction={decorate}] (0,0) -- (2,0);
\end{tikzpicture}

\end{document}

This produces:

enter image description here

(sorry for excessive zoom).

Much more in the answers to this question and in this answer, that I used as a source.

Addendum

\tikzset approach. This code:

\documentclass[multi=false,tikz,border=2mm]{standalone}
\usetikzlibrary{arrows,decorations.markings}

\begin{document}

\begin{tikzpicture}
\tikzset{myptr/.style={decoration={markings,mark=at position 1 with %
    {\arrow[scale=3,>=stealth]{>}}},postaction={decorate}}}
%1
\draw [->,>=stealth] (0,.5) -- (2,.5);
%2
\draw [myptr] (0,0) -- (2,0);
\end{tikzpicture}

\end{document}

produces the same output as the above one (source: PGF Manual, section 2.8).

Obviously you can use -Latex instead of stealth.

0
Tom On

There is a new solution, see https://latexdraw.com/exploring-tikz-arrows/#t-1610685307397. It allows changing both the length and width of arrows:

\documentclass[border=1mm]{standalone}
 
\usepackage{tikz}
\usetikzlibrary{arrows.meta,arrows}


\begin{document}
 
\begin{tikzpicture}
  \draw [-{Stealth[length=3mm, width=2mm]}] (0,0.5) -- (1,0.5);
  \draw [-stealth] (0,0) -- (1,0);
\end{tikzpicture}
 
\end{document}

enter image description here