summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-08-18 20:47:09 +0000
committerKarl Berry <karl@freefriends.org>2021-08-18 20:47:09 +0000
commitf42dc4b8dd52d7210c99b17d91b387565811c13e (patch)
treef363ae42c6959f8aba7fed1d51ac0b7e24acb17d /Master/texmf-dist/tex
parentb0fee827be0d99a89b05aa57264affdbbd929e48 (diff)
zref-check (18aug21)
git-svn-id: svn://tug.org/texlive/trunk@60270 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/zref-check/zref-check.sty210
1 files changed, 157 insertions, 53 deletions
diff --git a/Master/texmf-dist/tex/latex/zref-check/zref-check.sty b/Master/texmf-dist/tex/latex/zref-check/zref-check.sty
index 72e8a2f8784..ea26b0766bc 100644
--- a/Master/texmf-dist/tex/latex/zref-check/zref-check.sty
+++ b/Master/texmf-dist/tex/latex/zref-check/zref-check.sty
@@ -55,7 +55,7 @@
}%
\endinput
}%
-\ProvidesExplPackage {zref-check} {2021-08-04} {0.1.0}
+\ProvidesExplPackage {zref-check} {2021-08-17} {0.2.0}
{Flexible cross-references with contextual checks based on zref}
\RequirePackage { zref-user }
\RequirePackage { zref-abspage }
@@ -67,19 +67,19 @@
\int_gincr:N \g__zrefcheck_abschap_int
\int_zero:N \g__zrefcheck_abssec_int
}
-\zref@newprop { abschap } [0] { \int_use:N \g__zrefcheck_abschap_int }
-\zref@addprop \ZREF@mainlist { abschap }
+\zref@newprop { zc@abschap } [0] { \int_use:N \g__zrefcheck_abschap_int }
+\zref@addprop \ZREF@mainlist { zc@abschap }
\AddToHook { cmd / section / before }
{ \int_gincr:N \g__zrefcheck_abssec_int }
-\zref@newprop { abssec } [0] { \int_use:N \g__zrefcheck_abssec_int }
-\zref@addprop \ZREF@mainlist { abssec }
+\zref@newprop { zc@abssec } [0] { \int_use:N \g__zrefcheck_abssec_int }
+\zref@addprop \ZREF@mainlist { zc@abssec }
\zref@newlist { zrefcheck }
\zref@addprops { zrefcheck }
{
+ page ,
abspage ,
- abschap ,
- abssec ,
- page
+ zc@abschap ,
+ zc@abssec
}
\cs_new:Npn \__zrefcheck_message:nnnn #1#2#3#4
{
@@ -175,7 +175,7 @@
hyperref .initial:n = auto ,
hyperref .default:n = auto
}
-\AtBeginDocument
+\AddToHook { begindocument }
{
\@ifpackageloaded { hyperref }
{
@@ -224,7 +224,7 @@
{ \msg_warning:nn { zref-check } { ignore-document-only } } ,
ignore .value_forbidden:n = true
}
-\AtBeginDocument
+\AddToHook { begindocument }
{
\keys_define:nn { zref-check }
{ ignore .meta:n = { msglevel = none } }
@@ -284,7 +284,7 @@
}
\cs_new:Npn \__zrefcheck_target_label:n #1
{ \zref@labelbylist {#1} { zrefcheck } }
-\AtBeginDocument
+\AddToHook { begindocument }
{
\bool_if:NT \l__zrefcheck_target_label_bool
{
@@ -410,17 +410,18 @@
}
}
\NewDocumentCommand \zcheck
- { s O { } > { \SplitList { , } } m > { \SplitList { , } } O { } m }
- { \zref@wrapper@babel \__zrefcheck_zcheck:nnnnn {#3} {#1} {#2} {#4} {#5} }
+ { s O { } > { \SplitList { , } } m m }
+ { \zref@wrapper@babel \__zrefcheck_zcheck:nnnn {#3} {#1} {#2} {#4} }
\int_new:N \g__zrefcheck_id_int
\tl_new:N \l__zrefcheck_checkbeg_tl
\tl_new:N \l__zrefcheck_checkend_tl
\tl_new:N \l__zrefcheck_link_label_tl
\tl_new:N \l__zrefcheck_link_anchor_tl
-\bool_new:N \l__zrefcheck_link_star_tl
-\cs_new:Npn \__zrefcheck_zcheck:nnnnn #1#2#3#4#5
+\bool_new:N \l__zrefcheck_link_star_bool
+\cs_new:Npn \__zrefcheck_zcheck:nnnn #1#2#3#4
{
\group_begin:
+ \__zrefcheck_set_checks_keys:
\keys_set:nn { zref-check } {#3}
\int_gincr:N \g__zrefcheck_id_int
\tl_set:Nx \l__zrefcheck_checkbeg_tl
@@ -429,26 +430,27 @@
{ \__zrefcheck_end_lblfmt:n { \l__zrefcheck_checkbeg_tl } }
\zref@labelbylist { \l__zrefcheck_checkbeg_tl } { zrefcheck }
\tl_set:Nn \l__zrefcheck_link_label_tl { \tl_head:n {#1} }
- \bool_set:Nn \l__zrefcheck_link_star_tl {#2}
+ \bool_set:Nn \l__zrefcheck_link_star_bool {#2}
\zref@ifrefundefined { \l__zrefcheck_link_label_tl }
- {#5}
+ {#4}
{
\bool_if:nTF
{
\l__zrefcheck_use_hyperref_bool &&
- ! \l__zrefcheck_link_star_tl
+ ! \l__zrefcheck_link_star_bool
}
{
\exp_args:Nx \zrefcheck_get_astl:nnn
{ \l__zrefcheck_link_label_tl }
{ anchor } { \l__zrefcheck_link_anchor_tl }
- \hyperlink { \l__zrefcheck_link_anchor_tl } {#5}
+ \hyperlink { \l__zrefcheck_link_anchor_tl } {#4}
}
- {#5}
+ {#4}
}
\zref@labelbylist { \l__zrefcheck_checkend_tl } { zrefcheck }
\tl_map_function:nN {#1} \zref@refused
- \__zrefcheck_run_checks:nnV {#4} {#1} { \l__zrefcheck_checkbeg_tl }
+ \__zrefcheck_run_checks:nnv
+ { \l__zrefcheck_zcheck_checks_seq } {#1} { l__zrefcheck_checkbeg_tl }
\group_end:
}
\NewDocumentCommand \zctarget { m +m }
@@ -470,17 +472,119 @@
\zref@wrapper@babel
\zref@labelbylist { \__zrefcheck_end_lblfmt:n {#1} } { zrefcheck }
}
+\seq_new:N \l__zrefcheck_zcheck_checks_seq
+\cs_new:Npn \__zrefcheck_set_checks_keys:
+ {
+ \keys_define:nn { zref-check }
+ {
+ thispage .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { thispage } } ,
+ thispage .value_forbidden:n = true ,
+
+ prevpage .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { prevpage } } ,
+ prevpage .value_forbidden:n = true ,
+
+ nextpage .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { nextpage } } ,
+ nextpage .value_forbidden:n = true ,
+
+ facing .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { facing } } ,
+ facing .value_forbidden:n = true ,
+
+ above .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { above } } ,
+ above .value_forbidden:n = true ,
+
+ below .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { below } } ,
+ below .value_forbidden:n = true ,
+
+ pagesbefore .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { pagesbefore } } ,
+ pagesbefore .value_forbidden:n = true ,
+
+ ppbefore .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { ppbefore } } ,
+ ppbefore .value_forbidden:n = true ,
+
+ pagesafter .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { pagesafter } } ,
+ pagesafter .value_forbidden:n = true ,
+
+ ppafter .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { ppafter } } ,
+ ppafter .value_forbidden:n = true ,
+
+ before .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { before } } ,
+ before .value_forbidden:n = true ,
+
+ after .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { after } } ,
+ after .value_forbidden:n = true ,
+
+ thischap .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { thischap } } ,
+ thischap .value_forbidden:n = true ,
+
+ prevchap .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { prevchap } } ,
+ prevchap .value_forbidden:n = true ,
+
+ nextchap .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { nextchap } } ,
+ nextchap .value_forbidden:n = true ,
+
+ chapsbefore .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { chapsbefore } } ,
+ chapsbefore .value_forbidden:n = true ,
+
+ chapsafter .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { chapsafter } } ,
+ chapsafter .value_forbidden:n = true ,
+
+ thissec .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { thissec } } ,
+ thissec .value_forbidden:n = true ,
+
+ prevsec .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { prevsec } } ,
+ prevsec .value_forbidden:n = true ,
+
+ nextsec .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { nextsec } } ,
+ nextsec .value_forbidden:n = true ,
+
+ secsbefore .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { secsbefore } } ,
+ secsbefore .value_forbidden:n = true ,
+
+ secsafter .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { secsafter } } ,
+ secsafter .value_forbidden:n = true ,
+
+ close .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { close } } ,
+ close .value_forbidden:n = true ,
+
+ far .code:n =
+ { \seq_put_right:Nn \l__zrefcheck_zcheck_checks_seq { far } } ,
+ far .value_forbidden:n = true ,
+ }
+ }
\cs_new:Npn \__zrefcheck_run_checks:nnn #1#2#3
{
\group_begin:
\tl_map_inline:nn {#2}
{
- \tl_map_inline:nn {#1}
+ \seq_map_inline:Nn #1
{ \__zrefcheck_do_check:nnn {####1} {##1} {#3} }
}
\group_end:
}
-\cs_generate_variant:Nn \__zrefcheck_run_checks:nnn { nnV }
+\cs_generate_variant:Nn \__zrefcheck_run_checks:nnn { nnv }
\bool_new:N \l__zrefcheck_passedcheck_bool
\bool_new:N \l__zrefcheck_onpage_bool
\seq_new:N \c__zrefcheck_onpage_checks_seq
@@ -765,8 +869,8 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -783,8 +887,8 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -800,8 +904,8 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -818,8 +922,8 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -835,8 +939,8 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -853,10 +957,10 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abssec } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abssec } { \l__zrefcheck_ref_int }
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_b_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_b_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -875,10 +979,10 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abssec } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abssec } { \l__zrefcheck_ref_int }
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_b_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_b_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -896,10 +1000,10 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abssec } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abssec } { \l__zrefcheck_ref_int }
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_b_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_b_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -918,10 +1022,10 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abssec } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abssec } { \l__zrefcheck_ref_int }
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_b_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_b_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{
@@ -939,10 +1043,10 @@
{
\group_begin:
\bool_set_true:N \l__zrefcheck_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abssec } { \l__zrefcheck_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abssec } { \l__zrefcheck_ref_int }
- \zrefcheck_get_asint:nnn {#1} { abschap } { \l__zrefcheck_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { abschap } { \l__zrefcheck_ref_b_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l__zrefcheck_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l__zrefcheck_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l__zrefcheck_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l__zrefcheck_ref_b_int }
\bool_lazy_and:nnTF
{ \l__zrefcheck_integer_bool }
{