Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

How can I decrease the space in overset? I found this solution online, but it doesn't look quite like the original overset (note I know it is difficult to come up with a solution to handle all cases elegantly, but I have listed 4 common use cases that would like to look good)

\documentclass[11pt]{book}

\usepackage{amsmath,amsfonts,amssymb,amsthm} 

%overset spacing
\makeatletter
\newcommand{\oset}[2]{%
  {\mathop{#2}\limits^{\vbox to -.5\ex@{\kern-\tw@\ex@
   \hbox{\scriptsize #1}\vss}}}}
\makeatother

\usepackage{newpxmath}
\usepackage{microtype} % Slightly tweak font spacing for aesthetics

\usepackage[utf8]{inputenc} % Required for including letters with accents
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs


\begin{document}

I would like it to work for the following examples:

Original 1: $X_n\overset{P}{\to} X$

Original 2: $X_n\overset{D}{\to} X$

Original 3: $X_n\overset{\text{$r$th}}{\to} X$

Original 4: $X_n\overset{\text{i.i.d.}}{\sim} X$


Testing 1: $X_n\oset{P}{\to} X$

Testing 2: $X_n\oset{D}{\to} X$

Testing 3: $X_n\oset{\text{$r$th}{\to} X$

Testing 4: $X_n\oset{\text{i.i.d.}{\sim} X$
\end{document}

enter image description here

The spacing around the \to seems off. Can you guys help me come up with a more robust solution?

share|improve this question
    
I'm assuming you're referring to vertical space? Tried fiddling around with the vbox size? –  1010011010 Aug 4 at 18:29
    
No i mean the space around the \to arrow looks off (i.e. horizontal spacing) also the font on the P is different. –  Benjamin Aug 4 at 18:32
    
You're looking for a solution that corrects the horizontal spacing of your symbol: I believe the command \DeclarePairedDelimiter comes very close to what you want. –  1010011010 Aug 4 at 18:38
    
I don't understand, whats the pair? –  Benjamin Aug 4 at 18:48
    
Never mind. \mathrel is better suited. See @Mico's answer. –  1010011010 Aug 4 at 18:49

1 Answer 1

up vote 6 down vote accepted

To get better horizontal spacing of the \oset macro -- specifically, to make its spacing the same as that of a "relational operator" (which is the case for \to) -- you could encase the macro's definition in a \mathrel wrapper.

To make the \oset macro usable for different symbols/letters in the base and superscript positions, it's necessary to introduce a third, optional, argument: the argument of \vbox. Its default value, 0pt is suitable for single uppercase letters in the superscript position and arrows in the base position. For other combinations, you'll need to experiment a bit to find the suitable distance by which the superscript term should be raised; the values given in the example below may be OK for the selected math font (newpxmath); are values will probably need to be chosen if you use a different math font.

enter image description here

\documentclass[11pt]{book}
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{amsmath} % for \overset macro
\usepackage{newpxmath,newpxtext}

% new \oset macro
\makeatletter
\newcommand{\oset}[3][0ex]{%
  \mathrel{\mathop{#3}\limits^{
    \vbox to#1{\kern-2\ex@
    \hbox{$\scriptstyle#2$}\vss}}}}
\makeatother

\begin{document}
$X_n\overset{P}{\to} X$

$X_n\overset{D}{\to} X$

$X_n\overset{j}{\to} X$

$X_n\overset{\text{$r$th}}{\to} X$

$X_n\overset{\text{i.i.d.}}{\sim} X$

\medskip
$X_n\oset{P}{\to} X$

$X_n\oset{D}{\to} X$

$X_n\oset[.35ex]{j}{\to} X$

$X_n\oset[.4ex]{\text{$r$th}}{\to} X$

$X_n\oset[.5ex]{\text{i.i.d.}}{\sim} X$
\end{document}
share|improve this answer
    
Great answer, I have updated the question a bit, do you think you could come up with a good solution to handle those 4 cases I have listed? I tried tweaking the vbox argument but that didn't help much in the sim case. –  Benjamin Aug 4 at 19:16
    
@Benjamin - I've changed the definition of \oset so that an additional, optional parameter can be provided: the amount by which the superscript term should be raised (or lowered). The default value of the optional argument is 0ex. –  Mico Aug 4 at 20:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.