Typesetting a limit from below correctly

As others have already explained, TeX doesn't add mathrel spacing when in subscripts and there are good reasons for this. However, due to the fact that normal letters are italic in math mode, the \uparrow symbol seems to clash with them.

You can define a new symbol for “limit from below”:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\toup}{%
  \mathrel{\nonscript\mkern-1.2mu\mkern1.2mu{\uparrow}}%
}

\begin{document}

\begin{gather*}
R\uparrow 1 \qquad \lim_{R\uparrow 1} \\
R\toup 1 \qquad \lim_{R\toup 1}
\end{gather*}

\end{document}

What does the strange \nonscript\mkern-1.2mu\mkern1.2mu do? The spacing after \nonscript is only inserted when TeX is in display or text style; so, in these cases, the negative kern compensates for the positive kern and the net amount is zero; in script or scriptscript styles the negative kern will not be considered, so only the positive kern will act.

enter image description here

You can clearly see how such a seemingly small space (1mu is 1/18 of an em, so, at 10pt size with Computer Modern, 1.2mu is just 2/3 of a point) becomes quite visible in the output. Never be too generous with kerns.


The problem here is that this approach is actually correct. I have prepared an example which shows you that the behavior of \to and \uparrow is the same here. The only problem is that this looks stupid due to the shape of the italic R and the up pointing arrow.

% arara: lualatex

\documentclass{amsart}
\usepackage{lua-visual-debug}

\begin{document}
\begin{gather}
    \lim_{R\mathrel{\uparrow} 1}\\  
    \lim_{R\mathrel{\to} 1}\\       
    R\mathrel{\uparrow} 1\\
    R\mathrel{\to} 1
\end{gather}
\end{document}

I have put the relational symbols in \mathrel. this is kind of doubled but shows you the little boxes in the following screenshot.

enter image description here

As there is nothing to "correct" here, there is just something to tweak: As shown in Johannes' comment, you could add a little space here. In my eyes, \lim_{R\mkern 1.8mu\uparrow 1} looks ok. Make sure to define a command for this as you might want to change it afterwords.


Just to expand a bit on @LaRiFaRi's answer: What you're encountering -- the lack of whitespace around the \uparrow symbol in the argument of \lim -- is actually a deliberate setting of TeX. To wit, the parameter \thickmuskip, which governs the amount of whitespace that's inserted around a math atom of type mathrel, is applied only if the math atom occurs in textstyle or displaystyle math mode. In contrast, in scriptstyle and scriptscriptstyle math settings -- think of first-order and second-order subscripts and superscripts -- \thickmuskip (and \medmuskip, of relevance for math atoms of type mathrel) is not inserted by default.

I assume this setting was chosen because it's almost always a good idea, typographically speaking, to minimize the amount of space that's taken up by the arguments of operators such as \lim, \max and \min.

If you insist on inserting some whitespace on either side of \uparrow when it occurs in the argument of \lim, I would insert no more than \,, i.e., a so-called "thinspace"; check out the final line of the following screenshot. (Better still, insert only \mkern1.5mu, i.e., half a thinspace.)

enter image description here

\documentclass{article}
\begin{document} 
\obeylines % just for this example

% textstyle is default for inline math
$R\uparrow1$
$R{\uparrow}1$
$R\mathrel{\uparrow}1$ % note restoration of whitespace

\smallskip % scriptstyle: first-order subscript mode
$\scriptstyle R\uparrow1$
$\scriptstyle R{\uparrow}1$
$\scriptstyle R\,\uparrow\,1$ % explicit thinspaces on both sides of \uparrow

\smallskip % scriptscriptstyle: second-order subscript mode
$\scriptscriptstyle R\uparrow1$
$\scriptscriptstyle R{\uparrow}1$
$\scriptscriptstyle R\mathrel{\uparrow}1$ % no restoration of whitespace

$\displaystyle\lim_{R\uparrow1}$ vs.\ $\displaystyle\lim_{R\,\uparrow\,1}$
\end{document} 

Tags:

Spacing

Arrows