I'm trying to typeset a symbol with two hat accents (useful for denoting superoperators in quantum mechanics, for instance), but \hat{\hat{L}} produces too much space between the hats. I found one approach on a LaTeX forum that seems to work, but it requires manual adjustment for each letter that I might want to typeset. If anyone has any suggestions, I'd appreciate it. Thanks!

  • 1
    I thinks it's acceptable to use amsmath and \hat{\hat{L}} directly. It is also used in manual of amsmath.
    – Leo Liu
    Feb 7, 2011 at 18:24

2 Answers 2


Well, I wrote that suggestion at LaTeX Community, but there I assumed the person wanted fine-grained control. If you don't, then maybe something like this would be more suitable? You may need to tweak the -0.35ex to your liking, though not separately for each character.

How about this?


$\doublehat{x} \doublehat{L} \doublehat{\prod}$

enter image description here

  • That worked beautifully, thank you! One last question, though: would using \mathchoice be a reasonable way of making your code work in a super/subscript context? Once again, thanks for your help! Feb 7, 2011 at 23:58
  • Hmm. I hadn't thought of sub/superscripts. Yeah, \mathchoice could probably work. Do you need help or do you think you can work it out on your own?
    – frabjous
    Feb 8, 2011 at 0:07
  • I got it. It's not all that elegant, as I'm not used to the intricacies of LaTeX macro writing yet, but it does typeset superscript double-hats quite nicely. pastebin.com/XctVhueR Feb 8, 2011 at 0:32
  • The accents package is needed since plain TeX yields good horizontal alignment of the accent only for single characters; amsmath has some handling of double accents, but only the accents package is able to handle the correct positioning of the \hat over your more complicated construction. Feb 8, 2011 at 11:14
  • 2
    I needed a \triplehat, so I copied this definition for \doublehat, then renamed it to \triplehat, and finally replaced the two nested references to \hat with \doublehat. It worked beautifully! Sep 16, 2016 at 10:49

An alternative macro that doesn't depend on package accents.


It is inspired by frabjous's answer and David's answer under another question.

An updated solution that supports subscript math style.

    {\raisebox{.2ex}{\vphantom{\ensuremath{\displaystyle #1}}}}%
    {\raisebox{.2ex}{\vphantom{\ensuremath{\textstyle #1}}}}%
    {\raisebox{.16ex}{\vphantom{\ensuremath{\scriptstyle #1}}}}%
    {\raisebox{.14ex}{\vphantom{\ensuremath{\scriptscriptstyle #1}}}}%


  • 1
    Works nicely, but .2ex is probably not enough; I'd suggest .35ex, as in frabjous's answer above.
    – chsk
    Feb 1, 2021 at 17:51
  • How can we make it work as a subscript, e.g., in $\sum_{\hathat{y}}$? Currently when I'm putting it in a subscript, the hats get separated a lot.
    – pms
    Feb 5, 2023 at 21:24
  • 1
    @pms I updated the solution. Now it works for all math styles. Feb 7, 2023 at 13:06

You must log in to answer this question.

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