9

I wrote a small LaTeX file which describes the contents of some directories.

Now I try to provide a direct link to the described files and directories. I successfully use \href{filename.ext}{Link name} to provide a link for files. Unfortunately if I pass a directory name to \href the PDF reader (tried with Adobe Reader and Evince) doesn't recognize the link.

Examples of unrecognized links (a directory named abc exists in the same directory as the .pdf is):

\href{abc}{Open abc directory}
\href{abc/}{Open abc directory}
\href{./abc}{Open abc directory}
\href{./abc/}{Open abc directory}
\href{run:abc}{Open abc directory}
\href{run:abc/}{Open abc directory}
\href{run:./abc}{Open abc directory}
\href{run:./abc/}{Open abc directory}

Does anyone know if there is any chance to do this?

11

The root of the problem is that hyperref tries to be smart. If no file extension is found, hyperref adds .pdf, so the link becomes either abc.pdf or abc/.pdf depending on whether there is trailing / in the call.

You can define your own command, say, \HREF, which simply constructs the link and does not do anything else.

This works for me:

\documentclass{article}
\usepackage{hyperref}
\makeatletter
\newcommand\HREF[2]{\hyper@linkurl{#2}{#1}}
\makeatother

\begin{document}
\HREF{tmp}{open directory \texttt{tmp}}
\end{document}

Note that this works in xpdf. Acrobat disables such links by security reasons. evince works with absolute paths (file:///home/boris/scratch) but balks at relative ones: somehow ../tmp/ works, but ./tmp does not. I guess this is some bug in evince.

| improve this answer | |
7

As Boris said in his answer, .pdf is appended if no extension is found.

To avoid this, use \href{abc/.}{Open directory}. The . (current directory) looks like a file extension.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.