diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/tex4ht/biblatex.4ht')
-rw-r--r-- | Master/texmf-dist/tex/generic/tex4ht/biblatex.4ht | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/generic/tex4ht/biblatex.4ht b/Master/texmf-dist/tex/generic/tex4ht/biblatex.4ht index 2db5ba238ff..ee7346a4829 100644 --- a/Master/texmf-dist/tex/generic/tex4ht/biblatex.4ht +++ b/Master/texmf-dist/tex/generic/tex4ht/biblatex.4ht @@ -1,4 +1,4 @@ -% biblatex.4ht (2021-08-14-14:10), generated from tex4ht-4ht.tex +% biblatex.4ht (2021-12-20-14:48), generated from tex4ht-4ht.tex % Copyright 2007-2009 Eitan M. Gurari % Copyright 2009-2021 TeX Users Group % @@ -17,7 +17,7 @@ % % If you modify this program, changing the % version identification would be appreciated. -\immediate\write-1{version 2021-08-14-14:10} +\immediate\write-1{version 2021-12-20-14:48} \def\make:blx:ver#1.#2#3\relax{% %\ifdim#1pt< 3pt \xdef\blx:ver:no{2}\else\xdef\blx:ver:no{3}\fi% @@ -598,6 +598,56 @@ \@fntORI}% frenchle \let\do\:temp + \pend:defI\blx@backref{% + % prevent duplicate backlink on the same page + \ifcsdef{bk##1\thepage}{}{% + % 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}% + }% + % declare this backlink destination as used, so we don't + % declare another one with the same name + \expandafter\gdef\csname bk##1\thepage\endcsname{}% +} + +% version of \hyperlink that links back to saved link in citation +% on the given DVI page +\def\bbx:hyperlink#1#2{ + % first argument is destination used by Hyperref, second is page number + % test if we saved link to the current bibitem and page + \ifTag{)Q\abx@field@entrykey#2}{% + \Link{\LikeRef{)Q\abx@field@entrykey#2}}{}#2\EndLink% + }% + {#2}% print just page number if there is no saved link + } + +% we need to redefine pageref format, which is used for printing of +% back link page numbers. custom \hyperlink command is used +\DeclareListFormat{pageref}{% + % we redefine \hyperlink command to link page numbers in backreferences + % back to the citations on the given pages + \let\orig:hyperlink\hyperlink% + \let\hyperlink\bbx:hyperlink% + \ifnumless{\abx@pagerefstyle}{0} + {\usebibmacro{list:plain}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}} + {\ifnumequal{\value{listcount}}{1} + {\usebibmacro{pageref:init}} + {}% + \usebibmacro{pageref:comp}{#1}% + \ifnumequal{\value{listcount}}{\value{liststop}} + {\usebibmacro{pageref:dump}} + {}} + \let\hyperlink\orig:hyperlink% +} + + \Hinput{biblatex} \endinput |