summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/tex4ht/backref.4ht
blob: 12329a9110cb16165ea8a651e0cdbc5bb9d0939f (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
% backref.4ht (2021-12-20-13:57), generated from tex4ht-4ht.tex
% Copyright 2021 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 2021-12-20-13:57}

% patch command that inserts backlink destinations
\pend:defI\Hy@backout{%
  % prevent duplicate backlink on the same page
  \ifcsname bk##1\thepage\endcsname\else%
    % insert link to the page
    \html:addr\Link-{}{x\last:haddr}\EndLink%
    % save link to the .xref file
    \Tag{)Q##1\thepage}{x\last:haddr}%
    % we need to save the link destination in .xref file
    % too, otherwise \Link command would issue warning
    \Tag{)Qx\last:haddr}{\FileNumber}%
  \fi%
  % declare this backlink destination as used, so we don't
  % declare another one with the same name
  \expandafter\def\csname bk##1\thepage\endcsname{}%
}

% redefine macro that puts out backlinks
\def\:tempa#1#2#3{%
  % test if we saved link to the current bibitem and page
  \ifTag{)Q\current:back:desc#1}{%
      \Link{\LikeRef{)Q\current:back:desc#1}}{}#1\EndLink%
  }%
  {#1}% print just page number if there is no saved link
}%
\HLet\backrefxxx\:tempa

% save current bibkey for use in \backrefxxx
\pend:defI\BR@backref{\def\current:back:desc{##1}}

\Hinput{backref}
\endinput