[OS X TeX] Underlined links with hyperref

Bruno Voisin bvoisin at mac.com
Sun Mar 20 10:33:14 EST 2005


Le 20 mars 05, à 15:24, Thomas Schröder a écrit :

> I'm preparing my thesis with pdflatex and the hyperref package. As  
> many others, I'm not very fond of the rectangle around  hyperlinks  
> when previewing the resulting pdf in Adobe Reader and I'd rather have  
> them underlined. I've been doing some googling and learned that the  
> rectangle is produced by Adobe Reader and that there's nothing you can  
> do about it, really. But then I came across this posting
>
> http://groups.google.com/groups?hl=de&lr=&client=safari&rls=de- 
> de&selm=991919386.946568%40newsmaster-04.atnet.at
>
> which is in German and says that the PDF specifications state that  
> there are also other styles next to the boxed style, specifically an  
> underlined style, but that this person couldn't do it, not even in low  
> level PDF.
>
> [...]
>
> Therefore, after making a backup of course :-), I changed  
> hpdftex.def's definition of all of its /Border commands from
>
> /Border[\@pdfborder]%
>
> to
>
> /Border[\@pdfborder]/BS<</W 1/Type/Border/S/U>>%
>
> And low and behold! I get nicely underlined links in my pdf!
>
> [...]
>
> I thought some of you might like this, too so, here it is. I don't  
> really know if this is really correct and all, but if nobody finds a  
> really bad error maybe I should get back to Heiko Oberdiek, the  
> original author of hyperref, so he might work this in to make it an  
> option in future releases? What do you guys think?

Sure this would be a nice option to have. About a year ago I asked this  
here, and in comp.text.tex. From the few answers I got at  
comp.text.tex, I got the impression the community wasn't really  
interested and that the common opinion was that hyperlinks in TeX text  
should be either boxed or colored, preferably not underlined. See  
<http://groups.google.fr/groups? 
hl=fr&lr=&threadm=88baf0c.0403302212.5df26fd9%40posting.google.com&rnum= 
3&prev=/groups%3Fq%3Dgroup:comp.text.tex%2Bauthor: 
voisin%26hl%3Dfr%26lr%3D%26selm%3D88baf0c.0403302212.5df26fd9%2540postin 
g.google.com%26rnum%3D3>. According to a link in this thread  
<http://groups-beta.google.com/group/comp.text.tex/msg/ 
9a251209b07045da?q=Heiko+underline+group: 
comp.text.tex&hl=en&lr=&ie=UTF-8&rnum=2>, Heiko Oberdiek seems to not  
be aware that hyperlinks can be underlined in Acrobat.

Thus I ended up using the ulem.sty package to get underlining, and  
redefining the hyperref commands that produce hyperlinks, to have them  
underlined:

	\usepackage[normalem]{ulem}
	\usepackage{url}
	\usepackage[colorlinks=true,
	            raiselinks=true]{hyperref}

	\makeatletter
	\renewcommand{\url@}[1]{\hyper at linkurl{\uline{\Hurl{#1}}}{#1}}
	\renewcommand{\hyper at link@}[4][]
	  {\protected at edef\Hy at tempa{#2}%
	   \ifthenelse{\equal{\Hy at tempa}{\@empty}}
	     {\hyper at link{#1}{#3}{\uline{#4}}}
	     {\expandafter\hyper at readexternallink#2\\{#1}{#3}{\uline{#4}}}}
	\renewcommand{\contentsline}[4]
	  {\ifthenelse{\equal{\\#4}{\\}}
	     {\csname l@#1\endcsname{#2}{#3}}
	     {\ifthenelse{\boolean{Hy at linktocpage}}
	        {\csname l@#1\endcsname
	           {{#2}}
	           {\hyper at linkstart{link}{#4}{\uline{#3}}\hyper at linkend}}
  	       {\csname l@#1\endcsname
  	          {\hyper at linkstart{link}{#4}{\uline{#2}}\hyper at linkend}
  	          {#3}}}}
	\makeatother

That may not work as is right now, as hyperref.sty and url.sty may have  
changed since last year.

In any case your solution is much more elegant and robust. The only  
issue is to implement this function in all driver files (hpdftex.def,  
hdvips.def, etc.) as an option to hyperref.sty, similar to colorlinks  
or frenchlinks.

Bruno Voisin
--------------------- Info ---------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
           & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Post: <mailto:MacOSX-TeX at email.esm.psu.edu>





More information about the MacOSX-TeX mailing list