texlive[65407] Master/texmf-dist: zref-vario (30dec22)

commits+karl at tug.org commits+karl at tug.org
Fri Dec 30 22:54:26 CET 2022


Revision: 65407
          http://tug.org/svn/texlive?view=revision&revision=65407
Author:   karl
Date:     2022-12-30 22:54:26 +0100 (Fri, 30 Dec 2022)
Log Message:
-----------
zref-vario (30dec22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf
    trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf
    trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex
    trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx
    trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty

Modified: trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md	2022-12-30 21:54:06 UTC (rev 65406)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md	2022-12-30 21:54:26 UTC (rev 65407)
@@ -1,7 +1,14 @@
 # Changelog
 
-## [Unreleased](https://github.com/gusbrs/zref-vario/compare/v0.1.5...HEAD)
+## [Unreleased](https://github.com/gusbrs/zref-vario/compare/v0.1.6...HEAD)
 
+## [v0.1.6](https://github.com/gusbrs/zref-vario/compare/v0.1.5...v0.1.6) (2022-12-29)
+
+### Added
+- Hyperlinking for the nearby page references and for the page part of paired
+  references.
+- Localization for Italian.
+
 ## [v0.1.5](https://github.com/gusbrs/zref-vario/compare/v0.1.4...v0.1.5) (2022-07-08)
 
 ### Added

Modified: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex	2022-12-30 21:54:06 UTC (rev 65406)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex	2022-12-30 21:54:26 UTC (rev 65407)
@@ -61,14 +61,10 @@
 
 \NewDocumentCommand\opt{m}{\texttt{#1}}
 
-% Temporary workaround for 'l3doc' bug.
-% https://github.com/latex3/latex3/issues/1111
-% FIXME Remove when fixed upstream.
-\NewDocElement[
-  macrolike = false ,
-  printtype = \textit{opt.} ,
-]{Option}{optiondesc}
+\NewDocumentCommand\username{m}{`\texttt{#1}'}
 
+\setlength{\marginparsep}{2\labelsep}
+
 \lstdefinestyle{code}{
   language=[LaTeX]TeX,
   % moretexcs={
@@ -283,6 +279,24 @@
 But, if you need to adjust them, the default values can be overridden by
 setting the corresponding options in \cs{zvLanguageSetup}.
 
+\begin{function}{\zvhyperlink}
+  \begin{syntax}
+    \cs{zvhyperlink}\marg{text}
+  \end{syntax}
+\end{function}
+
+Inside the options of \cs{zvLanguageSetup}, and also inside the \opt{vcurrent}
+and \opt{vother} options of \pkg{zref-vario}'s reference commands,
+\cs{zvhyperlink} can be used to produce a hyperlink to the label of the
+reference.  For example, one could set \texttt{reftextafter=\{on the
+  \cs{zvhyperlink}\{next page\}\}} to get ``next page'' hyperlinked.
+\cs{zvhyperlink} can be used regardless of \opt{hyperref} being enabled for
+\pkg{zref-clever}, it will just pass on the \meta{text} argument if it is not.
+On range reference commands, \cs{zvhyperlink} only produces a link when both
+labels fall on the same page, in which case it hyperlinks to the first label.
+
+\bigskip{}
+
 As far as \pkg{zref-vario} is concerned, \pkg{varioref}'s options are (mostly)
 not taken into account: the language options are disregarded (settings made
 with \cs{zvLanguageSetup} are used instead), the \opt{nospace} option is

Modified: trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx	2022-12-30 21:54:06 UTC (rev 65406)
+++ trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx	2022-12-30 21:54:26 UTC (rev 65407)
@@ -64,8 +64,8 @@
 % \NewDocumentCommand\githubPR{m}{^^A
 %   PR~\href{https://github.com/gusbrs/zref-vario/pull/#1}{\##1}}
 %
-% ^^A Currently just for keeping semantic markup on this.
 % \NewDocumentCommand\contributor{m}{#1}
+% \NewDocumentCommand\username{m}{`\texttt{#1}'}
 %
 % \NewDocumentCommand\opt{m}{\texttt{#1}}
 %
@@ -128,7 +128,7 @@
 %
 % Identify the package.
 %    \begin{macrocode}
-\ProvidesExplPackage {zref-vario} {2022-07-08} {0.1.5}
+\ProvidesExplPackage {zref-vario} {2022-12-29} {0.1.6}
   {Extended LaTeX page cross-references with varioref and zref-clever}
 %    \end{macrocode}
 %
@@ -139,6 +139,9 @@
 % the user (and the manual recommends it).  But we do it, if it hasn't been
 % done.
 %
+% Note that \pkg{zref-clever} \texttt{v0.2.0-alpha}, from 2022-01-28, requires
+% a kernel 2021-11-15 or newer.
+%
 %    \begin{macrocode}
 \RequirePackage { zref-clever } [ 2022-01-28 ] % v0.2.0-alpha
 \AddToHook { begindocument/before }
@@ -145,7 +148,11 @@
   { \RequirePackage { varioref } }
 %    \end{macrocode}
 %
+% Also note that, contrary to \pkg{zref-clever}, \pkg{zref-vario} is
+% incompatible with \pkg{cleveref}, because the latter patches \pkg{varioref}
+% in ways that break \pkg{zref-vario}.
 %
+%
 % \section{Options}
 %
 % \subsection*{\cs{zvsetup}}
@@ -565,7 +572,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l_@@_hyperlink_bool
+      }
+    \tl_set:Nn \l_@@_linklabel_tl {#1}
     \@@_varioref_setup:
     \reftextfaraway {#1}
     \group_end:
@@ -662,6 +673,78 @@
 %
 %
 %
+% Provide proper hyperlinking for the ``nearby'' page references.
+% \pkg{hyperref} makes \cs{vref} a \emph{single} link, including both the
+% standard and the page reference (see Ulrike Fischer's answer and discussion
+% in the comments at \url{https://tex.stackexchange.com/a/655106}).  However,
+% it does not provide the same treatment to \cs{vpageref}, where there's no
+% linking at all for nearby pages, to \cs{vrefrange}, \cs{vpagerefrange}, or
+% \cs{vnameref}.  In my view, this makes \pkg{hyperref} inconsistent.
+% \pkg{cleveref} indeed discusses the issue in the ``Known Bugs and
+% Work-Arounds'' section, mentioning two problems.  The first, that the page
+% reference does not honor the \texttt{nameinlink} option, which it is
+% actually the same behavior we get from \cs{vnameref}.  The second, that
+% nearby page references are not included in the links or hyperlinked when by
+% themselves.  This latter problem may be considered undesirable, and even a
+% ``bug'', but at least \pkg{cleveref}'s behavior in this regard is
+% consistent.
+%
+% This is actually tricky and I think the best alternative here is to not even
+% try to make a single link of both references, as \pkg{hyperref} does for
+% \cs{vref}.  But rather to offer ways to hyperlink the ``nearby'' page
+% references separately, which is something that can work for paired
+% references and for standalone page references just as well.
+% \cs{zvhyperlink} is provided for such purpose, and is meant to be used
+% either in the reference format settings of \cs{zvLanguageSetup}, or in the
+% \opt{vcurrent} and \opt{vother} options of the reference commands.  It only
+% makes a hyperlink if used in one such place (technically, if
+% \cs{l_@@_linklabel_tl} is not empty), if \cs{l_@@_hyperlink_bool} is true
+% (to control for starred variants) and if \pkg{hyperref} and
+% \pkg{zref-hyperref} are loaded, otherwise it passes on its argument
+% untouched.
+%
+%
+%    \begin{macrocode}
+\bool_new:N \g_@@_zref_hyperref_loaded_bool
+\bool_new:N \l_@@_hyperlink_bool
+\AddToHook { package/zref-hyperref/after }
+  {
+    \AddToHook { package/hyperref/after }
+      {
+        \bool_gset_true:N \g_@@_zref_hyperref_loaded_bool
+        \bool_set_true:N \l_@@_hyperlink_bool
+      }
+  }
+\tl_new:N \l_@@_linklabel_tl
+%    \end{macrocode}
+%
+% \begin{macro}[int]{\zvhyperlink}
+%   \begin{syntax}
+%     \cs{zvhyperlink}\marg{text}
+%   \end{syntax}
+%    \begin{macrocode}
+\NewDocumentCommand \zvhyperlink { m }
+  { \@@_hyperlink:n {#1} }
+\cs_new_protected:Npn \@@_hyperlink:n #1
+  {
+    \bool_lazy_all:nTF
+      {
+        { \g_@@_zref_hyperref_loaded_bool }
+        { \l_@@_hyperlink_bool }
+        { ! \tl_if_empty_p:V \l_@@_linklabel_tl }
+      }
+      {
+        \hyperlink
+          { \zref at extractdefault { \l_@@_linklabel_tl } { anchor } { } }
+          {#1}
+      }
+      {#1}
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%
 % \section{User interface}
 %
 % \begin{macro}
@@ -770,7 +853,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-oneoptarg } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l_@@_hyperlink_bool
+      }
+    \tl_set:Nn \l_@@_linklabel_tl {#1}
     \@@_varioref_setup:
     \@@_vref:Vn \l_@@_vref_reftextcurrent_tl {#1}
     \group_end:
@@ -801,7 +888,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-twooptargs } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l_@@_hyperlink_bool
+      }
+    \tl_set:Nn \l_@@_linklabel_tl {#1}
     \@@_varioref_setup:
     \@@_vpageref:VVn \l_@@_reftextcurrent_tl
       \l_@@_reftextother_tl {#1}
@@ -843,8 +934,13 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
     \bool_if:nT {#3}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l_@@_hyperlink_bool
+      }
     \@@_varioref_setup:
+    \vpagerefcompare {#1} {#2}
+      { \tl_set:Nn \l_@@_linklabel_tl {#1} } { }
     \@@_vrefrange:Vnn \l_@@_reftextcurrent_tl {#1} {#2}
     \group_end:
   }
@@ -871,8 +967,13 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
     \bool_if:nT {#3}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l_@@_hyperlink_bool
+      }
     \@@_varioref_setup:
+    \vpagerefcompare {#1} {#2}
+      { \tl_set:Nn \l_@@_linklabel_tl {#1} } { }
     \@@_vpagerefrange:Vnn \l_@@_reftextcurrent_tl {#1} {#2}
     \bool_lazy_and:nnT
       { \g_@@_zrefcheck_available_bool }
@@ -914,7 +1015,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l_@@_hyperlink_bool
+      }
+    \tl_set:Nn \l_@@_linklabel_tl {#1}
     \@@_varioref_setup:
     \fullref {#1}
     \group_end:
@@ -987,15 +1092,29 @@
 %
 % \section{Languages}
 %
+% Localization for the languages provided by the author, except where
+% otherwise stated.  However, I could only do so thanks to \pkg{varioref}, in
+% particular for languages I don't really know.  So, credits go to the
+% contributors of \pkg{varioref}.  Of course, if any native speaker would like
+% to review these, or contribute new ones, it is much welcome.  Note, however,
+% that since \pkg{zref-vario} depends on \pkg{zref-clever} and piggybacks on
+% its language infrastructure, it only makes sense to provide localization
+% here for languages already supported by \pkg{zref-clever}.
 %
+%
 %    \begin{macrocode}
 \zvLanguageSetup { english }
   {
-    reftextfaceafter = {on~the~\reftextvario{facing}{next}~page} ,
-    reftextfacebefore = {on~the~\reftextvario{facing}{preceding}~page} ,
-    reftextafter = {on~the~\reftextvario{following}{next}~page} ,
-    reftextbefore = {on~the~\reftextvario{preceding}{previous}~page} ,
-    reftextcurrent = {on~\reftextvario{this}{the~current}~page} ,
+    reftextfaceafter =
+      {on~the~\zvhyperlink{\reftextvario{facing}{next}~page}} ,
+    reftextfacebefore =
+      {on~the~\zvhyperlink{\reftextvario{facing}{preceding}~page}} ,
+    reftextafter =
+      {on~the~\zvhyperlink{\reftextvario{following}{next}~page}} ,
+    reftextbefore =
+      {on~the~\zvhyperlink{\reftextvario{preceding}{previous}~page}} ,
+    reftextcurrent =
+      {on~\reftextvario{}{the~}\zvhyperlink{\reftextvario{this}{current}~page}} ,
     reftextfaraway = {on~\zcpageref{#1}} ,
     reftextpagerange = {on~\zcpageref[range]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -1006,11 +1125,11 @@
 %    \begin{macrocode}
 \zvLanguageSetup { german }
   {
-    reftextfaceafter = {auf~der~nächsten~Seite} ,
-    reftextfacebefore = {auf~der~vorherigen~Seite} ,
-    reftextafter = {auf~der~nächsten~Seite} ,
-    reftextbefore = {auf~der~vorherigen~Seite} ,
-    reftextcurrent = {auf~dieser~Seite} ,
+    reftextfaceafter = {auf~der~\zvhyperlink{nächsten~Seite}} ,
+    reftextfacebefore = {auf~der~\zvhyperlink{vorherigen~Seite}} ,
+    reftextafter = {auf~der~\zvhyperlink{nächsten~Seite}} ,
+    reftextbefore = {auf~der~\zvhyperlink{vorherigen~Seite}} ,
+    reftextcurrent = {auf~\zvhyperlink{dieser~Seite}} ,
     reftextfaraway = {auf~\zcpageref[d=D,g=f]{#1}} ,
     reftextpagerange = {auf~den~\zcpageref[range,d=D,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -1021,11 +1140,13 @@
 %    \begin{macrocode}
 \zvLanguageSetup { french }
   {
-    reftextfaceafter = {page~\reftextvario{ci-contre}{suivante}} ,
-    reftextfacebefore = {page~\reftextvario{ci-contre}{précédente}} ,
-    reftextafter = {page~suivante} ,
-    reftextbefore = {page~précédente} ,
-    reftextcurrent = {de~la~présente~page} ,
+    reftextfaceafter =
+      {\zvhyperlink{page~\reftextvario{ci-contre}{suivante}}} ,
+    reftextfacebefore =
+      {\zvhyperlink{page~\reftextvario{ci-contre}{précédente}}} ,
+    reftextafter = {\zvhyperlink{page~suivante}} ,
+    reftextbefore = {\zvhyperlink{page~précédente}} ,
+    reftextcurrent = {de~la~\zvhyperlink{présente~page}} ,
     reftextfaraway = {\zcpageref[g=f]{#1}} ,
     reftextpagerange = {\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -1036,11 +1157,15 @@
 %    \begin{macrocode}
 \zvLanguageSetup { portuguese }
   {
-    reftextfaceafter = {na~\reftextvario{página~oposta}{próxima~página}} ,
-    reftextfacebefore = {na~página~\reftextvario{oposta}{anterior}} ,
-    reftextafter = {na~\reftextvario{página~seguinte}{próxima~página}} ,
-    reftextbefore = {na~página~\reftextvario{anterior}{precedente}} ,
-    reftextcurrent = {nesta~página} ,
+    reftextfaceafter =
+      {na~\zvhyperlink{\reftextvario{página~oposta}{próxima~página}}} ,
+    reftextfacebefore =
+      {na~\zvhyperlink{página~\reftextvario{oposta}{anterior}}} ,
+    reftextafter =
+      {na~\zvhyperlink{\reftextvario{página~seguinte}{próxima~página}}} ,
+    reftextbefore =
+      {na~\zvhyperlink{página~\reftextvario{anterior}{precedente}}} ,
+    reftextcurrent = {\zvhyperlink{nesta~página}} ,
     reftextfaraway = {na~\zcpageref[g=f]{#1}} ,
     reftextpagerange = {nas~\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -1051,11 +1176,11 @@
 %    \begin{macrocode}
 \zvLanguageSetup { spanish }
   {
-    reftextfaceafter = {en~la~página~siguiente} ,
-    reftextfacebefore = {en~la~página~anterior} ,
-    reftextafter = {en~la~página~siguiente} ,
-    reftextbefore = {en~la~página~anterior} ,
-    reftextcurrent = {en~esta~página} ,
+    reftextfaceafter = {en~la~\zvhyperlink{página~siguiente}} ,
+    reftextfacebefore = {en~la~\zvhyperlink{página~anterior}} ,
+    reftextafter = {en~la~\zvhyperlink{página~siguiente}} ,
+    reftextbefore = {en~la~\zvhyperlink{página~anterior}} ,
+    reftextcurrent = {en~\zvhyperlink{esta~página}} ,
     reftextfaraway = {en~la~\zcpageref[g=f]{#1}} ,
     reftextpagerange = {en~las~\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -1066,11 +1191,15 @@
 %    \begin{macrocode}
 \zvLanguageSetup { dutch }
   {
-    reftextfaceafter = {op~de~\reftextvario{rechter~pagina}{pagina~hiernaast}} ,
-    reftextfacebefore = {op~de~\reftextvario{linker~pagina}{pagina~hiernaast}} ,
-    reftextafter = {op~de~\reftextvario{volgende~pagina}{pagina~hierna}} ,
-    reftextbefore = {op~de~\reftextvario{vorige~pagina}{pagina~hiervoor}} ,
-    reftextcurrent = {op~deze~pagina} ,
+    reftextfaceafter =
+      {op~de~\zvhyperlink{\reftextvario{rechter~pagina}{pagina~hiernaast}}} ,
+    reftextfacebefore =
+      {op~de~\zvhyperlink{\reftextvario{linker~pagina}{pagina~hiernaast}}} ,
+    reftextafter =
+      {op~de~\zvhyperlink{\reftextvario{volgende~pagina}{pagina~hierna}}} ,
+    reftextbefore =
+      {op~de~\zvhyperlink{\reftextvario{vorige~pagina}{pagina~hiervoor}}} ,
+    reftextcurrent = {op~\zvhyperlink{deze~pagina}} ,
     reftextfaraway = {op~\zcpageref[g=f]{#1}} ,
     reftextpagerange = {op~\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -1079,6 +1208,24 @@
 %
 %
 %    \begin{macrocode}
+\zvLanguageSetup { italian }
+  {
+    reftextfaceafter =
+      {\reftextvario{}{nella~}\zvhyperlink{\reftextvario{a~fronte}{pagina~successiva}}} ,
+    reftextfacebefore =
+      {\reftextvario{}{nella~}\zvhyperlink{\reftextvario{a~fronte}{pagina~precedente}}} ,
+    reftextafter =
+      {nella~\zvhyperlink{pagina~\reftextvario{seguente}{successiva}}} ,
+    reftextbefore = {nella~\zvhyperlink{pagina~precedente}} ,
+    reftextcurrent = {in~\zvhyperlink{questa~pagina}} ,
+    reftextfaraway = {a~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {nelle~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
 %</package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty	2022-12-30 21:54:06 UTC (rev 65406)
+++ trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty	2022-12-30 21:54:26 UTC (rev 65407)
@@ -42,7 +42,7 @@
 %% 
 %% -----------------------------------------------------------------------
 %% 
-\ProvidesExplPackage {zref-vario} {2022-07-08} {0.1.5}
+\ProvidesExplPackage {zref-vario} {2022-12-29} {0.1.6}
   {Extended LaTeX page cross-references with varioref and zref-clever}
 \RequirePackage { zref-clever } [ 2022-01-28 ] % v0.2.0-alpha
 \AddToHook { begindocument/before }
@@ -341,7 +341,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l__zrefvario_hyperlink_bool
+      }
+    \tl_set:Nn \l__zrefvario_linklabel_tl {#1}
     \__zrefvario_varioref_setup:
     \reftextfaraway {#1}
     \group_end:
@@ -422,6 +426,34 @@
     Language~'#1'~is~not~set~up~for~'zref-vario'.~
     See~documentation~for~'\iow_char:N\\zvLanguageSetup'.
   }
+\bool_new:N \g__zrefvario_zref_hyperref_loaded_bool
+\bool_new:N \l__zrefvario_hyperlink_bool
+\AddToHook { package/zref-hyperref/after }
+  {
+    \AddToHook { package/hyperref/after }
+      {
+        \bool_gset_true:N \g__zrefvario_zref_hyperref_loaded_bool
+        \bool_set_true:N \l__zrefvario_hyperlink_bool
+      }
+  }
+\tl_new:N \l__zrefvario_linklabel_tl
+\NewDocumentCommand \zvhyperlink { m }
+  { \__zrefvario_hyperlink:n {#1} }
+\cs_new_protected:Npn \__zrefvario_hyperlink:n #1
+  {
+    \bool_lazy_all:nTF
+      {
+        { \g__zrefvario_zref_hyperref_loaded_bool }
+        { \l__zrefvario_hyperlink_bool }
+        { ! \tl_if_empty_p:V \l__zrefvario_linklabel_tl }
+      }
+      {
+        \hyperlink
+          { \zref at extractdefault { \l__zrefvario_linklabel_tl } { anchor } { } }
+          {#1}
+      }
+      {#1}
+  }
 \cs_new_protected:Npn \__zrefvario_vref_pagenum:Nn #1#2
   {
     \exp_args:NNNo \exp_args:NNo \cs_set_nopar:Npn #1
@@ -497,7 +529,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-oneoptarg } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l__zrefvario_hyperlink_bool
+      }
+    \tl_set:Nn \l__zrefvario_linklabel_tl {#1}
     \__zrefvario_varioref_setup:
     \__zrefvario_vref:Vn \l__zrefvario_vref_reftextcurrent_tl {#1}
     \group_end:
@@ -512,7 +548,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-twooptargs } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l__zrefvario_hyperlink_bool
+      }
+    \tl_set:Nn \l__zrefvario_linklabel_tl {#1}
     \__zrefvario_varioref_setup:
     \__zrefvario_vpageref:VVn \l__zrefvario_reftextcurrent_tl
       \l__zrefvario_reftextother_tl {#1}
@@ -545,8 +585,13 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
     \bool_if:nT {#3}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l__zrefvario_hyperlink_bool
+      }
     \__zrefvario_varioref_setup:
+    \vpagerefcompare {#1} {#2}
+      { \tl_set:Nn \l__zrefvario_linklabel_tl {#1} } { }
     \__zrefvario_vrefrange:Vnn \l__zrefvario_reftextcurrent_tl {#1} {#2}
     \group_end:
   }
@@ -564,8 +609,13 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
     \bool_if:nT {#3}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l__zrefvario_hyperlink_bool
+      }
     \__zrefvario_varioref_setup:
+    \vpagerefcompare {#1} {#2}
+      { \tl_set:Nn \l__zrefvario_linklabel_tl {#1} } { }
     \__zrefvario_vpagerefrange:Vnn \l__zrefvario_reftextcurrent_tl {#1} {#2}
     \bool_lazy_and:nnT
       { \g__zrefvario_zrefcheck_available_bool }
@@ -598,7 +648,11 @@
     \group_begin:
     \keys_set:nn { zref-vario/ref } {#3}
     \bool_if:nT {#2}
-      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+      {
+        \keys_set:nn { zref-vario/ref } { nohyperref }
+        \bool_set_false:N \l__zrefvario_hyperlink_bool
+      }
+    \tl_set:Nn \l__zrefvario_linklabel_tl {#1}
     \__zrefvario_varioref_setup:
     \fullref {#1}
     \group_end:
@@ -648,11 +702,16 @@
   }
 \zvLanguageSetup { english }
   {
-    reftextfaceafter = {on~the~\reftextvario{facing}{next}~page} ,
-    reftextfacebefore = {on~the~\reftextvario{facing}{preceding}~page} ,
-    reftextafter = {on~the~\reftextvario{following}{next}~page} ,
-    reftextbefore = {on~the~\reftextvario{preceding}{previous}~page} ,
-    reftextcurrent = {on~\reftextvario{this}{the~current}~page} ,
+    reftextfaceafter =
+      {on~the~\zvhyperlink{\reftextvario{facing}{next}~page}} ,
+    reftextfacebefore =
+      {on~the~\zvhyperlink{\reftextvario{facing}{preceding}~page}} ,
+    reftextafter =
+      {on~the~\zvhyperlink{\reftextvario{following}{next}~page}} ,
+    reftextbefore =
+      {on~the~\zvhyperlink{\reftextvario{preceding}{previous}~page}} ,
+    reftextcurrent =
+      {on~\reftextvario{}{the~}\zvhyperlink{\reftextvario{this}{current}~page}} ,
     reftextfaraway = {on~\zcpageref{#1}} ,
     reftextpagerange = {on~\zcpageref[range]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -659,11 +718,11 @@
   }
 \zvLanguageSetup { german }
   {
-    reftextfaceafter = {auf~der~nächsten~Seite} ,
-    reftextfacebefore = {auf~der~vorherigen~Seite} ,
-    reftextafter = {auf~der~nächsten~Seite} ,
-    reftextbefore = {auf~der~vorherigen~Seite} ,
-    reftextcurrent = {auf~dieser~Seite} ,
+    reftextfaceafter = {auf~der~\zvhyperlink{nächsten~Seite}} ,
+    reftextfacebefore = {auf~der~\zvhyperlink{vorherigen~Seite}} ,
+    reftextafter = {auf~der~\zvhyperlink{nächsten~Seite}} ,
+    reftextbefore = {auf~der~\zvhyperlink{vorherigen~Seite}} ,
+    reftextcurrent = {auf~\zvhyperlink{dieser~Seite}} ,
     reftextfaraway = {auf~\zcpageref[d=D,g=f]{#1}} ,
     reftextpagerange = {auf~den~\zcpageref[range,d=D,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -670,11 +729,13 @@
   }
 \zvLanguageSetup { french }
   {
-    reftextfaceafter = {page~\reftextvario{ci-contre}{suivante}} ,
-    reftextfacebefore = {page~\reftextvario{ci-contre}{précédente}} ,
-    reftextafter = {page~suivante} ,
-    reftextbefore = {page~précédente} ,
-    reftextcurrent = {de~la~présente~page} ,
+    reftextfaceafter =
+      {\zvhyperlink{page~\reftextvario{ci-contre}{suivante}}} ,
+    reftextfacebefore =
+      {\zvhyperlink{page~\reftextvario{ci-contre}{précédente}}} ,
+    reftextafter = {\zvhyperlink{page~suivante}} ,
+    reftextbefore = {\zvhyperlink{page~précédente}} ,
+    reftextcurrent = {de~la~\zvhyperlink{présente~page}} ,
     reftextfaraway = {\zcpageref[g=f]{#1}} ,
     reftextpagerange = {\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -681,11 +742,15 @@
   }
 \zvLanguageSetup { portuguese }
   {
-    reftextfaceafter = {na~\reftextvario{página~oposta}{próxima~página}} ,
-    reftextfacebefore = {na~página~\reftextvario{oposta}{anterior}} ,
-    reftextafter = {na~\reftextvario{página~seguinte}{próxima~página}} ,
-    reftextbefore = {na~página~\reftextvario{anterior}{precedente}} ,
-    reftextcurrent = {nesta~página} ,
+    reftextfaceafter =
+      {na~\zvhyperlink{\reftextvario{página~oposta}{próxima~página}}} ,
+    reftextfacebefore =
+      {na~\zvhyperlink{página~\reftextvario{oposta}{anterior}}} ,
+    reftextafter =
+      {na~\zvhyperlink{\reftextvario{página~seguinte}{próxima~página}}} ,
+    reftextbefore =
+      {na~\zvhyperlink{página~\reftextvario{anterior}{precedente}}} ,
+    reftextcurrent = {\zvhyperlink{nesta~página}} ,
     reftextfaraway = {na~\zcpageref[g=f]{#1}} ,
     reftextpagerange = {nas~\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -692,11 +757,11 @@
   }
 \zvLanguageSetup { spanish }
   {
-    reftextfaceafter = {en~la~página~siguiente} ,
-    reftextfacebefore = {en~la~página~anterior} ,
-    reftextafter = {en~la~página~siguiente} ,
-    reftextbefore = {en~la~página~anterior} ,
-    reftextcurrent = {en~esta~página} ,
+    reftextfaceafter = {en~la~\zvhyperlink{página~siguiente}} ,
+    reftextfacebefore = {en~la~\zvhyperlink{página~anterior}} ,
+    reftextafter = {en~la~\zvhyperlink{página~siguiente}} ,
+    reftextbefore = {en~la~\zvhyperlink{página~anterior}} ,
+    reftextcurrent = {en~\zvhyperlink{esta~página}} ,
     reftextfaraway = {en~la~\zcpageref[g=f]{#1}} ,
     reftextpagerange = {en~las~\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
@@ -703,15 +768,33 @@
   }
 \zvLanguageSetup { dutch }
   {
-    reftextfaceafter = {op~de~\reftextvario{rechter~pagina}{pagina~hiernaast}} ,
-    reftextfacebefore = {op~de~\reftextvario{linker~pagina}{pagina~hiernaast}} ,
-    reftextafter = {op~de~\reftextvario{volgende~pagina}{pagina~hierna}} ,
-    reftextbefore = {op~de~\reftextvario{vorige~pagina}{pagina~hiervoor}} ,
-    reftextcurrent = {op~deze~pagina} ,
+    reftextfaceafter =
+      {op~de~\zvhyperlink{\reftextvario{rechter~pagina}{pagina~hiernaast}}} ,
+    reftextfacebefore =
+      {op~de~\zvhyperlink{\reftextvario{linker~pagina}{pagina~hiernaast}}} ,
+    reftextafter =
+      {op~de~\zvhyperlink{\reftextvario{volgende~pagina}{pagina~hierna}}} ,
+    reftextbefore =
+      {op~de~\zvhyperlink{\reftextvario{vorige~pagina}{pagina~hiervoor}}} ,
+    reftextcurrent = {op~\zvhyperlink{deze~pagina}} ,
     reftextfaraway = {op~\zcpageref[g=f]{#1}} ,
     reftextpagerange = {op~\zcpageref[range,g=f]{#1,#2}} ,
     reftextlabelrange = {\zcref[range]{#1,#2}} ,
   }
+\zvLanguageSetup { italian }
+  {
+    reftextfaceafter =
+      {\reftextvario{}{nella~}\zvhyperlink{\reftextvario{a~fronte}{pagina~successiva}}} ,
+    reftextfacebefore =
+      {\reftextvario{}{nella~}\zvhyperlink{\reftextvario{a~fronte}{pagina~precedente}}} ,
+    reftextafter =
+      {nella~\zvhyperlink{pagina~\reftextvario{seguente}{successiva}}} ,
+    reftextbefore = {nella~\zvhyperlink{pagina~precedente}} ,
+    reftextcurrent = {in~\zvhyperlink{questa~pagina}} ,
+    reftextfaraway = {a~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {nelle~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
 %% 
 %%
 %% End of file `zref-vario.sty'.



More information about the tex-live-commits mailing list.