In LaTeX2e, \phantom is defined as

  \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
  \ifh@ \wd\tw@\wd\z@\fi \box\tw@}

It means that, in math mode,


has the same size of


but differs from


since x^2 in \sqrt is in cramped mode.

I know that mathtools package provides a \cramped macro to solve the problem, but is there an automatical method?

Test code:

$\sqrt{x^A} \sqrt{\hbox{$x^A$}}$

$\sqrt{\phantom{\cramped{x^A}}} \sqrt{\phantom{x^A}}$ 

enter image description here

2 Answers 2


I think the answer is "no" even with e-tex primitives you can not detect this. Perhaps luatex can jump to the rescue?

With thanks to the commenters, this should be possible in luatex


or for lualatex


Note that as usual \over may cause some complications stopping the math style being detected, see \Ustack (\luatexUstack) in the luatex manual.

  • 2
    LuaTeX has \mathstyle, but strangely enough it's undefined in LuaLaTeX.
    – egreg
    Feb 21, 2012 at 13:31
  • 1
    @egreg, so it does thanks, the luatex manual suggests \ifnum\mathstyle=\crampedtextstyle ought to work. Feb 21, 2012 at 13:36
  • 3
    @egreg: all luatex’s new commands are prefixed by \luatex in LuaLaTeX. Feb 21, 2012 at 13:48
  • Thanks. I think it's the solution. Can you copy the comment into the answer? I'll accept it.
    – Leo Liu
    Feb 21, 2012 at 15:31

Here is the patch of \phantom for LuaLaTeX, based on David Carlisle's answer:



    \ifodd\luatexmathstyle % 1,3,5,7 for cramped styles



Then \phantom can detect cramped math styles

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .