[latex3-commits] [latex3/hyperref] develop: move xr-hyper into dtx (52f20ff)

github at latex-project.org github at latex-project.org
Sat Jan 20 16:46:53 CET 2024


Repository : https://github.com/latex3/hyperref
On branch  : develop
Link       : https://github.com/latex3/hyperref/commit/52f20ff8a4eaade01dd3fbaeec3c8aae4f27214d

>---------------------------------------------------------------

commit 52f20ff8a4eaade01dd3fbaeec3c8aae4f27214d
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Sat Jan 20 16:46:53 2024 +0100

    move xr-hyper into dtx


>---------------------------------------------------------------

52f20ff8a4eaade01dd3fbaeec3c8aae4f27214d
 build.lua                     |   3 +
 hyperref.ins                  |   1 +
 manifest.txt                  |   2 +-
 testfiles/xr-properties-6.lvt |  25 ++++
 testfiles/xr-properties-6.tlg |  11 ++
 xr-hyper.dtx                  | 332 ++++++++++++++++++++++++++++++++++++++++++
 xr-hyper.sty                  | 172 ----------------------
 7 files changed, 373 insertions(+), 173 deletions(-)

diff --git a/build.lua b/build.lua
index a703624..c149303 100644
--- a/build.lua
+++ b/build.lua
@@ -22,6 +22,7 @@ tdslocations = {
   "doc/latex/hyperref/hyperref-doc5.html",
   "doc/latex/hyperref/hyperref-doc6.html",
   "doc/latex/hyperref/nameref.pdf",
+  "doc/latex/hyperref/xr-hyper.pdf",
   "doc/latex/hyperref/paper.pdf",
   "doc/latex/hyperref/slides.pdf",
   "doc/latex/hyperref/hyperref-doc.tex",
@@ -31,6 +32,7 @@ tdslocations = {
   "source/latex/hyperref/hyperref.dtx",
   "source/latex/hyperref/hyperref.ins",
   "source/latex/hyperref/nameref.dtx",
+  "source/latex/hyperref/xr-hyper.dtx",  
   "source/latex/hyperref/doc/paperslides99.zip",  
   "tex/latex/hyperref/backref.sty",
   "tex/latex/hyperref/hdvipdfm.def",
@@ -121,6 +123,7 @@ typesetfiles = {"hyperref-doc.tex",
                 "backref.dtx", 
                 "hyperref.dtx", 
                 "nameref.dtx",
+                "xr-hyper.dtx",
                 "hyperref-linktarget.dtx"}
 
 local function type_manual()
diff --git a/hyperref.ins b/hyperref.ins
index fd8308e..19fb268 100644
--- a/hyperref.ins
+++ b/hyperref.ins
@@ -120,6 +120,7 @@ given in the file `manifest.txt'.
   \file{psdextra.def}{\from{hyperref.dtx}{psdextra}}
   \file{nohyperref.sty}{\from{hyperref.dtx}{nohyperref}}
   \file{hyperref-patches.sty}{\from{hyperref-patches.dtx}{package}}
+  \file{xr-hyper.sty}{\from{xr-hyper.dtx}{package}}
 }
 
 \Msg{***************************************************************}
diff --git a/manifest.txt b/manifest.txt
index 62b3e25..18b3df7 100644
--- a/manifest.txt
+++ b/manifest.txt
@@ -24,7 +24,7 @@ minitoc-hyper.sty
         Obsolete, now just calls minitoc.
 ntheorem-hyper.sty
         Obsolete, now just calls ntheorem.
-xr-hyper.sty
+xr-hyper.dtx
         Patched version of `xr.sty' to work with `hyperref.sty'.
 
 bmhydoc.sty
diff --git a/testfiles/xr-properties-6.lvt b/testfiles/xr-properties-6.lvt
new file mode 100644
index 0000000..9c3d3c3
--- /dev/null
+++ b/testfiles/xr-properties-6.lvt
@@ -0,0 +1,25 @@
+\documentclass{book}
+\input{regression-test}
+\begin{filecontents}[force]{test-aux6.aux}
+\new at label@record{VIa}{{page}{1}{title}{\unknown section.title}}
+\newlabel{VIb}{{1.1}{1}{title}{\unknown section.title}{}}
+\end{filecontents}
+
+\usepackage{xr-hyper}
+
+\externaldocument{test-aux6}
+\externaldocument[X]{test-aux6}[https://xxx.yyy.zzz]
+\begin{document}
+\def\unknown{KNOWN}
+\START \showoutput
+
+\makeatletter 
+
+ \show\r at VIa  \show\r at VIb  
+
+\TYPE
+ {
+   \RefProperty{VIa}{xr-url}, \RefProperty{VIa}{page}, \RefProperty{VIa}{title},
+   \RefProperty{XVIa}{xr-url}
+ }   
+\end{document}
diff --git a/testfiles/xr-properties-6.tlg b/testfiles/xr-properties-6.tlg
new file mode 100644
index 0000000..fcc2749
--- /dev/null
+++ b/testfiles/xr-properties-6.tlg
@@ -0,0 +1,11 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+> \r at VIa=macro:
+->{page}{1}{title}{\unknown section.title}{xr-url}{test-aux6.pdf}.
+l. ... \show\r at VIa
+                   \show\r at VIb
+> \r at VIb=macro:
+->{1.1}{1}{title}{\unknown section.title}{test-aux6.pdf}.
+l. ... \show\r at VIa  \show\r at VIb
+ test-aux6.pdf, 1, KNOWNsection.title, https://xxx.yyy.zzz 
+(xr-properties-6.aux)
diff --git a/xr-hyper.dtx b/xr-hyper.dtx
new file mode 100644
index 0000000..f6b5513
--- /dev/null
+++ b/xr-hyper.dtx
@@ -0,0 +1,332 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 1993-2024 David Carlisle
+%
+% This file is part of the `Hyperref Bundle'.
+% -------------------------------------------
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is the LaTeX Project.
+%
+% The list of all files belonging to the `Hyperref Bundle' is
+% given in the file `manifest.txt'.
+%
+% \fi
+% \iffalse
+%% File: xr-hyper.dtx Copyright (C) 1993-2024 David Carlisle
+%
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{xr-hyper}
+%<package>         [2023-11-26 v7.01g eXternal References (DPC)]
+%
+%<*driver>
+\documentclass{l3doc}
+\usepackage{xr-hyper}
+\GetFileInfo{xr-hyper.sty}
+\begin{document}
+\title{The \textsf{xr-hyper} package\thanks{This file
+        has version number \fileversion, last
+        revised \filedate.}}
+\author{David Carlisle}
+\date{\filedate}
+\maketitle
+\DocInput{xr-hyper.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{v6.00 beta2}{1997/10/06}
+%         {}
+%
+% \changes{v6.00 beta3}{1999/09/01}
+%         {Definitions of \cs{XR at addURL} corrected (Heiko Oberdiek)}
+%
+% \changes{v6.00 beta 4}{2000/03/22}
+%         {\cmd\xdef changed to \cs{protected at xdef}} 
+%
+% \changes{v6.1}{2019/10/03}
+%         {Incorporate updates to \pkg{xr} (including citation support)}
+%
+% \changes{v7.00e}{2020-05-14}
+%         {add additional braces to \cs{r@}\meta{label} only if \pkg{hyperref} is not detected in the aux
+%          of the source document (https://github.com/latex3/hyperref/issues/118)}
+%
+% \changes{v7.00z}{2023-05-15}
+%         {unified and simplified the brace handling: all defined references have now
+%          five brace groups. Together with the planed change in LaTeX 2023-06-01 this
+%          will improve the combination of hyperref/non-hyperref documents.}
+%          
+% \changes{v7.01g}{2023-11-26}
+%         {Always store the URL/file name of the external document to allow file links
+%          even if it has no destinations.}
+%  
+% \changes{v7.01h}{2024-01-20}
+%         {do not expand the labels when reading, (https://github.com/latex3/hyperref/issues/327)}
+%         
+% \changes{v7.01h}{2024-01-20}
+%         {support \LaTeX\ properties.}
+%        
+% This package implements a system for eXternal References.
+% 
+% It is an extension of the \pkg{xr} package. It was developed to support the
+% extended label syntax of the \pkg{hyperref} package and to enable active links
+% to the external documents.
+% 
+% In the \LaTeX{} release 2023-06-01 the label syntax of \pkg{hyperref}
+% and the \LaTeX{} kernel have been synchronized and there is no longer
+% a need for two packages. \pkg{xr-hyper} already works with all documents --
+% it is not required to load\pkg{hyperref} -- and its code will move in the
+% next \LaTeX{} release into the \pkg{xr} package. Then \pkg{xr-hyper} can be
+% deprecated.
+% 
+% \section{Usage}
+% 
+% \begin{syntax}
+% \cs{externaldocument}\oarg{prefix}\texttt[nocite\texttt]\marg{document}\oarg{url}
+% \end{syntax}
+%
+% If one document needs to refer to sections of another, say |aaa.tex|,
+% then this package may be loaded in the main file, and the command
+% \begin{verbatim}
+% |\externaldocument{aaa}|
+% \end{verbatim}
+%  given in the preamble.
+%
+% Then you may use |\ref| and |\pageref| (or |\nameref| if the
+% package \pkg{nameref} has been loaded to refer to anything which has
+% been given a |\label| in either |aaa.tex| or the main document.
+% You may declare any number of such external documents.
+%
+% If any of the external documents, or the main document, use the same
+% |\label| then an error will occur as the label will be multiply
+% defined. To overcome this problem |\externaldocument| has an optional
+% argument \meta{prefix}. 
+% If you declare |\externaldocument[A-]{aaa}|, then all
+% references from |aaa| are prefixed by |A-|. So for instance, if a
+% section of |aaa| had |\label{intro}|, then this could be referenced
+% with |\ref{A-intro}|. The prefix need not be |A-|, it can be any
+% string chosen to ensure that all the labels imported from external
+% files are unique. Note however that the prefix is expanded and
+% so should not contain commands that are not safe in this context. 
+%
+% As first suggested in Enrico Gregorio's |xcite| package, the current version
+% also allows |\cite| to reference |\bibitem| in the external document.
+% For compatibility with |xcite|, |\externalcitedocument| is made available
+% as an alias for |\externaldocument|
+% 
+% Many packages have variant citation commands (natbib,
+% biblatex,....) and the external document may or may not have used
+% hyperref. Because of these differences the citation linking may not
+% always work, it can be disabled by specifying \texttt{[nocite]} after the
+% \meta{prefix}:
+% \begin{verbatim}
+%  \externaldocument[][nocite]{aaa}
+% \end{verbatim}  
+% 
+% The `document' referred to by the main argument \meta{document} is the file
+% \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 \file{document.pdf}. A package may redefine the command \cs{XR at ext} to
+% change this default extension. 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 final optional argument \meta{url} allows a full
+% URL to the final document to be specified.
+% \begin{verbatim}
+% \externaldocument{aaa}[http://here.xxx.edu/this/path/to/aaa.pdf]
+% \end{verbatim}
+% 
+% The package stores the url of the external document in the label data. If can
+% e.g. be retrieved with the \pkg{refcount} package
+% 
+% \begin{verbatim}
+% \usepackage{refcount,xr-hyper}
+% \externaldocument{aaa}
+% ...
+% \getrefbykeydefault{intro}{url}{??} %prints aaa.pdf or ??
+% \end{verbatim}
+% 
+% \pkg{xr-hyper} supports also the properties introduced in \LaTeX{} 2023-11-01.
+% Here the url of the external document is stored in the \texttt{xr-url} property.
+% 
+% \begin{verbatim}
+% \usepackage{xr-hyper}
+% \externaldocument{aaa} %aaa contains \RecordProperties{intro}{page}
+% ...
+% \RefProperty{intro}{page}   %gives page number
+% \RefProperty{intro}{xr-url} %gives aaa.pdf 
+% \end{verbatim}
+% 
+%
+% \MaybeStop{}
+%
+% \section{The macros}
+%
+%    \begin{macrocode}
+%<*package>
+%    \end{macrocode}
+%
+% Check for the optional argument.
+%    \begin{macrocode}
+\def\externaldocument{\@testopt\XR at cite{}}
+\let\externalcitedocument\externaldocument
+\def\XR at cite[#1]{\@testopt{\XR@[#1]}{}}
+\def\XR@[#1][#2]#3{\@testopt{\XR@@{#1}{#2}{#3}}{#3.\XR at ext}}
+%    \end{macrocode}
+%
+% \subsection{helper definitions}
+% To test the second optional argument
+%    \begin{macrocode}
+\def\XR@@nocite{nocite}
+%    \end{macrocode}
+% Needed in the processing
+%    \begin{macrocode}
+\long\def\@gobblefour  #1#2#3#4{}
+\long\def\@firstoffour #1#2#3#4{#1}
+\long\def\@secondoffour#1#2#3#4{#2}
+\long\def\@thirdoffour #1#2#3#4{#3}
+\long\def\@fourthoffour #1#2#3#4{#4}
+%    \end{macrocode}
+% The url is added as fifth argument. The command used here is
+% \cs{XR at addURL}. The command is more complicated as needed
+% as it tries to handle also older documents with 
+% \cs{newlabel}'s with two arguments. 
+%    \begin{macrocode}
+\def\XR at addURL#1{\XR@@dURL#1{}{}{}{}\\}
+\def\XR@@dURL#1#2#3#4#5\\{%
+     \unexpanded{{#1}{#2}{#3}{#4}}{\XR at URL}% 
+  }%
+%    \end{macrocode}
+% 
+% \subsection{Variables}
+% 
+% Default file extension:
+%    \begin{macrocode}
+\providecommand\XR at ext{pdf}
+%    \end{macrocode}
+%
+% \subsection{Processing}
+% Save the optional prefix. Start processing the first |aux| file.
+% Version beta2 also added 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
+% \cs{externaldocument}{/some/path/to/file}
+% specifically that worked if file.aux was a `simple'  document with
+% one aux file, but if \cs{include} had been used, the `sub' aux files
+% would not be found by xr in the remote directory.
+% This version calls \cs{filename at parse} to get the directory name of the
+% remote directory, which is then explicitly prepended to the names of
+% any included aux files.
+%    \begin{macrocode}
+\def\XR@@#1#2#3[#4]{{%
+  \makeatletter
+  \def\XR at prefix{#1}%
+   \def\XR at nocite{#2}%
+   \ifx\XR at nocite\XR@@nocite
+     \let\XR at bibcite\vadjust
+   \else
+     \let\XR at bibcite\bibcite
+   \fi
+  \def\XR at URL{#4}%
+  \filename at parse{#3}%
+  \XR at next#3.aux\relax\\}}
+%    \end{macrocode}
+%
+% Process the next |aux| file in the list and remove it from the head of
+% the list of files to process.
+%    \begin{macrocode}
+\def\XR at next#1\relax#2\\{%
+  \edef\XR at list{#2}%
+  \XR at loop{#1}}
+%    \end{macrocode}
+%
+% Check whether the list of |aux| files is empty.
+%    \begin{macrocode}
+\def\XR at aux{%
+  \ifx\XR at list\@empty\else\expandafter\XR at explist\fi}
+%    \end{macrocode}
+%
+% Expand the list of aux files, and call |\XR at next| to process the first
+% one.
+%    \begin{macrocode}
+\def\XR at explist{\expandafter\XR at next\XR at list\\}
+%    \end{macrocode}
+%
+% If the |aux| file exists, loop through line by line, looking for
+% |\newlabel| and |\@input|. Otherwise process the next file in the
+% list.
+%  \changes{v7.01h}{2024-01-20}{Add braces around the filename to
+%    support filenames with spaces (gh/223) similar to xr}
+%    \begin{macrocode}
+\def\XR at loop#1{\openin\@inputcheck{#1}\relax
+  \ifeof\@inputcheck
+    \PackageWarning{xr}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}%
+    \expandafter\XR at aux
+  \else
+    \PackageInfo{xr}{IMPORTING LABELS FROM #1}%
+    \expandafter\XR at read\fi}
+%    \end{macrocode}
+%
+% Read the next line of the aux file.
+%    \begin{macrocode}
+\def\XR at read{%
+  \read\@inputcheck to\XR at line
+%    \end{macrocode}
+% The |...| make sure that |\XR at test| always has sufficient arguments.
+%    \begin{macrocode}
+  \expandafter\XR at test\XR at line...\XR@}
+%    \end{macrocode}
+%
+% Look at the first token of the line.
+% If it is |\newlabel|, define \cs{r@}\meta{label}, ensure that it has
+% five label data argument and add the url as the last one.  
+% If it is |\@input|, add the
+% filename to the list of files to process. 
+% If it is |\bibcite|, call a |\bibcite|. 
+% If it is |\new at label@record| add the url and then call it.
+% Otherwise ignore.
+% Go around the loop if not at end of file. Finally process the next
+% file in the list.
+% Make sure the arguments are handled outside the |\ifx| test,
+%    \begin{macrocode}
+\long\def\XR at test#1#2#3#4\XR@{%
+  \let\XR at tempa\@gobblefour
+  \ifx#1\newlabel
+    \let\XR at tempa\@firstoffour
+  \else\ifx#1\XR at bibcite
+    \let\XR at tempa\@secondoffour
+  \else\ifx#1\@input
+     \let\XR at tempa\@thirdoffour
+  \else\ifx#1\new at label@record
+     \let\XR at tempa\@fourthoffour    
+  \fi\fi\fi\fi
+   \XR at tempa
+    {%
+     \expandafter\protected at xdef\csname r@\XR at prefix#2\endcsname{\XR at addURL{#3}}%     
+    }%
+    {\expandafter\bibcite\expandafter{\XR at prefix#2}{#3}}%
+    {\edef\XR at list{\XR at list\filename at area#2\relax}}%
+    {%
+      \edef\next{\noexpand\new at label@record{\XR at prefix#2}{\unexpanded{#3}{xr-url}{\XR at URL}}}%
+      \next
+    }
+  \ifeof\@inputcheck\expandafter\XR at aux
+  \else\expandafter\XR at read\fi}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
+% \Finale
+%
diff --git a/xr-hyper.sty b/xr-hyper.sty
deleted file mode 100644
index 08d7e1e..0000000
--- a/xr-hyper.sty
+++ /dev/null
@@ -1,172 +0,0 @@
-%% xr-hyper package (beta release)
-
-%% Copyright (C) 1993-2023 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][nocite]{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.pdf'. A package may redefine the command \XR at ext to
-%% change this default extension. 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.pdf]
-%%
-%% Version beta2 also added 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 at parse to get the directory name of the
-%% remote directory, which is then explicitly prepended to the names of
-%% any included aux files.
-%%
-%%
-%% Version 6.1 incorporates linking to citations in external documents
-%% (originally from xcite package and now included in xr.
-%%
-%% Many packages have variant citation commands (natbib,
-%% biblatex,....) and the external document may or may not have used
-%% hyperref. Because of these differences the citation linking may not
-%% always work, it can be disabled by specifying [nocite] after the
-%% prefix:
-%%
-%%  \externaldocument[][nocite]{somefile}
-%%
-%% In the case of \ref, if the external document has not used
-%% hyperref, this package will work like xr and produce the correct
-%% text, but it can only produce a file link and
-%% not target the exact location as the target document has no destinations
-%% In this case you may prefer to use \ref* rather than
-%% \ref to avoid generating a hyperlink.
-%%
-%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{xr-hyper}
-         [2023-11-26 v7.01g eXternal References (DPC)]
-
-\def\externaldocument{\@testopt\XR at cite{}}
-\let\externalcitedocument\externaldocument
-\def\XR at cite[#1]{\@testopt{\XR@[#1]}{}}
-\def\XR@[#1][#2]#3{\@testopt{\XR@@{#1}{#2}{#3}}{#3.\XR at ext}}
-
-\def\XR@@#1#2#3[#4]{{%
-  \makeatletter
-  \def\XR at prefix{#1}%
-   \def\XR at nocite{#2}%
-   \ifx\XR at nocite\XR@@nocite
-     \let\XR at bibcite\vadjust
-   \else
-     \let\XR at bibcite\bibcite
-   \fi
-  \def\XR at URL{#4}%
-  \filename at parse{#3}%
-  \XR at next#3.aux\relax\\}}
-\def\XR@@nocite{nocite}
-\def\XR at next#1\relax#2\\{%
-  \edef\XR at list{#2}%
-  \XR at loop{#1}}
-\def\XR at aux{%
-  \ifx\XR at list\@empty\else\expandafter\XR at explist\fi}
-
-\long\def\@gobblefour  #1#2#3#4{}
-\long\def\@firstoffour #1#2#3#4{#1}
-\long\def\@secondoffour#1#2#3#4{#2}
-\long\def\@thirdoffour #1#2#3#4{#3}
-\long\def\@fourthoffour #1#2#3#4{#4}
-
-% 2023-05-13 we need to handle \newlabel's with two arguments differently
-% to \newlabel's with five argument. For this we make use of  
-% XR at addURL:
-\def\XR at addURL#1{\XR@@dURL#1{}{}{}{}\\}
-\def\XR@@dURL#1#2#3#4#5\\{%
-     \unexpanded{{#1}{#2}{#3}{#4}}{\XR at URL}% 
-  }%
-
-\def\XR at explist{\expandafter\XR at next\XR at list\\}
-\def\XR at loop#1{%
-\openin\@inputcheck#1\relax
-  \ifeof\@inputcheck
-    \PackageWarning{xr}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}%
-    \expandafter\XR at aux
-  \else
-    \PackageInfo{xr}{IMPORTING LABELS FROM #1}%
-    \expandafter\XR at read\fi}
-\def\XR at read{%
-  \read\@inputcheck to\XR at line
-  \expandafter\XR at test\XR at line...\XR@}
-% 2019 update to match xr
-\long\def\XR at test#1#2#3#4\XR@{%
-  \let\XR at tempa\@gobblefour
-  \ifx#1\newlabel
-    \let\XR at tempa\@firstoffour
-  \else\ifx#1\XR at bibcite
-    \let\XR at tempa\@secondoffour
-  \else\ifx#1\@input
-     \let\XR at tempa\@thirdoffour
-  \else\ifx#1\new at label@record
-     \let\XR at tempa\@fourthoffour    
-  \fi\fi\fi\fi
-   \XR at tempa
-    {%
-     \expandafter\protected at xdef\csname r@\XR at prefix#2\endcsname{\XR at addURL{#3}}%     
-    }%
-    {\expandafter\bibcite\expandafter{\XR at prefix#2}{#3}}%
-    {\edef\XR at list{\XR at list\filename at area#2\relax}}%
-    {%
-      \edef\next{\noexpand\new at label@record{\XR at prefix#2}{\unexpanded{#3}{xr-url}{\XR at URL}}}%
-      \next
-    }
-  \ifeof\@inputcheck\expandafter\XR at aux
-  \else\expandafter\XR at read\fi}
-
-
-\providecommand\XR at ext{pdf}
-
-\endinput
-%%
-%% End of file `xr-hyper.sty'.
-
-
-%% History
-%%
-%% 1997/10/06 v6.00 beta2
-%%
-%% 1999/09/01 v6.00 beta3
-%%   Definitions of \XR at addURL corrected (Heiko Oberdiek).
-%%
-%% 2000/03/22 v6.00 beta4
-%%   \xdef changed to \protected at xdef.
-%%
-%% 2019/10/03 v6.1
-%%   Incorporate updates to xr (including citation support)
-%%
-%% 2020-05-14 v7.00e
-%%   add additional braces to \r@ only if hyperref is not detected in the aux
-%%   of the source document (https://github.com/latex3/hyperref/issues/118)
-%% 
-%% 2023-05-15 v.7.00z
-%%  unified and simplified the brace handling: all defined references have now
-%%  five brace groups. Together with the planed change in LaTeX 2023-06-01 this
-%%  will improve the combination of hyperref/non-hyperref documents.
-%%
-%% 2023-11-26
-%%
-%% Always store the URL/file name of the external document to allow file links
-%% even if it has no destinations.
-%%





More information about the latex3-commits mailing list.