[Tex/LaTex] How does one make a ‘proper’ (aesthetically pleasing) double widetilde

stacking-symbols

I'm heaving problems with correctly vertically stacking two widetilde's (i.e. one on top of the other). I managed to reduce the space between them, but I don't know how to force them to be exactly vertically aligned.

Here's my MWE:

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

%define doublewidetilde
\makeatletter
\DeclareRobustCommand{\doublewidetilde}[1]{{%
\mathpalette\double@widetilde{#1}%
}}
\DeclareRobustCommand{\double@widetilde}[2]{%
\sbox\z@{$\m@th#1\widetilde{#2}$}%
\ht\z@=.85\ht\z@
\widetilde{\box\z@}%
}
\makeatother


\begin{document}
E.g.: $\doublewidetilde{I}_N$ or $\doublewidetilde{abcde}_N$
\end{document}

Also, notice that when the maximal length of the widetilde is 'saturated', the two are correctly vertically stacked (see the double wide tilde over 'abcde').

Note: I'm using \DeclareRobustCommand (instead of e.g. \newcommand) because I intend to use \doublewidetilde in section names.

Best Answer

Directly adapting my answer at Big tilde in math mode. EDITED to use \AC from wasysym package, rather than \sim for the baseline tilde.

\documentclass{article}
\usepackage{scalerel}[2014/03/10]
\usepackage{stackengine,wasysym}

\newcommand\dwidetilde[1]{\ThisStyle{%
  \setbox0=\hbox{$\SavedStyle#1$}%
  \stackengine{-.1\LMpt}{$\SavedStyle#1\,\,$}{%
    \stackengine{\dimexpr-3.5\LMpt+.3pt}{%
    \stretchto{\scaleto{\mkern.2mu\AC}{.5150\wd0}}{.7\ht0}%
    }{%
    \stretchto{\scaleto{\mkern.2mu\AC}{.5150\wd0}}{.7\ht0}%
    }{O}{c}{F}{T}{S}
  }{O}{c}{F}{T}{S}%
\!\!}}

\def\test#1{$%
  \dwidetilde{#1}\,
  \scriptstyle\dwidetilde{#1}\,
  \scriptscriptstyle\dwidetilde{#1}
$\par}

\parskip 1ex
\begin{document}

\test{abcdefghijklm}
\test{abcdefghijk}
\test{abcdefghi}
\test{abcdefg}
\test{abcde}
\test{abc}
\test{ab}
\end{document}

enter image description here

Related Question