I would like to underline section headings using different colors (e.g. red for section, yellow for subsection). So far I have only achieved to change the text color of the headings (see code), but I want to underline the headings and then change the line color while keeping the text color black.

\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
\section{Section}
\subsection{Subsection}
\end{document}

PS: I don't know why the code example needs \usepackage[colorlinks=true]{hyperref}, but it doesn't compile without.

• Your code needs \usepackage{xcolor}. You can replace \usepackage[colorlinks=true]{hyperref} by it. – Sigur Jul 23 '15 at 10:21
• @Andrew, I know. You are right. But the OP said he doesn't know why the code does not compile withou hyperref. I just said that in fact what he needs is xcolor (also loaded by hyperref as you said). – Sigur Jul 23 '15 at 11:01

Update

Since KOMA-Script version 3.19 command \sectionlinesformat can be redefined to get the desired result using package ulem:

\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage[normalem]{ulem}
\usepackage{blindtext}

\makeatletter
\renewcommand{\sectionlinesformat}[4]{%
\ifstr{#1}{section}
{\colorlet{ulinecolor}{red}}
{\ifstr{#1}{subsection}{\colorlet{ulinecolor}{green}}
{\colorlet{ulinecolor}{.}}}%
\@hangfrom{\hskip #2\expandafter\sectionuline\expandafter{#3}}{\expandafter\sectionuline\expandafter{#4}}%
}
\makeatother

\newcommand\sectionuline{%
\bgroup\markoverwith{\textcolor{ulinecolor}{\rule[-0.75ex]{2pt}{0.4pt}}}%
\ULon%
}
\colorlet{ulinecolor}{black}

\begin{document}
\section{Really long section title that needs more than one line}
\subsection{Subsection}
\subsubsection{Subsubsection}
\end{document}

results in

If you want to color only the lines you can load package ulem and define new commands for colored lines as suggested in its manual:

\newcommand\sectionuline{%
\bgroup\markoverwith{\textcolor{red}{\rule[-0.5ex]{2pt}{0.4pt}}}%
\ULon%
}
\newcommand\subsectionuline{%
\bgroup\markoverwith{\textcolor{blue}{\rule[-0.5ex]{2pt}{0.4pt}}}%
\ULon%
}

Then you can add these commands to the font settings of section and subsection by

Warning: \...uline must be the last added one to the font settings because of they take an argument. Additionally this \...uline commands are formating commands so this is something like a misuse of the font settings.

Code:

\documentclass[a4paper,12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{ulem}

\newcommand\sectionuline{%
\bgroup\markoverwith{\textcolor{red}{\rule[-0.5ex]{2pt}{0.4pt}}}%
\ULon%
}
\newcommand\subsectionuline{%
\bgroup\markoverwith{\textcolor{blue}{\rule[-0.5ex]{2pt}{0.4pt}}}%
\ULon%
}

\begin{document}
\section{Section}
\subsection{Subsection}
\end{document}
• AFAIK there will be a better way to underline the section headings with the next KOMA-Script version (3.19), see http://www.komascript.de/releasesvn (German). – esdd Jul 23 '15 at 12:15
• This also works for non-headings, great! In the case of using it not for headings but text one should only rename to something like \reduline. – Zelphir Kaltstahl Sep 22 '16 at 12:13

Thanks for all contributions. for a while I’m looking for the simplest (without using koma ) way to underline section and subsection without affecting chapter heading, I find several talks about that but I got always troubles and affecting chapter heading. Finally it works for me , hope this helps others ….

\usepackage{titlesec}
\usepackage{xcolor}
\usepackage[normalem]{ulem}

\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\centering\color{blue}}{\sc{\chaptertitlename\ \thechapter}}{20pt}{\Huge}

\titlespacing*{\chapter}
{15pt}
{15pt}
{50pt}
\titleformat{\section} {\normalfont\Large\bfseries\raggedright}{\thesection}{1em}{\uline}

\titleformat{\subsection}{\normalfont\large\bfseries\raggedright}{\thesubsection}{1em}{\uline}