If you don't use hyperref
:
\documentclass{article}
\usepackage{color}
\usepackage[normalem]{ulem}
\usepackage{url}
\DeclareUrlCommand\ULurl{%
\renewcommand\UrlFont{\ttfamily\color{blue}}%
\renewcommand\UrlLeft{\uline\bgroup}%
\renewcommand\UrlRight{\egroup}}
\begin{document}
\ULurl{http://foo.bar/%12%34}
\end{document}
If you use hyperref
, you may want to click on the URLs:
\documentclass{article}
\usepackage{xcolor}
\usepackage[normalem]{ulem}
\usepackage{hyperref}
\hypersetup{colorlinks,urlcolor=blue}
%% or
% \hypersetup{colorlinks=false,pdfborder=000}
% hack into hyperref
\makeatletter
\DeclareUrlCommand\ULurl@@{%
\def\UrlFont{\ttfamily\color{blue}}%
\def\UrlLeft{\uline\bgroup}%
\def\UrlRight{\egroup}}
\def\ULurl@#1{\hyper@linkurl{\ULurl@@{#1}}{#1}}
\DeclareRobustCommand*\ULurl{\hyper@normalise\ULurl@}
\makeatother
\begin{document}
\ULurl{http://foo.bar/%12%34}
\end{document}
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:
Best Answer
Based on this post by using
linkbordercolor=red,
hyperlink borders will be redpdfborderstyle={/S/U/W 1}
border style will be underline of width 1pt