[Tex/LaTex] Adjusting the size of an arrow

scalingtikz-arrowstikz-pgf

I would like to make the width of an arrowhead larger. Is there a simple way to do this without defining a new arrowhead type? For instance, I would like to be able to write something like \draw[->,arrow head width=20pt].

To see what I have in mind, and why, consider the following:

\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[->,line width=1pt] (0,0) to (1,0);
\end{tikzpicture}
\scalebox{.01}{
\begin{tikzpicture}
\draw[->,line width=100pt] (0,0) to (100,0);
\end{tikzpicture}
}
\end{document}

enter image description here

I would like to be able to adjust the second picture so that it looks identical to the first picture. There are a number of elegant answers on other questions regarding ways of making arrowheads scale nicely and whatnot, but as you can see, I want more or less the opposite — a solution that doesn't respond/adjust on its own, so I can tweak the size of the arrow manually.

(As for why I am using a scalebox here, it has to do with tikz's inability to do floating point calculations, cf Avoiding `Dimension too large' and `ill-formatted floating point' errors in tikz)

Best Answer

Use the TikZ library arrows.meta and then you can scale the arrow heads as you wish. Here are a few examples.

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}

\begin{tikzpicture}
\draw[->,line width=4pt] (0,0) to (1,0);
\end{tikzpicture}

\begin{tikzpicture}
\draw[-{>[scale=2.5,
          length=2,
          width=3]},line width=0.4pt] (0,0) to (1,0);


\draw[-{>[scale=2.5,
          length=2,
          width=6]},line width=0.4pt] (0,-1) to (1,-1);


\draw[-{>[scale=2.5,
          length=6,
          width=3]},line width=0.4pt] (2,0) to (3,0);
\end{tikzpicture}

\end{document}

enter image description here