I didn't have the fonts so I changed the operator, but I think \mathinner does what you want here, puts some space before an ord, and doesn't stop a bin atom having bin spacing,
Top version in each of these:
\documentclass{article}
\usepackage{amsmath,amssymb}
\newcommand{\coerceSub}[3]{(\mathord{#1}{\smallfrown}\mathord{#2})_{#3}}
\begin{document}
In an operator application, the ``mathrel'' version looks better.
\begin{gather}
% OK
\mathinner{\coerceSub uv1} x \\
\mathrel{\coerceSub uv1} x \\
% Not OK: no space between operator and operand
\coerceSub uv1 x
\end{gather}
In an operator composition, the plain version looks better.
\begin{gather}
\mathinner{\coerceSub uw1} \circ c \\
% Not OK: no space between \circ and c
\mathrel{\coerceSub vw1} \circ c \\
% OK
\coerceSub vw1 \circ c
\end{gather}
\end{document}
Best Answer
Here's a slightly different version: I apply the shortening on both sides, for symmetry.
The shorthening depends on the value given to the parameter
\uHomskip
.When you decide for the amount you want, just set it in the preamble, for instance
The advantage of using
mu
units is that they automatically scale in subscripts/superscripts.If you don't want the shortening at the left, just remove the relevant kerns: