# New 'ulem' command not working

I'm trying to create a new command that will give blue underline under black text. My mwe is

\documentclass[a4paper,12pt]{report}
\usepackage[table,hyperref,dvipsnames]{xcolor}
\usepackage{ulem}
\newcommand{\coline}{\subsection{\textcolor{blue!80!black}\uline}}
\begin{document}

\coline{the cat sat on the mat}
\end{document}


but its failing saying

! Argument of \UL@on has an extra }.
<inserted text>
\par
l.11 \coline
{the cat sat on the mat}
?


I'm using xelatex to process it. How can I get it working please?

I've just tried this, but its still not working.

\newcommand{\coline}{\textcolor{blue!80!black}\uline{\subsection}}


It is \textcolor{color}{argument} and also \uline{argument} Here you have none of the arguments so the macros are picking up whatever they can find as arguments.

\documentclass[a4paper,12pt]{report}
\usepackage[table,hyperref,dvipsnames]{xcolor}
\usepackage{ulem}
\newcommand{\coline}[1]{\subsection{\textcolor{blue!80!black}{\uline{#1}}}}
\begin{document}
\chapter{}
\section{}

\coline{the cat sat on the mat}
\end{document}


• Nearly there, except I'm wanting a blue underline under black text. Thanks. – boudiccas Mar 17 '15 at 19:32
• @boudiccas Check the manual of ulem for coloring the underline or the check the definition of \reduline – percusse Mar 17 '15 at 19:35

For fun, here is a censor alternative, with a little hack.

\documentclass{article}
\usepackage{censor,xcolor}
%%%%%%%%%%%
\censorruleheight=.1ex %THICKNESS OF CENSOR RULE
\newlength\nextcharwidth
\makeatletter
\renewcommand\@cenword[1]{%
\setlength{\nextcharwidth}{\widthof{#1}}%
\textcolor{\ulinecolor}{\censorrule{\nextcharwidth}}%
\kern -\nextcharwidth%
\textcolor{black}{#1}}
\makeatother
\newcommand\couline[2][black]{%
\def\ulinecolor{#1}%
\censorruledepth=-.67ex\relax\color{#1}\xblackout{#2}\color{black}%
}
\newcommand\coline[2][blue!80!black]{\subsection{\protect\couline[#1]{#2}}}
%%%%%%%%%%%

\begin{document}
\coline{the cat sat on the mat}

Now I will test a multiline title

\coline[red]{the cat sat on the mat the cat sat on the mat the cat sat on the mat}

\large\couline[cyan]{the very large cat indeed sat on the mat. Once upon a
time, the cat sat on the mat the cat sat on the mat}
\end{document}


From the ulem package manual, assuming your normal text is black, place this in the preamble:

\usepackage[normalem]{ulem}
\newcommand\blueuline{\bgroup\markoverwith{\textcolor{blue}{\rule[-0.75ex]{2pt}{1.5pt}}}\ULon}


You may need to adjust the parameters of \rule visually.

\documentclass{standalone}

\usepackage{xcolor}
\usepackage[normalem]{ulem}
\newcommand{\blueuline}{\bgroup\markoverwith{\textcolor{blue}{\rule[-0.75ex]{2pt}{1.5pt}}}\ULon}

\begin{document}
Here is some text. \blueuline{Here is some underlined text}
\end{document}


You can use Hugh's code in titlesec to make subsections look as you want. Here is how.

\documentclass[a4paper,12pt]{report}
\usepackage[table,hyperref,dvipsnames]{xcolor}
\usepackage[normalem]{ulem}
\newcommand{\blueuline}{\bgroup\markoverwith{\textcolor{blue}{\rule[-0.75ex]{2pt}{1.5pt}}}\ULon}

\usepackage{titlesec}
\newcommand{\mysec}[1]{\blueuline{#1}}

\titleformat{\subsection}
{\normalfont\large\bfseries}{\thesubsection}{1em}{\mysec}

\begin{document}
\chapter{}
\section{}
\subsection{Here is some text Here is some text Here is some text Here is some text Here is some text}
\end{document}