\hl command is underlining instead of highlighting

If you include the package color or xcolor it will highlight the text background.

\documentclass{article}
\usepackage{soul}
\usepackage{color}

\begin{document}
\hl{\$ 10}
\end{document}

Example

Using \sethlcolor you can set the highlighting color.

\documentclass{article}
\usepackage{soul}
\usepackage{color}

\DeclareRobustCommand{\hlgreen}[1]{{\sethlcolor{green}\hl{#1}}}

\begin{document}
\hl{\$ 10} \hlgreen{\$ 10}
\end{document}

Second Example

See this answer for why \DeclareRobustCommand should be used.

littleO's answer using xcolor's \colorbox results in a margin around the highlighted word, which might be useful in some scenarios.

\documentclass{article}
\usepackage{soul}
\usepackage{xcolor}

\DeclareRobustCommand{\hlgreen}[1]{{\sethlcolor{green}\hl{#1}}}
\DeclareRobustCommand{\boxgreen}[1]{\colorbox{green}{#1}}

\begin{document}
This item costs \hlgreen{\$10} in a shop

This item costs \boxgreen{\$10} in a shop
\end{document}

Example 3


You can do that with just the xcolor package and

\fcolorbox{<bordor color>}{<fill color>}{<text}}

which yields:

enter image description here

If you don't want a border color, use the same <bordor color> and <fill color>.

Code:

\documentclass{article}
\usepackage{xcolor}

\newcommand*{\ColorBox}[1]{%
    \fboxsep=1pt%
    \fcolorbox{gray}{yellow}{#1}%
}

\begin{document}
\ColorBox{\$ 10} 
\end{document}