Referring to labels in other documents

When producing a set of inter-related documents, you’ll often want to refer to labels in another document of the set; but LaTeX, of its own accord, doesn’t permit this.

So the package xr was written: if you say

\usepackage{xr}
\externaldocument{volume1}
will load all the references from volume1 into your present document.

But what if the documents both have a section labelled “introduction” (likely enough, after all)? The package provides a means to transform all the imported labels, so you don’t have to change label names in either document. For example:

\usepackage{xr}
\externaldocument[V1-]{volume1}
loads the references from volume1, but prefixes every one with the string V1-. So you would refer to the introduction to volume 1 as:
\usepackage{xr}
\externaldocument[V1-]{volume1}
...
... the introduction to volume1 (\ref{V1-introduction})...
To have the facilities of xr working with hyperref, you need xr-hyper. For simple hyper-cross-referencing (i.e., to a local PDF file you’ve just compiled), write:
\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[V1-]{volume1}
...
... the \nameref{V1-introduction})...
and the name reference will appear as an active link to the “introduction” chapter of volume1.pdf.

To link to a PDF document on the Web, for which you happen to have the .aux file, write:

\usepackage{xr-hyper}
\usepackage{hyperref}
\externaldocument[V1-]{volume1}[http://mybook.com/volume1.pdf]
...
... the \nameref{V1-introduction})...
Heiko Oberdiek’s experimental zref bundle includes a hyper-crossreferencing mechanism using its zref-xr module. Usage is closely modelled on xr and xr-hyper; a trivial example (from a comp.text.tex posting) is
\usepackage{zref-xr,zref-user}
\zexternaldocument*{xr02}
...
\zref{foo}
The module provides all the facilities of the older packages, and can deal both with “traditional” LaTeX labels and with zref’s style of labels.
xr.sty
Distributed as part of 2etools
xr-hyper.sty
Distributed with hyperref
zref bundle
Distributed as part of oberdiek