Is there any way to get a hat wider than widehat?

Why doesn't

\widehat{abcdefghijklmnopqrstuvwxyz}

really go over all of it?

  • 3
    Wouldn't you prefer $(abcdefgh)^{\wedge}$? – Benjamin McKay Mar 2 '13 at 14:51
  • 2
  • 3
    @hmmmm Yes, exactly! I'm not sure what you want it for, I'm sure that the result won't be nice, no matter how much you try. Putting the whole thing in parenthesis, and the symbol as an exponent in the very end is quite a common way to do that (e.g. with open sets, word reversals etc.). IMHO \wedge is not the best option, and $(abcdefg)\widehat{\phantom{x}}$ would do a better job, but that it a matter of choice. – boycott.se - yo' Mar 2 '13 at 15:18
  • 2
    @hmmmm Yes, a little wedge at the end. As a mathematician, I would prefer Fourier transforms or series written with a hat or wedge (or check) at the end of the expression, if the expression is long, because otherwise the symbol looks too big to me. – Benjamin McKay Mar 2 '13 at 15:55
  • 2
    You can also write \mathcal{F}(f) for the Fourier transform of f; this is how I'd do it for longer expressions. – Hendrik Vogt Mar 3 '13 at 15:52

The question wasn't "should it be done?" But, for the same reason men climb mountains, "could it be done?" The answer, with the scalerel package, is yes. Thus, we introduce \reallywidehat [EDITED to add phantom rule below argument, so that baseline of result matches baseline of original argument. RE-EDITED to \ensuremath on the \widthof calculation (thanks to Thruston)]

NEW ANSWER WITH stackengine

This answer is an improvement because it handles vertical space much better than the earlier solution.

\documentclass{article}
\usepackage{scalerel,stackengine}
\stackMath
\newcommand\reallywidehat[1]{%
\savestack{\tmpbox}{\stretchto{%
  \scaleto{%
    \scalerel*[\widthof{\ensuremath{#1}}]{\kern-.6pt\bigwedge\kern-.6pt}%
    {\rule[-\textheight/2]{1ex}{\textheight}}%WIDTH-LIMITED BIG WEDGE
  }{\textheight}% 
}{0.5ex}}%
\stackon[1pt]{#1}{\tmpbox}%
}
\parskip 1ex
\begin{document}

$\reallywidehat{zbcdefghijklm}$

$\reallywidehat{zbcdefghijk}$

$\reallywidehat{zbcdefghi}$

$\reallywidehat{zbcdefg}$

$\reallywidehat{zbcde}$

$\reallywidehat{zbc}$

$\reallywidehat{zb}$

$x\cdot\reallywidehat{a_1+a_2}\cdot y$

\end{document}

enter image description here

ALTERNATE ANSWER USING \mathchar"0362 (the \widehat accent) RATHER THAN \bigwedge

EDITED to use \mathchar"0362 rather than the normal carat accent (\mathchar"305E)

A comment requested this alternate form, which is perhaps superior to the given form above.

\documentclass{article}
\usepackage{scalerel,stackengine}
\stackMath
\newcommand\reallywidehat[1]{%
\savestack{\tmpbox}{\stretchto{%
  \scaleto{%
    \scalerel*[\widthof{\ensuremath{#1}}]{\kern.1pt\mathchar"0362\kern.1pt}%
    {\rule{0ex}{\textheight}}%WIDTH-LIMITED CIRCUMFLEX
  }{\textheight}% 
}{2.4ex}}%
\stackon[-6.9pt]{#1}{\tmpbox}%
}
\parskip 1ex
\begin{document}

$\reallywidehat{zbcdefghijklm}$

$\reallywidehat{zbcdefghijk}$

$\reallywidehat{zbcdefghi}$

$\reallywidehat{zbcdefg}$

$\reallywidehat{zbcde}$

$\reallywidehat{zbc}$

$\reallywidehat{zb}$

$x\cdot\reallywidehat{a_1+a_2}\cdot y$

$\widehat{zb}$ is actual widehat

\end{document}

enter image description here

EARLIER ANSWER WITH array

\documentclass{article}
\usepackage{scalerel}

\newcommand\reallywidehat[1]{\arraycolsep=0pt\relax%
\begin{array}{c}
\stretchto{
  \scaleto{
    \scalerel*[\widthof{\ensuremath{#1}}]{\kern-.5pt\bigwedge\kern-.5pt}
    {\rule[-\textheight/2]{1ex}{\textheight}} %WIDTH-LIMITED BIG WEDGE
  }{\textheight} % 
}{0.5ex}\\           % THIS SQUEEZES THE WEDGE TO 0.5ex HEIGHT
#1\\                 % THIS STACKS THE WEDGE ATOP THE ARGUMENT
\rule{-1ex}{0ex}
\end{array}
}

\begin{document}

$\reallywidehat{zbcdefghijklm}$

$\reallywidehat{zbcdefghijk}$

$\reallywidehat{zbcdefghi}$

$\reallywidehat{zbcdefg}$

$\reallywidehat{zbcde}$

$\reallywidehat{zbc}$

$\reallywidehat{zb}$

$x\cdot\reallywidehat{a_1+a_2}\cdot y$

\end{document}

enter image description here

  • You want an \ensuremath{} inside your \widthof{} call... otherwise it fails if the argument to reallywidehat contains any real maths. For example try it with \reallywidehat{a_1+a_2}. – Thruston Apr 14 '15 at 20:38
  • @Thruston Thank you for the correction. – Steven B. Segletes Apr 14 '15 at 23:02
  • Thanks for this solution which works very well (I need it in a situation where the scope of what's under the circumflex needs to be really clear). But is there a way to make it use exactly the same symbol as \widehat, i.e. the circumflex instead of the wedge? Thanks a lot! – rmh Apr 3 at 14:26
  • @rmh, I have provided an alternate version to address your need. – Steven B. Segletes Apr 3 at 15:31
  • Thanks a lot! But this does not look at all like the normal symbol used by \widehat. In fact it looks much worse than the \bigwedge solution. – rmh Apr 4 at 16:24

While echoing the sentiment expressed in the earlier answer -- "this stuff really shouldn't be encouraged" -- I can't resist pointing out that \widehat can easily be made super-wide with the help of the mtpro2 (MathTime Professional II) package. Note that this package isn't free of charge and can't be downloaded from the CTAN. However, its "lite" subset -- which is all that's needed to create superwide "widehat" accents -- is free of charge and may be downloaded from this site.

enter image description here

\documentclass{article}
\usepackage[lite]{mtpro2}
\begin{document}
$ \widehat{abcdefghijklmnopqrstuvwxyz} $
\end{document}
  • how to install the font? – user19832 Feb 23 '14 at 14:51
  • @user19832 - Have you followed the instructions provided at pctex.com/mtpro2.html? – Mico Feb 23 '14 at 15:57

I tried some of these except the {mtpro2} since for submitting articles that might not be acceptable by publishers!

As I was not satisfied by the previous methods mentioned above, I tried to tailor another method, you can apply the following code, play with the scale factors and positions and choose which one you prefer. The last two I recommend but I myself prefer the last, which I am going to use myself:

\documentclass{article}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[ngerman]{babel}
\usepackage{stackengine}
\usepackage{scalerel}

\begin{document}

\[\widehat{ABCDEF}\]

\[\stackon[0pt]{ABCDEF}{\hstretch{7.0}{\wedge}}\]

\[\stackon[-8pt]{ABCDEF}{\vstretch{1.5}{\hstretch{9.0}{\widehat{\phantom{\;}}}}}\] 

\[\stackon[-8pt]{ABCDEF}{\vstretch{1.5}{\hstretch{2.4}{\widehat{\phantom{\;\;\;\;\;\;\;\;}}}}}\] 

\end{document}

The result would be something like this:

enter image description here

Have fun

Ehsan Tavakoli

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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