20

Recently, I made a beamer presentation and I want to link to a pdf I have made before, but I can only link to the first page of pdf document using the command:

\href{doc/mydoc.pdf}{thedoc}

and I want to link to a specific page. Someone told me to use

\href{doc/mydoc.pdf#page.5}{thedoc}

or

\href{doc/mydoc.pdf#page=5}{thedoc}

but they don't work. Does anyone know how to do this?

cgnieder
  • 66,645
TeX.pig
  • 497

3 Answers3

17

Meanwhile package hyperref (must be loaded) has changed and allows now links to a special page of a pdf files with the command:

\href[page=5]{./doc/mydoc.pdf}{thedoc, page 5}

If you click the link "thedoc, page 5" your file mydoc.pdf is showed starting with page 5.

Mensch
  • 65,388
  • 1
    Does this work only if the document is compiled using pdflatex, and that the external pdf document is saved in one's hard drive? I've tried linking to a document hosted on a website (my default browser is Chrome), but it still opens to the first page. Also, when I compile using Bakoma, which doesn't use pdflatex, this trick doesn't work anymore. – Herr K. Mar 29 '13 at 01:06
  • I'm guessing that the file's path is given in the curly brackets. How do I add a full file path? – Toma Oct 20 '19 at 17:18
12

All hyperref/pdfLaTeX can do is insert a link of a certain form. It's up to the PDF viewer what to do with that link, and I don’t think there’s a standard link format for pages of external PDF files. Even if some viewers have implemented something for this, it wouldn’t be a robust solution.

My suggestion would be to actually include the linked-to PDF in the PDF you’re creating, and then you can use features of the pdfpages package to insert hyperlink targets for the included pages, and then you can use internal links. A quick example:

\documentclass{article}
\usepackage{pdfpages}
\usepackage{hyperref}
\begin{document}
Here's a \hyperlink{included.pdf.2}{link to to page 2 of the included pdf}.
\includepdf[pages=1-5,link=true]{included.pdf}
\end{document}

With beamer, at the end, you probably want something like:

{
\beamertemplatenavigationsymbolsempty
\setbeamercolor{background canvas}{bg=}
\includepdf[pages=1-5,link=true,fitpaper]{included.pdf}
}

so that the included PDF fits the paper size of the original for the included pages, and beamer's background color and navigation bars are suppressed on those pages.

Thorsten
  • 12,872
frabjous
  • 41,473
5

Try \hyperref{doc/mydoc.pdf}{page}{5}{thedoc}.

Torbjørn T.
  • 206,688
Jan Hlavacek
  • 19,242
  • It doesn't work. Does it need special package? Or the pdf need a special process. – TeX.pig Aug 04 '10 at 16:53
  • Which pdf viewer are you using? This will probably not work with every viewer. – Caramdir Aug 04 '10 at 17:56
  • 1
    The target PDF also needs to support this. So if it is a LaTeX document it must be compiled with hyperref enabled. – Caramdir Aug 04 '10 at 18:01
  • It seems to work in adobe reader, not in evince. I am compiling with pdflatex. You need to load the hyperref package, but beamer should be doing that for you. – Jan Hlavacek Aug 04 '10 at 20:13
  • I use Adove Reader 9, I have tried it several times ,all failed。 – TeX.pig Aug 05 '10 at 05:37
  • Did you compile both documents with hyperref? (Also, please fix your punctuation.) – Caramdir Aug 05 '10 at 09:32
  • Both ? Sometimes pdf document is without latex source,How to do? – TeX.pig Aug 05 '10 at 13:10
  • I don't really know anything about the internals of PDFs, but as far as I understand it one cannot link to a page. Instead one links to a target mark called page.no. Apparently not all PDF generators include those. – Caramdir Aug 05 '10 at 15:00
  • 1
    (One more time: I do not know how you manage to do that, but the punctuation symbols in your comments look "abnormal".) – Caramdir Aug 05 '10 at 15:02
  • You can probably add the page.no mark to a pdf file using something like pdftk (http://www.accesspdf.com/pdftk/). – Jan Hlavacek Aug 08 '10 at 01:43