summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/zref-vario
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-09 03:00:53 +0000
committerNorbert Preining <norbert@preining.info>2022-02-09 03:00:53 +0000
commit8363587176bd1746ab2d65ee183b196e6d3458cf (patch)
tree64a89e6416d2b23d149b3dd918af467ae0b7441a /macros/latex/contrib/zref-vario
parent98810f6d7d064e61186d0ce674c4ee9de47a1f55 (diff)
CTAN sync 202202090300
Diffstat (limited to 'macros/latex/contrib/zref-vario')
-rw-r--r--macros/latex/contrib/zref-vario/CHANGELOG.md7
-rw-r--r--macros/latex/contrib/zref-vario/MANIFEST.md2
-rw-r--r--macros/latex/contrib/zref-vario/zref-vario-code.pdfbin538943 -> 569775 bytes
-rw-r--r--macros/latex/contrib/zref-vario/zref-vario.dtx97
-rw-r--r--macros/latex/contrib/zref-vario/zref-vario.pdfbin121131 -> 144096 bytes
-rw-r--r--macros/latex/contrib/zref-vario/zref-vario.tex31
6 files changed, 133 insertions, 4 deletions
diff --git a/macros/latex/contrib/zref-vario/CHANGELOG.md b/macros/latex/contrib/zref-vario/CHANGELOG.md
index 968785ecbf..256cf2d24a 100644
--- a/macros/latex/contrib/zref-vario/CHANGELOG.md
+++ b/macros/latex/contrib/zref-vario/CHANGELOG.md
@@ -1,6 +1,11 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/zref-vario/compare/v0.1.1-alpha...HEAD)
+## [Unreleased](https://github.com/gusbrs/zref-vario/compare/v0.1.2-alpha...HEAD)
+
+## [v0.1.2-alpha](https://github.com/gusbrs/zref-vario/compare/v0.1.1-alpha...v0.1.2-alpha) (2022-02-08)
+
+### Added
+- Integration with `zref-check` and new corresponding option `vcheck`.
## [v0.1.1-alpha](https://github.com/gusbrs/zref-vario/compare/v0.1.0-alpha...v0.1.1-alpha) (2022-02-01)
diff --git a/macros/latex/contrib/zref-vario/MANIFEST.md b/macros/latex/contrib/zref-vario/MANIFEST.md
index 050277efd7..f615ce334e 100644
--- a/macros/latex/contrib/zref-vario/MANIFEST.md
+++ b/macros/latex/contrib/zref-vario/MANIFEST.md
@@ -64,6 +64,7 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zv-basic04.lvt
* zv-hyperref01.lvt
* zv-languages01.lvt
+* zv-vcheck01.lvt
* zv-zcref-options01.lvt
* zv-basic01.luatex.tlg
* zv-basic01.luatexdev.tlg
@@ -91,6 +92,7 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zv-hyperref01.xetex.tlg
* zv-hyperref01.xetexdev.tlg
* zv-languages01.tlg
+* zv-vcheck01.tlg
* zv-zcref-options01.luatex.tlg
* zv-zcref-options01.luatexdev.tlg
* zv-zcref-options01.tlg
diff --git a/macros/latex/contrib/zref-vario/zref-vario-code.pdf b/macros/latex/contrib/zref-vario/zref-vario-code.pdf
index 88f1636636..64dcae0165 100644
--- a/macros/latex/contrib/zref-vario/zref-vario-code.pdf
+++ b/macros/latex/contrib/zref-vario/zref-vario-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-vario/zref-vario.dtx b/macros/latex/contrib/zref-vario/zref-vario.dtx
index 9d5992f8f3..17c01eed42 100644
--- a/macros/latex/contrib/zref-vario/zref-vario.dtx
+++ b/macros/latex/contrib/zref-vario/zref-vario.dtx
@@ -128,7 +128,7 @@
%
% Identify the package.
% \begin{macrocode}
-\ProvidesExplPackage {zref-vario} {2022-02-01} {0.1.1-alpha}
+\ProvidesExplPackage {zref-vario} {2022-02-08} {0.1.2-alpha}
{Extended LaTeX page cross-references with varioref and zref-clever}
% \end{macrocode}
%
@@ -574,7 +574,7 @@
\seq_if_in:NxF \g_@@_setup_languages_seq
{ \@@_base_lang:e { \l_@@_ref_language_tl } }
{
- \msg_warning:nnx { zref-vario } { language-not-setup }
+ \msg_warning:nnx { zref-vario } { language-not-setup }
{ \l_@@_ref_language_tl }
}
}
@@ -731,6 +731,19 @@
\@@_varioref_setup:
\@@_vpageref:VVn \l_@@_reftextcurrent_tl
\l_@@_reftextother_tl {#1}
+ \bool_lazy_and:nnT
+ { \g_@@_zrefcheck_available_bool }
+ { \l_@@_with_vcheck_bool }
+ {
+ \zrefcheck_zrefvario_label:
+ \vref@pagenum \l_tmpa_tl { \the\c@vrcnt @vr }
+ \vrefpagenum \l_tmpb_tl {#1}
+ \tl_if_eq:NNT \l_tmpa_tl \l_tmpb_tl
+ {
+ \zrefcheck_zrefvario_run_check_on_label:Vn
+ \l_@@_vcheck_tl {#1}
+ }
+ }
\group_end:
}
\cs_new_protected:Npn \@@_vpageref:nnn #1#2#3
@@ -787,6 +800,25 @@
{ \keys_set:nn { zref-vario/ref } { nohyperref } }
\@@_varioref_setup:
\@@_vpagerefrange:Vnn \l_@@_reftextcurrent_tl {#1} {#2}
+ \bool_lazy_and:nnT
+ { \g_@@_zrefcheck_available_bool }
+ { \l_@@_with_vcheck_bool }
+ {
+ \zrefcheck_zrefvario_label:
+ \vrefpagenum \l_tmpa_tl {#1}
+ \vrefpagenum \l_tmpb_tl {#2}
+ \tl_if_eq:NNT \l_tmpa_tl \l_tmpb_tl
+ {
+ \vref@pagenum \l_tmpa_tl { \the\c@vrcnt @vr }
+ \tl_if_eq:NNT \l_tmpa_tl \l_tmpb_tl
+ {
+ \zrefcheck_zrefvario_run_check_on_label:Vn
+ \l_@@_vcheck_tl {#1}
+ \zrefcheck_zrefvario_run_check_on_label:Vn
+ \l_@@_vcheck_tl {#2}
+ }
+ }
+ }
\group_end:
}
\cs_new_protected:Npn \@@_vpagerefrange:nnn #1#2#3
@@ -818,6 +850,67 @@
%
%
%
+% \section{\pkg{zref-check} integration}
+%
+% Integration with \pkg{zref-check}. \opt{vcheck}, differently from
+% \opt{check}, receives only two values \texttt{above} and \texttt{below},
+% since these are the only two checks which make sense for \pkg{zref-vario}.
+% This means that it also does not take \cs{zcheck}'s options, but these can
+% always be passed to \opt{check}. Besides this, \opt{vcheck}'s check should
+% only be done when label(s) and reference are in the same page, that is, when
+% \opt{vcurrent} is used. Furthermore, since \pkg{varioref} handles the case
+% where the reference crosses page boundaries, we only set one label for the
+% purpose, and this is done at the end of the reference, because that's the
+% point \pkg{varioref} itself uses to check if label and reference are in the
+% same page.
+%
+% \begin{macrocode}
+\bool_new:N \g_@@_zrefcheck_available_bool
+\bool_new:N \l_@@_with_vcheck_bool
+\tl_new:N \l_@@_vcheck_tl
+\AddToHook { begindocument/before }
+ {
+ \IfPackageLoadedTF { zref-check }
+ {
+ \IfPackageAtLeastTF { zref-check } { 2022-02-08 }
+ {
+ \bool_gset_true:N \g_@@_zrefcheck_available_bool
+ \keys_define:nn { zref-vario/current }
+ {
+ vcheck .choices:nn =
+ { above , below }
+ {
+ \bool_set_true:N \l_@@_with_vcheck_bool
+ \tl_set:NV \l_@@_vcheck_tl \l_keys_choice_tl
+ } ,
+ }
+ }
+ {
+ \bool_gset_false:N \g_@@_zrefcheck_available_bool
+ \keys_define:nn { zref-vario/current }
+ {
+ vcheck .code:n =
+ { \msg_warning:nn { zref-vario } { zref-check-unavailable } } ,
+ }
+ }
+ }
+ {
+ \bool_gset_false:N \g_@@_zrefcheck_available_bool
+ \keys_define:nn { zref-vario/current }
+ {
+ vcheck .code:n =
+ { \msg_warning:nn { zref-vario } { zref-check-unavailable } } ,
+ }
+ }
+ }
+\msg_new:nnn { zref-vario } { zref-check-unavailable }
+ {
+ Option~'vcheck'~is~only~available~when~'zref-check'~is~loaded~
+ and~newer~than~'2022-02-08~v0.2.4'.
+ }
+% \end{macrocode}
+%
+%
% \section{Languages}
%
%
diff --git a/macros/latex/contrib/zref-vario/zref-vario.pdf b/macros/latex/contrib/zref-vario/zref-vario.pdf
index 8a37e41a8d..df3d54ed30 100644
--- a/macros/latex/contrib/zref-vario/zref-vario.pdf
+++ b/macros/latex/contrib/zref-vario/zref-vario.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-vario/zref-vario.tex b/macros/latex/contrib/zref-vario/zref-vario.tex
index 7801d52f5d..a4ef370837 100644
--- a/macros/latex/contrib/zref-vario/zref-vario.tex
+++ b/macros/latex/contrib/zref-vario/zref-vario.tex
@@ -236,7 +236,7 @@ macros to the values given to the corresponding options 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.
+\pkg{varioref}, which are adequate for 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}.
@@ -249,6 +249,35 @@ though they do affect \pkg{zref-vario}'s commands, just as they do with
\pkg{varioref}'s.
+\section{Integration with \pkg{zref-check}}
+
+When package \pkg{zref-check} is loaded, \pkg{zref-vario} provides one further
+option to its user commands: \opt{vcheck}. The purpose of this option is to
+check the relative position of label and reference within the same page. It
+can receive two values: \texttt{above} and \texttt{below}, being those the
+names of the \pkg{zref-check}'s checks which are meaningful for the use case
+at hand. Of course, these could also be performed with \cs{zcref}'s
+\opt{check} option, which is available for \pkg{zref-vario}'s commands as
+well. The difference here is that the check specified in \opt{vcheck} is only
+performed when the referenced label -- or labels, in the case of a range --
+fall on the same page as the reference itself.\footnote{There's another
+ technical difference between them. \pkg{zref-check}'s checks, and hence
+ those of the \opt{check} option, make sure the whole reference passes each
+ check by setting labels both at the start and the end of the reference, and
+ verifying if each one of them passes the checks. But, since \pkg{varioref}
+ already has it's own mechanism to handle references which cross page
+ boundaries, \opt{vcheck}'s checks set only one label, at the end of the
+ reference, the same position \pkg{varioref} uses to check whether label and
+ reference are on the same page.} In other words, when \opt{vcurrent} would
+be used (if provided). For this reason, only the commands which support
+\opt{vcurrent} offer \pkg{vcheck}. Also, \opt{vcheck} cannot receive
+\pkg{zref-check}'s options, as \opt{check} is able to, but the latter can be
+used for the purpose of locally controlling the behavior of the checks
+performed by \opt{vcheck}. Consult \pkg{zref-check}'s documentation for
+details and limitations of these checks and envisaged workflows for their
+reliable use.
+
+
% \section{Acknowledgments}
%
% A number of people have contributed to \pkg{zref-vario}. Suggestions,