1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
%% xr package (beta release)
%% Copyright (C) 1993-1997 David Carlisle
%% This is a modified version of the xr package from the Standard LaTeX
%% tools distribution. It has some internal changes to cooperate with
%% the hyperref package, and one new user level argument, also mainly of
%% use for hyperref.
%% If no problems are reported the version in the tools distribution
%% will be updated to match this at the next LaTeX release.
%% \externaldocument[prefix]{document}[URL]
%% The `document' referred to by the main argument is the file
%% document.aux
%% which must be somewhere on TeX's input path.
%% Some packages (eg hyperref) really need to know the location of the
%% final document rather than the aux file. By default this is assumed
%% to be `document.dvi'. A package may redefine the command \XR@ext to
%% change this default extension (eg some of the hyperref backends
%% define this to be `document.pdf'). However sometimes the final
%% document may be in a position unrelated to the aux file, or the
%% browser may not be able to find files at an arbitrary point in
%% TeX's input path, so the new final optional argument allows a full
%% URL to the final document to be specified.
%%
%% \externaldocument{file}[http://here.xxx.edu/this/path/to/file.dvi]
%%
%% Unless a package redefines \XR@addfile, the optional URL argument
%% will be ignored.
%%
%% This version (beta2) also has another improvement unrelated
%% to the hyperref support. Olivier Michel pointed out that
%% if the aux file was not on texinputs you could not always go
%% \externaldocument{/some/path/to/file}
%% specifically that worked if file.aux was a `simple' document with
%% one aux file, but if \include had been used, the `sub' aux files
%% would not be found by xr in the remote directory.
%% This version calls \filename@parse to get the directory name of the
%% remote directory, which is then explicitly prepended to the names of
%% any included aux files.
%%
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xr}
[1997/10/06 v6.00beta2 eXternal References (DPC)]
\def\externaldocument{\@testopt\XR@{}}
\def\XR@[#1]#2{\@testopt{\XR@@{#1}{#2}}{#2.\XR@ext}}
\def\XR@@#1#2[#3]{{%
\makeatletter
\def\XR@prefix{#1}%
\def\XR@URL{#3}%
\filename@parse{#2}%
\XR@next#2.aux\relax\\}}
\def\XR@next#1\relax#2\\{%
\edef\XR@list{#2}%
\XR@loop{#1}}
\def\XR@aux{%
\ifx\XR@list\@empty\else\expandafter\XR@explist\fi}
\def\XR@explist{\expandafter\XR@next\XR@list\\}
\def\XR@loop#1{%
\def\f{#1}%\show\f
\openin\@inputcheck#1\relax
\ifeof\@inputcheck
\PackageWarning{xr}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}%
\expandafter\XR@aux
\else
\PackageInfo{xr}{IMPORTING LABELS FROM #1}%
\expandafter\XR@read\fi}
\def\XR@read{%
\read\@inputcheck to\XR@line
\expandafter\XR@test\XR@line...\XR@}
\long\def\XR@test#1#2#3#4\XR@{%
\ifx#1\newlabel
\expandafter\xdef\csname r@\XR@prefix#2\endcsname
{\XR@addURL{#3}}%
\else\ifx#1\@input
\edef\XR@list{\XR@list\filename@area#2\relax}%
\fi\fi
\ifeof\@inputcheck\expandafter\XR@aux
\else\expandafter\XR@read\fi}
\ifx\XR@addURL\@undefined
\def\XR@addURL#1\\{#1}
\fi
% The above definition doesn't actually use the URL, hyperref 6 could
% make a definition like so to put the URL in the fifth field of its
% ref structure.
%\def\XR@addURL#1{\XR@@dURL#1{}{}{}{}}
%\def\XR@@ddURL#1#2#3#4#5\\{{#1}{#2}%
% \if!#4!\else
% {#3}{#4}{\XR@URL}%
% \fi}
\providecommand\XR@ext{dvi}
\endinput
%%
%% End of file `xr.sty'.
|