# How to color just the wave produced by the ulem package

I am using \uwave{Some text here} to put a wave like emphasis under the text. Is it possible to change the color of only the wave and leave the text black?

-

It is highly recommended that you post a minimal example. It is possible to only color the wave part by redefining the command \uwave or by creating a new command named \redwave as you like.

\documentclass[11pt]{article}
\usepackage{xcolor}
\usepackage{ulem}
\makeatletter
\def\uwave{\bgroup \markoverwith{\lower3.5\p@\hbox{\sixly \textcolor{red}{\char58}}}\ULon}
\makeatother
\begin{document}
\uwave{This is a long test}
\end{document}


The ulem package uses the wiggle from the 6-pt lasy font and we just use textcolor to color it.

One could extend the above code to give it a more semantic name, as suggested by TH and also to give an optional color. The MWE below defines a command \colorwave for this purpose.

\documentclass[11pt]{article}
\usepackage{xcolor}
\usepackage{ulem}
\usepackage{lipsum}
\makeatletter
\newcommand\colorwave[1][blue]{\bgroup \markoverwith{\lower3.5\p@\hbox{\sixly \textcolor{#1}{\char58}}}\ULon}

Nice. One could make a \colorwave based on this where the color to use is passed in as an argument. – TH. Dec 18 '10 at 1:45