How can I have colored and underlined links with hyperref?
I assume this was done by design, seeing as the introduction of hyperlinks may clutter the user's view of the actual text. Moreover, not all hyperlink typesetting is printable - as you've mentioned, the PDF hyperlink is merely "a rectangular area of the page that is mouse-aware". However, if you want to do this, there are two options available
Manual
You deactivate the colorlinks
option so that hyperref
sets the link border:
\hypersetup{%
colorlinks=false,% hyperlinks will be black
linkbordercolor=red,% hyperlink borders will be red
pdfborderstyle={/S/U/W 1}% border style will be underline of width 1pt
}
and typeset the text manually using \color{<color>}
. For example:
...
\begin{document}
\section{To See}\label{tosee}
\hyperref[tosee]{\color{green}just to see}
\end{document}
Note that this is virtually the same as what hyperref
does internally, since the text colour is modified and will typeset this way even if the hyperlink is removed via printing to PDF (or flattening).
The advantage behind this approach (motivating to include it here) is that you can specify different colours for each hyperlink, if you so wish.
Automatic
You activate the colorlinks
option so that hyperref
sets the link colour in the text
\hypersetup{%
colorlinks=true,% hyperlinks will be coloured
linkcolor=green,% hyperlink text will be green
linkbordercolor=red,% hyperlink border will be red
}
and then add the following after the above \hypersetup{...}
:
\makeatletter
\Hy@AtBeginDocument{%
\def\@pdfborder{0 0 1}% Overrides border definition set with colorlinks=true
\def\@pdfborderstyle{/S/U/W 1}% Overrides border style set with colorlinks=true
% Hyperlink border style will be underline of width 1pt
}
\makeatother
Here is the pdfborderstyle
specification from Adobe:
I know you're probably looking for a solution that uses hyperref
's own underlining just for the heck of it, but I'm adding this answer just in case anybody ever actually wants to use colored and underlined links (against which I advise). hyperref
's underlining isn't particularly pretty, in fact, it's just the bottom line of a box. soul
's underlining is prettier and much more customizable (see its documentation).
\documentclass{article}
\usepackage{xcolor,soul,lipsum}
\usepackage[hidelinks]{hyperref}
\newcommand{\myhy}[2]{\hyperref[#1]{\color{green}\setulcolor{red}\ul{#2}}}
\begin{document}
\section{To See}\label{tosee}
\vskip2cm
This is \myhy{tosee}{just to see} what it looks like. \lipsum[1]
\end{document}
Here's the hyperref
underlining, as a comparison: