# Underline omitting the descenders with Plain TeX

I'm reading this question Underline Omitting the Descenders and wondering if there is a way to do this with Plain TeX and XeTeX.

The answer of Stefan Kottwitz converted to plain TeX. Package soul can also be loaded in plain TeX. Package color can be loaded with the help of miniltx. XeTeX is supported the same way as in LaTeX, package graphicx loads the configuration file graphics.cfg, which usually detects XeTeX and sets the correct graphics driver xetex.def.

\input soul.sty
\input miniltx
\input color.sty

\def\whiten#1{%
\llap{\textcolor{white}{{\the\SOUL@token}}\hskip#1pt\relax}%
}
\def\myul{%
\def\SOUL@everyspace{$\underline{\hbox{\space}}$\kern\z@}%
\def\SOUL@everytoken{%
\setbox0=\hbox{\the\SOUL@token}%
\ifdim\dp0>\z@
\raise\dp0\hbox{$\underline{\phantom{\hbox{\the\SOUL@token}}}$}%
\whiten{1}\whiten{0}%
\whiten{-1}\whiten{-2}%
\llap{\the\SOUL@token}%
\else
$\underline{\hbox{\the\SOUL@token}}$%
\fi
}%
\SOUL@
}
\resetatcatcode

\font\HugeFont=cmss12 at 20pt
\HugeFont

\myul{jumping quickly}

\bye