I don't believe there's a standard recommendation to answer your question, but it's probably not just a matter of personal preference either. A main criterion for good writing -- in any field, not just in mathematics! -- is the avoidance of all (unnecessary) ambiguity. One approach to keeping ambiguity low is to make sure that all symbols and notational conventions are explained at the outset. For instance, if you wrote something like
Let $\{\vec{v}_1,\vec{v}_2,\dots,\vec{v}_n\}$ denote a set of
$n$ elements of some vector space $V$.
in your paper, it should be clear to all readers that each \vec{v}_i
, i=1,\dots,n
, is a vector and that the subscript i
merely serves to distinguish among the $n$
vectors. No further clarity would be gained, in my view, if the arrow symbol were shifted to the right to make it straddle both the v
glyph and the subscript.
In contrast, suppose that the vector space V
happens to be R^n
and \vec{v}
is some n
-tuple. Now, there might be some ambiguity as to whether \vec{v}_i
denotes the i
-th element of v
(i.e., a scalar) or the i
-th n
-tuple out of some set of n
-tuples. If you need to refer to both types of variables in your paper, you might achieve a slight improvement in clarity by shifting the vector arrow to the right whenever you want to emphasize that you're dealing with an n
-tuple rather than with a scalar.
To be sure, my recommendation in the second case would be to find a different notational solution altogether, in order to avoid any possible ambiguity. For instance, I might write v_i
to denote the scalar quantity, i.e., I'd leave off the arrow entirely. I think that's much more direct and doesn't rely on your readers being alert enough to figure out on their own the meaning of a right-shifted arrow.
I managed to convert esvect
to Plain TeX. However, I couldn't get it to work in ConTeXt.
\catcode`@=11
% load fonts
\font\tenvec=vect10 at 10pt
\font\sevenvec=vect7 at 7pt
\font\fivevec=vect5 at 5pt
%% define new family
\newfam\vecfam
\textfont\vecfam=\tenvec
\scriptfont\vecfam=\sevenvec
\scriptscriptfont\vecfam=\fivevec
%% convert count register to hex
\def\thehex#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or
A\or B\or C\or D\or E\or F\fi}
%% define symbols
\mathchardef\fldr="3\thehex\vecfam 12 % adjust here to select another arrow
\mathchardef\montraita="3\thehex\vecfam 20
\mathchardef\montraitd="3\thehex\vecfam 23
%% copied from esvect.sty (with little adjustments)
\def\relbareda{\mathrel{\mathpalette\mathsm@sh\montraita}}
\def\relbaredd{\mathrel{\mathpalette\mathsm@sh\montraitd}}
\def\vv{\futurelet\ifstar\dovv}
\def\dovv{\ifx*\ifstar\expandafter\vvstar\else\expandafter\ESV@vecteur\fi}
\def\vvstar*#1#2{\ESV@vecteur{#1}_{\mkern-1mu\relax#2}}
\def\ESV@vecteur{\mathpalette{\overvect@\vectfill@}}
\def\vectfill@{\traitfill@\relbaredd\relbareda\fldr}
\def\traitfill@#1#2#3#4{%
$\m@th\mkern2mu\relax#4#1\mkern-1.5mu%on met \relbaredd au d\'ebut
\cleaders\hbox{$#4\mkern0mu#2\mkern0mu$}\hfill%remplit avec relbareda
\mkern-1.5mu#3$%
}
\def\overvect@#1#2#3{\vbox{\ialign{##\crcr%
\noalign{\kern-.7pt\nointerlineskip}#1#2\crcr%
\noalign{\kern-.3pt\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
%% We'd need these from plain.tex if we would run in ConTeXt
%\def\m@th{\mathsurround\zeropoint}
%\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th #1{#2}$}\finsm@sh}
%\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
\catcode`@=12
%% Test:
Some examples from the manual:
$\vv{E}$, $\vv{AB}$, $\vv{\imath}$ and $\vv{u}$
$\vv*{e}{r}$ and $\vv*{L}{\Delta}$
$\vv{E}_{\vv{u}_{\vv{u}}}$
\bye
Best Answer
Priming a vector denoted with the arrow is, as you discovered, not a really good thing to do. You want to prime the letter, not the whole construction.