I want to crop \rightarrow so that the head remains but the tail is shorter. The reason I want a short-tailed rightarrow "\shortrightarrow" is because of my ultimate goal: to obtain a double headed arrow with the same width as the original.
In the source2e \rightarrow is defined as follows:
393 \DeclareMathSymbol{\rightarrow}{\mathrel}{symbols}{"21}
RELATED: Arrow heads on \twoheadrightarrow
With a "\shortrightarrow" I can easily construct the desired double headed rightarrow with the same width as the original. (n.b. \twoheadrightarrow has too small arrow heads; the answer provided in the above RELATED link does not have the same width as the original \rightarrow)
I tried to investigate how \xrightarrow is defined in hopes of being able to modify the code so that I can obtain a short-tailed \rightarrow. Unfortunately I found that the code uses \cleaders to render multiple copies of \relbar, so my investigation ended.
Now I resort to asking the TeX community for advice. Is it possible to crop glyphs?
EDIT: I want to provide an example of how I managed to create a custom \hookrightarrow so that the width is the same as \rightarrow. My ultimate goal is motivated by my recent ability to define \inj. (inj is short for injection; the double headed arrow will be used for surjection 'surj')
\newcommand{\inj}{\mathrel{\mathpalette\inj@{}}}
\newcommand{\inj@}[2]{\sbox0{$\m@th#1\lhook$}\ooalign{%
$\m@th#1\rightarrow$\cr
\smash{\fboxrule=0pt\fboxsep=0pt\fcolorbox{red}{white}{$\m@th#1\lhook\kern-.333\wd0$}}}}

\twoheadrightarrow(fromamssymb)? Found it the comprehensive LaTeX symbol list – daleif Aug 28 '19 at 10:36