[Tex/LaTex] Remove underline from Table of Contents

formattingtable of contents

I'm trying to create a Table of Contents but I am having some trouble getting it to look how I want.

At the moment I have the section headings underlined in the document and because of this when the table of contents is generated it underlines all the section headings. So my question is, is there a way to remove the unwanted underlines from the table of contents and keep them in the document.

My .tex file.

\documentclass{article}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage[english]{babel}
\usepackage{color}   % color links
\usepackage{hyperref}
\hypersetup{
    colorlinks=true, %set true if you want colored links
    linktoc=all,     %set to all if you want both sections and subsections linked
    linkcolor=black,  %color for links
}
\pagestyle{fancy}
\fancyhead{} % clear all header fields
\renewcommand{\headrulewidth}{0pt} % no line in header area
\fancyfoot{} % clear all footer fields
\renewcommand{\footrulewidth}{1pt} % line in footer 
\fancyfoot[RE,LO]{\begin{flushleft}\large
name\newline title\end{flushleft}
\begin{flushright} \thepage\end{flushright}}
\begin{document}
\begin{titlepage}
\begin{center}

\end{center}
\end{titlepage}
\tableofcontents
\listoffigures
\listoftables
\newpage

\section{\underline{The Client}}
\subsection{Sub section 1}

\section{\underline{Scope}}
\subsection{Sub Section 2}

\end{document}

Any help would be appreciated.

Best Answer

Your minimal example produces a ToC that looks like this (in code form):

\contentsline {section}{\numberline {1}\relax $\@@underline {\hbox {The Client}}\mathsurround \z@ $\relax }{2}{section.1}
\contentsline {subsection}{\numberline {1.1}Sub section 1}{2}{subsection.1.1}
\contentsline {section}{\numberline {2}\relax $\@@underline {\hbox {Scope}}\mathsurround \z@ $\relax }{2}{section.2}
\contentsline {subsection}{\numberline {2.1}Sub Section 2}{2}{subsection.2.1}

Note that each of the \contentsline entries for a \section contains \@@underline. A crude solution would be to redefine \@@underline to be a "no-op" (do nothing) when processing \tableofcontents:

{\makeatletter
\def\@@underline#1{#1}
\tableofcontents
\makeatother}

enter image description here


If only some of your sections require this "special treatment", then manual underlining is most likely the way to go, together with the correction above, or by using the optional argument for sections:

\section[The Client]{\underline{The Client}}

However, for more far-reaching or consistent requirement across your entire document, consider using a package dedicated to sectional titles. For example, sectsty provides an example in its documentation doing exactly this:

enter image description here

\documentclass{article}
\usepackage{sectsty}% http://ctan.org/pkg/secsty
\usepackage[normalem]{ulem}% http://ctan.org/pkg/ulem
\usepackage{xcolor,hyperref}% http://ctan.org/pkg/{xcolor,hyperref}
\hypersetup{
    colorlinks=true, %set true if you want colored links
    linktoc=all,     %set to all if you want both sections and subsections linked
    linkcolor=black,  %color for links
}
\begin{document}
\tableofcontents
\newpage

\sectionfont{\underline}

\section{The Client}
\subsection{Sub section 1}

\section{Scope}
\subsection{Sub Section 2}

\end{document}

Note the difference in the underlining between the choice of sectsty and that of a manual underline.

Related Question