summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/zref-check/zref-check.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/zref-check/zref-check.dtx')
-rw-r--r--macros/latex/contrib/zref-check/zref-check.dtx1004
1 files changed, 503 insertions, 501 deletions
diff --git a/macros/latex/contrib/zref-check/zref-check.dtx b/macros/latex/contrib/zref-check/zref-check.dtx
index 58eb421cdd..c3a05b9990 100644
--- a/macros/latex/contrib/zref-check/zref-check.dtx
+++ b/macros/latex/contrib/zref-check/zref-check.dtx
@@ -72,23 +72,22 @@
% the new hook system in \pkg{ltcmdhooks}, which was released with the
% 2021/06/01 \LaTeX{} kernel.
% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
+\def\zrefcheck@required@kernel{2021-06-01}
+\NeedsTeXFormat{LaTeX2e}[\zrefcheck@required@kernel]
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
-\IfFormatAtLeastTF{2021-06-01}
+\IfFormatAtLeastTF{\zrefcheck@required@kernel}
{}
{%
\PackageError{zref-check}{LaTeX kernel too old}
{%
- 'zref-check' requires a LaTeX kernel newer than 2021-06-01.%
- \MessageBreak Loading will abort!%
+ 'zref-check' requires a LaTeX kernel \zrefcheck@required@kernel\space or newer.%
}%
- \endinput
}%
% \end{macrocode}
%
% Identify the package.
% \begin{macrocode}
-\ProvidesExplPackage {zref-check} {2023-06-14} {0.3.3}
+\ProvidesExplPackage {zref-check} {2023-08-13} {0.3.4}
{Flexible cross-references with contextual checks based on zref}
% \end{macrocode}
%
@@ -193,6 +192,13 @@
Same~page~check~\msg_line_context:.~
Double-check~'#1'~for~label~'#2'~on~page~#3.
}
+\msg_new:nnn { zref-check } { empty-label }
+ {
+ Check~failed~\msg_line_context:.~
+ Failed~check~'#1'~for~empty~label.
+ }
+\msg_new:nnn { zref-check } { no-checks }
+ { No~checks~for~'\iow_char:N\\zcheck'~\msg_line_context:. }
% \end{macrocode}
%
% \begin{macrocode}
@@ -214,9 +220,9 @@
}
\msg_new:nnn { zref-check } { missing-hyperref }
{ Missing~'hyperref'~package. \iow_newline: Setting~'hyperref=false'. }
-\msg_new:nnn { zref-check } { ignore-document-only }
+\msg_new:nnn { zref-check } { ignore-ok-document-only }
{
- Option~'ignore'~only~available~in~the~document. \iow_newline:
+ Option~'#1'~only~available~in~the~document. \iow_newline:
Use~option~'msglevel'~instead.
}
\msg_new:nnn { zref-check } { option-preamble-only }
@@ -379,27 +385,18 @@
{ \tl_set:Nn \l_@@_msglevel_tl { warning } }
{ \tl_set:Nn \l_@@_msglevel_tl { info } }
} ,
- msglevel / obeydraft .code:n =
- {
- % NOTE Option value deprecated in 2021-12-07 for v0.2.2.
- \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative }
- { msglevel=obeydraft } { msglevel=infoifdraft }
- } ,
- msglevel / obeyfinal .code:n =
- {
- % NOTE Option value deprecated in 2021-12-07 for v0.2.2.
- \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative }
- { msglevel=obeyfinal } { msglevel=warniffinal }
- } ,
msglevel .value_required:n = true ,
msglevel .initial:n = warn ,
% \end{macrocode}
-% \opt{ignore} is a convenience alias for \opt{msglevel=none}, but only for
-% use in the document body.
+% \opt{ignore} and \opt{ok} are convenience aliases for \opt{msglevel=none},
+% but only for use in the document body.
% \begin{macrocode}
ignore .code:n =
- { \msg_warning:nn { zref-check } { ignore-document-only } } ,
- ignore .value_forbidden:n = true
+ { \msg_warning:nnn { zref-check } { ignore-ok-document-only } { ignore } } ,
+ ignore .value_forbidden:n = true ,
+ ok .code:n =
+ { \msg_warning:nnn { zref-check } { ignore-ok-document-only } { ok } } ,
+ ok .value_forbidden:n = true ,
}
% \end{macrocode}
% \end{variable}
@@ -408,7 +405,10 @@
\AddToHook { begindocument }
{
\keys_define:nn { zref-check }
- { ignore .meta:n = { msglevel = none } }
+ {
+ ignore .meta:n = { msglevel = none } ,
+ ok .meta:n = { msglevel = none } ,
+ }
}
% \end{macrocode}
%
@@ -441,18 +441,6 @@
{ \bool_set_true:N \l_@@_msgonpage_bool }
{ \bool_set_false:N \l_@@_msgonpage_bool }
} ,
- onpage / obeydraft .code:n =
- {
- % NOTE Option value deprecated in 2021-12-07 for v0.2.2.
- \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative }
- { onpage=obeydraft } { onpage=labelseqifdraft }
- } ,
- onpage / obeyfinal .code:n =
- {
- % NOTE Option value deprecated in 2021-12-07 for v0.2.2.
- \msg_warning:nnnn { zref-check }{ option-deprecated-with-alternative }
- { onpage=obeyfinal } { onpage=msgiffinal }
- } ,
onpage .value_required:n = true ,
onpage .initial:n = labelseq
}
@@ -483,22 +471,6 @@
% \end{variable}
%
%
-% \subsubsection*{\opt{labelcmd} option}
-%
-% \begin{macrocode}
-\keys_define:nn { zref-check }
- {
- labelcmd .code:n =
- {
- % NOTE Option value deprecated in 2022-02-08 for v0.2.4.
- \msg_warning:nnn { zref-check }{ option-deprecated }
- { labelcmd }
- } ,
- }
-% \end{macrocode}
-%
-%
-%
% \subsubsection*{Package options}
%
% \pkg{zref-check} does not accept load-time options. Despite the tradition
@@ -631,30 +603,30 @@
% \begin{macrocode}
\ior_open:Nn \g_tmpa_ior { \g_tmpa_tl }
\group_begin:
- \int_zero:N \l_tmpa_int
- \tl_clear:N \l_tmpa_tl
- \tl_clear:N \l_tmpb_tl
- \bool_set_false:N \l_tmpa_bool
- \ior_map_variable:NNn \g_tmpa_ior \l_tmpa_tl
- {
- \tl_map_variable:NNn \l_tmpa_tl \l_tmpb_tl
- {
- \tl_if_eq:NnTF \l_tmpb_tl { \zref@newlabel }
- {
+ \int_zero:N \l_tmpa_int
+ \tl_clear:N \l_tmpa_tl
+ \tl_clear:N \l_tmpb_tl
+ \bool_set_false:N \l_tmpa_bool
+ \ior_map_variable:NNn \g_tmpa_ior \l_tmpa_tl
+ {
+ \tl_map_variable:NNn \l_tmpa_tl \l_tmpb_tl
+ {
+ \tl_if_eq:NnTF \l_tmpb_tl { \zref@newlabel }
+ {
% \end{macrocode}
% Found a \cs{zref@label}, signal it.
% \begin{macrocode}
- \bool_set_true:N \l_tmpa_bool
- }
- {
- \bool_if:NTF \l_tmpa_bool
- {
- \bool_set_false:N \l_tmpa_bool
- \int_incr:N \l_tmpa_int
- \prop_gput:Nxx \g_@@_auxfile_lblseq_prop
- { \l_tmpb_tl } { \int_use:N \l_tmpa_int }
- }
- {
+ \bool_set_true:N \l_tmpa_bool
+ }
+ {
+ \bool_if:NTF \l_tmpa_bool
+ {
+ \bool_set_false:N \l_tmpa_bool
+ \int_incr:N \l_tmpa_int
+ \prop_gput:Nxx \g_@@_auxfile_lblseq_prop
+ { \l_tmpb_tl } { \int_use:N \l_tmpa_int }
+ }
+ {
% \end{macrocode}
% If there is not a match of the first token with \cs{zref@newlabel}, break
% the loop and discard the rest of the line, to ensure no babel calls to
@@ -662,11 +634,11 @@
% loop and discards the rest of the \cs{zref@newlabel} lines after we got the
% label we wanted, since we reset \cs{l_tmpa_bool} in the \texttt{T} branch.
% \begin{macrocode}
- \tl_map_break:
- }
- }
- }
- }
+ \tl_map_break:
+ }
+ }
+ }
+ }
\group_end:
\ior_close:N \g_tmpa_ior
}
@@ -942,65 +914,68 @@
{
\group_begin:
% \end{macrocode}
-% Process local options and checks.
+% Process local options and checks. We use \cs{seq_set_split:Nnn} to set
+% \cs{l_@@_zcheck_labels_seq} -- instead of \cs{seq_set_from_clist:Nn} -- to
+% support empty labels.
% \begin{macrocode}
- \keys_set:nn { zref-check / zcheck } {#3}
- \seq_set_from_clist:Nn \l_@@_zcheck_labels_seq {#1}
+ \keys_set:nn { zref-check / zcheck } {#3}
+ \seq_set_split:Nnn \l_@@_zcheck_labels_seq { , } {#1}
% \end{macrocode}
% Names of the labels for this zcheck call.
% \begin{macrocode}
- \int_gincr:N \g_@@_id_int
- \tl_set:Nx \l_@@_checkbeg_tl
- { \@@_check_lblfmt:n { \g_@@_id_int } }
+ \int_gincr:N \g_@@_id_int
+ \tl_set:Nx \l_@@_checkbeg_tl
+ { \@@_check_lblfmt:n { \g_@@_id_int } }
% \end{macrocode}
% Set checkbeg label.
% \begin{macrocode}
- \zref@labelbylist { \l_@@_checkbeg_tl } { zrefcheck-check }
+ \zref@labelbylist { \l_@@_checkbeg_tl } { zrefcheck-check }
% \end{macrocode}
% Typeset \marg{text}, with hyperlink when appropriate. Even though the first
% argument can receive a list of labels, there is no meaningful way to set
% links to multiple targets. Hence, only the first one is considered for
% hyperlinking.
% \begin{macrocode}
- \seq_get:NN \l_@@_zcheck_labels_seq \l_@@_link_label_tl
- \bool_set:Nn \l_@@_link_star_bool {#2}
- \zref@ifrefundefined { \l_@@_link_label_tl }
+ \seq_get:NN \l_@@_zcheck_labels_seq \l_@@_link_label_tl
+ \bool_set:Nn \l_@@_link_star_bool {#2}
+ \zref@ifrefundefined { \l_@@_link_label_tl }
% \end{macrocode}
% If the reference is undefined, just typeset.
% \begin{macrocode}
- {#4}
- {
- \bool_if:nTF
- {
- \l_@@_use_hyperref_bool &&
- ! \l_@@_link_star_bool
- }
- {
- \exp_args:Nx \zrefcheck_get_astl:nnn
- { \l_@@_link_label_tl }
- { anchor } { \l_@@_link_anchor_tl }
- \hyperlink { \l_@@_link_anchor_tl } {#4}
- }
- {#4}
- }
+ {#4}
+ {
+ \bool_if:nTF
+ {
+ \l_@@_use_hyperref_bool &&
+ ! \l_@@_link_star_bool
+ }
+ {
+ \exp_args:Nx \zrefcheck_get_astl:nnn
+ { \l_@@_link_label_tl }
+ { anchor } { \l_@@_link_anchor_tl }
+ \hyperlink { \l_@@_link_anchor_tl } {#4}
+ }
+ {#4}
+ }
% \end{macrocode}
% Set checkend label.
% \begin{macrocode}
- \bool_if:NT \l_@@_zcheck_end_label_bool
- {
- \zref@labelbylist
- { \@@_end_lblfmt:n { \l_@@_checkbeg_tl } }
- { zrefcheck-end }
- }
+ \bool_if:NT \l_@@_zcheck_end_label_bool
+ {
+ \zref@labelbylist
+ { \@@_end_lblfmt:n { \l_@@_checkbeg_tl } }
+ { zrefcheck-end }
+ }
% \end{macrocode}
% Check if \meta{labels} are defined.
% \begin{macrocode}
- \seq_map_function:NN \l_@@_zcheck_labels_seq \zref@refused
+ \seq_map_inline:Nn \l_@@_zcheck_labels_seq
+ { \tl_if_empty:nF {##1} { \zref@refused {##1} } }
% \end{macrocode}
% Run the checks.
% \begin{macrocode}
- \@@_run_checks:nnx { \l_@@_zcheck_checks_seq }
- { \l_@@_zcheck_labels_seq } { \l_@@_checkbeg_tl }
+ \@@_run_checks:nnx { \l_@@_zcheck_checks_seq }
+ { \l_@@_zcheck_labels_seq } { \l_@@_checkbeg_tl }
\group_end:
}
% \end{macrocode}
@@ -1119,6 +1094,7 @@
nextsec ,
secsbefore ,
secsafter ,
+ manual ,
}
% \end{macrocode}
% \end{variable}
@@ -1171,6 +1147,7 @@
secsafter ,
close ,
far ,
+ manual ,
}
{
\keys_define:nn { zref-check / zcheck }
@@ -1199,11 +1176,15 @@
\cs_new_protected:Npn \@@_run_checks:nnn #1#2#3
{
\group_begin:
- \seq_map_inline:Nn #2
- {
- \seq_map_inline:Nn #1
- { \@@_do_check:nnn {####1} {##1} {#3} }
- }
+ \seq_map_inline:Nn #2
+ {
+ \seq_if_empty:NTF #1
+ { \@@_message:nnnn { no-checks } { } { } { } }
+ {
+ \seq_map_inline:Nn #1
+ { \@@_do_check:nnn {####1} {##1} {#3} }
+ }
+ }
\group_end:
}
\cs_generate_variant:Nn \@@_run_checks:nnn { nnx }
@@ -1215,11 +1196,13 @@
% {
% \l_@@_passedcheck_bool ,
% \l_@@_onpage_bool ,
+% \l_@@_empty_label_bool ,
% \c_@@_onpage_checks_seq
% }
% \begin{macrocode}
\bool_new:N \l_@@_passedcheck_bool
\bool_new:N \l_@@_onpage_bool
+\bool_new:N \l_@@_empty_label_bool
\seq_const_from_clist:Nn \c_@@_onpage_checks_seq
{ above , below , before , after }
% \end{macrocode}
@@ -1239,119 +1222,127 @@
\cs_new_protected:Npn \@@_do_check:nnn #1#2#3
{
\group_begin:
+ \bool_set_true:N \l_@@_passedcheck_bool
+ \bool_set_false:N \l_@@_onpage_bool
+ \bool_set_false:N \l_@@_empty_label_bool
+ \cs_if_exist:cTF { @@_check_ #1 :nnF }
+ {
% \end{macrocode}
% \meta{label beg} may be defined or not, it is arbitrary user input. Whether
% this is the case is checked in \cs{@@_zcheck:nnnnn}, and due warning already
-% ensues. And there is no point in checking ``relative position'' of an
-% undefined label. Hence, in the absence of |#2|, we do nothing at all here.
-% \begin{macrocode}
- \zref@ifrefundefined {#2}
- {}
- {
- \tl_if_empty:nF {#1}
- {
- \bool_set_true:N \l_@@_passedcheck_bool
- \bool_set_false:N \l_@@_onpage_bool
- \cs_if_exist:cTF { @@_check_ #1 :nnF }
- {
- % ``label beg'' vs ``reference beg''.
- \use:c { @@_check_ #1 :nnF }
- {#2} {#3}
- { \bool_set_false:N \l_@@_passedcheck_bool }
- % ``reference end'' \emph{may} exist or not depending on the
- % checks.
- \zref@ifrefundefined { \@@_end_lblfmt:n {#3} }
- {
- % ``label end'' \emph{may} have been created by the
- % target commands.
- \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
- {}
- {
- % ``label end'' vs ``reference beg''.
- \exp_args:Nno \use:c { @@_check_ #1 :nnF }
- { \@@_end_lblfmt:n {#2} } {#3}
- { \bool_set_false:N \l_@@_passedcheck_bool }
- }
- }
- {
- % ``label beg'' vs ``reference end''.
- \exp_args:Nnno \use:c { @@_check_ #1 :nnF }
- {#2} { \@@_end_lblfmt:n {#3} }
- { \bool_set_false:N \l_@@_passedcheck_bool }
- % ``label end'' \emph{may} have been created by the
- % target commands.
- \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
- {}
- {
- % ``label end'' vs ``reference beg''.
- \exp_args:Nno \use:c { @@_check_ #1 :nnF }
- { \@@_end_lblfmt:n {#2} } {#3}
- { \bool_set_false:N \l_@@_passedcheck_bool }
- % ``label end'' vs ``reference end''.
- \exp_args:Nnoo \use:c { @@_check_ #1 :nnF }
- { \@@_end_lblfmt:n {#2} }
- { \@@_end_lblfmt:n {#3} }
- { \bool_set_false:N \l_@@_passedcheck_bool }
- }
- }
+% ensues. So there's no need to do it again here. The only exception is the
+% case of empty labels, for which we want to issue a failed check warning.
+% \begin{macrocode}
+ \zref@ifrefundefined {#2}
+ {
+ \tl_if_empty:nT {#2}
+ {
+ \bool_set_false:N \l_@@_passedcheck_bool
+ \bool_set_true:N \l_@@_empty_label_bool
+ }
+ }
+ {
+ % ``label beg'' vs ``reference beg''.
+ \use:c { @@_check_ #1 :nnF }
+ {#2} {#3}
+ { \bool_set_false:N \l_@@_passedcheck_bool }
+ % ``reference end'' \emph{may} exist or not depending on the
+ % checks.
+ \zref@ifrefundefined { \@@_end_lblfmt:n {#3} }
+ {
+ % ``label end'' \emph{may} have been created by the
+ % target commands.
+ \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
+ {}
+ {
+ % ``label end'' vs ``reference beg''.
+ \exp_args:Nno \use:c { @@_check_ #1 :nnF }
+ { \@@_end_lblfmt:n {#2} } {#3}
+ { \bool_set_false:N \l_@@_passedcheck_bool }
+ }
+ }
+ {
+ % ``label beg'' vs ``reference end''.
+ \exp_args:Nnno \use:c { @@_check_ #1 :nnF }
+ {#2} { \@@_end_lblfmt:n {#3} }
+ { \bool_set_false:N \l_@@_passedcheck_bool }
+ % ``label end'' \emph{may} have been created by the
+ % target commands.
+ \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
+ {}
+ {
+ % ``label end'' vs ``reference beg''.
+ \exp_args:Nno \use:c { @@_check_ #1 :nnF }
+ { \@@_end_lblfmt:n {#2} } {#3}
+ { \bool_set_false:N \l_@@_passedcheck_bool }
+ % ``label end'' vs ``reference end''.
+ \exp_args:Nnoo \use:c { @@_check_ #1 :nnF }
+ { \@@_end_lblfmt:n {#2} }
+ { \@@_end_lblfmt:n {#3} }
+ { \bool_set_false:N \l_@@_passedcheck_bool }
+ }
+ }
% \end{macrocode}
% Handle option \opt{onpage=msg}. This is only granted for tests which
% perform ``within this page'' checks (\opt{above}, \opt{below}, \opt{before},
% \opt{after}) \emph{and} if any of the two by two checks uses a ``within this
% page'' comparison. If both conditions are met, signal.
% \begin{macrocode}
- \seq_if_in:NnT \c_@@_onpage_checks_seq {#1}
- {
- \@@_check_thispage:nnT
- {#2} {#3}
- { \bool_set_true:N \l_@@_onpage_bool }
- \zref@ifrefundefined { \@@_end_lblfmt:n {#3} }
- {
- \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
- {}
- {
- \@@_check_thispage:nnT
- { \@@_end_lblfmt:n {#2} } {#3}
- { \bool_set_true:N \l_@@_onpage_bool }
- }
- }
- {
- \@@_check_thispage:nnT
- {#2} { \@@_end_lblfmt:n {#3} }
- { \bool_set_true:N \l_@@_onpage_bool }
- \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
- {}
- {
- \@@_check_thispage:nnT
- { \@@_end_lblfmt:n {#2} } {#3}
- { \bool_set_true:N \l_@@_onpage_bool }
- \@@_check_thispage:nnT
- { \@@_end_lblfmt:n {#2} }
- { \@@_end_lblfmt:n {#3} }
- { \bool_set_true:N \l_@@_onpage_bool }
- }
- }
- }
- \bool_if:NTF \l_@@_passedcheck_bool
- {
- \bool_if:nT
- {
- \l_@@_msgonpage_bool &&
- \l_@@_onpage_bool
- }
- {
- \@@_message:nnnx { double-check } {#1} {#2}
- { \zref@extractdefault {#3} {page} {'unknown'} }
- }
- }
- {
- \@@_message:nnnx { check-failed } {#1} {#2}
- { \zref@extractdefault {#3} {page} {'unknown'} }
- }
- }
- { \msg_warning:nnn { zref-check } { check-missing } {#1} }
- }
- }
+ \seq_if_in:NnT \c_@@_onpage_checks_seq {#1}
+ {
+ \@@_check_thispage:nnT
+ {#2} {#3}
+ { \bool_set_true:N \l_@@_onpage_bool }
+ \zref@ifrefundefined { \@@_end_lblfmt:n {#3} }
+ {
+ \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
+ {}
+ {
+ \@@_check_thispage:nnT
+ { \@@_end_lblfmt:n {#2} } {#3}
+ { \bool_set_true:N \l_@@_onpage_bool }
+ }
+ }
+ {
+ \@@_check_thispage:nnT
+ {#2} { \@@_end_lblfmt:n {#3} }
+ { \bool_set_true:N \l_@@_onpage_bool }
+ \zref@ifrefundefined { \@@_end_lblfmt:n {#2} }
+ {}
+ {
+ \@@_check_thispage:nnT
+ { \@@_end_lblfmt:n {#2} } {#3}
+ { \bool_set_true:N \l_@@_onpage_bool }
+ \@@_check_thispage:nnT
+ { \@@_end_lblfmt:n {#2} }
+ { \@@_end_lblfmt:n {#3} }
+ { \bool_set_true:N \l_@@_onpage_bool }
+ }
+ }
+ }
+ }
+ }
+ { \msg_warning:nnn { zref-check } { check-missing } {#1} }
+ \bool_if:NTF \l_@@_passedcheck_bool
+ {
+ \bool_if:nT
+ {
+ \l_@@_msgonpage_bool &&
+ \l_@@_onpage_bool
+ }
+ {
+ \@@_message:nnnx { double-check } {#1} {#2}
+ { \zref@extractdefault {#3} {page} {'unknown'} }
+ }
+ }
+ {
+ \bool_if:NTF \l_@@_empty_label_bool
+ { \@@_message:nnnn { empty-label } {#1} { } { } }
+ {
+ \@@_message:nnnx { check-failed } {#1} {#2}
+ { \zref@extractdefault {#3} {page} {'unknown'} }
+ }
+ }
\group_end:
}
\cs_generate_variant:Nn \@@_do_check:nnn { nnV }
@@ -1385,25 +1376,25 @@
\prg_new_protected_conditional:Npnn \@@_check_thispage:nn #1#2 { T , F , TF }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int } &&
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int } &&
% \end{macrocode}
% `0' is the default value of \texttt{abspage}, but this value should not
% happen normally for this property, since even the first page, after it gets
% shipped out, will receive value `1'. So, if we do find `0' here, better
% signal something is wrong. This comment extends to all page number checks.
% \begin{macrocode}
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_otherpage:nn #1#2 { T , F , TF }
@@ -1423,23 +1414,23 @@
\prg_new_protected_conditional:Npnn \@@_check_above:nn #1#2 { F , TF }
{
\group_begin:
- \@@_check_thispage:nnTF {#1} {#2}
- {
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { lblseq } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { lblseq } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } < { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
- }
- { \group_insert_after:N \prg_return_false: }
+ \@@_check_thispage:nnTF {#1} {#2}
+ {
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { lblseq } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { lblseq } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } < { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
+ }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_below:nn #1#2 { F , TF }
@@ -1501,128 +1492,128 @@
\prg_new_protected_conditional:Npnn \@@_check_nextpage:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int + 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int + 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_prevpage:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int - 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int - 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_pagesbefore:nn #1#2 { F , TF }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } < { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } < { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\cs_new_eq:NN \@@_check_ppbefore:nnF \@@_check_pagesbefore:nnF
\prg_new_protected_conditional:Npnn \@@_check_pagesafter:nn #1#2 { F , TF }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } > { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } > { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\cs_new_eq:NN \@@_check_ppafter:nnF \@@_check_pagesafter:nnF
\prg_new_protected_conditional:Npnn \@@_check_pagegap:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \int_abs:n { \l_@@_lbl_int - \l_@@_ref_int } } > { 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \int_abs:n { \l_@@_lbl_int - \l_@@_ref_int } } > { 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_facing:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
% \end{macrocode}
% There exists no ``facing'' page if the document is not twoside.
% \begin{macrocode}
- \legacy_if_p:n { @twoside } &&
+ \legacy_if_p:n { @twoside } &&
% \end{macrocode}
% Now we test ``facing''.
% \begin{macrocode}
+ (
(
- (
- \int_if_odd_p:n { \l_@@_ref_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int - 1 }
- ) ||
- (
- \int_if_even_p:n { \l_@@_ref_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int + 1 }
- )
- ) &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \int_if_odd_p:n { \l_@@_ref_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int - 1 }
+ ) ||
+ (
+ \int_if_even_p:n { \l_@@_ref_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int + 1 }
+ )
+ ) &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
% \end{macrocode}
@@ -1636,21 +1627,21 @@
\prg_new_protected_conditional:Npnn \@@_check_close:nn #1#2 { F , TF }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \int_abs:n { \l_@@_lbl_int - \l_@@_ref_int } }
- <
- { \l_@@_close_range_int + 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { abspage } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { abspage } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \int_abs:n { \l_@@_lbl_int - \l_@@_ref_int } }
+ <
+ { \l_@@_close_range_int + 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_far:nn #1#2 { F }
@@ -1677,14 +1668,14 @@
\prg_new_protected_conditional:Npnn \@@_check_thischap:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int } &&
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int } &&
% \end{macrocode}
% `0' is the default value of \texttt{zc@abschap} property, and means here no
% \cs{chapter} has yet been issued, therefore it cannot be ``this chapter'',
@@ -1693,81 +1684,81 @@
% not require the ``current'' one to exist. This comment extends to all
% chapter checks.
% \begin{macrocode}
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_nextchap:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int + 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int + 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_prevchap:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int - 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int - 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_chapsafter:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } > { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } > { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_chapsbefore:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_int } < { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } < { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
% \end{macrocode}
@@ -1788,18 +1779,18 @@
\prg_new_protected_conditional:Npnn \@@_check_thissec:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int } &&
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int } &&
% \end{macrocode}
% `0' is the default value of \texttt{zc@abssec} property, and means here no
% \cs{section} has yet been issued since its counter has been reset, which
@@ -1808,97 +1799,97 @@
% about the need of the ``current'' section to exist to be able to refer to a
% ``future'' one also holds. This comment extends to all section checks.
% \begin{macrocode}
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_nextsec:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int + 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int + 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_prevsec:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } = { \l_@@_ref_int - 1 } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } = { \l_@@_ref_int - 1 } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_secsafter:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } > { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } > { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
\prg_new_protected_conditional:Npnn \@@_check_secsbefore:nn #1#2 { F }
{
\group_begin:
- \bool_set_true:N \l_@@_integer_bool
- \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
- \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
- \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
- \bool_lazy_and:nnTF
- { \l_@@_integer_bool }
- {
- \int_compare_p:nNn
- { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
- \int_compare_p:nNn
- { \l_@@_lbl_int } < { \l_@@_ref_int } &&
- ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
- ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
- }
- { \group_insert_after:N \prg_return_true: }
- { \group_insert_after:N \prg_return_false: }
+ \bool_set_true:N \l_@@_integer_bool
+ \zrefcheck_get_asint:nnn {#1} { zc@abssec } { \l_@@_lbl_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abssec } { \l_@@_ref_int }
+ \zrefcheck_get_asint:nnn {#1} { zc@abschap } { \l_@@_lbl_b_int }
+ \zrefcheck_get_asint:nnn {#2} { zc@abschap } { \l_@@_ref_b_int }
+ \bool_lazy_and:nnTF
+ { \l_@@_integer_bool }
+ {
+ \int_compare_p:nNn
+ { \l_@@_lbl_b_int } = { \l_@@_ref_b_int } &&
+ \int_compare_p:nNn
+ { \l_@@_lbl_int } < { \l_@@_ref_int } &&
+ ! \int_compare_p:nNn { \l_@@_lbl_int } = { 0 } &&
+ ! \int_compare_p:nNn { \l_@@_ref_int } = { 0 }
+ }
+ { \group_insert_after:N \prg_return_true: }
+ { \group_insert_after:N \prg_return_false: }
\group_end:
}
% \end{macrocode}
@@ -1906,6 +1897,17 @@
%
%
%
+% \subsubsection{Manual}
+%
+% \begin{macro}{ \@@_check_manual:nn }
+% \begin{macrocode}
+\prg_new_protected_conditional:Npnn \@@_check_manual:nn #1#2 { F }
+ { \prg_return_false: }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \section{\pkg{zref-clever} integration}
%
%