I have an old notebook that uses the now obsolete Arrow package. For example, I have an expression containing

Arrow[{1,2}, {6,7}, HeadLength -> 0.005, HeadCenter -> 0.5]


I suppose I know how to translate this in absence of options. I should have

Arrow[{{1,2}, {6,7}}]


but how can I obtain the same arrow shape as given by the old-style options using Arrowheads?

You can replace old arrows to new with the following pattern

arw = Arrow[pt__List, opts : OptionsPattern[]] :>

Graphics[Arrow[{1, 2}, {6, 7}, HeadLength -> 0.1]] /. arw

Graphics[{Arrowheads[0.1], Arrow[{{1, 2}, {6, 7}}]}]


Arrowheads specifies the length of arrowheads as a fraction of the total width of the graphic. If you need another behavior see this question.

To take into account HeadCenter and HeadWidth you can specify your own graphics for the arrowheads

arw2 = Arrow[pt__List, opts : OptionsPattern[]] :>
Arrow[{pt}]};

Show[Graphics[Table[Arrow[{0, 0}, {Sin[x], Cos[x]},

• Thank you for the pattern, but I prefer not to use it and switch to the new format. I wonder were in the Help System they say that Arrowheads[{{a,b}}] has the same meaning of the old HeadLength->a and HeadCenter->b. – enzotib Nov 3 '13 at 13:35
• Ok, thanks again. But I am now realizing there is an interpretation error, because the old HeadCenter gave the position of the junction marked with the red circle in this image: dl.dropboxusercontent.com/u/503888/arrow.png – enzotib Nov 3 '13 at 13:58