REVISED APPROACH
Comments from the OP indicated that my original solution, while perhaps nice to look at, relied on changing the math font to ptmx, which was not acceptable. So the issue seemed to be that the math kerning of the ptmx font was OK, but that of ComputerModern (CM) was inadequate for the current task.
With that in mind, I decided to declare the ptmx math alphabet separately, and use it only for positioning of the CM glyphs. EDITED to declare a new math alphabet. Then, when I am stacking the *
over/before the given argument, I use the \mathptmx
version of the argument (that I just declared) to govern the offset from the right hand.
To account for arguments that are not pure alphabetic glyphs, I start out with a catcode test. In this MWE below, you see my approach on the top line, compared with the raw ComputerModern construction of $^*<letter>$
on the second line.
EDITED (8/2016) to work in subscript math styles, per an e-mail request of a reader. For this, I use the \ThisStyle{...\SavedStyle...}
feature of the scalerel
package to import the math style to places where it would otherwise be lost. RE-EDITED to \leavevmode
to handle use-case in \substack
.
\documentclass{article}
\usepackage{amssymb,stackengine,xcolor,scalerel,mathtools}
\stackMath
\def\nsa#1{\leavevmode\ThisStyle{%
\def\stackalignment{r}\def\stacktype{L}%
\ifcat A#1
\mkern-6.5mu\stackon[0pt]{\SavedStyle\phantom{f}#1}
{\SavedStyle^*\mkern-1.1mu\phantom{\mathptmx{#1}}}%
\else
\mkern-4mu\stackon[0pt]{\SavedStyle\phantom{f}#1}
{\SavedStyle^*\mkern-1.7mu\phantom{#1}}%
\fi
}}
\def\R{\mathbb{R}}
\DeclareMathAlphabet{\mathptmx}{OML}{ztmcm}{m}{it}
\parskip 1ex
\begin{document}
\centering
$(\nsa\R) ~ (\nsa V) ~ (\nsa X) ~ (\nsa A) ~ (\nsa M)$
vs.
$(^*\R) ~ (^*V) ~ (^*X) ~ (^*A) ~ (^*M)$
\hrulefill
Other cases requiring EDIT to \textbackslash nsa:
$(x_n)_{n\in\nsa{\mathbb N}}$.
$\bigcup_{\substack{U\subseteq X\\ \nsa U\subseteq \mathrm{Fin}(\nsa X)}}$
\end{document}

ORIGINAL APPROACH (ptmx math)
This tries to align the * approximately where the right end of an f might be. The first row shows the kerning I was trying to emulate (the model); the second row shows the implemented macro; while the third row shows how the macro succeeds at its goal (the method, with *
overlaying right end of f
)
\documentclass{article}
\usepackage{amssymb,mathptmx,stackengine,xcolor}
\stackMath
\def\nsa#1{\def\stackalignment{r}\def\stacktype{L}%
\mkern-1mu\stackon[0pt]{\mkern-2mu\phantom{f}#1}{^*\mkern-1.7mu\phantom{#1}}}
\def\R{\mathbb{R}}
\begin{document}
$ f\R ~fV ~fX ~fA$ The model
$\nsa\R ~ \nsa V ~ \nsa X ~ \nsa A$ The macro
\def\nsa#1{\def\stackalignment{r}\def\stacktype{L}%
\mkern-1mu\stackon[0pt]{\color{cyan}\mkern-2mu f#1}{^*\mkern-1.7mu #1}}
$\nsa\R ~ \nsa V ~ \nsa X ~ \nsa A$ The method
\end{document}
