texlive[61827] Master: zref-vario (31jan22)

commits+karl at tug.org commits+karl at tug.org
Mon Jan 31 22:17:02 CET 2022


Revision: 61827
          http://tug.org/svn/texlive?view=revision&revision=61827
Author:   karl
Date:     2022-01-31 22:17:01 +0100 (Mon, 31 Jan 2022)
Log Message:
-----------
zref-vario (31jan22)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/zref-vario/
    trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/zref-vario/DEPENDS.txt
    trunk/Master/texmf-dist/doc/latex/zref-vario/MANIFEST.md
    trunk/Master/texmf-dist/doc/latex/zref-vario/README.md
    trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf
    trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.tex
    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/
    trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx
    trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.ins
    trunk/Master/texmf-dist/tex/latex/zref-vario/
    trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty
    trunk/Master/tlpkg/tlpsrc/zref-vario.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,8 @@
+# Changelog
+
+## [Unreleased]
+
+## [v0.1.0-alpha](https://github.com/gusbrs/zref-vario/releases/tag/v0.1.0-alpha) (2022-01-31)
+
+### Added
+- Initial release.


Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/CHANGELOG.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/DEPENDS.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/DEPENDS.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/DEPENDS.txt	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,2 @@
+hard zref-clever
+hard varioref


Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/DEPENDS.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/MANIFEST.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/MANIFEST.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/MANIFEST.md	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,148 @@
+# Manifest for zref-vario
+
+This file is a listing of all files considered to be part of this package.
+It is automatically generated with `l3build manifest`.
+
+
+## Repository manifest
+
+The following groups list the files included in the development repository of the package.
+Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed
+with ‘‡’ are included in both.
+
+### Source files
+
+These are source files for a number of purposes, including the `unpack` process which
+generates the installation files of the package. Additional files included here will also
+be installed for processing such as testing.
+
+* zref-vario.dtx ‡
+* zref-vario.ins ‡
+
+### Typeset documentation source files
+
+These files are typeset using LaTeX to produce the PDF documentation for the package.
+
+* zref-vario-code.tex ‡
+* zref-vario.tex ‡
+
+### Text files
+
+Plain text files included as documentation or metadata.
+
+* CHANGELOG.md ‡
+* MANIFEST.md ‡
+* README.md ‡
+* readme-ctan.md 
+* DEPENDS.txt ‡
+
+### Derived files
+
+The files created by ‘unpacking’ the package sources. This typically includes
+`.sty` and `.cls` files created from DocStrip `.dtx` files.
+
+* zref-vario.sty †
+
+### Typeset documents
+
+The output files (PDF, essentially) from typesetting the various source, demo,
+etc., package files.
+
+* zref-vario-code.pdf ‡
+* zref-vario.pdf ‡
+
+### Test files
+
+These files form the test suite for the package. `.lvt` or `.lte` files are the individual
+unit tests, and `.tlg` are the stored output for ensuring changes to the package produce
+the same output. These output files are sometimes shared and sometime specific for
+different engines (pdfTeX, XeTeX, LuaTeX, etc.).
+
+* zv-basic01.lvt 
+* zv-basic02.lvt 
+* zv-basic03.lvt 
+* zv-basic04.lvt 
+* zv-hyperref01.lvt 
+* zv-languages01.lvt 
+* zv-zcref-options01.lvt 
+* zv-basic01.luatex.tlg 
+* zv-basic01.luatexdev.tlg 
+* zv-basic01.tlg 
+* zv-basic01.xetex.tlg 
+* zv-basic01.xetexdev.tlg 
+* zv-basic02.luatex.tlg 
+* zv-basic02.luatexdev.tlg 
+* zv-basic02.tlg 
+* zv-basic02.xetex.tlg 
+* zv-basic02.xetexdev.tlg 
+* zv-basic03.luatex.tlg 
+* zv-basic03.luatexdev.tlg 
+* zv-basic03.tlg 
+* zv-basic03.xetex.tlg 
+* zv-basic03.xetexdev.tlg 
+* zv-basic04.luatex.tlg 
+* zv-basic04.luatexdev.tlg 
+* zv-basic04.tlg 
+* zv-basic04.xetex.tlg 
+* zv-basic04.xetexdev.tlg 
+* zv-hyperref01.luatex.tlg 
+* zv-hyperref01.luatexdev.tlg 
+* zv-hyperref01.tlg 
+* zv-hyperref01.xetex.tlg 
+* zv-hyperref01.xetexdev.tlg 
+* zv-languages01.tlg 
+* zv-zcref-options01.luatex.tlg 
+* zv-zcref-options01.luatexdev.tlg 
+* zv-zcref-options01.tlg 
+* zv-zcref-options01.xetex.tlg 
+* zv-zcref-options01.xetexdev.tlg 
+
+
+## TDS manifest
+
+The following groups list the files included in the TeX Directory Structure used to install
+the package into a TeX distribution.
+
+### Source files (TDS)
+
+All files included in the `zref-vario/source` directory.
+
+* zref-vario.dtx 
+* zref-vario.ins 
+
+### TeX files (TDS)
+
+All files included in the `zref-vario/tex` directory.
+
+* zref-vario.sty 
+
+### Doc files (TDS)
+
+All files included in the `zref-vario/doc` directory.
+
+* CHANGELOG.md 
+* DEPENDS.txt 
+* MANIFEST.md 
+* README.md 
+* zref-vario-code.pdf 
+* zref-vario-code.tex 
+* zref-vario.pdf 
+* zref-vario.tex 
+
+
+## CTAN manifest
+
+The following group lists the files included in the CTAN package.
+
+### CTAN files
+
+* CHANGELOG.md 
+* DEPENDS.txt 
+* MANIFEST.md 
+* README.md 
+* zref-vario-code.pdf 
+* zref-vario-code.tex 
+* zref-vario.dtx 
+* zref-vario.ins 
+* zref-vario.pdf 
+* zref-vario.tex 


Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/MANIFEST.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/README.md	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,19 @@
+# zref-vario
+
+**Extended LaTeX page cross-references with varioref and zref-clever**
+
+Author: Gustavo Barros
+Maintainer: Gustavo Barros
+
+`zref-vario` offers a compatibility layer for `varioref` to be used alongside
+`zref-clever`.  It provides "`\z...`" counterparts to `varioref`'s main
+reference commands, each of which essentially does some (scoped) setup for
+`varioref`, then calls the original one.
+
+License: LPPL Version 1.3c
+
+Repository: https://github.com/gusbrs/zref-vario
+
+Bug tracker: https://github.com/gusbrs/zref-vario/issues
+
+CTAN: https://ctan.org/pkg/zref-vario


Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf	2022-01-31 21:15:02 UTC (rev 61826)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf	2022-01-31 21:17:01 UTC (rev 61827)

Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.tex	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,52 @@
+% \iffalse meta-comment
+%
+% File: zref-vario-code.tex
+%
+% This file is part of the LaTeX package "zref-vario".
+%
+% Copyright (C) 2022  Gustavo Barros
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file:
+%
+%    https://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 is "maintained" (as per LPPL maintenance status) by
+% Gustavo Barros.
+%
+% This work consists of the files zref-vario.dtx,
+%                                 zref-vario.ins,
+%                                 zref-vario.tex,
+%                                 zref-vario-code.tex,
+%         and the files listed in MANIFEST.md.
+%
+% The released version of this package is available from CTAN.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the package can be found at
+%
+%    https://github.com/gusbrs/zref-vario
+%
+% for those people who are interested.
+%
+% -----------------------------------------------------------------------
+%
+% \fi
+
+\documentclass{l3doc}
+
+% Have \GetFileInfo pick up date and version data.
+\usepackage{zref-vario}
+
+\begin{document}
+
+\DocInput{zref-vario.dtx}
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario-code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf	2022-01-31 21:15:02 UTC (rev 61826)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf	2022-01-31 21:17:01 UTC (rev 61827)

Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,261 @@
+% \iffalse meta-comment
+%
+% File: zref-vario.tex
+%
+% This file is part of the LaTeX package "zref-vario".
+%
+% Copyright (C) 2022  Gustavo Barros
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file:
+%
+%    https://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 is "maintained" (as per LPPL maintenance status) by
+% Gustavo Barros.
+%
+% This work consists of the files zref-vario.dtx,
+%                                 zref-vario.ins,
+%                                 zref-vario.tex,
+%                                 zref-vario-code.tex,
+%         and the files listed in MANIFEST.md.
+%
+% The released version of this package is available from CTAN.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the package can be found at
+%
+%    https://github.com/gusbrs/zref-vario
+%
+% for those people who are interested.
+%
+% -----------------------------------------------------------------------
+%
+% \fi
+
+\documentclass{l3doc}
+
+% The package itself *must* be loaded so that \GetFileInfo can pick up date
+% and version data.
+\usepackage{zref-vario}
+
+\usepackage[T1]{fontenc}
+
+\usepackage[sc]{mathpazo}
+\linespread{1.05}
+\usepackage[scale=.88]{tgheros} % sans
+\usepackage[varqu,scaled=1.03]{inconsolata} % tt
+
+\usepackage{listings}
+
+\usepackage{microtype}
+
+\hypersetup{hidelinks}
+
+\NewDocumentCommand\opt{m}{\texttt{#1}}
+
+\lstdefinestyle{code}{
+  language=[LaTeX]TeX,
+  % moretexcs={
+  % }
+}
+\lstdefinestyle{zrefvario}{
+  style=code,
+  % moretexcs={
+  % }
+}
+\lstset{
+  style=zrefvario,
+  basicstyle=\ttfamily\small,
+  columns=fullflexible,
+  keepspaces,
+  xleftmargin=\leftmargin,
+  xrightmargin=.5\leftmargin,
+}
+\lstnewenvironment{zvexample}[1][]{%
+  \renewcommand{\lstlistingname}{Example}%
+  \lstset{#1}%
+}{}
+
+\begin{document}
+
+\GetFileInfo{zref-vario.sty}
+
+\title{%
+  The \pkg{zref-vario} package%
+  \thanks{This file describes \fileversion, released \filedate.}%
+  \texorpdfstring{\\{}\medskip{}}{ - }%
+  User manual%
+  \texorpdfstring{\medskip{}}{}%
+}
+
+\author{%
+  Gustavo Barros%
+  \thanks{\url{https://github.com/gusbrs/zref-vario}}%
+}
+
+\date{\filedate}
+
+\maketitle
+
+\begin{center}
+  {\bfseries \abstractname\vspace{-.5em}\vspace{0pt}}
+\end{center}
+
+\begin{quotation}
+  \pkg{zref-vario} offers a compatibility layer for \pkg{varioref} to be used
+  alongside \pkg{zref-clever}.  It provides ``\texttt{\cs{z}}\dots{}''
+  counterparts to \pkg{varioref}'s main reference commands, each of which
+  essentially does some (scoped) setup for \pkg{varioref}, then calls the
+  original one.
+\end{quotation}
+
+\bigskip{}
+
+\begin{center}
+  \textbf{EXPERIMENTAL}
+\end{center}
+
+\tableofcontents
+
+\clearpage{}
+
+\section{Loading the package}
+
+As usual:
+
+\begin{zvexample}
+\usepackage{zref-vario}
+\end{zvexample}
+
+
+\section{Dependencies}
+
+\pkg{zref-vario} requires \pkg{varioref} and \pkg{zref-clever}.
+
+
+\section{User interface}
+
+\begin{function}{\zvref}
+  \begin{syntax}
+    \cs{zvref}\meta{*}\oarg{options}\marg{label}
+  \end{syntax}
+\end{function}
+
+\begin{function}{\zvpageref}
+  \begin{syntax}
+    \cs{zvpageref}\meta{*}\oarg{options}\marg{label}
+  \end{syntax}
+\end{function}
+
+\begin{function}{\zvrefrange}
+  \begin{syntax}
+    \cs{zvrefrange}\meta{*}\oarg{options}\marg{label}\marg{label}
+  \end{syntax}
+\end{function}
+
+\begin{function}{\zvpagerefrange}
+  \begin{syntax}
+    \cs{zvpagerefrange}\meta{*}\oarg{options}\marg{label}\marg{label}
+  \end{syntax}
+\end{function}
+
+\begin{function}{\zfullref}
+  \begin{syntax}
+    \cs{zfullref}\meta{*}\oarg{options}\marg{label}
+  \end{syntax}
+\end{function}
+
+These user commands work pretty much as their \pkg{varioref}
+counterparts.\footnote{If you are not acquainted with them, see
+  \pkg{varioref}'s documentation.}  Indeed, they are just wrappers around
+them.  As such, differently from \pkg{zref-clever}'s commands, these can
+receive single labels as arguments, not lists of them.  In all of them the
+starred version inhibits hyperlinking, and they (locally) set \pkg{varioref}'s
+\opt{nospace} option, so that the this syntax can be used unambiguously.
+
+All of them have a single optional argument, which can receive any of
+\cs{zcref}'s options, and those are set for calls to \cs{zcref} or
+\cs{zpageref} which are part of the building blocks of the reference formats
+and strings set for \pkg{varioref}.  However, there is indeed some potential
+friction and caveats stemming from the use of these options, which were
+designed to work for single calls of \cs{zcref}, to apply to \emph{pairs} of
+them.  Hence, whether each and every of these options is meaningful, useful,
+or potentially harmful in this context depends on the case, and it is up to
+the user to make proper use of them.  Of course, one can always split the pair
+using \cs{zcref} and then \cs{zvpageref}, \cs{zvpagerefrange}, or
+\cs{zcpageref}, and have more control over each part.  Anyway, the package
+does what it says: passes the options along to the underlying call(s) to
+\cs{zcref}.\footnote{Note that the options given to each call of these user
+  macros are set \emph{before} the call to the original \pkg{varioref}
+  counterpart.  This means that options given to \cs{zcref} or \cs{zpageref}
+  in the strings and formats in \cs{zvLanguageSetup} will have precedence over
+  the former.  Which is useful, so that we can distinguish to some degree the
+  first from the second call of \cs{zcref}/\cs{zpageref} done in the formats,
+  but does not eliminate the limitations which arise from the underlying
+  problem.}
+
+Besides these options, two other are provided corresponding to
+\pkg{varioref}'s commands' optional arguments: \opt{vcurrent} (the first
+optional argument) and \opt{vother} (the second optional argument).  Of
+course, these are only available when the underlying \pkg{varioref} command
+supports them.
+
+\section{Customization}
+
+
+\begin{function}{\zvLanguageSetup}
+  \begin{syntax}
+    \cs{zvLanguageSetup}\marg{language}\marg{options}
+  \end{syntax}
+\end{function}
+
+User interface for customization of ``strings'' and ``formats'' for
+\meta{language}.  \meta{language} must be known to \pkg{zref-clever}.  The
+\meta{options} are familiar to users of \pkg{varioref}:
+\opt{reftextfaceafter}, \opt{reftextfacebefore}, \opt{reftextafter},
+\opt{reftextbefore}, \opt{reftextcurrent}, \opt{reftextfaraway},
+\opt{reftextpagerange}, \opt{reftextlabelrange}, \opt{vrefformat},
+\opt{vrefrangeformat}, and \opt{fullrefformat}.\footnote{For details, see
+  \pkg{varioref}'s documentation.}  Their meaning is the same as the ones they
+have in \pkg{varioref} and, indeed, they work by setting those \pkg{varioref}
+macros to the values given to the corresponding options in
+\cs{zvLanguageSetup}.  If you are setting up a language which has no built-in
+support, you should set at least the whole set of ``\texttt{reftext}\dots{}''
+options.  Language independent default values are provided for the
+``\dots{}\texttt{format}'' options (equivalent to the ones from
+\pkg{varioref}, which are adequate to most use cases), so you may omit them.
+But, if you need to adjust them, the default values can be overridden by
+setting the corresponding options in \cs{zvLanguageSetup}.
+
+
+% \section{Acknowledgments}
+%
+% A number of people have contributed to \pkg{zref-vario}.  Suggestions,
+% ideas, solutions to problems, bug reports or even encouragement were
+% generously provided by (in chronological order):
+%
+% The package's language settings have been provided or improved thanks to:
+%
+% If I have inadvertently left anyone off the list I apologize, and please let
+% me know, so that I can correct the oversight.
+%
+% Thank you all very much!
+
+
+\section{Change history}
+
+A change log with relevant changes for each version, eventual upgrade
+instructions, and upcoming changes, is maintained in the package's repository,
+at \url{https://github.com/gusbrs/zref-vario/blob/main/CHANGELOG.md}.  An
+archive of historical versions of the package is also kept at
+\url{https://github.com/gusbrs/zref-vario/releases}.
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/zref-vario/zref-vario.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,908 @@
+% \iffalse meta-comment
+%
+% File: zref-vario.dtx
+%
+% This file is part of the LaTeX package "zref-vario".
+%
+% Copyright (C) 2022  Gustavo Barros
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file:
+%
+%    https://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 is "maintained" (as per LPPL maintenance status) by
+% Gustavo Barros.
+%
+% This work consists of the files zref-vario.dtx,
+%                                 zref-vario.ins,
+%                                 zref-vario.tex,
+%                                 zref-vario-code.tex,
+%         and the files listed in MANIFEST.md.
+%
+% The released version of this package is available from CTAN.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the package can be found at
+%
+%    https://github.com/gusbrs/zref-vario
+%
+% for those people who are interested.
+%
+% -----------------------------------------------------------------------
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass{l3doc}
+
+% Have \GetFileInfo pick up date and version data and used in the
+% documentation.
+\usepackage{zref-vario}
+
+\begin{document}
+
+\DocInput{zref-vario.dtx}
+
+\end{document}
+%</driver>
+% \fi
+%
+% \DoNotIndex{\\,\{,\}}
+%
+% \NewDocumentCommand\githubissue{m}{^^A
+%   issue~\href{https://github.com/gusbrs/zref-vario/issues/#1}{\##1}}
+%
+% \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\opt{m}{\texttt{#1}}
+%
+% \pdfstringdefDisableCommands{^^A
+%   \def\opt#1{#1}
+% }
+%
+% ^^A Have the Index at 'section' level rather than 'part'.  Otherwise it is
+% ^^A just the same definition from 'l3doc.cls'.
+% \IndexPrologue{^^A
+%   \section*{Index}
+%   \markboth{Index}{Index}
+%   \addcontentsline{toc}{section}{Index}
+%   The italic numbers denote the pages where the corresponding entry is
+%   described, numbers underlined point to the definition, all others indicate
+%   the places where it is used.^^A
+% }
+%
+%
+% \GetFileInfo{zref-vario.sty}
+%
+% \title{^^A
+%   The \pkg{zref-vario} package^^A
+%   \thanks{This file describes \fileversion, released \filedate.}^^A
+%   \texorpdfstring{\\{}\medskip{}}{ - }^^A
+%   Code documentation^^A
+%   \texorpdfstring{\medskip{}}{}^^A
+% }
+%
+% \author{^^A
+%   Gustavo Barros^^A
+%   \thanks{\url{https://github.com/gusbrs/zref-vario}}^^A
+% }
+%
+% \date{\filedate}
+%
+% \maketitle
+%
+% \begin{center}
+%   \textbf{EXPERIMENTAL}
+% \end{center}
+%
+%
+% \tableofcontents
+%
+% \clearpage{}
+%
+% \section{Initial setup}
+%
+% Start the \pkg{DocStrip} guards.
+%    \begin{macrocode}
+%<*package>
+%    \end{macrocode}
+%
+% Identify the internal prefix (\LaTeX3 \pkg{DocStrip} convention).
+%    \begin{macrocode}
+%<@@=zrefvario>
+%    \end{macrocode}
+%
+%
+% Identify the package.
+%    \begin{macrocode}
+\ProvidesExplPackage {zref-vario} {2022-01-31} {0.1.0-alpha}
+  {Extended LaTeX page cross-references with varioref and zref-clever}
+%    \end{macrocode}
+%
+%
+% Required packages.
+%
+%    \begin{macrocode}
+\RequirePackage { varioref }
+\RequirePackage { zref-clever } [ 2022-01-28 ] % v0.2.0-alpha
+%    \end{macrocode}
+%
+%
+% \section{Customization}
+%
+% Provide some functions to define options names in a standard form.
+%
+% \begin{macro}[EXP]{\@@_ref_opt_default_cs:nn}
+%   \begin{syntax}
+%     \cs{@@_ref_opt_default_cs:nn} \Arg{option} \Arg{signature}
+%   \end{syntax}
+%    \begin{macrocode}
+\cs_new:Npn \@@_ref_opt_default_cs:nn #1#2
+  { @@_ref_opt_default_ #1 : #2 }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[EXP]{\@@_base_lang:n}
+%   \begin{syntax}
+%     \cs{@@_base_lang:n} \Arg{language}
+%   \end{syntax}
+%    \begin{macrocode}
+\cs_new:Npn \@@_base_lang:n #1
+  {
+    \zrefclever_language_if_declared:nTF {#1}
+      { \tl_use:c { \zrefclever_language_varname:n {#1} } }
+      { zv_unknown_language }
+  }
+\cs_generate_variant:Nn \@@_base_lang:n { e }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_ref_language_tl}
+% An internal version of \cs{l_zrefclever_ref_language_tl}, since we need to
+% retreive the current value of the variable in multiple places.
+%    \begin{macrocode}
+\tl_new:N \l_@@_ref_language_tl
+\tl_set:Nn \l_@@_ref_language_tl { \l_zrefclever_ref_language_tl }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_ref_opt_name_lang_tl:nn}
+%   \begin{syntax}
+%     \cs{@@_ref_opt_name_lang_tl:nn} \Arg{lang} \Arg{option}
+%   \end{syntax}
+%    \begin{macrocode}
+\cs_new:Npn \@@_ref_opt_name_lang_tl:nn #1#2
+  { g_@@_ref_opt_lang_ \@@_base_lang:n {#1} _ #2 _tl }
+\cs_generate_variant:Nn \@@_ref_opt_name_lang_tl:nn { en }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_ref_opt_name_lang_cs:nnn}
+%   \begin{syntax}
+%     \cs{@@_ref_opt_name_lang_cs:nnn} \Arg{lang} \Arg{option} \Arg{signature}
+%   \end{syntax}
+%    \begin{macrocode}
+\cs_new:Npn \@@_ref_opt_name_lang_cs:nnn #1#2#3
+  { @@_ref_opt_lang_ \@@_base_lang:n {#1} _ #2 : #3 }
+\cs_generate_variant:Nn \@@_ref_opt_name_lang_cs:nnn { enn }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% Retrieving options values.
+%
+% \begin{macro}
+%   {
+%     \@@_ref_opt_tl_get:nnN ,
+%     \@@_ref_opt_cs_get:nnnN ,
+%   }
+%   \begin{syntax}
+%     \cs{@@_ref_opt_tl_get:nnN} \Arg{lang} \Arg{option} \Arg{tl var to set}
+%     \cs{@@_ref_opt_cs_get:nnnN} \Arg{lang} \Arg{option}
+%     ~~\Arg{cs signature} \Arg{cs to set}
+%   \end{syntax}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_ref_opt_tl_get:nnN #1#2#3
+  {
+    \tl_if_exist:cTF
+      { \@@_ref_opt_name_lang_tl:nn {#1} {#2} }
+      {
+        \tl_set_eq:Nc #3
+          { \@@_ref_opt_name_lang_tl:nn {#1} {#2} }
+      }
+      {
+        \tl_set_eq:Nc #3
+          { \@@_ref_opt_name_lang_tl:nn { zv_unknown_language } {#2} }
+      }
+  }
+\cs_generate_variant:Nn \@@_ref_opt_tl_get:nnN { xnN }
+\cs_new_protected:Npn \@@_ref_opt_cs_get:nnnN #1#2#3#4
+  {
+    \cs_if_exist:cTF
+      { \@@_ref_opt_name_lang_cs:nnn {#1} {#2} {#3} }
+      {
+        \cs_set_eq:Nc #4
+          { \@@_ref_opt_name_lang_cs:nnn {#1} {#2} {#3} }
+      }
+      {
+        \cs_if_exist:cTF
+          { \@@_ref_opt_default_cs:nn {#2} {#3} }
+          {
+            \cs_set_eq:Nc #4
+              { \@@_ref_opt_default_cs:nn {#2} {#3} }
+          }
+          {
+            \cs_set_eq:Nc #4
+              {
+                \@@_ref_opt_name_lang_cs:nnn
+                  { zv_unknown_language } {#2} {#3}
+              }
+          }
+      }
+  }
+\cs_generate_variant:Nn \@@_ref_opt_cs_get:nnnN { xnnN }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% Handle the options set of the user commands, and add support for
+% \pkg{varioref} optional arguments.  All commands can receive the same set of
+% options \cs{zcref} can, and these are processed the same way and
+% ``consumed'' by any \cs{zcref} or \cs{zcpageref} calls.  Besides those,
+% \opt{vother} is made available for \cs{zvpageref}, corresponding to its
+% second optional argument, and \opt{vcurrent} which is available to all
+% commands except \cs{fullref}, corresponding to their first optional
+% arguments.  The distinction between \cs{l_@@_reftextcurrent_tl} and
+% \cs{l_@@_vref_reftextcurrent_tl} is in their default/initial values.  The
+% default values for the optional arguments of \cs{vpageref}, \cs{vrefrange},
+% and \cs{vpagerefrange} are set to \cs{reftextcurrent}, while the default
+% value of the optional argument of \cs{vref} is empty.
+%
+%    \begin{macrocode}
+\tl_new:N \l_@@_reftextcurrent_tl
+\tl_set:Nn \l_@@_reftextcurrent_tl { \reftextcurrent }
+\tl_new:N \l_@@_vref_reftextcurrent_tl
+\tl_new:N \l_@@_reftextother_tl
+\keys_define:nn { zref-vario/current }
+  {
+    vcurrent .code:n =
+      {
+        \tl_set:Nn \l_@@_reftextcurrent_tl {#1}
+        \tl_set:Nn \l_@@_vref_reftextcurrent_tl {#1}
+      } ,
+    vcurrent .value_required:n = true ,
+  }
+\keys_define:nn { zref-vario/other }
+  {
+    vother .tl_set:N = \l_@@_reftextother_tl ,
+    vother .value_required:n = true ,
+  }
+\keys_define:nn { }
+  {
+    zref-vario/ref .inherit:n =
+      { zref-clever/reference } ,
+    zref-vario/ref-oneoptarg .inherit:n =
+      { zref-clever/reference , zref-vario/current } ,
+    zref-vario/ref-twooptargs .inherit:n =
+      { zref-clever/reference , zref-vario/current , zref-vario/other } ,
+  }
+%    \end{macrocode}
+%
+%
+% \begin{macro}[int]{\zvLanguageSetup}
+% User interface for setting ``strings'' (\texttt{reftext\dots{}} options) and
+% ``formats'' (\texttt{\dots{}format} options) for each language.
+%   \begin{syntax}
+%     \cs{zvLanguageSetup}\marg{language}\marg{options}
+%   \end{syntax}
+%    \begin{macrocode}
+\tl_new:N \l_@@_setup_language_tl
+\seq_new:N \g_@@_setup_languages_seq
+\NewDocumentCommand \zvLanguageSetup { m m }
+  {
+    \group_begin:
+    \zrefclever_language_if_declared:nTF {#1}
+      {
+        \tl_set:Nn \l_@@_setup_language_tl {#1}
+        \keys_set:nn { zref-vario/langsetup } {#2}
+        \seq_gput_right:Nx \g_@@_setup_languages_seq
+          { \@@_base_lang:n {#1} }
+      }
+      { \msg_warning:nnn { zref-vario } { unknown-language-setup } {#1} }
+    \group_end:
+  }
+\msg_new:nnn { zref-vario } { unknown-language-setup }
+  {
+    Language~'#1'~is~unknown~\msg_line_context:.~Can't~set~it~up.~
+    The~language~must~be~declared~for~'zref-clever',~see~its~documentation.
+  }
+\@onlypreamble \zvLanguageSetup
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%    \begin{macrocode}
+\keys_define:nn { zref-vario/langsetup }
+  {
+    reftextfaceafter .code:n =
+      {
+        \tl_gset:cn
+          {
+            \@@_ref_opt_name_lang_tl:en
+              { \l_@@_setup_language_tl }
+              { reftextfaceafter }
+          } {#1}
+      } ,
+    reftextfacebefore .code:n =
+      {
+        \tl_gset:cn
+          {
+            \@@_ref_opt_name_lang_tl:en
+              { \l_@@_setup_language_tl }
+              { reftextfacebefore }
+          } {#1}
+      } ,
+    reftextafter .code:n =
+      {
+        \tl_gset:cn
+          {
+            \@@_ref_opt_name_lang_tl:en
+              { \l_@@_setup_language_tl }
+              { reftextafter }
+          } {#1}
+      } ,
+    reftextbefore .code:n =
+      {
+        \tl_gset:cn
+          {
+            \@@_ref_opt_name_lang_tl:en
+              { \l_@@_setup_language_tl }
+              { reftextbefore }
+          } {#1}
+      } ,
+    reftextcurrent .code:n =
+      {
+        \tl_gset:cn
+          {
+            \@@_ref_opt_name_lang_tl:en
+              { \l_@@_setup_language_tl }
+              { reftextcurrent }
+          } {#1}
+      } ,
+    reftextfaraway .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \@@_ref_opt_name_lang_cs:enn
+              { \l_@@_setup_language_tl }
+              { reftextfaraway } { n }
+          }
+          ##1
+          {#1}
+      } ,
+    reftextpagerange .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \@@_ref_opt_name_lang_cs:enn
+              { \l_@@_setup_language_tl }
+              { reftextpagerange } { nn }
+          }
+          ##1##2
+          {#1}
+      } ,
+    reftextlabelrange .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \@@_ref_opt_name_lang_cs:enn
+              { \l_@@_setup_language_tl }
+              { reftextlabelrange } { nn }
+          }
+          ##1##2
+          {#1}
+      } ,
+    vrefformat .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \@@_ref_opt_name_lang_cs:enn
+              { \l_@@_setup_language_tl }
+              { vrefformat } { nn }
+          }
+          ##1##2
+          {#1}
+      } ,
+    vrefrangeformat .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \@@_ref_opt_name_lang_cs:enn
+              { \l_@@_setup_language_tl }
+              { vrefrangeformat } { nnn }
+          }
+          ##1##2##3
+          {#1}
+      } ,
+    fullrefformat .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \@@_ref_opt_name_lang_cs:enn
+              { \l_@@_setup_language_tl }
+              { fullrefformat } { n }
+          }
+          ##1
+          {#1}
+      } ,
+  }
+%    \end{macrocode}
+%
+%
+% Default reference formats for all languages.  These will be used by
+% \cs{@@_ref_opt_cs_get:nnnN}, unless a language specific setting for the same
+% format has been set.  \cs{zreftextfaraway} is defined so it can be called
+% with different arguments in \cs{zvpageref} (where it is alone) and in
+% \cs{zfullref} (where it is the second of the pair).
+%
+%    \begin{macrocode}
+\cs_new_nopar:cpn
+  { \@@_ref_opt_default_cs:nn { vrefformat } { nn } } #1#2
+  {
+    \zcref {#2} ~
+    \zvpageref [ S=false, typeset=both, vcurrent={#1} ] {#2}
+  }
+\cs_new_nopar:cpn
+  { \@@_ref_opt_default_cs:nn { vrefrangeformat } { nnn } } #1#2#3
+  {
+    \reftextlabelrange {#2} {#3} ~
+    \zvpagerefrange [ S=false, typeset=both, vcurrent={#1} ] {#2} {#3}
+  }
+\cs_new_nopar:cpn
+  { \@@_ref_opt_default_cs:nn { fullrefformat } { n } } #1
+  {
+    \zcref {#1} ~
+    \zreftextfaraway [ S=false, typeset=both ] {#1}
+  }
+\NewDocumentCommand \zreftextfaraway { s O { } m }
+  { \zref at wrapper@babel \@@_zreftextfaraway:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \@@_zreftextfaraway:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \@@_varioref_setup:
+    \reftextfaraway {#1}
+    \group_end:
+  }
+%    \end{macrocode}
+%
+%
+% Warnings and values for missing strings / unknown languages.
+%
+%    \begin{macrocode}
+\group_begin:
+\tl_set:Nn \l_@@_setup_language_tl { zv_unknown_language }
+\keys_set:nn { zref-vario/langsetup }
+  {
+    reftextfaceafter =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextfaceafter } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextfacebefore =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextfacebefore } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextafter =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextafter } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextbefore =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextbefore } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextcurrent =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextcurrent } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextfaraway =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextfaraway } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextpagerange =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextpagerange } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+    reftextlabelrange =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextlabelrange } { \l_@@_ref_language_tl }
+        \zref at default
+      } ,
+  }
+\group_end:
+\msg_new:nnn { zref-vario } { missing-string }
+  { Missing~'#1'~string~for~language~'#2'~\msg_line_context:. }
+%    \end{macrocode}
+%
+%
+% A general initial warning in case the language is altogether not set up.
+%
+%    \begin{macrocode}
+\AddToHook { begindocument }
+  {
+    \seq_if_in:NxF \g_@@_setup_languages_seq
+      { \@@_base_lang:e { \l_@@_ref_language_tl } }
+      {
+        \msg_warning:nnx  { zref-vario } { language-not-setup }
+          { \l_@@_ref_language_tl }
+      }
+  }
+\msg_new:nnn { zref-vario } { language-not-setup }
+  {
+    Language~'#1'~is~not~set~up~for~'zref-vario'.~
+    See~documentation~for~'\iow_char:N\\zvLanguageSetup'.
+  }
+%    \end{macrocode}
+%
+%
+%
+% \section{User interface}
+%
+% \begin{macro}
+%   {
+%     \@@_vref_pagenum:Nn ,
+%     \@@_vrefpagenum:Nn ,
+%     \@@_vref_label:n ,
+%   }
+% These three small functions are responsible for ``connecting''
+% \pkg{varioref} with \pkg{zref}, instead of with the standard referencing
+% system.  They are meant to locally replace their \pkg{varioref}
+% counterparts: \cs{vref at pagenum}, \cs{vrefpagenum}, and \cs{vref at label}.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_vref_pagenum:Nn #1#2
+  {
+    \exp_args:NNNo \exp_args:NNo \tl_set:Nn #1
+      { \zref at extractdefault {#2} { page } { ?? } }
+  }
+\cs_new_protected:Npn \@@_vrefpagenum:Nn #1#2
+  {
+    \zref at refused {#2}
+    \@@_vref_pagenum:Nn #1 {#2}
+  }
+\cs_new_protected:Npn \@@_vref_label:n #1
+  { \zref at labelbyprops {#1} { page } }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_varioref_setup:}
+% Sets things up for \pkg{varioref} to work with \pkg{zref}/\pkg{zref-clever}.
+% It is pretty straightforward, but it is the core of the package.
+% \cs{l_@@_varioref_setup_bool} ensures this setup runs only once in case of
+% nested calls to the package's commands.
+%    \begin{macrocode}
+\bool_new:N \l_@@_varioref_setup_bool
+\cs_new_protected:Npn \@@_varioref_setup:
+  {
+    \bool_if:NF \l_@@_varioref_setup_bool
+      {
+        \bool_set_true:N \l_@@_varioref_setup_bool
+        \@vrefhandlespacefalse
+        \cs_set_eq:NN \vref at pagenum \@@_vref_pagenum:Nn
+        \cs_set_eq:NN \vrefpagenum \@@_vrefpagenum:Nn
+        \cs_set_eq:NN \vref at label \@@_vref_label:n
+        \@@_ref_opt_tl_get:xnN
+          { \l_@@_ref_language_tl }
+          { reftextfaceafter }
+          \reftextfaceafter
+        \@@_ref_opt_tl_get:xnN
+          { \l_@@_ref_language_tl }
+          { reftextfacebefore }
+          \reftextfacebefore
+        \@@_ref_opt_tl_get:xnN
+          { \l_@@_ref_language_tl }
+          { reftextafter }
+          \reftextafter
+        \@@_ref_opt_tl_get:xnN
+          { \l_@@_ref_language_tl }
+          { reftextbefore }
+          \reftextbefore
+        \@@_ref_opt_tl_get:xnN
+          { \l_@@_ref_language_tl }
+          { reftextcurrent }
+          \reftextcurrent
+        \@@_ref_opt_cs_get:xnnN
+          { \l_@@_ref_language_tl }
+          { reftextfaraway } { n }
+          \reftextfaraway
+        \@@_ref_opt_cs_get:xnnN
+          { \l_@@_ref_language_tl }
+          { reftextpagerange } { nn }
+          \reftextpagerange
+        \@@_ref_opt_cs_get:xnnN
+          { \l_@@_ref_language_tl }
+          { reftextlabelrange } { nn }
+          \reftextlabelrange
+        \@@_ref_opt_cs_get:xnnN
+          { \l_@@_ref_language_tl }
+          { vrefformat } { nn }
+          \vrefformat
+        \@@_ref_opt_cs_get:xnnN
+          { \l_@@_ref_language_tl }
+          { vrefrangeformat } { nnn }
+          \vrefrangeformat
+        \@@_ref_opt_cs_get:xnnN
+          { \l_@@_ref_language_tl }
+          { fullrefformat } { n }
+          \fullrefformat
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% User commands.
+%
+% \begin{macro}[int]{\zvref}
+%   \begin{syntax}
+%     \cs{zvref}\meta{*}\oarg{options}\marg{label}
+%   \end{syntax}
+%    \begin{macrocode}
+\NewDocumentCommand \zvref { s O { } m }
+  { \zref at wrapper@babel \@@_zvref:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \@@_zvref:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-oneoptarg } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \@@_varioref_setup:
+    \@@_vref:Vn \l_@@_vref_reftextcurrent_tl {#1}
+    \group_end:
+  }
+%    \end{macrocode}
+% ``Ideally'', we'd be using \cs{vref} here, but \pkg{hyperref} redefines
+% \cs{vref at star} and \cs{vr at f}, hard-coding what was supposed to be
+% configurable\dots{}, so we use \cs{vrefformat} instead, which is the
+% original definition of \cs{vref at star}, and \cs{vr at f} also boils down to
+% \cs{vref at star} when \cs{@vrefhandlespace} is false, which is our case.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_vref:nn #1#2
+  { \vrefformat {#1} {#2} }
+\cs_generate_variant:Nn \@@_vref:nn { Vn }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[int]{\zvpageref}
+%   \begin{syntax}
+%     \cs{zvpageref}\meta{*}\oarg{options}\marg{label}
+%   \end{syntax}
+%    \begin{macrocode}
+\NewDocumentCommand \zvpageref { s O { } m }
+  { \zref at wrapper@babel \@@_zvpageref:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \@@_zvpageref:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-twooptargs } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \@@_varioref_setup:
+    \@@_vpageref:VVn \l_@@_reftextcurrent_tl
+      \l_@@_reftextother_tl {#1}
+    \group_end:
+  }
+\cs_new_protected:Npn \@@_vpageref:nnn #1#2#3
+  { \vpageref [{#1}] [#2] {#3} }
+\cs_generate_variant:Nn \@@_vpageref:nnn { VVn }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[int]{\zvrefrange}
+%   \begin{syntax}
+%     \cs{zvrefrange}\meta{*}\oarg{options}\marg{label}\marg{label}
+%   \end{syntax}
+%    \begin{macrocode}
+\NewDocumentCommand \zvrefrange { s O { } m m }
+  {
+    \zref at wrapper@babel
+      { \zref at wrapper@babel \@@_zvrefrange:nnnn {#3} }
+      {#4} {#1} {#2}
+  }
+\cs_new_protected:Npn \@@_zvrefrange:nnnn #1#2#3#4
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
+    \bool_if:nT {#3}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \@@_varioref_setup:
+    \@@_vrefrange:Vnn \l_@@_reftextcurrent_tl {#1} {#2}
+    \group_end:
+  }
+\cs_new_protected:Npn \@@_vrefrange:nnn #1#2#3
+  { \vrefrange [{#1}] {#2} {#3} }
+\cs_generate_variant:Nn \@@_vrefrange:nnn { Vnn }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[int]{\zvpagerefrange}
+%   \begin{syntax}
+%     \cs{zvpagerefrange}\meta{*}\oarg{options}\marg{label}\marg{label}
+%   \end{syntax}
+%    \begin{macrocode}
+\NewDocumentCommand \zvpagerefrange { s O { } m m }
+  {
+    \zref at wrapper@babel
+      { \zref at wrapper@babel \@@_zvpagerefrange:nnnn {#3} }
+      {#4} {#1} {#2}
+  }
+\cs_new_protected:Npn \@@_zvpagerefrange:nnnn #1#2#3#4
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
+    \bool_if:nT {#3}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \@@_varioref_setup:
+    \@@_vpagerefrange:Vnn \l_@@_reftextcurrent_tl {#1} {#2}
+    \group_end:
+  }
+\cs_new_protected:Npn \@@_vpagerefrange:nnn #1#2#3
+  { \vpagerefrange [{#1}] {#2} {#3} }
+\cs_generate_variant:Nn \@@_vpagerefrange:nnn { Vnn }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[int]{\zfullref}
+%   \begin{syntax}
+%     \cs{zfullref}\meta{*}\oarg{options}\marg{label}
+%   \end{syntax}
+%    \begin{macrocode}
+\NewDocumentCommand \zfullref { s O { } m }
+  { \zref at wrapper@babel \@@_zfullref:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \@@_zfullref:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \@@_varioref_setup:
+    \fullref {#1}
+    \group_end:
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \section{Languages}
+%
+%
+%    \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} ,
+    reftextfaraway = {on~\zcpageref{#1}} ,
+    reftextpagerange = {on~\zcpageref[range]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \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} ,
+    reftextfaraway = {auf~\zcpageref[d=D,g=f]{#1}} ,
+    reftextpagerange = {auf~den~\zcpageref[range,d=D,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \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} ,
+    reftextfaraway = {\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \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} ,
+    reftextfaraway = {na~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {nas~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \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} ,
+    reftextfaraway = {en~la~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {en~las~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \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} ,
+    reftextfaraway = {op~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {op~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
+%
+% \PrintIndex
+%


Property changes on: trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/zref-vario/zref-vario.ins	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,94 @@
+% \iffalse meta-comment
+%
+% File: zref-vario.ins
+%
+% This file is part of the LaTeX package "zref-vario".
+%
+% Copyright (C) 2022  Gustavo Barros
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file:
+%
+%    https://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 is "maintained" (as per LPPL maintenance status) by
+% Gustavo Barros.
+%
+% This work consists of the files zref-vario.dtx,
+%                                 zref-vario.ins,
+%                                 zref-vario.tex,
+%                                 zref-vario-code.tex,
+%         and the files listed in MANIFEST.md.
+%
+% The released version of this package is available from CTAN.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the package can be found at
+%
+%    https://github.com/gusbrs/zref-vario
+%
+% for those people who are interested.
+%
+% -----------------------------------------------------------------------
+%
+% \fi
+
+\input l3docstrip.tex
+
+\keepsilent
+
+\askforoverwritefalse
+
+\preamble
+
+This file was generated from file(s) of the LaTeX package "zref-vario".
+
+Copyright (C) 2022  Gustavo Barros
+
+It may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this
+license or (at your option) any later version.  The latest version
+of this license is in the file:
+
+   https://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 is "maintained" (as per LPPL maintenance status) by
+  Gustavo Barros.
+
+This work consists of the files zref-vario.dtx,
+                                zref-vario.ins,
+                                zref-vario.tex,
+                                zref-vario-code.tex,
+        and the files listed in MANIFEST.md.
+
+The released version of this package is available from CTAN.
+
+-----------------------------------------------------------------------
+
+The development version of the package can be found at
+
+   https://github.com/gusbrs/zref-vario
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+\endpreamble
+
+\postamble
+\endpostamble
+
+\generate{\file{zref-vario.sty}{\from{zref-vario.dtx}{package}}}
+
+\endbatchfile

Added: trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,584 @@
+%%
+%% This is file `zref-vario.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-vario.dtx  (with options: `package')
+%% 
+%% This file was generated from file(s) of the LaTeX package "zref-vario".
+%% 
+%% Copyright (C) 2022  Gustavo Barros
+%% 
+%% It may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version.  The latest version
+%% of this license is in the file:
+%% 
+%%    https://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 is "maintained" (as per LPPL maintenance status) by
+%%   Gustavo Barros.
+%% 
+%% This work consists of the files zref-vario.dtx,
+%%                                 zref-vario.ins,
+%%                                 zref-vario.tex,
+%%                                 zref-vario-code.tex,
+%%         and the files listed in MANIFEST.md.
+%% 
+%% The released version of this package is available from CTAN.
+%% 
+%% -----------------------------------------------------------------------
+%% 
+%% The development version of the package can be found at
+%% 
+%%    https://github.com/gusbrs/zref-vario
+%% 
+%% for those people who are interested.
+%% 
+%% -----------------------------------------------------------------------
+%% 
+\ProvidesExplPackage {zref-vario} {2022-01-31} {0.1.0-alpha}
+  {Extended LaTeX page cross-references with varioref and zref-clever}
+\RequirePackage { varioref }
+\RequirePackage { zref-clever } [ 2022-01-28 ] % v0.2.0-alpha
+\cs_new:Npn \__zrefvario_ref_opt_default_cs:nn #1#2
+  { __zrefvario_ref_opt_default_ #1 : #2 }
+\cs_new:Npn \__zrefvario_base_lang:n #1
+  {
+    \zrefclever_language_if_declared:nTF {#1}
+      { \tl_use:c { \zrefclever_language_varname:n {#1} } }
+      { zv_unknown_language }
+  }
+\cs_generate_variant:Nn \__zrefvario_base_lang:n { e }
+\tl_new:N \l__zrefvario_ref_language_tl
+\tl_set:Nn \l__zrefvario_ref_language_tl { \l_zrefclever_ref_language_tl }
+\cs_new:Npn \__zrefvario_ref_opt_name_lang_tl:nn #1#2
+  { g__zrefvario_ref_opt_lang_ \__zrefvario_base_lang:n {#1} _ #2 _tl }
+\cs_generate_variant:Nn \__zrefvario_ref_opt_name_lang_tl:nn { en }
+\cs_new:Npn \__zrefvario_ref_opt_name_lang_cs:nnn #1#2#3
+  { __zrefvario_ref_opt_lang_ \__zrefvario_base_lang:n {#1} _ #2 : #3 }
+\cs_generate_variant:Nn \__zrefvario_ref_opt_name_lang_cs:nnn { enn }
+\cs_new_protected:Npn \__zrefvario_ref_opt_tl_get:nnN #1#2#3
+  {
+    \tl_if_exist:cTF
+      { \__zrefvario_ref_opt_name_lang_tl:nn {#1} {#2} }
+      {
+        \tl_set_eq:Nc #3
+          { \__zrefvario_ref_opt_name_lang_tl:nn {#1} {#2} }
+      }
+      {
+        \tl_set_eq:Nc #3
+          { \__zrefvario_ref_opt_name_lang_tl:nn { zv_unknown_language } {#2} }
+      }
+  }
+\cs_generate_variant:Nn \__zrefvario_ref_opt_tl_get:nnN { xnN }
+\cs_new_protected:Npn \__zrefvario_ref_opt_cs_get:nnnN #1#2#3#4
+  {
+    \cs_if_exist:cTF
+      { \__zrefvario_ref_opt_name_lang_cs:nnn {#1} {#2} {#3} }
+      {
+        \cs_set_eq:Nc #4
+          { \__zrefvario_ref_opt_name_lang_cs:nnn {#1} {#2} {#3} }
+      }
+      {
+        \cs_if_exist:cTF
+          { \__zrefvario_ref_opt_default_cs:nn {#2} {#3} }
+          {
+            \cs_set_eq:Nc #4
+              { \__zrefvario_ref_opt_default_cs:nn {#2} {#3} }
+          }
+          {
+            \cs_set_eq:Nc #4
+              {
+                \__zrefvario_ref_opt_name_lang_cs:nnn
+                  { zv_unknown_language } {#2} {#3}
+              }
+          }
+      }
+  }
+\cs_generate_variant:Nn \__zrefvario_ref_opt_cs_get:nnnN { xnnN }
+\tl_new:N \l__zrefvario_reftextcurrent_tl
+\tl_set:Nn \l__zrefvario_reftextcurrent_tl { \reftextcurrent }
+\tl_new:N \l__zrefvario_vref_reftextcurrent_tl
+\tl_new:N \l__zrefvario_reftextother_tl
+\keys_define:nn { zref-vario/current }
+  {
+    vcurrent .code:n =
+      {
+        \tl_set:Nn \l__zrefvario_reftextcurrent_tl {#1}
+        \tl_set:Nn \l__zrefvario_vref_reftextcurrent_tl {#1}
+      } ,
+    vcurrent .value_required:n = true ,
+  }
+\keys_define:nn { zref-vario/other }
+  {
+    vother .tl_set:N = \l__zrefvario_reftextother_tl ,
+    vother .value_required:n = true ,
+  }
+\keys_define:nn { }
+  {
+    zref-vario/ref .inherit:n =
+      { zref-clever/reference } ,
+    zref-vario/ref-oneoptarg .inherit:n =
+      { zref-clever/reference , zref-vario/current } ,
+    zref-vario/ref-twooptargs .inherit:n =
+      { zref-clever/reference , zref-vario/current , zref-vario/other } ,
+  }
+\tl_new:N \l__zrefvario_setup_language_tl
+\seq_new:N \g__zrefvario_setup_languages_seq
+\NewDocumentCommand \zvLanguageSetup { m m }
+  {
+    \group_begin:
+    \zrefclever_language_if_declared:nTF {#1}
+      {
+        \tl_set:Nn \l__zrefvario_setup_language_tl {#1}
+        \keys_set:nn { zref-vario/langsetup } {#2}
+        \seq_gput_right:Nx \g__zrefvario_setup_languages_seq
+          { \__zrefvario_base_lang:n {#1} }
+      }
+      { \msg_warning:nnn { zref-vario } { unknown-language-setup } {#1} }
+    \group_end:
+  }
+\msg_new:nnn { zref-vario } { unknown-language-setup }
+  {
+    Language~'#1'~is~unknown~\msg_line_context:.~Can't~set~it~up.~
+    The~language~must~be~declared~for~'zref-clever',~see~its~documentation.
+  }
+\@onlypreamble \zvLanguageSetup
+\keys_define:nn { zref-vario/langsetup }
+  {
+    reftextfaceafter .code:n =
+      {
+        \tl_gset:cn
+          {
+            \__zrefvario_ref_opt_name_lang_tl:en
+              { \l__zrefvario_setup_language_tl }
+              { reftextfaceafter }
+          } {#1}
+      } ,
+    reftextfacebefore .code:n =
+      {
+        \tl_gset:cn
+          {
+            \__zrefvario_ref_opt_name_lang_tl:en
+              { \l__zrefvario_setup_language_tl }
+              { reftextfacebefore }
+          } {#1}
+      } ,
+    reftextafter .code:n =
+      {
+        \tl_gset:cn
+          {
+            \__zrefvario_ref_opt_name_lang_tl:en
+              { \l__zrefvario_setup_language_tl }
+              { reftextafter }
+          } {#1}
+      } ,
+    reftextbefore .code:n =
+      {
+        \tl_gset:cn
+          {
+            \__zrefvario_ref_opt_name_lang_tl:en
+              { \l__zrefvario_setup_language_tl }
+              { reftextbefore }
+          } {#1}
+      } ,
+    reftextcurrent .code:n =
+      {
+        \tl_gset:cn
+          {
+            \__zrefvario_ref_opt_name_lang_tl:en
+              { \l__zrefvario_setup_language_tl }
+              { reftextcurrent }
+          } {#1}
+      } ,
+    reftextfaraway .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \__zrefvario_ref_opt_name_lang_cs:enn
+              { \l__zrefvario_setup_language_tl }
+              { reftextfaraway } { n }
+          }
+          ##1
+          {#1}
+      } ,
+    reftextpagerange .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \__zrefvario_ref_opt_name_lang_cs:enn
+              { \l__zrefvario_setup_language_tl }
+              { reftextpagerange } { nn }
+          }
+          ##1##2
+          {#1}
+      } ,
+    reftextlabelrange .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \__zrefvario_ref_opt_name_lang_cs:enn
+              { \l__zrefvario_setup_language_tl }
+              { reftextlabelrange } { nn }
+          }
+          ##1##2
+          {#1}
+      } ,
+    vrefformat .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \__zrefvario_ref_opt_name_lang_cs:enn
+              { \l__zrefvario_setup_language_tl }
+              { vrefformat } { nn }
+          }
+          ##1##2
+          {#1}
+      } ,
+    vrefrangeformat .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \__zrefvario_ref_opt_name_lang_cs:enn
+              { \l__zrefvario_setup_language_tl }
+              { vrefrangeformat } { nnn }
+          }
+          ##1##2##3
+          {#1}
+      } ,
+    fullrefformat .code:n =
+      {
+        \cs_gset_nopar:cpn
+          {
+            \__zrefvario_ref_opt_name_lang_cs:enn
+              { \l__zrefvario_setup_language_tl }
+              { fullrefformat } { n }
+          }
+          ##1
+          {#1}
+      } ,
+  }
+\cs_new_nopar:cpn
+  { \__zrefvario_ref_opt_default_cs:nn { vrefformat } { nn } } #1#2
+  {
+    \zcref {#2} ~
+    \zvpageref [ S=false, typeset=both, vcurrent={#1} ] {#2}
+  }
+\cs_new_nopar:cpn
+  { \__zrefvario_ref_opt_default_cs:nn { vrefrangeformat } { nnn } } #1#2#3
+  {
+    \reftextlabelrange {#2} {#3} ~
+    \zvpagerefrange [ S=false, typeset=both, vcurrent={#1} ] {#2} {#3}
+  }
+\cs_new_nopar:cpn
+  { \__zrefvario_ref_opt_default_cs:nn { fullrefformat } { n } } #1
+  {
+    \zcref {#1} ~
+    \zreftextfaraway [ S=false, typeset=both ] {#1}
+  }
+\NewDocumentCommand \zreftextfaraway { s O { } m }
+  { \zref at wrapper@babel \__zrefvario_zreftextfaraway:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \__zrefvario_zreftextfaraway:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \__zrefvario_varioref_setup:
+    \reftextfaraway {#1}
+    \group_end:
+  }
+\group_begin:
+\tl_set:Nn \l__zrefvario_setup_language_tl { zv_unknown_language }
+\keys_set:nn { zref-vario/langsetup }
+  {
+    reftextfaceafter =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextfaceafter } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextfacebefore =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextfacebefore } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextafter =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextafter } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextbefore =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextbefore } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextcurrent =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextcurrent } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextfaraway =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextfaraway } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextpagerange =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextpagerange } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+    reftextlabelrange =
+      {
+        \msg_warning:nnxx { zref-vario } { missing-string }
+          { reftextlabelrange } { \l__zrefvario_ref_language_tl }
+        \zref at default
+      } ,
+  }
+\group_end:
+\msg_new:nnn { zref-vario } { missing-string }
+  { Missing~'#1'~string~for~language~'#2'~\msg_line_context:. }
+\AddToHook { begindocument }
+  {
+    \seq_if_in:NxF \g__zrefvario_setup_languages_seq
+      { \__zrefvario_base_lang:e { \l__zrefvario_ref_language_tl } }
+      {
+        \msg_warning:nnx  { zref-vario } { language-not-setup }
+          { \l__zrefvario_ref_language_tl }
+      }
+  }
+\msg_new:nnn { zref-vario } { language-not-setup }
+  {
+    Language~'#1'~is~not~set~up~for~'zref-vario'.~
+    See~documentation~for~'\iow_char:N\\zvLanguageSetup'.
+  }
+\cs_new_protected:Npn \__zrefvario_vref_pagenum:Nn #1#2
+  {
+    \exp_args:NNNo \exp_args:NNo \tl_set:Nn #1
+      { \zref at extractdefault {#2} { page } { ?? } }
+  }
+\cs_new_protected:Npn \__zrefvario_vrefpagenum:Nn #1#2
+  {
+    \zref at refused {#2}
+    \__zrefvario_vref_pagenum:Nn #1 {#2}
+  }
+\cs_new_protected:Npn \__zrefvario_vref_label:n #1
+  { \zref at labelbyprops {#1} { page } }
+\bool_new:N \l__zrefvario_varioref_setup_bool
+\cs_new_protected:Npn \__zrefvario_varioref_setup:
+  {
+    \bool_if:NF \l__zrefvario_varioref_setup_bool
+      {
+        \bool_set_true:N \l__zrefvario_varioref_setup_bool
+        \@vrefhandlespacefalse
+        \cs_set_eq:NN \vref at pagenum \__zrefvario_vref_pagenum:Nn
+        \cs_set_eq:NN \vrefpagenum \__zrefvario_vrefpagenum:Nn
+        \cs_set_eq:NN \vref at label \__zrefvario_vref_label:n
+        \__zrefvario_ref_opt_tl_get:xnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextfaceafter }
+          \reftextfaceafter
+        \__zrefvario_ref_opt_tl_get:xnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextfacebefore }
+          \reftextfacebefore
+        \__zrefvario_ref_opt_tl_get:xnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextafter }
+          \reftextafter
+        \__zrefvario_ref_opt_tl_get:xnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextbefore }
+          \reftextbefore
+        \__zrefvario_ref_opt_tl_get:xnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextcurrent }
+          \reftextcurrent
+        \__zrefvario_ref_opt_cs_get:xnnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextfaraway } { n }
+          \reftextfaraway
+        \__zrefvario_ref_opt_cs_get:xnnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextpagerange } { nn }
+          \reftextpagerange
+        \__zrefvario_ref_opt_cs_get:xnnN
+          { \l__zrefvario_ref_language_tl }
+          { reftextlabelrange } { nn }
+          \reftextlabelrange
+        \__zrefvario_ref_opt_cs_get:xnnN
+          { \l__zrefvario_ref_language_tl }
+          { vrefformat } { nn }
+          \vrefformat
+        \__zrefvario_ref_opt_cs_get:xnnN
+          { \l__zrefvario_ref_language_tl }
+          { vrefrangeformat } { nnn }
+          \vrefrangeformat
+        \__zrefvario_ref_opt_cs_get:xnnN
+          { \l__zrefvario_ref_language_tl }
+          { fullrefformat } { n }
+          \fullrefformat
+      }
+  }
+\NewDocumentCommand \zvref { s O { } m }
+  { \zref at wrapper@babel \__zrefvario_zvref:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \__zrefvario_zvref:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-oneoptarg } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \__zrefvario_varioref_setup:
+    \__zrefvario_vref:Vn \l__zrefvario_vref_reftextcurrent_tl {#1}
+    \group_end:
+  }
+\cs_new_protected:Npn \__zrefvario_vref:nn #1#2
+  { \vrefformat {#1} {#2} }
+\cs_generate_variant:Nn \__zrefvario_vref:nn { Vn }
+\NewDocumentCommand \zvpageref { s O { } m }
+  { \zref at wrapper@babel \__zrefvario_zvpageref:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \__zrefvario_zvpageref:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-twooptargs } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \__zrefvario_varioref_setup:
+    \__zrefvario_vpageref:VVn \l__zrefvario_reftextcurrent_tl
+      \l__zrefvario_reftextother_tl {#1}
+    \group_end:
+  }
+\cs_new_protected:Npn \__zrefvario_vpageref:nnn #1#2#3
+  { \vpageref [{#1}] [#2] {#3} }
+\cs_generate_variant:Nn \__zrefvario_vpageref:nnn { VVn }
+\NewDocumentCommand \zvrefrange { s O { } m m }
+  {
+    \zref at wrapper@babel
+      { \zref at wrapper@babel \__zrefvario_zvrefrange:nnnn {#3} }
+      {#4} {#1} {#2}
+  }
+\cs_new_protected:Npn \__zrefvario_zvrefrange:nnnn #1#2#3#4
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
+    \bool_if:nT {#3}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \__zrefvario_varioref_setup:
+    \__zrefvario_vrefrange:Vnn \l__zrefvario_reftextcurrent_tl {#1} {#2}
+    \group_end:
+  }
+\cs_new_protected:Npn \__zrefvario_vrefrange:nnn #1#2#3
+  { \vrefrange [{#1}] {#2} {#3} }
+\cs_generate_variant:Nn \__zrefvario_vrefrange:nnn { Vnn }
+\NewDocumentCommand \zvpagerefrange { s O { } m m }
+  {
+    \zref at wrapper@babel
+      { \zref at wrapper@babel \__zrefvario_zvpagerefrange:nnnn {#3} }
+      {#4} {#1} {#2}
+  }
+\cs_new_protected:Npn \__zrefvario_zvpagerefrange:nnnn #1#2#3#4
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref-oneoptarg } {#4}
+    \bool_if:nT {#3}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \__zrefvario_varioref_setup:
+    \__zrefvario_vpagerefrange:Vnn \l__zrefvario_reftextcurrent_tl {#1} {#2}
+    \group_end:
+  }
+\cs_new_protected:Npn \__zrefvario_vpagerefrange:nnn #1#2#3
+  { \vpagerefrange [{#1}] {#2} {#3} }
+\cs_generate_variant:Nn \__zrefvario_vpagerefrange:nnn { Vnn }
+\NewDocumentCommand \zfullref { s O { } m }
+  { \zref at wrapper@babel \__zrefvario_zfullref:nnn {#3} {#1} {#2} }
+\cs_new_protected:Npn \__zrefvario_zfullref:nnn #1#2#3
+  {
+    \group_begin:
+    \keys_set:nn { zref-vario/ref } {#3}
+    \bool_if:nT {#2}
+      { \keys_set:nn { zref-vario/ref } { nohyperref } }
+    \__zrefvario_varioref_setup:
+    \fullref {#1}
+    \group_end:
+  }
+\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} ,
+    reftextfaraway = {on~\zcpageref{#1}} ,
+    reftextpagerange = {on~\zcpageref[range]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+\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} ,
+    reftextfaraway = {auf~\zcpageref[d=D,g=f]{#1}} ,
+    reftextpagerange = {auf~den~\zcpageref[range,d=D,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+\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} ,
+    reftextfaraway = {\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+\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} ,
+    reftextfaraway = {na~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {nas~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+\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} ,
+    reftextfaraway = {en~la~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {en~las~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+\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} ,
+    reftextfaraway = {op~\zcpageref[g=f]{#1}} ,
+    reftextpagerange = {op~\zcpageref[range,g=f]{#1,#2}} ,
+    reftextlabelrange = {\zcref[range]{#1,#2}} ,
+  }
+%% 
+%%
+%% End of file `zref-vario.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/zref-vario/zref-vario.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-01-31 21:15:02 UTC (rev 61826)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-01-31 21:17:01 UTC (rev 61827)
@@ -874,7 +874,7 @@
     yinit-otf york-thesis youngtab yplan yquant ytableau
   zapfchan zapfding zbmath-review-template zebra-goodies zed-csp
     zhlineskip zhlipsum zhnumber zhmetrics zhmetrics-uptex zhspacing
-    ziffer zitie zlmtt zootaxa-bst zref zref-check zref-clever
+    ziffer zitie zlmtt zootaxa-bst zref zref-check zref-clever zref-vario
     zwgetfdate zwpagelayout
     zx-calculus zxjafbfont zxjafont zxjatype zztex
 ); 

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2022-01-31 21:15:02 UTC (rev 61826)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2022-01-31 21:17:01 UTC (rev 61827)
@@ -1421,5 +1421,6 @@
 depend zref
 depend zref-check
 depend zref-clever
+depend zref-vario
 depend zwgetfdate
 depend zwpagelayout

Added: trunk/Master/tlpkg/tlpsrc/zref-vario.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/zref-vario.tlpsrc	                        (rev 0)
+++ trunk/Master/tlpkg/tlpsrc/zref-vario.tlpsrc	2022-01-31 21:17:01 UTC (rev 61827)
@@ -0,0 +1,2 @@
+depend zref-clever
+depend varioref



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