blob: aac2f48868f2df8d6986d6c5d4ce347b93d4bb0e (
plain)
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
|
% xrhyper-hooks.4ht (2022-05-02-13:15), generated from tex4ht-4ht.tex
% Copyright 2020 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c 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.3c 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 TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2022-05-02-13:15}
\ExplSyntaxOn
% detect )F[number]F- using l3regex
\regex_new:N \l_xref_filename
\regex_set:Nn \l_xref_filename {F\d+F}
% save all filenames declared in the xref file
\def\:extract:filename:from:xref#1#2#3{%
\regex_match:NnTF \l_xref_filename {#1}{%
\filename@parse{#2}
\expandafter\xdef\csname xr:dir:\filename@base\endcsname{\:tempa}
}{}
}
\def\:declare:xref:files#1#2{
\begingroup
% we need to find filenames of cutfiles
% we will use \filename@parse again, so we need to save the directory name
\edef\:tempa{#2}%
\def\:CrossWord##1##2##3{\:extract:filename:from:xref{##1}{##2}{\:tempa}}%
\catcode`\:=11% : is not letter at this moment
\InputIfFileExists{#1.xref}{}{}% load saved cross-references
\endgroup
}
\ExplSyntaxOff
\:AtEndOfPackage{\let\XR:\XR@
\def\XR@[#1][#2]#3{%
% save directory for the linked file
\filename@parse{#3}%
% \filename@base is filename, \filename@area directory
\expandafter\xdef\csname xr:dir:\filename@base\endcsname{\filename@area}%
\:declare:xref:files{\filename@area\filename@base}{\filename@area}% declare directory for cut files
\AtBeginDocument{\XR:[#1][#2]{#3}}
}%
}
|