The positioning of subscripts and superscripts are done by character width (CHARWD) and italic correction (CHARIC) if the nucleus is one character. Suppose the typesetting point before nucleus is typeset. Then subscript is placed to CHARWD and superscript to CHARWD+CHARIC positions.
This is not very well concept in TeX because this metric information is used for another purposes: CHARWD when next character is typeset in normal text and CHARIC when \/
primitive is used.
You can change the mentioned metric information if you know that the symbol will not used in normal text without sub/superscript. But this is very rare situation, so the following hint is only as an academic experiment.
Do tftopl msbm10 > msbm10.pl
in your working directory. Then edit the file msbm10.pl
in the section (CHARACTER O 106 ... this is blackboard F mentioned in your example. Decrease the CHARWD by 1mu, ie. by .05555 and add the CHARIC as 2mu, i.e. .111111. The result looks like:
(CHARACTER O 106
(CHARWD R 0.555557)
(CHARHT R 0.688889)
(CHARIC R 0.111111)
)
Then run pltotf msbm10.pl
. This process creates metric msbm10.tfm
in your working directory where it has a precedence, if you are working here. You can try your example in this directory. You will see that the positioning of F sub/super-scripts are as you desired without correction at macro level.
But I don't recommend this. The reason was mentioned above.
You can define the \F
macro more presicely. Instead
\newcommand\F{\mathbb{F}}
you can do (for example) following:
\def\F{\mathbb{F}\sbcorr{-2mu}{1mu}}
\def\sbcorr#1#2{\def\tmpa{#1}\def\tmpb{#2}\futurelet\next\sbcorrA}
\def\sbcorrA{\ifx\next_\expandafter\sbcorrB\fi}
\def\sbcorrB_#1{_{\mkern\tmpa#1}\futurelet\next\sbcorrC}
\def\sbcorrC{\ifx\next^\expandafter\sbcorrD\fi}
\def\sbcorrD^#1{^{\mkern\tmpb#1}}
Test: $\F(x), \F_a^b, \F$.