Here are two possible solutions:
Convert \overset
to \vec
Substituting the first command to the standard vector notation gives a different, non-customizable arrow format; so the given arrow notation can be used in your document to indicate vectors (at your discrection even user-defined parameter conventions).
Here is the MWE:
\documentclass{scrartcl}
%
\usepackage{amsmath}
\usepackage{glossaries}
%
\makeglossaries
\newglossaryentry{symb}{%
name={\ensuremath{\vec{A}}},
description={Description}%
}
%
\begin{document}
%
Works: $\vec{A}$ \\
Now even this one works: \gls{symb}
\printglossary[type=main]
%
\end{document}
Output:

Protect the command \overset
If you want more customization inside the overset arguments, simply protect this command inside the definition of \ensuremath{}
by adding \protect
before the considered lines of code only inside the name field.
Here is the MWE:
\documentclass{scrartcl}
%
\usepackage{amsmath}
\usepackage{glossaries}
%
\makeglossaries
\newglossaryentry{symb}{%
name={\ensuremath{\protect\overset{\rightarrow}{A}}}, % this is now protected
description={Description}%
}
%
\begin{document}
%
Works: $\overset{\rightarrow}{A}$\\
Now even this one works: \gls{symb}
\printglossary[type=main]
%
\end{document}
And here is the desired output:

\overset
, so the most logical thing to do is switch to\vec{A}
, that works correctly. On an alternative, add\protect
before the commandoverset
. – TheVal Oct 14 '13 at 13:31