[Tex/LaTex] Minus sign too big in superscript inside subscript in math display mode

math-modesubscriptssuperscripts

The following code:

Inline mode $\|f\|_{H^{-1}}, \|f\|_{_{H^{-1}}}, \|f\|_{_{\scalebox{0.7}{$H^{-1}$}}},\|f\|_{_{\scalebox{0.5}{$H^{-1}$}}}$, 
display mode $$\|f\|_{H^{-1}}, \|f\|_{_{H^{-1}}}, \|f\|_{_{\scalebox{0.7}{$H^\{-1}$}}},\|f\|_{_{\scalebox{0.5}{$H^{-1}$}}}$$

Results in the following:

Result

I want to have $H^{-1}$ as a sub-index, in the first case it is just too big to be a subindex.

I added a second subindex in the second, the H looks good, but the -1 is just too big, in particular the minus sign.

I added scalebox, in the last two cases, which seems to give a better looking result, and it actually scale correctly the term H^{-1}, but I hate to use it, I can see this failing once I have to modify this for other formats, but I'm not sure.

Is there a way to tell that minus sign to scale appropriately with respect to the sub-index level used?


It seems that one way to solve the problem is to correctly set the norms either by grouping or defining a norm command as perfectly shown in some answer.

I still found that the minus sign is too big in what follows:

\begin{equation}
  \begin{aligned}
    &f^{-1}(x) &&L_{f^{-1}}[\eta] \\
    &f(x)   &&L_{f}[\eta]
  \end{aligned}
\end{equation}

enter image description here

The "-1" sign takes even more width than the "f" in the first case, in the seconds it gets close to the width of the $L_f$.

I imagine I could use a different symbol, i.e. a minus in $1-2$ could be different that in $-1$.

Best Answer

(I revised this answer thoroughly after receiving additional comments from the OP.)

I think there are two issues that need to be addressed: One is the spacing around the - ("minus") sign when it occurs in scriptscript-style math mode, and the other is the vertical positioning of the subscript formulas that follow a "norm" (double vertical bar) symbol.

Regarding the first issue, I suggest you define some macros like this

\newcommand{\mym}{\mkern-1.5mu-\mkern-3mu 1}
\newcommand\finv{f^{\mym}}
\newcommand\Hinv{H^{\mym}}

and then write $L_{\finv}[\eta]$ instead of L_{f^{-1}}[\eta]. Note that this approach simply reduces the amount of whitespace around the scriptscript-style minus symbol. It does not reduce the size of either the minus symbol or the digit 1; I'm concerned that reducing the size of the scriptscript-style glyphs would also reduce their basic readability. If you think the compressed -1 still takes up too much space, you should probably coming up with new and space-saving notation to denote the inverse of a function. E.g., something like f* or \bar{f}...

Regarding the second issue: Note that the formula \|f\|_{H^{-1}} may be broken down into two sub-formulas: \|f\| and _{H^{-1}}. What you're encountering is that TeX has special rules for placing subscripts that follow a "math atom" such as \|: The subscripts (and superscripts) are set in a cramped mode. While this is OK in most settings, it's clearly not optimal for your use case. I can think of two remedies: Either change the first sub-formula from \|f\| to {\|f\|}, changing its type to "math-ordinary", or -- more LaTeX-ishly -- define a macro called \norm (say) using the machinery of the mathtools package, and then write \norm{f} instead of {\|f\|}.

Combining the solutions to the two issues, I think you should write \norm{f}_{\Hinv} instead of \|f\|_{H^{-1}}.

enter image description here

\documentclass{article}
\usepackage{mathtools} % for "\DeclarePairedDelimiter" macro
\DeclarePairedDelimiter\norm\lVert\rVert     % create a "\norm" macro
\newcommand{\mym}{\mkern-1.5mu-\mkern-3mu 1} % short for "my minus one"
\newcommand\finv{f^{\mym}}
\newcommand\Hinv{H^{\mym}}

\begin{document}
$L_{f^{-1}}[\eta]$ vs.\ $L_{\finv}[\eta]$

\bigskip
\emph{Original code}

\quad$\|f\|_{H^{-1}}\quad\|f\|_{\Hinv}$

\bigskip
\emph{Employ grouping}

\quad${\|f\|}_{H^{-1}}\quad{\|f\|}_{\Hinv}$

\bigskip
\emph{Dedicated \emph{\texttt{\textbackslash norm}} macro}

\quad$\norm{f}_{H^{-1}}\quad\norm{f}_{\Hinv}$
\end{document}