From 07be1cca1829ee33428e3f5ce0989732402458e5 Mon Sep 17 00:00:00 2001 From: Ulrike Fischer Date: Mon, 4 Nov 2024 18:11:35 +0100 Subject: [PATCH 01/14] Fix a spurious space in the cleveref firstaid (#1538) * correct spurious space in cleverref firstaid * update hook tests --- base/testfiles-lthooks/ltcmdhooks-001.tlg | 2 +- base/testfiles-lthooks/lthooks-000.tlg | 2 +- base/testfiles-lthooks/lthooks-001.tlg | 4 +-- base/testfiles-lthooks/lthooks-002.tlg | 4 +-- base/testfiles-lthooks/lthooks-003.tlg | 2 +- base/testfiles-lthooks/lthooks-004.tlg | 2 +- base/testfiles-lthooks/lthooks-005.tlg | 2 +- base/testfiles-lthooks/lthooks-006.tlg | 2 +- base/testfiles-lthooks/lthooks-007.tlg | 4 +-- base/testfiles-lthooks/lthooks-008.tlg | 2 +- base/testfiles-lthooks/lthooks-009.tlg | 2 +- base/testfiles-lthooks/lthooks-011.tlg | 8 ++--- base/testfiles-lthooks/lthooks-013.tlg | 2 +- base/testfiles-lthooks/lthooks-021.tlg | 2 +- base/testfiles-lthooks/lthooks-legacy.tlg | 2 +- base/testfiles-lthooks2/lthooks2-002.tlg | 2 +- base/testfiles-lthooks2/lthooks2-005.tlg | 4 +-- required/firstaid/changes.txt | 4 +++ .../latex2e-first-aid-for-external-files.dtx | 7 ++-- .../firstaid-cleveref-1393.luatex.tlg | 33 +++++++++++++++---- .../testfiles/firstaid-cleveref-1393.lvt | 6 ++++ .../testfiles/firstaid-cleveref-1393.tlg | 28 ++++++++++++---- 22 files changed, 87 insertions(+), 39 deletions(-) diff --git a/base/testfiles-lthooks/ltcmdhooks-001.tlg b/base/testfiles-lthooks/ltcmdhooks-001.tlg index bcd76d745..e7741b43f 100644 --- a/base/testfiles-lthooks/ltcmdhooks-001.tlg +++ b/base/testfiles-lthooks/ltcmdhooks-001.tlg @@ -258,7 +258,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after cmd/foo/before -> before 1 before 2 \__hook_toplevel cmd/foo/before {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}\__hook_next cmd/foo/before {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9} diff --git a/base/testfiles-lthooks/lthooks-000.tlg b/base/testfiles-lthooks/lthooks-000.tlg index 41bf821f8..fcc64bf6e 100644 --- a/base/testfiles-lthooks/lthooks-000.tlg +++ b/base/testfiles-lthooks/lthooks-000.tlg @@ -182,7 +182,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-000.aux. diff --git a/base/testfiles-lthooks/lthooks-001.tlg b/base/testfiles-lthooks/lthooks-001.tlg index 0410bfb64..b6b9ed65f 100644 --- a/base/testfiles-lthooks/lthooks-001.tlg +++ b/base/testfiles-lthooks/lthooks-001.tlg @@ -189,7 +189,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobar\__hook_toplevel xxx \__hook_next xxx LaTeX hooks Warning: Cannot remove chunk 'label3' from hook 'xxx' because it does not exist in that hook. @@ -439,7 +439,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo\__hook_toplevel xxx \__hook_next xxx The hook xxx contains the rules: diff --git a/base/testfiles-lthooks/lthooks-002.tlg b/base/testfiles-lthooks/lthooks-002.tlg index 60889cf51..a7b87d723 100644 --- a/base/testfiles-lthooks/lthooks-002.tlg +++ b/base/testfiles-lthooks/lthooks-002.tlg @@ -189,7 +189,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobar\__hook_toplevel xxx \__hook_next xxx LaTeX hooks Warning: Cannot remove chunk 'label3' from hook 'xxx' because it does not exist in that hook. @@ -441,7 +441,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo\__hook_toplevel xxx \__hook_next xxx The hook xxx contains the rules: diff --git a/base/testfiles-lthooks/lthooks-003.tlg b/base/testfiles-lthooks/lthooks-003.tlg index b12450647..4d973492d 100644 --- a/base/testfiles-lthooks/lthooks-003.tlg +++ b/base/testfiles-lthooks/lthooks-003.tlg @@ -299,6 +299,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo9 foo3 foo2 foo7 foo4 foo5 foo8 foo6\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-004.tlg b/base/testfiles-lthooks/lthooks-004.tlg index 7464a6169..3f361be05 100644 --- a/base/testfiles-lthooks/lthooks-004.tlg +++ b/base/testfiles-lthooks/lthooks-004.tlg @@ -274,6 +274,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo4\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-005.tlg b/base/testfiles-lthooks/lthooks-005.tlg index af4a34d59..b9f98b801 100644 --- a/base/testfiles-lthooks/lthooks-005.tlg +++ b/base/testfiles-lthooks/lthooks-005.tlg @@ -306,6 +306,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo9 foo3 foo2 foo7 foo4 foo5 foo8 foo6\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-006.tlg b/base/testfiles-lthooks/lthooks-006.tlg index 370ea9840..ff2011d20 100644 --- a/base/testfiles-lthooks/lthooks-006.tlg +++ b/base/testfiles-lthooks/lthooks-006.tlg @@ -260,6 +260,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo3 foo2\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-007.tlg b/base/testfiles-lthooks/lthooks-007.tlg index 527716cde..cc1281d18 100644 --- a/base/testfiles-lthooks/lthooks-007.tlg +++ b/base/testfiles-lthooks/lthooks-007.tlg @@ -262,7 +262,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo3\__hook_toplevel xxx \__hook_next xxx Update code for hook 'para/before' on input line ...: @@ -453,6 +453,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo3\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-008.tlg b/base/testfiles-lthooks/lthooks-008.tlg index 601fb40e5..dd09a291a 100644 --- a/base/testfiles-lthooks/lthooks-008.tlg +++ b/base/testfiles-lthooks/lthooks-008.tlg @@ -263,7 +263,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-008.aux. diff --git a/base/testfiles-lthooks/lthooks-009.tlg b/base/testfiles-lthooks/lthooks-009.tlg index 08336991d..9e6ac770a 100644 --- a/base/testfiles-lthooks/lthooks-009.tlg +++ b/base/testfiles-lthooks/lthooks-009.tlg @@ -189,7 +189,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-009.aux. diff --git a/base/testfiles-lthooks/lthooks-011.tlg b/base/testfiles-lthooks/lthooks-011.tlg index a2e3693d4..509771428 100644 --- a/base/testfiles-lthooks/lthooks-011.tlg +++ b/base/testfiles-lthooks/lthooks-011.tlg @@ -188,7 +188,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo\__hook_toplevel xxx \__hook_next xxx **** Add to hook xxx (rear) on input line ... <- bar @@ -381,7 +381,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobar\__hook_toplevel xxx \__hook_next xxx **** Add to hook xxx (labels) on input line ... <- baz @@ -576,7 +576,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobarbaz\__hook_toplevel xxx \__hook_next xxx **** Add to hook xxx (return) on input line ... <- boom @@ -773,6 +773,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobarbazboom\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-013.tlg b/base/testfiles-lthooks/lthooks-013.tlg index bc2bae1be..cfd5b3b9d 100644 --- a/base/testfiles-lthooks/lthooks-013.tlg +++ b/base/testfiles-lthooks/lthooks-013.tlg @@ -243,7 +243,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after env/itemize/begin -> \typeout {env itemize first}\__hook_toplevel env/itemize/begin \__hook_next env/itemize/begin diff --git a/base/testfiles-lthooks/lthooks-021.tlg b/base/testfiles-lthooks/lthooks-021.tlg index 6b6bb6b0a..282cbc898 100644 --- a/base/testfiles-lthooks/lthooks-021.tlg +++ b/base/testfiles-lthooks/lthooks-021.tlg @@ -182,7 +182,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-021.aux. diff --git a/base/testfiles-lthooks/lthooks-legacy.tlg b/base/testfiles-lthooks/lthooks-legacy.tlg index e8a1aa914..db2099805 100644 --- a/base/testfiles-lthooks/lthooks-legacy.tlg +++ b/base/testfiles-lthooks/lthooks-legacy.tlg @@ -207,7 +207,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after legacy defaultfamily on input line ... diff --git a/base/testfiles-lthooks2/lthooks2-002.tlg b/base/testfiles-lthooks2/lthooks2-002.tlg index 482c61466..bc6183761 100644 --- a/base/testfiles-lthooks2/lthooks2-002.tlg +++ b/base/testfiles-lthooks2/lthooks2-002.tlg @@ -208,7 +208,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after (lthooks2-002.aux) diff --git a/base/testfiles-lthooks2/lthooks2-005.tlg b/base/testfiles-lthooks2/lthooks2-005.tlg index 5efeb0def..181a618e4 100644 --- a/base/testfiles-lthooks2/lthooks2-005.tlg +++ b/base/testfiles-lthooks2/lthooks2-005.tlg @@ -177,7 +177,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after **** Add to hook some-hook (other-package) on input line ... <- code from other-package, Update code for hook 'para/before' on input line ...: @@ -364,6 +364,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter } \fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after some-hook -> code to run when other-package is loaded,code from other-package,\__hook_toplevel some-hook \__hook_next some-hook diff --git a/required/firstaid/changes.txt b/required/firstaid/changes.txt index 5bfe7f1a5..3cdb776ef 100644 --- a/required/firstaid/changes.txt +++ b/required/firstaid/changes.txt @@ -1,3 +1,7 @@ +2024-11-04 Ulrike Fischer + + * latex2e-first-aid-for-external-files.dtx: correct spurious space + 2024-10-16 Ulrike Fischer * latex2e-first-aid-for-external-files.dtx: extend firstaid for cleveref diff --git a/required/firstaid/latex2e-first-aid-for-external-files.dtx b/required/firstaid/latex2e-first-aid-for-external-files.dtx index 68877bc24..111c88c21 100644 --- a/required/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/required/firstaid/latex2e-first-aid-for-external-files.dtx @@ -111,8 +111,8 @@ % \end{macrocode} % % \begin{macrocode} -\def\LaTeXFirstAidDate{2024/10/16} -\def\LaTeXFirstAidVersion{v1.1g} +\def\LaTeXFirstAidDate{2024/11/04} +\def\LaTeXFirstAidVersion{v1.1h} % \end{macrocode} % % \begin{macrocode} @@ -738,12 +738,13 @@ } % \end{macrocode} % we test if \cs{@currentcounter} is empty for unnumbered sections +% \changes{v1.1h}{2024/11/01}{fix spurious space} % \begin{macrocode} \AddToHook{label}[firstaid/cleveref] {\ifx \@currentcounter\@empty \else - \firstaid@cref@updatelabeldata{\@currentcounter} + \firstaid@cref@updatelabeldata{\@currentcounter}% \fi} }% } diff --git a/required/firstaid/testfiles/firstaid-cleveref-1393.luatex.tlg b/required/firstaid/testfiles/firstaid-cleveref-1393.luatex.tlg index d3836f32b..db6faae49 100644 --- a/required/firstaid/testfiles/firstaid-cleveref-1393.luatex.tlg +++ b/required/firstaid/testfiles/firstaid-cleveref-1393.luatex.tlg @@ -10,13 +10,13 @@ Completed box being shipped out [1] ....\hbox(0.0+0.0)x345.0, direction TLT ..\glue 25.0 ..\glue(\lineskip) 0.0 -..\vbox(550.0+0.0)x345.0, glue set 458.00662fil, direction TLT +..\vbox(550.0+0.0)x345.0, glue set 446.0079fil, direction TLT ...\write-{} ...\special{} ...\glue(\topskip) 1.60004 -...\hbox(8.39996+13.94444)x345.0, glue set 164.83333fill, direction TLT +...\hbox(8.39996+13.94444)x345.0, glue set 166.5fill, direction TLT ....\glue(\tabskip) 0.0 plus 1.0fill -....\hbox(8.39996+13.94444)x15.33334, direction TLT +....\hbox(8.39996+13.94444)x12.00002, direction TLT .....\rule(8.39996+3.60004)x0.0 .....\glue 6.0 .....\glue 0.0 plus 1.0fil @@ -58,7 +58,6 @@ Completed box being shipped out [1] .....\glue 6.0 .....\hbox(0.0+0.0)x0.0, direction TLT .....\write1{\@writefile{lot}{\protect \contentsline {table}{\protect \numberline {1}{a caption}}{\thepage }{}\protected@file@percent }} -.....\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111 .....\write1{\newlabel{tab:long}{{1}{\thepage }{}{table.1}{}}} .....\write1{\newlabel{tab:long@cref}{{[table][1][]1}{[1][1][]\thepage }{}{}{}}} ....\glue(\tabskip) 0.0 plus 1.0fill @@ -114,7 +113,7 @@ Completed box being shipped out [1] ...\glue(\parskip) 0.0 plus 1.0 ...\glue(\parskip) 0.0 ...\glue(\baselineskip) 5.05556 -...\hbox(6.94444+1.94444)x345.0, glue set 207.18275fil, direction TLT +...\hbox(6.94444+1.94444)x345.0, glue set 211.7827fil, direction TLT ....\localpar .....\localinterlinepenalty=0 .....\localbrokenpenalty=0 @@ -179,7 +178,6 @@ Completed box being shipped out [1] ....\OT1/cmr/m/it/10 n ....\OT1/cmr/m/it/10 . ....\glue(\spaceskip) 4.59995 plus 4.59998 minus 0.34073 -....\glue(\spaceskip) 4.59995 plus 4.59998 minus 0.34073 ....\write1{\newlabel{thm_defn}{{0.1}{\thepage }{}{target*.2}{}}} ....\penalty 10000 ....\glue 0.0 @@ -250,6 +248,29 @@ Completed box being shipped out [1] ....\penalty 10000 ....\glue(\parfillskip) 0.0 plus 1.0fil ....\glue(\rightskip) 0.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.05556 +...\hbox(6.94444+0.0)x345.0, glue set 299.44437fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(0.0+0.0)x15.0, direction TLT +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 b +....\kern0.27779 (font) +....\OT1/cmr/m/n/10 c +....\write1{\newlabel{test}{{1}{\thepage }{}{section.1}{}}} +....\write1{\newlabel{test@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 b +....\kern0.27779 (font) +....\OT1/cmr/m/n/10 c +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 ...\glue 0.0 plus 1.0fil ...\glue 0.0 ...\glue 0.0 plus 0.0001fil diff --git a/required/firstaid/testfiles/firstaid-cleveref-1393.lvt b/required/firstaid/testfiles/firstaid-cleveref-1393.lvt index 0f57f8abd..5138a331c 100644 --- a/required/firstaid/testfiles/firstaid-cleveref-1393.lvt +++ b/required/firstaid/testfiles/firstaid-cleveref-1393.lvt @@ -21,4 +21,10 @@ A definition. \end{defn} The reference is \cref{thm_defn}. + +%from https://tex.stackexchange.com/q/730126/2388 +\refstepcounter{section} + +abc\label{test}abc + \end{document} diff --git a/required/firstaid/testfiles/firstaid-cleveref-1393.tlg b/required/firstaid/testfiles/firstaid-cleveref-1393.tlg index 48af01872..6611b1c02 100644 --- a/required/firstaid/testfiles/firstaid-cleveref-1393.tlg +++ b/required/firstaid/testfiles/firstaid-cleveref-1393.tlg @@ -10,13 +10,13 @@ Completed box being shipped out [1] ....\hbox(0.0+0.0)x345.0 ..\glue 25.0 ..\glue(\lineskip) 0.0 -..\vbox(550.0+0.0)x345.0, glue set 458.00664fil +..\vbox(550.0+0.0)x345.0, glue set 446.00792fil ...\write-{} ...\special{} ...\glue(\topskip) 1.60004 -...\hbox(8.39996+13.94444)x345.0, glue set 164.83333fill +...\hbox(8.39996+13.94444)x345.0, glue set 166.5fill ....\glue(\tabskip) 0.0 plus 1.0fill -....\hbox(8.39996+13.94444)x15.33334 +....\hbox(8.39996+13.94444)x12.00002 .....\rule(8.39996+3.60004)x0.0 .....\glue 6.0 .....\glue 0.0 plus 1.0fil @@ -54,7 +54,6 @@ Completed box being shipped out [1] .....\glue 6.0 .....\hbox(0.0+0.0)x0.0 .....\write1{\@writefile{lot}{\protect \contentsline {table}{\protect \numberline {1}{a caption}}{\thepage }{}\protected@file@percent }} -.....\glue 3.33333 plus 1.66666 minus 1.11111 .....\write1{\newlabel{tab:long}{{1}{\thepage }{}{table.1}{}}} .....\write1{\newlabel{tab:long@cref}{{[table][1][]1}{[1][1][]\thepage }{}{}{}}} ....\glue(\tabskip) 0.0 plus 1.0fill @@ -99,7 +98,7 @@ Completed box being shipped out [1] ...\glue(\parskip) 0.0 plus 1.0 ...\glue(\parskip) 0.0 ...\glue(\baselineskip) 5.05556 -...\hbox(6.94444+1.94444)x345.0, glue set 207.18275fil +...\hbox(6.94444+1.94444)x345.0, glue set 211.7827fil ....\hbox(6.94444+0.0)x73.39548 .....\glue 0.0 .....\glue 0.0 @@ -135,7 +134,6 @@ Completed box being shipped out [1] ....\OT1/cmr/m/it/10 n ....\OT1/cmr/m/it/10 . ....\glue 4.59995 plus 4.59998 minus 0.34073 -....\glue 4.59995 plus 4.59998 minus 0.34073 ....\write1{\newlabel{thm_defn}{{0.1}{\thepage }{}{target*.2}{}}} ....\penalty 10000 ....\glue 0.0 @@ -185,6 +183,24 @@ Completed box being shipped out [1] ....\penalty 10000 ....\glue(\parfillskip) 0.0 plus 1.0fil ....\glue(\rightskip) 0.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.05556 +...\hbox(6.94444+0.0)x345.0, glue set 299.44437fil +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 b +....\kern0.27779 +....\OT1/cmr/m/n/10 c +....\write1{\newlabel{test}{{1}{\thepage }{}{section.1}{}}} +....\write1{\newlabel{test@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 b +....\kern0.27779 +....\OT1/cmr/m/n/10 c +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 ...\glue 0.0 plus 1.0fil ...\glue 0.0 ...\glue 0.0 plus 0.0001fil From 706799b46cb6b0c467f4db7dba018b8fc322c15d Mon Sep 17 00:00:00 2001 From: Frank Mittelbach Date: Fri, 22 Nov 2024 10:48:55 +0100 Subject: [PATCH 02/14] Hotfix declareencodingsubset (#1555) * hotfix to allow \DeclareEncodingsubset in .fd files * working through expected differences ... part 1 * ... and part 2 * ... and part 3 * Update base/ltfssbas.dtx Co-authored-by: Joseph Wright --------- Co-authored-by: Joseph Wright --- base/changes.txt | 24 ++- base/cmfonts.fdd | 21 ++- base/fontdef.dtx | 48 ++++-- base/ltfssaxes.dtx | 9 +- base/ltfssbas.dtx | 137 ++++++++++++++- base/ltfssdcl.dtx | 8 +- base/ltfssini.dtx | 3 +- base/ltfsstrc.dtx | 3 +- base/lttextcomp.dtx | 158 +++--------------- .../testfiles-legacy/github-1333-rollback.tlg | 2 +- base/testfiles-legacy/tlb-textcomp-005.tlg | 2 - base/testfiles-legacy/tlb-textcomp-006.tlg | 2 - base/testfiles-legacy/tlb-textcomp-007.tlg | 2 - base/testfiles/github-0367.tlg | 1 - base/testfiles/github-1336.tlg | 2 +- base/testfiles/tlb1214.tlg | 2 - base/testfiles/tlb1503.tlg | 1 - 17 files changed, 253 insertions(+), 172 deletions(-) diff --git a/base/changes.txt b/base/changes.txt index 6321cf6fd..a4edef9e6 100644 --- a/base/changes.txt +++ b/base/changes.txt @@ -10,6 +10,28 @@ not part of the distribution. All changes above are only part of the development branch for the next release. ================================================================================ +######################### +# 2024-11-01 PL1 Release +######################### + +2024-11-19 Frank Mittelbach + + * lttextcomp.dtx: + Allow using \DeclareEncodingSubset in the document body so that it + can be placed into .fd file (gh/1518) + + * cmfonts.fdd: + Add \DeclareEncodingSubset declarations in the .fd files for + ts1cmr, ts1cmss, ts1cmtt, and ts1cmvtt (gh/1518) + + * ltfssbas.dtx: + Moved \DeclareEncodingSubset and \CheckEncodingSubset from + lttextcomp.dtx into this file + + * fontdef.dtx: + Preload ts1cmr.fd, ts1cmss.fd, and ts1cmtt in the kernel + Drop unnessary \DeclareFontSubstitution declarations + ######################### # 2024-11-01 Release ######################### @@ -42,7 +64,7 @@ All changes above are only part of the development branch for the next release. 2024-10-22 Ulrike Fischer * ltshipout.dtx: correct documentation (gh/1470). - + 2024-10-21 Matthew Bertucci * lthooks.dtx Define \IfHookEmptyT, \IfHookEmptyF diff --git a/base/cmfonts.fdd b/base/cmfonts.fdd index 556db5be8..ed6f3d70e 100644 --- a/base/cmfonts.fdd +++ b/base/cmfonts.fdd @@ -67,7 +67,7 @@ %<*driver, > \ProvidesFile{cmfonts.drv} % - [2023/04/13 v2.5m Standard LaTeX font definitions] + [2024/11/19 v2.5n Standard LaTeX font definitions] % %<*driver> \documentclass{ltxdoc} @@ -751,6 +751,11 @@ \EC@family{TS1}{cmr}{bx}{sl}{tcbl} %\EC@family{TS1}{cmr}{m}{ui}{tcu} %\EC@family{TS1}{cmr}{m}{ui}{tcui} +% \end{macrocode} +% +% \changes{v2.5n}{2024/11/19}{Add \cs{DeclareEncodingSubset} declaration} +% \begin{macrocode} +\DeclareEncodingSubset{TS1}{cmr}{0} % %<*TS1cmss> \DeclareFontFamily{TS1}{cmss}{\hyphenchar\font\m@ne} @@ -760,12 +765,22 @@ \EC@family{TS1}{cmss}{bx}{n}{tcsx} \EC@family{TS1}{cmss}{bx}{it}{tcso} \EC@family{TS1}{cmss}{bx}{sl}{tcso} +% \end{macrocode} +% +% \changes{v2.5n}{2024/11/19}{Add \cs{DeclareEncodingSubset} declaration} +% \begin{macrocode} +\DeclareEncodingSubset{TS1}{cmss}{0} % %<*TS1cmtt> \DeclareFontFamily{TS1}{cmtt}{\hyphenchar\font\m@ne} \EC@ttfamily{TS1}{cmtt}{m}{n}{tctt} \EC@ttfamily{TS1}{cmtt}{m}{sl}{tcst} \EC@ttfamily{TS1}{cmtt}{m}{it}{tcit} +% \end{macrocode} +% +% \changes{v2.5n}{2024/11/19}{Add \cs{DeclareEncodingSubset} declaration} +% \begin{macrocode} +\DeclareEncodingSubset{TS1}{cmtt}{0} % % \end{macrocode} % Again the italic shape is only available with release 1.3. @@ -774,6 +789,10 @@ \DeclareFontFamily{TS1}{cmvtt}{} \EC@ttfamily{TS1}{cmvtt}{m}{n}{tcvt} \EC@ttfamily{TS1}{cmvtt}{m}{it}{tcvi} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareEncodingSubset{TS1}{cmvtt}{0} % % \end{macrocode} % diff --git a/base/fontdef.dtx b/base/fontdef.dtx index ae11766ca..ad66ed411 100644 --- a/base/fontdef.dtx +++ b/base/fontdef.dtx @@ -40,7 +40,7 @@ %\ProvidesFile{fontdef.drv} % \fi % \ProvidesFile{fontdef.dtx} - [2024/09/03 v3.0k LaTeX Kernel + [2024/11/19 v3.0l LaTeX Kernel % \iffalse % (Text font setup) % (Math font setup) @@ -260,7 +260,7 @@ \input {omsenc.def} % \end{macrocode} % Documents containing a lot of accented characters should really -% be using T1 fonts. We therefore load this last so that T1 encoding +% be using T1 fonts. We therefore load this after OT1 so that T1 encoding % specific commands are executed as fast as possible (encoding % files are no longer reloaded in \texttt{fontenc}. % \changes{v3.0f}{2020/01/25}{Load t1enc.def last (gh/255)} @@ -270,7 +270,7 @@ % \end{macrocode} % % \begin{macrocode} -\input{ts1enc.def} +\input {ts1enc.def} % \end{macrocode} % % @@ -349,7 +349,15 @@ \DeclareFontEncodingDefaults{}{} % \end{macrocode} % -% Then we define the default substitution for every encoding. +% The default font substitution for an encoding is defined in the +% corresponding \texttt{...enc.def} file so for \texttt{OT1}, +% \texttt{T1}, and \texttt{TS1} this is already defined. +% \begin{macrocode} +%\DeclareFontSubstitution{T1}{cmr}{m}{n} +%\DeclareFontSubstitution{OT1}{cmr}{m}{n} +%\DeclareFontSubstitution{TS1}{cmr}{m}{n} +% \end{macrocode} +% % This release of \LaTeXe{} assumes that the ec fonts are % available. It is possible to change this to point to some other % font family (e.g., Times with the appropriate encoding if it is @@ -358,10 +366,6 @@ % sites. The substitution defaults can all be changed without % losing portability as long as there are font shape definitions % for the selected substitutions. -% \begin{macrocode} -\DeclareFontSubstitution{T1}{cmr}{m}{n} -\DeclareFontSubstitution{OT1}{cmr}{m}{n} -% \end{macrocode} % % For every encoding declaration, \LaTeXe{} will try to verify that % the given substitution information makes sense, i.e.~that it is @@ -391,6 +395,12 @@ \nfss@catcodes \input {t1cmr.fd} \input {ot1cmr.fd} +% \end{macrocode} +% +% \changes{v3.0l}{2024/11/19}{Preload the TS1 \texttt{ts1cmr.fd} file +% in all engines} +% \begin{macrocode} +\input {ts1cmr.fd} \endgroup % \end{macrocode} % @@ -411,19 +421,29 @@ \input {t1cmtt.fd} \input {ot1cmss.fd} \input {ot1cmtt.fd} +% \end{macrocode} +% +% \changes{v3.0l}{2024/11/19}{Preload the TS1 \texttt{.fd} file} +% \begin{macrocode} +\input {ts1cmss.fd} +\input {ts1cmtt.fd} \endgroup % \end{macrocode} % % \changes{v3.0j}{2024/06/24}{load ts1 cmr fd file in Unicode engines} % Even though Unicode engines default to |lm| load |ts1cmr| % as this may be used for fallback for TS1 encoding. +% +% We now load it in all engines above, so the next lines are no longer +% necessary. We keep them here if we stop loading other fd files in +% Unicode engines. % \begin{macrocode} -\ifx\Umathcode\@undefined\else -\begingroup -\nfss@catcodes -\input {ts1cmr.fd} -\endgroup -\fi +%\ifx\Umathcode\@undefined\else +%\begingroup +%\nfss@catcodes +%\input {ts1cmr.fd} +%\endgroup +%\fi % \end{macrocode} % % Even with all the precautions it is still possible that NFSS will diff --git a/base/ltfssaxes.dtx b/base/ltfssaxes.dtx index 8b5014a4c..867847228 100644 --- a/base/ltfssaxes.dtx +++ b/base/ltfssaxes.dtx @@ -35,7 +35,7 @@ % % \ProvidesFile{ltfssaxes.dtx} - [2024/02/08 v1.0i LaTeX Kernel (NFSS Axes handing)] + [2024/11/19 v1.0j LaTeX Kernel (NFSS Axes handing)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -70,10 +70,17 @@ % % \changes{v1.0h}{2020/12/04}{Reorganized the rollback data} % +% \begin{macrocode} +%<2ekernel>\message{NFSS axes,} +% \end{macrocode} +% % Everything in the this file got introduced 2020/02/02, so we use large rollback % chunks, only interrupted if necessary. % \begin{macrocode} %<*2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} %\IncludeInRelease{2020/02/02}% % {\DeclareFontSeriesChangeRule}{Series change rules}% % \end{macrocode} diff --git a/base/ltfssbas.dtx b/base/ltfssbas.dtx index 387214e94..4e376d376 100644 --- a/base/ltfssbas.dtx +++ b/base/ltfssbas.dtx @@ -35,7 +35,7 @@ % % \ProvidesFile{ltfssbas.dtx} - [2024/06/17 v3.2m LaTeX Kernel (NFSS Basic Macros)] + [2024/11/19 v3.2n LaTeX Kernel (NFSS Basic Macros)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -157,12 +157,16 @@ % We define a number % of macros that will be used later. % +% \begin{macrocode} +%<*2ekernel> +\message{NFSS base,} +% \end{macrocode} +% % % \begin{macro}{\@nomath} % |\@nomath| is used by most macros that will have no effect % in math mode. It issues a warning message. % \begin{macrocode} -%<*2ekernel> \def\@nomath#1{\relax\ifmmode \@font@warning{Command \noexpand#1invalid in math mode}\fi} % \end{macrocode} @@ -593,6 +597,135 @@ % \end{macro} % % +% +% +% \begin{macro}{\DeclareEncodingSubset} +% +% The declaration takes 3 mandatory arguments: an \emph{encoding} +% for which a subsetting is wanted (currently always \texttt{TS1}, +% and most likely forever), the \emph{font family} for which we +% declare the subset and finally the \emph{subset} number, with a value between +% \texttt{0} (all of the encoding is supported) and \texttt{9} (many +% glyphs are missing). +% +% For \texttt{TS1} the numbers have been chosen in a way that most +% fonts can be fairly correctly categorized, but the default +% settings are always conservative, that is they may claim that +% fewer glyphs are supported than there actually are. +% +% As these days many font families are set up to end in \texttt{-LF} +% (lining figures), \texttt{-OsF} (oldstyle figures), etc.\ the +% declaration supports a shortcut: if the \emph{font family} name +% ends in \texttt{-*} then the star gets replaced by these common +% ending, e.g., +%\begin{verbatim} +% \DeclareEncodingSubset{TS1}{Alegreya-*}{2} +%\end{verbatim} +% is the same as writing +%\begin{verbatim} +% \DeclareEncodingSubset{TS1}{Alegreya-LF}{2} +% \DeclareEncodingSubset{TS1}{Alegreya-OsF}{2} +% \DeclareEncodingSubset{TS1}{Alegreya-TLF}{2} +% \DeclareEncodingSubset{TS1}{Alegreya-TOsF}{2} +%\end{verbatim} +% If only some are needed then one can define them individually but +% in many cases all four are wanted, hence the shortcut. +% +% +% The coding of the declaration has no error checking as it is +% mostly for internal use. +% \begin{macrocode} +\def\DeclareEncodingSubset#1#2{% + \DeclareEncodingSubset@aux{#1}#2*\DeclareEncodingSubset@aux +} +% \end{macrocode} +% +% \begin{macrocode} +\def\DeclareEncodingSubset@aux#1#2*#3\DeclareEncodingSubset@aux#4{% +% \end{macrocode} +% if \verb=#3= is empty then there was no star, otherwise we +% define all four variants. +% \begin{macrocode} + \expandafter\ifx\expandafter X\detokenize{#3}X% + \@DeclareEncodingSubset{#1}{#2}{#4}% + \else + \@DeclareEncodingSubset{#1}{#2LF}{#4}% + \@DeclareEncodingSubset{#1}{#2TLF}{#4}% + \@DeclareEncodingSubset{#1}{#2OsF}{#4}% + \@DeclareEncodingSubset{#1}{#2TOsF}{#4}% + \fi +} +% \end{macrocode} +% +% The subset info is stored in a command with the name +% \texttt{\bslash}\emph{family}\texttt{:}\emph{subset} so if that +% already exists we change otherwise declare a subset. +% \begin{macrocode} +\def\@DeclareEncodingSubset#1#2#3{% + \@ifundefined{#1:#2}% + {\@font@info{Setting #2 sub-encoding to #1/#3}}% + {\@font@info{Changing #2 sub-encoding to #1/#3}}% +% \end{macrocode} +% This declaration should be usable in \texttt{.fd} files and +% therefore has to make its definition globally, because such files +% can get loaded in random places. +% \changes{v1.0g}{2022/08/07}{Make global declaration (gh/905)} +% \begin{macrocode} + \global\@namedef{#1:#2}{#3}} +% \end{macrocode} +% \end{macro} +% +% +% +% +% \begin{macro}{\CheckEncodingSubset} +% The command |\CheckEncodingSubset| will check if the current font +% family has the right encoding subset to typeset a certain +% command. It takes five arguments as follows: +% first argument is either |\UseTextSymbol|, |\UseTextAccent| +% depending on whether or not the symbol is a text symbol or a text +% accent. + +% The second argument is the encoding from which this symbol should +% be fetched. +% +% The third argument is either a fake accessor command or an error +% message. the code in that argument (if ever executed) receives +% two arguments: |#2| and |#5| of |\CheckEncodingSubset|. +% +% Argument four is the subset encoding id to test against: if this +% value is higher than the subset id of the current font family +% then we typeset the symbol, i.e., execute |#1{#2}#5| otherwise +% it runs |#3#5|, e.g., to produce an error message or fake the +% glyph somehow. +% +% Argument five is the symbol or accent command that is being +% checked. +% +% For usage examples see definitions in \texttt{lttextcomp.dtx}. +% +% \begin{macrocode} +\def\CheckEncodingSubset#1#2#3#4#5{% + \ifnum #4>% + \expandafter\ifx\csname #2:\f@family\endcsname\relax + 0\csname #2:?\endcsname + \else + \csname #2:\f@family\endcsname + \fi + \relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {#1{#2}}{#3}% + #5% +} +% \end{macrocode} +% \end{macro} +% +% +% +% % \begin{macro}{\DeclarePreloadSizes} % \begin{macrocode} \def\DeclarePreloadSizes#1#2#3#4#5{% diff --git a/base/ltfssdcl.dtx b/base/ltfssdcl.dtx index 32f9eedf1..c88fe6e1b 100644 --- a/base/ltfssdcl.dtx +++ b/base/ltfssdcl.dtx @@ -36,7 +36,7 @@ % % \ProvidesFile{ltfssdcl.dtx} - [2022/09/20 v3.1b LaTeX Kernel (NFSS Declarative Interface)] + [2024/11/19 v3.1c LaTeX Kernel (NFSS Declarative Interface)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -110,6 +110,11 @@ % \cs{@DeclareMathDelimiter}} % \changes{v2.1c}{1994/03/13}{add 2ekernel module to omit repeated code} % +% \begin{macrocode} +%<*2ekernel> +\message{NFSS declarative interface,} +% \end{macrocode} +% % % \begin{macro}{\in@} % \changes{v3.0m}{2009/10/20}{More robust thanks to Heiko.} @@ -121,7 +126,6 @@ % contain braces nor |#| (more precisely, tokens of category % code 1,~2, or~6). % \begin{macrocode} -%<*2ekernel> \def\in@#1#2% {% \begingroup diff --git a/base/ltfssini.dtx b/base/ltfssini.dtx index 6b0ba9181..79e854691 100644 --- a/base/ltfssini.dtx +++ b/base/ltfssini.dtx @@ -36,7 +36,7 @@ % % \ProvidesFile{ltfssini.dtx} - [2024/08/28 v3.2i LaTeX Kernel (NFSS Initialisation)] + [2024/11/19 v3.2j LaTeX Kernel (NFSS Initialisation)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -142,6 +142,7 @@ % % \begin{macrocode} %<*2ekernel> +\message{NFSS initialization,} % \end{macrocode} % % \subsection{Providing math \emph{versions}} diff --git a/base/ltfsstrc.dtx b/base/ltfsstrc.dtx index 4f0e43021..de9518f4e 100644 --- a/base/ltfsstrc.dtx +++ b/base/ltfsstrc.dtx @@ -37,7 +37,7 @@ % [2020/12/22 v3.0n Standard LaTeX package (font tracing)] % \fi % \ProvidesFile{ltfsstrc.dtx} -% [2024/02/08 v3.0o LaTeX Kernel (NFSS tracing)] +% [2024/11/19 v3.0p LaTeX Kernel (NFSS tracing)] % % \iffalse %<+checkmem>\CHECKMEM @@ -212,6 +212,7 @@ % {Check if \cs{tracingfonts} defined removed again.} % \begin{macrocode} %<*2ekernel> +\message{NFSS tracing,} \def\tracingfonts{% \@font@warning{Command \noexpand\tracingfonts not provided.\MessageBreak diff --git a/base/lttextcomp.dtx b/base/lttextcomp.dtx index 1ee4a18b7..64c89fe95 100644 --- a/base/lttextcomp.dtx +++ b/base/lttextcomp.dtx @@ -37,7 +37,7 @@ % % \ProvidesFile{lttextcomp.dtx} - [2024/04/24 v1.1c LaTeX Kernel (text companion symbols)] + [2024/11/19 v1.1d LaTeX Kernel (text companion symbols)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -161,139 +161,9 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\DeclareEncodingSubset} -% -% The declaration takes 3 mandatory arguments: an \emph{encoding} -% for which a subsetting is wanted (currently always \texttt{TS1}, -% and most likely forever), the \emph{font family} for which we -% declare the subset and finally the \emph{subset} number, with a value between -% \texttt{0} (all of the encoding is supported) and \texttt{9} (many -% glyphs are missing). -% -% For \texttt{TS1} the numbers have been chosen in a way that most -% fonts can be fairly correctly categorized, but the default -% settings are always conservative, that is they may claim that -% less glyphs are supported than there actually are. -% -% As these days many font families are set up to end in \texttt{-LF} -% (lining figures), \texttt{-OsF} (oldstyle figures), etc.\ the -% declaration supports a shortcut: if the \emph{font family} name -% ends in \texttt{-*} then the star gets replaced by these common -% ending, e.g., -%\begin{verbatim} -% \DeclareEncodingSubset{TS1}{Alegreya-*}{2} -%\end{verbatim} -% is the same as writing -%\begin{verbatim} -% \DeclareEncodingSubset{TS1}{Alegreya-LF}{2} -% \DeclareEncodingSubset{TS1}{Alegreya-OsF}{2} -% \DeclareEncodingSubset{TS1}{Alegreya-TLF}{2} -% \DeclareEncodingSubset{TS1}{Alegreya-TOsF}{2} -%\end{verbatim} -% If only some are needed then one can define them individually but -% in many cases all four are wanted, hence the shortcut. -% -% -% The coding of the declaration has no error checking as it is -% mostly for internal use. -% \begin{macrocode} -\def\DeclareEncodingSubset#1#2{% - \DeclareEncodingSubset@aux{#1}#2*\DeclareEncodingSubset@aux -} -% \end{macrocode} -% -% \begin{macrocode} -\def\DeclareEncodingSubset@aux#1#2*#3\DeclareEncodingSubset@aux#4{% -% \end{macrocode} -% if \verb=#3= is empty then there was no star, otherwise we -% define all four variants. -% \begin{macrocode} - \expandafter\ifx\expandafter X\detokenize{#3}X% - \@DeclareEncodingSubset{#1}{#2}{#4}% - \else - \@DeclareEncodingSubset{#1}{#2LF}{#4}% - \@DeclareEncodingSubset{#1}{#2TLF}{#4}% - \@DeclareEncodingSubset{#1}{#2OsF}{#4}% - \@DeclareEncodingSubset{#1}{#2TOsF}{#4}% - \fi -} -% \end{macrocode} -% -% The subset info is stored in a command with the name -% \texttt{\bslash}\emph{family}\texttt{:}\emph{subset} so if that -% already exists we change otherwise declare a subset. -% \begin{macrocode} -\def\@DeclareEncodingSubset#1#2#3{% - \@ifundefined{#1:#2}% - {\@font@info{Setting #2 sub-encoding to #1/#3}}% - {\@font@info{Changing #2 sub-encoding to #1/#3}}% -% \end{macrocode} -% This declaration should be usable in \texttt{.fd} files and -% therefore has to make its definition globally, because such files -% can get loaded in random places. -% \changes{v1.0g}{2022/08/07}{Make global declaration (gh/905)} -% \begin{macrocode} - \global\@namedef{#1:#2}{#3}} -% \end{macrocode} -% -% Any reason to allow those in the middle of documents? -% \begin{macrocode} -\@onlypreamble\DeclareEncodingSubset -\@onlypreamble\DeclareEncodingSubset@aux -\@onlypreamble\@DeclareEncodingSubset -% \end{macrocode} -% \end{macro} - - -% \begin{macro}{\CheckEncodingSubset} -% The command |\CheckEncodingSubset| will check if the current font -% family has the right encoding subset to typeset a certain -% command. It takes five arguments as follows: -% first argument is either |\UseTextSymbol|, |\UseTextAccent| -% depending on whether or not the symbol is a text symbol or a text -% accent. - -% The second argument is the encoding from which this symbol should -% be fetched. -% -% The third argument is either a fake accessor command or an error -% message. the code in that argument (if ever executed) receives -% two arguments: |#2| and |#5| of |\CheckEncodingSubset|. % -% Argument four is the subset encoding id to test against: if this -% value is higher than the subset id of the current font family -% then we typeset the symbol, i.e., execute |#1{#2}#5| otherwise -% it runs |#3#5|, e.g., to produce an error message or fake the -% glyph somehow. % -% Argument five is the symbol or accent command that is being -% checked. -% -% For usage examples see definitions below. % -% \begin{macrocode} -\def\CheckEncodingSubset#1#2#3#4#5{% - \ifnum #4>% - \expandafter\ifx\csname #2:\f@family\endcsname\relax - 0\csname #2:?\endcsname - \else - \csname #2:\f@family\endcsname - \fi - \relax - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi - {#1{#2}}{#3}% - #5% -} -% \end{macrocode} -% \end{macro} - - - - - % To set up the glyphs for the subsets we need a number helpers. % % \begin{macro}{\tc@errorwarn} @@ -956,11 +826,20 @@ % \begin{macrocode} \DeclareEncodingSubset{TS1}{ccr} {0} \DeclareEncodingSubset{TS1}{cmbr} {0} -\DeclareEncodingSubset{TS1}{cmr} {0} -\DeclareEncodingSubset{TS1}{cmss} {0} +% \end{macrocode} +% The following 4 declarations are now part of the corresponding +% \texttt{.fd} file, hopefully other will follow so that this list +% of declarations can eventually be removed from the kernel (where +% it doesn't belong). +% \begin{macrocode} +%\DeclareEncodingSubset{TS1}{cmr} {0} +%\DeclareEncodingSubset{TS1}{cmss} {0} +%\DeclareEncodingSubset{TS1}{cmtt} {0} +%\DeclareEncodingSubset{TS1}{cmvtt} {0} +% \end{macrocode} +% +% \begin{macrocode} \DeclareEncodingSubset{TS1}{cmtl} {0} -\DeclareEncodingSubset{TS1}{cmtt} {0} -\DeclareEncodingSubset{TS1}{cmvtt} {0} \DeclareEncodingSubset{TS1}{pxr} {0} \DeclareEncodingSubset{TS1}{pxss} {0} \DeclareEncodingSubset{TS1}{pxtt} {0} @@ -1218,7 +1097,7 @@ % \end{macrocode} % Strangely enough NotoSerif and NotoSans are sub-encoding 7 as % they are missing \cs{textminus} and several other glyphs. In -% contrast the NotoSansMono is far more complete. +% contrast, the NotoSansMono is far more complete. % \begin{macrocode} \DeclareEncodingSubset{TS1}{NotoSans-*} {7} \DeclareEncodingSubset{TS1}{NotoSerif-*} {7} @@ -1700,7 +1579,12 @@ {\PackageInfo{textcomp}{Setting #2 sub-encoding to #1/#3}}% {\PackageInfo{textcomp}{Changing #2 sub-encoding to #1/#3}}% \@namedef{#1:#2}{#3}} -\@onlypreamble\DeclareEncodingSubset +% \end{macrocode} +% In the original code this was only allowed in the preamble but +% now \texttt{.fd}s might contain it so that even in a rollback +% situation it is necessary to allow it everywhere in the document. +% \begin{macrocode} +%\@onlypreamble\DeclareEncodingSubset % \end{macrocode} % \end{macro} % diff --git a/base/testfiles-legacy/github-1333-rollback.tlg b/base/testfiles-legacy/github-1333-rollback.tlg index e645127cb..990aed905 100644 --- a/base/testfiles-legacy/github-1333-rollback.tlg +++ b/base/testfiles-legacy/github-1333-rollback.tlg @@ -25,7 +25,7 @@ LaTeX Info: Redefining \oldstylenums on input line .... Package textcomp Info: Changing cmr sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmss sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmtt sub-encoding to TS1/0 on input line .... -Package textcomp Info: Changing cmvtt sub-encoding to TS1/0 on input line .... +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmbr sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmtl sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing ccr sub-encoding to TS1/0 on input line .... diff --git a/base/testfiles-legacy/tlb-textcomp-005.tlg b/base/testfiles-legacy/tlb-textcomp-005.tlg index dd45a89dc..6d7e4337a 100644 --- a/base/testfiles-legacy/tlb-textcomp-005.tlg +++ b/base/testfiles-legacy/tlb-textcomp-005.tlg @@ -14,7 +14,6 @@ LaTeX Font Warning: Font shape `OT1/AlegreyaSans-LF/m/n' undefined LaTeX Info: Symbol \textdollaroldstyle not provided by font family AlegreyaSans-LF in TS1 encoding. Default family used instead on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmss on input line .... LaTeX Info: Symbol \textcentoldstyle not provided by font family AlegreyaSans-LF in TS1 encoding. Default family used instead on input line .... @@ -25,7 +24,6 @@ LaTeX Font Warning: Font shape `OT1/AlgolRevived-TLF/m/n' undefined LaTeX Info: Symbol \textdollaroldstyle not provided by font family AlgolRevived-TLF in TS1 encoding. Default family used instead on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmtt on input line .... LaTeX Info: Symbol \textcentoldstyle not provided by font family AlgolRevived-TLF in TS1 encoding. Default family used instead on input line .... diff --git a/base/testfiles-legacy/tlb-textcomp-006.tlg b/base/testfiles-legacy/tlb-textcomp-006.tlg index a49933689..e15283bb6 100644 --- a/base/testfiles-legacy/tlb-textcomp-006.tlg +++ b/base/testfiles-legacy/tlb-textcomp-006.tlg @@ -3,14 +3,12 @@ Don't change this file in any respect. oldstyle in cmr cmss or cmtt from TS1 LaTeX Info: Oldstyle digits unavailable for family lmr. Default oldstyle digits used instead on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmss on input line .... LaTeX Font Info: Trying to load font information for OT1+lmtt on input line .... LaTeX Font Info: No file OT1lmtt.fd. on input line .... LaTeX Font Warning: Font shape `OT1/lmtt/m/n' undefined (Font) using `OT1/cmr/m/n' instead on input line .... LaTeX Info: Oldstyle digits unavailable for family lmtt. Default oldstyle digits used instead on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmtt on input line .... LaTeX Font Info: Trying to load font information for OML+lmr on input line .... LaTeX Font Info: No file OMLlmr.fd. on input line .... LaTeX Font Warning: Font shape `OML/lmr/m/it' undefined diff --git a/base/testfiles-legacy/tlb-textcomp-007.tlg b/base/testfiles-legacy/tlb-textcomp-007.tlg index 5fb2ce97a..92470b946 100644 --- a/base/testfiles-legacy/tlb-textcomp-007.tlg +++ b/base/testfiles-legacy/tlb-textcomp-007.tlg @@ -25,7 +25,6 @@ of your error message was never \def'ed. If you have misspelled it (e.g., `\hobx'), type `I' and the correct spelling (e.g., `I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined. -LaTeX Font Info: Trying to load font information for TS1+cmss on input line .... LaTeX Font Info: Trying to load font information for T1+lmtt on input line .... LaTeX Info: Oldstyle digits unavailable for family lmtt. Default oldstyle digits used instead on input line .... @@ -39,7 +38,6 @@ of your error message was never \def'ed. If you have misspelled it (e.g., `\hobx'), type `I' and the correct spelling (e.g., `I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined. -LaTeX Font Info: Trying to load font information for TS1+cmtt on input line .... LaTeX Info: Oldstyle digits unavailable for family lmtt. Default oldstyle digits used instead on input line .... ! Undefined control sequence. diff --git a/base/testfiles/github-0367.tlg b/base/testfiles/github-0367.tlg index fa1fea926..cac50b39b 100644 --- a/base/testfiles/github-0367.tlg +++ b/base/testfiles/github-0367.tlg @@ -1,6 +1,5 @@ This is a generated file for the LaTeX2e validation system. Don't change this file in any respect. -LaTeX Font Info: Trying to load font information for TS1+cmtt on input line .... Completed box being shipped out [1] \vbox(633.0+0.0)x407.0 .\glue 16.0 diff --git a/base/testfiles/github-1336.tlg b/base/testfiles/github-1336.tlg index e974b9a56..d98988150 100644 --- a/base/testfiles/github-1336.tlg +++ b/base/testfiles/github-1336.tlg @@ -46,7 +46,7 @@ LaTeX Info: Redefining \oldstylenums on input line .... Package textcomp Info: Changing cmr sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmss sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmtt sub-encoding to TS1/0 on input line .... -Package textcomp Info: Changing cmvtt sub-encoding to TS1/0 on input line .... +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmbr sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing cmtl sub-encoding to TS1/0 on input line .... Package textcomp Info: Changing ccr sub-encoding to TS1/0 on input line .... diff --git a/base/testfiles/tlb1214.tlg b/base/testfiles/tlb1214.tlg index e09667be3..9d06f7874 100644 --- a/base/testfiles/tlb1214.tlg +++ b/base/testfiles/tlb1214.tlg @@ -9,13 +9,11 @@ LaTeX Font Info: External font `cmex10' loaded for size (Font) <7> on input line .... LaTeX Font Info: External font `cmex10' loaded for size (Font) <5> on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmss on input line .... LaTeX Font Info: Trying to load font information for OMS+cmss on input line .... LaTeX Font Info: No file OMScmss.fd. on input line .... LaTeX Font Warning: Font shape `OMS/cmss/m/n' undefined (Font) using `OMS/cmsy/m/n' instead (Font) for symbol `textbraceleft' on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmtt on input line .... LaTeX Font Info: Trying to load font information for OMS+cmtt on input line .... LaTeX Font Info: No file OMScmtt.fd. on input line .... LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined diff --git a/base/testfiles/tlb1503.tlg b/base/testfiles/tlb1503.tlg index 1c8d0aa9e..6f9ef2f7f 100644 --- a/base/testfiles/tlb1503.tlg +++ b/base/testfiles/tlb1503.tlg @@ -11,7 +11,6 @@ LaTeX Font Info: External font `cmex10' loaded for size (Font) <8> on input line .... LaTeX Font Info: External font `cmex10' loaded for size (Font) <6> on input line .... -LaTeX Font Info: Trying to load font information for TS1+cmss on input line .... Completed box being shipped out [1] \vbox(633.0+0.0)x407.0 .\glue 16.0 From f1d9b599bd280323a78ee94a8068702db10645c6 Mon Sep 17 00:00:00 2001 From: Frank Mittelbach Date: Sun, 24 Nov 2024 00:05:43 +0100 Subject: [PATCH 03/14] Hotfix/gh1558 (#1559) * fix for #1598 (needs adjustment once tagpdf-base has been updated) * and a bunch of hook test changes (until we take the hook out again * life is not easy * indeed not ... * and 2 more * Apply suggestions from code review right you are ... Co-authored-by: Yukai Chou * correct test name * update to tagpdf 0.99j, adapt lttagging --------- Co-authored-by: Yukai Chou Co-authored-by: Ulrike Fischer --- base/changes.txt | 5 +++ base/lttagging.dtx | 13 +++----- base/testfiles-lthooks/ltcmdhooks-001.tlg | 6 ---- base/testfiles-lthooks/lthooks-000.tlg | 6 ---- base/testfiles-lthooks/lthooks-001.tlg | 12 ------- base/testfiles-lthooks/lthooks-002.tlg | 12 ------- base/testfiles-lthooks/lthooks-003.tlg | 6 ---- base/testfiles-lthooks/lthooks-004.tlg | 6 ---- base/testfiles-lthooks/lthooks-005.tlg | 6 ---- base/testfiles-lthooks/lthooks-006.tlg | 6 ---- base/testfiles-lthooks/lthooks-007.tlg | 12 ------- base/testfiles-lthooks/lthooks-008.tlg | 6 ---- base/testfiles-lthooks/lthooks-009.tlg | 6 ---- base/testfiles-lthooks/lthooks-011.tlg | 24 -------------- base/testfiles-lthooks/lthooks-013.tlg | 6 ---- base/testfiles-lthooks/lthooks-021.tlg | 6 ---- base/testfiles-lthooks/lthooks-031.tlg | 3 +- base/testfiles-lthooks/lthooks-legacy.tlg | 6 ++-- .../lthooks-rollback-args.tlg | 3 +- base/testfiles-lthooks2/lthooks2-002.tlg | 22 +------------ base/testfiles-lthooks2/lthooks2-005.tlg | 12 ------- base/testfiles/github-0962b.luatex.tlg | 3 +- base/testfiles/github-0962b.tlg | 3 +- base/update-lthooks-tests.sh | 3 ++ required/latex-lab/update-all.sh | 9 +++--- required/tools/testfiles/github-1558.lvt | 26 ++++++++++++++++ required/tools/testfiles/github-1558.tlg | 8 +++++ texmf/tex/latex/tagpdf/tagpdf-base.sty | 10 +++--- .../tex/latex/tagpdf/tagpdf-debug-generic.sty | 2 +- texmf/tex/latex/tagpdf/tagpdf-debug-lua.sty | 2 +- texmf/tex/latex/tagpdf/tagpdf-debug.sty | 3 +- texmf/tex/latex/tagpdf/tagpdf-luatex.def | 2 +- .../latex/tagpdf/tagpdf-mc-code-generic.sty | 8 +++-- texmf/tex/latex/tagpdf/tagpdf-mc-code-lua.sty | 4 ++- .../tex/latex/tagpdf/tagpdf-ns-latex-book.def | 2 +- texmf/tex/latex/tagpdf/tagpdf-ns-latex.def | 2 +- texmf/tex/latex/tagpdf/tagpdf-ns-mathml.def | 2 +- texmf/tex/latex/tagpdf/tagpdf-ns-pdf.def | 2 +- texmf/tex/latex/tagpdf/tagpdf-ns-pdf2.def | 2 +- .../latex/tagpdf/tagpdf-parent-child-2.csv | 2 +- .../tex/latex/tagpdf/tagpdf-parent-child.csv | 2 +- texmf/tex/latex/tagpdf/tagpdf.lua | 4 +-- texmf/tex/latex/tagpdf/tagpdf.sty | 31 ++++++++++--------- 43 files changed, 103 insertions(+), 213 deletions(-) create mode 100644 required/tools/testfiles/github-1558.lvt create mode 100644 required/tools/testfiles/github-1558.tlg diff --git a/base/changes.txt b/base/changes.txt index a4edef9e6..004248109 100644 --- a/base/changes.txt +++ b/base/changes.txt @@ -14,6 +14,11 @@ All changes above are only part of the development branch for the next release. # 2024-11-01 PL1 Release ######################### +2024-11-22 Frank Mittelbach + + * lttagging.dtx (section{Implementation}): + Declare \tag_if_active:TF and friends in the kernel (gh/1558) + 2024-11-19 Frank Mittelbach * lttextcomp.dtx: diff --git a/base/lttagging.dtx b/base/lttagging.dtx index 6b68cd0e0..e8befabf7 100644 --- a/base/lttagging.dtx +++ b/base/lttagging.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{lttagging.dtx} - [2024/10/21 v1.0k LaTeX Kernel (tagging support)] + [2024/11/22 v1.0l LaTeX Kernel (tagging support)] % \iffalse \documentclass{l3doc} \GetFileInfo{lttagging.dtx} @@ -183,16 +183,11 @@ % Again this is not the final definition for the kernel; it is just % a version to get going while some parts of the kernel support are % still missing. +% \changes{v1.0l}{2024/11/21}{Define \cs{tag_if_active:TF} conditionals here (github/1558)} % \begin{macrocode} -\AddToHook{begindocument}[kernel]{ - \cs_if_exist:NF \tag_if_active:T - { - \prg_new_conditional:Npnn \tag_if_active: { p , T , TF, F } - { \prg_return_false: } - } -} +\prg_new_conditional:Npnn \tag_if_active: { p , T , TF, F } + { \prg_return_false: } % \end{macrocode} -% % Dummy definitions in the kernel. % These definitions will get updated in \pkg{tagpdf}. % The default in the kernel is just to get rid of the first argument, the second is preserved if present: diff --git a/base/testfiles-lthooks/ltcmdhooks-001.tlg b/base/testfiles-lthooks/ltcmdhooks-001.tlg index e7741b43f..0a175a3c7 100644 --- a/base/testfiles-lthooks/ltcmdhooks-001.tlg +++ b/base/testfiles-lthooks/ltcmdhooks-001.tlg @@ -65,11 +65,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -242,7 +237,6 @@ Data structure for label rules: Handled code for x Handled code for y All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-000.tlg b/base/testfiles-lthooks/lthooks-000.tlg index fcc64bf6e..8a93c911d 100644 --- a/base/testfiles-lthooks/lthooks-000.tlg +++ b/base/testfiles-lthooks/lthooks-000.tlg @@ -5,11 +5,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -166,7 +161,6 @@ Data structure for label rules: backend = 0 -> Handled code for backend All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-001.tlg b/base/testfiles-lthooks/lthooks-001.tlg index b6b9ed65f..9ac5c370f 100644 --- a/base/testfiles-lthooks/lthooks-001.tlg +++ b/base/testfiles-lthooks/lthooks-001.tlg @@ -10,11 +10,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -173,7 +168,6 @@ Data structure for label rules: Handled code for label1 Handled code for label2 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -262,11 +256,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -423,7 +412,6 @@ Data structure for label rules: label1 = 0 -> Handled code for label1 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-002.tlg b/base/testfiles-lthooks/lthooks-002.tlg index a7b87d723..9c43281db 100644 --- a/base/testfiles-lthooks/lthooks-002.tlg +++ b/base/testfiles-lthooks/lthooks-002.tlg @@ -10,11 +10,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -173,7 +168,6 @@ Data structure for label rules: Handled code for label1 Handled code for label2 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -264,11 +258,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -425,7 +414,6 @@ Data structure for label rules: label1 = 0 -> Handled code for label1 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-003.tlg b/base/testfiles-lthooks/lthooks-003.tlg index 4d973492d..f5e466b76 100644 --- a/base/testfiles-lthooks/lthooks-003.tlg +++ b/base/testfiles-lthooks/lthooks-003.tlg @@ -96,11 +96,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -283,7 +278,6 @@ Handled code for label5 Handled code for label8 Handled code for label6 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-004.tlg b/base/testfiles-lthooks/lthooks-004.tlg index 3f361be05..6e7b34fab 100644 --- a/base/testfiles-lthooks/lthooks-004.tlg +++ b/base/testfiles-lthooks/lthooks-004.tlg @@ -80,11 +80,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -258,7 +253,6 @@ Data structure for label rules: label4 = 0 -> label1 ==================== All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-005.tlg b/base/testfiles-lthooks/lthooks-005.tlg index b9f98b801..47b460998 100644 --- a/base/testfiles-lthooks/lthooks-005.tlg +++ b/base/testfiles-lthooks/lthooks-005.tlg @@ -103,11 +103,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -290,7 +285,6 @@ Handled code for label5 Handled code for label8 Handled code for label6 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-006.tlg b/base/testfiles-lthooks/lthooks-006.tlg index ff2011d20..200b6c39b 100644 --- a/base/testfiles-lthooks/lthooks-006.tlg +++ b/base/testfiles-lthooks/lthooks-006.tlg @@ -76,11 +76,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -244,7 +239,6 @@ Handled code for label1 Handled code for label3 Handled code for label2 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-007.tlg b/base/testfiles-lthooks/lthooks-007.tlg index cc1281d18..d8325c8ff 100644 --- a/base/testfiles-lthooks/lthooks-007.tlg +++ b/base/testfiles-lthooks/lthooks-007.tlg @@ -77,11 +77,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -246,7 +241,6 @@ Handled code for label1 Handled code for label3 Handled code for label2 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -270,11 +264,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -437,7 +426,6 @@ Handled code for label1 Handled code for label2 Handled code for label3 All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-008.tlg b/base/testfiles-lthooks/lthooks-008.tlg index dd09a291a..fbf173f7f 100644 --- a/base/testfiles-lthooks/lthooks-008.tlg +++ b/base/testfiles-lthooks/lthooks-008.tlg @@ -76,11 +76,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -246,7 +241,6 @@ Data structure for label rules: backend = 0 -> Handled code for backend All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument -> \typeout {foo}\typeout {bar}\typeout {from my package}\__hook_toplevel enddocument \__hook_next enddocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after diff --git a/base/testfiles-lthooks/lthooks-009.tlg b/base/testfiles-lthooks/lthooks-009.tlg index 9e6ac770a..9de10df33 100644 --- a/base/testfiles-lthooks/lthooks-009.tlg +++ b/base/testfiles-lthooks/lthooks-009.tlg @@ -6,11 +6,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -172,7 +167,6 @@ Data structure for label rules: backend = 0 -> Handled code for backend All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument sffamily -> \typeout {Std sffamily code}\__hook_toplevel sffamily \__hook_next sffamily enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after diff --git a/base/testfiles-lthooks/lthooks-011.tlg b/base/testfiles-lthooks/lthooks-011.tlg index 509771428..babe8e214 100644 --- a/base/testfiles-lthooks/lthooks-011.tlg +++ b/base/testfiles-lthooks/lthooks-011.tlg @@ -6,11 +6,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -172,7 +167,6 @@ Update code for hook 'yyy' on input line ...: Update code for hook 'zzz' on input line ...: Update code for hook 'next_zzz' on input line ...: All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -197,11 +191,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -365,7 +354,6 @@ Update code for hook 'yyy' on input line ...: Update code for hook 'zzz' on input line ...: Update code for hook 'next_zzz' on input line ...: All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -390,11 +378,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -560,7 +543,6 @@ Update code for hook 'yyy' on input line ...: Update code for hook 'zzz' on input line ...: Update code for hook 'next_zzz' on input line ...: All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -585,11 +567,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -757,7 +734,6 @@ Update code for hook 'yyy' on input line ...: Update code for hook 'zzz' on input line ...: Update code for hook 'next_zzz' on input line ...: All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-013.tlg b/base/testfiles-lthooks/lthooks-013.tlg index cfd5b3b9d..3d1966999 100644 --- a/base/testfiles-lthooks/lthooks-013.tlg +++ b/base/testfiles-lthooks/lthooks-013.tlg @@ -58,11 +58,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -227,7 +222,6 @@ Handled code for foo Update code for hook 'env/itemize/end' on input line ...: Update code for hook 'file/bar' on input line ...: All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-021.tlg b/base/testfiles-lthooks/lthooks-021.tlg index 282cbc898..c201c3deb 100644 --- a/base/testfiles-lthooks/lthooks-021.tlg +++ b/base/testfiles-lthooks/lthooks-021.tlg @@ -5,11 +5,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -166,7 +161,6 @@ Data structure for label rules: backend = 0 -> Handled code for backend All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks/lthooks-031.tlg b/base/testfiles-lthooks/lthooks-031.tlg index 8d7e9e78d..206b98263 100644 --- a/base/testfiles-lthooks/lthooks-031.tlg +++ b/base/testfiles-lthooks/lthooks-031.tlg @@ -16,7 +16,6 @@ Don't change this file in any respect. l. ...\ShowHook{include/foo/after} -> The hook 'begindocument': > Code chunks: -> kernel -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }} > A -> \typeout {A2} > B -> \typeout {B2} > Document-level (top-level) code (executed last): @@ -26,7 +25,7 @@ l. ...\ShowHook{include/foo/after} > Rules: > --- > Execution order: -> kernel, A, B. +> A, B. } l. ...\ShowHook{begindocument} (../l3backend-pdftex.def diff --git a/base/testfiles-lthooks/lthooks-legacy.tlg b/base/testfiles-lthooks/lthooks-legacy.tlg index db2099805..9b14c2d3a 100644 --- a/base/testfiles-lthooks/lthooks-legacy.tlg +++ b/base/testfiles-lthooks/lthooks-legacy.tlg @@ -8,11 +8,9 @@ Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: **** Add to hook begindocument (legacy) on input line ... <- \typeout {legacy begindocument\on@line } Code labels for sorting: - kernel and legacy + legacy Data structure for label rules: - kernel = 0 -> legacy = 0 -> -Handled code for kernel Handled code for legacy Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: @@ -188,7 +186,7 @@ Data structure for label rules: backend = 0 -> Handled code for backend All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\typeout {legacy begindocument\on@line }\__hook_toplevel begindocument \__hook_next begindocument + begindocument -> \typeout {legacy begindocument\on@line }\__hook_toplevel begindocument \__hook_next begindocument rmfamily -> \typeout {legacy rmfamily\on@line }\__hook_toplevel rmfamily \__hook_next rmfamily sffamily -> \typeout {legacy sffamily\on@line }\__hook_toplevel sffamily \__hook_next sffamily ttfamily -> \typeout {legacy ttfamily\on@line }\__hook_toplevel ttfamily \__hook_next ttfamily diff --git a/base/testfiles-lthooks/lthooks-rollback-args.tlg b/base/testfiles-lthooks/lthooks-rollback-args.tlg index cc67014ba..2d6a28e00 100644 --- a/base/testfiles-lthooks/lthooks-rollback-args.tlg +++ b/base/testfiles-lthooks/lthooks-rollback-args.tlg @@ -1359,7 +1359,6 @@ Already applied: [....-..-..] UTF-8 default on input line .... ) -> The hook 'begindocument': > Code chunks: -> kernel -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }} > label -> \def \ay ##1{\typeout {ay(##1)}}\def \by ##1{\typeout {by(##1)}} > Document-level (top-level) code (executed last): > -> \def \ax ##1{\typeout {ax(##1)}}\def \bx ##1{\typeout {bx(##1)}} @@ -1368,7 +1367,7 @@ Already applied: [....-..-..] UTF-8 default on input line .... > Rules: > --- > Execution order: -> kernel, label. +> label. } l. ...\ShowHook{begindocument} ax(1) diff --git a/base/testfiles-lthooks2/lthooks2-002.tlg b/base/testfiles-lthooks2/lthooks2-002.tlg index bc6183761..c54a0740a 100644 --- a/base/testfiles-lthooks2/lthooks2-002.tlg +++ b/base/testfiles-lthooks2/lthooks2-002.tlg @@ -10,32 +10,13 @@ Update code for hook 'file/after' on input line ...: Update code for hook 'package/after' on input line ...: **** Add to hook enddocument/end (top-level) on input line ... <- \typeout {in preamble} Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel -> The hook 'begindocument': -> Code chunks: -> kernel -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }} -> Document-level (top-level) code (executed last): -> --- -> Extra code for next invocation: -> --- -> Rules: -> --- -> Execution order: -> kernel. +> The hook is empty. Update code for hook 'para/before' on input line ...: Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -192,7 +173,6 @@ Data structure for label rules: backend = 0 -> Handled code for backend All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles-lthooks2/lthooks2-005.tlg b/base/testfiles-lthooks2/lthooks2-005.tlg index 181a618e4..4513dd0bd 100644 --- a/base/testfiles-lthooks2/lthooks2-005.tlg +++ b/base/testfiles-lthooks2/lthooks2-005.tlg @@ -6,11 +6,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -161,7 +156,6 @@ Data structure for label rules: firstaid = 0 -> Handled code for firstaid All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after @@ -185,11 +179,6 @@ Update code for hook 'para/after' on input line ...: Update code for hook 'para/begin' on input line ...: Update code for hook 'para/end' on input line ...: Update code for hook 'begindocument' on input line ...: -Code labels for sorting: - kernel -Data structure for label rules: - kernel = 0 -> -Handled code for kernel Update code for hook 'begindocument/before' on input line ...: Update code for hook 'begindocument/end' on input line ...: Update code for hook 'include/before' on input line ...: @@ -348,7 +337,6 @@ Data structure for label rules: Handled code for my-package Handled code for other-package All initialized (non-empty) hooks: - begindocument -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }}\__hook_toplevel begindocument \__hook_next begindocument enddocument/info -> \@dofilelist \@enddocument@kernel@warnings \__hook_toplevel enddocument/info \__hook_next enddocument/info file/dinbrief.cls/after -> \__hook_toplevel file/dinbrief.cls/after \FirstAidNeededT {dinbrief}{cls}{....-..-.. LaTeX2e class}{\AddToHook {env/document/begin}{\begingroup }}\__hook_next file/dinbrief.cls/after file/pgfpages.sty/after -> \__hook_toplevel file/pgfpages.sty/after \cs_gset_eq:NN \shipout \pgfpages@originalshipout \cs_set_eq:NN \pgfpages@originalshipout \tex_shipout:D \cs_set_eq:NN \tex_shipout:D \pgfpages@interceptshipout \__hook_next file/pgfpages.sty/after diff --git a/base/testfiles/github-0962b.luatex.tlg b/base/testfiles/github-0962b.luatex.tlg index c061d8274..3d50d3f45 100644 --- a/base/testfiles/github-0962b.luatex.tlg +++ b/base/testfiles/github-0962b.luatex.tlg @@ -2,7 +2,6 @@ This is a generated file for the LaTeX2e validation system. Don't change this file in any respect. -> The hook 'begindocument': > Code chunks: -> kernel -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }} > doc -> \catcode `\^^A=14\relax \catcode `\^^X=14\relax \let \macro@font \MacroFont > ltxdoc -> \MakeShortVerb {\|}\providecommand \LuaTeX {Lua\TeX } \providecommand \cls {\textsf } \providecommand \pkg {\textsf } \providecommand \enquote [1]{``##1''} \providecommand \url {\texttt } > Document-level (top-level) code (executed last): @@ -12,7 +11,7 @@ Don't change this file in any respect. > Rules: > --- > Execution order: -> kernel, doc, ltxdoc. +> doc, ltxdoc. } l. ...\ShowHook{begindocument} > \PrintMacroName=macro: diff --git a/base/testfiles/github-0962b.tlg b/base/testfiles/github-0962b.tlg index 71197423b..261b9fa82 100644 --- a/base/testfiles/github-0962b.tlg +++ b/base/testfiles/github-0962b.tlg @@ -2,7 +2,6 @@ This is a generated file for the LaTeX2e validation system. Don't change this file in any respect. -> The hook 'begindocument': > Code chunks: -> kernel -> \cs_if_exist:NF \tag_if_active:T {\prg_new_conditional:Npnn \tag_if_active: {p,T,TF,F}{\prg_return_false: }} > doc -> \catcode `\^^A=14\relax \catcode `\^^X=14\relax \let \macro@font \MacroFont > ltxdoc -> \MakeShortVerb {\|}\providecommand \LuaTeX {Lua\TeX } \providecommand \cls {\textsf } \providecommand \pkg {\textsf } \providecommand \enquote [1]{``##1''} \providecommand \url {\texttt } > Document-level (top-level) code (executed last): @@ -12,7 +11,7 @@ Don't change this file in any respect. > Rules: > --- > Execution order: -> kernel, doc, ltxdoc. +> doc, ltxdoc. } l. ...\ShowHook{begindocument} > \PrintMacroName=macro: diff --git a/base/update-lthooks-tests.sh b/base/update-lthooks-tests.sh index 6371bc956..d9f84e016 100755 --- a/base/update-lthooks-tests.sh +++ b/base/update-lthooks-tests.sh @@ -1,4 +1,7 @@ +l3build save -epdftex,luatex \ + github-0962b + l3build save -cconfig-lthooks2 \ lthooks2-002 \ lthooks2-004 \ diff --git a/required/latex-lab/update-all.sh b/required/latex-lab/update-all.sh index 387eb1c80..19753e989 100644 --- a/required/latex-lab/update-all.sh +++ b/required/latex-lab/update-all.sh @@ -1,11 +1,12 @@ l3build save \ documentmetadata-phase-II \ - new-or-001 + new-or-001 \ + gh-tagging628-settodim l3build save -epdftex,luatex \ documentmetadata-support-000 \ documentmetadata-support-001 \ - documentmetadata-support-002 - - + documentmetadata-support-002 \ + standard-a4f \ + tagging-gh34 diff --git a/required/tools/testfiles/github-1558.lvt b/required/tools/testfiles/github-1558.lvt new file mode 100644 index 000000000..6d85cb7f2 --- /dev/null +++ b/required/tools/testfiles/github-1558.lvt @@ -0,0 +1,26 @@ +\show\documentclass + +\documentclass{article} + +\input{test2e} + +\usepackage{array} +\newsavebox\hvOBox + +\START + +\savebox\hvOBox{% +\begin{tabular}{@{} *9c @{\hspace{6em}} *3c @{}} +2007& 2074& 1626& 113& 25& 8& 11& 8& 12& 71& 200& 3\\ +\end{tabular}} + +\OMIT +\begin{document} +\TIMO + +\usebox\hvOBox + +\newpage + +\OMIT +\end{document} diff --git a/required/tools/testfiles/github-1558.tlg b/required/tools/testfiles/github-1558.tlg new file mode 100644 index 000000000..a3cb22efb --- /dev/null +++ b/required/tools/testfiles/github-1558.tlg @@ -0,0 +1,8 @@ +This is a generated file for the LaTeX2e validation system. +Don't change this file in any respect. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line .... +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line .... +[1 +] diff --git a/texmf/tex/latex/tagpdf/tagpdf-base.sty b/texmf/tex/latex/tagpdf/tagpdf-base.sty index bdcfa47bf..f8286a907 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-base.sty +++ b/texmf/tex/latex/tagpdf/tagpdf-base.sty @@ -25,7 +25,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf.dtx -\ProvidesExplPackage {tagpdf-base} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf-base} {2024-11-22} {0.99j} {part of tagpdf - provide base, no-op versions of the user commands } \cs_new_protected:Npn \__tag_whatsits: {} \AddToHook{begindocument} @@ -52,7 +52,6 @@ \cs_new_protected:Nn \tag_mc_end:{ \__tag_whatsits: } %% File: tagpdf-mc-shared.dtx - \newcounter { g__tag_MCID_abs_int } \cs_new:Npn \__tag_get_data_mc_counter: { @@ -89,8 +88,11 @@ %% File: tagpdf-checks.dtx \cs_new:Npn \tag_get:n #1 { \use:c {__tag_get_data_#1: } } -\prg_new_conditional:Npnn \tag_if_active: { p , T , TF, F } - { \prg_return_false: } +\cs_if_exist:NF\tag_if_active:T + { + \prg_new_conditional:Npnn \tag_if_active: { p , T , TF, F } + { \prg_return_false: } + } \prg_new_conditional:Npnn \tag_if_box_tagged:N #1 {p,T,F,TF} { \tl_if_exist:cTF {l_tag_box_\int_use:N #1_tl} diff --git a/texmf/tex/latex/tagpdf/tagpdf-debug-generic.sty b/texmf/tex/latex/tagpdf/tagpdf-debug-generic.sty index faed53b3c..354d3e91e 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-debug-generic.sty +++ b/texmf/tex/latex/tagpdf/tagpdf-debug-generic.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-generic.dtx -\ProvidesExplPackage {tagpdf-debug-generic} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf-debug-generic} {2024-11-22} {0.99j} {part of tagpdf - debugging code related to marking chunks - generic mode} \cs_set_protected:Npn \tag_mc_begin:n #1 %#1 keyval { diff --git a/texmf/tex/latex/tagpdf/tagpdf-debug-lua.sty b/texmf/tex/latex/tagpdf/tagpdf-debug-lua.sty index 7b0f3b96d..ea873c5d9 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-debug-lua.sty +++ b/texmf/tex/latex/tagpdf/tagpdf-debug-lua.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-luacode.dtx -\ProvidesExplPackage {tagpdf-debug-lua} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf-debug-lua} {2024-11-22} {0.99j} {part of tagpdf - debugging code related to marking chunks - lua mode} \cs_set_protected:Npn \__tag_mc_handle_stash:n #1 %1 mcidnum { diff --git a/texmf/tex/latex/tagpdf/tagpdf-debug.sty b/texmf/tex/latex/tagpdf/tagpdf-debug.sty index 2ad6c2103..7bc9d48bb 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-debug.sty +++ b/texmf/tex/latex/tagpdf/tagpdf-debug.sty @@ -26,7 +26,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf.dtx -\ProvidesExplPackage {tagpdf-debug} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf-debug} {2024-11-22} {0.99j} { debug code for tagpdf } \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput} \prop_gput:Nnn \g_msg_module_type_prop { tag / debug} {} @@ -248,7 +248,6 @@ ,debug/structures .default:n = 1 } %% File: tagpdf-mc-shared.dtx - %% File: tagpdf-tree.dtx %% File: tagpdf-roles.dtx %% File: tagpdf-struct.dtx diff --git a/texmf/tex/latex/tagpdf/tagpdf-luatex.def b/texmf/tex/latex/tagpdf/tagpdf-luatex.def index e25286e33..63ee9f480 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-luatex.def +++ b/texmf/tex/latex/tagpdf/tagpdf-luatex.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-backend.dtx -\ProvidesExplFile {tagpdf-luatex.def} {2024-10-27} {0.99g} +\ProvidesExplFile {tagpdf-luatex.def} {2024-11-22} {0.99j} {tagpdf~driver~for~luatex} { \fontencoding{TU}\fontfamily{lmr}\fontseries{m}\fontshape{n}\fontsize{10pt}{10pt}\selectfont diff --git a/texmf/tex/latex/tagpdf/tagpdf-mc-code-generic.sty b/texmf/tex/latex/tagpdf/tagpdf-mc-code-generic.sty index 716de1a1d..1bae99bc9 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-mc-code-generic.sty +++ b/texmf/tex/latex/tagpdf/tagpdf-mc-code-generic.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-generic.dtx -\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-11-22} {0.99j} {part of tagpdf - code related to marking chunks - generic mode} \tl_new:N \l__tag_mc_ref_abspage_tl @@ -29,7 +29,10 @@ \seq_new:N \g__tag_mc_main_marks_seq \seq_new:N \g__tag_mc_footnote_marks_seq \seq_new:N \g__tag_mc_multicol_marks_seq - +\cs_new_protected:Npn \tag_mc_new_stream:n #1 + { + \seq_new:c { g__tag_mc_multicol_#1_seq } + } \seq_new:N \l__tag_mc_firstmarks_seq \seq_new:N \l__tag_mc_botmarks_seq \cs_new_protected:Npn \__tag_mc_begin_marks:nn #1 #2 %#1 tag, #2 label @@ -233,6 +236,7 @@ %% } } +\cs_set_eq:NN \tag_mc_add_missing_to_stream:Nn \__tag_add_missing_mcs_to_stream:Nn \prg_new_conditional:Nnn \__tag_mc_if_in: {p,T,F,TF} { \bool_if:NTF \g__tag_in_mc_bool diff --git a/texmf/tex/latex/tagpdf/tagpdf-mc-code-lua.sty b/texmf/tex/latex/tagpdf/tagpdf-mc-code-lua.sty index 7f0331f89..7e39b1a3c 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-mc-code-lua.sty +++ b/texmf/tex/latex/tagpdf/tagpdf-mc-code-lua.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-luacode.dtx -\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-11-22} {0.99j} {tagpdf - mc code only for the luamode } \hook_gput_code:nnn{begindocument}{tagpdf/mc} { @@ -76,6 +76,8 @@ } } \cs_new_protected:Npn \__tag_add_missing_mcs_to_stream:Nn #1#2 {} +\cs_set_eq:NN \tag_mc_add_missing_to_stream:Nn \__tag_add_missing_mcs_to_stream:Nn +\cs_new_protected:Npn \tag_mc_new_stream:n #1 {} \prg_new_conditional:Nnn \__tag_mc_if_in: {p,T,F,TF} { \int_compare:nNnTF diff --git a/texmf/tex/latex/tagpdf/tagpdf-ns-latex-book.def b/texmf/tex/latex/tagpdf/tagpdf-ns-latex-book.def index 113d92036..201e23953 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-ns-latex-book.def +++ b/texmf/tex/latex/tagpdf/tagpdf-ns-latex-book.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-11-22} {0.99j} %% {latex-book} {https://www.latex-project.org/ns/book/2022}{} chapter, H1,pdf2, section, H2,pdf2, diff --git a/texmf/tex/latex/tagpdf/tagpdf-ns-latex.def b/texmf/tex/latex/tagpdf/tagpdf-ns-latex.def index 516094991..7b156ff0b 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-ns-latex.def +++ b/texmf/tex/latex/tagpdf/tagpdf-ns-latex.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-11-22} {0.99j} %% {latex} {https://www.latex-project.org/ns/dflt/2022}{} title, Title, pdf2, part, Title, pdf2, diff --git a/texmf/tex/latex/tagpdf/tagpdf-ns-mathml.def b/texmf/tex/latex/tagpdf/tagpdf-ns-mathml.def index af23601b3..e73971e0d 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-ns-mathml.def +++ b/texmf/tex/latex/tagpdf/tagpdf-ns-mathml.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-11-22} {0.99j} abs,abs,mathml, and,and,mathml, annotation,annotation,mathml, diff --git a/texmf/tex/latex/tagpdf/tagpdf-ns-pdf.def b/texmf/tex/latex/tagpdf/tagpdf-ns-pdf.def index 88d859999..6f002b303 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-ns-pdf.def +++ b/texmf/tex/latex/tagpdf/tagpdf-ns-pdf.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-11-22} {0.99j} %% {pdf} {http://iso.org/pdf/ssn}{} StructTreeRoot,StructTreeRoot,pdf,D, Document,Document,pdf,D, diff --git a/texmf/tex/latex/tagpdf/tagpdf-ns-pdf2.def b/texmf/tex/latex/tagpdf/tagpdf-ns-pdf2.def index ccb4e7282..4d7f3d572 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-ns-pdf2.def +++ b/texmf/tex/latex/tagpdf/tagpdf-ns-pdf2.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-11-22} {0.99j} %% {pdf2} {http://iso.org/pdf2/ssn}{} StructTreeRoot,StructTreeRoot,pdf2,D, Document,Document,pdf2,D, diff --git a/texmf/tex/latex/tagpdf/tagpdf-parent-child-2.csv b/texmf/tex/latex/tagpdf/tagpdf-parent-child-2.csv index 4c89e41f8..3b8590903 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-parent-child-2.csv +++ b/texmf/tex/latex/tagpdf/tagpdf-parent-child-2.csv @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-11-22} {0.99j} ,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅ DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅ diff --git a/texmf/tex/latex/tagpdf/tagpdf-parent-child.csv b/texmf/tex/latex/tagpdf/tagpdf-parent-child.csv index 27dd3a33b..3ac411976 100644 --- a/texmf/tex/latex/tagpdf/tagpdf-parent-child.csv +++ b/texmf/tex/latex/tagpdf/tagpdf-parent-child.csv @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-10-27} {0.99g} +%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-11-22} {0.99j} ,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC Document,both,document level,1,0..n,∅,‡,‡,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅ Art,1.7,grouping,∅,0..n,∅,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,0..1,0..1,∅,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,∅,∅ diff --git a/texmf/tex/latex/tagpdf/tagpdf.lua b/texmf/tex/latex/tagpdf/tagpdf.lua index 4ad1ba5b3..62e08da88 100644 --- a/texmf/tex/latex/tagpdf/tagpdf.lua +++ b/texmf/tex/latex/tagpdf/tagpdf.lua @@ -24,8 +24,8 @@ local ProvidesLuaModule = { name = "tagpdf", - version = "0.99g", --TAGVERSION - date = "2024-10-27", --TAGDATE + version = "0.99j", --TAGVERSION + date = "2024-11-22", --TAGDATE description = "tagpdf lua code", license = "The LATEX Project Public License 1.3c" } diff --git a/texmf/tex/latex/tagpdf/tagpdf.sty b/texmf/tex/latex/tagpdf/tagpdf.sty index f4451113d..7bada0d56 100644 --- a/texmf/tex/latex/tagpdf/tagpdf.sty +++ b/texmf/tex/latex/tagpdf/tagpdf.sty @@ -28,7 +28,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf.dtx -\ProvidesExplPackage {tagpdf} {2024-10-27} {0.99g} +\ProvidesExplPackage {tagpdf} {2024-11-22} {0.99j} { LaTeX kernel code for PDF tagging } \bool_if:nF @@ -624,7 +624,6 @@ } } %% File: tagpdf-mc-shared.dtx - \cs_new:Npn \__tag_get_mc_abs_cnt: { \int_use:N \c@g__tag_MCID_abs_int } \bool_new:N \g__tag_in_mc_bool \__tag_prop_new_linked:N \g__tag_mc_parenttree_prop @@ -3283,8 +3282,9 @@ firstkid .code:n = { \tl_set:Nn \l__tag_struct_addkid_tl {left} }, } \cs_set_protected:Npn \tag_socket_use:nnn #1#2#3 { - \bool_if:NT \l__tag_active_socket_bool - { \socket_use:nnn {tagsupport/#1} {#2} {#3} } + \bool_if:NTF \l__tag_active_socket_bool + { \socket_use:nnn {tagsupport/#1} {#2} {#3} } + { #3 } } \cs_set:Npn \tag_socket_use_expandable:n #1 { @@ -3763,26 +3763,29 @@ firstkid .code:n = { \tl_set:Nn \l__tag_struct_addkid_tl {left} }, \cs_if_exist:NT \@kernel@before@footins { \tl_put_right:Nn \@kernel@before@footins - { \__tag_add_missing_mcs_to_stream:Nn \footins {footnote} } + { \tag_mc_add_missing_to_stream:Nn \footins {footnote} } \tl_put_right:Nn \@kernel@before@cclv { \__tag_check_typeout_v:n {====>~In~\token_to_str:N \@makecol\c_space_tl\the\c@page} - \__tag_add_missing_mcs_to_stream:Nn \@cclv {main} + \tag_mc_add_missing_to_stream:Nn \@cclv {main} } \tl_put_right:Nn \@kernel@tagsupport@@makecol { \__tag_check_typeout_v:n {====>~In~\token_to_str:N \@makecol\c_space_tl\the\c@page} - \__tag_add_missing_mcs_to_stream:Nn \@outputbox {main} + \tag_mc_add_missing_to_stream:Nn \@outputbox {main} } - \tl_put_right:Nn \@mult@ptagging@hook - { - \__tag_check_typeout_v:n {====>~In~\string\page@sofar} - \process@cols\mult@firstbox + \tl_if_exist:NT \@mult@ptagging@hook + { + \tl_put_right:Nn \@mult@ptagging@hook { - \__tag_add_missing_mcs_to_stream:Nn \count@ {multicol} + \__tag_check_typeout_v:n {====>~In~\string\page@sofar} + \process@cols\mult@firstbox + { + \tag_mc_add_missing_to_stream:Nn \count@ {multicol} + } + \tag_mc_add_missing_to_stream:Nn \mult@rightbox {multicol} } - \__tag_add_missing_mcs_to_stream:Nn \mult@rightbox {multicol} - } + } } } } From 757ea1cdeed4f9abdc30fc68a6212380852b0137 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Sun, 24 Nov 2024 15:06:34 +0000 Subject: [PATCH 04/14] Step release tag --- base/README.md | 2 +- base/ltvers.dtx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/base/README.md b/base/README.md index 376ec9e98..b7cb63f56 100644 --- a/base/README.md +++ b/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2024-11-01 +Release 2024-11-01 patch level 1 Overview -------- diff --git a/base/ltvers.dtx b/base/ltvers.dtx index 1489d6baf..37f1bea7c 100644 --- a/base/ltvers.dtx +++ b/base/ltvers.dtx @@ -115,7 +115,7 @@ {2024-11-01} % %<*2ekernel> -\def\patch@level{0} +\def\patch@level{1} % \end{macrocode} % % \begin{macro}{\development@branch@name} From 5c1c2957f534c93ecbb82bc7ff54c7c00b06cabd Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Sun, 24 Nov 2024 15:33:46 +0000 Subject: [PATCH 05/14] Update github-0944 --- base/testfiles/github-0944.tlg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg index db71eb1b6..8a966c9c2 100644 --- a/base/testfiles/github-0944.tlg +++ b/base/testfiles/github-0944.tlg @@ -21,7 +21,7 @@ LaTeX Warning: Reference `unknown' on page 1 undefined on input line .... [1 ] (github-0944.aux) *********** --formatname- <-formatversion-> +-formatname- <-formatversion-> patch level -2 L3 programming layer <2024-11-02> *********** *File List* From 764d2011f71c4018a361b46c04f1c17a12667187 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Mon, 25 Nov 2024 09:52:01 +0000 Subject: [PATCH 06/14] Extend firstaid for cleveref for gh1560 (#1562) * add cleveref firstaid for issue #1560 * update hook tests --- base/testfiles-lthooks/ltcmdhooks-001.tlg | 2 +- base/testfiles-lthooks/lthooks-000.tlg | 2 +- base/testfiles-lthooks/lthooks-001.tlg | 4 +- base/testfiles-lthooks/lthooks-002.tlg | 4 +- base/testfiles-lthooks/lthooks-003.tlg | 2 +- base/testfiles-lthooks/lthooks-004.tlg | 2 +- base/testfiles-lthooks/lthooks-005.tlg | 2 +- base/testfiles-lthooks/lthooks-006.tlg | 2 +- base/testfiles-lthooks/lthooks-007.tlg | 4 +- base/testfiles-lthooks/lthooks-008.tlg | 2 +- base/testfiles-lthooks/lthooks-009.tlg | 2 +- base/testfiles-lthooks/lthooks-011.tlg | 8 +- base/testfiles-lthooks/lthooks-013.tlg | 2 +- base/testfiles-lthooks/lthooks-021.tlg | 2 +- base/testfiles-lthooks/lthooks-legacy.tlg | 2 +- base/testfiles-lthooks2/lthooks2-002.tlg | 2 +- base/testfiles-lthooks2/lthooks2-005.tlg | 4 +- required/firstaid/changes.txt | 8 + .../latex2e-first-aid-for-external-files.dtx | 14 +- .../firstaid-cleveref-1560.luatex.tlg | 617 ++++++++++++++++++ .../testfiles/firstaid-cleveref-1560.lvt | 52 ++ .../testfiles/firstaid-cleveref-1560.tlg | 569 ++++++++++++++++ 22 files changed, 1279 insertions(+), 29 deletions(-) create mode 100644 required/firstaid/testfiles/firstaid-cleveref-1560.luatex.tlg create mode 100644 required/firstaid/testfiles/firstaid-cleveref-1560.lvt create mode 100644 required/firstaid/testfiles/firstaid-cleveref-1560.tlg diff --git a/base/testfiles-lthooks/ltcmdhooks-001.tlg b/base/testfiles-lthooks/ltcmdhooks-001.tlg index 0a175a3c7..2fa449c5f 100644 --- a/base/testfiles-lthooks/ltcmdhooks-001.tlg +++ b/base/testfiles-lthooks/ltcmdhooks-001.tlg @@ -252,7 +252,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after cmd/foo/before -> before 1 before 2 \__hook_toplevel cmd/foo/before {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}\__hook_next cmd/foo/before {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9} diff --git a/base/testfiles-lthooks/lthooks-000.tlg b/base/testfiles-lthooks/lthooks-000.tlg index 8a93c911d..580bfe983 100644 --- a/base/testfiles-lthooks/lthooks-000.tlg +++ b/base/testfiles-lthooks/lthooks-000.tlg @@ -176,7 +176,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-000.aux. diff --git a/base/testfiles-lthooks/lthooks-001.tlg b/base/testfiles-lthooks/lthooks-001.tlg index 9ac5c370f..0f94cd18b 100644 --- a/base/testfiles-lthooks/lthooks-001.tlg +++ b/base/testfiles-lthooks/lthooks-001.tlg @@ -183,7 +183,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobar\__hook_toplevel xxx \__hook_next xxx LaTeX hooks Warning: Cannot remove chunk 'label3' from hook 'xxx' because it does not exist in that hook. @@ -427,7 +427,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo\__hook_toplevel xxx \__hook_next xxx The hook xxx contains the rules: diff --git a/base/testfiles-lthooks/lthooks-002.tlg b/base/testfiles-lthooks/lthooks-002.tlg index 9c43281db..ed051ed51 100644 --- a/base/testfiles-lthooks/lthooks-002.tlg +++ b/base/testfiles-lthooks/lthooks-002.tlg @@ -183,7 +183,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobar\__hook_toplevel xxx \__hook_next xxx LaTeX hooks Warning: Cannot remove chunk 'label3' from hook 'xxx' because it does not exist in that hook. @@ -429,7 +429,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo\__hook_toplevel xxx \__hook_next xxx The hook xxx contains the rules: diff --git a/base/testfiles-lthooks/lthooks-003.tlg b/base/testfiles-lthooks/lthooks-003.tlg index f5e466b76..2462e24ea 100644 --- a/base/testfiles-lthooks/lthooks-003.tlg +++ b/base/testfiles-lthooks/lthooks-003.tlg @@ -293,6 +293,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo9 foo3 foo2 foo7 foo4 foo5 foo8 foo6\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-004.tlg b/base/testfiles-lthooks/lthooks-004.tlg index 6e7b34fab..76ac2781e 100644 --- a/base/testfiles-lthooks/lthooks-004.tlg +++ b/base/testfiles-lthooks/lthooks-004.tlg @@ -268,6 +268,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo4\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-005.tlg b/base/testfiles-lthooks/lthooks-005.tlg index 47b460998..27867eb18 100644 --- a/base/testfiles-lthooks/lthooks-005.tlg +++ b/base/testfiles-lthooks/lthooks-005.tlg @@ -300,6 +300,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo9 foo3 foo2 foo7 foo4 foo5 foo8 foo6\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-006.tlg b/base/testfiles-lthooks/lthooks-006.tlg index 200b6c39b..8f51247eb 100644 --- a/base/testfiles-lthooks/lthooks-006.tlg +++ b/base/testfiles-lthooks/lthooks-006.tlg @@ -254,6 +254,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo3 foo2\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-007.tlg b/base/testfiles-lthooks/lthooks-007.tlg index d8325c8ff..836efc091 100644 --- a/base/testfiles-lthooks/lthooks-007.tlg +++ b/base/testfiles-lthooks/lthooks-007.tlg @@ -256,7 +256,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo3\__hook_toplevel xxx \__hook_next xxx Update code for hook 'para/before' on input line ...: @@ -441,6 +441,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo1 foo3\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-008.tlg b/base/testfiles-lthooks/lthooks-008.tlg index fbf173f7f..a0d8e942c 100644 --- a/base/testfiles-lthooks/lthooks-008.tlg +++ b/base/testfiles-lthooks/lthooks-008.tlg @@ -257,7 +257,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-008.aux. diff --git a/base/testfiles-lthooks/lthooks-009.tlg b/base/testfiles-lthooks/lthooks-009.tlg index 9de10df33..2772c80e4 100644 --- a/base/testfiles-lthooks/lthooks-009.tlg +++ b/base/testfiles-lthooks/lthooks-009.tlg @@ -183,7 +183,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-009.aux. diff --git a/base/testfiles-lthooks/lthooks-011.tlg b/base/testfiles-lthooks/lthooks-011.tlg index babe8e214..b6ca923cf 100644 --- a/base/testfiles-lthooks/lthooks-011.tlg +++ b/base/testfiles-lthooks/lthooks-011.tlg @@ -182,7 +182,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foo\__hook_toplevel xxx \__hook_next xxx **** Add to hook xxx (rear) on input line ... <- bar @@ -369,7 +369,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobar\__hook_toplevel xxx \__hook_next xxx **** Add to hook xxx (labels) on input line ... <- baz @@ -558,7 +558,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobarbaz\__hook_toplevel xxx \__hook_next xxx **** Add to hook xxx (return) on input line ... <- boom @@ -749,6 +749,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after xxx -> foobarbazboom\__hook_toplevel xxx \__hook_next xxx diff --git a/base/testfiles-lthooks/lthooks-013.tlg b/base/testfiles-lthooks/lthooks-013.tlg index 3d1966999..81742b356 100644 --- a/base/testfiles-lthooks/lthooks-013.tlg +++ b/base/testfiles-lthooks/lthooks-013.tlg @@ -237,7 +237,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after env/itemize/begin -> \typeout {env itemize first}\__hook_toplevel env/itemize/begin \__hook_next env/itemize/begin diff --git a/base/testfiles-lthooks/lthooks-021.tlg b/base/testfiles-lthooks/lthooks-021.tlg index c201c3deb..afce98f94 100644 --- a/base/testfiles-lthooks/lthooks-021.tlg +++ b/base/testfiles-lthooks/lthooks-021.tlg @@ -176,7 +176,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after No file lthooks-021.aux. diff --git a/base/testfiles-lthooks/lthooks-legacy.tlg b/base/testfiles-lthooks/lthooks-legacy.tlg index 9b14c2d3a..1ed81a01a 100644 --- a/base/testfiles-lthooks/lthooks-legacy.tlg +++ b/base/testfiles-lthooks/lthooks-legacy.tlg @@ -205,7 +205,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after legacy defaultfamily on input line ... diff --git a/base/testfiles-lthooks2/lthooks2-002.tlg b/base/testfiles-lthooks2/lthooks2-002.tlg index c54a0740a..cc2a3c3f5 100644 --- a/base/testfiles-lthooks2/lthooks2-002.tlg +++ b/base/testfiles-lthooks2/lthooks2-002.tlg @@ -188,7 +188,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after package/l3graphics/after -> \__hook_toplevel package/l3graphics/after \seq_set_from_clist:Nn \l_graphics_search_ext_seq {.pdf,.eps,.ps,.png,.jpg,.jpeg}\__hook_next package/l3graphics/after (lthooks2-002.aux) diff --git a/base/testfiles-lthooks2/lthooks2-005.tlg b/base/testfiles-lthooks2/lthooks2-005.tlg index 4513dd0bd..dbb16250f 100644 --- a/base/testfiles-lthooks2/lthooks2-005.tlg +++ b/base/testfiles-lthooks2/lthooks2-005.tlg @@ -171,7 +171,7 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after **** Add to hook some-hook (other-package) on input line ... <- code from other-package, Update code for hook 'para/before' on input line ...: @@ -352,6 +352,6 @@ All initialized (non-empty) hooks: package/acro/after -> \__hook_toplevel package/acro/after \FirstAidNeededT {acro}{sty}{....-..-.. v... typeset acronyms and other abbreviations (CN)} {\UseName {prop_new:c}{l__acro_tmpa_prop}\acsetup {patch/longtable=false}}\__hook_next package/acro/after package/chemformula/before -> \RequirePackage {l3keys2e}\__hook_toplevel package/chemformula/before \__hook_next package/chemformula/before package/chemnum/after -> \__hook_toplevel package/chemnum/after \FirstAidNeededT {chemnum}{sty}{....-..-.. v... a comprehensive approach for the numbering of chemical compounds (CN)} {\UseName {prop_new:c}{l__chemnum_tmpa_prop}}\__hook_next package/chemnum/after - package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi } }\__hook_next package/cleveref/after + package/cleveref/after -> \__hook_toplevel package/cleveref/after \FirstAidNeededT {cleveref}{sty}{....-..-.. v... Intelligent cross-referencing} {\def \cref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@firstoffive ##2}}\def \cpageref@getref ##1##2{\expandafter \let \expandafter ##2\csname r@##1@cref\endcsname \expandafter \expandafter \expandafter \def \expandafter \expandafter \expandafter ##2\expandafter \expandafter \expandafter {\expandafter \@secondoffive ##2}}\AddToHook {begindocument}[cleveref]{\def \label@noarg ##1{\cref@old@label {##1}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@write \@auxout {}{\string \newlabel {##1@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }\def \label@optarg [##1]##2{\cref@old@label {##2}\@bsphack \edef \@tempa {{page}{\the \c@page }}\setcounter {page}{1}\edef \@tempb {\thepage }\expandafter \setcounter \@tempa \cref@constructprefix {page}{\cref@result }\protected@edef \cref@currentlabel {\expandafter \cref@override@label@type \cref@currentlabel \@nil {##1}}\protected@write \@auxout {}{\string \newlabel {##2@cref}{{\cref@currentlabel }{[\@tempb ][\arabic {page}][\cref@result ]\thepage }{}{}{}}}\@esphack }} \newcommand \firstaid@cref@smugglelabel {\let \cref@currentlabel \cref@gcurrentlabel@temp } \newcommand \firstaid@cref@updatelabeldata [1]{\cref@constructprefix {##1}{\cref@result }\@ifundefined {cref@##1@alias}{\def \@tempa {##1}}{\def \@tempa {\csname cref@##1@alias\endcsname }}\protected@xdef \cref@gcurrentlabel@temp {[\@tempa ][\arabic {##1}][\cref@result ]\csname p@##1\endcsname \csname the##1\endcsname }\aftergroup \firstaid@cref@smugglelabel } \newif \iftag@ \AddToHook {label}[firstaid/cleveref] {\ifx \@currentcounter \@empty \else \iftag@ \else \firstaid@cref@updatelabeldata {\@currentcounter }\fi \fi } }\__hook_next package/cleveref/after package/arydshln/after -> \__hook_toplevel package/arydshln/after \FirstAidNeededT {arydshln}{sty}{....-..-.. v... } {\protected \def \adl@@vlineL ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsL {\adl@colsL \@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }}}\protected \def \adl@@vlineR ##1##2##3##4{\adl@ivline ##4\@nil {##1}{##2}\xdef \adl@colsR {\@elt {##3}{\number \@tempcnta }{\number \@tempcntb }{\adl@dashcolor }{\adl@gapcolor }\adl@colsR }}\let \adl@act@@vlineL \adl@@vlineL \let \adl@act@@vlineR \adl@@vlineR }\__hook_next package/arydshln/after some-hook -> code to run when other-package is loaded,code from other-package,\__hook_toplevel some-hook \__hook_next some-hook diff --git a/required/firstaid/changes.txt b/required/firstaid/changes.txt index 3cdb776ef..9df930480 100644 --- a/required/firstaid/changes.txt +++ b/required/firstaid/changes.txt @@ -1,3 +1,11 @@ +2024-11-24 Ulrike Fischer + + * latex2e-first-aid-for-external-files.dtx: add iftag@-test to cleveref firstaid for issue #1560 + +2024-11-08 Ulrike Fischer + + * latex2e-first-aid-for-external-files.dtx: add missing \expandafter for issue #1544 + 2024-11-04 Ulrike Fischer * latex2e-first-aid-for-external-files.dtx: correct spurious space diff --git a/required/firstaid/latex2e-first-aid-for-external-files.dtx b/required/firstaid/latex2e-first-aid-for-external-files.dtx index 111c88c21..650c69fa5 100644 --- a/required/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/required/firstaid/latex2e-first-aid-for-external-files.dtx @@ -111,8 +111,8 @@ % \end{macrocode} % % \begin{macrocode} -\def\LaTeXFirstAidDate{2024/11/04} -\def\LaTeXFirstAidVersion{v1.1h} +\def\LaTeXFirstAidDate{2024/11/24} +\def\LaTeXFirstAidVersion{v1.1j} % \end{macrocode} % % \begin{macrocode} @@ -737,15 +737,19 @@ \aftergroup\firstaid@cref@smugglelabel } % \end{macrocode} -% we test if \cs{@currentcounter} is empty for unnumbered sections -% \changes{v1.1h}{2024/11/01}{fix spurious space} +% we test if \cs{@currentcounter} is empty for unnumbered sections +% \changes{v1.1h}{2024/11/01}{fix spurious space} +% \changes{v1.1j}{2024/11/24}{add \cs{iftag@} test, issue \#1560} % \begin{macrocode} + \newif\iftag@ \AddToHook{label}[firstaid/cleveref] {\ifx \@currentcounter\@empty \else + \iftag@\else \firstaid@cref@updatelabeldata{\@currentcounter}% - \fi} + \fi + \fi} }% } % \end{macrocode} diff --git a/required/firstaid/testfiles/firstaid-cleveref-1560.luatex.tlg b/required/firstaid/testfiles/firstaid-cleveref-1560.luatex.tlg new file mode 100644 index 000000000..b14bbe44a --- /dev/null +++ b/required/firstaid/testfiles/firstaid-cleveref-1560.luatex.tlg @@ -0,0 +1,617 @@ +This is a generated file for the l3build validation system. +Don't change this file in any respect. +Completed box being shipped out [1] +\vbox(633.0+0.0)x407.0, direction TLT +.\glue 16.0 +.\vbox(617.0+0.0)x345.0, shifted 62.0, direction TLT +..\vbox(12.0+0.0)x345.0, glue set 12.0fil, direction TLT +...\glue 0.0 plus 1.0fil +...\hbox(0.0+0.0)x345.0, direction TLT +....\hbox(0.0+0.0)x345.0, direction TLT +..\glue 25.0 +..\glue(\lineskip) 0.0 +..\vbox(550.0+0.0)x345.0, glue set 148.01204fil, direction TLT +...\write-{} +...\glue(\topskip) 3.32141 +...\hbox(6.67859+1.94444)x345.0, glue set 288.83325fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(0.0+0.0)x15.0, direction TLT +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 c +....\discretionary (penalty 50) +.....< \OT1/cmr/m/n/10 - +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\penalty 10000 +....\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\penalty 150 +...\glue(\baselineskip) 2.55556 +...\hbox(7.5+2.5)x345.0, glue set 297.49988fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 313.61105fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 313.61105fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 2 +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.82141 +...\hbox(6.67859+1.94444)x345.0, glue set 303.83325fil, direction TLT +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 c +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\penalty 10000 +....\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.55556 +...\hbox(7.5+2.5)x345.0, glue set 294.99991fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 289.99988fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 * +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.82141 +...\hbox(6.67859+1.94444)x345.0, glue set 303.83325fil, direction TLT +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 c +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\penalty 10000 +....\glue(\spaceskip) 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.55556 +...\hbox(7.5+2.5)x345.0, glue set 297.2221fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 X +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\penalty 150 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 289.44434fil, direction TLT +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern0.0 (italic) +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\discretionary (penalty 50) +.....< \OT1/cmr/m/n/10 - +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 (font) +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 ) +....\kern0.0 (italic) +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty -300 +...\glue 15.0694 plus 4.30554 minus 0.86108 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.50002 +...\hbox(9.99998+0.0)x345.0, glue set 271.81842fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(9.27998+0.0)x24.29997, direction TLT +.....\glue 0.0 +.....\OT1/cmr/bx/n/14.4 1 +.....\glue 16.19998 +....\OT1/cmr/bx/n/14.4 s +....\OT1/cmr/bx/n/14.4 e +....\OT1/cmr/bx/n/14.4 c +....\discretionary (penalty 50) +.....< \OT1/cmr/bx/n/14.4 - +....\OT1/cmr/bx/n/14.4 t +....\OT1/cmr/bx/n/14.4 i +....\OT1/cmr/bx/n/14.4 o +....\OT1/cmr/bx/n/14.4 n +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\write1{\@writefile{toc}{\protect \contentsline {section}{\protect \numberline {1}section}{\thepage }{}\protected@file@percent }} +...\penalty 10000 +...\glue 9.90276 plus 0.86108 +...\write1{\newlabel{sec}{{1}{\thepage }{}{section.1}{}}} +...\penalty 10000 +...\penalty 10000 +...\write1{\newlabel{sec@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +...\penalty 10000 +...\penalty 10000 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayskip) 10.0 plus 2.0 minus 5.0 +...\glue -3.0 +...\glue 0.0 +...\glue(\baselineskip) 6.60004 +...\hbox(8.39996+3.60004)x345.0, direction TLT +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x5.28589, direction TLT +.....\glue 0.0 plus 1.0fil +.....\hbox(8.39996+3.60004)x0.0, direction TLT +......\vbox(8.39996+3.60004)x0.0, direction TLT +.......\kern0.0 +.......\hbox(8.39996+3.60004)x0.0, direction TLT +........\rule(8.39996+3.60004)x0.0 +.....\hbox(4.30554+0.0)x5.28589, direction TLT +......\mathon +......\OML/cmm/m/it/10 a +......\mathoff +....\glue(\tabskip) 0.0 +....\hbox(8.39996+3.60004)x4.29166, direction TLT +.....\hbox(6.94444+0.0)x4.29166, direction TLT +......\mathon +......\hbox(6.94444+0.0)x4.29166, direction TLT +.......\hbox(0.0+0.0)x0.0, direction TLT +.......\OML/cmm/m/it/10 b +......\mathoff +.....\glue 0.0 plus 1.0fil +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x0.0, direction TLT +.....\kern-167.71123 +.....\kern167.71123 +.....\hbox(8.39996+3.60004)x0.0, glue set - 28.88898fil, direction TLT +......\glue 0.0 plus 1.0fil minus 1.0fil +......\hbox(8.39996+3.60004)x28.88898, direction TLT +.......\hbox(8.39996+3.60004)x0.0, direction TLT +........\vbox(8.39996+3.60004)x0.0, direction TLT +.........\kern0.0 +.........\hbox(8.39996+3.60004)x0.0, direction TLT +..........\rule(8.39996+3.60004)x0.0 +.......\hbox(7.5+2.5)x28.88898, direction TLT +........\OT1/cmr/m/n/10 ( +........\OT1/cmr/m/n/10 a +........\OT1/cmr/m/n/10 l +........\OT1/cmr/m/n/10 i +........\OT1/cmr/m/n/10 g +........\OT1/cmr/m/n/10 n +........\kern0.0 (italic) +........\OT1/cmr/m/n/10 ) +.......\write1{\newlabel{a1}{{{align}}{\thepage }{}{section.1}{}}} +.......\write1{\newlabel{a1@cref}{{[equation][2147483647][]{align}}{[1][1][]\thepage }{}{}{}}} +....\glue(\tabskip) 0.0 +...\penalty 10000 +...\glue 0.0 +...\glue(\baselineskip) 3.0 +...\hbox(8.39996+3.60004)x345.0, direction TLT +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x5.28589, direction TLT +.....\glue 0.0 plus 1.0fil +.....\hbox(8.39996+3.60004)x0.0, direction TLT +......\vbox(8.39996+3.60004)x0.0, direction TLT +.......\kern0.0 +.......\hbox(8.39996+3.60004)x0.0, direction TLT +........\rule(8.39996+3.60004)x0.0 +.....\hbox(4.30554+0.0)x5.28589, direction TLT +......\mathon +......\OML/cmm/m/it/10 a +......\mathoff +....\glue(\tabskip) 0.0 +....\hbox(8.39996+3.60004)x4.29166, direction TLT +.....\hbox(6.94444+0.0)x4.29166, direction TLT +......\mathon +......\hbox(6.94444+0.0)x4.29166, direction TLT +.......\hbox(0.0+0.0)x0.0, direction TLT +.......\OML/cmm/m/it/10 b +......\mathoff +.....\glue 0.0 plus 1.0fil +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x0.0, direction TLT +.....\kern-167.71123 +.....\kern167.71123 +.....\hbox(8.39996+3.60004)x0.0, glue set - 12.77782fil, direction TLT +......\glue 0.0 plus 1.0fil minus 1.0fil +......\hbox(8.39996+3.60004)x12.77782, direction TLT +.......\hbox(8.39996+3.60004)x0.0, direction TLT +........\vbox(8.39996+3.60004)x0.0, direction TLT +.........\kern0.0 +.........\hbox(8.39996+3.60004)x0.0, direction TLT +..........\rule(8.39996+3.60004)x0.0 +.......\hbox(7.5+2.5)x12.77782, direction TLT +........\OT1/cmr/m/n/10 ( +........\OT1/cmr/m/n/10 1 +........\kern0.0 (italic) +........\OT1/cmr/m/n/10 ) +.......\write1{\newlabel{a2}{{1}{\thepage }{}{equation.1}{}}} +.......\write1{\newlabel{a2@cref}{{[equation][1][]1}{[1][1][]\thepage }{}{}{}}} +....\glue(\tabskip) 0.0 +...\penalty 10000 +...\glue 0.0 +...\penalty 0 +...\glue(\belowdisplayskip) 10.0 plus 2.0 minus 5.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 0.89996 +...\hbox(7.5+2.5)x345.0, direction TLT +....\kern161.04462 (font) +....\hbox(6.94444+0.0)x22.91077, direction TLT +.....\hbox(0.0+0.0)x0.0, direction TLT +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern148.2668 (font) +....\hbox(7.5+2.5)x12.77782, direction TLT +.....\hbox(7.5+2.5)x12.77782, direction TLT +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 2 +......\kern0.0 (italic) +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{b}{{2}{\thepage }{}{equation.2}{}}} +.....\write1{\newlabel{b@cref}{{[equation][2][]2}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 2.55556 +...\hbox(6.94444+0.0)x22.91077, shifted 161.04462, direction TLT +....\OML/cmm/m/it/10 a +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OT1/cmr/m/n/10 = +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OML/cmm/m/it/10 b +....\write1{\newlabel{c}{{1}{\thepage }{}{equation.2}{}}} +....\write1{\newlabel{c@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 12.0 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(0.0+0.0)x15.0, direction TLT +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x345.0, direction TLT +....\kern161.04462 (font) +....\hbox(6.94444+0.0)x22.91077, direction TLT +.....\hbox(0.0+0.0)x0.0, direction TLT +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern129.65565 (font) +....\hbox(7.5+2.5)x31.38896, direction TLT +.....\hbox(7.5+2.5)x31.38896, direction TLT +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 t +......\OT1/cmr/m/n/10 a +......\OT1/cmr/m/n/10 g +......\OT1/cmr/m/n/10 e +......\OT1/cmr/m/n/10 q +......\kern0.0 (italic) +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{d}{{{tageq}}{\thepage }{}{equation.3}{}}} +.....\write1{\newlabel{d@cref}{{[equation][2147483647][]{tageq}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 9.5 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(0.0+0.0)x15.0, direction TLT +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x345.0, direction TLT +....\kern161.04462 (font) +....\hbox(6.94444+0.0)x22.91077, direction TLT +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern124.65564 (font) +....\hbox(7.5+2.5)x36.38898, direction TLT +.....\hbox(7.5+2.5)x36.38898, direction TLT +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 t +......\OT1/cmr/m/n/10 a +......\OT1/cmr/m/n/10 g +......\OT1/cmr/m/n/10 e +......\OT1/cmr/m/n/10 q +......\OT1/cmr/m/n/10 * +......\kern0.0 (italic) +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{e}{{{tageq*}}{\thepage }{}{equation.3}{}}} +.....\write1{\newlabel{e@cref}{{[equation][2147483647][]{tageq*}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 9.5 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(0.0+0.0)x15.0, direction TLT +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 5.05556 +...\hbox(6.94444+0.0)x22.91077, shifted 161.04462, direction TLT +....\OML/cmm/m/it/10 a +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OT1/cmr/m/n/10 = +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OML/cmm/m/it/10 b +....\write1{\newlabel{f}{{1}{\thepage }{}{equation.3}{}}} +....\write1{\newlabel{f@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 12.0 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(0.0+0.0)x15.0, direction TLT +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x345.0, direction TLT +....\kern161.04462 (font) +....\hbox(6.94444+0.0)x22.91077, direction TLT +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern131.87787 (font) +....\hbox(7.5+2.5)x29.16675, direction TLT +.....\hbox(7.5+2.5)x29.16675, direction TLT +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 t +......\OT1/cmr/m/n/10 a +......\OT1/cmr/m/n/10 g +......\OT1/cmr/m/n/10 X +......\kern0.0 (italic) +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{g}{{{tagX}}{\thepage }{}{equation.3}{}}} +.....\write1{\newlabel{g@cref}{{[equation][2147483647][]{tagX}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue -8.5 plus -3.0 minus -3.0 +...\penalty -51 +...\glue 2.5 +...\glue 6.0 plus 3.0 minus 3.0 +...\glue -6.0 plus -3.0 minus -3.0 +...\glue 10.0 plus 4.0 minus 5.0 +...\glue -10.0 plus -4.0 minus -5.0 +...\glue 6.0 plus 2.0 minus 4.0 +...\glue(\parskip) 4.0 plus 2.0 minus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 2.82141 +...\hbox(6.67859+0.0)x319.99997, glue set 300.55548fil, shifted 25.00003, direction TLT +....\localpar +.....\localinterlinepenalty=0 +.....\localbrokenpenalty=0 +.....\localleftbox=null +.....\localrightbox=null +....\hbox(6.44444+0.0)x0.0, direction TLT +.....\glue 0.0 +.....\glue -20.00003 +.....\glue -5.0 +.....\hbox(6.44444+0.0)x20.00003, glue set 20.00003fil, direction TLT +......\glue 0.0 plus 1.0fil minus 1.0fil +......\hbox(6.44444+0.0)x0.0, glue set - 7.7778fil, direction TLT +.......\glue 0.0 plus 1.0fil minus 1.0fil +.......\OT1/cmr/m/n/10 1 +.......\OT1/cmr/m/n/10 . +.....\glue 5.0 +....\penalty 0 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 m +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x319.99997, shifted 25.00003, direction TLT +....\kern148.5446 (font) +....\hbox(6.94444+0.0)x22.91077, direction TLT +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern108.82228 (font) +....\hbox(7.5+2.5)x39.72232, direction TLT +.....\hbox(7.5+2.5)x39.72232, direction TLT +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 i +......\OT1/cmr/m/n/10 n +......\discretionary (penalty 50) +.......< \OT1/cmr/m/n/10 - +......\OT1/cmr/m/n/10 e +......\OT1/cmr/m/n/10 n +......\kern-0.27779 (font) +......\OT1/cmr/m/n/10 u +......\OT1/cmr/m/n/10 m +......\kern0.0 (italic) +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{h}{{{inenum}}{\thepage }{}{enumi.1}{}}} +.....\write1{\newlabel{h@cref}{{[equation][2147483647][]{inenum}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue -6.0 plus -3.0 minus -3.0 +...\glue 10.0 plus 4.0 minus 4.0 +...\glue -12.5 plus -4.0 minus -4.0 +...\penalty -51 +...\glue 2.5 +...\glue 10.0 plus 4.0 minus 4.0 +...\glue -2.5 +...\glue 0.0 plus 1.0fil +...\glue 0.0 +...\glue 0.0 plus 0.0001fil +..\glue(\baselineskip) 23.55556 +..\hbox(6.44444+0.0)x345.0, direction TLT +...\hbox(6.44444+0.0)x345.0, glue set 170.0fil, direction TLT +....\glue 0.0 plus 1.0fil +....\OT1/cmr/m/n/10 1 +....\glue 0.0 plus 1.0fil +(firstaid-cleveref-1560.aux) diff --git a/required/firstaid/testfiles/firstaid-cleveref-1560.lvt b/required/firstaid/testfiles/firstaid-cleveref-1560.lvt new file mode 100644 index 000000000..24ce7a728 --- /dev/null +++ b/required/firstaid/testfiles/firstaid-cleveref-1560.lvt @@ -0,0 +1,52 @@ +\documentclass{article} +\input{regression-test} +\usepackage{amsmath} +\usepackage{cleveref} +\SHOWFILE{\jobname.aux} +\begin{document} +\START\showoutput +\cref{sec},\\ +\cref{a1},\\ +\cref{a2},\\ +\cref{b},\\ +\cref{c},\\ +\cref{d},\\ +\cref{e},\\ +\cref{f},\\ +\cref{g},\\ +\cref{h} +\section{section}\label{sec} +\begin{align} +a& b\tag{align}\label{a1}\\ +a& b \label{a2} +\end{align} +\begin{equation} +a= b\label{b} +\end{equation} +\begin{equation*} +a= b\label{c} +\end{equation*} + +\begin{equation} +a= b\tag{tageq}\label{d} +\end{equation} + +\begin{equation*} +a= b\tag{tageq*}\label{e} +\end{equation*} + +\[ +a= b\label{f} +\] + +\[ +a= b\tag{tagX}\label{g} +\] + +\begin{enumerate} + \item item + \begin{equation*} + a= b \tag{inenum}\label{h} + \end{equation*} +\end{enumerate} +\end{document} \ No newline at end of file diff --git a/required/firstaid/testfiles/firstaid-cleveref-1560.tlg b/required/firstaid/testfiles/firstaid-cleveref-1560.tlg new file mode 100644 index 000000000..02573e8bf --- /dev/null +++ b/required/firstaid/testfiles/firstaid-cleveref-1560.tlg @@ -0,0 +1,569 @@ +This is a generated file for the l3build validation system. +Don't change this file in any respect. +Completed box being shipped out [1] +\vbox(633.0+0.0)x407.0 +.\glue 16.0 +.\vbox(617.0+0.0)x345.0, shifted 62.0 +..\vbox(12.0+0.0)x345.0, glue set 12.0fil +...\glue 0.0 plus 1.0fil +...\hbox(0.0+0.0)x345.0 +....\hbox(0.0+0.0)x345.0 +..\glue 25.0 +..\glue(\lineskip) 0.0 +..\vbox(550.0+0.0)x345.0, glue set 148.01204fil +...\write-{} +...\glue(\topskip) 3.32141 +...\hbox(6.67859+1.94444)x345.0, glue set 288.83327fil +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 c +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\penalty 150 +...\glue(\baselineskip) 2.55556 +...\hbox(7.5+2.5)x345.0, glue set 297.4999fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 313.61105fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 313.61105fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 2 +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.82141 +...\hbox(6.67859+1.94444)x345.0, glue set 303.83327fil +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 c +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.55556 +...\hbox(7.5+2.5)x345.0, glue set 294.99991fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 289.9999fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 * +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.82141 +...\hbox(6.67859+1.94444)x345.0, glue set 303.83327fil +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 c +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 1 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 2.55556 +...\hbox(7.5+2.5)x345.0, glue set 297.22212fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 X +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\OT1/cmr/m/n/10 , +....\penalty 10000 +....\glue 0.0 plus 1.0fil +....\penalty -10000 +....\glue(\rightskip) 0.0 +...\penalty 150 +...\glue(\baselineskip) 2.0 +...\hbox(7.5+2.5)x345.0, glue set 289.44434fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 q +....\OT1/cmr/m/n/10 . +....\kern 0.0 +....\penalty 10000 +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 ( +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 ) +....\kern 0.0 +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty -300 +...\glue 15.0694 plus 4.30554 minus 0.86108 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.50002 +...\hbox(9.99998+0.0)x345.0, glue set 271.8184fil +....\hbox(9.27998+0.0)x24.29997 +.....\glue 0.0 +.....\OT1/cmr/bx/n/14.4 1 +.....\glue 16.19998 +....\OT1/cmr/bx/n/14.4 s +....\OT1/cmr/bx/n/14.4 e +....\OT1/cmr/bx/n/14.4 c +....\OT1/cmr/bx/n/14.4 t +....\OT1/cmr/bx/n/14.4 i +....\OT1/cmr/bx/n/14.4 o +....\OT1/cmr/bx/n/14.4 n +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\write1{\@writefile{toc}{\protect \contentsline {section}{\protect \numberline {1}section}{\thepage }{}\protected@file@percent }} +...\penalty 10000 +...\glue 9.90276 plus 0.86108 +...\write1{\newlabel{sec}{{1}{\thepage }{}{section.1}{}}} +...\penalty 10000 +...\penalty 10000 +...\write1{\newlabel{sec@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +...\penalty 10000 +...\penalty 10000 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayskip) 10.0 plus 2.0 minus 5.0 +...\glue -3.0 +...\glue 0.0 +...\glue(\baselineskip) 6.60004 +...\hbox(8.39996+3.60004)x345.0, display +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x5.28589 +.....\glue 0.0 plus 1.0fil +.....\hbox(8.39996+3.60004)x0.0 +......\vbox(8.39996+3.60004)x0.0 +.......\kern 0.0 +.......\hbox(8.39996+3.60004)x0.0 +........\rule(8.39996+3.60004)x0.0 +.....\hbox(4.30554+0.0)x5.28589 +......\mathon +......\OML/cmm/m/it/10 a +......\mathoff +....\glue(\tabskip) 0.0 +....\hbox(8.39996+3.60004)x4.29166 +.....\hbox(6.94444+0.0)x4.29166 +......\mathon +......\hbox(6.94444+0.0)x4.29166 +.......\hbox(0.0+0.0)x0.0 +.......\OML/cmm/m/it/10 b +......\mathoff +.....\glue 0.0 plus 1.0fil +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x0.0 +.....\kern -167.71123 +.....\kern 167.71123 +.....\hbox(8.39996+3.60004)x0.0, glue set - 28.88898fil +......\glue 0.0 plus 1.0fil minus 1.0fil +......\hbox(8.39996+3.60004)x28.88898 +.......\hbox(8.39996+3.60004)x0.0 +........\vbox(8.39996+3.60004)x0.0 +.........\kern 0.0 +.........\hbox(8.39996+3.60004)x0.0 +..........\rule(8.39996+3.60004)x0.0 +.......\hbox(7.5+2.5)x28.88898 +........\OT1/cmr/m/n/10 ( +........\OT1/cmr/m/n/10 a +........\OT1/cmr/m/n/10 l +........\OT1/cmr/m/n/10 i +........\OT1/cmr/m/n/10 g +........\OT1/cmr/m/n/10 n +........\kern 0.0 +........\OT1/cmr/m/n/10 ) +.......\write1{\newlabel{a1}{{{align}}{\thepage }{}{section.1}{}}} +.......\write1{\newlabel{a1@cref}{{[equation][2147483647][]{align}}{[1][1][]\thepage }{}{}{}}} +....\glue(\tabskip) 0.0 +...\penalty 10000 +...\glue 0.0 +...\glue(\baselineskip) 3.0 +...\hbox(8.39996+3.60004)x345.0, display +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x5.28589 +.....\glue 0.0 plus 1.0fil +.....\hbox(8.39996+3.60004)x0.0 +......\vbox(8.39996+3.60004)x0.0 +.......\kern 0.0 +.......\hbox(8.39996+3.60004)x0.0 +........\rule(8.39996+3.60004)x0.0 +.....\hbox(4.30554+0.0)x5.28589 +......\mathon +......\OML/cmm/m/it/10 a +......\mathoff +....\glue(\tabskip) 0.0 +....\hbox(8.39996+3.60004)x4.29166 +.....\hbox(6.94444+0.0)x4.29166 +......\mathon +......\hbox(6.94444+0.0)x4.29166 +.......\hbox(0.0+0.0)x0.0 +.......\OML/cmm/m/it/10 b +......\mathoff +.....\glue 0.0 plus 1.0fil +....\glue(\tabskip) 167.71123 +....\hbox(8.39996+3.60004)x0.0 +.....\kern -167.71123 +.....\kern 167.71123 +.....\hbox(8.39996+3.60004)x0.0, glue set - 12.77782fil +......\glue 0.0 plus 1.0fil minus 1.0fil +......\hbox(8.39996+3.60004)x12.77782 +.......\hbox(8.39996+3.60004)x0.0 +........\vbox(8.39996+3.60004)x0.0 +.........\kern 0.0 +.........\hbox(8.39996+3.60004)x0.0 +..........\rule(8.39996+3.60004)x0.0 +.......\hbox(7.5+2.5)x12.77782 +........\OT1/cmr/m/n/10 ( +........\OT1/cmr/m/n/10 1 +........\kern 0.0 +........\OT1/cmr/m/n/10 ) +.......\write1{\newlabel{a2}{{1}{\thepage }{}{equation.1}{}}} +.......\write1{\newlabel{a2@cref}{{[equation][1][]1}{[1][1][]\thepage }{}{}{}}} +....\glue(\tabskip) 0.0 +...\penalty 10000 +...\glue 0.0 +...\penalty 0 +...\glue(\belowdisplayskip) 10.0 plus 2.0 minus 5.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 0.89996 +...\hbox(7.5+2.5)x183.95538, shifted 161.04462 +....\hbox(6.94444+0.0)x22.91077, display +.....\hbox(0.0+0.0)x0.0 +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern148.2668 +....\hbox(7.5+2.5)x12.77782, display +.....\hbox(7.5+2.5)x12.77782 +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 2 +......\kern 0.0 +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{b}{{2}{\thepage }{}{equation.2}{}}} +.....\write1{\newlabel{b@cref}{{[equation][2][]2}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 2.55556 +...\hbox(6.94444+0.0)x22.91077, shifted 161.04462, display +....\OML/cmm/m/it/10 a +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OT1/cmr/m/n/10 = +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OML/cmm/m/it/10 b +....\write1{\newlabel{c}{{1}{\thepage }{}{equation.2}{}}} +....\write1{\newlabel{c@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 12.0 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil +....\hbox(0.0+0.0)x15.0 +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x183.95538, shifted 161.04462 +....\hbox(6.94444+0.0)x22.91077, display +.....\hbox(0.0+0.0)x0.0 +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern129.65565 +....\hbox(7.5+2.5)x31.38896, display +.....\hbox(7.5+2.5)x31.38896 +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 t +......\OT1/cmr/m/n/10 a +......\OT1/cmr/m/n/10 g +......\OT1/cmr/m/n/10 e +......\OT1/cmr/m/n/10 q +......\kern 0.0 +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{d}{{{tageq}}{\thepage }{}{equation.3}{}}} +.....\write1{\newlabel{d@cref}{{[equation][2147483647][]{tageq}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 9.5 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil +....\hbox(0.0+0.0)x15.0 +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x183.95538, shifted 161.04462 +....\hbox(6.94444+0.0)x22.91077, display +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern124.65564 +....\hbox(7.5+2.5)x36.38898, display +.....\hbox(7.5+2.5)x36.38898 +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 t +......\OT1/cmr/m/n/10 a +......\OT1/cmr/m/n/10 g +......\OT1/cmr/m/n/10 e +......\OT1/cmr/m/n/10 q +......\OT1/cmr/m/n/10 * +......\kern 0.0 +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{e}{{{tageq*}}{\thepage }{}{equation.3}{}}} +.....\write1{\newlabel{e@cref}{{[equation][2147483647][]{tageq*}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 9.5 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil +....\hbox(0.0+0.0)x15.0 +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 5.05556 +...\hbox(6.94444+0.0)x22.91077, shifted 161.04462, display +....\OML/cmm/m/it/10 a +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OT1/cmr/m/n/10 = +....\glue(\thickmuskip) 2.77771 plus 2.77771 +....\OML/cmm/m/it/10 b +....\write1{\newlabel{f}{{1}{\thepage }{}{equation.3}{}}} +....\write1{\newlabel{f@cref}{{[section][1][]1}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 12.0 +...\hbox(0.0+0.0)x345.0, glue set 330.0fil +....\hbox(0.0+0.0)x15.0 +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x183.95538, shifted 161.04462 +....\hbox(6.94444+0.0)x22.91077, display +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern131.87787 +....\hbox(7.5+2.5)x29.16675, display +.....\hbox(7.5+2.5)x29.16675 +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 t +......\OT1/cmr/m/n/10 a +......\OT1/cmr/m/n/10 g +......\OT1/cmr/m/n/10 X +......\kern 0.0 +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{g}{{{tagX}}{\thepage }{}{equation.3}{}}} +.....\write1{\newlabel{g@cref}{{[equation][2147483647][]{tagX}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue -8.5 plus -3.0 minus -3.0 +...\penalty -51 +...\glue 2.5 +...\glue 6.0 plus 3.0 minus 3.0 +...\glue -6.0 plus -3.0 minus -3.0 +...\glue 10.0 plus 4.0 minus 5.0 +...\glue -10.0 plus -4.0 minus -5.0 +...\glue 6.0 plus 2.0 minus 4.0 +...\glue(\parskip) 4.0 plus 2.0 minus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 2.82141 +...\hbox(6.67859+0.0)x319.99997, glue set 300.55548fil, shifted 25.00003 +....\hbox(6.44444+0.0)x0.0 +.....\glue 0.0 +.....\glue -20.00003 +.....\glue -5.0 +.....\hbox(6.44444+0.0)x20.00003, glue set 20.00003fil +......\glue 0.0 plus 1.0fil minus 1.0fil +......\hbox(6.44444+0.0)x0.0, glue set - 7.7778fil +.......\glue 0.0 plus 1.0fil minus 1.0fil +.......\OT1/cmr/m/n/10 1 +.......\OT1/cmr/m/n/10 . +.....\glue 5.0 +....\penalty 0 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 m +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\penalty 10000 +...\glue(\abovedisplayshortskip) 0.0 plus 3.0 +...\glue(\baselineskip) 4.5 +...\hbox(7.5+2.5)x171.45537, shifted 173.54463 +....\hbox(6.94444+0.0)x22.91077, display +.....\OML/cmm/m/it/10 a +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OT1/cmr/m/n/10 = +.....\glue(\thickmuskip) 2.77771 plus 2.77771 +.....\OML/cmm/m/it/10 b +....\kern108.82228 +....\hbox(7.5+2.5)x39.72232, display +.....\hbox(7.5+2.5)x39.72232 +......\OT1/cmr/m/n/10 ( +......\OT1/cmr/m/n/10 i +......\OT1/cmr/m/n/10 n +......\OT1/cmr/m/n/10 e +......\OT1/cmr/m/n/10 n +......\kern-0.27779 +......\OT1/cmr/m/n/10 u +......\OT1/cmr/m/n/10 m +......\kern 0.0 +......\OT1/cmr/m/n/10 ) +.....\write1{\newlabel{h}{{{inenum}}{\thepage }{}{enumi.1}{}}} +.....\write1{\newlabel{h@cref}{{[equation][2147483647][]{inenum}}{[1][1][]\thepage }{}{}{}}} +...\penalty 0 +...\glue(\belowdisplayshortskip) 6.0 plus 3.0 minus 3.0 +...\glue -6.0 plus -3.0 minus -3.0 +...\glue 10.0 plus 4.0 minus 4.0 +...\glue -12.5 plus -4.0 minus -4.0 +...\penalty -51 +...\glue 2.5 +...\glue 10.0 plus 4.0 minus 4.0 +...\glue -2.5 +...\glue 0.0 plus 1.0fil +...\glue 0.0 +...\glue 0.0 plus 0.0001fil +..\glue(\baselineskip) 23.55556 +..\hbox(6.44444+0.0)x345.0 +...\hbox(6.44444+0.0)x345.0, glue set 170.0fil +....\glue 0.0 plus 1.0fil +....\OT1/cmr/m/n/10 1 +....\glue 0.0 plus 1.0fil +(firstaid-cleveref-1560.aux) From 81ac652236977ba18edab9144bbc4197cb3a437f Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Sun, 22 Dec 2024 09:51:55 +0000 Subject: [PATCH 07/14] Update l3kernel to 2024-12-09 --- base/testfiles/github-0944.tlg | 2 +- texmf/tex/latex/l3kernel/expl3-code.tex | 167 ++++++++++++++++----- texmf/tex/latex/l3kernel/expl3-generic.tex | 2 +- texmf/tex/latex/l3kernel/expl3.ltx | 2 +- texmf/tex/latex/l3kernel/expl3.sty | 2 +- texmf/tex/latex/l3kernel/l3debug.def | 2 +- texmf/tex/latex/l3kernel/l3doc.cls | 9 +- 7 files changed, 142 insertions(+), 44 deletions(-) diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg index 8a966c9c2..ed4f246e8 100644 --- a/base/testfiles/github-0944.tlg +++ b/base/testfiles/github-0944.tlg @@ -21,8 +21,8 @@ LaTeX Warning: Reference `unknown' on page 1 undefined on input line .... [1 ] (github-0944.aux) *********** +L3 programming layer <2024-12-09> -formatname- <-formatversion-> patch level -2 -L3 programming layer <2024-11-02> *********** *File List* -show the file list here- diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex index 552e502f8..ee46de3b4 100644 --- a/texmf/tex/latex/l3kernel/expl3-code.tex +++ b/texmf/tex/latex/l3kernel/expl3-code.tex @@ -75,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-11-02}% +\def\ExplFileDate{2024-12-09}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3864,6 +3864,37 @@ \cs_new:Npn \__tl_replace_next_aux:w { \__tl_replace_next:w { } { } } \cs_new_eq:NN \__tl_replace_wrap:w ? \cs_new_eq:NN \__tl_replace_next:w ? +\cs_new_protected:Npn \tl_regex_replace_once:Nnn #1#2#3 + { \regex_replace_once:nnN {#2} {#3} #1 } +\cs_generate_variant:Nn \tl_regex_replace_once:Nnn { c } +\cs_new_protected:Npn \tl_regex_replace_once:NNn #1#2#3 + { \regex_replace_once:NnN #2 {#3} #1 } +\cs_generate_variant:Nn \tl_regex_replace_once:NNn { c } +\cs_new_protected:Npn \tl_regex_replace_all:Nnn #1#2#3 + { \regex_replace_all:nnN {#2} {#3} #1 } +\cs_generate_variant:Nn \tl_regex_replace_all:Nnn { c } +\cs_new_protected:Npn \tl_regex_replace_all:NNn #1#2#3 + { \regex_replace_all:NnN #2 {#3} #1 } +\cs_generate_variant:Nn \tl_regex_replace_all:NNn { c } +\group_begin: + \cs_set_protected:Npn \__tl_tmp:w #1#2#3 + { + \cs_new_protected:cpe { tl_regex_greplace_ #1 :N #2 n } ##1##2##3 + { + \group_begin: + \tl_set_eq:NN \exp_not:N \l__tl_internal_a_tl ##1 + \exp_not:c { regex_replace_ #1 :Nn #2 } + #3 {##2} {##3} \exp_not:N \l__tl_internal_a_tl + \tl_gset_eq:NN ##1 \exp_not:N \l__tl_internal_a_tl + \group_end: + } + \cs_generate_variant:cn { tl_regex_greplace_ #1 :N #2 n } { c } + } + \__tl_tmp:w { once } n { } + \__tl_tmp:w { once } N \use:n + \__tl_tmp:w { all } n { } + \__tl_tmp:w { all } N \use:n +\group_end: \cs_new_protected:Npn \tl_remove_once:Nn #1#2 { \tl_replace_once:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_once:Nn #1#2 @@ -4016,6 +4047,20 @@ \prg_return_false: \fi: } +\prg_new_protected_conditional:Npnn \tl_if_regex_match:nn #1#2 { TF , T , F } + { + \regex_match:nnTF {#2} {#1} + \prg_return_true: \prg_return_false: + } +\prg_generate_conditional_variant:Nnn \tl_if_regex_match:nn + { V } { TF , T , F } +\prg_new_protected_conditional:Npnn \tl_if_regex_match:nN #1#2 { TF , T , F } + { + \regex_match:nNTF {#2} #1 + \prg_return_true: \prg_return_false: + } +\prg_generate_conditional_variant:Nnn \tl_if_regex_match:nN + { V } { TF , T , F } \cs_new:Npn \tl_map_function:nN #1#2 { \__tl_map_function:Nnnnnnnnn #2 #1 @@ -5619,6 +5664,45 @@ #1 #2 { #3 } \__seq_pop_item_def: } +\cs_new_protected:Npn \seq_set_regex_extract_once:Nnn #1#2#3 + { \regex_extract_once:nnN {#2} {#3} #1 } +\cs_generate_variant:Nn \seq_set_regex_extract_once:Nnn { c } +\cs_new_protected:Npn \seq_set_regex_extract_once:NNn #1#2#3 + { \regex_extract_once:NnN #2 {#3} #1 } +\cs_generate_variant:Nn \seq_set_regex_extract_once:NNn { c } +\cs_new_protected:Npn \seq_set_regex_extract_all:Nnn #1#2#3 + { \regex_extract_all:nnN {#2} {#3} #1 } +\cs_generate_variant:Nn \seq_set_regex_extract_all:Nnn { c } +\cs_new_protected:Npn \seq_set_regex_extract_all:NNn #1#2#3 + { \regex_extract_all:NnN #2 {#3} #1 } +\cs_generate_variant:Nn \seq_set_regex_extract_all:NNn { c } +\cs_new_protected:Npn \seq_set_regex_split:Nnn #1#2#3 + { \regex_split:nnN {#2} {#3} #1 } +\cs_generate_variant:Nn \seq_set_regex_split:Nnn { c } +\cs_new_protected:Npn \seq_set_regex_split:NNn #1#2#3 + { \regex_split:NnN #2 {#3} #1 } +\cs_generate_variant:Nn \seq_set_regex_split:NNn { c } +\group_begin: + \cs_set_protected:Npn \__seq_tmp:w #1#2#3 + { + \cs_new_protected:cpe { seq_gset_regex_ #1 :N #2 n } ##1##2##3 + { + \group_begin: + \seq_set_eq:NN \exp_not:N \l__seq_tmp_seq ##1 + \exp_not:c { regex_ #1 :Nn #2 } + #3 {##2} {##3} \exp_not:N \l__seq_tmp_seq + \seq_gset_eq:NN ##1 \exp_not:N \l__seq_tmp_seq + \group_end: + } + \cs_generate_variant:cn { seq_gset_regex_ #1 :N #2 n } { c } + } + \__seq_tmp:w { extract_once } n { } + \__seq_tmp:w { extract_once } N \use:n + \__seq_tmp:w { extract_all } n { } + \__seq_tmp:w { extract_all } N \use:n + \__seq_tmp:w { split } n { } + \__seq_tmp:w { split } N \use:n +\group_end: \cs_new_protected:Npn \seq_concat:NNN #1#2#3 { \tl_set:Nf #1 { \exp_after:wN \use_i:nn \exp_after:wN #2 #3 } } \cs_new_protected:Npn \seq_gconcat:NNN #1#2#3 @@ -5659,20 +5743,20 @@ \cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , Ne , No , Nx } \cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , ce , co , cx } \cs_new:Npn \__seq_wrap_item:n #1 { \exp_not:n { \__seq_item:n {#1} } } -\seq_new:N \l__seq_remove_seq +\seq_new:N \l__seq_tmp_seq \cs_new_protected:Npn \seq_remove_duplicates:N { \__seq_remove_duplicates:NN \seq_set_eq:NN } \cs_new_protected:Npn \seq_gremove_duplicates:N { \__seq_remove_duplicates:NN \seq_gset_eq:NN } \cs_new_protected:Npn \__seq_remove_duplicates:NN #1#2 { - \seq_clear:N \l__seq_remove_seq + \seq_clear:N \l__seq_tmp_seq \seq_map_inline:Nn #2 { - \seq_if_in:NnF \l__seq_remove_seq {##1} - { \seq_put_right:Nn \l__seq_remove_seq {##1} } + \seq_if_in:NnF \l__seq_tmp_seq {##1} + { \seq_put_right:Nn \l__seq_tmp_seq {##1} } } - #1 #2 \l__seq_remove_seq + #1 #2 \l__seq_tmp_seq } \cs_generate_variant:Nn \seq_remove_duplicates:N { c } \cs_generate_variant:Nn \seq_gremove_duplicates:N { c } @@ -6470,6 +6554,30 @@ { \tex_global:D #1 = \__int_eval:w #2 \__int_eval_end: } \cs_generate_variant:Nn \int_set:Nn { NV , c , cV } \cs_generate_variant:Nn \int_gset:Nn { NV , c , cV } +\cs_new_protected:Npn \int_set_regex_count:Nnn #1#2#3 + { \regex_count:nnN {#2} {#3} #1 } +\cs_generate_variant:Nn \int_set_regex_count:Nnn { c } +\cs_new_protected:Npn \int_gset_regex_count:Nnn #1#2#3 + { + \group_begin: + \int_set_eq:NN \l__int_internal_a_int #1 + \regex_count:nnN {#2} {#3} \l__int_internal_a_int + \int_gset_eq:NN #1 \l__int_internal_a_int + \group_end: + } +\cs_generate_variant:Nn \int_gset_regex_count:Nnn { c } +\cs_new_protected:Npn \int_set_regex_count:NNn #1#2#3 + { \regex_count:NnN #2 {#3} #1 } +\cs_generate_variant:Nn \int_set_regex_count:Nnn { c } +\cs_new_protected:Npn \int_gset_regex_count:NNn #1#2#3 + { + \group_begin: + \int_set_eq:NN \l__int_internal_a_int #1 + \regex_count:NnN #2 {#3} \l__int_internal_a_int + \int_gset_eq:NN #1 \l__int_internal_a_int + \group_end: + } +\cs_generate_variant:Nn \int_gset_regex_count:NNn { c } \cs_new_eq:NN \int_use:N \tex_the:D \cs_new:Npn \int_use:c #1 { \tex_the:D \cs:w #1 \cs_end: } \cs_new_protected:Npn \__int_compare_error: @@ -7582,6 +7690,9 @@ \__sys_const:nn { sys_if_engine_ #1 } { \str_if_eq_p:Vn \c_sys_engine_str {#1} } } +\__sys_const:nn + { sys_if_engine_opentype } + { \cs_if_exist_p:N \tex_Umathcode:D } \group_begin: \cs_set_eq:NN \lua_now:e \tex_directlua:D \str_const:Ne \c_sys_engine_exec_str @@ -8638,6 +8749,8 @@ \cs_new:Npn \clist_use:Nn #1#2 { \clist_use:Nnnn #1 {#2} {#2} {#2} } \cs_generate_variant:Nn \clist_use:Nn { c } +\cs_new_eq:NN \clist_use:N \tl_use:N +\cs_generate_variant:Nn \clist_use:N { c } \cs_new:Npn \clist_use:nnnn #1#2#3#4 { \__clist_use:Nw \__clist_use_none_delimit_by_s_stop:w @@ -9072,7 +9185,7 @@ \group_end: \group_begin: \char_set_catcode_active:N \* - \tl_const:Nn \c_catcode_active_tl { \exp_not:N * } + \tl_const:Nn \c__token_active_tl { \exp_not:N * } \group_end: \prg_new_conditional:Npnn \token_if_group_begin:N #1 { p , T , F , TF } { @@ -9130,7 +9243,7 @@ } \prg_new_conditional:Npnn \token_if_active:N #1 { p , T , F , TF } { - \if_catcode:w \exp_not:N #1 \c_catcode_active_tl + \if_catcode:w \exp_not:N #1 \c__token_active_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_eq_conditional:NNn \token_if_eq_meaning:NN \cs_if_eq:NN @@ -9932,7 +10045,7 @@ \exp_after:wN { \tl_to_str:n {#2} } } } - { \exp_after:wN \__prop_get_linked:w #1 {#2} \use:n { } { } } + { \exp_after:wN \__prop_get_linked:w #1 {#2} \exp_not:n { } { } } } \cs_new:Npn \__prop_item:nnn #1#2#3 { @@ -22285,6 +22398,8 @@ } \cs_generate_variant:Nn \bitset_to_arabic:N { c } \cs_generate_variant:Nn \bitset_to_bin:N { c } +\cs_new_eq:NN \bitset_use:N \tl_use:N +\cs_generate_variant:Nn \bitset_use:N { c } \cs_new:Npn \bitset_item:Nn #1#2 { \prop_if_in:cnTF { g__bitset_ \cs_to_str:N #1 _name_prop } {#2} @@ -22667,8 +22782,7 @@ \group_begin: \int_set:Nn \tex_endlinechar:D { 32 } \char_set_catcode_invalid:n { 0 } - \bool_lazy_or:nnTF - { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: } + \sys_if_engine_opentype:TF { \int_step_function:nN { 31 } \char_set_catcode_invalid:n } { \int_step_function:nN { 31 } \char_set_catcode_active:n } \int_step_function:nnN { 33 } { 64 } \char_set_catcode_other:n @@ -22693,8 +22807,7 @@ \char_set_catcode_group_end:n { 125 } % right brace \char_set_catcode_space:n { 126 } % tilde \char_set_catcode_invalid:n { 127 } % ^^? - \bool_lazy_or:nnF - { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: } + \sys_if_engine_opentype:F { \int_step_function:nnN { 128 } { 255 } \char_set_catcode_active:n } \__cctab_gset:n { \c_code_cctab } \group_end: @@ -24473,9 +24586,7 @@ \exp_args:Ne \tl_to_str:n { \str_map_function:nN {#1} \__str_convert_pdfname:n } } -\bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:TF { \cs_new:Npn \__str_convert_pdfname:n #1 { @@ -33360,9 +33471,7 @@ \prop_gput:Nnn \g_msg_module_name_prop { luatex } { LaTeX } \prop_gput:Nnn \g_msg_module_type_prop { luatex } { } %% File: l3unicode.dtx -\bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:TF { \cs_new:Npn \codepoint_str_generate:n #1 { @@ -33540,9 +33649,7 @@ { \exp_args:Ne \__codepoint_to_nfd:n { \int_eval:n {#1} } } \cs_new:Npn \__codepoint_to_nfd:n #1 { \__codepoint_to_nfd:nn {#1} { \char_value_catcode:n {#1} } } -\bool_lazy_or:nnF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:F { \cs_gset:Npn \__codepoint_to_nfd:n #1 { @@ -34130,9 +34237,7 @@ } { \prg_return_false: } } -\bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:TF { \cs_new:Npn \__text_codepoint_process:nN #1#2 { #1 {#2} } } @@ -34170,9 +34275,7 @@ \cs_new:Npn \__text_codepoint_process:nNNNN #1#2#3#4#5 { #1 {#2#3#4#5} } } -\bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:TF { \prg_new_conditional:Npnn \__text_codepoint_compare:nNn #1#2#3 { TF , p } @@ -35164,9 +35267,7 @@ } } } -\bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:TF { \cs_new:Npn \__text_change_case_catcode:nn #1#2 { \__text_char_catcode:N #1 } @@ -36280,9 +36381,7 @@ } } } -\bool_lazy_or:nnF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } +\sys_if_engine_opentype:F { \text_declare_uppercase_mapping:nn { "01F0 } { \v { J } } } diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex index c0871d0da..3e221f842 100644 --- a/texmf/tex/latex/l3kernel/expl3-generic.tex +++ b/texmf/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-11-02}% +\def\ExplFileDate{2024-12-09}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx index 3eb3a3d63..704ecfd2f 100644 --- a/texmf/tex/latex/l3kernel/expl3.ltx +++ b/texmf/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-11-02}% +\def\ExplFileDate{2024-12-09}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty index 15c04cee8..aa6217f3f 100644 --- a/texmf/tex/latex/l3kernel/expl3.sty +++ b/texmf/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-11-02}% +\def\ExplFileDate{2024-12-09}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/texmf/tex/latex/l3kernel/l3debug.def b/texmf/tex/latex/l3kernel/l3debug.def index 78d830462..6361b7c36 100644 --- a/texmf/tex/latex/l3kernel/l3debug.def +++ b/texmf/tex/latex/l3kernel/l3debug.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-11-02}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2024-12-09}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail diff --git a/texmf/tex/latex/l3kernel/l3doc.cls b/texmf/tex/latex/l3kernel/l3doc.cls index 8edacf2f0..33d0a1c40 100644 --- a/texmf/tex/latex/l3kernel/l3doc.cls +++ b/texmf/tex/latex/l3kernel/l3doc.cls @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-11-02}{} +\ProvidesExplClass{l3doc}{2024-12-09}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq @@ -439,8 +439,7 @@ \raggedbottom \bool_if:NT \g__codedoc_lmodern_bool { - \bool_lazy_or:nnTF - { \sys_if_engine_luatex_p: }{ \sys_if_engine_xetex_p: } + \sys_if_engine_opentype:TF { \group_begin: \ttfamily @@ -1720,7 +1719,7 @@ \AddToHook{env/variable/begin}{\def\footnote{\__codedoc_fn_footnote:nn{variable}}} \newenvironment{TemplateInterfaceDescription}[1] { - \subsection{The~object~type~`#1'} + \subsection{The~template~type~`#1'} \begingroup \@beginparpenalty\@M \description @@ -1736,7 +1735,7 @@ } \newenvironment{TemplateDescription}[2] { - \subsection{The~template~`#2'~(object~type~#1)} + \subsection{The~template~`#2'~(template~type~#1)} \subsubsection*{Attributes:} \begingroup \@beginparpenalty\@M From ff19c89818529edaebd3e5afd37eb5b308e0f917 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Sun, 22 Dec 2024 17:40:43 +0000 Subject: [PATCH 08/14] Correct .tlg line order --- base/testfiles/github-0944.tlg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg index ed4f246e8..b938bdd93 100644 --- a/base/testfiles/github-0944.tlg +++ b/base/testfiles/github-0944.tlg @@ -21,8 +21,8 @@ LaTeX Warning: Reference `unknown' on page 1 undefined on input line .... [1 ] (github-0944.aux) *********** -L3 programming layer <2024-12-09> -formatname- <-formatversion-> patch level -2 +L3 programming layer <2024-12-09> *********** *File List* -show the file list here- From 8088d7d98dd621d0fc49aa4019f2cdeff0693e32 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Wed, 25 Dec 2024 11:20:17 +0000 Subject: [PATCH 09/14] Update l3kernel to 2024-12-25 --- base/testfiles/github-0944.tlg | 2 +- texmf/tex/latex/l3kernel/expl3-code.tex | 34 +++++++++++++--------- texmf/tex/latex/l3kernel/expl3-generic.tex | 2 +- texmf/tex/latex/l3kernel/expl3.ltx | 2 +- texmf/tex/latex/l3kernel/expl3.sty | 2 +- texmf/tex/latex/l3kernel/l3debug.def | 2 +- texmf/tex/latex/l3kernel/l3doc.cls | 2 +- 7 files changed, 26 insertions(+), 20 deletions(-) diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg index b938bdd93..add16da8d 100644 --- a/base/testfiles/github-0944.tlg +++ b/base/testfiles/github-0944.tlg @@ -22,7 +22,7 @@ LaTeX Warning: Reference `unknown' on page 1 undefined on input line .... ] (github-0944.aux) *********** -formatname- <-formatversion-> patch level -2 -L3 programming layer <2024-12-09> +L3 programming layer <2024-12-25> *********** *File List* -show the file list here- diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex index ee46de3b4..fd8da0a35 100644 --- a/texmf/tex/latex/l3kernel/expl3-code.tex +++ b/texmf/tex/latex/l3kernel/expl3-code.tex @@ -75,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-09}% +\def\ExplFileDate{2024-12-25}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3473,7 +3473,7 @@ \__kernel_chk_if_free_cs:N #1 \cs_gset_nopar:Npe #1 { \__kernel_exp_not:w {#2} } } -\cs_generate_variant:Nn \tl_const:Nn { Ne , c , ce } +\cs_generate_variant:Nn \tl_const:Nn { NV , Ne , c , cV , ce } \cs_generate_variant:Nn \tl_const:Nn { Nx , cx } \cs_new_protected:Npn \tl_clear:N #1 { \tex_let:D #1 = ~ \c_empty_tl } @@ -12474,6 +12474,8 @@ {#3} } } +\cs_new_protected:Npn \file_forget:n #1 + { \cs_undefine:c { __file_seen_ \file_full_name:n {#1} : } } \cs_new_protected:Npn \file_get_full_name:nN #1#2 { \file_get_full_name:nNF {#1} #2 @@ -30678,11 +30680,19 @@ } \cs_new_protected:Npn \color_select:nn #1#2 { - \__color_select_main:Nw \l__color_current_tl - #1 / / \s__color_mark #2 / / \s__color_stop + \__color_select_main:Nnn \l__color_current_tl {#1} {#2} \__color_finalise_current: \__color_select:N \l__color_current_tl } +\cs_new_protected:Npn \__color_select_main:Nnn #1#2#3 + { + \use:e + { + \exp_not:N \__color_select_main:Nw \exp_not:N #1 + \exp_not:n {#2} / / \exp_not:N \s__color_mark + #3 / / \exp_not:N \s__color_stop + } + } \cs_new_protected:Npn \__color_select_main:Nw #1 #2 / #3 / #4 \s__color_mark #5 / #6 / #7 \s__color_stop { @@ -30729,10 +30739,7 @@ \cs_new_protected:Npn \color_math:nnn #1#2#3 { \__color_math:nn {#3} - { - \__color_select_main:Nw \l__color_current_tl - #1 / / \s__color_mark #2 / / \s__color_stop - } + { \__color_select_main:Nnn \l__color_current_tl {#1} {#2} } } \cs_new_protected:Npn \__color_math:nn #1#2 { @@ -30830,14 +30837,12 @@ } \cs_new_protected:Npn \color_fill:nn #1#2 { - \__color_select_main:Nw \l__color_current_tl - #1 / / \s__color_mark #2 / / \s__color_stop + \__color_select_main:Nnn \l__color_current_tl {#1} {#2} \exp_after:wN \__color_draw:nnn \l__color_current_tl { fill } } \cs_new_protected:Npn \color_stroke:nn #1#2 { - \__color_select_main:Nw \l__color_current_tl - #1 / / \s__color_mark #2 / / \s__color_stop + \__color_select_main:Nnn \l__color_current_tl {#1} {#2} \exp_after:wN \__color_draw:nnn \l__color_current_tl { stroke } } \cs_new_protected:Npn \__color_draw:nnn #1#2#3 @@ -30966,6 +30971,8 @@ \prop_new:c { l__color_named_._prop } \tl_new:c { l__color_named_._tl } \tl_set:ce { l__color_named_._tl } { \__color_model:N \l__color_current_tl } +\prop_put:cve { l__color_named_._prop } { l__color_named_._tl } + { \__color_values:N \l__color_current_tl } \cs_new_protected:Npn \color_export:nnN #1#2#3 { \group_begin: @@ -30978,8 +30985,7 @@ } \cs_new_protected:Npn \color_export:nnnN #1#2#3#4 { - \__color_select_main:Nw #4 - #1 / / \s__color_mark #2 / / \s__color_stop + \__color_select_main:Nnn #4 {#1} {#2} \__color_export:nN {#3} #4 } \cs_new_protected:Npn \__color_export:nN #1#2 diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex index 3e221f842..e63ad6c9a 100644 --- a/texmf/tex/latex/l3kernel/expl3-generic.tex +++ b/texmf/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-09}% +\def\ExplFileDate{2024-12-25}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx index 704ecfd2f..29b9700c1 100644 --- a/texmf/tex/latex/l3kernel/expl3.ltx +++ b/texmf/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-09}% +\def\ExplFileDate{2024-12-25}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty index aa6217f3f..7f73b6bdd 100644 --- a/texmf/tex/latex/l3kernel/expl3.sty +++ b/texmf/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-09}% +\def\ExplFileDate{2024-12-25}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/texmf/tex/latex/l3kernel/l3debug.def b/texmf/tex/latex/l3kernel/l3debug.def index 6361b7c36..7b5724918 100644 --- a/texmf/tex/latex/l3kernel/l3debug.def +++ b/texmf/tex/latex/l3kernel/l3debug.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-12-09}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2024-12-25}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail diff --git a/texmf/tex/latex/l3kernel/l3doc.cls b/texmf/tex/latex/l3kernel/l3doc.cls index 33d0a1c40..0649af9fb 100644 --- a/texmf/tex/latex/l3kernel/l3doc.cls +++ b/texmf/tex/latex/l3kernel/l3doc.cls @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-12-09}{} +\ProvidesExplClass{l3doc}{2024-12-25}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq From 0ea55acba172069525e96e4e2c72b773926e3a37 Mon Sep 17 00:00:00 2001 From: Frank Mittelbach Date: Wed, 29 Jan 2025 12:24:33 +0100 Subject: [PATCH 10/14] Hotfix gh1641 (#1642) * hotfix for #1641 * Add missing \par in abstract of ams classes --- base/changes.txt | 9 + base/ltlists.dtx | 25 +- base/testfiles/github-1641.lvt | 37 ++ base/testfiles/github-1641.tlg | 540 ++++++++++++++++++++++ required/latex-lab/changes.txt | 7 +- required/latex-lab/latex-lab-firstaid.dtx | 37 +- 6 files changed, 644 insertions(+), 11 deletions(-) create mode 100644 base/testfiles/github-1641.lvt create mode 100644 base/testfiles/github-1641.tlg diff --git a/base/changes.txt b/base/changes.txt index 004248109..80a46219f 100644 --- a/base/changes.txt +++ b/base/changes.txt @@ -10,6 +10,15 @@ not part of the distribution. All changes above are only part of the development branch for the next release. ================================================================================ +######################### +# 2024-11-01 PL2 Release +######################### + +2025-01-26 Frank Mittelbach + + * ltlists.dtx: + Only migrate \cs{@doendpe} out of simple and semi-simple groups (gh/1641) + ######################### # 2024-11-01 PL1 Release ######################### diff --git a/base/ltlists.dtx b/base/ltlists.dtx index 5858cbddf..58795b3b5 100644 --- a/base/ltlists.dtx +++ b/base/ltlists.dtx @@ -31,7 +31,7 @@ %<*driver> % \fi \ProvidesFile{ltlists.dtx} - [2024/06/23 v1.0u LaTeX Kernel (List Environments)] + [2025/01/26 v1.0v LaTeX Kernel (List Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltlists.dtx} @@ -851,11 +851,26 @@ \def\@endpetrue {% \global\let\if@endpe\iftrue % \end{macrocode} -% If we are inside a group then propagate to the outside: +% If we are inside a simple or a semi-simple group then propagate +% to the outside, for all other group types do nothing. Normally, we +% would start out in the group opened by \cs{begin} (type 14). When we +% migrate out of that we are either on top-level (type 0) or in +% another semi-simple group (type 14) or +% in some other group. Thus, the best order of tests is to first +% test for 14, then for 0 and finally for 1 (simple group). +% \changes{v1.0v}{2025/01/26}{Only migrate \cs{@doendpe} out of simple +% and semi-simple groups (gh1641)} % \begin{macrocode} - \ifnum\currentgrouplevel>\z@ - \aftergroup\propagate@doendpe - \fi + \ifnum\currentgrouptype =14 % semi-simple group + \aftergroup\propagate@doendpe + \else + \ifnum\currentgrouptype =\z@ % no group: top-level + \else + \ifnum\currentgrouptype =\@ne % simple group + \aftergroup\propagate@doendpe + \fi + \fi + \fi } % \end{macrocode} % If \cs{if@endpe} is still true after the group ends, we run \cs{@doendpe} diff --git a/base/testfiles/github-1641.lvt b/base/testfiles/github-1641.lvt new file mode 100644 index 000000000..f95594668 --- /dev/null +++ b/base/testfiles/github-1641.lvt @@ -0,0 +1,37 @@ +\documentclass{article} + +\input{test2e} + +\newcommand\sample{A text of more than a single line to see the paragraph indentation. Is this enough?} + +% show the group type we are dealing with + +\AddToHook{cmd/@endpetrue/before}{\showthe\currentgrouptype} + +\showoutput + +\begin{document} + +\START + +\sample + +\vbox{\hsize=3cm\noindent X} +\sample \space Should be indented. + +\bigskip + +\vbox{\hsize=3cm\noindent + \begin{itemize}\item X\end{itemize}} +\sample Should be indented! + +\sample + +\vbox{% +\begin{itemize} +\item blub +\end{itemize} +} +some text + +\end{document} diff --git a/base/testfiles/github-1641.tlg b/base/testfiles/github-1641.tlg new file mode 100644 index 000000000..7f833fc05 --- /dev/null +++ b/base/testfiles/github-1641.tlg @@ -0,0 +1,540 @@ +This is a generated file for the LaTeX2e validation system. +Don't change this file in any respect. +> 14. +\__hook_toplevel cmd/@endpetrue/before ...ouptype +l. ... \begin{itemize}\item X\end{itemize} + } +> 4. +\__hook_toplevel cmd/@endpetrue/before ...ouptype +l. ... \begin{itemize}\item X\end{itemize} + } +> 14. +\__hook_toplevel cmd/@endpetrue/before ...ouptype +l. ...\end{itemize} +> 4. +\__hook_toplevel cmd/@endpetrue/before ...ouptype +l. ...\end{itemize} +Completed box being shipped out [1] +\vbox(633.0+0.0)x407.0 +.\glue 16.0 +.\vbox(617.0+0.0)x345.0, shifted 62.0 +..\vbox(12.0+0.0)x345.0, glue set 12.0fil +...\glue 0.0 plus 1.0fil +...\hbox(0.0+0.0)x345.0 +....\hbox(0.0+0.0)x345.0 +..\glue 25.0 +..\glue(\lineskip) 0.0 +..\vbox(550.0+0.0)x345.0, glue set 364.29445fil +...\write-{} +...\glue(\topskip) 3.05556 +...\hbox(6.94444+1.94444)x345.0, glue set 0.22812 +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 A +....\glue 3.33333 plus 1.66498 minus 1.11221 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 x +....\OT1/cmr/m/n/10 t +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 f +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 n +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 a +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 o +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 h +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 . +....\glue 4.44444 plus 4.99997 minus 0.37036 +....\OT1/cmr/m/n/10 I +....\OT1/cmr/m/n/10 s +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 s +....\glue(\rightskip) 0.0 +...\penalty 300 +...\glue(\baselineskip) 3.11111 +...\hbox(6.94444+1.94444)x345.0, glue set 309.16658fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 ? +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\glue(\baselineskip) 3.22224 +...\vbox(6.83331+0.0)x85.35826 +....\hbox(6.83331+0.0)x85.35826, glue set 77.85825fil +.....\OT1/cmr/m/n/10 X +.....\penalty 10000 +.....\glue(\parfillskip) 0.0 plus 1.0fil +.....\glue(\rightskip) 0.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.05556 +...\hbox(6.94444+1.94444)x345.0, glue set 0.22812 +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 A +....\glue 3.33333 plus 1.66498 minus 1.11221 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 x +....\OT1/cmr/m/n/10 t +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 f +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 n +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 a +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 o +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 h +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 . +....\glue 4.44444 plus 4.99997 minus 0.37036 +....\OT1/cmr/m/n/10 I +....\OT1/cmr/m/n/10 s +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 s +....\glue(\rightskip) 0.0 +...\penalty 300 +...\glue(\baselineskip) 3.11111 +...\hbox(6.94444+1.94444)x345.0, glue set 217.49973fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 ? +....\glue 4.44444 plus 4.99997 minus 0.37036 +....\OT1/cmr/m/n/10 S +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 d +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 b +....\kern0.27779 +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 . +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\glue 12.0 plus 4.0 minus 4.0 +...\glue 0.0 +...\glue(\lineskip) 1.0 +...\vbox(22.83331+0.0)x345.0 +....\penalty -51 +....\glue 8.0 plus 3.0 minus 4.0 +....\glue -8.0 plus -3.0 minus -4.0 +....\glue 4.0 plus 1.0 minus 3.0 +....\glue(\parskip) 4.0 plus 2.0 minus 1.0 +....\glue(\parskip) 0.0 +....\hbox(6.83331+0.0)x319.99997, glue set 312.49995fil, shifted 25.00003 +.....\hbox(4.37393+0.0)x0.0 +......\glue 0.0 +......\glue -20.00003 +......\glue -5.0 +......\hbox(4.37393+0.0)x20.00003, glue set 20.00003fil +.......\glue 0.0 plus 1.0fil minus 1.0fil +.......\hbox(4.37393+0.0)x0.0, glue set - 4.99878fil +........\glue 0.0 plus 1.0fil minus 1.0fil +........\TS1/cmr/m/n/10 ^^88 +......\glue 5.0 +.....\penalty 0 +.....\OT1/cmr/m/n/10 X +.....\penalty 10000 +.....\glue(\parfillskip) 0.0 plus 1.0fil +.....\glue(\rightskip) 0.0 +....\penalty -51 +....\glue 8.0 plus 2.0 minus 4.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.05556 +...\hbox(6.94444+1.94444)x345.0, glue set 0.22812 +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 A +....\glue 3.33333 plus 1.66498 minus 1.11221 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 x +....\OT1/cmr/m/n/10 t +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 f +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 n +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 a +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 o +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 h +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 . +....\glue 4.44444 plus 4.99997 minus 0.37036 +....\OT1/cmr/m/n/10 I +....\OT1/cmr/m/n/10 s +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 s +....\glue(\rightskip) 0.0 +...\penalty 300 +...\glue(\baselineskip) 3.11111 +...\hbox(6.94444+1.94444)x345.0, glue set 221.94417fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 ? +....\OT1/cmr/m/n/10 S +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 d +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 b +....\kern0.27779 +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 ! +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 3.11111 +...\hbox(6.94444+1.94444)x345.0, glue set 0.22812 +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 A +....\glue 3.33333 plus 1.66498 minus 1.11221 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 x +....\OT1/cmr/m/n/10 t +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 f +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 n +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 a +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 l +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 o +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 r +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 p +....\OT1/cmr/m/n/10 h +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 d +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\kern-0.27779 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 a +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 . +....\glue 4.44444 plus 4.99997 minus 0.37036 +....\OT1/cmr/m/n/10 I +....\OT1/cmr/m/n/10 s +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 i +....\OT1/cmr/m/n/10 s +....\glue(\rightskip) 0.0 +...\penalty 300 +...\glue(\baselineskip) 3.11111 +...\hbox(6.94444+1.94444)x345.0, glue set 309.16658fil +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 n +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 u +....\OT1/cmr/m/n/10 g +....\OT1/cmr/m/n/10 h +....\OT1/cmr/m/n/10 ? +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\glue(\lineskip) 1.0 +...\vbox(26.94444+0.0)x345.0 +....\penalty -51 +....\glue 10.0 plus 4.0 minus 5.0 +....\glue -10.0 plus -4.0 minus -5.0 +....\glue 6.0 plus 2.0 minus 4.0 +....\glue(\parskip) 4.0 plus 2.0 minus 1.0 +....\glue(\parskip) 0.0 +....\hbox(6.94444+0.0)x319.99997, glue set 300.55547fil, shifted 25.00003 +.....\hbox(4.37393+0.0)x0.0 +......\glue 0.0 +......\glue -20.00003 +......\glue -5.0 +......\hbox(4.37393+0.0)x20.00003, glue set 20.00003fil +.......\glue 0.0 plus 1.0fil minus 1.0fil +.......\hbox(4.37393+0.0)x0.0, glue set - 4.99878fil +........\glue 0.0 plus 1.0fil minus 1.0fil +........\TS1/cmr/m/n/10 ^^88 +......\glue 5.0 +.....\penalty 0 +.....\OT1/cmr/m/n/10 b +.....\OT1/cmr/m/n/10 l +.....\OT1/cmr/m/n/10 u +.....\OT1/cmr/m/n/10 b +.....\penalty 10000 +.....\glue(\parfillskip) 0.0 plus 1.0fil +.....\glue(\rightskip) 0.0 +....\penalty -51 +....\glue 10.0 plus 3.0 minus 5.0 +...\glue(\parskip) 0.0 plus 1.0 +...\glue(\parskip) 0.0 +...\glue(\baselineskip) 5.84921 +...\hbox(6.15079+0.0)x345.0, glue set 287.44437fil +....\hbox(0.0+0.0)x15.0 +....\OT1/cmr/m/n/10 s +....\OT1/cmr/m/n/10 o +....\OT1/cmr/m/n/10 m +....\OT1/cmr/m/n/10 e +....\glue 3.33333 plus 1.66666 minus 1.11111 +....\OT1/cmr/m/n/10 t +....\OT1/cmr/m/n/10 e +....\OT1/cmr/m/n/10 x +....\OT1/cmr/m/n/10 t +....\penalty 10000 +....\glue(\parfillskip) 0.0 plus 1.0fil +....\glue(\rightskip) 0.0 +...\glue 0.0 plus 1.0fil +...\glue 0.0 +...\glue 0.0 plus 0.0001fil +..\glue(\baselineskip) 23.55556 +..\hbox(6.44444+0.0)x345.0 +...\hbox(6.44444+0.0)x345.0, glue set 170.0fil +....\glue 0.0 plus 1.0fil +....\OT1/cmr/m/n/10 1 +....\glue 0.0 plus 1.0fil +(github-1641.aux) diff --git a/required/latex-lab/changes.txt b/required/latex-lab/changes.txt index 35c77075d..b7a1c64cf 100644 --- a/required/latex-lab/changes.txt +++ b/required/latex-lab/changes.txt @@ -1,6 +1,11 @@ +2025-01-27 Frank Mittelbach + + * latex-lab-firstaid.dtx (subsection{ams classes and amsthm}): + Add missing \par to abstract env (gh/1641) + 2024-10-25 Ulrike Fischer * latex-lab-math.dtx: reorganized luamml and mathml options - to support also structure elements and extended the documentation. Corrected + to support also structure elements and extended the documentation. Corrected handling of alt-texts. Added examples for the various options. 2024-10-16 Ulrike Fischer diff --git a/required/latex-lab/latex-lab-firstaid.dtx b/required/latex-lab/latex-lab-firstaid.dtx index 118baccd7..e724f3779 100644 --- a/required/latex-lab/latex-lab-firstaid.dtx +++ b/required/latex-lab/latex-lab-firstaid.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: latex-lab-firstaid.dtx (C) Copyright 2023-2024 LaTeX Project +%% File: latex-lab-firstaid.dtx (C) Copyright 2023-2025 LaTeX Project % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -16,8 +16,8 @@ % % for those people who are interested or want to report an issue. % -\def\ltlabfirstaiddate{2024-10-16} -\def\ltlabfirstaidversion{0.85h} +\def\ltlabfirstaiddate{2025-01-27} +\def\ltlabfirstaidversion{0.85i} %<*driver> \documentclass{l3doc} \EnableCrossrefs @@ -117,14 +117,41 @@ % % \begin{macrocode} \AddToHook{class/amsart/after}[latex-lab-testphase-firstaid/amsthm] - {\tag_if_active:T{\@@_firstaid_amsthm:}} + {\tag_if_active:T{\@@_firstaid_amsthm:}\@@_firstaid_ams_abstract:} \AddToHook{class/amsbook/after}[latex-lab-testphase-firstaid/amsthm] - {\tag_if_active:T{\@@_firstaid_amsthm:}} + {\tag_if_active:T{\@@_firstaid_amsthm:}\@@_firstaid_ams_abstract:} \AddToHook{class/amsproc/after}[latex-lab-testphase-firstaid/amsthm] {\tag_if_active:T{\@@_firstaid_amsthm:}} \AddToHook{package/amsthm/after}[latex-lab-testphase-firstaid/amsthm] {\tag_if_active:T{\@@_firstaid_amsthm:}} % \end{macrocode} +% +% \changes{v0.85i}{2025/01/26}{Add missing \cs{par} to abstract env (gh/1641)} +% \begin{macrocode} +\cs_new_protected:Npn \@@_firstaid_ams_abstract: + { +\renewenvironment{abstract}{% + \ifx\maketitle\relax + \ClassWarning{\@classname}{Abstract~ should~ precede~ + \protect\maketitle\space in~ AMS~ document~ classes;~ reported}% + \fi + \global\setbox\abstractbox=\vtop \bgroup + \normalfont\Small + \list{}{\labelwidth\z@ + \leftmargin3pc \rightmargin\leftmargin + \listparindent\normalparindent \itemindent\z@ + \parsep\z@ \@plus\p@ + \let\fullwidthdisplay\relax + }% + \item[\hskip\labelsep\scshape\abstractname.]% +}{% + \endlist + \par % <--- added + \egroup + \ifx\@setabstract\relax \@setabstracta \fi +} + } +% \end{macrocode} % \changes{v0.85h}{2024/10/16}{moved Caption tag into \@begintheorem, tagging issue\#733} % \begin{macrocode} \cs_new_protected:Npn \@@_firstaid_amsthm: From 3fec0f360ec52f36b6fbc8c3c00a45e4d760ed80 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Wed, 29 Jan 2025 13:01:29 +0000 Subject: [PATCH 11/14] Step copyright --- base/alltt.dtx | 2 +- base/alltt.ins | 4 ++-- base/classes.dtx | 2 +- base/classes.ins | 4 ++-- base/cmextra.ins | 4 ++-- base/cmfonts.fdd | 2 +- base/cmfonts.ins | 4 ++-- base/doc.dtx | 2 +- base/doc/cfgguide.tex | 2 +- base/doc/clsguide-historic.tex | 2 +- base/doc/clsguide.tex | 2 +- base/doc/cyrguide.tex | 2 +- base/doc/encguide.tex | 2 +- base/doc/fntguide.tex | 2 +- base/doc/ltnews.tex | 2 +- base/doc/ltnews01.tex | 2 +- base/doc/ltnews02.tex | 2 +- base/doc/ltnews03.tex | 2 +- base/doc/ltnews04.tex | 2 +- base/doc/ltnews05.tex | 2 +- base/doc/ltnews06.tex | 2 +- base/doc/ltnews07.tex | 2 +- base/doc/ltnews08.tex | 2 +- base/doc/ltnews09.tex | 2 +- base/doc/ltnews10.tex | 2 +- base/doc/ltnews11.tex | 2 +- base/doc/ltnews12.tex | 2 +- base/doc/ltnews13.tex | 2 +- base/doc/ltnews14.tex | 2 +- base/doc/ltnews15.tex | 2 +- base/doc/ltnews16.tex | 2 +- base/doc/ltnews17.tex | 2 +- base/doc/ltnews18.tex | 2 +- base/doc/ltnews19.tex | 2 +- base/doc/ltnews20.tex | 2 +- base/doc/ltnews21.tex | 2 +- base/doc/ltnews22.tex | 2 +- base/doc/ltnews23.tex | 2 +- base/doc/ltnews24.tex | 2 +- base/doc/ltnews25.tex | 2 +- base/doc/ltnews26.tex | 2 +- base/doc/ltnews27.tex | 2 +- base/doc/ltnews28.tex | 2 +- base/doc/ltnews29.tex | 2 +- base/doc/ltnews30.tex | 2 +- base/doc/ltnews31.tex | 2 +- base/doc/ltnews32.tex | 2 +- base/doc/ltnews33.tex | 2 +- base/doc/ltnews34.tex | 2 +- base/doc/ltnews35.tex | 2 +- base/doc/ltnews36.tex | 2 +- base/doc/ltnews37.tex | 2 +- base/doc/ltx3info.tex | 2 +- base/doc/modguide.tex | 2 +- base/doc/source2e.tex | 2 +- base/doc/usrguide-historic.tex | 2 +- base/doc/usrguide.tex | 2 +- base/docstrip.dtx | 2 +- base/docstrip.ins | 4 ++-- base/ec.ins | 4 ++-- base/exscale.dtx | 2 +- base/exscale.ins | 4 ++-- base/fix-cm.dtx | 2 +- base/fix-cm.ins | 4 ++-- base/fontdef.dtx | 2 +- base/format.ins | 8 ++++---- base/graphpap.dtx | 2 +- base/graphpap.ins | 4 ++-- base/idx.tex | 2 +- base/ifthen.dtx | 2 +- base/ifthen.ins | 4 ++-- base/inputenc.dtx | 2 +- base/inputenc.ins | 4 ++-- base/lablst.tex | 2 +- base/latex209.dtx | 2 +- base/latex209.ins | 4 ++-- base/latexrelease.dtx | 2 +- base/latexrelease.ins | 4 ++-- base/latexsym.dtx | 2 +- base/latexsym.ins | 6 +++--- base/letter.dtx | 2 +- base/letter.ins | 4 ++-- base/ltalloc.dtx | 2 +- base/ltbibl.dtx | 2 +- base/ltboxes.dtx | 2 +- base/ltclass.dtx | 2 +- base/ltcmd.dtx | 2 +- base/ltcmdhooks.dtx | 2 +- base/ltcntrl.dtx | 2 +- base/ltcounts.dtx | 2 +- base/ltdefns.dtx | 2 +- base/ltdirchk.dtx | 2 +- base/lterror.dtx | 2 +- base/ltexpl.dtx | 2 +- base/ltfilehook.dtx | 2 +- base/ltfiles.dtx | 2 +- base/ltfinal.dtx | 2 +- base/ltfloat.dtx | 2 +- base/ltfntcmd.dtx | 2 +- base/ltfssaxes.dtx | 2 +- base/ltfssbas.dtx | 2 +- base/ltfsscmp.dtx | 2 +- base/ltfssdcl.dtx | 2 +- base/ltfssini.dtx | 2 +- base/ltfsstrc.dtx | 2 +- base/lthooks.dtx | 2 +- base/lthyphen.dtx | 2 +- base/ltidxglo.dtx | 2 +- base/ltkeys.dtx | 2 +- base/ltlength.dtx | 2 +- base/ltlists.dtx | 2 +- base/ltlogos.dtx | 2 +- base/ltluatex.dtx | 2 +- base/ltmarks.dtx | 2 +- base/ltmath.dtx | 2 +- base/ltmeta.dtx | 2 +- base/ltmiscen.dtx | 2 +- base/ltnews.cls | 2 +- base/ltoutenc.dtx | 2 +- base/ltoutenc.ins | 4 ++-- base/ltoutput.dtx | 2 +- base/ltpage.dtx | 2 +- base/ltpageno.dtx | 2 +- base/ltpar.dtx | 2 +- base/ltpara.dtx | 2 +- base/ltpictur.dtx | 2 +- base/ltplain.dtx | 2 +- base/ltsect.dtx | 2 +- base/ltshipout.dtx | 2 +- base/ltsockets.dtx | 2 +- base/ltspace.dtx | 2 +- base/lttab.dtx | 2 +- base/lttagging.dtx | 2 +- base/lttemplates.dtx | 4 ++-- base/lttextcomp.dtx | 2 +- base/ltthm.dtx | 2 +- base/ltvers.dtx | 2 +- base/ltxcheck.tex | 2 +- base/ltxdoc.dtx | 4 ++-- base/ltxguide.cls | 2 +- base/ltxref.dtx | 2 +- base/makeindx.dtx | 2 +- base/makeindx.ins | 4 ++-- base/minimal.cls | 2 +- base/newdc.ins | 4 ++-- base/newlfont.dtx | 2 +- base/nfssfont.dtx | 2 +- base/nfssfont.ins | 4 ++-- base/olddc.ins | 4 ++-- base/oldlfont.dtx | 2 +- base/preload.dtx | 2 +- base/proc.dtx | 2 +- base/proc.ins | 4 ++-- base/slides.dtx | 2 +- base/slides.ins | 8 ++++---- base/slifonts.fdd | 2 +- base/syntonly.dtx | 2 +- base/syntonly.ins | 4 ++-- base/testpage.tex | 2 +- base/tulm.fdd | 2 +- base/tulm.ins | 4 ++-- base/unpack.ins | 2 +- base/utf8ienc.dtx | 2 +- 163 files changed, 195 insertions(+), 195 deletions(-) diff --git a/base/alltt.dtx b/base/alltt.dtx index 8fd4ac2db..bf0aa3210 100644 --- a/base/alltt.dtx +++ b/base/alltt.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/alltt.ins b/base/alltt.ins index 6d702c1cc..fe0807abf 100644 --- a/base/alltt.ins +++ b/base/alltt.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/classes.dtx b/base/classes.dtx index ce3d902b2..50d6161e9 100644 --- a/base/classes.dtx +++ b/base/classes.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/classes.ins b/base/classes.ins index 7fa35896a..fd4114508 100644 --- a/base/classes.ins +++ b/base/classes.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/cmextra.ins b/base/cmextra.ins index 3f06c1548..9894acc47 100644 --- a/base/cmextra.ins +++ b/base/cmextra.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/cmfonts.fdd b/base/cmfonts.fdd index ed6f3d70e..45ee2abb2 100644 --- a/base/cmfonts.fdd +++ b/base/cmfonts.fdd @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/cmfonts.ins b/base/cmfonts.ins index fb9d08f44..a750441a9 100644 --- a/base/cmfonts.ins +++ b/base/cmfonts.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/doc.dtx b/base/doc.dtx index a6af48b88..8fe113e76 100644 --- a/base/doc.dtx +++ b/base/doc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/cfgguide.tex b/base/doc/cfgguide.tex index 9b750593c..add73b10e 100644 --- a/base/doc/cfgguide.tex +++ b/base/doc/cfgguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/clsguide-historic.tex b/base/doc/clsguide-historic.tex index bb5e4b5e9..64ae5dcd9 100644 --- a/base/doc/clsguide-historic.tex +++ b/base/doc/clsguide-historic.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/clsguide.tex b/base/doc/clsguide.tex index e7adc9da3..d137e14ce 100644 --- a/base/doc/clsguide.tex +++ b/base/doc/clsguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2023-2024 +% Copyright (C) 2023-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/cyrguide.tex b/base/doc/cyrguide.tex index 9a79a80e5..6f707e6ce 100644 --- a/base/doc/cyrguide.tex +++ b/base/doc/cyrguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/encguide.tex b/base/doc/encguide.tex index 11d968d2e..90cdfb323 100644 --- a/base/doc/encguide.tex +++ b/base/doc/encguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/fntguide.tex b/base/doc/fntguide.tex index 23471f6f8..f266baf35 100644 --- a/base/doc/fntguide.tex +++ b/base/doc/fntguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % % The LaTeX Project and any individual authors listed elsewhere % in this file. diff --git a/base/doc/ltnews.tex b/base/doc/ltnews.tex index af21aad00..52b5d690c 100644 --- a/base/doc/ltnews.tex +++ b/base/doc/ltnews.tex @@ -1,7 +1,7 @@ % \iffalse meta-comment % % Copyright (C) 2006, 2009, 2011, 2014 Heiko Oberdiek -% Copyright (C) 2014-2024 +% Copyright (C) 2014-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews01.tex b/base/doc/ltnews01.tex index 5c46b0450..6bae53570 100644 --- a/base/doc/ltnews01.tex +++ b/base/doc/ltnews01.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews02.tex b/base/doc/ltnews02.tex index d91af6f8b..10668a0df 100644 --- a/base/doc/ltnews02.tex +++ b/base/doc/ltnews02.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews03.tex b/base/doc/ltnews03.tex index 22533b9fa..8c68b7a6f 100644 --- a/base/doc/ltnews03.tex +++ b/base/doc/ltnews03.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews04.tex b/base/doc/ltnews04.tex index c1b474bca..ba0ccbafe 100644 --- a/base/doc/ltnews04.tex +++ b/base/doc/ltnews04.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews05.tex b/base/doc/ltnews05.tex index 3254b428e..a500a0877 100644 --- a/base/doc/ltnews05.tex +++ b/base/doc/ltnews05.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews06.tex b/base/doc/ltnews06.tex index 9830e5505..76542301b 100644 --- a/base/doc/ltnews06.tex +++ b/base/doc/ltnews06.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews07.tex b/base/doc/ltnews07.tex index 75bbaba71..f8c779e99 100644 --- a/base/doc/ltnews07.tex +++ b/base/doc/ltnews07.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews08.tex b/base/doc/ltnews08.tex index 540e14c33..c1edc3057 100644 --- a/base/doc/ltnews08.tex +++ b/base/doc/ltnews08.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews09.tex b/base/doc/ltnews09.tex index 6b932f8f3..a051fb411 100644 --- a/base/doc/ltnews09.tex +++ b/base/doc/ltnews09.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews10.tex b/base/doc/ltnews10.tex index e4925794d..c306bba27 100644 --- a/base/doc/ltnews10.tex +++ b/base/doc/ltnews10.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews11.tex b/base/doc/ltnews11.tex index 70810e7b0..af31eebc2 100644 --- a/base/doc/ltnews11.tex +++ b/base/doc/ltnews11.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews12.tex b/base/doc/ltnews12.tex index 92d484333..4de54f5b7 100644 --- a/base/doc/ltnews12.tex +++ b/base/doc/ltnews12.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews13.tex b/base/doc/ltnews13.tex index 278bec28b..396833587 100644 --- a/base/doc/ltnews13.tex +++ b/base/doc/ltnews13.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews14.tex b/base/doc/ltnews14.tex index 2d767890e..e14e0adbf 100644 --- a/base/doc/ltnews14.tex +++ b/base/doc/ltnews14.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews15.tex b/base/doc/ltnews15.tex index 9e281e8e0..c9d774166 100644 --- a/base/doc/ltnews15.tex +++ b/base/doc/ltnews15.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews16.tex b/base/doc/ltnews16.tex index 8606cffe9..5330bcb24 100644 --- a/base/doc/ltnews16.tex +++ b/base/doc/ltnews16.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews17.tex b/base/doc/ltnews17.tex index 8af30edac..6458a66af 100644 --- a/base/doc/ltnews17.tex +++ b/base/doc/ltnews17.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews18.tex b/base/doc/ltnews18.tex index 5bca87ddd..f514d38ce 100644 --- a/base/doc/ltnews18.tex +++ b/base/doc/ltnews18.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews19.tex b/base/doc/ltnews19.tex index 5a18300cc..234c9308d 100644 --- a/base/doc/ltnews19.tex +++ b/base/doc/ltnews19.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews20.tex b/base/doc/ltnews20.tex index 6d31e1f56..63171521a 100644 --- a/base/doc/ltnews20.tex +++ b/base/doc/ltnews20.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews21.tex b/base/doc/ltnews21.tex index 16319e56d..7d0bc4e56 100644 --- a/base/doc/ltnews21.tex +++ b/base/doc/ltnews21.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews22.tex b/base/doc/ltnews22.tex index 4a5f70bdb..97353b93b 100644 --- a/base/doc/ltnews22.tex +++ b/base/doc/ltnews22.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2024 +% Copyright (C) 2015-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews23.tex b/base/doc/ltnews23.tex index 6eaaa08fd..9e0e8fe94 100644 --- a/base/doc/ltnews23.tex +++ b/base/doc/ltnews23.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2024 +% Copyright (C) 2015-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews24.tex b/base/doc/ltnews24.tex index d34669098..2a4885310 100644 --- a/base/doc/ltnews24.tex +++ b/base/doc/ltnews24.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2024 +% Copyright (C) 2015-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews25.tex b/base/doc/ltnews25.tex index 4a168fee7..dbf8b1c74 100644 --- a/base/doc/ltnews25.tex +++ b/base/doc/ltnews25.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2016-2024 +% Copyright (C) 2016-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews26.tex b/base/doc/ltnews26.tex index 7ce1b7bd1..cf06e5b14 100644 --- a/base/doc/ltnews26.tex +++ b/base/doc/ltnews26.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2024 +% Copyright (C) 2017-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews27.tex b/base/doc/ltnews27.tex index 44407da76..a4012e57b 100644 --- a/base/doc/ltnews27.tex +++ b/base/doc/ltnews27.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2024 +% Copyright (C) 2017-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews28.tex b/base/doc/ltnews28.tex index de4ecfa00..e107d823a 100644 --- a/base/doc/ltnews28.tex +++ b/base/doc/ltnews28.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2024 +% Copyright (C) 2017-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews29.tex b/base/doc/ltnews29.tex index b201c4918..2c8b12df0 100644 --- a/base/doc/ltnews29.tex +++ b/base/doc/ltnews29.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2018-2024 +% Copyright (C) 2018-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews30.tex b/base/doc/ltnews30.tex index 97d2e9d89..940af7a06 100644 --- a/base/doc/ltnews30.tex +++ b/base/doc/ltnews30.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews31.tex b/base/doc/ltnews31.tex index c1b81e52b..32015c49f 100644 --- a/base/doc/ltnews31.tex +++ b/base/doc/ltnews31.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews32.tex b/base/doc/ltnews32.tex index ccc5feff7..85e245d13 100644 --- a/base/doc/ltnews32.tex +++ b/base/doc/ltnews32.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews33.tex b/base/doc/ltnews33.tex index 83e8a90c4..d473df1e1 100644 --- a/base/doc/ltnews33.tex +++ b/base/doc/ltnews33.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews34.tex b/base/doc/ltnews34.tex index 889531fe7..6941932d2 100644 --- a/base/doc/ltnews34.tex +++ b/base/doc/ltnews34.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews35.tex b/base/doc/ltnews35.tex index d8c985b81..501b5815d 100644 --- a/base/doc/ltnews35.tex +++ b/base/doc/ltnews35.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2021-2024 +% Copyright (C) 2021-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews36.tex b/base/doc/ltnews36.tex index fdd830d87..cb45d7811 100644 --- a/base/doc/ltnews36.tex +++ b/base/doc/ltnews36.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2021-2024 +% Copyright (C) 2021-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltnews37.tex b/base/doc/ltnews37.tex index 1efb0a512..3fc9ac122 100644 --- a/base/doc/ltnews37.tex +++ b/base/doc/ltnews37.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2021-2024 +% Copyright (C) 2021-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/ltx3info.tex b/base/doc/ltx3info.tex index bfa09b9b8..8bb52812c 100644 --- a/base/doc/ltx3info.tex +++ b/base/doc/ltx3info.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/modguide.tex b/base/doc/modguide.tex index ff934ecc3..5803f3253 100644 --- a/base/doc/modguide.tex +++ b/base/doc/modguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/source2e.tex b/base/doc/source2e.tex index b82ef5664..aaf44ba7e 100644 --- a/base/doc/source2e.tex +++ b/base/doc/source2e.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/usrguide-historic.tex b/base/doc/usrguide-historic.tex index 228a253ab..84daa5898 100644 --- a/base/doc/usrguide-historic.tex +++ b/base/doc/usrguide-historic.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/doc/usrguide.tex b/base/doc/usrguide.tex index e4ea6e4e0..b2e8e4939 100644 --- a/base/doc/usrguide.tex +++ b/base/doc/usrguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2024 +% Copyright (C) 2020-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/docstrip.dtx b/base/docstrip.dtx index d5366b3fd..4e469f3f3 100644 --- a/base/docstrip.dtx +++ b/base/docstrip.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/docstrip.ins b/base/docstrip.ins index 6ed99c922..e145b036c 100644 --- a/base/docstrip.ins +++ b/base/docstrip.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -52,7 +52,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/ec.ins b/base/ec.ins index 53ea22f95..dd652de9f 100644 --- a/base/ec.ins +++ b/base/ec.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/exscale.dtx b/base/exscale.dtx index 1712d18a2..107f2f5c8 100644 --- a/base/exscale.dtx +++ b/base/exscale.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/exscale.ins b/base/exscale.ins index 38c6aea61..4dda68b7b 100644 --- a/base/exscale.ins +++ b/base/exscale.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/fix-cm.dtx b/base/fix-cm.dtx index 09af95dad..4d99b91c4 100644 --- a/base/fix-cm.dtx +++ b/base/fix-cm.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/fix-cm.ins b/base/fix-cm.ins index 2023ea229..1484eb946 100644 --- a/base/fix-cm.ins +++ b/base/fix-cm.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/fontdef.dtx b/base/fontdef.dtx index ad66ed411..770afe445 100644 --- a/base/fontdef.dtx +++ b/base/fontdef.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/format.ins b/base/format.ins index e20ff0943..a6dde4038 100644 --- a/base/format.ins +++ b/base/format.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. @@ -88,7 +88,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 2015-2024 +Copyright (C) 2015-2025 The LaTeX Project and any individual authors listed elsewhere in this file. @@ -123,7 +123,7 @@ extension .ins) which are part of the distribution. This is a generated file. -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/graphpap.dtx b/base/graphpap.dtx index 7d93512b2..9de5fb7ca 100644 --- a/base/graphpap.dtx +++ b/base/graphpap.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/graphpap.ins b/base/graphpap.ins index 7898dd2f9..567a5c65c 100644 --- a/base/graphpap.ins +++ b/base/graphpap.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/idx.tex b/base/idx.tex index 001595bb7..6e7dc676b 100644 --- a/base/idx.tex +++ b/base/idx.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ifthen.dtx b/base/ifthen.dtx index 0bbe36121..c024c1a04 100644 --- a/base/ifthen.dtx +++ b/base/ifthen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ifthen.ins b/base/ifthen.ins index 0382d2255..115ca707d 100644 --- a/base/ifthen.ins +++ b/base/ifthen.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/inputenc.dtx b/base/inputenc.dtx index 7ab9713d8..407fc23e4 100644 --- a/base/inputenc.dtx +++ b/base/inputenc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/inputenc.ins b/base/inputenc.ins index 2cfe82067..4b3803b2c 100644 --- a/base/inputenc.ins +++ b/base/inputenc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/lablst.tex b/base/lablst.tex index 961928d5a..511520451 100644 --- a/base/lablst.tex +++ b/base/lablst.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/latex209.dtx b/base/latex209.dtx index 7e4132665..626d026c3 100644 --- a/base/latex209.dtx +++ b/base/latex209.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/latex209.ins b/base/latex209.ins index 9226268c2..631cedb85 100644 --- a/base/latex209.ins +++ b/base/latex209.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/latexrelease.dtx b/base/latexrelease.dtx index 5b5c3648a..90b574835 100644 --- a/base/latexrelease.dtx +++ b/base/latexrelease.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/latexrelease.ins b/base/latexrelease.ins index 89c3b0fc3..9c3b8d6fc 100644 --- a/base/latexrelease.ins +++ b/base/latexrelease.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/latexsym.dtx b/base/latexsym.dtx index 4ad173158..d3240c73d 100644 --- a/base/latexsym.dtx +++ b/base/latexsym.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/latexsym.ins b/base/latexsym.ins index 874f12cbf..e53ccdefe 100644 --- a/base/latexsym.ins +++ b/base/latexsym.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. @@ -87,7 +87,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/letter.dtx b/base/letter.dtx index dde59f40e..347ee57f2 100644 --- a/base/letter.dtx +++ b/base/letter.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/letter.ins b/base/letter.ins index 72bb25531..e91376a55 100644 --- a/base/letter.ins +++ b/base/letter.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/ltalloc.dtx b/base/ltalloc.dtx index d9d5ebd3b..b2e81bb15 100644 --- a/base/ltalloc.dtx +++ b/base/ltalloc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltbibl.dtx b/base/ltbibl.dtx index 37d11a97a..032daadae 100644 --- a/base/ltbibl.dtx +++ b/base/ltbibl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltboxes.dtx b/base/ltboxes.dtx index e3620ef1a..152ba1285 100644 --- a/base/ltboxes.dtx +++ b/base/ltboxes.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltclass.dtx b/base/ltclass.dtx index 6167cf560..8fa1acf39 100644 --- a/base/ltclass.dtx +++ b/base/ltclass.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltcmd.dtx b/base/ltcmd.dtx index eccb104bb..2330f9836 100644 --- a/base/ltcmd.dtx +++ b/base/ltcmd.dtx @@ -2,7 +2,7 @@ % % Copyright (C) 1999 Frank Mittelbach, Chris Rowley, David Carlisle % Copyright (C) 2004-2008 Frank Mittelbach, The LaTeX Project -% Copyright (C) 2009-2024 +% Copyright (C) 2009-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltcmdhooks.dtx b/base/ltcmdhooks.dtx index 0d14ebfe6..22d9bed9c 100644 --- a/base/ltcmdhooks.dtx +++ b/base/ltcmdhooks.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % %% From File: ltcmdhooks.dtx -%% Copyright (C) 2020-2024 +%% Copyright (C) 2020-2025 %% Frank Mittelbach, Phelype Oleinik, The LaTeX Project % % It may be distributed and/or modified under the conditions of the diff --git a/base/ltcntrl.dtx b/base/ltcntrl.dtx index fad5bf479..6c406240b 100644 --- a/base/ltcntrl.dtx +++ b/base/ltcntrl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltcounts.dtx b/base/ltcounts.dtx index 1d3f20248..498d5d6db 100644 --- a/base/ltcounts.dtx +++ b/base/ltcounts.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltdefns.dtx b/base/ltdefns.dtx index 5185a076e..ea16dad3f 100644 --- a/base/ltdefns.dtx +++ b/base/ltdefns.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltdirchk.dtx b/base/ltdirchk.dtx index 917431552..f8d6e246e 100644 --- a/base/ltdirchk.dtx +++ b/base/ltdirchk.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/lterror.dtx b/base/lterror.dtx index 7170e51f8..996531088 100644 --- a/base/lterror.dtx +++ b/base/lterror.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltexpl.dtx b/base/ltexpl.dtx index 410235a05..c9ae72b90 100644 --- a/base/ltexpl.dtx +++ b/base/ltexpl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfilehook.dtx b/base/ltfilehook.dtx index 02e95d0f8..8c57a1b7e 100644 --- a/base/ltfilehook.dtx +++ b/base/ltfilehook.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2024 +% Copyright (C) 2020-2025 % Frank Mittelbach, Phelype Oleinik and The LaTeX Project % % This file is part of the LaTeX base system. diff --git a/base/ltfiles.dtx b/base/ltfiles.dtx index 2e2a8884a..40c0b7dff 100644 --- a/base/ltfiles.dtx +++ b/base/ltfiles.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfinal.dtx b/base/ltfinal.dtx index 2c6b96049..2e0dd5d61 100644 --- a/base/ltfinal.dtx +++ b/base/ltfinal.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfloat.dtx b/base/ltfloat.dtx index ef057def0..7edce570c 100644 --- a/base/ltfloat.dtx +++ b/base/ltfloat.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfntcmd.dtx b/base/ltfntcmd.dtx index 097b8f692..12b2d7af5 100644 --- a/base/ltfntcmd.dtx +++ b/base/ltfntcmd.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfssaxes.dtx b/base/ltfssaxes.dtx index 867847228..d30d36eb6 100644 --- a/base/ltfssaxes.dtx +++ b/base/ltfssaxes.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfssbas.dtx b/base/ltfssbas.dtx index 4e376d376..c89c8636d 100644 --- a/base/ltfssbas.dtx +++ b/base/ltfssbas.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfsscmp.dtx b/base/ltfsscmp.dtx index 57c94ea68..893172d95 100644 --- a/base/ltfsscmp.dtx +++ b/base/ltfsscmp.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfssdcl.dtx b/base/ltfssdcl.dtx index c88fe6e1b..89e499409 100644 --- a/base/ltfssdcl.dtx +++ b/base/ltfssdcl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfssini.dtx b/base/ltfssini.dtx index 79e854691..7df748430 100644 --- a/base/ltfssini.dtx +++ b/base/ltfssini.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltfsstrc.dtx b/base/ltfsstrc.dtx index de9518f4e..6f7a564c9 100644 --- a/base/ltfsstrc.dtx +++ b/base/ltfsstrc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/lthooks.dtx b/base/lthooks.dtx index 0c33c022e..368980d8d 100644 --- a/base/lthooks.dtx +++ b/base/lthooks.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2024 +% Copyright (C) 2020-2025 % Frank Mittelbach, Phelype Oleinik, The LaTeX Project % % This file is part of the LaTeX base system. diff --git a/base/lthyphen.dtx b/base/lthyphen.dtx index ae1e2182a..3ef84608d 100644 --- a/base/lthyphen.dtx +++ b/base/lthyphen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltidxglo.dtx b/base/ltidxglo.dtx index 25b8dd12e..c1b1bdbbd 100644 --- a/base/ltidxglo.dtx +++ b/base/ltidxglo.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltkeys.dtx b/base/ltkeys.dtx index a9e430206..66264d2b7 100644 --- a/base/ltkeys.dtx +++ b/base/ltkeys.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2021-2024 +% Copyright (C) 2021-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltlength.dtx b/base/ltlength.dtx index 75c1f2267..9bb04ee74 100644 --- a/base/ltlength.dtx +++ b/base/ltlength.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltlists.dtx b/base/ltlists.dtx index 58795b3b5..836675398 100644 --- a/base/ltlists.dtx +++ b/base/ltlists.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltlogos.dtx b/base/ltlogos.dtx index 4fc710ba4..e6e927133 100644 --- a/base/ltlogos.dtx +++ b/base/ltlogos.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltluatex.dtx b/base/ltluatex.dtx index 315b62cc9..a85e6c3e8 100644 --- a/base/ltluatex.dtx +++ b/base/ltluatex.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2024 +% Copyright (C) 2015-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltmarks.dtx b/base/ltmarks.dtx index f769a0932..ce7edc9a6 100644 --- a/base/ltmarks.dtx +++ b/base/ltmarks.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % %% File: ltmarks.dtx -%% Copyright (C) 2022-2024 +%% Copyright (C) 2022-2025 %% Frank Mittelbach, The LaTeX Project % % It may be distributed and/or modified under the conditions of the diff --git a/base/ltmath.dtx b/base/ltmath.dtx index b40faa8a8..6cd251bd2 100644 --- a/base/ltmath.dtx +++ b/base/ltmath.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltmeta.dtx b/base/ltmeta.dtx index 410f6459f..35fe3ada0 100644 --- a/base/ltmeta.dtx +++ b/base/ltmeta.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % %% File: ltmeta.dtx -%% Copyright (C) 2021-2024 +%% Copyright (C) 2021-2025 %% Frank Mittelbach, The LaTeX Project % % It may be distributed and/or modified under the conditions of the diff --git a/base/ltmiscen.dtx b/base/ltmiscen.dtx index 70c374f70..833bcc8e4 100644 --- a/base/ltmiscen.dtx +++ b/base/ltmiscen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltnews.cls b/base/ltnews.cls index fa86ce17b..fef89a60d 100644 --- a/base/ltnews.cls +++ b/base/ltnews.cls @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltoutenc.dtx b/base/ltoutenc.dtx index c18ff0144..b34028229 100644 --- a/base/ltoutenc.dtx +++ b/base/ltoutenc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltoutenc.ins b/base/ltoutenc.ins index c5316f9aa..5f9fa2320 100644 --- a/base/ltoutenc.ins +++ b/base/ltoutenc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/ltoutput.dtx b/base/ltoutput.dtx index f0c1bf830..0bb56687a 100644 --- a/base/ltoutput.dtx +++ b/base/ltoutput.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltpage.dtx b/base/ltpage.dtx index f4efe0fd5..cf05202e8 100644 --- a/base/ltpage.dtx +++ b/base/ltpage.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltpageno.dtx b/base/ltpageno.dtx index da80dbaab..5f2704676 100644 --- a/base/ltpageno.dtx +++ b/base/ltpageno.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltpar.dtx b/base/ltpar.dtx index 200d3b423..5e8e2bd89 100644 --- a/base/ltpar.dtx +++ b/base/ltpar.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltpara.dtx b/base/ltpara.dtx index b7b895350..4f3e60bd5 100644 --- a/base/ltpara.dtx +++ b/base/ltpara.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % %% File: ltpara.dtx -%% Copyright (C) 2020-2024 +%% Copyright (C) 2020-2025 %% Frank Mittelbach, The LaTeX Project % % It may be distributed and/or modified under the conditions of the diff --git a/base/ltpictur.dtx b/base/ltpictur.dtx index c6fc5236a..38d7f6457 100644 --- a/base/ltpictur.dtx +++ b/base/ltpictur.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltplain.dtx b/base/ltplain.dtx index a628b954d..ff4bb905e 100644 --- a/base/ltplain.dtx +++ b/base/ltplain.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltsect.dtx b/base/ltsect.dtx index 21aeda32e..a4f84d09a 100644 --- a/base/ltsect.dtx +++ b/base/ltsect.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltshipout.dtx b/base/ltshipout.dtx index c2e70ba6d..a15bbb88f 100644 --- a/base/ltshipout.dtx +++ b/base/ltshipout.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment %% -%% Copyright (C) 2020-2024 +%% Copyright (C) 2020-2025 %% Frank Mittelbach, The LaTeX Project %% % diff --git a/base/ltsockets.dtx b/base/ltsockets.dtx index a977f8f6a..a021a928c 100644 --- a/base/ltsockets.dtx +++ b/base/ltsockets.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2023-2024 +% Copyright (C) 2023-2025 % Frank Mittelbach, The LaTeX Project % % This file is part of the LaTeX base system. diff --git a/base/ltspace.dtx b/base/ltspace.dtx index 03005f599..341e39305 100644 --- a/base/ltspace.dtx +++ b/base/ltspace.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/lttab.dtx b/base/lttab.dtx index f11475782..aef3d11ff 100644 --- a/base/lttab.dtx +++ b/base/lttab.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/lttagging.dtx b/base/lttagging.dtx index e8befabf7..ecbb66418 100644 --- a/base/lttagging.dtx +++ b/base/lttagging.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2023-2024 +% Copyright (C) 2023-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/lttemplates.dtx b/base/lttemplates.dtx index 66a69c173..0c9f37718 100644 --- a/base/lttemplates.dtx +++ b/base/lttemplates.dtx @@ -2,7 +2,7 @@ % % Copyright (C) 1999 Frank Mittelbach, Chris Rowley, David Carlisle % Copyright (C) 2004-2010 Frank Mittelbach, The LaTeX Project -% Copyright (C) 2011-2024 +% Copyright (C) 2011-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -2643,4 +2643,4 @@ %<@@=> % \end{macrocode} % -% \Finale \ No newline at end of file +% \Finale diff --git a/base/lttextcomp.dtx b/base/lttextcomp.dtx index 64c89fe95..b8f8b7ec9 100644 --- a/base/lttextcomp.dtx +++ b/base/lttextcomp.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2024 +% Copyright (C) 2019-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltthm.dtx b/base/ltthm.dtx index c900f519d..ea27e45c1 100644 --- a/base/ltthm.dtx +++ b/base/ltthm.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltvers.dtx b/base/ltvers.dtx index 37f1bea7c..147ebc152 100644 --- a/base/ltvers.dtx +++ b/base/ltvers.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltxcheck.tex b/base/ltxcheck.tex index 244bddffc..d383af1f4 100644 --- a/base/ltxcheck.tex +++ b/base/ltxcheck.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltxdoc.dtx b/base/ltxdoc.dtx index 5e8b49469..9f5d77773 100644 --- a/base/ltxdoc.dtx +++ b/base/ltxdoc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -677,7 +677,7 @@ Bug reports can be opened (category \texttt{#1}) at\\% % % Copyright 2006, 2007, 2011 % Heiko Oberdiek -% Copyright (C) 2014-2024 +% Copyright (C) 2014-2025 % The LaTeX Project % diff --git a/base/ltxguide.cls b/base/ltxguide.cls index c202b56ac..4402a5a56 100644 --- a/base/ltxguide.cls +++ b/base/ltxguide.cls @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/ltxref.dtx b/base/ltxref.dtx index 4464409ab..74734f814 100644 --- a/base/ltxref.dtx +++ b/base/ltxref.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/makeindx.dtx b/base/makeindx.dtx index 20da2f159..57384bb1b 100644 --- a/base/makeindx.dtx +++ b/base/makeindx.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/makeindx.ins b/base/makeindx.ins index 45e5c9aab..d58ead0bb 100644 --- a/base/makeindx.ins +++ b/base/makeindx.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/minimal.cls b/base/minimal.cls index 64efdd528..c7d420494 100644 --- a/base/minimal.cls +++ b/base/minimal.cls @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/newdc.ins b/base/newdc.ins index 69d74d616..40344ede5 100644 --- a/base/newdc.ins +++ b/base/newdc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/newlfont.dtx b/base/newlfont.dtx index 2792395c5..a7fb388ca 100644 --- a/base/newlfont.dtx +++ b/base/newlfont.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/nfssfont.dtx b/base/nfssfont.dtx index 0464053c1..5f18ec812 100644 --- a/base/nfssfont.dtx +++ b/base/nfssfont.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/nfssfont.ins b/base/nfssfont.ins index 00f5a0c8a..292d28771 100644 --- a/base/nfssfont.ins +++ b/base/nfssfont.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/olddc.ins b/base/olddc.ins index 1f5d12ece..9b64c8512 100644 --- a/base/olddc.ins +++ b/base/olddc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/oldlfont.dtx b/base/oldlfont.dtx index 7a3534f51..94ef5e6ce 100644 --- a/base/oldlfont.dtx +++ b/base/oldlfont.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/preload.dtx b/base/preload.dtx index fb5f86824..029db1c50 100644 --- a/base/preload.dtx +++ b/base/preload.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/proc.dtx b/base/proc.dtx index ec69e4739..e704147c7 100644 --- a/base/proc.dtx +++ b/base/proc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/proc.ins b/base/proc.ins index 83f50bda1..f2e3be729 100644 --- a/base/proc.ins +++ b/base/proc.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/slides.dtx b/base/slides.dtx index 3674a6c05..0d77e5a68 100644 --- a/base/slides.dtx +++ b/base/slides.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/slides.ins b/base/slides.ins index 3124ed366..4402c0746 100644 --- a/base/slides.ins +++ b/base/slides.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. @@ -96,7 +96,7 @@ extension .ins) which are part of the distribution. This is a generated file. -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. @@ -138,7 +138,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/slifonts.fdd b/base/slifonts.fdd index b35cd07a8..3b4ca46bd 100644 --- a/base/slifonts.fdd +++ b/base/slifonts.fdd @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/syntonly.dtx b/base/syntonly.dtx index 9844585fa..6b671628d 100644 --- a/base/syntonly.dtx +++ b/base/syntonly.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/syntonly.ins b/base/syntonly.ins index 6435e0a6e..91434295d 100644 --- a/base/syntonly.ins +++ b/base/syntonly.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2024 +Copyright (C) 1993-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/testpage.tex b/base/testpage.tex index e8f06313f..77f955b79 100644 --- a/base/testpage.tex +++ b/base/testpage.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/tulm.fdd b/base/tulm.fdd index 6f7a6873c..d8dbd176e 100644 --- a/base/tulm.fdd +++ b/base/tulm.fdd @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2016-2024 +% Copyright (C) 2016-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/base/tulm.ins b/base/tulm.ins index ea8fd7b22..244aadf6a 100644 --- a/base/tulm.ins +++ b/base/tulm.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 2016-2024 +%% Copyright (C) 2016-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright (C) 2016-2024 +Copyright (C) 2016-2025 The LaTeX Project and any individual authors listed elsewhere in this file. diff --git a/base/unpack.ins b/base/unpack.ins index e81c8dbfa..d0501f577 100644 --- a/base/unpack.ins +++ b/base/unpack.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2024 +%% Copyright (C) 1993-2025 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% diff --git a/base/utf8ienc.dtx b/base/utf8ienc.dtx index a2701ac5c..25e6d8bf4 100644 --- a/base/utf8ienc.dtx +++ b/base/utf8ienc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2024 +% Copyright (C) 1993-2025 % The LaTeX Project and any individual authors listed elsewhere % in this file. % From 7a2f6c26adf716bbd019846c65e3e8be7903e835 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Wed, 29 Jan 2025 13:09:36 +0000 Subject: [PATCH 12/14] Step release tag --- base/README.md | 2 +- base/ltvers.dtx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/base/README.md b/base/README.md index b7cb63f56..d58ccb25e 100644 --- a/base/README.md +++ b/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2024-11-01 patch level 1 +Release 2024-11-01 patch level 2 Overview -------- diff --git a/base/ltvers.dtx b/base/ltvers.dtx index 147ebc152..3f520e674 100644 --- a/base/ltvers.dtx +++ b/base/ltvers.dtx @@ -115,7 +115,7 @@ {2024-11-01} % %<*2ekernel> -\def\patch@level{1} +\def\patch@level{2} % \end{macrocode} % % \begin{macro}{\development@branch@name} From a068d6589b214dd37d899fad0564af3e6ee534df Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Thu, 30 Jan 2025 11:53:46 +0000 Subject: [PATCH 13/14] Update l3kernel to 2025-01-18 --- base/testfiles/github-0944.tlg | 2 +- texmf/tex/latex/l3kernel/expl3-code.tex | 2174 +++++++++-------- texmf/tex/latex/l3kernel/expl3-generic.tex | 4 +- texmf/tex/latex/l3kernel/expl3.ltx | 4 +- texmf/tex/latex/l3kernel/expl3.lua | 2 +- texmf/tex/latex/l3kernel/expl3.sty | 4 +- texmf/tex/latex/l3kernel/l3debug.def | 4 +- texmf/tex/latex/l3kernel/l3doc.cls | 4 +- texmf/tex/latex/l3kernel/l3docstrip.tex | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88591.def | 2 +- .../latex/l3kernel/l3str-enc-iso885910.def | 2 +- .../latex/l3kernel/l3str-enc-iso885911.def | 2 +- .../latex/l3kernel/l3str-enc-iso885913.def | 2 +- .../latex/l3kernel/l3str-enc-iso885914.def | 2 +- .../latex/l3kernel/l3str-enc-iso885915.def | 2 +- .../latex/l3kernel/l3str-enc-iso885916.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88592.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88593.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88594.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88595.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88596.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88597.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88598.def | 2 +- .../tex/latex/l3kernel/l3str-enc-iso88599.def | 2 +- 24 files changed, 1189 insertions(+), 1041 deletions(-) diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg index add16da8d..fc201555d 100644 --- a/base/testfiles/github-0944.tlg +++ b/base/testfiles/github-0944.tlg @@ -22,7 +22,7 @@ LaTeX Warning: Reference `unknown' on page 1 undefined on input line .... ] (github-0944.aux) *********** -formatname- <-formatversion-> patch level -2 -L3 programming layer <2024-12-25> +L3 programming layer <2025-01-18> *********** *File List* -show the file list here- diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex index fd8da0a35..8d95f514b 100644 --- a/texmf/tex/latex/l3kernel/expl3-code.tex +++ b/texmf/tex/latex/l3kernel/expl3-code.tex @@ -62,7 +62,7 @@ %% l3legacy.dtx (with options: `package') %% l3deprecation.dtx (with options: `package') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -75,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3073,13 +3073,23 @@ \__cs_generate_variant:w #2 \s__cs_mark {#3} {#4} {#5} } \cs_new_protected:Npn \__cs_generate_variant_p_form:nnn #1#2 - { \cs_generate_variant:cn { #1 _p : #2 } } + { \__cs_generate_variant_check:nn { #1 _p : #2 } } \cs_new_protected:Npn \__cs_generate_variant_T_form:nnn #1#2 - { \cs_generate_variant:cn { #1 : #2 T } } + { \__cs_generate_variant_check:nn { #1 : #2 T } } \cs_new_protected:Npn \__cs_generate_variant_F_form:nnn #1#2 - { \cs_generate_variant:cn { #1 : #2 F } } + { \__cs_generate_variant_check:nn { #1 : #2 F } } \cs_new_protected:Npn \__cs_generate_variant_TF_form:nnn #1#2 - { \cs_generate_variant:cn { #1 : #2 TF } } + { \__cs_generate_variant_check:nn { #1 : #2 TF } } +\cs_new_protected:Npn \__cs_generate_variant_check:nn #1#2 + { + \cs_if_exist:cTF {#1} + { \cs_generate_variant:cn {#1} {#2} } + { + \msg_error:nne + { kernel } { conditional-base-undefined } + { \token_to_str:c {#1} } + } + } \cs_new_protected:Npn \exp_args_generate:n #1 { \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} } @@ -6379,13 +6389,14 @@ \cs_new:Npn \int_eval:n #1 { \tex_the:D \__int_eval:w #1 \__int_eval_end: } \cs_new:Npn \int_eval:w { \tex_the:D \__int_eval:w } +\cs_new_eq:NN \__int_sep: \tex_right:D \cs_new:Npn \int_sign:n #1 { \int_value:w \exp_after:wN \__int_sign:Nw - \int_value:w \__int_eval:w #1 \__int_eval_end: ; + \int_value:w \__int_eval:w #1 \__int_eval_end: \__int_sep: \exp_stop_f: } -\cs_new:Npn \__int_sign:Nw #1#2 ; +\cs_new:Npn \__int_sign:Nw #1#2 \__int_sep: { \if_meaning:w 0 #1 0 @@ -6404,20 +6415,20 @@ \cs_new:Npn \int_max:nn #1#2 { \int_value:w \exp_after:wN \__int_maxmin:wwN - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: > \exp_stop_f: } \cs_new:Npn \int_min:nn #1#2 { \int_value:w \exp_after:wN \__int_maxmin:wwN - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: < \exp_stop_f: } -\cs_new:Npn \__int_maxmin:wwN #1 ; #2 ; #3 +\cs_new:Npn \__int_maxmin:wwN #1 \__int_sep: #2 \__int_sep: #3 { \if_int_compare:w #1 #3 #2 ~ #1 @@ -6429,11 +6440,11 @@ { \int_value:w \__int_eval:w \exp_after:wN \__int_div_truncate:NwNw - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: \__int_eval_end: } -\cs_new:Npn \__int_div_truncate:NwNw #1#2; #3#4; +\cs_new:Npn \__int_div_truncate:NwNw #1#2 \__int_sep: #3#4 \__int_sep: { \if_meaning:w 0 #1 0 @@ -6451,12 +6462,12 @@ \cs_new:Npn \int_mod:nn #1#2 { \int_value:w \__int_eval:w \exp_after:wN \__int_mod:ww - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 ; + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \__int_sep: \__int_eval_end: } -\cs_new:Npn \__int_mod:ww #1; #2; - { #1 - ( \__int_div_truncate:NwNw #1 ; #2 ; ) * #2 } +\cs_new:Npn \__int_mod:ww #1 \__int_sep: #2 \__int_sep: + { #1 - ( \__int_div_truncate:NwNw #1 \__int_sep: #2 \__int_sep: ) * #2 } \cs_new:Npn \__kernel_int_add:nnn #1#2#3 { \int_value:w \__int_eval:w #1 @@ -6768,41 +6779,47 @@ } \cs_new:Npn \int_step_function:nnnN #1#2#3 { - \exp_after:wN \__int_step:wwwN - \int_value:w \__int_eval:w #1 \exp_after:wN ; - \int_value:w \__int_eval:w #2 \exp_after:wN ; - \int_value:w \__int_eval:w #3 ; + \exp_after:wN \__int_step:w + \int_value:w \__int_eval:w #1 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #2 \exp_after:wN \__int_sep: + \int_value:w \__int_eval:w #3 \__int_sep: } -\cs_new:Npn \__int_step:wwwN #1; #2; #3; #4 +\cs_new:Npn \__int_step:w #1 \__int_sep: #2 \__int_sep: #3 \__int_sep: #4 { \int_compare:nNnTF {#2} > \c_zero_int - { \__int_step:NwnnN > } + { \__int_step:Nw > } { - \int_compare:nNnTF {#2} = \c_zero_int + \if_meaning:w 0 #2 + \exp_after:wN \use_ii:nn + \fi: + \use_none:n { \msg_expandable_error:nnn { kernel } { zero-step } {#4} \prg_break: } - { \__int_step:NwnnN < } + \__int_step:Nw < } - #1 ; {#2} {#3} #4 + #1 \__int_sep: {#2} {#3} {#4} \prg_break_point: } -\cs_new:Npn \__int_step:NwnnN #1#2 ; #3#4#5 +\cs_new:Npn \__int_step:Nw #1#2 \__int_sep: #3#4#5 { \if_int_compare:w #2 #1 #4 \exp_stop_f: \prg_break:n \fi: #5 {#2} - \exp_after:wN \__int_step:NwnnN + \exp_after:wN \__int_step:Nw \exp_after:wN #1 - \int_value:w \__int_eval:w #2 + #3 ; {#3} {#4} #5 + \int_value:w \__int_eval:w #2 + #3 \__int_sep: {#3} {#4} {#5} } \cs_new:Npn \int_step_function:nN - { \int_step_function:nnnN { 1 } { 1 } } + { \int_step_function:nnnN \c_one_int \c_one_int } \cs_new:Npn \int_step_function:nnN #1 - { \int_step_function:nnnN {#1} { 1 } } + { \int_step_function:nnnN {#1} \c_one_int } +\cs_new_eq:NN \int_step_tokens:nn \int_step_function:nN +\cs_new_eq:NN \int_step_tokens:nnn \int_step_function:nnN +\cs_new_eq:NN \int_step_tokens:nnnn \int_step_function:nnnN \cs_new_protected:Npn \int_step_inline:nn { \int_step_inline:nnnn { 1 } { 1 } } \cs_new_protected:Npn \int_step_inline:nnn #1 @@ -11165,6 +11182,13 @@ } \msg_new:nnn { kernel } { randint-backward-range } { Wrong~order~of~bounds~in~\iow_char:N\\int_rand:nn{#1}{#2}. } +\msg_new:nnnn { kernel } { conditional-base-undefined } + { Undefined~conditional~base~function~'#1'. } + { + \c__msg_coding_error_text_tl + LaTeX~has~been~asked~to~define~a~variant~of~the~conditional~'#1',~ + but~the~latter~is~not~defined. + } \msg_new:nnnn { kernel } { conditional-form-unknown } { Conditional~form~'#1'~for~function~'#2'~unknown. } { @@ -13894,16 +13918,27 @@ \fi: \cs_set_eq:cN {#1} \tex_undefined:D } -\cs_new_protected:Npn \keys_define:nn - { \__keys_define:onn \l__keys_module_str } -\cs_generate_variant:Nn \keys_define:nn { ne , nx } -\cs_new_protected:Npn \__keys_define:nnn #1#2#3 +\cs_new_protected:Npn \keys_define:nn #1#2 { - \str_set:Ne \l__keys_module_str { \__keys_trim_spaces:n {#2} } - \keyval_parse:NNn \__keys_define:n \__keys_define:nn {#3} - \str_set:Nn \l__keys_module_str {#1} + \use:e + { + \exp_not:n + { + \str_set:Ne \l__keys_module_str { \__keys_trim_spaces:n {#1} } + \keyval_parse:NNn \__keys_define:n \__keys_define:nn {#2} + } + \__keys_reset_var:N \l__keys_module_str + \__keys_reset_var:N \l__keys_inherit_str + \__keys_reset_var:N \l_keys_choice_tl + \__keys_reset_var:N \l_keys_key_tl + \__keys_reset_var:N \l_keys_key_str + \__keys_reset_var:N \l_keys_path_tl + \__keys_reset_var:N \l_keys_path_str + \__keys_reset_var:N \l_keys_value_tl + \int_set:Nn \l_keys_choice_int { \int_use:N \l_keys_choice_int } + } } -\cs_generate_variant:Nn \__keys_define:nnn { o } +\cs_generate_variant:Nn \keys_define:nn { ne , nx } \cs_new_protected:Npn \__keys_define:n #1 { \bool_set_true:N \l__keys_no_value_bool @@ -14167,14 +14202,8 @@ \cs:w if#1 \cs_end: } } -\cs_new_protected:Npn \__keys_meta_make:n #1 - { - \exp_args:NVo \__keys_cmd_set_direct:nn \l_keys_path_str - { - \exp_after:wN \__keys_set:nn \exp_after:wN - { \l__keys_module_str } {#1} - } - } +\cs_new_protected:Npn \__keys_meta_make:n + { \exp_args:NV \__keys_meta_make:nn \l__keys_module_str } \cs_new_protected:Npn \__keys_meta_make:nn #1#2 { \exp_args:NV \__keys_cmd_set_direct:nn @@ -14501,33 +14530,34 @@ { \__keys_value_requirement:nn { forbidden } {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .value_required:n } #1 { \__keys_value_requirement:nn { required } {#1} } -\cs_new_protected:Npn \__keys_set:nnnnNn - { - \exp_args:Nooo \__keys_set:nnnnnnnNn - \l__keys_unused_clist - \l__keys_selective_clist - \l__keys_relative_tl - } -\cs_new_protected:Npn \__keys_set:nnnnnnnNn #1#2#3#4#5#6#7#8#9 +\cs_new_protected:Npn \__keys_set:nnnnNn #1#2#3#4#5#6 { - \clist_clear:N \l__keys_unused_clist - \clist_set:Ne \l__keys_selective_clist { \tl_to_str:n {#5} } - \tl_set:Nn \l__keys_relative_tl {#7} \use:e { \exp_not:n { - #9 - \__keys_set:nn {#4} {#6} + \clist_clear:N \l__keys_unused_clist + \clist_set:Ne \l__keys_selective_clist { \tl_to_str:n {#2} } + \tl_set:Nn \l__keys_relative_tl {#4} + #6 + \__keys_set:nn {#1} {#3} + \clist_set_eq:NN #5 \l__keys_unused_clist } \__keys_reset_bool:N \l__keys_only_known_bool \__keys_reset_bool:N \l__keys_exclude_bool \__keys_reset_bool:N \l__keys_selective_bool + \__keys_reset_var:N \l__keys_unused_clist + \__keys_reset_var:N \l__keys_selective_clist + \__keys_reset_var:N \l__keys_relative_tl + \__keys_reset_var:N \l__keys_inherit_str + \__keys_reset_var:N \l_keys_choice_tl + \__keys_reset_var:N \l_keys_key_tl + \__keys_reset_var:N \l_keys_key_str + \__keys_reset_var:N \l_keys_path_tl + \__keys_reset_var:N \l_keys_path_str + \__keys_reset_var:N \l_keys_value_tl + \int_set:Nn \l_keys_choice_int { \int_use:N \l_keys_choice_int } } - \clist_set_eq:NN #8 \l__keys_unused_clist - \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } - \__kernel_tl_set:Nx \l__keys_selective_clist {#2} - \__kernel_tl_set:Nx \l__keys_relative_tl { \exp_not:n {#3} } } \cs_new:Npn \__keys_reset_bool:N #1 { @@ -14535,6 +14565,12 @@ { bool_set_ \bool_if:NTF #1 { true } { false } :N } \exp_not:N #1 } +\cs_new:Npn \__keys_reset_var:N #1 + { + \exp_not:n + { \__kernel_tl_set:Nx #1 } + { \exp_not:N \exp_not:n { \exp_not:o { #1 } } } + } \cs_new_protected:Npn \__keys_set:nn #1#2 { \exp_args:No \__keys_set:nnn \l__keys_module_str {#1} {#2} } \cs_new_protected:Npn \__keys_set:nnn #1#2#3 @@ -15338,21 +15374,24 @@ \cs_new_eq:NN \__fp_int_eval:w \tex_numexpr:D \cs_new_eq:NN \__fp_int_eval_end: \scan_stop: \cs_new_eq:NN \__fp_int_to_roman:w \tex_romannumeral:D +\cs_new_eq:NN \__fp_sep: \tex_right:D \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: } -\cs_new:Npn \__fp_use_s:n #1 { #1; } -\cs_new:Npn \__fp_use_s:nn #1#2 { #1#2; } -\cs_new:Npn \__fp_use_none_until_s:w #1; { } -\cs_new:Npn \__fp_use_i_until_s:nw #1#2; {#1} -\cs_new:Npn \__fp_use_ii_until_s:nnw #1#2#3; {#2} -\cs_new:Npn \__fp_reverse_args:Nww #1 #2; #3; { #1 #3; #2; } -\cs_new:Npn \__fp_rrot:www #1; #2; #3; { #2; #3; #1; } -\cs_new:Npn \__fp_use_i:ww #1; #2; { #1; } -\cs_new:Npn \__fp_use_i:www #1; #2; #3; { #1; } +\cs_new:Npn \__fp_use_s:n #1 { #1\__fp_sep: } +\cs_new:Npn \__fp_use_s:nn #1#2 { #1#2\__fp_sep: } +\cs_new:Npn \__fp_use_none_until_s:w #1\__fp_sep: { } +\cs_new:Npn \__fp_use_i_until_s:nw #1#2\__fp_sep: {#1} +\cs_new:Npn \__fp_use_ii_until_s:nnw #1#2#3\__fp_sep: {#2} +\cs_new:Npn \__fp_reverse_args:Nww #1 #2\__fp_sep: #3\__fp_sep: + { #1 #3\__fp_sep: #2\__fp_sep: } +\cs_new:Npn \__fp_rrot:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: + { #2\__fp_sep: #3\__fp_sep: #1\__fp_sep: } +\cs_new:Npn \__fp_use_i:ww #1\__fp_sep: #2\__fp_sep: { #1\__fp_sep: } +\cs_new:Npn \__fp_use_i:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { #1\__fp_sep: } \cs_new_protected:Npn \__fp_misused:n #1 { \msg_error:nne { fp } { misused } { \fp_to_tl:n {#1} } } \scan_new:N \s__fp -\cs_new_protected:Npn \__fp_chk:w #1 ; - { \__fp_misused:n { \s__fp \__fp_chk:w #1 ; } } +\cs_new_protected:Npn \__fp_chk:w #1 \__fp_sep: + { \__fp_misused:n { \s__fp \__fp_chk:w #1 \__fp_sep: } } \scan_new:N \s__fp_expr_mark \scan_new:N \s__fp_expr_stop \scan_new:N \s__fp_mark @@ -15363,11 +15402,11 @@ \scan_new:N \s__fp_overflow \scan_new:N \s__fp_division \scan_new:N \s__fp_exact -\tl_const:Nn \c_zero_fp { \s__fp \__fp_chk:w 0 0 \s__fp_exact ; } -\tl_const:Nn \c_minus_zero_fp { \s__fp \__fp_chk:w 0 2 \s__fp_exact ; } -\tl_const:Nn \c_inf_fp { \s__fp \__fp_chk:w 2 0 \s__fp_exact ; } -\tl_const:Nn \c_minus_inf_fp { \s__fp \__fp_chk:w 2 2 \s__fp_exact ; } -\tl_const:Nn \c_nan_fp { \s__fp \__fp_chk:w 3 1 \s__fp_exact ; } +\tl_const:Nn \c_zero_fp { \s__fp \__fp_chk:w 0 0 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_minus_zero_fp { \s__fp \__fp_chk:w 0 2 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_inf_fp { \s__fp \__fp_chk:w 2 0 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_minus_inf_fp { \s__fp \__fp_chk:w 2 2 \s__fp_exact \__fp_sep: } +\tl_const:Nn \c_nan_fp { \s__fp \__fp_chk:w 3 1 \s__fp_exact \__fp_sep: } \int_const:Nn \c__fp_prec_int { 16 } \int_const:Nn \c__fp_half_prec_int { 8 } \int_const:Nn \c__fp_block_int { 4 } @@ -15379,12 +15418,12 @@ { \s__fp \__fp_chk:w 1 0 { \int_eval:n { \c__fp_max_exponent_int + 1 } } - {1000} {0000} {0000} {0000} ; + {1000} {0000} {0000} {0000} \__fp_sep: } \cs_new:Npn \__fp_zero_fp:N #1 - { \s__fp \__fp_chk:w 0 #1 \s__fp_underflow ; } + { \s__fp \__fp_chk:w 0 #1 \s__fp_underflow \__fp_sep: } \cs_new:Npn \__fp_inf_fp:N #1 - { \s__fp \__fp_chk:w 2 #1 \s__fp_overflow ; } + { \s__fp \__fp_chk:w 2 #1 \s__fp_overflow \__fp_sep: } \cs_new:Npn \__fp_exponent:w \s__fp \__fp_chk:w #1 { \if_meaning:w 1 #1 @@ -15403,7 +15442,7 @@ \s__fp { \__fp_use_i_until_s:nw 4 } \s__fp_stop } -\cs_new:Npn \__fp_sanitize:Nw #1 #2; +\cs_new:Npn \__fp_sanitize:Nw #1 #2\__fp_sep: { \if_case:w \if_int_compare:w #2 > \c__fp_max_exponent_int 1 ~ \else: @@ -15415,8 +15454,8 @@ \fi: \s__fp \__fp_chk:w 1 #1 {#2} } -\cs_new:Npn \__fp_sanitize:wN #1; #2 { \__fp_sanitize:Nw #2 #1; } -\cs_new:Npn \__fp_sanitize_zero:w \s__fp \__fp_chk:w #1 #2 #3; +\cs_new:Npn \__fp_sanitize:wN #1\__fp_sep: #2 { \__fp_sanitize:Nw #2 #1\__fp_sep: } +\cs_new:Npn \__fp_sanitize_zero:w \s__fp \__fp_chk:w #1 #2 #3\__fp_sep: { \c_zero_fp } \cs_new:Npn \__fp_exp_after_o:w \s__fp \__fp_chk:w #1 { @@ -15438,52 +15477,52 @@ { \exp:w \exp_end_continue_f:w #1 } #2 } -\cs_new:Npn \__fp_exp_after_special:nNNw #1#2#3#4; +\cs_new:Npn \__fp_exp_after_special:nNNw #1#2#3#4\__fp_sep: { \exp_after:wN \s__fp \exp_after:wN \__fp_chk:w \exp_after:wN #2 \exp_after:wN #3 \exp_after:wN #4 - \exp_after:wN ; + \exp_after:wN \__fp_sep: #1 } -\cs_new:Npn \__fp_exp_after_normal:nNNw #1 1 #2 #3 #4#5#6#7; +\cs_new:Npn \__fp_exp_after_normal:nNNw #1 1 #2 #3 #4#5#6#7\__fp_sep: { \exp_after:wN \__fp_exp_after_normal:Nwwwww \exp_after:wN #2 - \int_value:w #3 \exp_after:wN ; - \int_value:w 1 #4 \exp_after:wN ; - \int_value:w 1 #5 \exp_after:wN ; - \int_value:w 1 #6 \exp_after:wN ; - \int_value:w 1 #7 \exp_after:wN ; #1 + \int_value:w #3 \exp_after:wN \__fp_sep: + \int_value:w 1 #4 \exp_after:wN \__fp_sep: + \int_value:w 1 #5 \exp_after:wN \__fp_sep: + \int_value:w 1 #6 \exp_after:wN \__fp_sep: + \int_value:w 1 #7 \exp_after:wN \__fp_sep: #1 } \cs_new:Npn \__fp_exp_after_normal:Nwwwww - #1 #2; 1 #3 ; 1 #4 ; 1 #5 ; 1 #6 ; - { \s__fp \__fp_chk:w 1 #1 {#2} {#3} {#4} {#5} {#6} ; } + #1 #2\__fp_sep: 1 #3 \__fp_sep: 1 #4 \__fp_sep: 1 #5 \__fp_sep: 1 #6 \__fp_sep: + { \s__fp \__fp_chk:w 1 #1 {#2} {#3} {#4} {#5} {#6} \__fp_sep: } \scan_new:N \s__fp_tuple -\cs_new_protected:Npn \__fp_tuple_chk:w #1 ; - { \__fp_misused:n { \s__fp_tuple \__fp_tuple_chk:w #1 ; } } +\cs_new_protected:Npn \__fp_tuple_chk:w #1 \__fp_sep: + { \__fp_misused:n { \s__fp_tuple \__fp_tuple_chk:w #1 \__fp_sep: } } \tl_const:Nn \c__fp_empty_tuple_fp - { \s__fp_tuple \__fp_tuple_chk:w { } ; } + { \s__fp_tuple \__fp_tuple_chk:w { } \__fp_sep: } \cs_new:Npn \__fp_array_count:n #1 - { \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w {#1} ; } -\cs_new:Npn \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w #1 ; + { \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w {#1} \__fp_sep: } +\cs_new:Npn \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w #1 \__fp_sep: { \int_value:w \__fp_int_eval:w 0 - \__fp_tuple_count_loop:Nw #1 { ? \prg_break: } ; + \__fp_tuple_count_loop:Nw #1 { ? \prg_break: } \__fp_sep: \prg_break_point: \__fp_int_eval_end: } -\cs_new:Npn \__fp_tuple_count_loop:Nw #1#2; +\cs_new:Npn \__fp_tuple_count_loop:Nw #1#2\__fp_sep: { \use_none:n #1 + 1 \__fp_tuple_count_loop:Nw } \cs_new:Npn \__fp_if_type_fp:NTwFw #1 \s__fp #2 #3 \s__fp_stop {#2} \cs_new:Npn \__fp_array_if_all_fp:nTF #1 { - \__fp_array_if_all_fp_loop:w #1 { \s__fp \prg_break: } ; + \__fp_array_if_all_fp_loop:w #1 { \s__fp \prg_break: } \__fp_sep: \prg_break_point: \use_i:nn } -\cs_new:Npn \__fp_array_if_all_fp_loop:w #1#2 ; +\cs_new:Npn \__fp_array_if_all_fp_loop:w #1#2 \__fp_sep: { \__fp_if_type_fp:NTwFw #1 \__fp_array_if_all_fp_loop:w @@ -15545,7 +15584,7 @@ \cs_new:Npn \__fp_exp_after_tuple_o:w { \__fp_exp_after_tuple_f:nw { \exp_after:wN \exp_stop_f: } } \cs_new:Npn \__fp_exp_after_tuple_f:nw - #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; + #1 \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: { \exp_after:wN \s__fp_tuple \exp_after:wN \__fp_tuple_chk:w @@ -15553,7 +15592,7 @@ \exp:w \exp_end_continue_f:w \__fp_exp_after_array_f:w #2 \s__fp_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w #1 } \cs_new:Npn \__fp_exp_after_array_f:w @@ -15561,42 +15600,43 @@ \int_const:Nn \c__fp_leading_shift_int { - 5 0000 } \int_const:Nn \c__fp_middle_shift_int { 5 0000 * 9999 } \int_const:Nn \c__fp_trailing_shift_int { 5 0000 * 10000 } -\cs_new:Npn \__fp_pack:NNNNNw #1 #2#3#4#5 #6; { + #1#2#3#4#5 ; {#6} } +\cs_new:Npn \__fp_pack:NNNNNw #1 #2#3#4#5 #6\__fp_sep: + { + #1#2#3#4#5 \__fp_sep: {#6} } \int_const:Nn \c__fp_big_leading_shift_int { - 15 2374 } \int_const:Nn \c__fp_big_middle_shift_int { 15 2374 * 9999 } \int_const:Nn \c__fp_big_trailing_shift_int { 15 2374 * 10000 } -\cs_new:Npn \__fp_pack_big:NNNNNNw #1#2 #3#4#5#6 #7; - { + #1#2#3#4#5#6 ; {#7} } +\cs_new:Npn \__fp_pack_big:NNNNNNw #1#2 #3#4#5#6 #7\__fp_sep: + { + #1#2#3#4#5#6 \__fp_sep: {#7} } \int_const:Nn \c__fp_Bigg_leading_shift_int { - 20 0000 } \int_const:Nn \c__fp_Bigg_middle_shift_int { 20 0000 * 9999 } \int_const:Nn \c__fp_Bigg_trailing_shift_int { 20 0000 * 10000 } -\cs_new:Npn \__fp_pack_Bigg:NNNNNNw #1#2 #3#4#5#6 #7; - { + #1#2#3#4#5#6 ; {#7} } -\cs_new:Npn \__fp_pack_twice_four:wNNNNNNNN #1; #2#3#4#5 #6#7#8#9 - { #1 {#2#3#4#5} {#6#7#8#9} ; } -\cs_new:Npn \__fp_pack_eight:wNNNNNNNN #1; #2#3#4#5 #6#7#8#9 - { #1 {#2#3#4#5#6#7#8#9} ; } -\cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6; - { + #1 - 1 ; {#2#3#4#5} {#6} ; } -\cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6; +\cs_new:Npn \__fp_pack_Bigg:NNNNNNw #1#2 #3#4#5#6 #7\__fp_sep: + { + #1#2#3#4#5#6 \__fp_sep: {#7} } +\cs_new:Npn \__fp_pack_twice_four:wNNNNNNNN #1\__fp_sep: #2#3#4#5 #6#7#8#9 + { #1 {#2#3#4#5} {#6#7#8#9} \__fp_sep: } +\cs_new:Npn \__fp_pack_eight:wNNNNNNNN #1\__fp_sep: #2#3#4#5 #6#7#8#9 + { #1 {#2#3#4#5#6#7#8#9} \__fp_sep: } +\cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6\__fp_sep: + { + #1 - 1 \__fp_sep: {#2#3#4#5} {#6} \__fp_sep: } +\cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6\__fp_sep: { \if_meaning:w 2 #1 \__fp_basics_pack_high_carry:w \fi: - ; {#2#3#4#5} {#6} + \__fp_sep: {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_basics_pack_high_carry:w \fi: ; #1 - { \fi: + 1 ; {1000} } -\cs_new:Npn \__fp_basics_pack_weird_low:NNNNw #1 #2#3#4 #5; +\cs_new:Npn \__fp_basics_pack_high_carry:w \fi: \__fp_sep: #1 + { \fi: + 1 \__fp_sep: {1000} } +\cs_new:Npn \__fp_basics_pack_weird_low:NNNNw #1 #2#3#4 #5\__fp_sep: { \if_meaning:w 2 #1 + 1 \fi: \__fp_int_eval_end: - #2#3#4; {#5} ; + #2#3#4\__fp_sep: {#5} \__fp_sep: } \cs_new:Npn \__fp_basics_pack_weird_high:NNNNNNNNw - 1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} } + 1 #1#2#3#4 #5#6#7#8 #9\__fp_sep: { \__fp_sep: {#1#2#3#4} {#5#6#7#8} {#9} } \cs_new:Npn \__fp_decimate:nNnnnn #1 { \cs:w @@ -15610,17 +15650,17 @@ \cs_end: } \cs_new:Npn \__fp_decimate_:Nnnnn #1 #2#3#4#5 - { #1 0 {#2#3} {#4#5} ; } + { #1 0 {#2#3} {#4#5} \__fp_sep: } \cs_new:Npn \__fp_decimate_tiny:Nnnnn #1 #2#3#4#5 - { #1 1 { 0000 0000 } { 0000 0000 } 0 #2#3#4#5 ; } + { #1 1 { 0000 0000 } { 0000 0000 } 0 #2#3#4#5 \__fp_sep: } \cs_new:Npn \__fp_tmp:w #1 #2 #3 { \cs_new:cpn { __fp_decimate_ #1 :Nnnnn } ##1 ##2##3##4##5 { \exp_after:wN ##1 \int_value:w - \exp_after:wN \__fp_round_digit:Nw #2 ; - \__fp_decimate_pack:nnnnnnnnnnw #3 ; + \exp_after:wN \__fp_round_digit:Nw #2 \__fp_sep: + \__fp_decimate_pack:nnnnnnnnnnw #3 \__fp_sep: } } \__fp_tmp:w {i} {\use_none:nnn #50}{ 0{#2}#3{#4}#5 } @@ -15644,18 +15684,19 @@ \cs_new:Npn \__fp_decimate_pack:nnnnnnw #1 #2#3#4#5#6 { {#1} {#2#3#4#5#6} } \cs_new:Npn \__fp_case_use:nw #1#2 \fi: #3 \s__fp { \fi: #1 \s__fp } -\cs_new:Npn \__fp_case_return:nw #1#2 \fi: #3 ; { \fi: #1 } -\cs_new:Npn \__fp_case_return_o:Nw #1#2 \fi: #3 \s__fp #4 ; +\cs_new:Npn \__fp_case_return:nw #1#2 \fi: #3 \__fp_sep: { \fi: #1 } +\cs_new:Npn \__fp_case_return_o:Nw #1#2 \fi: #3 \s__fp #4 \__fp_sep: { \fi: \exp_after:wN #1 } \cs_new:Npn \__fp_case_return_same_o:w #1 \fi: #2 \s__fp { \fi: \__fp_exp_after_o:w \s__fp } -\cs_new:Npn \__fp_case_return_o:Nww #1#2 \fi: #3 \s__fp #4 ; #5 ; +\cs_new:Npn \__fp_case_return_o:Nww #1#2 \fi: #3 \s__fp #4 \__fp_sep: #5 \__fp_sep: { \fi: \exp_after:wN #1 } -\cs_new:Npn \__fp_case_return_i_o:ww #1 \fi: #2 \s__fp #3 ; \s__fp #4 ; - { \fi: \__fp_exp_after_o:w \s__fp #3 ; } -\cs_new:Npn \__fp_case_return_ii_o:ww #1 \fi: #2 \s__fp #3 ; +\cs_new:Npn \__fp_case_return_i_o:ww + #1 \fi: #2 \s__fp #3 \__fp_sep: \s__fp #4 \__fp_sep: + { \fi: \__fp_exp_after_o:w \s__fp #3 \__fp_sep: } +\cs_new:Npn \__fp_case_return_ii_o:ww #1 \fi: #2 \s__fp #3 \__fp_sep: { \fi: \__fp_exp_after_o:w } -\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3 #4; +\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3 #4\__fp_sep: { TF , T , F , p } { \if_case:w #1 \exp_stop_f: @@ -15674,26 +15715,26 @@ \cs_new:Npn \__fp_small_int:wTF \s__fp \__fp_chk:w #1#2 { \if_case:w #1 \exp_stop_f: - \__fp_case_return:nw { \__fp_small_int_true:wTF 0 ; } + \__fp_case_return:nw { \__fp_small_int_true:wTF 0 \__fp_sep: } \or: \exp_after:wN \__fp_small_int_normal:NnwTF \or: \__fp_case_return:nw { \exp_after:wN \__fp_small_int_true:wTF \int_value:w - \if_meaning:w 2 #2 - \fi: 1 0000 0000 ; + \if_meaning:w 2 #2 - \fi: 1 0000 0000 \__fp_sep: } \else: \__fp_case_return:nw \use_ii:nn \fi: #2 } -\cs_new:Npn \__fp_small_int_true:wTF #1; #2#3 { #2 {#1} } -\cs_new:Npn \__fp_small_int_normal:NnwTF #1#2#3; +\cs_new:Npn \__fp_small_int_true:wTF #1\__fp_sep: #2#3 { #2 {#1} } +\cs_new:Npn \__fp_small_int_normal:NnwTF #1#2#3\__fp_sep: { \__fp_decimate:nNnnnn { \c__fp_prec_int - #2 } \__fp_small_int_test:NnnwNw #3 #1 } -\cs_new:Npn \__fp_small_int_test:NnnwNw #1#2#3#4; #5 +\cs_new:Npn \__fp_small_int_test:NnnwNw #1#2#3#4\__fp_sep: #5 { \if_meaning:w 0 #1 \exp_after:wN \__fp_small_int_true:wTF @@ -15703,7 +15744,7 @@ \else: #3 \fi: - \exp_after:wN ; + \exp_after:wN \__fp_sep: \else: \exp_after:wN \use_ii:nn \fi: @@ -15759,19 +15800,21 @@ \cs_new_protected:Npn \__fp_trap_invalid_operation_set:N #1 { \exp_args:Nno \use:n - { \cs_set:Npn \__fp_invalid_operation:nnw ##1##2##3; } + { \cs_set:Npn \__fp_invalid_operation:nnw ##1##2##3\__fp_sep: } { #1 - \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3; } } { } + \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3\__fp_sep: } } { } \flag_ensure_raised:N \l_fp_invalid_operation_flag ##1 } \exp_args:Nno \use:n - { \cs_set:Npn \__fp_invalid_operation_o:Nww ##1##2; ##3; } + { \cs_set:Npn \__fp_invalid_operation_o:Nww ##1##2\__fp_sep: ##3\__fp_sep: } { #1 \__fp_error:nffn { invalid-ii } - { \fp_to_tl:n { ##2; } } { \fp_to_tl:n { ##3; } } {##1} + { \fp_to_tl:n { ##2\__fp_sep: } } + { \fp_to_tl:n { ##3\__fp_sep: } } + {##1} \flag_ensure_raised:N \l_fp_invalid_operation_flag \exp_after:wN \c_nan_fp } @@ -15793,19 +15836,23 @@ \cs_new_protected:Npn \__fp_trap_division_by_zero_set:N #1 { \exp_args:Nno \use:n - { \cs_set:Npn \__fp_division_by_zero_o:Nnw ##1##2##3; } + { \cs_set:Npn \__fp_division_by_zero_o:Nnw ##1##2##3\__fp_sep: } { #1 - \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3; } } { } + \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3\__fp_sep: } } { } \flag_ensure_raised:N \l_fp_division_by_zero_flag \exp_after:wN ##1 } \exp_args:Nno \use:n - { \cs_set:Npn \__fp_division_by_zero_o:NNww ##1##2##3; ##4; } + { + \cs_set:Npn \__fp_division_by_zero_o:NNww ##1##2##3\__fp_sep: ##4\__fp_sep: + } { #1 \__fp_error:nffn { zero-div-ii } - { \fp_to_tl:n { ##3; } } { \fp_to_tl:n { ##4; } } {##2} + { \fp_to_tl:n { ##3\__fp_sep: } } + { \fp_to_tl:n { ##4\__fp_sep: } } + {##2} \flag_ensure_raised:N \l_fp_division_by_zero_flag \exp_after:wN ##1 } @@ -15829,23 +15876,23 @@ \cs_new_protected:Npn \__fp_trap_overflow_set:NnNn #1#2#3#4 { \exp_args:Nno \use:n - { \cs_set:cpn { __fp_ #2 :w } \s__fp \__fp_chk:w ##1##2##3; } + { \cs_set:cpn { __fp_ #2 :w } \s__fp \__fp_chk:w ##1##2##3\__fp_sep: } { #1 \__fp_error:nffn { flow \if_meaning:w 1 ##1 -to \fi: } - { \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3; } } + { \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3\__fp_sep: } } { \token_if_eq_meaning:NNF 0 ##2 { - } #4 } {#2} \flag_ensure_raised:c { l_fp_#2_flag } #3 ##2 } } -\cs_new:Npn \__fp_invalid_operation:nnw #1#2#3; { } -\cs_new:Npn \__fp_invalid_operation_o:Nww #1#2; #3; { } +\cs_new:Npn \__fp_invalid_operation:nnw #1#2#3\__fp_sep: { } +\cs_new:Npn \__fp_invalid_operation_o:Nww #1#2\__fp_sep: #3\__fp_sep: { } \cs_new:Npn \__fp_invalid_operation_tl_o:ff #1 #2 { } -\cs_new:Npn \__fp_division_by_zero_o:Nnw #1#2#3; { } -\cs_new:Npn \__fp_division_by_zero_o:NNww #1#2#3; #4; { } +\cs_new:Npn \__fp_division_by_zero_o:Nnw #1#2#3\__fp_sep: { } +\cs_new:Npn \__fp_division_by_zero_o:NNww #1#2#3\__fp_sep: #4\__fp_sep: { } \cs_new:Npn \__fp_overflow:w { } \cs_new:Npn \__fp_underflow:w { } \fp_trap:nn { invalid_operation } { error } @@ -15983,7 +16030,7 @@ \c_zero_int } \cs_new_eq:NN \__fp_round:NNN \__fp_round_to_nearest:NNN -\cs_new:Npn \__fp_round_s:NNNw #1 #2 #3 #4; +\cs_new:Npn \__fp_round_s:NNNw #1 #2 #3 #4\__fp_sep: { \exp_after:wN \__fp_round:NNN \exp_after:wN #1 @@ -15997,9 +16044,9 @@ \fi: \fi: #3 - ; + \__fp_sep: } -\cs_new:Npn \__fp_round_digit:Nw #1 #2; +\cs_new:Npn \__fp_round_digit:Nw #1 #2\__fp_sep: { \if_int_odd:w \if_meaning:w 0 #1 1 \else: \if_meaning:w 5 #1 1 \else: @@ -16059,7 +16106,8 @@ } \exp_after:wN \c_nan_fp } -\cs_new:Npn \__fp_round:Nwww #1#2 ; #3 ; \s__fp \__fp_chk:w #4#5#6 ; #7 @ +\cs_new:Npn \__fp_round:Nwww + #1#2 \__fp_sep: #3 \__fp_sep: \s__fp \__fp_chk:w #4#5#6 \__fp_sep: #7 @ { \cs_if_eq:NNTF #1 \__fp_round_to_nearest:NNN { @@ -16072,7 +16120,7 @@ \if_case:w #5 \exp_stop_f: _pinf \or: \else: _ninf \fi: \fi: :NNN } - #2 ; #3 ; + #2 \__fp_sep: #3 \__fp_sep: } { \__fp_error:nnnn { num-args } { round () } { 1 } { 3 } @@ -16096,11 +16144,11 @@ } } } -\cs_new:Npn \__fp_round:Nww #1#2 ; #3 ; +\cs_new:Npn \__fp_round:Nww #1#2 \__fp_sep: #3 \__fp_sep: { - \__fp_small_int:wTF #3; { \__fp_round:Nwn #1#2; } + \__fp_small_int:wTF #3\__fp_sep: { \__fp_round:Nwn #1#2\__fp_sep: } { - \if:w 3 \__fp_kind:w #3 ; + \if:w 3 \__fp_kind:w #3 \__fp_sep: \exp_after:wN \use_i:nn \else: \exp_after:wN \use_ii:nn @@ -16109,11 +16157,11 @@ { \__fp_invalid_operation_tl_o:ff { \__fp_round_name_from_cs:N #1 } - { \__fp_array_to_clist:n { #2; #3; } } + { \__fp_array_to_clist:n { #2\__fp_sep: #3\__fp_sep: } } } } } -\cs_new:Npn \__fp_round:Nwn #1 \s__fp \__fp_chk:w #2#3#4; #5 +\cs_new:Npn \__fp_round:Nwn #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: #5 { \if_meaning:w 1 #2 \exp_after:wN \__fp_round_normal:NwNNnw @@ -16122,14 +16170,14 @@ \else: \exp_after:wN \__fp_exp_after_o:w \fi: - \s__fp \__fp_chk:w #2#3#4; + \s__fp \__fp_chk:w #2#3#4\__fp_sep: } -\cs_new:Npn \__fp_round_normal:NwNNnw #1#2 \s__fp \__fp_chk:w 1#3#4#5; +\cs_new:Npn \__fp_round_normal:NwNNnw #1#2 \s__fp \__fp_chk:w 1#3#4#5\__fp_sep: { \__fp_decimate:nNnnnn { \c__fp_prec_int - #4 - #2 } \__fp_round_normal:NnnwNNnn #5 #1 #3 {#4} {#2} } -\cs_new:Npn \__fp_round_normal:NnnwNNnn #1#2#3#4; #5#6 +\cs_new:Npn \__fp_round_normal:NnnwNNnn #1#2#3#4\__fp_sep: #5#6 { \exp_after:wN \__fp_round_normal:NNwNnn \int_value:w \__fp_int_eval:w @@ -16147,7 +16195,7 @@ \use_none:nnnnnnn #3 #1 \__fp_int_eval_end: - 0000 0000 0000 0000 ; #6 + 0000 0000 0000 0000 \__fp_sep: #6 } \cs_new:Npn \__fp_round_pack:Nw #1 { \if_meaning:w 2 #1 + 1 \fi: \__fp_int_eval_end: } @@ -16160,14 +16208,14 @@ \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_round_normal_end:wwNnn - ; #2 + \__fp_sep: #2 } -\cs_new:Npn \__fp_round_normal_end:wwNnn #1;#2;#3#4#5 +\cs_new:Npn \__fp_round_normal_end:wwNnn #1\__fp_sep:#2\__fp_sep:#3#4#5 { \exp_after:wN \__fp_exp_after_o:w \exp:w \exp_end_continue_f:w - \__fp_sanitize:Nw #3 #4 ; #1 ; + \__fp_sanitize:Nw #3 #4 \__fp_sep: #1 \__fp_sep: } -\cs_new:Npn \__fp_round_special:NwwNnn #1#2;#3;#4#5#6 +\cs_new:Npn \__fp_round_special:NwwNnn #1#2\__fp_sep:#3\__fp_sep:#4#5#6 { \if_meaning:w 0 #1 \__fp_case_return:nw @@ -16178,12 +16226,12 @@ \int_value:w \__fp_int_eval:w 1 \if_meaning:w 1 #1 -#6 \else: +#5 \fi: \fi: - ; + \__fp_sep: } -\cs_new:Npn \__fp_round_special_aux:Nw #1#2; +\cs_new:Npn \__fp_round_special_aux:Nw #1#2\__fp_sep: { \exp_after:wN \__fp_exp_after_o:w \exp:w \exp_end_continue_f:w - \__fp_sanitize:Nw #1#2; {1000}{0000}{0000}{0000}; + \__fp_sanitize:Nw #1#2\__fp_sep: {1000}{0000}{0000}{0000}\__fp_sep: } %% File: l3fp-parse.dtx \int_const:Nn \c__fp_prec_func_int { 16 } @@ -16203,7 +16251,7 @@ \int_const:Nn \c__fp_prec_end_int { 0 } \cs_new:Npn \__fp_parse_expand:w #1 { \exp_end_continue_f:w #1 } \cs_new:Npn \__fp_parse_return_semicolon:w - #1 \fi: \__fp_parse_expand:w { \fi: ; #1 } + #1 \fi: \__fp_parse_expand:w { \fi: \__fp_sep: #1 } \cs_set_protected:Npn \__fp_tmp:w #1 #2 #3 { \cs_new:cpn { __fp_parse_digits_ #1 :N } ##1 @@ -16216,14 +16264,14 @@ \__fp_parse_expand:w } } -\__fp_tmp:w {vii} \__fp_parse_digits_vi:N { 0000000 ; 7 } -\__fp_tmp:w {vi} \__fp_parse_digits_v:N { 000000 ; 6 } -\__fp_tmp:w {v} \__fp_parse_digits_iv:N { 00000 ; 5 } -\__fp_tmp:w {iv} \__fp_parse_digits_iii:N { 0000 ; 4 } -\__fp_tmp:w {iii} \__fp_parse_digits_ii:N { 000 ; 3 } -\__fp_tmp:w {ii} \__fp_parse_digits_i:N { 00 ; 2 } -\__fp_tmp:w {i} \__fp_parse_digits_:N { 0 ; 1 } -\cs_new:Npn \__fp_parse_digits_:N { ; ; 0 } +\__fp_tmp:w {vii} \__fp_parse_digits_vi:N { 0000000 \__fp_sep: 7 } +\__fp_tmp:w {vi} \__fp_parse_digits_v:N { 000000 \__fp_sep: 6 } +\__fp_tmp:w {v} \__fp_parse_digits_iv:N { 00000 \__fp_sep: 5 } +\__fp_tmp:w {iv} \__fp_parse_digits_iii:N { 0000 \__fp_sep: 4 } +\__fp_tmp:w {iii} \__fp_parse_digits_ii:N { 000 \__fp_sep: 3 } +\__fp_tmp:w {ii} \__fp_parse_digits_i:N { 00 \__fp_sep: 2 } +\__fp_tmp:w {i} \__fp_parse_digits_:N { 0 \__fp_sep: 1 } +\cs_new:Npn \__fp_parse_digits_:N { \__fp_sep: \__fp_sep: 0 } \cs_new:Npn \__fp_parse_one:Nw #1 #2 { \if_catcode:w \scan_stop: \exp_not:N #2 @@ -16323,26 +16371,26 @@ \exp_after:wN \__fp_parse_one_register_auxii:wwwNw } \exp_not:N \exp_after:wN { \exp_not:N \tex_the:D #1 } - ; \exp_not:N \__fp_parse_one_register_dim:ww - \tl_to_str:n { pt } ; \exp_not:N \__fp_parse_one_register_mu:www - . \tl_to_str:n { pt } ; \exp_not:N \__fp_parse_one_register_int:www + \__fp_sep: \exp_not:N \__fp_parse_one_register_dim:ww + \tl_to_str:n { pt } \__fp_sep: \exp_not:N \__fp_parse_one_register_mu:www + . \tl_to_str:n { pt } \__fp_sep: \exp_not:N \__fp_parse_one_register_int:www \s__fp_stop } \exp_args:Nno \use:nn { \cs_new:Npn \__fp_parse_one_register_auxii:wwwNw #1 . #2 } - { \tl_to_str:n { pt } #3 ; #4#5 \s__fp_stop } - { #4 #1.#2; } + { \tl_to_str:n { pt } #3 \__fp_sep: #4#5 \s__fp_stop } + { #4 #1.#2\__fp_sep: } \exp_args:Nno \use:nn { \cs_new:Npn \__fp_parse_one_register_mu:www #1 } - { \tl_to_str:n { mu } ; #2 ; } - { \__fp_parse_one_register_dim:ww #1 ; } -\cs_new:Npn \__fp_parse_one_register_int:www #1; #2.; #3; + { \tl_to_str:n { mu } \__fp_sep: #2 \__fp_sep: } + { \__fp_parse_one_register_dim:ww #1 \__fp_sep: } +\cs_new:Npn \__fp_parse_one_register_int:www #1\__fp_sep: #2.\__fp_sep: #3\__fp_sep: { \__fp_parse:n { #1 e #3 } } -\cs_new:Npn \__fp_parse_one_register_dim:ww #1; #2; +\cs_new:Npn \__fp_parse_one_register_dim:ww #1\__fp_sep: #2\__fp_sep: { \exp_after:wN \__fp_from_dim_test:ww \int_value:w #2 \exp_after:wN , - \int_value:w \dim_to_decimal_in_sp:n { #1 pt } ; + \int_value:w \dim_to_decimal_in_sp:n { #1 pt } \__fp_sep: } \cs_new:Npn \__fp_parse_one_register_special:N #1 { @@ -16375,11 +16423,11 @@ \exp_after:wN \__fp_parse_one_register_wd:Nw #4 \__fp_parse_expand:w e } -\cs_new:Npn \__fp_parse_one_register_wd:Nw #1#2 ; +\cs_new:Npn \__fp_parse_one_register_wd:Nw #1#2 \__fp_sep: { \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \dim_to_decimal_in_sp:n { #1 #2 } ; + \int_value:w \dim_to_decimal_in_sp:n { #1 #2 } \__fp_sep: } \cs_new:Npn \__fp_parse_one_digit:NN #1 { @@ -16412,7 +16460,7 @@ \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_word:Nw #1#2; +\cs_new:Npn \__fp_parse_word:Nw #1#2\__fp_sep: { \cs_if_exist_use:cF { __fp_parse_word_#2:N } { @@ -16517,7 +16565,7 @@ } \cs_new:Npn \__fp_parse_zero: { - \exp_after:wN ; \exp_after:wN 1 + \exp_after:wN \__fp_sep: \exp_after:wN 1 \int_value:w \__fp_parse_exponent:N } \cs_new:Npn \__fp_parse_small:N #1 @@ -16529,7 +16577,7 @@ \exp_after:wN \__fp_parse_digits_vii:N \exp:w \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_small_leading:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_small_leading:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { #1 #2 \exp_after:wN \__fp_parse_pack_trailing:NNNNNNww @@ -16546,7 +16594,7 @@ \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_small_trailing:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_small_trailing:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { #1 #2 \if_int_compare:w 9 < 1 \token_to_str:N #4 \exp_stop_f: @@ -16559,19 +16607,20 @@ \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_pack_trailing:NNNNNNww #1 #2 #3#4#5#6 #7; #8 ; +\cs_new:Npn \__fp_parse_pack_trailing:NNNNNNww + #1 #2 #3#4#5#6 #7\__fp_sep: #8 \__fp_sep: { \if_meaning:w 2 #2 + 1 \fi: - ; #8 + #1 ; {#3#4#5#6} {#7}; + \__fp_sep: #8 + #1 \__fp_sep: {#3#4#5#6} {#7}\__fp_sep: } -\cs_new:Npn \__fp_parse_pack_leading:NNNNNww #1 #2#3#4#5 #6; #7; +\cs_new:Npn \__fp_parse_pack_leading:NNNNNww #1 #2#3#4#5 #6\__fp_sep: #7\__fp_sep: { + #7 \if_meaning:w 2 #1 \__fp_parse_pack_carry:w \fi: - ; 0 {#2#3#4#5} {#6} + \__fp_sep: 0 {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_parse_pack_carry:w \fi: ; 0 #1 - { \fi: + 1 ; 0 {1000} } +\cs_new:Npn \__fp_parse_pack_carry:w \fi: \__fp_sep: 0 #1 + { \fi: + 1 \__fp_sep: 0 {1000} } \cs_new:Npn \__fp_parse_large:N #1 { \exp_after:wN \__fp_parse_large_leading:wwNN @@ -16579,7 +16628,7 @@ \exp_after:wN \__fp_parse_digits_vii:N \exp:w \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_large_leading:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_large_leading:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { + \c__fp_half_prec_int - #3 \exp_after:wN \__fp_parse_pack_leading:NNNNNww @@ -16609,7 +16658,7 @@ \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_large_trailing:wwNN 1 #1 ; #2; #3 #4 +\cs_new:Npn \__fp_parse_large_trailing:wwNN 1 #1 \__fp_sep: #2\__fp_sep: #3 #4 { \if_int_compare:w 9 < 1 \token_to_str:N #4 \exp_stop_f: \exp_after:wN \__fp_parse_pack_trailing:NNNNNNww @@ -16664,9 +16713,9 @@ \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_round_after:wN #1; #2 +\cs_new:Npn \__fp_parse_round_after:wN #1\__fp_sep: #2 { - + #2 \exp_after:wN ; + + #2 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w #1 + \__fp_parse_exponent:N } \cs_new:Npn \__fp_parse_small_round:NN #1#2 @@ -16716,7 +16765,7 @@ \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_large_round_aux:wNN #1 ; #2 #3 +\cs_new:Npn \__fp_parse_large_round_aux:wNN #1 \__fp_sep: #2 #3 { + #2 \exp_after:wN \__fp_parse_round_after:wN @@ -16726,14 +16775,14 @@ \exp_after:wN \__fp_parse_round_loop:N \exp:w \exp_after:wN \__fp_parse_expand:w \else: - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp_after:wN 0 \exp_after:wN #3 \fi: } \cs_new:Npn \__fp_parse_exponent:Nw #1 #2 \__fp_parse_expand:w { - \exp_after:wN ; + \exp_after:wN \__fp_sep: \int_value:w #2 \__fp_parse_exponent:N #1 } \cs_new:Npn \__fp_parse_exponent:N #1 @@ -16751,7 +16800,7 @@ { \if_int_compare:w \if_catcode:w \scan_stop: \exp_not:N #2 0 \else: `#2 \fi: > `9 \exp_stop_f: - 0 \exp_after:wN ; \exp_after:wN #1 + 0 \exp_after:wN \__fp_sep: \exp_after:wN #1 \else: \exp_after:wN \__fp_parse_exponent_sign:N \fi: @@ -16777,7 +16826,7 @@ \__fp_parse_exponent_keep:NTF #1 { \__fp_parse_return_semicolon:w #1 } { - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w } \fi: @@ -16834,12 +16883,12 @@ } \cs_new:Npn \__fp_parse_apply_unary:NNNwN #1#2#3#4@#5 { - \__fp_parse_apply_unary_chk:NwNw #4 @ ; . \s__fp_stop + \__fp_parse_apply_unary_chk:NwNw #4 @ \__fp_sep: . \s__fp_stop \__fp_parse_apply_unary_type:NNN #3 #2 #4 @ \exp:w \exp_end_continue_f:w #5 #1 } -\cs_new:Npn \__fp_parse_apply_unary_chk:NwNw #1#2 ; #3#4 \s__fp_stop +\cs_new:Npn \__fp_parse_apply_unary_chk:NwNw #1#2 \__fp_sep: #3#4 \s__fp_stop { \if_meaning:w @ #3 \else: \token_if_eq_meaning:NNTF . #3 @@ -16953,7 +17002,7 @@ \cs_new:cpn { __fp_parse_word_#1:N } { \__fp_exp_after_f:nw { \__fp_parse_infix:NN } - \s__fp \__fp_chk:w 10 #2 ; + \s__fp \__fp_chk:w 10 #2 \__fp_sep: } } \__fp_tmp:w {pt} { {1} {1000} {0000} {0000} {0000} } @@ -16973,7 +17022,7 @@ { \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \dim_to_decimal_in_sp:n { 1 #1 } \exp_after:wN ; + \int_value:w \dim_to_decimal_in_sp:n { 1 #1 } \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_parse_infix:NN } } @@ -17062,7 +17111,7 @@ #2 \__fp_invalid_operation_o:Nww #1 } -\cs_new:Npn \__fp_binary_type_o:Nww #1 #2#3 ; #4 +\cs_new:Npn \__fp_binary_type_o:Nww #1 #2#3 \__fp_sep: #4 { \exp_after:wN \__fp_parse_apply_binary_chk:NN \cs:w @@ -17073,9 +17122,9 @@ _o:ww \cs_end: #1 - #2 #3 ; #4 + #2 #3 \__fp_sep: #4 } -\cs_new:Npn \__fp_binary_rev_type_o:Nww #1 #2#3 ; #4#5 ; +\cs_new:Npn \__fp_binary_rev_type_o:Nww #1 #2#3 \__fp_sep: #4#5 \__fp_sep: { \exp_after:wN \__fp_parse_apply_binary_chk:NN \cs:w @@ -17086,12 +17135,12 @@ _o:ww \cs_end: #1 - #4 #5 ; #2 #3 ; + #4 #5 \__fp_sep: #2 #3 \__fp_sep: } -\cs_new:Npn \__fp_parse_infix_after_operand:NwN #1 #2; +\cs_new:Npn \__fp_parse_infix_after_operand:NwN #1 #2\__fp_sep: { \__fp_exp_after_f:nw { \__fp_parse_infix:NN #1 } - #2; + #2\__fp_sep: } \cs_new:Npn \__fp_parse_infix:NN #1 #2 { @@ -17215,7 +17264,7 @@ \exp_after:wN #1 \exp:w \exp_end_continue_f:w \__fp_exp_after_tuple_f:nw { } - \s__fp_tuple \__fp_tuple_chk:w { #2 #4 } ; + \s__fp_tuple \__fp_tuple_chk:w { #2 #4 } \__fp_sep: #5 #1 } \cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 @@ -17400,14 +17449,14 @@ \fi: #1 #8 #9 } -\cs_new:Npn \__fp_parse_apply_compare_aux:NNwN #1 #2 #3; #4 +\cs_new:Npn \__fp_parse_apply_compare_aux:NNwN #1 #2 #3\__fp_sep: #4 { \if_meaning:w \__fp_parse_compare:NNNNNNN #4 \exp_after:wN \__fp_parse_continue_compare:NNwNN \exp_after:wN #1 \exp_after:wN #2 \exp:w \exp_end_continue_f:w - \__fp_exp_after_o:w #3; + \__fp_exp_after_o:w #3\__fp_sep: \exp:w \exp_end_continue_f:w \else: \exp_after:wN \__fp_parse_continue:NwN @@ -17427,7 +17476,7 @@ { \__fp_error:nffn { bad-args } {#1} - { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#3} ; } } + { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#3} \__fp_sep: } } { } \exp_after:wN \c_nan_fp } @@ -17442,11 +17491,11 @@ { \__fp_error:nffn { bad-args } {#2} - { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#4} ; } } + { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#4} \__fp_sep: } } { } \exp_after:wN \c_nan_fp } -\cs_new:Npn \__fp_parse_function_one_two_aux:nnw #1#2 #3; #4 +\cs_new:Npn \__fp_parse_function_one_two_aux:nnw #1#2 #3\__fp_sep: #4 { \__fp_if_type_fp:NTwFw #4 { } @@ -17458,52 +17507,52 @@ \__fp_parse_function_one_two_error_o:w } \s__fp_stop - \__fp_parse_function_one_two_auxii:nnw {#1} {#2} #3; #4 + \__fp_parse_function_one_two_auxii:nnw {#1} {#2} #3\__fp_sep: #4 } -\cs_new:Npn \__fp_parse_function_one_two_auxii:nnw #1#2#3; #4; #5 +\cs_new:Npn \__fp_parse_function_one_two_auxii:nnw #1#2#3\__fp_sep: #4\__fp_sep: #5 { \if_meaning:w @ #5 \else: \exp_after:wN \__fp_parse_function_one_two_error_o:w \fi: - \use_ii:nn {#1} { \use_none:n #2 } #3; #4; #5 + \use_ii:nn {#1} { \use_none:n #2 } #3\__fp_sep: #4\__fp_sep: #5 } -\cs_new:Npn \__fp_tuple_map_o:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; +\cs_new:Npn \__fp_tuple_map_o:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: { \exp_after:wN \s__fp_tuple \exp_after:wN \__fp_tuple_chk:w \exp_after:wN { \exp:w \exp_end_continue_f:w \__fp_tuple_map_loop_o:nw {#1} #2 - { \s__fp \prg_break: } ; + { \s__fp \prg_break: } \__fp_sep: \prg_break_point: - \exp_after:wN } \exp_after:wN ; + \exp_after:wN } \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_tuple_map_loop_o:nw #1#2#3 ; +\cs_new:Npn \__fp_tuple_map_loop_o:nw #1#2#3 \__fp_sep: { \use_none:n #2 - #1 #2 #3 ; + #1 #2 #3 \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_tuple_map_loop_o:nw {#1} } \cs_new:Npn \__fp_tuple_mapthread_o:nww #1 - \s__fp_tuple \__fp_tuple_chk:w #2 ; - \s__fp_tuple \__fp_tuple_chk:w #3 ; + \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w #3 \__fp_sep: { \exp_after:wN \s__fp_tuple \exp_after:wN \__fp_tuple_chk:w \exp_after:wN { \exp:w \exp_end_continue_f:w \__fp_tuple_mapthread_loop_o:nw {#1} - #2 { \s__fp \prg_break: } ; @ - #3 { \s__fp \prg_break: } ; + #2 { \s__fp \prg_break: } \__fp_sep: @ + #3 { \s__fp \prg_break: } \__fp_sep: \prg_break_point: - \exp_after:wN } \exp_after:wN ; + \exp_after:wN } \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_tuple_mapthread_loop_o:nw #1#2#3 ; #4 @ #5#6 ; +\cs_new:Npn \__fp_tuple_mapthread_loop_o:nw #1#2#3 \__fp_sep: #4 @ #5#6 \__fp_sep: { \use_none:n #2 \use_none:n #5 - #1 #2 #3 ; #5 #6 ; + #1 #2 #3 \__fp_sep: #5 #6 \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_tuple_mapthread_loop_o:nw {#1} #4 @ } @@ -17591,9 +17640,9 @@ { \__fp_show_validate:nn { #1 } { - \s__fp \__fp_chk:w ??? ;~ or \iow_newline: - \s__fp_tuple \__fp_tuple_chk:w ? ;~ or \iow_newline: - \s__fp_symbolic \__fp_symbolic_chk:w ? , ? ; + \s__fp \__fp_chk:w ??? \__fp_sep: or \iow_newline: + \s__fp_tuple \__fp_tuple_chk:w ? \__fp_sep: or \iow_newline: + \s__fp_symbolic \__fp_symbolic_chk:w ? , ? \__fp_sep: } } \cs_new:Npn \__fp_show_validate_aux:n #1 @@ -17609,46 +17658,49 @@ { \s__fp } { \__fp_show_validate:w #1 \s__fp - \__fp_chk:w ??? ; \s__fp_stop + \__fp_chk:w ??? \__fp_sep: \s__fp_stop } { \s__fp_tuple } { \__fp_tuple_show_validate:w #1 - \s__fp_tuple \__fp_tuple_chk:w ?? ; \s__fp_stop + \s__fp_tuple \__fp_tuple_chk:w ?? \__fp_sep: \s__fp_stop } { \s__fp_symbolic } { \__fp_symbolic_show_validate:w #1 - \s__fp_symbolic \__fp_symbolic_chk:w ? , ?? ; \s__fp_stop + \s__fp_symbolic \__fp_symbolic_chk:w ? , ?? \__fp_sep: \s__fp_stop } } { #2 } } } \cs_new:Npn \__fp_show_validate:w - #1 \s__fp \__fp_chk:w #2#3#4#5 ; #6 \s__fp_stop + #1 \s__fp \__fp_chk:w #2#3#4#5 \__fp_sep: #6 \s__fp_stop { \str_if_eq:nnF { #2 } {?} { \token_if_eq_meaning:NNTF #2 1 - { \s__fp \__fp_chk:w #2 #3 { #4 } #5 ; } - { \s__fp \__fp_chk:w #2 #3 #4 #5 ; } + { \s__fp \__fp_chk:w #2 #3 { #4 } #5 \__fp_sep: } + { \s__fp \__fp_chk:w #2 #3 #4 #5 \__fp_sep: } \__fp_show_validate_aux:n { #6 } } } \cs_new:Npn \__fp_tuple_show_validate:w - #1 \s__fp_tuple \__fp_tuple_chk:w #2#3 ; #4 \s__fp_stop + #1 \s__fp_tuple \__fp_tuple_chk:w #2#3 \__fp_sep: #4 \s__fp_stop { \str_if_eq:nnF { #2 } {?} - { \s__fp_tuple \__fp_tuple_chk:w { \__fp_show_validate_aux:n { #2 } } ; } + { + \s__fp_tuple \__fp_tuple_chk:w { \__fp_show_validate_aux:n { #2 } } + \__fp_sep: + } } \cs_new:Npn \__fp_symbolic_show_validate:w - #1 \s__fp_symbolic \__fp_symbolic_chk:w #2 , #3#4 ; #5 \s__fp_stop + #1 \s__fp_symbolic \__fp_symbolic_chk:w #2 , #3#4 \__fp_sep: #5 \s__fp_stop { \str_if_eq:nnF { #2 } {?} { \s__fp_symbolic \__fp_symbolic_chk:w \exp_not:n { #2 } , - { \__fp_show_validate_aux:n { #3 } }; + { \__fp_show_validate_aux:n { #3 } }\__fp_sep: \__fp_show_validate_aux:n { #5 } } } @@ -17684,7 +17736,7 @@ \exp_after:wN \__fp_compare_return:w \exp:w \exp_end_continue_f:w \__fp_parse:n {#1} } -\cs_new:Npn \__fp_compare_return:w #1#2#3; +\cs_new:Npn \__fp_compare_return:w #1#2#3\__fp_sep: { \if_charcode:w 0 \__fp_if_type_fp:NTwFw @@ -17706,12 +17758,12 @@ \prg_return_false: \fi: } -\cs_new:Npn \__fp_compare_aux:wn #1; #2 +\cs_new:Npn \__fp_compare_aux:wn #1\__fp_sep: #2 { \exp_after:wN \__fp_compare_back_any:ww - \exp:w \exp_end_continue_f:w \__fp_parse:n {#2} #1; + \exp:w \exp_end_continue_f:w \__fp_parse:n {#2} #1\__fp_sep: } -\cs_new:Npn \__fp_compare_back:ww #1#2; #3#4; +\cs_new:Npn \__fp_compare_back:ww #1#2\__fp_sep: #3#4\__fp_sep: { \cs:w __fp @@ -17720,9 +17772,9 @@ \__fp_type_from_scan:N #3 :ww \cs_end: - #1#2; #3#4; + #1#2\__fp_sep: #3#4\__fp_sep: } -\cs_new:Npn \__fp_compare_back_any:ww #1#2; #3 +\cs_new:Npn \__fp_compare_back_any:ww #1#2\__fp_sep: #3 { \__fp_if_type_fp:NTwFw #1 { \__fp_if_type_fp:NTwFw #3 \use_i:nn \s__fp \use_ii:nn \s__fp_stop } @@ -17737,11 +17789,11 @@ :ww \cs_end: } - #1#2 ; #3 + #1#2 \__fp_sep: #3 } \cs_new:Npn \__fp_bcmp:ww - \s__fp \__fp_chk:w #1 #2 #3; - \s__fp \__fp_chk:w #4 #5 #6; + \s__fp \__fp_chk:w #1 #2 #3\__fp_sep: + \s__fp \__fp_chk:w #4 #5 #6\__fp_sep: { \int_value:w \if_meaning:w 3 #1 \exp_after:wN \__fp_compare_nan:w \fi: @@ -17750,7 +17802,7 @@ \if_meaning:w #2 #5 \if_meaning:w #1 #4 \if_meaning:w 1 #1 - \__fp_compare_npos:nwnw #6; #3; + \__fp_compare_npos:nwnw #6\__fp_sep: #3\__fp_sep: \else: 0 \fi: @@ -17767,36 +17819,36 @@ \exp_stop_f: } \cs_new:Npn \__fp_compare_nan:w #1 \fi: \exp_stop_f: { 2 \exp_stop_f: } -\cs_new:Npn \__fp_compare_back_tuple:ww #1; #2; { 2 } -\cs_new:Npn \__fp_tuple_compare_back:ww #1; #2; { 2 } +\cs_new:Npn \__fp_compare_back_tuple:ww #1\__fp_sep: #2\__fp_sep: { 2 } +\cs_new:Npn \__fp_tuple_compare_back:ww #1\__fp_sep: #2\__fp_sep: { 2 } \cs_new:Npn \__fp_tuple_compare_back_tuple:ww - \s__fp_tuple \__fp_tuple_chk:w #1; - \s__fp_tuple \__fp_tuple_chk:w #2; + \s__fp_tuple \__fp_tuple_chk:w #1\__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w #2\__fp_sep: { \int_compare:nNnTF { \__fp_array_count:n {#1} } = { \__fp_array_count:n {#2} } { \int_value:w 0 \__fp_tuple_compare_back_loop:w - #1 { \s__fp \prg_break: } ; @ - #2 { \s__fp \prg_break: } ; + #1 { \s__fp \prg_break: } \__fp_sep: @ + #2 { \s__fp \prg_break: } \__fp_sep: \prg_break_point: \exp_stop_f: } { 2 } } -\cs_new:Npn \__fp_tuple_compare_back_loop:w #1#2 ; #3 @ #4#5 ; +\cs_new:Npn \__fp_tuple_compare_back_loop:w #1#2 \__fp_sep: #3 @ #4#5 \__fp_sep: { \use_none:n #1 \use_none:n #4 \if_int_compare:w - \__fp_compare_back_any:ww #1 #2 ; #4 #5 ; = \c_zero_int + \__fp_compare_back_any:ww #1 #2 \__fp_sep: #4 #5 \__fp_sep: = \c_zero_int \else: 2 \exp_after:wN \prg_break: \fi: \__fp_tuple_compare_back_loop:w #3 @ } -\cs_new:Npn \__fp_compare_npos:nwnw #1#2; #3#4; +\cs_new:Npn \__fp_compare_npos:nwnw #1#2\__fp_sep: #3#4\__fp_sep: { \if_int_compare:w #1 = #3 \exp_stop_f: \__fp_compare_significand:nnnnnnnn #2 #4 @@ -17880,20 +17932,22 @@ \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} } \cs_generate_variant:Nn \fp_step_function:nnnN { nnnc } -\cs_new:Npn \__fp_step:wwwN #1#2; #3#4; #5#6; #7 +\cs_new:Npn \__fp_step:wwwN #1#2\__fp_sep: #3#4\__fp_sep: #5#6\__fp_sep: #7 { \__fp_if_type_fp:NTwFw #1 { } \s__fp \prg_break: \s__fp_stop \__fp_if_type_fp:NTwFw #3 { } \s__fp \prg_break: \s__fp_stop \__fp_if_type_fp:NTwFw #5 { } \s__fp \prg_break: \s__fp_stop - \use_i:nnnn { \__fp_step_fp:wwwN #1#2; #3#4; #5#6; #7 } + \use_i:nnnn + { \__fp_step_fp:wwwN #1#2\__fp_sep: #3#4\__fp_sep: #5#6\__fp_sep: #7 } \prg_break_point: \use:n { - \__fp_error:nfff { step-tuple } { \fp_to_tl:n { #1#2 ; } } - { \fp_to_tl:n { #3#4 ; } } { \fp_to_tl:n { #5#6 ; } } + \__fp_error:nfff { step-tuple } { \fp_to_tl:n { #1#2 \__fp_sep: } } + { \fp_to_tl:n { #3#4 \__fp_sep: } } { \fp_to_tl:n { #5#6 \__fp_sep: } } } } -\cs_new:Npn \__fp_step_fp:wwwN #1 ; \s__fp \__fp_chk:w #2#3#4 ; #5; #6 +\cs_new:Npn \__fp_step_fp:wwwN + #1 \__fp_sep: \s__fp \__fp_chk:w #2#3#4 \__fp_sep: #5\__fp_sep: #6 { \token_if_eq_meaning:NNTF #2 1 { @@ -17909,11 +17963,15 @@ } { \__fp_error:nnfn { bad-step } { } - { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 ; } } {#6} + { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 \__fp_sep: } } {#6} } \use_none:nnnnn } - { #1 ; } { \c_nan_fp } { \s__fp \__fp_chk:w #2#3#4 ; } { #5 ; } #6 + { #1 \__fp_sep: } + { \c_nan_fp } + { \s__fp \__fp_chk:w #2#3#4 \__fp_sep: } + { #5 \__fp_sep: } + #6 } \cs_new:Npn \__fp_step:NnnnnN #1#2#3#4#5#6 { @@ -17977,11 +18035,11 @@ \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN - \fi: #2 - \s__fp \__fp_chk:w 2 #1 \s__fp_exact ; - \s__fp \__fp_chk:w { 3 \__fp_minmax_break_o:w } ; + \s__fp \__fp_chk:w 2 #1 \s__fp_exact \__fp_sep: + \s__fp \__fp_chk:w { 3 \__fp_minmax_break_o:w } \__fp_sep: } \cs_new:Npn \__fp_minmax_loop:Nww - #1 \s__fp \__fp_chk:w #2#3; \s__fp \__fp_chk:w #4#5; + #1 \s__fp \__fp_chk:w #2#3\__fp_sep: \s__fp \__fp_chk:w #4#5\__fp_sep: { \if_meaning:w 3 #4 \if_meaning:w 3 #2 @@ -17992,8 +18050,8 @@ \else: \if_int_compare:w \__fp_compare_back:ww - \s__fp \__fp_chk:w #4#5; - \s__fp \__fp_chk:w #2#3; + \s__fp \__fp_chk:w #4#5\__fp_sep: + \s__fp \__fp_chk:w #2#3\__fp_sep: = #1 1 \exp_stop_f: \__fp_minmax_auxii:ww \else: @@ -18001,16 +18059,17 @@ \fi: \fi: \__fp_minmax_loop:Nww #1 - \s__fp \__fp_chk:w #2#3; - \s__fp \__fp_chk:w #4#5; + \s__fp \__fp_chk:w #2#3\__fp_sep: + \s__fp \__fp_chk:w #4#5\__fp_sep: } -\cs_new:Npn \__fp_minmax_auxi:ww #1 \fi: \fi: #2 \s__fp #3 ; \s__fp #4; - { \fi: \fi: #2 \s__fp #3 ; } -\cs_new:Npn \__fp_minmax_auxii:ww #1 \fi: \fi: #2 \s__fp #3 ; +\cs_new:Npn \__fp_minmax_auxi:ww + #1 \fi: \fi: #2 \s__fp #3 \__fp_sep: \s__fp #4\__fp_sep: + { \fi: \fi: #2 \s__fp #3 \__fp_sep: } +\cs_new:Npn \__fp_minmax_auxii:ww #1 \fi: \fi: #2 \s__fp #3 \__fp_sep: { \fi: \fi: #2 } -\cs_new:Npn \__fp_minmax_break_o:w #1 \fi: \fi: #2 \s__fp #3; #4; - { \fi: \__fp_exp_after_o:w \s__fp #3; } -\cs_new:Npn \__fp_not_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_minmax_break_o:w #1 \fi: \fi: #2 \s__fp #3\__fp_sep: #4\__fp_sep: + { \fi: \__fp_exp_after_o:w \s__fp #3\__fp_sep: } +\cs_new:Npn \__fp_not_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_meaning:w 0 #2 \exp_after:wN \exp_after:wN \exp_after:wN \c_one_fp @@ -18022,30 +18081,31 @@ \group_begin: \char_set_catcode_letter:N & \char_set_catcode_letter:N | - \cs_new:Npn \__fp_&_o:ww #1 \s__fp \__fp_chk:w #2#3; + \cs_new:Npn \__fp_&_o:ww #1 \s__fp \__fp_chk:w #2#3\__fp_sep: { \if_meaning:w 0 #2 #1 - \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3; + \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3\__fp_sep: \fi: \__fp_exp_after_o:w } - \cs_new:Npn \__fp_&_tuple_o:ww #1 \s__fp \__fp_chk:w #2#3; + \cs_new:Npn \__fp_&_tuple_o:ww #1 \s__fp \__fp_chk:w #2#3\__fp_sep: { \if_meaning:w 0 #2 #1 - \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3; + \__fp_and_return:wNw \s__fp \__fp_chk:w #2#3\__fp_sep: \fi: \__fp_exp_after_tuple_o:w } - \cs_new:Npn \__fp_tuple_&_o:ww #1; { \__fp_exp_after_o:w } - \cs_new:Npn \__fp_tuple_&_tuple_o:ww #1; { \__fp_exp_after_tuple_o:w } + \cs_new:Npn \__fp_tuple_&_o:ww #1\__fp_sep: { \__fp_exp_after_o:w } + \cs_new:Npn \__fp_tuple_&_tuple_o:ww #1\__fp_sep: { \__fp_exp_after_tuple_o:w } \cs_new:Npn \__fp_|_o:ww { \__fp_&_o:ww \else: } \cs_new:Npn \__fp_|_tuple_o:ww { \__fp_&_tuple_o:ww \else: } - \cs_new:Npn \__fp_tuple_|_o:ww #1; #2; { \__fp_exp_after_tuple_o:w #1; } - \cs_new:Npn \__fp_tuple_|_tuple_o:ww #1; #2; - { \__fp_exp_after_tuple_o:w #1; } + \cs_new:Npn \__fp_tuple_|_o:ww #1\__fp_sep: #2\__fp_sep: + { \__fp_exp_after_tuple_o:w #1\__fp_sep: } + \cs_new:Npn \__fp_tuple_|_tuple_o:ww #1\__fp_sep: #2\__fp_sep: + { \__fp_exp_after_tuple_o:w #1\__fp_sep: } \group_end: -\cs_new:Npn \__fp_and_return:wNw #1; \fi: #2; - { \fi: \__fp_exp_after_o:w #1; } +\cs_new:Npn \__fp_and_return:wNw #1\__fp_sep: \fi: #2\__fp_sep: + { \fi: \__fp_exp_after_o:w #1\__fp_sep: } \cs_new:Npn \__fp_ternary:NwwN #1 #2#3@ #4@ #5 { \if_meaning:w \__fp_parse_infix_::N #5 @@ -18106,7 +18166,7 @@ \exp_not:n { \s__fp \__fp_neg_sign:N } } \cs_new:cpn { __fp_+_o:ww } - \s__fp #1 \__fp_chk:w #2 #3 ; \s__fp \__fp_chk:w #4 #5 + \s__fp #1 \__fp_chk:w #2 #3 \__fp_sep: \s__fp \__fp_chk:w #4 #5 { \if_case:w \if_meaning:w #2 #4 @@ -18126,10 +18186,10 @@ \else: \exp_after:wN \__fp_add_return_ii_o:Nww \int_value:w \fi: #1 #5 - \s__fp \__fp_chk:w #2 #3 ; + \s__fp \__fp_chk:w #2 #3 \__fp_sep: \s__fp \__fp_chk:w #4 #5 } -\cs_new:Npn \__fp_add_return_ii_o:Nww #1 #2 ; \s__fp \__fp_chk:w #3 #4 +\cs_new:Npn \__fp_add_return_ii_o:Nww #1 #2 \__fp_sep: \s__fp \__fp_chk:w #3 #4 { \__fp_exp_after_o:w \s__fp \__fp_chk:w #3 #1 } \cs_new:Npn \__fp_add_zeros_o:Nww #1 \s__fp \__fp_chk:w 0 #2 { @@ -18142,7 +18202,7 @@ \s__fp \__fp_chk:w 0 #2 } \cs_new:Npn \__fp_add_inf_o:Nww - #1 \s__fp \__fp_chk:w 2 #2 #3; \s__fp \__fp_chk:w 2 #4 + #1 \s__fp \__fp_chk:w 2 #2 #3\__fp_sep: \s__fp \__fp_chk:w 2 #4 { \if_meaning:w #1 #2 \__fp_case_return_i_o:ww @@ -18153,7 +18213,7 @@ { \token_if_eq_meaning:NNTF #1 #4 + - } } \fi: - \s__fp \__fp_chk:w 2 #2 #3; + \s__fp \__fp_chk:w 2 #2 #3\__fp_sep: \s__fp \__fp_chk:w 2 #4 } \cs_new:Npn \__fp_add_normal_o:Nww #1 \s__fp \__fp_chk:w 1 #2 @@ -18165,7 +18225,7 @@ \fi: #2 } -\cs_new:Npn \__fp_add_npos_o:NnwNnw #1#2#3 ; \s__fp \__fp_chk:w 1 #4 #5 +\cs_new:Npn \__fp_add_npos_o:NnwNnw #1#2#3 \__fp_sep: \s__fp \__fp_chk:w 1 #4 #5 { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -18177,9 +18237,9 @@ #5 \exp_after:wN \__fp_add_big_ii_o:wNww \int_value:w \fi: - \__fp_int_eval:w #5 - #2 ; #1 #3; + \__fp_int_eval:w #5 - #2 \__fp_sep: #1 #3\__fp_sep: } -\cs_new:Npn \__fp_add_big_i_o:wNww #1; #2 #3; #4; +\cs_new:Npn \__fp_add_big_i_o:wNww #1\__fp_sep: #2 #3\__fp_sep: #4\__fp_sep: { \__fp_decimate:nNnnnn {#1} \__fp_add_significand_o:NnnwnnnnN @@ -18187,7 +18247,7 @@ #3 #2 } -\cs_new:Npn \__fp_add_big_ii_o:wNww #1; #2 #3; #4; +\cs_new:Npn \__fp_add_big_ii_o:wNww #1\__fp_sep: #2 #3\__fp_sep: #4\__fp_sep: { \__fp_decimate:nNnnnn {#1} \__fp_add_significand_o:NnnwnnnnN @@ -18195,19 +18255,19 @@ #4 #2 } -\cs_new:Npn \__fp_add_significand_o:NnnwnnnnN #1 #2#3 #4; #5#6#7#8 +\cs_new:Npn \__fp_add_significand_o:NnnwnnnnN #1 #2#3 #4\__fp_sep: #5#6#7#8 { \exp_after:wN \__fp_add_significand_test_o:N \int_value:w \__fp_int_eval:w 1#5#6 + #2 \exp_after:wN \__fp_add_significand_pack:NNNNNNN - \int_value:w \__fp_int_eval:w 1#7#8 + #3 ; #1 + \int_value:w \__fp_int_eval:w 1#7#8 + #3 \__fp_sep: #1 } \cs_new:Npn \__fp_add_significand_pack:NNNNNNN #1 #2#3#4#5#6#7 { \if_meaning:w 2 #1 + 1 \fi: - ; #2 #3 #4 #5 #6 #7 ; + \__fp_sep: #2 #3 #4 #5 #6 #7 \__fp_sep: } \cs_new:Npn \__fp_add_significand_test_o:N #1 { @@ -18218,17 +18278,17 @@ \fi: } \cs_new:Npn \__fp_add_significand_no_carry_o:wwwNN - #1; #2; #3#4 ; #5#6 + #1\__fp_sep: #2\__fp_sep: #3#4 \__fp_sep: #5#6 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 #1 \exp_after:wN \__fp_basics_pack_low:NNNNNw \int_value:w \__fp_int_eval:w 1 #2 #3#4 + \__fp_round:NNN #6 #4 #5 - \exp_after:wN ; + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_add_significand_carry_o:wwwNN - #1; #2; #3#4; #5#6 + #1\__fp_sep: #2\__fp_sep: #3#4\__fp_sep: #5#6 { + 1 \exp_after:wN \__fp_basics_pack_weird_high:NNNNNNNNw @@ -18238,28 +18298,31 @@ \exp_after:wN \__fp_round:NNN \exp_after:wN #6 \exp_after:wN #3 - \int_value:w \__fp_round_digit:Nw #4 #5 ; - \exp_after:wN ; + \int_value:w \__fp_round_digit:Nw #4 #5 \__fp_sep: + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_sub_npos_o:NnwNnw #1#2#3; \s__fp \__fp_chk:w 1 #4#5#6; +\cs_new:Npn \__fp_sub_npos_o:NnwNnw + #1#2#3\__fp_sep: \s__fp \__fp_chk:w 1 #4#5#6\__fp_sep: { - \if_case:w \__fp_compare_npos:nwnw {#2} #3; {#5} #6; \exp_stop_f: + \if_case:w + \__fp_compare_npos:nwnw {#2} #3\__fp_sep: {#5} #6\__fp_sep: \exp_stop_f: \exp_after:wN \__fp_sub_eq_o:Nnwnw \or: \exp_after:wN \__fp_sub_npos_i_o:Nnwnw \else: \exp_after:wN \__fp_sub_npos_ii_o:Nnwnw \fi: - #1 {#2} #3; {#5} #6; + #1 {#2} #3\__fp_sep: {#5} #6\__fp_sep: } -\cs_new:Npn \__fp_sub_eq_o:Nnwnw #1#2; #3; { \exp_after:wN \c_zero_fp } -\cs_new:Npn \__fp_sub_npos_ii_o:Nnwnw #1 #2; #3; +\cs_new:Npn \__fp_sub_eq_o:Nnwnw #1#2\__fp_sep: #3\__fp_sep: + { \exp_after:wN \c_zero_fp } +\cs_new:Npn \__fp_sub_npos_ii_o:Nnwnw #1 #2\__fp_sep: #3\__fp_sep: { \exp_after:wN \__fp_sub_npos_i_o:Nnwnw \int_value:w \__fp_neg_sign:N #1 - #3; #2; + #3\__fp_sep: #2\__fp_sep: } -\cs_new:Npn \__fp_sub_npos_i_o:Nnwnw #1 #2#3; #4#5; +\cs_new:Npn \__fp_sub_npos_i_o:Nnwnw #1 #2#3\__fp_sep: #4#5\__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -18281,42 +18344,43 @@ \exp_after:wN \__fp_sub_back_near_after:wNNNNw \int_value:w \__fp_int_eval:w 10#5#6 - #1#2 - 11 \exp_after:wN \__fp_sub_back_near_pack:NNNNNNw - \int_value:w \__fp_int_eval:w 11#7#8 - #3#4 \exp_after:wN ; + \int_value:w \__fp_int_eval:w 11#7#8 - #3#4 \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_sub_back_near_pack:NNNNNNw #1#2#3#4#5#6#7 ; - { + #1#2 ; {#3#4#5#6} {#7} ; } -\cs_new:Npn \__fp_sub_back_near_after:wNNNNw 10 #1#2#3#4 #5 ; +\cs_new:Npn \__fp_sub_back_near_pack:NNNNNNw #1#2#3#4#5#6#7 \__fp_sep: + { + #1#2 \__fp_sep: {#3#4#5#6} {#7} \__fp_sep: } +\cs_new:Npn \__fp_sub_back_near_after:wNNNNw 10 #1#2#3#4 #5 \__fp_sep: { \if_meaning:w 0 #1 \exp_after:wN \__fp_sub_back_shift:wnnnn \fi: - ; {#1#2#3#4} {#5} + \__fp_sep: {#1#2#3#4} {#5} } -\cs_new:Npn \__fp_sub_back_shift:wnnnn ; #1#2 +\cs_new:Npn \__fp_sub_back_shift:wnnnn \__fp_sep: #1#2 { \exp_after:wN \__fp_sub_back_shift_ii:ww - \int_value:w #1 #2 0 ; + \int_value:w #1 #2 0 \__fp_sep: } -\cs_new:Npn \__fp_sub_back_shift_ii:ww #1 0 ; #2#3 ; +\cs_new:Npn \__fp_sub_back_shift_ii:ww #1 0 \__fp_sep: #2#3 \__fp_sep: { \if_meaning:w @ #1 @ - 7 - \exp_after:wN \use_i:nnn \exp_after:wN \__fp_sub_back_shift_iii:NNNNNNNNw - \int_value:w #2#3 0 ~ 123456789; + \int_value:w #2#3 0 ~ 123456789\__fp_sep: \else: - - \__fp_sub_back_shift_iii:NNNNNNNNw #1 123456789; + - \__fp_sub_back_shift_iii:NNNNNNNNw #1 123456789\__fp_sep: \fi: \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_sub_back_shift_iv:nnnnw - \exp_after:wN ; + \exp_after:wN \__fp_sep: \int_value:w - #1 ~ #2#3 0 ~ 0000 0000 0000 000 ; + #1 ~ #2#3 0 ~ 0000 0000 0000 000 \__fp_sep: } -\cs_new:Npn \__fp_sub_back_shift_iii:NNNNNNNNw #1#2#3#4#5#6#7#8#9; {#8} -\cs_new:Npn \__fp_sub_back_shift_iv:nnnnw #1 ; #2 ; { ; #1 ; } -\cs_new:Npn \__fp_sub_back_far_o:NnnwnnnnN #1 #2#3 #4; #5#6#7#8 +\cs_new:Npn \__fp_sub_back_shift_iii:NNNNNNNNw #1#2#3#4#5#6#7#8#9\__fp_sep: {#8} +\cs_new:Npn \__fp_sub_back_shift_iv:nnnnw #1 \__fp_sep: #2 \__fp_sep: + { \__fp_sep: #1 \__fp_sep: } +\cs_new:Npn \__fp_sub_back_far_o:NnnwnnnnN #1 #2#3 #4\__fp_sep: #5#6#7#8 { \if_case:w \if_int_compare:w 1 #2 = #5#6 \use_i:nnnn #7 \exp_stop_f: @@ -18333,9 +18397,9 @@ \or: \exp_after:wN \__fp_sub_back_very_far_o:wwwwNN \else: \exp_after:wN \__fp_sub_back_not_far_o:wwwwNN \fi: - #2 ~ #3 ; #5 #6 ~ #7 #8 ; #1 + #2 ~ #3 \__fp_sep: #5 #6 ~ #7 #8 \__fp_sep: #1 } -\cs_new:Npn \__fp_sub_back_quite_far_o:wwNN #1; #2; #3#4 +\cs_new:Npn \__fp_sub_back_quite_far_o:wwNN #1\__fp_sep: #2\__fp_sep: #3#4 { \exp_after:wN \__fp_sub_back_quite_far_ii:NN \exp_after:wN #3 @@ -18348,10 +18412,10 @@ \else: \exp_after:wN \use_ii:nn \fi: - { ; {1000} {0000} {0000} {0000} ; } - { - 1 ; {9999} {9999} {9999} {9999} ; } + { \__fp_sep: {1000} {0000} {0000} {0000} \__fp_sep: } + { - 1 \__fp_sep: {9999} {9999} {9999} {9999} \__fp_sep: } } -\cs_new:Npn \__fp_sub_back_not_far_o:wwwwNN #1 ~ #2; #3 ~ #4; #5#6 +\cs_new:Npn \__fp_sub_back_not_far_o:wwwwNN #1 ~ #2\__fp_sep: #3 ~ #4\__fp_sep: #5#6 { - 1 \exp_after:wN \__fp_sub_back_near_after:wNNNNw @@ -18361,16 +18425,17 @@ - \exp_after:wN \__fp_round_neg:NNN \exp_after:wN #6 \use_none:nnnnnnn #2 #5 - \exp_after:wN ; + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_sub_back_very_far_o:wwwwNN #1#2#3#4#5#6#7 { \__fp_pack_eight:wNNNNNNNN \__fp_sub_back_very_far_ii_o:nnNwwNN { 0 #1#2#3 #4#5#6#7 } - ; + \__fp_sep: } -\cs_new:Npn \__fp_sub_back_very_far_ii_o:nnNwwNN #1#2 ; #3 ; #4 ~ #5; #6#7 +\cs_new:Npn \__fp_sub_back_very_far_ii_o:nnNwwNN + #1#2 \__fp_sep: #3 \__fp_sep: #4 ~ #5\__fp_sep: #6#7 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1#4 - #1 - 1 @@ -18381,8 +18446,8 @@ \int_value:w \if_int_odd:w \__fp_int_eval:w #5 - #2 \__fp_int_eval_end: 1 \else: 2 \fi: - \int_value:w \__fp_round_digit:Nw #3 #6 ; - \exp_after:wN ; + \int_value:w \__fp_round_digit:Nw #3 #6 \__fp_sep: + \exp_after:wN \__fp_sep: } \cs_new:cpn { __fp_*_o:ww } { @@ -18393,7 +18458,7 @@ { } } \cs_new:Npn \__fp_mul_cases_o:NnNnww - #1#2#3#4 \s__fp \__fp_chk:w #5#6#7; \s__fp \__fp_chk:w #8#9 + #1#2#3#4 \s__fp \__fp_chk:w #5#6#7\__fp_sep: \s__fp \__fp_chk:w #8#9 { \if_case:w \__fp_int_eval:w \if_int_compare:w #5 #8 = 11 ~ @@ -18427,11 +18492,12 @@ \or: \__fp_case_return_o:Nww \c_minus_inf_fp #4 \fi: - \s__fp \__fp_chk:w #5 #6 #7; + \s__fp \__fp_chk:w #5 #6 #7\__fp_sep: \s__fp \__fp_chk:w #8 #9 } \cs_new:Npn \__fp_mul_npos_o:Nww - #1 \s__fp \__fp_chk:w #2 #3 #4 #5 ; \s__fp \__fp_chk:w #6 #7 #8 #9 ; + #1 \s__fp \__fp_chk:w #2 #3 #4 #5 \__fp_sep: + \s__fp \__fp_chk:w #6 #7 #8 #9 \__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -18457,13 +18523,13 @@ \exp_after:wN \__fp_mul_significand_drop:NNNNNw \int_value:w \__fp_int_eval:w 99990000 + #3*#9 + #4*#8 + \exp_after:wN \__fp_mul_significand_drop:NNNNNw - \int_value:w \__fp_int_eval:w 100000000 + #4*#9 ; - ; \exp_after:wN ; + \int_value:w \__fp_int_eval:w 100000000 + #4*#9 \__fp_sep: + \__fp_sep: \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_mul_significand_drop:NNNNNw #1#2#3#4#5 #6; - { #1#2#3#4#5 ; + #6 } -\cs_new:Npn \__fp_mul_significand_keep:NNNNNw #1#2#3#4#5 #6; - { #1#2#3#4#5 ; #6 ; } +\cs_new:Npn \__fp_mul_significand_drop:NNNNNw #1#2#3#4#5 #6\__fp_sep: + { #1#2#3#4#5 \__fp_sep: + #6 } +\cs_new:Npn \__fp_mul_significand_keep:NNNNNw #1#2#3#4#5 #6\__fp_sep: + { #1#2#3#4#5 \__fp_sep: #6 \__fp_sep: } \cs_new:Npn \__fp_mul_significand_test_f:NNN #1 #2 #3 { \if_meaning:w 0 #3 @@ -18473,7 +18539,8 @@ \fi: #1 #3 } -\cs_new:Npn \__fp_mul_significand_large_f:NwwNNNN #1 #2; #3; #4#5#6#7; + +\cs_new:Npn \__fp_mul_significand_large_f:NwwNNNN + #1 #2\__fp_sep: #3\__fp_sep: #4#5#6#7\__fp_sep: + { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1#2 @@ -18484,7 +18551,8 @@ \exp_after:wN #7 \int_value:w \__fp_round_digit:Nw } -\cs_new:Npn \__fp_mul_significand_small_f:NNwwwN #1 #2#3; #4#5; #6; + #7 +\cs_new:Npn \__fp_mul_significand_small_f:NNwwwN + #1 #2#3\__fp_sep: #4#5\__fp_sep: #6\__fp_sep: + #7 { - 1 \exp_after:wN \__fp_basics_pack_high:NNNNNw @@ -18512,25 +18580,26 @@ } } \cs_new:Npn \__fp_div_npos_o:Nww - #1 \s__fp \__fp_chk:w 1 #2 #3 #4 ; \s__fp \__fp_chk:w 1 #5 #6 #7#8#9; + #1 \s__fp \__fp_chk:w 1 #2 #3 #4 \__fp_sep: + \s__fp \__fp_chk:w 1 #5 #6 #7#8#9\__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 \int_value:w \__fp_int_eval:w #3 - #6 \exp_after:wN \__fp_div_significand_i_o:wnnw - \int_value:w \__fp_int_eval:w #7 \use_i:nnnn #8 + 1 ; + \int_value:w \__fp_int_eval:w #7 \use_i:nnnn #8 + 1 \__fp_sep: #4 - {#7}{#8}#9 ; + {#7}{#8}#9 \__fp_sep: #1 } -\cs_new:Npn \__fp_div_significand_i_o:wnnw #1 ; #2#3 #4 ; +\cs_new:Npn \__fp_div_significand_i_o:wnnw #1 \__fp_sep: #2#3 #4 \__fp_sep: { \exp_after:wN \__fp_div_significand_test_o:w \int_value:w \__fp_int_eval:w \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + #2 #3 0 / #1 ; - #2 #3 ; + \int_value:w \__fp_int_eval:w 999999 + #2 #3 0 / #1 \__fp_sep: + #2 #3 \__fp_sep: #4 { \exp_after:wN \__fp_div_significand_ii:wwn \int_value:w #1 } { \exp_after:wN \__fp_div_significand_ii:wwn \int_value:w #1 } @@ -18546,10 +18615,10 @@ \fi: } \cs_new:Npn \__fp_div_significand_calc_i:wwnnnnnnn - #1; #2;#3#4 #5#6#7#8 #9 + #1\__fp_sep: #2\__fp_sep:#3#4 #5#6#7#8 #9 { 1 1 #1 - #9 \exp_after:wN ; + #9 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w \c__fp_Bigg_leading_shift_int + #2 - #1 * #5 - #5#60 \exp_after:wN \__fp_pack_Bigg:NNNNNNw @@ -18560,14 +18629,14 @@ + #4 - #1 * #7 - #80 \exp_after:wN \__fp_pack_Bigg:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_Bigg_trailing_shift_int - - #1 * #8 ; + - #1 * #8 \__fp_sep: {#5}{#6}{#7}{#8} } \cs_new:Npn \__fp_div_significand_calc_ii:wwnnnnnnn - #1; #2;#3#4 #5#6#7#8 #9 + #1\__fp_sep: #2\__fp_sep:#3#4 #5#6#7#8 #9 { 1 0 #1 - #9 \exp_after:wN ; + #9 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w \c__fp_Bigg_leading_shift_int + #2 - #1 * #5 \exp_after:wN \__fp_pack_Bigg:NNNNNNw @@ -18578,25 +18647,27 @@ + #4 - #1 * #7 \exp_after:wN \__fp_pack_Bigg:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_Bigg_trailing_shift_int - - #1 * #8 ; + - #1 * #8 \__fp_sep: {#5}{#6}{#7}{#8} } -\cs_new:Npn \__fp_div_significand_ii:wwn #1; #2;#3 +\cs_new:Npn \__fp_div_significand_ii:wwn #1\__fp_sep: #2\__fp_sep:#3 { \exp_after:wN \__fp_div_significand_pack:NNN \int_value:w \__fp_int_eval:w \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + #2 #3 0 / #1 ; #2 #3 ; + \int_value:w \__fp_int_eval:w + 999999 + #2 #3 0 / #1 \__fp_sep: #2 #3 \__fp_sep: } -\cs_new:Npn \__fp_div_significand_iii:wwnnnnn #1; #2;#3#4#5 #6#7 +\cs_new:Npn \__fp_div_significand_iii:wwnnnnn #1\__fp_sep: #2\__fp_sep:#3#4#5 #6#7 { 0 \exp_after:wN \__fp_div_significand_iv:wwnnnnnnn - \int_value:w \__fp_int_eval:w ( 2 * #2 #3) / #6 #7 ; % <- P - #2 ; {#3} {#4} {#5} + \int_value:w \__fp_int_eval:w ( 2 * #2 #3) / #6 #7 \__fp_sep: % <- P + #2 \__fp_sep: {#3} {#4} {#5} {#6} {#7} } -\cs_new:Npn \__fp_div_significand_iv:wwnnnnnnn #1; #2;#3#4#5 #6#7#8#9 +\cs_new:Npn \__fp_div_significand_iv:wwnnnnnnn + #1\__fp_sep: #2\__fp_sep:#3#4#5 #6#7#8#9 { + 5 * #1 \exp_after:wN \__fp_div_significand_vi:Nw @@ -18604,19 +18675,19 @@ \exp_after:wN \__fp_div_significand_v:NN \int_value:w \__fp_int_eval:w 499950 + 2*#4 - #1*#8 + \exp_after:wN \__fp_div_significand_v:NN - \int_value:w \__fp_int_eval:w 500000 + 2*#5 - #1*#9 ; + \int_value:w \__fp_int_eval:w 500000 + 2*#5 - #1*#9 \__fp_sep: } \cs_new:Npn \__fp_div_significand_v:NN #1#2 { #1#2 \__fp_int_eval_end: + } -\cs_new:Npn \__fp_div_significand_vi:Nw #1#2; +\cs_new:Npn \__fp_div_significand_vi:Nw #1#2\__fp_sep: { \if_meaning:w 0 #1 \if_int_compare:w \__fp_int_eval:w #2 > 0 + 1 \fi: \else: \if_meaning:w - #1 - \else: + \fi: 1 \fi: - ; + \__fp_sep: } -\cs_new:Npn \__fp_div_significand_pack:NNN 1 #1 #2 { + #1 #2 ; } +\cs_new:Npn \__fp_div_significand_pack:NNN 1 #1 #2 { + #1 #2 \__fp_sep: } \cs_new:Npn \__fp_div_significand_test_o:w 10 #1 { \if_meaning:w 0 #1 @@ -18627,17 +18698,17 @@ #1 } \cs_new:Npn \__fp_div_significand_small_o:wwwNNNNwN - 0 #1; #2; #3; #4#5#6#7#8; #9 + 0 #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: #4#5#6#7#8\__fp_sep: #9 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 #1#2 \exp_after:wN \__fp_basics_pack_low:NNNNNw \int_value:w \__fp_int_eval:w 1 #3#4#5#6#7 + \__fp_round:NNN #9 #7 #8 - \exp_after:wN ; + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_div_significand_large_o:wwwNNNNwN - #1; #2; #3; #4#5#6#7#8; #9 + #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: #4#5#6#7#8\__fp_sep: #9 { + 1 \exp_after:wN \__fp_basics_pack_weird_high:NNNNNNNNw @@ -18647,10 +18718,10 @@ \exp_after:wN \__fp_round:NNN \exp_after:wN #9 \exp_after:wN #6 - \int_value:w \__fp_round_digit:Nw #7 #8 ; - \exp_after:wN ; + \int_value:w \__fp_round_digit:Nw #7 #8 \__fp_sep: + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_sqrt_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_sqrt_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_meaning:w 0 #2 \__fp_case_return_same_o:w \fi: \if_meaning:w 2 #3 @@ -18658,9 +18729,9 @@ \fi: \if_meaning:w 1 #2 \else: \__fp_case_return_same_o:w \fi: \__fp_sqrt_npos_o:w - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_sqrt_npos_o:w \s__fp \__fp_chk:w 1 0 #1#2#3#4#5; +\cs_new:Npn \__fp_sqrt_npos_o:w \s__fp \__fp_chk:w 1 0 #1#2#3#4#5\__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 @@ -18669,19 +18740,19 @@ \exp_after:wN \__fp_sqrt_npos_auxi_o:wwnnN \fi: #1 / 2 - \__fp_sqrt_Newton_o:wwn 56234133; 0; {#2#3} {#4#5} 0 + \__fp_sqrt_Newton_o:wwn 56234133\__fp_sep: 0\__fp_sep: {#2#3} {#4#5} 0 } -\cs_new:Npn \__fp_sqrt_npos_auxi_o:wwnnN #1 / 2 #2; 0; #3#4#5 +\cs_new:Npn \__fp_sqrt_npos_auxi_o:wwnnN #1 / 2 #2\__fp_sep: 0\__fp_sep: #3#4#5 { ( #1 + 1 ) / 2 \__fp_pack_eight:wNNNNNNNN \__fp_sqrt_npos_auxii_o:wNNNNNNNN - ; + \__fp_sep: 0 #3 #4 } -\cs_new:Npn \__fp_sqrt_npos_auxii_o:wNNNNNNNN #1; #2#3#4#5#6#7#8#9 - { \__fp_sqrt_Newton_o:wwn 17782794; 0; {#1} {#2#3#4#5#6#7#8#9} } -\cs_new:Npn \__fp_sqrt_Newton_o:wwn #1; #2; #3 +\cs_new:Npn \__fp_sqrt_npos_auxii_o:wNNNNNNNN #1\__fp_sep: #2#3#4#5#6#7#8#9 + { \__fp_sqrt_Newton_o:wwn 17782794\__fp_sep: 0\__fp_sep: {#1} {#2#3#4#5#6#7#8#9} } +\cs_new:Npn \__fp_sqrt_Newton_o:wwn #1\__fp_sep: #2\__fp_sep: #3 { \if_int_compare:w #1 = #2 \exp_stop_f: \exp_after:wN \__fp_sqrt_auxi_o:NNNNwnnN @@ -18689,10 +18760,10 @@ \exp_after:wN \__fp_use_none_until_s:w \fi: \exp_after:wN \__fp_sqrt_Newton_o:wwn - \int_value:w \__fp_int_eval:w (#1 + #3 * 1 0000 0000 / #1) / 2 ; - #1; {#3} + \int_value:w \__fp_int_eval:w (#1 + #3 * 1 0000 0000 / #1) / 2 \__fp_sep: + #1\__fp_sep: {#3} } -\cs_new:Npn \__fp_sqrt_auxi_o:NNNNwnnN 1 #1#2#3#4#5; +\cs_new:Npn \__fp_sqrt_auxi_o:NNNNwnnN 1 #1#2#3#4#5\__fp_sep: { \__fp_sqrt_auxii_o:NnnnnnnnN \__fp_sqrt_auxiii_o:wnnnnnnnn @@ -18728,13 +18799,13 @@ \exp_after:wN \__fp_pack_big:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_big_trailing_shift_int - - #6 * #6 ; + - #6 * #6 \__fp_sep: % ( - - 257 ) * 5000 0000 / (#2#3 + 1) + 10 0000 0000 ; + - 257 ) * 5000 0000 / (#2#3 + 1) + 10 0000 0000 \__fp_sep: {#2}{#3}{#4}{#5}{#6} {#7}{#8}#9 } \cs_new:Npn \__fp_sqrt_auxiii_o:wnnnnnnnn - #1; #2#3#4#5#6#7#8#9 + #1\__fp_sep: #2#3#4#5#6#7#8#9 { \if_int_compare:w #1 > \c_one_int \exp_after:wN \__fp_sqrt_auxiv_o:NNNNNw @@ -18754,13 +18825,13 @@ \fi: \fi: } -\cs_new:Npn \__fp_sqrt_auxiv_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxiv_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \__fp_sqrt_auxviii_o:nnnnnnn {#1#2#3#4#5#6} {00000000} } -\cs_new:Npn \__fp_sqrt_auxv_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxv_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \__fp_sqrt_auxviii_o:nnnnnnn {000#1#2#3#4#5} {#60000} } -\cs_new:Npn \__fp_sqrt_auxvi_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxvi_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \__fp_sqrt_auxviii_o:nnnnnnn {0000000#1} {#2#3#4#5#6} } -\cs_new:Npn \__fp_sqrt_auxvii_o:NNNNNw 1#1#2#3#4#5#6; +\cs_new:Npn \__fp_sqrt_auxvii_o:NNNNNw 1#1#2#3#4#5#6\__fp_sep: { \if_int_compare:w #1#2 = \c_zero_int \exp_after:wN \__fp_sqrt_auxx_o:Nnnnnnnn @@ -18774,9 +18845,9 @@ \exp_after:wN \__fp_basics_pack_low:NNNNNw \int_value:w \__fp_int_eval:w #1 + 1#4#5 \exp_after:wN \__fp_basics_pack_low:NNNNNw - \int_value:w \__fp_int_eval:w #2 + 1#6#7 ; + \int_value:w \__fp_int_eval:w #2 + 1#6#7 \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxix_o:wnwnw #1; #2#3; #4#5; +\cs_new:Npn \__fp_sqrt_auxix_o:wnwnw #1\__fp_sep: #2#3\__fp_sep: #4#5\__fp_sep: { \__fp_sqrt_auxii_o:NnnnnnnnN \__fp_sqrt_auxiii_o:wnnnnnnnn {#1}{#2}{#3}{#4}{#5} @@ -18785,17 +18856,17 @@ { \exp_after:wN \__fp_sqrt_auxxi_o:wwnnN \int_value:w \__fp_int_eval:w - (#8 + 2499) / 5000 * 5000 ; - {#4} {#5} {#6} {#7} ; + (#8 + 2499) / 5000 * 5000 \__fp_sep: + {#4} {#5} {#6} {#7} \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxxi_o:wwnnN #1; #2; #3#4#5 +\cs_new:Npn \__fp_sqrt_auxxi_o:wwnnN #1\__fp_sep: #2\__fp_sep: #3#4#5 { \__fp_sqrt_auxii_o:NnnnnnnnN \__fp_sqrt_auxxii_o:nnnnnnnnw #2 {#1} {#3} { #4 + 1 } #5 } -\cs_new:Npn \__fp_sqrt_auxxii_o:nnnnnnnnw 0; #1#2#3#4#5#6#7#8 #9; +\cs_new:Npn \__fp_sqrt_auxxii_o:nnnnnnnnw 0\__fp_sep: #1#2#3#4#5#6#7#8 #9\__fp_sep: { \if_int_compare:w #1#2 > \c_zero_int \if_int_compare:w #1#2 = \c_one_int @@ -18813,14 +18884,14 @@ \exp_after:wN \__fp_sqrt_auxxiv_o:wnnnnnnnN \int_value:w 10000 \fi: - ; + \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxxiii_o:w \fi: \fi: \fi: \fi: #1 \fi: ; +\cs_new:Npn \__fp_sqrt_auxxiii_o:w \fi: \fi: \fi: \fi: #1 \fi: \__fp_sep: { \fi: \fi: \fi: \fi: \fi: - \__fp_sqrt_auxxiv_o:wnnnnnnnN 9999 ; + \__fp_sqrt_auxxiv_o:wnnnnnnnN 9999 \__fp_sep: } -\cs_new:Npn \__fp_sqrt_auxxiv_o:wnnnnnnnN #1; #2#3#4#5#6 #7#8#9 +\cs_new:Npn \__fp_sqrt_auxxiv_o:wnnnnnnnN #1\__fp_sep: #2#3#4#5#6 #7#8#9 { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 0000 0000 + #2#3 @@ -18834,10 +18905,10 @@ \int_value:w \exp_after:wN \use_i:nn \exp_after:wN \__fp_round_digit:Nw - \int_value:w \__fp_int_eval:w #6 + 19999 - #1 ; - \exp_after:wN ; + \int_value:w \__fp_int_eval:w #6 + 19999 - #1 \__fp_sep: + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_logb_o:w ? \s__fp \__fp_chk:w #1#2; @ +\cs_new:Npn \__fp_logb_o:w ? \s__fp \__fp_chk:w #1#2\__fp_sep: @ { \if_case:w #1 \exp_stop_f: \__fp_case_use:nw @@ -18846,14 +18917,14 @@ \or: \__fp_case_return_o:Nw \c_inf_fp \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #1 #2; + \s__fp \__fp_chk:w #1 #2\__fp_sep: } -\cs_new:Npn \__fp_logb_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 #4 ; +\cs_new:Npn \__fp_logb_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 #4 \__fp_sep: { \exp_after:wN \__fp_parse:n \exp_after:wN { \int_value:w \int_eval:w #3 - 1 \exp_after:wN } } -\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2; @ +\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2\__fp_sep: @ { \if_case:w #1 \exp_stop_f: \__fp_case_return_same_o:w @@ -18861,11 +18932,11 @@ \or: \exp_after:wN \__fp_sign_aux_o:w \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #1 #2; + \s__fp \__fp_chk:w #1 #2\__fp_sep: } -\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 ; +\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 \__fp_sep: { \exp_after:wN \__fp_set_sign_o:w \exp_after:wN #2 \c_one_fp @ } -\cs_new:Npn \__fp_set_sign_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_set_sign_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \exp_after:wN \__fp_exp_after_o:w \exp_after:wN \s__fp @@ -18873,7 +18944,7 @@ \exp_after:wN #2 \int_value:w \if_case:w #3 \exp_stop_f: #1 \or: 1 \or: 0 \fi: \exp_stop_f: - #4; + #4\__fp_sep: } \cs_new:Npn \__fp_tuple_set_sign_o:w #1#2 @ { @@ -18885,53 +18956,60 @@ } \cs_new:Npn \__fp_tuple_set_sign_aux_o:Nnw #1#2 { \__fp_tuple_map_o:nw \__fp_tuple_set_sign_aux_o:w } -\cs_new:Npn \__fp_tuple_set_sign_aux_o:w #1#2 ; +\cs_new:Npn \__fp_tuple_set_sign_aux_o:w #1#2 \__fp_sep: { \__fp_change_func_type:NNN #1 \__fp_set_sign_o:w \__fp_parse_apply_unary_error:NNw - 2 #1 #2 ; @ - } -\cs_new:cpn { __fp_*_tuple_o:ww } #1 ; - { \__fp_tuple_map_o:nw { \__fp_binary_type_o:Nww * #1 ; } } -\cs_new:cpn { __fp_tuple_*_o:ww } #1 ; #2 ; - { \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww * #2 ; } #1 ; } -\cs_new:cpn { __fp_tuple_/_o:ww } #1 ; #2 ; - { \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww / #2 ; } #1 ; } + 2 #1 #2 \__fp_sep: @ + } +\cs_new:cpn { __fp_*_tuple_o:ww } #1 \__fp_sep: + { \__fp_tuple_map_o:nw { \__fp_binary_type_o:Nww * #1 \__fp_sep: } } +\cs_new:cpn { __fp_tuple_*_o:ww } #1 \__fp_sep: #2 \__fp_sep: + { + \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww * #2 \__fp_sep: } + #1 \__fp_sep: + } +\cs_new:cpn { __fp_tuple_/_o:ww } #1 \__fp_sep: #2 \__fp_sep: + { + \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww / #2 \__fp_sep: } + #1 \__fp_sep: + } \cs_set_protected:Npn \__fp_tmp:w #1 { \cs_new:cpn { __fp_tuple_#1_tuple_o:ww } - \s__fp_tuple \__fp_tuple_chk:w ##1 ; - \s__fp_tuple \__fp_tuple_chk:w ##2 ; + \s__fp_tuple \__fp_tuple_chk:w ##1 \__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w ##2 \__fp_sep: { \int_compare:nNnTF { \__fp_array_count:n {##1} } = { \__fp_array_count:n {##2} } { \__fp_tuple_mapthread_o:nww { \__fp_binary_type_o:Nww #1 } } { \__fp_invalid_operation_o:nww #1 } - \s__fp_tuple \__fp_tuple_chk:w {##1} ; - \s__fp_tuple \__fp_tuple_chk:w {##2} ; + \s__fp_tuple \__fp_tuple_chk:w {##1} \__fp_sep: + \s__fp_tuple \__fp_tuple_chk:w {##2} \__fp_sep: } } \__fp_tmp:w + \__fp_tmp:w - %% File: l3fp-extended.dtx \tl_const:Nn \c__fp_one_fixed_tl - { {10000} {0000} {0000} {0000} {0000} {0000} ; } -\cs_new:Npn \__fp_fixed_continue:wn #1; #2 { #2 #1; } -\cs_new:Npn \__fp_fixed_add_one:wN #1#2; #3 + { {10000} {0000} {0000} {0000} {0000} {0000} \__fp_sep: } +\cs_new:Npn \__fp_fixed_continue:wn #1\__fp_sep: #2 { #2 #1\__fp_sep: } +\cs_new:Npn \__fp_fixed_add_one:wN #1#2\__fp_sep: #3 { \exp_after:wN #3 \exp_after:wN - { \int_value:w \__fp_int_eval:w \c__fp_myriad_int + #1 } #2 ; + { \int_value:w \__fp_int_eval:w \c__fp_myriad_int + #1 } #2 \__fp_sep: } -\cs_new:Npn \__fp_fixed_div_myriad:wn #1#2#3#4#5#6; +\cs_new:Npn \__fp_fixed_div_myriad:wn #1#2#3#4#5#6\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int \exp_after:wN \__fp_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_trailing_shift_int - + #1 ; {#2}{#3}{#4}{#5}; + + #1 \__fp_sep: {#2}{#3}{#4}{#5}\__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_after:wwn #1; #2; #3 { #3 {#1} #2; } -\cs_new:Npn \__fp_fixed_mul_short:wwn #1#2#3#4#5#6; #7#8#9; +\cs_new:Npn \__fp_fixed_mul_after:wwn #1\__fp_sep: #2\__fp_sep: #3 + { #3 {#1} #2\__fp_sep: } +\cs_new:Npn \__fp_fixed_mul_short:wwn #1#2#3#4#5#6\__fp_sep: #7#8#9\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int @@ -18952,29 +19030,29 @@ \int_value:w \__fp_int_eval:w \c__fp_trailing_shift_int + #4*#9 + #5*#8 + #6*#7 + ( #5*#9 + #6*#8 + #6*#9 / \c__fp_myriad_int ) - / \c__fp_myriad_int ; ; + / \c__fp_myriad_int \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_div_int:wwN #1#2#3#4#5#6 ; #7 ; #8 +\cs_new:Npn \__fp_fixed_div_int:wwN #1#2#3#4#5#6 \__fp_sep: #7 \__fp_sep: #8 { \exp_after:wN \__fp_fixed_div_int_after:Nw \exp_after:wN #8 \int_value:w \__fp_int_eval:w - 1 \__fp_fixed_div_int:wnN - #1; {#7} \__fp_fixed_div_int_auxi:wnn - #2; {#7} \__fp_fixed_div_int_auxi:wnn - #3; {#7} \__fp_fixed_div_int_auxi:wnn - #4; {#7} \__fp_fixed_div_int_auxi:wnn - #5; {#7} \__fp_fixed_div_int_auxi:wnn - #6; {#7} \__fp_fixed_div_int_auxii:wnn ; + #1\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #2\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #3\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #4\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #5\__fp_sep: {#7} \__fp_fixed_div_int_auxi:wnn + #6\__fp_sep: {#7} \__fp_fixed_div_int_auxii:wnn \__fp_sep: } -\cs_new:Npn \__fp_fixed_div_int:wnN #1; #2 #3 +\cs_new:Npn \__fp_fixed_div_int:wnN #1\__fp_sep: #2 #3 { \exp_after:wN #3 - \int_value:w \__fp_int_eval:w #1 / #2 - 1 ; + \int_value:w \__fp_int_eval:w #1 / #2 - 1 \__fp_sep: {#2} {#1} } -\cs_new:Npn \__fp_fixed_div_int_auxi:wnn #1; #2 #3 +\cs_new:Npn \__fp_fixed_div_int_auxi:wnn #1\__fp_sep: #2 #3 { + #1 \exp_after:wN \__fp_fixed_div_int_pack:Nw @@ -18982,12 +19060,12 @@ \exp_after:wN \__fp_fixed_div_int:wnN \int_value:w \__fp_int_eval:w #3 - #1*#2 \__fp_int_eval_end: } -\cs_new:Npn \__fp_fixed_div_int_auxii:wnn #1; #2 #3 { + #1 + 2 ; } -\cs_new:Npn \__fp_fixed_div_int_pack:Nw #1 #2; { + #1; {#2} } -\cs_new:Npn \__fp_fixed_div_int_after:Nw #1 #2; { #1 {#2} } +\cs_new:Npn \__fp_fixed_div_int_auxii:wnn #1\__fp_sep: #2 #3 { + #1 + 2 \__fp_sep: } +\cs_new:Npn \__fp_fixed_div_int_pack:Nw #1 #2\__fp_sep: { + #1\__fp_sep: {#2} } +\cs_new:Npn \__fp_fixed_div_int_after:Nw #1 #2\__fp_sep: { #1 {#2} } \cs_new:Npn \__fp_fixed_add:wwn { \__fp_fixed_add:Nnnnnwnn + } \cs_new:Npn \__fp_fixed_sub:wwn { \__fp_fixed_add:Nnnnnwnn - } -\cs_new:Npn \__fp_fixed_add:Nnnnnwnn #1 #2#3#4#5 #6; #7#8 +\cs_new:Npn \__fp_fixed_add:Nnnnnwnn #1 #2#3#4#5 #6\__fp_sep: #7#8 { \exp_after:wN \__fp_fixed_add_after:NNNNNwn \int_value:w \__fp_int_eval:w 9 9999 9998 + #2#3 #1 #7#8 @@ -18995,17 +19073,18 @@ \int_value:w \__fp_int_eval:w 1 9999 9998 + #4#5 \__fp_fixed_add:nnNnnnwn #6 #1 } -\cs_new:Npn \__fp_fixed_add:nnNnnnwn #1#2 #3 #4#5 #6#7 ; #8 +\cs_new:Npn \__fp_fixed_add:nnNnnnwn #1#2 #3 #4#5 #6#7 \__fp_sep: #8 { #3 #4#5 \exp_after:wN \__fp_fixed_add_pack:NNNNNwn - \int_value:w \__fp_int_eval:w 2 0000 0000 #3 #6#7 + #1#2 ; {#8} ; + \int_value:w \__fp_int_eval:w + 2 0000 0000 #3 #6#7 + #1#2 \__fp_sep: {#8} \__fp_sep: } -\cs_new:Npn \__fp_fixed_add_pack:NNNNNwn #1 #2#3#4#5 #6; #7 - { + #1 ; {#7} {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_fixed_add_after:NNNNNwn 1 #1 #2#3#4#5 #6; #7 +\cs_new:Npn \__fp_fixed_add_pack:NNNNNwn #1 #2#3#4#5 #6\__fp_sep: #7 + { + #1 \__fp_sep: {#7} {#2#3#4#5} {#6} } +\cs_new:Npn \__fp_fixed_add_after:NNNNNwn 1 #1 #2#3#4#5 #6\__fp_sep: #7 { #7 {#1#2#3#4#5} {#6} } -\cs_new:Npn \__fp_fixed_mul:wwn #1#2#3#4 #5; #6#7#8#9 +\cs_new:Npn \__fp_fixed_mul:wwn #1#2#3#4 #5\__fp_sep: #6#7#8#9 { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int @@ -19027,32 +19106,33 @@ + ( #3*#9 + #4*#8 + \__fp_fixed_mul:nnnnnnnw #5 {#6}{#7} {#1}{#2} } -\cs_new:Npn \__fp_fixed_mul:nnnnnnnw #1#2 #3#4 #5#6 #7#8 ; +\cs_new:Npn \__fp_fixed_mul:nnnnnnnw #1#2 #3#4 #5#6 #7#8 \__fp_sep: { #1*#4 + #2*#3 + #5*#8 + #6*#7 ) / \c__fp_myriad_int - + #1*#3 + #5*#7 ; ; + + #1*#3 + #5*#7 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_add:wwwn #1; #2; #3#4#5#6#7#8; +\cs_new:Npn \__fp_fixed_mul_add:wwwn #1\__fp_sep: #2\__fp_sep: #3#4#5#6#7#8\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_big_leading_shift_int \exp_after:wN \__fp_pack_big:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int + #3 #4 \__fp_fixed_mul_add:Nwnnnwnnn + - + #5 #6 ; #2 ; #1 ; #2 ; + - + #7 #8 ; ; + + #5 #6 \__fp_sep: #2 \__fp_sep: #1 \__fp_sep: #2 \__fp_sep: + + + #7 #8 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_sub_back:wwwn #1; #2; #3#4#5#6#7#8; +\cs_new:Npn \__fp_fixed_mul_sub_back:wwwn + #1\__fp_sep: #2\__fp_sep: #3#4#5#6#7#8\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_big_leading_shift_int \exp_after:wN \__fp_pack_big:NNNNNNw \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int + #3 #4 \__fp_fixed_mul_add:Nwnnnwnnn - - + #5 #6 ; #2 ; #1 ; #2 ; - - + #7 #8 ; ; + + #5 #6 \__fp_sep: #2 \__fp_sep: #1 \__fp_sep: #2 \__fp_sep: - + + #7 #8 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_one_minus_mul:wwn #1; #2; +\cs_new:Npn \__fp_fixed_one_minus_mul:wwn #1\__fp_sep: #2\__fp_sep: { \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_big_leading_shift_int @@ -19060,10 +19140,10 @@ \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int + 1 0000 0000 \__fp_fixed_mul_add:Nwnnnwnnn - - ; #2 ; #1 ; #2 ; - - ; ; + \__fp_sep: #2 \__fp_sep: #1 \__fp_sep: #2 \__fp_sep: - + \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_fixed_mul_add:Nwnnnwnnn #1 #2; #3#4#5#6; #7#8#9 +\cs_new:Npn \__fp_fixed_mul_add:Nwnnnwnnn #1 #2\__fp_sep: #3#4#5#6\__fp_sep: #7#8#9 { #1 #7*#3 \exp_after:wN \__fp_pack_big:NNNNNNw @@ -19076,7 +19156,7 @@ \int_value:w \__fp_int_eval:w \c__fp_big_middle_shift_int #1 \__fp_fixed_mul_add:nnnnwnnnn {#7}{#8}{#9} } -\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnnn #1#2#3#4#5; #6#7#8#9 +\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnnn #1#2#3#4#5\__fp_sep: #6#7#8#9 { ( #1*#9 + #2*#8 + #3*#7 + #4*#6 ) \exp_after:wN \__fp_pack_big:NNNNNNw @@ -19084,10 +19164,10 @@ \__fp_fixed_mul_add:nnnnwnnwN { #6 + #4*#7 + #3*#8 + #2*#9 + #1 } { #7 + #4*#8 + #3*#9 + #2 } - {#1} #5; + {#1} #5\__fp_sep: {#6} } -\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnwN #1#2 #3#4#5; #6#7#8; #9 +\cs_new:Npn \__fp_fixed_mul_add:nnnnwnnwN #1#2 #3#4#5\__fp_sep: #6#7#8\__fp_sep: #9 { #9 (#4* #1 *#7) #9 (#5*#6+#4* #2 *#7+#3*#8) / \c__fp_myriad_int @@ -19095,29 +19175,30 @@ \cs_new:Npn \__fp_ep_to_fixed:wwn #1,#2 { \exp_after:wN \__fp_ep_to_fixed_auxi:www - \int_value:w \__fp_int_eval:w 1 0000 0000 + #2 \exp_after:wN ; + \int_value:w \__fp_int_eval:w 1 0000 0000 + #2 \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w - \prg_replicate:nn { 4 - \int_max:nn {#1} { -32 } } { 0 } ; + \prg_replicate:nn { 4 - \int_max:nn {#1} { -32 } } { 0 } \__fp_sep: } -\cs_new:Npn \__fp_ep_to_fixed_auxi:www 1#1; #2; #3#4#5#6#7; +\cs_new:Npn \__fp_ep_to_fixed_auxi:www + 1#1\__fp_sep: #2\__fp_sep: #3#4#5#6#7\__fp_sep: { \__fp_pack_eight:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN - \__fp_ep_to_fixed_auxii:nnnnnnnwn ; + \__fp_ep_to_fixed_auxii:nnnnnnnwn \__fp_sep: #2 #1#3#4#5#6#7 0000 ! } -\cs_new:Npn \__fp_ep_to_fixed_auxii:nnnnnnnwn #1#2#3#4#5#6#7; #8! #9 - { #9 {#1#2}{#3}{#4}{#5}{#6}{#7}; } -\cs_new:Npn \__fp_ep_to_ep:wwN #1,#2#3#4#5#6#7; #8 +\cs_new:Npn \__fp_ep_to_fixed_auxii:nnnnnnnwn #1#2#3#4#5#6#7\__fp_sep: #8! #9 + { #9 {#1#2}{#3}{#4}{#5}{#6}{#7}\__fp_sep: } +\cs_new:Npn \__fp_ep_to_ep:wwN #1,#2#3#4#5#6#7\__fp_sep: #8 { \exp_after:wN #8 \int_value:w \__fp_int_eval:w #1 + 4 \exp_after:wN \use_i:nn \exp_after:wN \__fp_ep_to_ep_loop:N \int_value:w \__fp_int_eval:w 1 0000 0000 + #2 \__fp_int_eval_end: - #3#4#5#6#7 ; ; ! + #3#4#5#6#7 \__fp_sep: \__fp_sep: ! } \cs_new:Npn \__fp_ep_to_ep_loop:N #1 { @@ -19129,27 +19210,29 @@ \__fp_ep_to_ep_loop:N } \cs_new:Npn \__fp_ep_to_ep_end:www - #1 \fi: \__fp_ep_to_ep_loop:N #2; #3! + #1 \fi: \__fp_ep_to_ep_loop:N #2\__fp_sep: #3! { \fi: - \if_meaning:w ; #1 + \if_meaning:w \__fp_sep: #1 - 2 * \c__fp_max_exponent_int \__fp_ep_to_ep_zero:ww \fi: \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN - \__fp_use_i:ww , ; - #1 #2 0000 0000 0000 0000 0000 0000 ; + \__fp_use_i:ww , \__fp_sep: + #1 #2 0000 0000 0000 0000 0000 0000 \__fp_sep: } -\cs_new:Npn \__fp_ep_to_ep_zero:ww \fi: #1; #2; #3; - { \fi: , {1000}{0000}{0000}{0000}{0000}{0000} ; } -\cs_new:Npn \__fp_ep_compare:wwww #1,#2#3#4#5#6#7; - { \__fp_ep_compare_aux:wwww {#1}{#2}{#3}{#4}{#5}; #6#7; } -\cs_new:Npn \__fp_ep_compare_aux:wwww #1;#2;#3,#4#5#6#7#8#9; +\cs_new:Npn \__fp_ep_to_ep_zero:ww \fi: #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: + { \fi: , {1000}{0000}{0000}{0000}{0000}{0000} \__fp_sep: } +\cs_new:Npn \__fp_ep_compare:wwww #1,#2#3#4#5#6#7\__fp_sep: + { \__fp_ep_compare_aux:wwww {#1}{#2}{#3}{#4}{#5}\__fp_sep: #6#7\__fp_sep: } +\cs_new:Npn \__fp_ep_compare_aux:wwww + #1\__fp_sep:#2\__fp_sep:#3,#4#5#6#7#8#9\__fp_sep: { \if_case:w - \__fp_compare_npos:nwnw #1; {#3}{#4}{#5}{#6}{#7}; \exp_stop_f: + \__fp_compare_npos:nwnw + #1\__fp_sep: {#3}{#4}{#5}{#6}{#7}\__fp_sep: \exp_stop_f: \if_int_compare:w #2 = #8#9 \exp_stop_f: 0 \else: @@ -19159,77 +19242,79 @@ \else: -1 \fi: } -\cs_new:Npn \__fp_ep_mul:wwwwn #1,#2; #3,#4; +\cs_new:Npn \__fp_ep_mul:wwwwn #1,#2\__fp_sep: #3,#4\__fp_sep: { - \__fp_ep_to_ep:wwN #3,#4; + \__fp_ep_to_ep:wwN #3,#4\__fp_sep: \__fp_fixed_continue:wn { - \__fp_ep_to_ep:wwN #1,#2; + \__fp_ep_to_ep:wwN #1,#2\__fp_sep: \__fp_ep_mul_raw:wwwwN } \__fp_fixed_continue:wn } -\cs_new:Npn \__fp_ep_mul_raw:wwwwN #1,#2; #3,#4; #5 +\cs_new:Npn \__fp_ep_mul_raw:wwwwN #1,#2\__fp_sep: #3,#4\__fp_sep: #5 { - \__fp_fixed_mul:wwn #2; #4; + \__fp_fixed_mul:wwn #2\__fp_sep: #4\__fp_sep: { \exp_after:wN #5 \int_value:w \__fp_int_eval:w #1 + #3 , } } -\cs_new:Npn \__fp_ep_div:wwwwn #1,#2; #3,#4; +\cs_new:Npn \__fp_ep_div:wwwwn #1,#2\__fp_sep: #3,#4\__fp_sep: { - \__fp_ep_to_ep:wwN #1,#2; + \__fp_ep_to_ep:wwN #1,#2\__fp_sep: \__fp_fixed_continue:wn { - \__fp_ep_to_ep:wwN #3,#4; + \__fp_ep_to_ep:wwN #3,#4\__fp_sep: \__fp_ep_div_esti:wwwwn } } -\cs_new:Npn \__fp_ep_div_esti:wwwwn #1,#2#3; #4, +\cs_new:Npn \__fp_ep_div_esti:wwwwn #1,#2#3\__fp_sep: #4, { \exp_after:wN \__fp_ep_div_estii:wwnnwwn \int_value:w \__fp_int_eval:w 10 0000 0000 / ( #2 + 1 ) - \exp_after:wN ; + \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w #4 - #1 + 1 , - {#2} #3; + {#2} #3\__fp_sep: } -\cs_new:Npn \__fp_ep_div_estii:wwnnwwn #1; #2,#3#4#5; #6; #7 +\cs_new:Npn \__fp_ep_div_estii:wwnnwwn + #1\__fp_sep: #2,#3#4#5\__fp_sep: #6\__fp_sep: #7 { \exp_after:wN \__fp_ep_div_estiii:NNNNNwwwn \int_value:w \__fp_int_eval:w 10 0000 0000 - 1750 - + #1 000 + (10 0000 0000 / #3 - #1) * (1000 - #4 / 10) ; - {#3}{#4}#5; #6; { #7 #2, } + + #1 000 + (10 0000 0000 / #3 - #1) * (1000 - #4 / 10) \__fp_sep: + {#3}{#4}#5\__fp_sep: #6\__fp_sep: { #7 #2, } } -\cs_new:Npn \__fp_ep_div_estiii:NNNNNwwwn 1#1#2#3#4#5#6; #7; +\cs_new:Npn \__fp_ep_div_estiii:NNNNNwwwn 1#1#2#3#4#5#6\__fp_sep: #7\__fp_sep: { - \__fp_fixed_mul_short:wwn #7; {#1}{#2#3#4#5}{#6}; + \__fp_fixed_mul_short:wwn #7\__fp_sep: {#1}{#2#3#4#5}{#6}\__fp_sep: \__fp_ep_div_epsi:wnNNNNNn {#1#2#3#4}#5#6 \__fp_fixed_mul:wwn } -\cs_new:Npn \__fp_ep_div_epsi:wnNNNNNn #1#2#3#4#5#6; +\cs_new:Npn \__fp_ep_div_epsi:wnNNNNNn #1#2#3#4#5#6\__fp_sep: { \exp_after:wN \__fp_ep_div_epsii:wwnNNNNNn \int_value:w \__fp_int_eval:w 1 9998 - #2 \exp_after:wN \__fp_ep_div_eps_pack:NNNNNw \int_value:w \__fp_int_eval:w 1 9999 9998 - #3#4 \exp_after:wN \__fp_ep_div_eps_pack:NNNNNw - \int_value:w \__fp_int_eval:w 2 0000 0000 - #5#6 ; ; + \int_value:w \__fp_int_eval:w 2 0000 0000 - #5#6 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_ep_div_eps_pack:NNNNNw #1#2#3#4#5#6; - { + #1 ; {#2#3#4#5} {#6} } -\cs_new:Npn \__fp_ep_div_epsii:wwnNNNNNn 1#1; #2; #3#4#5#6#7#8 +\cs_new:Npn \__fp_ep_div_eps_pack:NNNNNw #1#2#3#4#5#6\__fp_sep: + { + #1 \__fp_sep: {#2#3#4#5} {#6} } +\cs_new:Npn \__fp_ep_div_epsii:wwnNNNNNn 1#1\__fp_sep: #2\__fp_sep: #3#4#5#6#7#8 { - \__fp_fixed_mul:wwn {0000}{#1}#2; {0000}{#1}#2; + \__fp_fixed_mul:wwn {0000}{#1}#2\__fp_sep: {0000}{#1}#2\__fp_sep: \__fp_fixed_add_one:wN - \__fp_fixed_mul:wwn {10000} {#1} #2 ; + \__fp_fixed_mul:wwn {10000} {#1} #2 \__fp_sep: { - \__fp_fixed_mul_short:wwn {0000}{#1}#2; {#3}{#4#5#6#7}{#8000}; + \__fp_fixed_mul_short:wwn + {0000}{#1}#2\__fp_sep: {#3}{#4#5#6#7}{#8000}\__fp_sep: \__fp_fixed_div_myriad:wn \__fp_fixed_mul:wwn } - \__fp_fixed_add:wwn {#3}{#4#5#6#7}{#8000}{0000}{0000}{0000}; + \__fp_fixed_add:wwn {#3}{#4#5#6#7}{#8000}{0000}{0000}{0000}\__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt:wwn #1,#2; +\cs_new:Npn \__fp_ep_isqrt:wwn #1,#2\__fp_sep: { - \__fp_ep_to_ep:wwN #1,#2; + \__fp_ep_to_ep:wwN #1,#2\__fp_sep: \__fp_ep_isqrt_auxi:wwn } \cs_new:Npn \__fp_ep_isqrt_auxi:wwn #1, @@ -19240,10 +19325,10 @@ { (1 - #1) / 2 , 535 , { 0 } { } } { 1 - #1 / 2 , 168 , { } { 0 } } } -\cs_new:Npn \__fp_ep_isqrt_auxii:wwnnnwn #1, #2, #3#4 #5#6; #7 +\cs_new:Npn \__fp_ep_isqrt_auxii:wwnnnwn #1, #2, #3#4 #5#6\__fp_sep: #7 { \__fp_ep_isqrt_esti:wwwnnwn #2, 0, #5, {#3} {#4} - {#5} #6 ; { #7 #1 , } + {#5} #6 \__fp_sep: { #7 #1 , } } \cs_new:Npn \__fp_ep_isqrt_esti:wwwnnwn #1, #2, #3, #4 { @@ -19259,45 +19344,47 @@ { \exp_after:wN \__fp_ep_isqrt_estiii:NNNNNwwwn \int_value:w \__fp_int_eval:w 1000 0000 + #2 * #2 #5 * 5 - \exp_after:wN , \int_value:w \__fp_int_eval:w 10000 + #2 ; + \exp_after:wN , \int_value:w \__fp_int_eval:w 10000 + #2 \__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt_estiii:NNNNNwwwn 1#1#2#3#4#5#6, 1#7#8; #9; +\cs_new:Npn \__fp_ep_isqrt_estiii:NNNNNwwwn + 1#1#2#3#4#5#6, 1#7#8\__fp_sep: #9\__fp_sep: { - \__fp_fixed_mul_short:wwn #9; {#1} {#2#3#4#5} {#600} ; + \__fp_fixed_mul_short:wwn #9\__fp_sep: {#1} {#2#3#4#5} {#600} \__fp_sep: \__fp_ep_isqrt_epsi:wN - \__fp_fixed_mul_short:wwn {#7} {#80} {0000} ; + \__fp_fixed_mul_short:wwn {#7} {#80} {0000} \__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt_epsi:wN #1; +\cs_new:Npn \__fp_ep_isqrt_epsi:wN #1\__fp_sep: { - \__fp_fixed_sub:wwn {15000}{0000}{0000}{0000}{0000}{0000}; #1; - \__fp_ep_isqrt_epsii:wwN #1; - \__fp_ep_isqrt_epsii:wwN #1; - \__fp_ep_isqrt_epsii:wwN #1; + \__fp_fixed_sub:wwn {15000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1\__fp_sep: + \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: + \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: + \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: } -\cs_new:Npn \__fp_ep_isqrt_epsii:wwN #1; #2; +\cs_new:Npn \__fp_ep_isqrt_epsii:wwN #1\__fp_sep: #2\__fp_sep: { - \__fp_fixed_mul:wwn #1; #1; - \__fp_fixed_mul_sub_back:wwwn #2; - {15000}{0000}{0000}{0000}{0000}{0000}; - \__fp_fixed_mul:wwn #1; + \__fp_fixed_mul:wwn #1\__fp_sep: #1\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #2\__fp_sep: + {15000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + \__fp_fixed_mul:wwn #1\__fp_sep: } \cs_new:Npn \__fp_ep_to_float_o:wwN #1, { + \__fp_int_eval:w #1 \__fp_fixed_to_float_o:wN } -\cs_new:Npn \__fp_ep_inv_to_float_o:wwN #1,#2; +\cs_new:Npn \__fp_ep_inv_to_float_o:wwN #1,#2\__fp_sep: { - \__fp_ep_div:wwwwn 1,{1000}{0000}{0000}{0000}{0000}{0000}; #1,#2; + \__fp_ep_div:wwwwn + 1,{1000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1,#2\__fp_sep: \__fp_ep_to_float_o:wwN } \cs_new:Npn \__fp_fixed_inv_to_float_o:wN { \__fp_ep_inv_to_float_o:wwN 0, } -\cs_new:Npn \__fp_fixed_to_float_rad_o:wN #1; +\cs_new:Npn \__fp_fixed_to_float_rad_o:wN #1\__fp_sep: { - \__fp_fixed_mul:wwn #1; {5729}{5779}{5130}{8232}{0876}{7981}; + \__fp_fixed_mul:wwn #1\__fp_sep: {5729}{5779}{5130}{8232}{0876}{7981}\__fp_sep: { \__fp_ep_to_float_o:wwN 2, } } -\cs_new:Npn \__fp_fixed_to_float_o:Nw #1#2; - { \__fp_fixed_to_float_o:wN #2; #1 } -\cs_new:Npn \__fp_fixed_to_float_o:wN #1#2#3#4#5#6; #7 +\cs_new:Npn \__fp_fixed_to_float_o:Nw #1#2\__fp_sep: + { \__fp_fixed_to_float_o:wN #2\__fp_sep: #1 } +\cs_new:Npn \__fp_fixed_to_float_o:wN #1#2#3#4#5#6\__fp_sep: #7 { % for the 8-digit-at-the-start thing + \__fp_int_eval:w \c__fp_block_int \exp_after:wN \exp_after:wN @@ -19308,8 +19395,8 @@ \int_value:w 1#2 \exp_after:wN \__fp_use_none_stop_f:n \int_value:w 1#3#4 \exp_after:wN \__fp_use_none_stop_f:n \int_value:w 1#5#6 - \exp_after:wN ; - \exp_after:wN ; + \exp_after:wN \__fp_sep: + \exp_after:wN \__fp_sep: } \cs_new:Npn \__fp_fixed_to_loop:N #1 { @@ -19321,36 +19408,36 @@ \exp_after:wN #1 \fi: } -\cs_new:Npn \__fp_fixed_to_loop_end:w #1 #2 ; +\cs_new:Npn \__fp_fixed_to_loop_end:w #1 #2 \__fp_sep: { - \if_meaning:w ; #1 + \if_meaning:w \__fp_sep: #1 \exp_after:wN \__fp_fixed_to_float_zero:w \else: \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_fixed_to_float_pack:ww - \exp_after:wN ; + \exp_after:wN \__fp_sep: \fi: - #1 #2 0000 0000 0000 0000 ; + #1 #2 0000 0000 0000 0000 \__fp_sep: } -\cs_new:Npn \__fp_fixed_to_float_zero:w ; 0000 0000 0000 0000 ; +\cs_new:Npn \__fp_fixed_to_float_zero:w \__fp_sep: 0000 0000 0000 0000 \__fp_sep: { - - 2 * \c__fp_max_exponent_int ; - {0000} {0000} {0000} {0000} ; + - 2 * \c__fp_max_exponent_int \__fp_sep: + {0000} {0000} {0000} {0000} \__fp_sep: } -\cs_new:Npn \__fp_fixed_to_float_pack:ww #1 ; #2#3 ; ; +\cs_new:Npn \__fp_fixed_to_float_pack:ww #1 \__fp_sep: #2#3 \__fp_sep: \__fp_sep: { \if_int_compare:w #2 > 4 \exp_stop_f: \exp_after:wN \__fp_fixed_to_float_round_up:wnnnnw \fi: - ; #1 ; + \__fp_sep: #1 \__fp_sep: } -\cs_new:Npn \__fp_fixed_to_float_round_up:wnnnnw ; #1#2#3#4 ; +\cs_new:Npn \__fp_fixed_to_float_round_up:wnnnnw \__fp_sep: #1#2#3#4 \__fp_sep: { \exp_after:wN \__fp_basics_pack_high:NNNNNw \int_value:w \__fp_int_eval:w 1 #1#2 \exp_after:wN \__fp_basics_pack_low:NNNNNw - \int_value:w \__fp_int_eval:w 1 #3#4 + 1 ; + \int_value:w \__fp_int_eval:w 1 #3#4 + 1 \__fp_sep: } %% File: l3fp-expo.dtx \cs_new:Npn \__fp_parse_word_exp:N @@ -19359,16 +19446,25 @@ { \__fp_parse_unary_function:NNN \__fp_ln_o:w ? } \cs_new:Npn \__fp_parse_word_fact:N { \__fp_parse_unary_function:NNN \__fp_fact_o:w ? } -\tl_const:Nn \c__fp_ln_i_fixed_tl { {0000}{0000}{0000}{0000}{0000}{0000};} -\tl_const:Nn \c__fp_ln_ii_fixed_tl { {6931}{4718}{0559}{9453}{0941}{7232};} -\tl_const:Nn \c__fp_ln_iii_fixed_tl {{10986}{1228}{8668}{1096}{9139}{5245};} -\tl_const:Nn \c__fp_ln_iv_fixed_tl {{13862}{9436}{1119}{8906}{1883}{4464};} -\tl_const:Nn \c__fp_ln_vi_fixed_tl {{17917}{5946}{9228}{0550}{0081}{2477};} -\tl_const:Nn \c__fp_ln_vii_fixed_tl {{19459}{1014}{9055}{3133}{0510}{5353};} -\tl_const:Nn \c__fp_ln_viii_fixed_tl{{20794}{4154}{1679}{8359}{2825}{1696};} -\tl_const:Nn \c__fp_ln_ix_fixed_tl {{21972}{2457}{7336}{2193}{8279}{0490};} -\tl_const:Nn \c__fp_ln_x_fixed_tl {{23025}{8509}{2994}{0456}{8401}{7991};} -\cs_new:Npn \__fp_ln_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\tl_const:Nn \c__fp_ln_i_fixed_tl + { {0000}{0000}{0000}{0000}{0000}{0000}\__fp_sep:} +\tl_const:Nn \c__fp_ln_ii_fixed_tl + { {6931}{4718}{0559}{9453}{0941}{7232}\__fp_sep:} +\tl_const:Nn \c__fp_ln_iii_fixed_tl + {{10986}{1228}{8668}{1096}{9139}{5245}\__fp_sep:} +\tl_const:Nn \c__fp_ln_iv_fixed_tl + {{13862}{9436}{1119}{8906}{1883}{4464}\__fp_sep:} +\tl_const:Nn \c__fp_ln_vi_fixed_tl + {{17917}{5946}{9228}{0550}{0081}{2477}\__fp_sep:} +\tl_const:Nn \c__fp_ln_vii_fixed_tl + {{19459}{1014}{9055}{3133}{0510}{5353}\__fp_sep:} +\tl_const:Nn \c__fp_ln_viii_fixed_tl + {{20794}{4154}{1679}{8359}{2825}{1696}\__fp_sep:} +\tl_const:Nn \c__fp_ln_ix_fixed_tl + {{21972}{2457}{7336}{2193}{8279}{0490}\__fp_sep:} +\tl_const:Nn \c__fp_ln_x_fixed_tl + {{23025}{8509}{2994}{0456}{8401}{7991}\__fp_sep:} +\cs_new:Npn \__fp_ln_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_meaning:w 2 #3 \__fp_case_use:nw { \__fp_invalid_operation_o:nw { ln } } @@ -19380,9 +19476,9 @@ \else: \__fp_case_return_same_o:w \fi: - \__fp_ln_npos_o:w \s__fp \__fp_chk:w #2#3#4; + \__fp_ln_npos_o:w \s__fp \__fp_chk:w #2#3#4\__fp_sep: } -\cs_new:Npn \__fp_ln_npos_o:w \s__fp \__fp_chk:w 10#1#2#3; +\cs_new:Npn \__fp_ln_npos_o:w \s__fp \__fp_chk:w 10#1#2#3\__fp_sep: { %^^A todo: ln(1) should be "exact zero", not "underflow" \exp_after:wN \__fp_sanitize:Nw \int_value:w % for the overall sign @@ -19414,9 +19510,9 @@ \or: 2 \else: 1 \fi: - ; { #1 #2 #3 #4 } + \__fp_sep: { #1 #2 #3 #4 } } -\cs_new:Npn \__fp_ln_x_ii:wnnnn #1; #2#3#4#5 +\cs_new:Npn \__fp_ln_x_ii:wnnnn #1\__fp_sep: #2#3#4#5 { \exp_after:wN \__fp_ln_div_after:Nw \cs:w c__fp_ln_ \__fp_int_to_roman:w #1 _fixed_tl \exp_after:wN \cs_end: @@ -19426,22 +19522,22 @@ \exp_after:wN \__fp_ln_x_iii_var:NNNNNw \int_value:w \__fp_int_eval:w 9999 9990 + #1*#2#3 + \exp_after:wN \__fp_ln_x_iii:NNNNNNw - \int_value:w \__fp_int_eval:w 10 0000 0000 + #1*#4#5 ; + \int_value:w \__fp_int_eval:w 10 0000 0000 + #1*#4#5 \__fp_sep: {20000} {0000} {0000} {0000} } %^^A todo: reoptimize (a generalization attempt failed). -\cs_new:Npn \__fp_ln_x_iii:NNNNNNw #1#2 #3#4#5#6 #7; - { #1#2; {#3#4#5#6} {#7} } -\cs_new:Npn \__fp_ln_x_iii_var:NNNNNw #1 #2#3#4#5 #6; +\cs_new:Npn \__fp_ln_x_iii:NNNNNNw #1#2 #3#4#5#6 #7\__fp_sep: + { #1#2\__fp_sep: {#3#4#5#6} {#7} } +\cs_new:Npn \__fp_ln_x_iii_var:NNNNNw #1 #2#3#4#5 #6\__fp_sep: { - #1#2#3#4#5 + 1 ; + #1#2#3#4#5 + 1 \__fp_sep: {#1#2#3#4#5} {#6} } -\cs_new:Npn \__fp_ln_x_iv:wnnnnnnnn #1; #2#3#4#5 #6#7#8#9 +\cs_new:Npn \__fp_ln_x_iv:wnnnnnnnn #1\__fp_sep: #2#3#4#5 #6#7#8#9 { \exp_after:wN \__fp_div_significand_pack:NNN \int_value:w \__fp_int_eval:w - \__fp_ln_div_i:w #1 ; - #6 #7 ; {#8} {#9} + \__fp_ln_div_i:w #1 \__fp_sep: + #6 #7 \__fp_sep: {#8} {#9} {#2} {#3} {#4} {#5} { \exp_after:wN \__fp_ln_div_ii:wwn \int_value:w #1 } { \exp_after:wN \__fp_ln_div_ii:wwn \int_value:w #1 } @@ -19449,25 +19545,27 @@ { \exp_after:wN \__fp_ln_div_ii:wwn \int_value:w #1 } { \exp_after:wN \__fp_ln_div_vi:wwn \int_value:w #1 } } -\cs_new:Npn \__fp_ln_div_i:w #1; +\cs_new:Npn \__fp_ln_div_i:w #1\__fp_sep: { \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + 2 0000 0000 / #1 ; % Q1 + \int_value:w \__fp_int_eval:w 999999 + 2 0000 0000 / #1 \__fp_sep: % Q1 } -\cs_new:Npn \__fp_ln_div_ii:wwn #1; #2;#3 % y; B1;B2 <- for k=1 +\cs_new:Npn \__fp_ln_div_ii:wwn + #1\__fp_sep: #2\__fp_sep:#3 % y\__fp_sep: B1\__fp_sep:B2 <- for k=1 { \exp_after:wN \__fp_div_significand_pack:NNN \int_value:w \__fp_int_eval:w \exp_after:wN \__fp_div_significand_calc:wwnnnnnnn - \int_value:w \__fp_int_eval:w 999999 + #2 #3 / #1 ; % Q2 - #2 #3 ; + \int_value:w \__fp_int_eval:w 999999 + #2 #3 / #1 \__fp_sep: % Q2 + #2 #3 \__fp_sep: } -\cs_new:Npn \__fp_ln_div_vi:wwn #1; #2;#3#4#5 #6#7#8#9 %y;F1;F2F3F4x1x2x3x4 +\cs_new:Npn \__fp_ln_div_vi:wwn + #1\__fp_sep: #2\__fp_sep:#3#4#5 #6#7#8#9 %y\__fp_sep:F1\__fp_sep:F2F3F4x1x2x3x4 { \exp_after:wN \__fp_div_significand_pack:NNN - \int_value:w \__fp_int_eval:w 1000000 + #2 #3 / #1 ; % Q6 + \int_value:w \__fp_int_eval:w 1000000 + #2 #3 / #1 \__fp_sep: % Q6 } -\cs_new:Npn \__fp_ln_div_after:Nw #1#2; +\cs_new:Npn \__fp_ln_div_after:Nw #1#2\__fp_sep: { \if_meaning:w 0 #2 \exp_after:wN \__fp_ln_t_small:Nw @@ -19477,19 +19575,22 @@ \fi: #1 } -\cs_new:Npn \__fp_ln_t_small:Nw #1 #2; #3; #4; #5; #6; #7; +\cs_new:Npn \__fp_ln_t_small:Nw + #1 #2\__fp_sep: #3\__fp_sep: #4\__fp_sep: #5\__fp_sep: #6\__fp_sep: #7\__fp_sep: { \exp_after:wN \__fp_ln_t_large:NNw \exp_after:wN + % \exp_after:wN #1 - \int_value:w \__fp_int_eval:w 9999 - #2 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #3 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #4 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #5 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 9999 - #6 \exp_after:wN ; - \int_value:w \__fp_int_eval:w 1 0000 - #7 ; - } -\cs_new:Npn \__fp_ln_t_large:NNw #1 #2 #3; #4; #5; #6; #7; #8; + \int_value:w \__fp_int_eval:w 9999 - #2 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #3 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #4 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #5 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 9999 - #6 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w 1 0000 - #7 \__fp_sep: + } +\cs_new:Npn \__fp_ln_t_large:NNw + #1 #2 + #3\__fp_sep: #4\__fp_sep: #5\__fp_sep: #6\__fp_sep: #7\__fp_sep: #8\__fp_sep: { \exp_after:wN \__fp_ln_square_t_after:w \int_value:w \__fp_int_eval:w 9999 0000 + #3*#3 @@ -19503,7 +19604,7 @@ \int_value:w \__fp_int_eval:w 1 0000 0000 + 2*#3*#7 + 2*#4*#6 + #5*#5 + (2*#3*#8 + 2*#4*#7 + 2*#5*#6) / 1 0000 - % ; ; ; + % \__fp_sep: \__fp_sep: \__fp_sep: \exp_after:wN \__fp_ln_twice_t_after:w \int_value:w \__fp_int_eval:w -1 + 2*#3 \exp_after:wN \__fp_ln_twice_t_pack:Nw @@ -19515,48 +19616,53 @@ \exp_after:wN \__fp_ln_twice_t_pack:Nw \int_value:w \__fp_int_eval:w 9999 + 2*#7 \exp_after:wN \__fp_ln_twice_t_pack:Nw - \int_value:w \__fp_int_eval:w 10000 + 2*#8 ; ; + \int_value:w \__fp_int_eval:w 10000 + 2*#8 \__fp_sep: \__fp_sep: { \__fp_ln_c:NwNw #1 } #2 } -\cs_new:Npn \__fp_ln_twice_t_pack:Nw #1 #2; { + #1 ; {#2} } -\cs_new:Npn \__fp_ln_twice_t_after:w #1; { ;;; {#1} } -\cs_new:Npn \__fp_ln_square_t_pack:NNNNNw #1 #2#3#4#5 #6; - { + #1#2#3#4#5 ; {#6} } -\cs_new:Npn \__fp_ln_square_t_after:w 1 0 #1#2#3 #4; +\cs_new:Npn \__fp_ln_twice_t_pack:Nw #1 #2\__fp_sep: { + #1 \__fp_sep: {#2} } +\cs_new:Npn \__fp_ln_twice_t_after:w #1\__fp_sep: + { \__fp_sep:\__fp_sep:\__fp_sep: {#1} } +\cs_new:Npn \__fp_ln_square_t_pack:NNNNNw #1 #2#3#4#5 #6\__fp_sep: + { + #1#2#3#4#5 \__fp_sep: {#6} } +\cs_new:Npn \__fp_ln_square_t_after:w 1 0 #1#2#3 #4\__fp_sep: { \__fp_ln_Taylor:wwNw {0#1#2#3} {#4} } \cs_new:Npn \__fp_ln_Taylor:wwNw - { \__fp_ln_Taylor_loop:www 21 ; {0000}{0000}{0000}{0000}{0000}{0000} ; } -\cs_new:Npn \__fp_ln_Taylor_loop:www #1; #2; #3; + { + \__fp_ln_Taylor_loop:www + 21 \__fp_sep: {0000}{0000}{0000}{0000}{0000}{0000} \__fp_sep: + } +\cs_new:Npn \__fp_ln_Taylor_loop:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \if_int_compare:w #1 = \c_one_int \__fp_ln_Taylor_break:w \fi: - \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1; - \__fp_fixed_add:wwn #2; - \__fp_fixed_mul:wwn #3; + \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1\__fp_sep: + \__fp_fixed_add:wwn #2\__fp_sep: + \__fp_fixed_mul:wwn #3\__fp_sep: { \exp_after:wN \__fp_ln_Taylor_loop:www - \int_value:w \__fp_int_eval:w #1 - 2 ; + \int_value:w \__fp_int_eval:w #1 - 2 \__fp_sep: } - #3; + #3\__fp_sep: } -\cs_new:Npn \__fp_ln_Taylor_break:w \fi: #1 \__fp_fixed_add:wwn #2#3; #4 ;; +\cs_new:Npn \__fp_ln_Taylor_break:w + \fi: #1 \__fp_fixed_add:wwn #2#3\__fp_sep: #4 \__fp_sep:\__fp_sep: { \fi: \exp_after:wN \__fp_fixed_mul:wwn - \exp_after:wN { \int_value:w \__fp_int_eval:w 10000 + #2 } #3; + \exp_after:wN { \int_value:w \__fp_int_eval:w 10000 + #2 } #3\__fp_sep: } -\cs_new:Npn \__fp_ln_c:NwNw #1 #2; #3 +\cs_new:Npn \__fp_ln_c:NwNw #1 #2\__fp_sep: #3 { \if_meaning:w + #1 \exp_after:wN \exp_after:wN \exp_after:wN \__fp_fixed_sub:wwn \else: \exp_after:wN \exp_after:wN \exp_after:wN \__fp_fixed_add:wwn \fi: - #3 #2 ; + #3 #2 \__fp_sep: } -\cs_new:Npn \__fp_ln_exponent:wn #1; #2 +\cs_new:Npn \__fp_ln_exponent:wn #1\__fp_sep: #2 { \if_case:w #2 \exp_stop_f: 0 \__fp_case_return:nw { \__fp_fixed_to_float_o:Nw 2 } @@ -19573,25 +19679,25 @@ \exp_after:wN \__fp_fixed_add:wwn \int_value:w - \fi: \fi: - #2; #1; + #2\__fp_sep: #1\__fp_sep: } -\cs_new:Npn \__fp_ln_exponent_one:ww 1; #1; +\cs_new:Npn \__fp_ln_exponent_one:ww 1\__fp_sep: #1\__fp_sep: { 0 - \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl #1; + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl #1\__fp_sep: \__fp_fixed_to_float_o:wN 0 } -\cs_new:Npn \__fp_ln_exponent_small:NNww #1#2#3; #4#5#6#7#8#9; +\cs_new:Npn \__fp_ln_exponent_small:NNww #1#2#3\__fp_sep: #4#5#6#7#8#9\__fp_sep: { 4 \exp_after:wN \__fp_fixed_mul:wwn \c__fp_ln_x_fixed_tl - {#3}{0000}{0000}{0000}{0000}{0000} ; + {#3}{0000}{0000}{0000}{0000}{0000} \__fp_sep: #2 - {0000}{#4}{#5}{#6}{#7}{#8}; + {0000}{#4}{#5}{#6}{#7}{#8}\__fp_sep: \__fp_fixed_to_float_o:wN #1 } -\cs_new:Npn \__fp_exp_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_exp_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -19608,7 +19714,7 @@ \or: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2#3#4; + \s__fp \__fp_chk:w #2#3#4\__fp_sep: } \cs_new:Npn \__fp_exp_normal_o:w \s__fp \__fp_chk:w 1#1 { @@ -19618,7 +19724,7 @@ \__fp_exp_pos_o:NNwnw - \__fp_fixed_inv_to_float_o:wN \fi: } -\cs_new:Npn \__fp_exp_pos_o:NNwnw #1#2#3 \fi: #4#5; +\cs_new:Npn \__fp_exp_pos_o:NNwnw #1#2#3 \fi: #4#5\__fp_sep: { \fi: \if_int_compare:w #4 > \c__fp_max_exp_exponent_int @@ -19657,33 +19763,33 @@ \exp_after:wN #1 \exp_after:wN #2 } -\cs_new:Npn \__fp_exp_Taylor:Nnnwn #1#2#3 #4; #5 #6 +\cs_new:Npn \__fp_exp_Taylor:Nnnwn #1#2#3 #4\__fp_sep: #5 #6 { #6 \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_exp_Taylor_ii:ww - ; #2#3#4 0000 0000 ; + \__fp_sep: #2#3#4 0000 0000 \__fp_sep: } -\cs_new:Npn \__fp_exp_Taylor_ii:ww #1; #2; - { \__fp_exp_Taylor_loop:www 10 ; #1 ; #1 ; \s__fp_stop } -\cs_new:Npn \__fp_exp_Taylor_loop:www #1; #2; #3; +\cs_new:Npn \__fp_exp_Taylor_ii:ww #1\__fp_sep: #2\__fp_sep: + { \__fp_exp_Taylor_loop:www 10 \__fp_sep: #1 \__fp_sep: #1 \__fp_sep: \s__fp_stop } +\cs_new:Npn \__fp_exp_Taylor_loop:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \if_int_compare:w #1 = \c_one_int \exp_after:wN \__fp_exp_Taylor_break:Nww \fi: - \__fp_fixed_div_int:wwN #3 ; #1 ; + \__fp_fixed_div_int:wwN #3 \__fp_sep: #1 \__fp_sep: \__fp_fixed_add_one:wN - \__fp_fixed_mul:wwn #2 ; + \__fp_fixed_mul:wwn #2 \__fp_sep: { \exp_after:wN \__fp_exp_Taylor_loop:www - \int_value:w \__fp_int_eval:w #1 - 1 ; - #2 ; + \int_value:w \__fp_int_eval:w #1 - 1 \__fp_sep: + #2 \__fp_sep: } } -\cs_new:Npn \__fp_exp_Taylor_break:Nww #1 #2; #3 \s__fp_stop - { \__fp_fixed_add_one:wN #2 ; } +\cs_new:Npn \__fp_exp_Taylor_break:Nww #1 #2\__fp_sep: #3 \s__fp_stop + { \__fp_fixed_add_one:wN #2 \__fp_sep: } \intarray_const_from_clist:Nn \c__fp_exp_intarray { 1 , 1 1105 1709 , 1 1807 5647 , 1 6248 1171 , @@ -19741,23 +19847,23 @@ 34744 , 1 3618 6973 , 1 3140 0875 , 1 3856 4102 , 39087 , 1 3186 9209 , 1 6113 3900 , 1 6705 9685 , } -\cs_new:Npn \__fp_exp_pos_large:NnnNwn #1#2#3 #4#5; #6 +\cs_new:Npn \__fp_exp_pos_large:NnnNwn #1#2#3 #4#5\__fp_sep: #6 { \exp_after:wN \exp_after:wN \exp_after:wN \__fp_exp_large:NwN \exp_after:wN \exp_after:wN \exp_after:wN #6 \exp_after:wN \c__fp_one_fixed_tl \int_value:w #3 #4 \exp_stop_f: - #5 00000 ; + #5 00000 \__fp_sep: } -\cs_new:Npn \__fp_exp_large:NwN #1#2; #3 +\cs_new:Npn \__fp_exp_large:NwN #1#2\__fp_sep: #3 { \if_case:w #3 ~ \exp_after:wN \__fp_fixed_continue:wn \else: \exp_after:wN \__fp_exp_intarray:w - \int_value:w \__fp_int_eval:w 36 * #1 + 4 * #3 \exp_after:wN ; + \int_value:w \__fp_int_eval:w 36 * #1 + 4 * #3 \exp_after:wN \__fp_sep: \fi: - #2; + #2\__fp_sep: { \if_meaning:w 0 #1 \exp_after:wN \__fp_exp_large_after:wwn @@ -19767,7 +19873,7 @@ \fi: } } -\cs_new:Npn \__fp_exp_intarray:w #1 ; +\cs_new:Npn \__fp_exp_intarray:w #1 \__fp_sep: { + \__kernel_intarray_item:Nn \c__fp_exp_intarray @@ -19782,16 +19888,18 @@ \int_value:w \__kernel_intarray_item:Nn \c__fp_exp_intarray { \__fp_int_eval:w #1 - 1 } \exp_after:wN \__fp_exp_intarray_aux:w - \int_value:w \__kernel_intarray_item:Nn \c__fp_exp_intarray {#1} ; ; + \int_value:w \__kernel_intarray_item:Nn + \c__fp_exp_intarray {#1} \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_exp_intarray_aux:w 1 #1#2#3#4#5 ; { ; {#1#2#3#4} {#5} } -\cs_new:Npn \__fp_exp_large_after:wwn #1; #2; #3 +\cs_new:Npn \__fp_exp_intarray_aux:w 1 #1#2#3#4#5 \__fp_sep: + { \__fp_sep: {#1#2#3#4} {#5} } +\cs_new:Npn \__fp_exp_large_after:wwn #1\__fp_sep: #2\__fp_sep: #3 { - \__fp_exp_Taylor:Nnnwn ? { } { } 0 #2; {} #3 - \__fp_fixed_mul:wwn #1; + \__fp_exp_Taylor:Nnnwn ? { } { } 0 #2\__fp_sep: {} #3 + \__fp_fixed_mul:wwn #1\__fp_sep: } \cs_new:cpn { __fp_ \iow_char:N \^ _o:ww } - \s__fp \__fp_chk:w #1#2#3; \s__fp \__fp_chk:w #4#5#6; + \s__fp \__fp_chk:w #1#2#3\__fp_sep: \s__fp \__fp_chk:w #4#5#6\__fp_sep: { \if_meaning:w 0 #4 \__fp_case_return_o:Nw \c_one_fp @@ -19810,13 +19918,13 @@ \else: \exp_after:wN \__fp_pow_zero_or_inf:ww \fi: - \s__fp \__fp_chk:w #1#2#3; + \s__fp \__fp_chk:w #1#2#3\__fp_sep: } - { \s__fp \__fp_chk:w #4#5#6; \s__fp \__fp_chk:w #1#2#3; } - \s__fp \__fp_chk:w #4#5#6; + { \s__fp \__fp_chk:w #4#5#6\__fp_sep: \s__fp \__fp_chk:w #1#2#3\__fp_sep: } + \s__fp \__fp_chk:w #4#5#6\__fp_sep: } \cs_new:Npn \__fp_pow_zero_or_inf:ww - \s__fp \__fp_chk:w #1#2; \s__fp \__fp_chk:w #3#4 + \s__fp \__fp_chk:w #1#2\__fp_sep: \s__fp \__fp_chk:w #3#4 { \if_meaning:w 1 #4 \__fp_case_return_same_o:w @@ -19833,13 +19941,13 @@ \__fp_case_use:nw { \__fp_division_by_zero_o:NNww \c_inf_fp ^ - \s__fp \__fp_chk:w #1 #2 ; + \s__fp \__fp_chk:w #1 #2 \__fp_sep: } \fi: \s__fp \__fp_chk:w #3#4 } \cs_new:Npn \__fp_pow_normal_o:ww - \s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5 + \s__fp \__fp_chk:w 1 #1#2#3\__fp_sep: \s__fp \__fp_chk:w #4#5 { \if:w 0 \__fp_str_if_eq:nn { #2 #3 } { 1 {1000} {0000} {0000} {0000} } \if_int_compare:w #4 #1 = 32 \exp_stop_f: @@ -19863,7 +19971,7 @@ \or: \__fp_case_return_ii_o:ww \fi: - \s__fp \__fp_chk:w 1 #1 {#2} #3 ; + \s__fp \__fp_chk:w 1 #1 {#2} #3 \__fp_sep: \s__fp \__fp_chk:w #4 #5 } \cs_new:Npn \__fp_pow_npos_o:Nww #1 \s__fp \__fp_chk:w 1#2#3 @@ -19882,17 +19990,18 @@ \fi: {#3} } -\cs_new:Npn \__fp_pow_npos_aux:NNnww #1#2#3#4#5; \s__fp \__fp_chk:w 1#6#7#8; +\cs_new:Npn \__fp_pow_npos_aux:NNnww + #1#2#3#4#5\__fp_sep: \s__fp \__fp_chk:w 1#6#7#8\__fp_sep: { #1 \__fp_int_eval:w \__fp_ln_significand:NNNNnnnN #4#5 \__fp_pow_exponent:wnN {#3} - \__fp_fixed_mul:wwn #8 {0000}{0000} ; - \__fp_pow_B:wwN #7; + \__fp_fixed_mul:wwn #8 {0000}{0000} \__fp_sep: + \__fp_pow_B:wwN #7\__fp_sep: #1 #2 0 % fixed_to_float_o:wN } -\cs_new:Npn \__fp_pow_exponent:wnN #1; #2 +\cs_new:Npn \__fp_pow_exponent:wnN #1\__fp_sep: #2 { \if_int_compare:w #2 > \c_zero_int \exp_after:wN \__fp_pow_exponent:Nwnnnnnw % n\ln(10) - (-\ln(x)) @@ -19901,9 +20010,9 @@ \exp_after:wN \__fp_pow_exponent:Nwnnnnnw % -(|n|\ln(10) + (-\ln(x))) \exp_after:wN - \fi: - #2; #1; + #2\__fp_sep: #1\__fp_sep: } -\cs_new:Npn \__fp_pow_exponent:Nwnnnnnw #1#2; #3#4#5#6#7#8; +\cs_new:Npn \__fp_pow_exponent:Nwnnnnnw #1#2\__fp_sep: #3#4#5#6#7#8\__fp_sep: { %^^A todo: use that in ln. \exp_after:wN \__fp_fixed_mul_after:wwn \int_value:w \__fp_int_eval:w \c__fp_leading_shift_int @@ -19922,9 +20031,9 @@ \exp_after:wN \__fp_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_trailing_shift_int #1 #2*8401 - #1 #7 - #1 ( #2*7991 - #8 ) / 1 0000 ; ; + #1 ( #2*7991 - #8 ) / 1 0000 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_pow_B:wwN #1#2#3#4#5#6; #7; +\cs_new:Npn \__fp_pow_B:wwN #1#2#3#4#5#6\__fp_sep: #7\__fp_sep: { \if_int_compare:w #7 < \c_zero_int \exp_after:wN \__fp_pow_C_neg:w \int_value:w - @@ -19935,23 +20044,23 @@ \exp_after:wN \__fp_pow_C_overflow:w \int_value:w \fi: \fi: - #7 \exp_after:wN ; + #7 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w 10 0000 + #1 \__fp_int_eval_end: - #2#3#4#5#6 0000 0000 0000 0000 0000 0000 ; %^^A todo: how many 0? + #2#3#4#5#6 0000 0000 0000 0000 0000 0000 \__fp_sep: %^^A todo: how many 0? } -\cs_new:Npn \__fp_pow_C_overflow:w #1; #2; #3 +\cs_new:Npn \__fp_pow_C_overflow:w #1\__fp_sep: #2\__fp_sep: #3 { + 2 * \c__fp_max_exponent_int \exp_after:wN \__fp_fixed_continue:wn \c__fp_one_fixed_tl } -\cs_new:Npn \__fp_pow_C_neg:w #1 ; 1 +\cs_new:Npn \__fp_pow_C_neg:w #1 \__fp_sep: 1 { \exp_after:wN \exp_after:wN \exp_after:wN \__fp_pow_C_pack:w \prg_replicate:nn {#1} {0} } -\cs_new:Npn \__fp_pow_C_pos:w #1; 1 - { \__fp_pow_C_pos_loop:wN #1; } -\cs_new:Npn \__fp_pow_C_pos_loop:wN #1; #2 +\cs_new:Npn \__fp_pow_C_pos:w #1\__fp_sep: 1 + { \__fp_pow_C_pos_loop:wN #1\__fp_sep: } +\cs_new:Npn \__fp_pow_C_pos_loop:wN #1\__fp_sep: #2 { \if_meaning:w 0 #1 \exp_after:wN \__fp_pow_C_pack:w @@ -19962,7 +20071,7 @@ \else: \exp_after:wN \__fp_pow_C_overflow:w \int_value:w \fi: - \__fp_int_eval:w #1 - 1 \exp_after:wN ; + \__fp_int_eval:w #1 - 1 \exp_after:wN \__fp_sep: \fi: } \cs_new:Npn \__fp_pow_C_pack:w @@ -19971,20 +20080,21 @@ \exp_after:wN 5 \c__fp_one_fixed_tl } -\cs_new:Npn \__fp_pow_neg:www \s__fp \__fp_chk:w #1#2; #3; #4; +\cs_new:Npn \__fp_pow_neg:www + \s__fp \__fp_chk:w #1#2\__fp_sep: #3\__fp_sep: #4\__fp_sep: { - \if_case:w \__fp_pow_neg_case:w #4 ; + \if_case:w \__fp_pow_neg_case:w #4 \__fp_sep: \exp_after:wN \__fp_pow_neg_aux:wNN \or: \if_int_compare:w \__fp_int_eval:w #1 / 2 = \c_one_int - \__fp_invalid_operation_o:Nww ^ #3; #4; + \__fp_invalid_operation_o:Nww ^ #3\__fp_sep: #4\__fp_sep: \exp:w \exp_end_continue_f:w \exp_after:wN \exp_after:wN \exp_after:wN \__fp_use_none_until_s:w \fi: \fi: \__fp_exp_after_o:w - \s__fp \__fp_chk:w #1#2; + \s__fp \__fp_chk:w #1#2\__fp_sep: } \cs_new:Npn \__fp_pow_neg_aux:wNN #1 \s__fp \__fp_chk:w #2#3 { @@ -19994,7 +20104,7 @@ \exp_after:wN #2 \int_value:w \__fp_int_eval:w 2 - #3 \__fp_int_eval_end: } -\cs_new:Npn \__fp_pow_neg_case:w \s__fp \__fp_chk:w #1#2#3; +\cs_new:Npn \__fp_pow_neg_case:w \s__fp \__fp_chk:w #1#2#3\__fp_sep: { \if_case:w #1 \exp_stop_f: -1 @@ -20014,7 +20124,7 @@ {#2} {#3} {#4} {#5} \fi: } -\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 ; +\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 \__fp_sep: { \if_meaning:w 0 #1 \if_int_odd:w #3 \exp_stop_f: @@ -20027,7 +20137,7 @@ \fi: } \int_const:Nn \c__fp_fact_max_arg_int { 3248 } -\cs_new:Npn \__fp_fact_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_fact_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -20043,13 +20153,13 @@ \__fp_case_use:nw { \__fp_invalid_operation_o:fw { fact } } \fi: \__fp_fact_pos_o:w - \s__fp \__fp_chk:w #2 #3 #4 ; + \s__fp \__fp_chk:w #2 #3 #4 \__fp_sep: } -\cs_new:Npn \__fp_fact_pos_o:w #1; +\cs_new:Npn \__fp_fact_pos_o:w #1\__fp_sep: { - \__fp_small_int:wTF #1; + \__fp_small_int:wTF #1\__fp_sep: { \__fp_fact_int_o:n } - { \__fp_invalid_operation_o:fw { fact } #1; } + { \__fp_invalid_operation_o:fw { fact } #1\__fp_sep: } } \cs_new:Npn \__fp_fact_int_o:n #1 { @@ -20063,9 +20173,9 @@ \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 \int_value:w \__fp_int_eval:w - \__fp_fact_loop_o:w #1 . 4 , { 1 } { } { } { } { } { } ; + \__fp_fact_loop_o:w #1 . 4 , { 1 } { } { } { } { } { } \__fp_sep: } -\cs_new:Npn \__fp_fact_loop_o:w #1 . #2 ; +\cs_new:Npn \__fp_fact_loop_o:w #1 . #2 \__fp_sep: { \if_int_compare:w #1 < 12 \exp_stop_f: \__fp_fact_small_o:w #1 @@ -20073,14 +20183,14 @@ \exp_after:wN \__fp_ep_mul:wwwwn \exp_after:wN 4 \exp_after:wN , \exp_after:wN { \int_value:w \__fp_int_eval:w #1 * (#1 - 1) } - { } { } { } { } { } ; - #2 ; + { } { } { } { } { } \__fp_sep: + #2 \__fp_sep: { \exp_after:wN \__fp_fact_loop_o:w \int_value:w \__fp_int_eval:w #1 - 2 . } } -\cs_new:Npn \__fp_fact_small_o:w #1 \fi: #2 ; #3 ; #4 +\cs_new:Npn \__fp_fact_small_o:w #1 \fi: #2 \__fp_sep: #3 \__fp_sep: #4 { \fi: \exp_after:wN \__fp_ep_mul:wwwwn @@ -20092,8 +20202,8 @@ 1 \or: 1 \or: 2 \or: 6 \or: 24 \or: 120 \or: 720 \or: 5040 \or: 40320 \or: 362880 \or: 3628800 \or: 39916800 \fi: - } { } { } { } { } { } ; - #3 ; + } { } { } { } { } { } \__fp_sep: + #3 \__fp_sep: \__fp_ep_to_float_o:wwN 0 } %% File: l3fp-trig.dtx @@ -20124,7 +20234,7 @@ { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_i:nn } \cs_new:Npn \__fp_parse_word_atand:N { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_ii:nn } -\cs_new:Npn \__fp_sin_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_sin_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_same_o:w @@ -20137,9 +20247,9 @@ { \__fp_invalid_operation_o:fw { #1 { sin } { sind } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_cos_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_cos_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -20152,9 +20262,9 @@ { \__fp_invalid_operation_o:fw { #1 { cos } { cosd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_csc_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_csc_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_cot_zero_o:Nfw #3 { #1 { csc } { cscd } } @@ -20167,9 +20277,9 @@ { \__fp_invalid_operation_o:fw { #1 { csc } { cscd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_sec_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_sec_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp @@ -20182,9 +20292,9 @@ { \__fp_invalid_operation_o:fw { #1 { sec } { secd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_tan_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_tan_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_same_o:w @@ -20197,9 +20307,9 @@ { \__fp_invalid_operation_o:fw { #1 { tan } { tand } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_cot_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_cot_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_cot_zero_o:Nfw #3 { #1 { cot } { cotd } } @@ -20212,7 +20322,7 @@ { \__fp_invalid_operation_o:fw { #1 { cot } { cotd } } } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } \cs_new:Npn \__fp_cot_zero_o:Nfw #1#2#3 \fi: { @@ -20222,7 +20332,7 @@ { \exp_args:NNf \__fp_division_by_zero_o:Nnw \c_minus_inf_fp } {#2} } -\cs_new:Npn \__fp_trig:NNNNNwn #1#2#3#4#5 \s__fp \__fp_chk:w 1#6#7#8; +\cs_new:Npn \__fp_trig:NNNNNwn #1#2#3#4#5 \s__fp \__fp_chk:w 1#6#7#8\__fp_sep: { \exp_after:wN #2 \exp_after:wN #3 @@ -20234,44 +20344,44 @@ \else: #1 \__fp_trig_small:ww \__fp_trigd_small:ww \fi: - #7,#8{0000}{0000}; + #7,#8{0000}{0000}\__fp_sep: } -\cs_new:Npn \__fp_trig_small:ww #1,#2; - { \__fp_ep_to_fixed:wwn #1,#2; . #1,#2; } -\cs_new:Npn \__fp_trigd_small:ww #1,#2; +\cs_new:Npn \__fp_trig_small:ww #1,#2\__fp_sep: + { \__fp_ep_to_fixed:wwn #1,#2\__fp_sep: . #1,#2\__fp_sep: } +\cs_new:Npn \__fp_trigd_small:ww #1,#2\__fp_sep: { \__fp_ep_mul_raw:wwwwN - -1,{1745}{3292}{5199}{4329}{5769}{2369}; #1,#2; + -1,{1745}{3292}{5199}{4329}{5769}{2369}\__fp_sep: #1,#2\__fp_sep: \__fp_trig_small:ww } -\cs_new:Npn \__fp_trigd_large:ww #1, #2#3#4#5#6#7; +\cs_new:Npn \__fp_trigd_large:ww #1, #2#3#4#5#6#7\__fp_sep: { \exp_after:wN \__fp_pack_eight:wNNNNNNNN \exp_after:wN \__fp_pack_eight:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_pack_twice_four:wNNNNNNNN \exp_after:wN \__fp_trigd_large_auxi:nnnnwNNNN - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w \prg_replicate:nn { \int_max:nn { 22 - #1 } { 0 } } { 0 } #2#3#4#5#6#7 0000 0000 0000 ! } -\cs_new:Npn \__fp_trigd_large_auxi:nnnnwNNNN #1#2#3#4#5; #6#7#8#9 +\cs_new:Npn \__fp_trigd_large_auxi:nnnnwNNNN #1#2#3#4#5\__fp_sep: #6#7#8#9 { \exp_after:wN \__fp_trigd_large_auxii:wNw \int_value:w \__fp_int_eval:w #1 + #2 - (#1 + #2 - 4) / 9 * 9 \__fp_int_eval_end: - #3; - #4; #5{#6#7#8#9}; + #3\__fp_sep: + #4\__fp_sep: #5{#6#7#8#9}\__fp_sep: } -\cs_new:Npn \__fp_trigd_large_auxii:wNw #1; #2#3; +\cs_new:Npn \__fp_trigd_large_auxii:wNw #1\__fp_sep: #2#3\__fp_sep: { + (#1#2 - 4) / 9 * 2 \exp_after:wN \__fp_trigd_large_auxiii:www \int_value:w \__fp_int_eval:w #1#2 - - (#1#2 - 4) / 9 * 9 \__fp_int_eval_end: #3 ; + - (#1#2 - 4) / 9 * 9 \__fp_int_eval_end: #3 \__fp_sep: } -\cs_new:Npn \__fp_trigd_large_auxiii:www #1; #2; #3! +\cs_new:Npn \__fp_trigd_large_auxiii:www #1\__fp_sep: #2\__fp_sep: #3! { \if_int_compare:w #1 < 4500 \exp_stop_f: \exp_after:wN \__fp_use_i_until_s:nw @@ -20279,8 +20389,8 @@ \else: + 1 \fi: - \__fp_fixed_sub:wwn {9000}{0000}{0000}{0000}{0000}{0000}; - {#1}#2{0000}{0000}; + \__fp_fixed_sub:wwn {9000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + {#1}#2{0000}{0000}\__fp_sep: { \__fp_trigd_small:ww 2, } } \intarray_const_from_clist:Nn \c__fp_trig_intarray @@ -20497,12 +20607,12 @@ 159592267, 181172796, 144388537, 196763139, 127431422, 179531145, 100064922, 112650013, 132686230, 121550837, } -\cs_new:Npn \__fp_trig_large:ww #1, #2#3#4#5#6; +\cs_new:Npn \__fp_trig_large:ww #1, #2#3#4#5#6\__fp_sep: { \exp_after:wN \__fp_trig_large_auxi:w \int_value:w \__fp_int_eval:w (#1 - 4) / 8 \exp_after:wN , - \int_value:w #1 , ; - {#2}{#3}{#4}{#5} ; + \int_value:w #1 , \__fp_sep: + {#2}{#3}{#4}{#5} \__fp_sep: } \cs_new:Npn \__fp_trig_large_auxi:w #1, #2, { @@ -20547,10 +20657,10 @@ \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN - \__fp_trig_large_auxv:www ; + \__fp_trig_large_auxv:www \__fp_sep: } \cs_new:Npn \__fp_trig_large_auxiii:w 1 { \exp_stop_f: } -\cs_new:Npn \__fp_trig_large_auxv:www #1; #2; #3; +\cs_new:Npn \__fp_trig_large_auxv:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \exp_after:wN \__fp_use_i_until_s:nw \exp_after:wN \__fp_trig_large_auxvii:w @@ -20559,24 +20669,24 @@ { \__fp_trig_large_auxvi:wnnnnnnnn } + \c__fp_trailing_shift_int - \c__fp_middle_shift_int \__fp_use_i_until_s:nw - ; #3 #1 ; ; + \__fp_sep: #3 #1 \__fp_sep: \__fp_sep: } -\cs_new:Npn \__fp_trig_large_auxvi:wnnnnnnnn #1; #2#3#4#5#6#7#8#9 +\cs_new:Npn \__fp_trig_large_auxvi:wnnnnnnnn #1\__fp_sep: #2#3#4#5#6#7#8#9 { \exp_after:wN \__fp_trig_large_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_middle_shift_int + #2*#9 + #3*#8 + #4*#7 + #5*#6 - #1; {#2}{#3}{#4}{#5} {#7}{#8}{#9} + #1\__fp_sep: {#2}{#3}{#4}{#5} {#7}{#8}{#9} } -\cs_new:Npn \__fp_trig_large_pack:NNNNNw #1#2#3#4#5#6; - { + #1#2#3#4#5 ; #6 } +\cs_new:Npn \__fp_trig_large_pack:NNNNNw #1#2#3#4#5#6\__fp_sep: + { + #1#2#3#4#5 \__fp_sep: #6 } \cs_new:Npn \__fp_trig_large_auxvii:w #1#2#3 { \exp_after:wN \__fp_trig_large_auxviii:ww - \int_value:w \__fp_int_eval:w (#1#2#3 - 62) / 125 ; + \int_value:w \__fp_int_eval:w (#1#2#3 - 62) / 125 \__fp_sep: #1#2#3 } -\cs_new:Npn \__fp_trig_large_auxviii:ww #1; +\cs_new:Npn \__fp_trig_large_auxviii:ww #1\__fp_sep: { + #1 \if_int_odd:w #1 \exp_stop_f: @@ -20595,25 +20705,25 @@ \prg_replicate:nn { 13 } { \__fp_trig_large_auxx:wNNNNN } + \c__fp_trailing_shift_int - \c__fp_middle_shift_int - ; + \__fp_sep: } -\cs_new:Npn \__fp_trig_large_auxx:wNNNNN #1; #2 #3#4#5#6 +\cs_new:Npn \__fp_trig_large_auxx:wNNNNN #1\__fp_sep: #2 #3#4#5#6 { \exp_after:wN \__fp_trig_large_pack:NNNNNw \int_value:w \__fp_int_eval:w \c__fp_middle_shift_int #2 8 * #3#4#5#6 - #1; #2 + #1\__fp_sep: #2 } -\cs_new:Npn \__fp_trig_large_auxxi:w #1; +\cs_new:Npn \__fp_trig_large_auxxi:w #1\__fp_sep: { \exp_after:wN \__fp_ep_mul_raw:wwwwN - \int_value:w \__fp_int_eval:w 0 \__fp_ep_to_ep_loop:N #1 ; ; ! - 0,{7853}{9816}{3397}{4483}{0961}{5661}; + \int_value:w \__fp_int_eval:w 0 \__fp_ep_to_ep_loop:N #1 \__fp_sep: \__fp_sep: ! + 0,{7853}{9816}{3397}{4483}{0961}{5661}\__fp_sep: \__fp_trig_small:ww } -\cs_new:Npn \__fp_sin_series_o:NNwwww #1#2#3. #4; +\cs_new:Npn \__fp_sin_series_o:NNwwww #1#2#3. #4\__fp_sep: { - \__fp_fixed_mul:wwn #4; #4; + \__fp_fixed_mul:wwn #4\__fp_sep: #4\__fp_sep: { \exp_after:wN \__fp_sin_series_aux_o:NNnwww \exp_after:wN #1 @@ -20626,7 +20736,7 @@ {#3} } } -\cs_new:Npn \__fp_sin_series_aux_o:NNnwww #1#2#3 #4; #5,#6; +\cs_new:Npn \__fp_sin_series_aux_o:NNnwww #1#2#3 #4\__fp_sep: #5,#6\__fp_sep: { \if_int_odd:w \__fp_int_eval:w #3 / 2 \__fp_int_eval_end: \exp_after:wN \use_i:nn @@ -20634,29 +20744,46 @@ \exp_after:wN \use_ii:nn \fi: { % 1/18! - \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0001}{5619}{2070}; - #4;{0000}{0000}{0000}{0477}{9477}{3324}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0000}{0011}{4707}{4559}{7730}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0000}{2087}{6756}{9878}{6810}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0027}{5573}{1922}{3985}{8907}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{2480}{1587}{3015}{8730}{1587}; - \__fp_fixed_mul_sub_back:wwwn #4;{0013}{8888}{8888}{8888}{8888}{8889}; - \__fp_fixed_mul_sub_back:wwwn #4;{0416}{6666}{6666}{6666}{6666}{6667}; - \__fp_fixed_mul_sub_back:wwwn #4;{5000}{0000}{0000}{0000}{0000}{0000}; - \__fp_fixed_mul_sub_back:wwwn#4;{10000}{0000}{0000}{0000}{0000}{0000}; + \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0001}{5619}{2070}\__fp_sep: + #4\__fp_sep: + {0000}{0000}{0000}{0477}{9477}{3324}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0000}{0011}{4707}{4559}{7730}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0000}{2087}{6756}{9878}{6810}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0027}{5573}{1922}{3985}{8907}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{2480}{1587}{3015}{8730}{1587}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0013}{8888}{8888}{8888}{8888}{8889}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0416}{6666}{6666}{6666}{6666}{6667}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {5000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn#4\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: { \__fp_fixed_continue:wn 0, } } { % 1/17! - \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0028}{1145}{7254}; - #4;{0000}{0000}{0000}{7647}{1637}{3182}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0000}{0160}{5904}{3836}{8216}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0002}{5052}{1083}{8544}{1719}; - \__fp_fixed_mul_sub_back:wwwn #4;{0000}{0275}{5731}{9223}{9858}{9065}; - \__fp_fixed_mul_sub_back:wwwn #4;{0001}{9841}{2698}{4126}{9841}{2698}; - \__fp_fixed_mul_sub_back:wwwn #4;{0083}{3333}{3333}{3333}{3333}{3333}; - \__fp_fixed_mul_sub_back:wwwn #4;{1666}{6666}{6666}{6666}{6666}{6667}; - \__fp_fixed_mul_sub_back:wwwn#4;{10000}{0000}{0000}{0000}{0000}{0000}; - { \__fp_ep_mul:wwwwn 0, } #5,#6; + \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{0000}{0028}{1145}{7254}\__fp_sep: + #4\__fp_sep: + {0000}{0000}{0000}{7647}{1637}{3182}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0000}{0160}{5904}{3836}{8216}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0002}{5052}{1083}{8544}{1719}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0000}{0275}{5731}{9223}{9858}{9065}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0001}{9841}{2698}{4126}{9841}{2698}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {0083}{3333}{3333}{3333}{3333}{3333}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #4\__fp_sep: + {1666}{6666}{6666}{6666}{6666}{6667}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn#4\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + { \__fp_ep_mul:wwwwn 0, } #5,#6\__fp_sep: } { \exp_after:wN \__fp_sanitize:Nw @@ -20665,9 +20792,9 @@ } #2 } -\cs_new:Npn \__fp_tan_series_o:NNwwww #1#2#3. #4; +\cs_new:Npn \__fp_tan_series_o:NNwwww #1#2#3. #4\__fp_sep: { - \__fp_fixed_mul:wwn #4; #4; + \__fp_fixed_mul:wwn #4\__fp_sep: #4\__fp_sep: { \exp_after:wN \__fp_tan_series_aux_o:Nnwww \int_value:w @@ -20678,22 +20805,32 @@ {#3} } } -\cs_new:Npn \__fp_tan_series_aux_o:Nnwww #1 #2 #3; #4,#5; - { - \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{1527}{3493}{0856}{7059}; - #3; {0000}{0159}{6080}{0274}{5257}{6472}; - \__fp_fixed_mul_sub_back:wwwn #3; {0002}{4571}{2320}{0157}{2558}{8481}; - \__fp_fixed_mul_sub_back:wwwn #3; {0115}{5830}{7533}{5397}{3168}{2147}; - \__fp_fixed_mul_sub_back:wwwn #3; {1929}{8245}{6140}{3508}{7719}{2982}; - \__fp_fixed_mul_sub_back:wwwn #3;{10000}{0000}{0000}{0000}{0000}{0000}; - { \__fp_ep_mul:wwwwn 0, } #4,#5; +\cs_new:Npn \__fp_tan_series_aux_o:Nnwww #1 #2 #3\__fp_sep: #4,#5\__fp_sep: + { + \__fp_fixed_mul_sub_back:wwwn {0000}{0000}{1527}{3493}{0856}{7059}\__fp_sep: + #3\__fp_sep: + {0000}{0159}{6080}{0274}{5257}{6472}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0002}{4571}{2320}{0157}{2558}{8481}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0115}{5830}{7533}{5397}{3168}{2147}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {1929}{8245}{6140}{3508}{7719}{2982}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + { \__fp_ep_mul:wwwwn 0, } #4,#5\__fp_sep: { - \__fp_fixed_mul_sub_back:wwwn {0000}{0007}{0258}{0681}{9408}{4706}; - #3;{0000}{2343}{7175}{1399}{6151}{7670}; - \__fp_fixed_mul_sub_back:wwwn #3;{0019}{2638}{4588}{9232}{8861}{3691}; - \__fp_fixed_mul_sub_back:wwwn #3;{0536}{6357}{0691}{4344}{6852}{4252}; - \__fp_fixed_mul_sub_back:wwwn #3;{5263}{1578}{9473}{6842}{1052}{6315}; - \__fp_fixed_mul_sub_back:wwwn#3;{10000}{0000}{0000}{0000}{0000}{0000}; + \__fp_fixed_mul_sub_back:wwwn {0000}{0007}{0258}{0681}{9408}{4706}\__fp_sep: + #3\__fp_sep: + {0000}{2343}{7175}{1399}{6151}{7670}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0019}{2638}{4588}{9232}{8861}{3691}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {0536}{6357}{0691}{4344}{6852}{4252}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn #3\__fp_sep: + {5263}{1578}{9473}{6842}{1052}{6315}\__fp_sep: + \__fp_fixed_mul_sub_back:wwwn#3\__fp_sep: + {10000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: { \reverse_if:N \if_int_odd:w \__fp_int_eval:w (#2 - 1) / 2 \__fp_int_eval_end: @@ -20723,7 +20860,7 @@ } \cs_new:Npe \__fp_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } \cs_new:Npn \__fp_atanii_o:Nww - #1 \s__fp \__fp_chk:w #2#3#4; \s__fp \__fp_chk:w #5 #6 @ + #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: \s__fp \__fp_chk:w #5 #6 @ { \if_meaning:w 3 #2 \__fp_case_return_i_o:ww \fi: \if_meaning:w 3 #5 \__fp_case_return_ii_o:ww \fi: @@ -20739,29 +20876,29 @@ \or: \__fp_case_return:nw { \__fp_atan_inf_o:NNNw #1 #3 0 } \fi: \__fp_atan_normal_o:NNnwNnw #1 - \s__fp \__fp_chk:w #2#3#4; + \s__fp \__fp_chk:w #2#3#4\__fp_sep: \s__fp \__fp_chk:w #5 #6 } -\cs_new:Npn \__fp_acotii_o:Nww #1#2; #3; - { \__fp_atanii_o:Nww #1#3; #2; } -\cs_new:Npn \__fp_atan_inf_o:NNNw #1#2#3 \s__fp \__fp_chk:w #4#5#6; +\cs_new:Npn \__fp_acotii_o:Nww #1#2\__fp_sep: #3\__fp_sep: + { \__fp_atanii_o:Nww #1#3\__fp_sep: #2\__fp_sep: } +\cs_new:Npn \__fp_atan_inf_o:NNNw #1#2#3 \s__fp \__fp_chk:w #4#5#6\__fp_sep: { \exp_after:wN \__fp_atan_combine_o:NwwwwwN \exp_after:wN #2 \int_value:w \__fp_int_eval:w - \if_meaning:w 2 #5 7 - \fi: #3 \exp_after:wN ; + \if_meaning:w 2 #5 7 - \fi: #3 \exp_after:wN \__fp_sep: \c__fp_one_fixed_tl - {0000}{0000}{0000}{0000}{0000}{0000}; - 0,{0000}{0000}{0000}{0000}{0000}{0000}; #1 + {0000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + 0,{0000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1 } \cs_new_protected:Npn \__fp_atan_normal_o:NNnwNnw - #1 \s__fp \__fp_chk:w 1#2#3#4; \s__fp \__fp_chk:w 1#5#6#7; + #1 \s__fp \__fp_chk:w 1#2#3#4\__fp_sep: \s__fp \__fp_chk:w 1#5#6#7\__fp_sep: { \__fp_atan_test_o:NwwNwwN - #2 #3, #4{0000}{0000}; - #5 #6, #7{0000}{0000}; #1 + #2 #3, #4{0000}{0000}\__fp_sep: + #5 #6, #7{0000}{0000}\__fp_sep: #1 } -\cs_new:Npn \__fp_atan_test_o:NwwNwwN #1#2,#3; #4#5,#6; +\cs_new:Npn \__fp_atan_test_o:NwwNwwN #1#2,#3\__fp_sep: #4#5,#6\__fp_sep: { \exp_after:wN \__fp_atan_combine_o:NwwwwwN \exp_after:wN #1 @@ -20770,13 +20907,13 @@ 7 - \__fp_int_eval:w \fi: \if_int_compare:w - \__fp_ep_compare:wwww #2,#3; #5,#6; > \c_zero_int + \__fp_ep_compare:wwww #2,#3\__fp_sep: #5,#6\__fp_sep: > \c_zero_int 3 - \exp_after:wN \__fp_reverse_args:Nww \fi: - \__fp_atan_div:wnwwnw #2,#3; #5,#6; + \__fp_atan_div:wnwwnw #2,#3\__fp_sep: #5,#6\__fp_sep: } -\cs_new:Npn \__fp_atan_div:wnwwnw #1,#2#3; #4,#5#6; +\cs_new:Npn \__fp_atan_div:wnwwnw #1,#2#3\__fp_sep: #4,#5#6\__fp_sep: { \if_int_compare:w \__fp_int_eval:w 41421 * #5 < #2 000 @@ -20786,49 +20923,50 @@ \exp_after:wN \__fp_atan_near:wwwn \fi: 0 - \__fp_ep_div:wwwwn #1,{#2}#3; #4,{#5}#6; + \__fp_ep_div:wwwwn #1,{#2}#3\__fp_sep: #4,{#5}#6\__fp_sep: \__fp_atan_auxi:ww } \cs_new:Npn \__fp_atan_near:wwwn - 0 \__fp_ep_div:wwwwn #1,#2; #3, + 0 \__fp_ep_div:wwwwn #1,#2\__fp_sep: #3, { 1 - \__fp_ep_to_fixed:wwn #1 - #3, #2; + \__fp_ep_to_fixed:wwn #1 - #3, #2\__fp_sep: \__fp_atan_near_aux:wwn } -\cs_new:Npn \__fp_atan_near_aux:wwn #1; #2; +\cs_new:Npn \__fp_atan_near_aux:wwn #1\__fp_sep: #2\__fp_sep: { - \__fp_fixed_add:wwn #1; #2; - { \__fp_fixed_sub:wwn #2; #1; { \__fp_ep_div:wwwwn 0, } 0, } + \__fp_fixed_add:wwn #1\__fp_sep: #2\__fp_sep: + { \__fp_fixed_sub:wwn #2\__fp_sep: #1\__fp_sep: { \__fp_ep_div:wwwwn 0, } 0, } } -\cs_new:Npn \__fp_atan_auxi:ww #1,#2; - { \__fp_ep_to_fixed:wwn #1,#2; \__fp_atan_auxii:w #1,#2; } -\cs_new:Npn \__fp_atan_auxii:w #1; +\cs_new:Npn \__fp_atan_auxi:ww #1,#2\__fp_sep: + { \__fp_ep_to_fixed:wwn #1,#2\__fp_sep: \__fp_atan_auxii:w #1,#2\__fp_sep: } +\cs_new:Npn \__fp_atan_auxii:w #1\__fp_sep: { - \__fp_fixed_mul:wwn #1; #1; + \__fp_fixed_mul:wwn #1\__fp_sep: #1\__fp_sep: { - \__fp_atan_Taylor_loop:www 39 ; - {0000}{0000}{0000}{0000}{0000}{0000} ; + \__fp_atan_Taylor_loop:www 39 \__fp_sep: + {0000}{0000}{0000}{0000}{0000}{0000} \__fp_sep: } - ! #1; + ! #1\__fp_sep: } -\cs_new:Npn \__fp_atan_Taylor_loop:www #1; #2; #3; +\cs_new:Npn \__fp_atan_Taylor_loop:www #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: { \if_int_compare:w #1 = - \c_one_int \__fp_atan_Taylor_break:w \fi: - \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1; - \__fp_rrot:www \__fp_fixed_mul_sub_back:wwwn #2; #3; + \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1\__fp_sep: + \__fp_rrot:www \__fp_fixed_mul_sub_back:wwwn #2\__fp_sep: #3\__fp_sep: { \exp_after:wN \__fp_atan_Taylor_loop:www - \int_value:w \__fp_int_eval:w #1 - 2 ; + \int_value:w \__fp_int_eval:w #1 - 2 \__fp_sep: } - #3; + #3\__fp_sep: } \cs_new:Npn \__fp_atan_Taylor_break:w - \fi: #1 \__fp_fixed_mul_sub_back:wwwn #2; #3 ! - { \fi: ; #2 ; } -\cs_new:Npn \__fp_atan_combine_o:NwwwwwN #1 #2; #3; #4; #5,#6; #7 + \fi: #1 \__fp_fixed_mul_sub_back:wwwn #2\__fp_sep: #3 ! + { \fi: \__fp_sep: #2 \__fp_sep: } +\cs_new:Npn \__fp_atan_combine_o:NwwwwwN + #1 #2\__fp_sep: #3\__fp_sep: #4\__fp_sep: #5,#6\__fp_sep: #7 { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 @@ -20838,22 +20976,22 @@ \else: \exp_after:wN \use_ii:nn \fi: - { #5 \__fp_fixed_mul:wwn #3; #6; } + { #5 \__fp_fixed_mul:wwn #3\__fp_sep: #6\__fp_sep: } { - \__fp_fixed_mul:wwn #3; #4; + \__fp_fixed_mul:wwn #3\__fp_sep: #4\__fp_sep: { \exp_after:wN \__fp_atan_combine_aux:ww - \int_value:w \__fp_int_eval:w #2 / 2 ; #2; + \int_value:w \__fp_int_eval:w #2 / 2 \__fp_sep: #2\__fp_sep: } } { #7 \__fp_fixed_to_float_o:wN \__fp_fixed_to_float_rad_o:wN } #1 } -\cs_new:Npn \__fp_atan_combine_aux:ww #1; #2; +\cs_new:Npn \__fp_atan_combine_aux:ww #1\__fp_sep: #2\__fp_sep: { \__fp_fixed_mul_short:wwn - {7853}{9816}{3397}{4483}{0961}{5661}; - {#1}{0000}{0000}; + {7853}{9816}{3397}{4483}{0961}{5661}\__fp_sep: + {#1}{0000}{0000}\__fp_sep: { \if_int_odd:w #2 \exp_stop_f: \exp_after:wN \__fp_fixed_sub:wwn @@ -20862,7 +21000,7 @@ \fi: } } -\cs_new:Npn \__fp_asin_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_asin_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_same_o:w @@ -20875,9 +21013,9 @@ \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_acos_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_acos_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_use:nw { \__fp_atan_inf_o:NNNw #1 0 4 } @@ -20893,10 +21031,10 @@ \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } \cs_new:Npn \__fp_asin_normal_o:NfwNnnnnw - #1#2#3 \s__fp \__fp_chk:w 1#4#5#6#7#8#9; + #1#2#3 \s__fp \__fp_chk:w 1#4#5#6#7#8#9\__fp_sep: { \if_int_compare:w #5 < \c_one_int \exp_after:wN \__fp_use_none_until_s:w @@ -20906,30 +21044,30 @@ \fi: \__fp_use_i:ww \__fp_invalid_operation_o:fw {#2} - \s__fp \__fp_chk:w 1#4{#5}{#6}{#7}{#8}{#9}; + \s__fp \__fp_chk:w 1#4{#5}{#6}{#7}{#8}{#9}\__fp_sep: \__fp_asin_auxi_o:NnNww - #1 {#3} #4 #5,{#6}{#7}{#8}{#9}{0000}{0000}; + #1 {#3} #4 #5,{#6}{#7}{#8}{#9}{0000}{0000}\__fp_sep: } -\cs_new:Npn \__fp_asin_auxi_o:NnNww #1#2#3#4,#5; +\cs_new:Npn \__fp_asin_auxi_o:NnNww #1#2#3#4,#5\__fp_sep: { - \__fp_ep_to_fixed:wwn #4,#5; + \__fp_ep_to_fixed:wwn #4,#5\__fp_sep: \__fp_asin_isqrt:wn - \__fp_ep_mul:wwwwn #4,#5; + \__fp_ep_mul:wwwwn #4,#5\__fp_sep: \__fp_ep_to_ep:wwN \__fp_fixed_continue:wn { #2 \__fp_atan_test_o:NwwNwwN #3 } - 0 1,{1000}{0000}{0000}{0000}{0000}{0000}; #1 + 0 1,{1000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: #1 } -\cs_new:Npn \__fp_asin_isqrt:wn #1; +\cs_new:Npn \__fp_asin_isqrt:wn #1\__fp_sep: { - \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl #1; + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl #1\__fp_sep: { - \__fp_fixed_add_one:wN #1; + \__fp_fixed_add_one:wN #1\__fp_sep: \__fp_fixed_continue:wn { \__fp_ep_mul:wwwwn 0, } 0, } \__fp_ep_isqrt:wwn } -\cs_new:Npn \__fp_acsc_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ +\cs_new:Npn \__fp_acsc_o:w #1 \s__fp \__fp_chk:w #2#3#4\__fp_sep: @ { \if_case:w \if_meaning:w 2 #2 #3 \fi: #2 \exp_stop_f: \__fp_case_use:nw @@ -20940,9 +21078,9 @@ \or: \__fp_case_return_same_o:w \else: \__fp_case_return_o:Nw \c_minus_zero_fp \fi: - \s__fp \__fp_chk:w #2 #3 #4; + \s__fp \__fp_chk:w #2 #3 #4\__fp_sep: } -\cs_new:Npn \__fp_asec_o:w #1 \s__fp \__fp_chk:w #2#3; @ +\cs_new:Npn \__fp_asec_o:w #1 \s__fp \__fp_chk:w #2#3\__fp_sep: @ { \if_case:w #2 \exp_stop_f: \__fp_case_use:nw @@ -20956,24 +21094,24 @@ \or: \__fp_case_use:nw { \__fp_atan_inf_o:NNNw #1 0 4 } \else: \__fp_case_return_same_o:w \fi: - \s__fp \__fp_chk:w #2 #3; + \s__fp \__fp_chk:w #2 #3\__fp_sep: } -\cs_new:Npn \__fp_acsc_normal_o:NfwNnw #1#2#3 \s__fp \__fp_chk:w 1#4#5#6; +\cs_new:Npn \__fp_acsc_normal_o:NfwNnw #1#2#3 \s__fp \__fp_chk:w 1#4#5#6\__fp_sep: { \int_compare:nNnTF {#5} < 1 { \__fp_invalid_operation_o:fw {#2} - \s__fp \__fp_chk:w 1#4{#5}#6; + \s__fp \__fp_chk:w 1#4{#5}#6\__fp_sep: } { \__fp_ep_div:wwwwn - 1,{1000}{0000}{0000}{0000}{0000}{0000}; - #5,#6{0000}{0000}; + 1,{1000}{0000}{0000}{0000}{0000}{0000}\__fp_sep: + #5,#6{0000}{0000}\__fp_sep: { \__fp_asin_auxi_o:NnNww #1 {#3} #4 } } } %% File: l3fp-convert.dtx -\cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; +\cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 \__fp_sep: { \int_case:nnF { \__fp_array_count:n {#2} } { @@ -20982,26 +21120,29 @@ } { \__fp_tuple_convert_loop:nNw { } #1 - #2 { ? \__fp_tuple_convert_end:w } ; + #2 { ? \__fp_tuple_convert_end:w } \__fp_sep: @ { \use_none:nn } } } -\cs_new:Npn \__fp_tuple_convert_loop:nNw #1#2#3#4; #5 @ #6 +\cs_new:Npn \__fp_tuple_convert_loop:nNw #1#2#3#4\__fp_sep: #5 @ #6 { \use_none:n #3 - \exp_args:Nf \__fp_tuple_convert_loop:nNw { #2 #3#4 ; } #2 #5 + \exp_args:Nf \__fp_tuple_convert_loop:nNw { #2 #3#4 \__fp_sep: } #2 #5 @ { #6 , ~ #1 } } \cs_new:Npn \__fp_tuple_convert_end:w #1 @ #2 { \exp_after:wN ( \exp:w \exp_end_continue_f:w #2 ) } -\cs_new:Npn \__fp_trim_zeros:w #1 ; +\cs_new:Npn \__fp_trim_zeros:w #1 \__fp_sep: { - \__fp_trim_zeros_loop:w #1 - ; \__fp_trim_zeros_loop:w 0; \__fp_trim_zeros_dot:w .; \s__fp_stop + \__fp_trim_zeros_loop:w #1 \__fp_sep: + \__fp_trim_zeros_loop:w 0\__fp_sep: + \__fp_trim_zeros_dot:w .\__fp_sep: + \s__fp_stop } -\cs_new:Npn \__fp_trim_zeros_loop:w #1 0; #2 { #2 #1 ; #2 } -\cs_new:Npn \__fp_trim_zeros_dot:w #1 .; { \__fp_trim_zeros_end:w #1 ; } -\cs_new:Npn \__fp_trim_zeros_end:w #1 ; #2 \s__fp_stop { #1 } +\cs_new:Npn \__fp_trim_zeros_loop:w #1 0\__fp_sep: #2 { #2 #1 \__fp_sep: #2 } +\cs_new:Npn \__fp_trim_zeros_dot:w #1 .\__fp_sep: + { \__fp_trim_zeros_end:w #1 \__fp_sep: } +\cs_new:Npn \__fp_trim_zeros_end:w #1 \__fp_sep: #2 \s__fp_stop { #1 } \cs_new:Npn \fp_to_scientific:N #1 { \exp_after:wN \__fp_to_scientific_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_scientific:N { c } @@ -21016,9 +21157,9 @@ #1 \__fp_to_scientific:w \__fp_to_scientific_recover:w #1 } -\cs_new:Npn \__fp_to_scientific_recover:w #1 #2 ; +\cs_new:Npn \__fp_to_scientific_recover:w #1 #2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } nan } \cs_new:Npn \__fp_tuple_to_scientific:w @@ -21047,14 +21188,14 @@ \s__fp \__fp_chk:w #1 #2 } \cs_new:Npn \__fp_to_scientific_normal:wnnnnn - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 ; + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 \__fp_sep: { \exp_after:wN \__fp_to_scientific_normal:wNw \exp_after:wN e \int_value:w \__fp_int_eval:w #2 - 1 - ; #3 #4 #5 #6 ; + \__fp_sep: #3 #4 #5 #6 \__fp_sep: } -\cs_new:Npn \__fp_to_scientific_normal:wNw #1 ; #2#3; +\cs_new:Npn \__fp_to_scientific_normal:wNw #1 \__fp_sep: #2#3\__fp_sep: { #2.#3 #1 } \cs_new:Npn \fp_to_decimal:N #1 { \exp_after:wN \__fp_to_decimal_dispatch:w #1 } @@ -21070,9 +21211,9 @@ #1 \__fp_to_decimal:w \__fp_to_decimal_recover:w #1 } -\cs_new:Npn \__fp_to_decimal_recover:w #1 #2 ; +\cs_new:Npn \__fp_to_decimal_recover:w #1 #2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } nan } \cs_new:Npn \__fp_tuple_to_decimal:w @@ -21101,7 +21242,7 @@ \s__fp \__fp_chk:w #1 #2 } \cs_new:Npn \__fp_to_decimal_normal:wnnnnn - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 ; + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 \__fp_sep: { \int_compare:nNnTF {#2} > 0 { @@ -21113,7 +21254,7 @@ { \exp_after:wN \exp_after:wN \exp_after:wN \__fp_to_decimal_huge:wnnnn - \prg_replicate:nn { #2 - \c__fp_prec_int } { 0 } ; + \prg_replicate:nn { #2 - \c__fp_prec_int } { 0 } \__fp_sep: } {#3} {#4} {#5} {#6} } @@ -21122,19 +21263,19 @@ \exp_after:wN 0 \exp_after:wN . \exp:w \exp_end_continue_f:w \prg_replicate:nn { - #2 } { 0 } - #3#4#5#6 ; + #3#4#5#6 \__fp_sep: } } -\cs_new:Npn \__fp_to_decimal_large:Nnnw #1#2#3#4; +\cs_new:Npn \__fp_to_decimal_large:Nnnw #1#2#3#4\__fp_sep: { \exp_after:wN \__fp_trim_zeros:w \int_value:w \if_int_compare:w #2 > \c_zero_int #2 \fi: \exp_stop_f: - #3.#4 ; + #3.#4 \__fp_sep: } -\cs_new:Npn \__fp_to_decimal_huge:wnnnn #1; #2#3#4#5 { #2#3#4#5 #1 } +\cs_new:Npn \__fp_to_decimal_huge:wnnnn #1\__fp_sep: #2#3#4#5 { #2#3#4#5 #1 } \cs_new:Npn \fp_to_tl:N #1 { \exp_after:wN \__fp_to_tl_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_tl:N { c } \cs_new:Npn \fp_to_tl:n @@ -21144,9 +21285,9 @@ } \cs_new:Npn \__fp_to_tl_dispatch:w #1 { \__fp_change_func_type:NNN #1 \__fp_to_tl:w \__fp_to_tl_recover:w #1 } -\cs_new:Npn \__fp_to_tl_recover:w #1 #2 ; +\cs_new:Npn \__fp_to_tl_recover:w #1 #2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } nan } \cs_new:Npn \__fp_tuple_to_tl:w @@ -21170,15 +21311,15 @@ \s__fp \__fp_chk:w 1 0 {#1} } \cs_new:Npn \__fp_to_tl_scientific:wnnnnn - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 ; + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5#6 \__fp_sep: { \exp_after:wN \__fp_to_tl_scientific:wNw \exp_after:wN e \int_value:w \__fp_int_eval:w #2 - 1 - ; #3 #4 #5 #6 ; + \__fp_sep: #3 #4 #5 #6 \__fp_sep: } -\cs_new:Npn \__fp_to_tl_scientific:wNw #1 ; #2#3; - { \__fp_trim_zeros:w #2.#3 ; #1 } +\cs_new:Npn \__fp_to_tl_scientific:wNw #1 \__fp_sep: #2#3\__fp_sep: + { \__fp_trim_zeros:w #2.#3 \__fp_sep: #1 } \cs_new:Npn \fp_to_dim:N #1 { \exp_after:wN \__fp_to_dim_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_dim:N { c } @@ -21187,14 +21328,14 @@ \exp_after:wN \__fp_to_dim_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_dim_dispatch:w #1#2 ; +\cs_new:Npn \__fp_to_dim_dispatch:w #1#2 \__fp_sep: { \__fp_change_func_type:NNN #1 \__fp_to_dim:w \__fp_to_dim_recover:w - #1 #2 ; + #1 #2 \__fp_sep: } \cs_new:Npn \__fp_to_dim_recover:w #1 { \__fp_invalid_operation:nnw { 0pt } { fp_to_dim } } -\cs_new:Npn \__fp_to_dim:w #1 ; { \__fp_to_decimal:w #1 ; pt } +\cs_new:Npn \__fp_to_dim:w #1 \__fp_sep: { \__fp_to_decimal:w #1 \__fp_sep: pt } \cs_new:Npn \fp_to_int:N #1 { \exp_after:wN \__fp_to_int_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_int:N { c } \cs_new:Npn \fp_to_int:n @@ -21202,24 +21343,24 @@ \exp_after:wN \__fp_to_int_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_int_dispatch:w #1#2 ; +\cs_new:Npn \__fp_to_int_dispatch:w #1#2 \__fp_sep: { \__fp_change_func_type:NNN #1 \__fp_to_int:w \__fp_to_int_recover:w - #1 #2 ; + #1 #2 \__fp_sep: } \cs_new:Npn \__fp_to_int_recover:w #1 { \__fp_invalid_operation:nnw { 0 } { fp_to_int } } -\cs_new:Npn \__fp_to_int:w #1; +\cs_new:Npn \__fp_to_int:w #1\__fp_sep: { \exp_after:wN \__fp_to_decimal:w \exp:w \exp_end_continue_f:w - \__fp_round:Nwn \__fp_round_to_nearest:NNN #1; { 0 } + \__fp_round:Nwn \__fp_round_to_nearest:NNN #1\__fp_sep: { 0 } } \cs_new:Npn \dim_to_fp:n #1 { \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \tex_glueexpr:D #1 ; + \int_value:w \tex_glueexpr:D #1 \__fp_sep: } \cs_new:Npn \__fp_from_dim_test:ww #1, #2 { @@ -21235,18 +21376,18 @@ \fi: \fi: } -\cs_new:Npn \__fp_from_dim:wNw #1,#2#3; +\cs_new:Npn \__fp_from_dim:wNw #1,#2#3\__fp_sep: { - \__fp_pack_twice_four:wNNNNNNNN \__fp_from_dim:wNNnnnnnn ; - #3 000 0000 00 {10}987654321; #2 {#1} + \__fp_pack_twice_four:wNNNNNNNN \__fp_from_dim:wNNnnnnnn \__fp_sep: + #3 000 0000 00 {10}987654321\__fp_sep: #2 {#1} } -\cs_new:Npn \__fp_from_dim:wNNnnnnnn #1; #2#3#4#5#6#7#8#9 - { \__fp_from_dim:wnnnnwNn #1 {#2#300} {0000} ; } -\cs_new:Npn \__fp_from_dim:wnnnnwNn #1; #2#3#4#5#6; #7#8 +\cs_new:Npn \__fp_from_dim:wNNnnnnnn #1\__fp_sep: #2#3#4#5#6#7#8#9 + { \__fp_from_dim:wnnnnwNn #1 {#2#300} {0000} \__fp_sep: } +\cs_new:Npn \__fp_from_dim:wnnnnwNn #1\__fp_sep: #2#3#4#5#6\__fp_sep: #7#8 { \__fp_mul_npos_o:Nww #7 - \s__fp \__fp_chk:w 1 #7 {#5} #1 ; - \s__fp \__fp_chk:w 1 0 {#8} {1525} {8789} {0625} {0000} ; + \s__fp \__fp_chk:w 1 #7 {#5} #1 \__fp_sep: + \s__fp \__fp_chk:w 1 0 {#8} {1525} {8789} {0625} {0000} \__fp_sep: \prg_do_nothing: } \cs_new_eq:NN \fp_use:N \fp_to_decimal:N @@ -21266,16 +21407,16 @@ { \exp_last_unbraced:Ne \use_ii:nn { - \__fp_array_to_clist_loop:Nw #1 { ? \prg_break: } ; + \__fp_array_to_clist_loop:Nw #1 { ? \prg_break: } \__fp_sep: \prg_break_point: } } } -\cs_new:Npn \__fp_array_to_clist_loop:Nw #1#2; +\cs_new:Npn \__fp_array_to_clist_loop:Nw #1#2\__fp_sep: { \use_none:n #1 , ~ - \exp_not:f { \__fp_to_tl_dispatch:w #1 #2 ; } + \exp_not:f { \__fp_to_tl_dispatch:w #1 #2 \__fp_sep: } \__fp_array_to_clist_loop:Nw } %% File: l3fp-random.dtx @@ -21290,7 +21431,7 @@ + \tex_uniformdeviate:D #1 + 8192 ) / 16384 } \cs_new:Npn \__fp_rand_myriads:n #1 - { \__fp_rand_myriads_loop:w #1 \prg_break: X \prg_break_point: ; } + { \__fp_rand_myriads_loop:w #1 \prg_break: X \prg_break_point: \__fp_sep: } \cs_new:Npn \__fp_rand_myriads_loop:w #1 X { #1 @@ -21299,14 +21440,14 @@ \__kernel_randint:n { 10000 } \__fp_rand_myriads_loop:w } -\cs_new:Npn \__fp_rand_myriads_get:w 1 #1 ; { ; {#1} } +\cs_new:Npn \__fp_rand_myriads_get:w 1 #1 \__fp_sep: { \__fp_sep: {#1} } \cs_new:Npn \__fp_rand_o:Nw ? #1 @ { \tl_if_empty:nTF {#1} { \exp_after:wN \__fp_rand_o:w \exp:w \exp_end_continue_f:w - \__fp_rand_myriads:n { XXXX } { 0000 } { 0000 } ; 0 + \__fp_rand_myriads:n { XXXX } { 0000 } { 0000 } \__fp_sep: 0 } { \msg_expandable_error:nnnnn @@ -21314,7 +21455,7 @@ \exp_after:wN \c_nan_fp } } -\cs_new:Npn \__fp_rand_o:w ; +\cs_new:Npn \__fp_rand_o:w \__fp_sep: { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 @@ -21328,41 +21469,41 @@ { \__fp_randint_default:w \__fp_randint_o:w } } \cs_new:Npn \__fp_randint_default:w #1 { \exp_after:wN #1 \c_one_fp } -\cs_new:Npn \__fp_randint_badarg:w \s__fp \__fp_chk:w #1#2#3; +\cs_new:Npn \__fp_randint_badarg:w \s__fp \__fp_chk:w #1#2#3\__fp_sep: { - \__fp_int:wTF \s__fp \__fp_chk:w #1#2#3; + \__fp_int:wTF \s__fp \__fp_chk:w #1#2#3\__fp_sep: { \if_meaning:w 1 #1 \if_int_compare:w - \__fp_use_i_until_s:nw #3 ; > \c__fp_prec_int + \__fp_use_i_until_s:nw #3 \__fp_sep: > \c__fp_prec_int \c_one_int \fi: \fi: } { \c_one_int } } -\cs_new:Npn \__fp_randint_o:w #1; #2; @ +\cs_new:Npn \__fp_randint_o:w #1\__fp_sep: #2\__fp_sep: @ { \if_case:w - \__fp_randint_badarg:w #1; - \__fp_randint_badarg:w #2; - \if:w 1 \__fp_compare_back:ww #2; #1; \c_one_int \fi: + \__fp_randint_badarg:w #1\__fp_sep: + \__fp_randint_badarg:w #2\__fp_sep: + \if:w 1 \__fp_compare_back:ww #2\__fp_sep: #1\__fp_sep: \c_one_int \fi: \c_zero_int - \__fp_randint_auxi_o:ww #1; #2; + \__fp_randint_auxi_o:ww #1\__fp_sep: #2\__fp_sep: \or: \__fp_invalid_operation_tl_o:ff - { randint } { \__fp_array_to_clist:n { #1; #2; } } + { randint } { \__fp_array_to_clist:n { #1\__fp_sep: #2\__fp_sep: } } \exp:w \fi: \exp_after:wN \exp_end: } -\cs_new:Npn \__fp_randint_auxi_o:ww #1 ; #2 ; #3 \exp_end: +\cs_new:Npn \__fp_randint_auxi_o:ww #1 \__fp_sep: #2 \__fp_sep: #3 \exp_end: { \fi: - \__fp_randint_auxii:wn #2 ; - { \__fp_randint_auxii:wn #1 ; \__fp_randint_auxiii_o:ww } + \__fp_randint_auxii:wn #2 \__fp_sep: + { \__fp_randint_auxii:wn #1 \__fp_sep: \__fp_randint_auxiii_o:ww } } -\cs_new:Npn \__fp_randint_auxii:wn \s__fp \__fp_chk:w #1#2#3#4 ; +\cs_new:Npn \__fp_randint_auxii:wn \s__fp \__fp_chk:w #1#2#3#4 \__fp_sep: { \if_meaning:w 0 #1 \exp_after:wN \use_i:nn @@ -21373,7 +21514,7 @@ { \exp_after:wN \__fp_ep_to_fixed:wwn \int_value:w \__fp_int_eval:w - #3 - \c__fp_prec_int , #4 {0000} {0000} ; + #3 - \c__fp_prec_int , #4 {0000} {0000} \__fp_sep: { \if_meaning:w 0 #2 \exp_after:wN \use_i:nnnn @@ -21384,22 +21525,22 @@ \__fp_fixed_continue:wn } } -\cs_new:Npn \__fp_randint_auxiii_o:ww #1 ; #2 ; +\cs_new:Npn \__fp_randint_auxiii_o:ww #1 \__fp_sep: #2 \__fp_sep: { - \__fp_fixed_add:wwn #2 ; - {0000} {0000} {0000} {0001} {0000} {0000} ; - \__fp_fixed_sub:wwn #1 ; + \__fp_fixed_add:wwn #2 \__fp_sep: + {0000} {0000} {0000} {0001} {0000} {0000} \__fp_sep: + \__fp_fixed_sub:wwn #1 \__fp_sep: { \exp_after:wN \use_i:nn \exp_after:wN \__fp_fixed_mul_add:wwwn - \exp:w \exp_end_continue_f:w \__fp_rand_myriads:n { XXXXXX } ; + \exp:w \exp_end_continue_f:w \__fp_rand_myriads:n { XXXXXX } \__fp_sep: } - #1 ; + #1 \__fp_sep: \__fp_randint_auxiv_o:ww - #2 ; - \__fp_randint_auxv_o:w #1 ; @ + #2 \__fp_sep: + \__fp_randint_auxv_o:w #1 \__fp_sep: @ } -\cs_new:Npn \__fp_randint_auxiv_o:ww #1#2#3#4#5 ; #6#7#8#9 +\cs_new:Npn \__fp_randint_auxiv_o:ww #1#2#3#4#5 \__fp_sep: #6#7#8#9 { \if_int_compare:w \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else: @@ -21409,7 +21550,7 @@ \fi: \__fp_randint_auxv_o:w {#1}{#2}{#3}{#4}#5 } -\cs_new:Npn \__fp_randint_auxv_o:w #1#2#3#4#5 ; #6 @ +\cs_new:Npn \__fp_randint_auxv_o:w #1#2#3#4#5 \__fp_sep: #6 @ { \exp_after:wN \__fp_sanitize:Nw \int_value:w @@ -21421,7 +21562,7 @@ \exp_after:wN \__fp_reverse_args:Nww \fi: \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl - {#1} {#2} {#3} {#4} {0000} {0000} ; + {#1} {#2} {#3} {#4} {0000} {0000} \__fp_sep: { \exp_after:wN \exp_stop_f: \int_value:w \__fp_int_eval:w \c__fp_prec_int @@ -21435,16 +21576,16 @@ \int_eval:n { \exp_after:wN \__fp_randint:ww - \int_value:w \int_eval:n {#1} \exp_after:wN ; - \int_value:w \int_eval:n {#2} ; + \int_value:w \int_eval:n {#1} \exp_after:wN \__fp_sep: + \int_value:w \int_eval:n {#2} \__fp_sep: } } -\cs_new:Npn \__fp_randint:ww #1; #2; +\cs_new:Npn \__fp_randint:ww #1\__fp_sep: #2\__fp_sep: { \if_int_compare:w #1 > #2 \exp_stop_f: \msg_expandable_error:nnnn { kernel } { randint-backward-range } {#1} {#2} - \__fp_randint:ww #2; #1; + \__fp_randint:ww #2\__fp_sep: #1\__fp_sep: \else: \if_int_compare:w \__fp_int_eval:w #2 \if_int_compare:w #1 > \c_zero_int @@ -21468,46 +21609,49 @@ \exp_after:wN \__fp_randint_wide_aux:w \int_value:w \exp_after:wN \__fp_randint_split_o:Nw - \tex_uniformdeviate:D 268435456 ; + \tex_uniformdeviate:D 268435456 \__fp_sep: \int_value:w \exp_after:wN \__fp_randint_split_o:Nw - \tex_uniformdeviate:D 268435456 ; + \tex_uniformdeviate:D 268435456 \__fp_sep: \int_value:w \exp_after:wN \__fp_randint_split_o:Nw \int_value:w \__fp_int_eval:w 131072 + \exp_after:wN \__fp_randint_split_o:Nw \int_value:w - \__kernel_int_add:nnn {#2} { -#1 } { -\c_max_int } ; + \__kernel_int_add:nnn {#2} { -#1 } { -\c_max_int } \__fp_sep: . } -\cs_new:Npn \__fp_randint_split_o:Nw #1#2 ; +\cs_new:Npn \__fp_randint_split_o:Nw #1#2 \__fp_sep: { \if_meaning:w 0 #1 - 0 \exp_after:wN ; \int_value:w 0 + 0 \exp_after:wN \__fp_sep: \int_value:w 0 \else: \exp_after:wN \__fp_randint_split_aux:w - \int_value:w \__fp_int_eval:w (#1#2 - 8192) / 16384 ; + \int_value:w \__fp_int_eval:w (#1#2 - 8192) / 16384 \__fp_sep: + #1#2 \fi: - \exp_after:wN ; + \exp_after:wN \__fp_sep: } -\cs_new:Npn \__fp_randint_split_aux:w #1 ; +\cs_new:Npn \__fp_randint_split_aux:w #1 \__fp_sep: { - #1 \exp_after:wN ; + #1 \exp_after:wN \__fp_sep: \int_value:w \__fp_int_eval:w - #1 * 16384 } -\cs_new:Npn \__fp_randint_wide_aux:w #1;#2; #3;#4; #5;#6;#7; . +\cs_new:Npn \__fp_randint_wide_aux:w + #1\__fp_sep:#2\__fp_sep: #3\__fp_sep:#4\__fp_sep: + #5\__fp_sep:#6\__fp_sep:#7\__fp_sep: . { \exp_after:wN \__fp_randint_wide_auxii:w \int_value:w \__fp_int_eval:w #5 * #3 + #6 * #1 + (#5 * #4 + #6 * #3 + #7 * #1 + (#5 * #2 + #7 * #3 + (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384 - ) / 16384 \exp_after:wN ; - \int_value:w \__fp_int_eval:w (#5 + #6) * 16384 + #7 ; - #1 ; #5 ; + ) / 16384 \exp_after:wN \__fp_sep: + \int_value:w \__fp_int_eval:w (#5 + #6) * 16384 + #7 \__fp_sep: + #1 \__fp_sep: #5 \__fp_sep: } -\cs_new:Npn \__fp_randint_wide_auxii:w #1; #2; #3; #4; +\cs_new:Npn \__fp_randint_wide_auxii:w + #1\__fp_sep: #2\__fp_sep: #3\__fp_sep: #4\__fp_sep: { \if_int_odd:w 0 \if_int_compare:w #1 = #2 \else: \exp_stop_f: \fi: @@ -21534,7 +21678,7 @@ \if_int_compare:w #1 < \c_one_int \msg_expandable_error:nnnn { kernel } { randint-backward-range } { 1 } {#1} - \__fp_randint:ww #1; 1; + \__fp_randint:ww #1\__fp_sep: 1\__fp_sep: \else: \if_int_compare:w #1 > \c__kernel_randint_max_int \__kernel_randint:nn { 1 } {#1} @@ -21582,7 +21726,7 @@ \exp_last_unbraced:Nf \__fp_types_binary_auxi:Nww { \__fp_types_cs_to_op:N #1 } } -\cs_new:Npn \__fp_types_binary_auxi:Nww #1#2#3; #4#5; @ +\cs_new:Npn \__fp_types_binary_auxi:Nww #1#2#3\__fp_sep: #4#5\__fp_sep: @ { \exp_after:wN \__fp_types_binary_auxii:NNww \cs:w @@ -21592,7 +21736,7 @@ \__fp_type_from_scan:N #4 _o:ww \cs_end: - #1 #2#3; #4#5; + #1 #2#3\__fp_sep: #4#5\__fp_sep: } \cs_new:Npn \__fp_types_binary_auxii:NNww #1#2 { @@ -21603,12 +21747,12 @@ %% File l3fp-symbolic.dtx (C) Copyright 2012-2015,2017,2018,2020,2021,2023 The LaTeX Project \fp_new:N \l__fp_symbolic_fp \scan_new:N \s__fp_symbolic -\cs_new_protected:Npn \__fp_symbolic_chk:w #1,#2#3; +\cs_new_protected:Npn \__fp_symbolic_chk:w #1,#2#3\__fp_sep: { \msg_error:nne { fp } { misused-fp } { \__fp_to_tl_dispatch:w - \s__fp_symbolic \__fp_symbolic_chk:w #1,{#2}; + \s__fp_symbolic \__fp_symbolic_chk:w #1,{#2}\__fp_sep: } } \cs_new:Npn \__fp_if_has_symbolic:nTF #1 @@ -21621,7 +21765,7 @@ \cs_new:Npn \__fp_if_has_symbolic_aux:w #1 \s__fp_symbolic #2 \s__fp_mark #3#4 \s__fp_stop { #3 } \cs_new:Npn \__fp_exp_after_symbolic_f:nw - #1 \s__fp_symbolic \__fp_symbolic_chk:w #2, #3#4; + #1 \s__fp_symbolic \__fp_symbolic_chk:w #2, #3#4\__fp_sep: { \exp_after:wN \__fp_exp_after_symbolic_aux:w \exp:w @@ -21633,13 +21777,13 @@ \__fp_exp_after_array_f:w #3 \s__fp_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w #1 } -\cs_new:Npn \__fp_exp_after_symbolic_aux:w #1, #2; +\cs_new:Npn \__fp_exp_after_symbolic_aux:w #1, #2\__fp_sep: { \__fp_if_has_symbolic:nTF {#2} - { \s__fp_symbolic \__fp_symbolic_chk:w #1, {#2} ; } + { \s__fp_symbolic \__fp_symbolic_chk:w #1, {#2} \__fp_sep: } { #1 #2 @ \prg_do_nothing: } } \cs_new:Npn \__fp_exp_after_symbolic_loop:N #1 @@ -21649,11 +21793,11 @@ \exp:w \__fp_exp_after_symbolic_loop:N } -\cs_new:Npn \__fp_symbolic_binary_o:Nww #1 #2; #3; +\cs_new:Npn \__fp_symbolic_binary_o:Nww #1 #2\__fp_sep: #3\__fp_sep: { \__fp_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: } \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_types_binary:Nww #1 , { #2; #3; } ; + \__fp_types_binary:Nww #1 , { #2\__fp_sep: #3\__fp_sep: } \__fp_sep: } \cs_set_protected:Npn \__fp_tmp:w #1#2 { @@ -21669,11 +21813,11 @@ } \tl_map_inline:nn { + - * / ^ & | } { \exp_args:Nc \__fp_tmp:w { __fp_#1_o:ww } {#1} } -\cs_new:Npn \__fp_symbolic_unary_o:NNw #1#2#3; @ +\cs_new:Npn \__fp_symbolic_unary_o:NNw #1#2#3\__fp_sep: @ { \__fp_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: } \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_types_unary:NNw #1#2 , { #3; } ; + \__fp_types_unary:NNw #1#2 , { #3\__fp_sep: } \__fp_sep: } \tl_map_inline:nn { @@ -21699,11 +21843,11 @@ \__fp_tmp:w { decimal } { 0 } \__fp_to_decimal_dispatch:w \__fp_tmp:w { int } { 0 } \__fp_to_int_dispatch:w \__fp_tmp:w { scientific } { nan } \__fp_to_scientific_dispatch:w -\cs_new:Npn \__fp_symbolic_convert:wnnN #1#2; #3#4#5 +\cs_new:Npn \__fp_symbolic_convert:wnnN #1#2\__fp_sep: #3#4#5 { \str_if_eq:nnTF {#1} { \s__fp_symbolic } - { \__fp_invalid_operation:nnw {#3} {#4} #1#2; } - { #5 #1#2; } + { \__fp_invalid_operation:nnw {#3} {#4} #1#2\__fp_sep: } + { #5 #1#2\__fp_sep: } } \cs_new:Npn \__fp_symbolic_cs_arg_to_fn:NN #1 { @@ -21724,7 +21868,7 @@ } } \cs_new:Npn \__fp_symbolic_to_tl:w - \s__fp_symbolic \__fp_symbolic_chk:w #1#2, #3#4; + \s__fp_symbolic \__fp_symbolic_chk:w #1#2, #3#4\__fp_sep: { \str_case:nnTF {#1} { @@ -21743,13 +21887,13 @@ ( \__fp_to_tl_dispatch:w #3 ) } } -\cs_new:Npn \__fp_symbolic_binary_to_tl:Nww #1, #2; #3; @ +\cs_new:Npn \__fp_symbolic_binary_to_tl:Nww #1, #2\__fp_sep: #3\__fp_sep: @ { \use:e { - ( \__fp_to_tl_dispatch:w #2; ) + ( \__fp_to_tl_dispatch:w #2\__fp_sep: ) \__fp_types_cs_to_op:N #1 - ( \__fp_to_tl_dispatch:w #3; ) + ( \__fp_to_tl_dispatch:w #3\__fp_sep: ) } } \cs_new:Npn \__fp_symbolic_function_to_tl:Nw #1, #2@ @@ -21797,7 +21941,7 @@ \token_if_eq_meaning:NNTF #2 \prg_do_nothing: { \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_variable_o:w #1 , { } ; + \__fp_variable_o:w #1 , { } \__fp_sep: } { \exp_after:wN \s__fp_symbolic @@ -21807,7 +21951,7 @@ \__fp_exp_after_symbolic_loop:N #1 { , \exp:w \use_none:nn } \exp_after:wN \exp_end: - \exp_after:wN { \exp_after:wN } \exp_after:wN ; + \exp_after:wN { \exp_after:wN } \exp_after:wN \__fp_sep: #2 } } @@ -21818,7 +21962,7 @@ { \__fp_exp_after_symbolic_f:nw { \__fp_parse_infix:NN } \s__fp_symbolic \__fp_symbolic_chk:w - \__fp_variable_o:w #2 , { } ; + \__fp_variable_o:w #2 , { } \__fp_sep: } \exp_args:NNc \__fp_variable_set_parsing_aux:NNn #1 { __fp_parse_word_#2:N } {#2} @@ -21983,7 +22127,7 @@ \__fp_exp_after_array_f:w #2 \s__fp_expr_stop \exp_after:wN } - \exp_after:wN ; + \exp_after:wN \__fp_sep: } } \int_new:N \l__fp_function_arg_int @@ -22015,7 +22159,7 @@ \exp_not:N \__fp_symbolic_chk:w \exp_not:N \__fp_function_arg_o:w \int_use:N \l__fp_function_arg_int - ########1 , { } ; + ########1 , { } \__fp_sep: } } \cs_set:Npn \__fp_function_arg_o:w ##1 @ @@ -22027,7 +22171,7 @@ \__fp_exp_after_symbolic_loop:N ##1 { , \tex_romannumeral:D \use_none:nn } \exp_after:wN \c_zero_int - \exp_after:wN { \exp_after:wN } \exp_after:wN ; + \exp_after:wN { \exp_after:wN } \exp_after:wN \__fp_sep: } \fp_set:Nn \l__fp_symbolic_fp {#4} \use:e @@ -22064,9 +22208,9 @@ #2 } \cs_new:Npn \__fp_function_arg_few:w #1 @ { \exp_after:wN \c_nan_fp } -\cs_new:Npn \__fp_function_arg_get:w #1#2#3; #4 @ +\cs_new:Npn \__fp_function_arg_get:w #1#2#3\__fp_sep: #4 @ { - \__fp_exp_after_array_f:w #3; \s__fp_expr_stop + \__fp_exp_after_array_f:w #3\__fp_sep: \s__fp_expr_stop \exp_after:wN \exp_stop_f: } \cs_new_protected:Npn \fp_clear_function:n #1 @@ -22141,25 +22285,25 @@ \exp_after:wN \__fp_array_gset:NNNNww \exp_after:wN #1 \exp_after:wN #1 - \int_value:w \int_eval:n {#2} \exp_after:wN ; + \int_value:w \int_eval:n {#2} \exp_after:wN \__fp_sep: \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} } \cs_generate_variant:Nn \fparray_gset:Nnn { c } -\cs_new_protected:Npn \__fp_array_gset:NNNNww #1#2#3#4#5 ; #6 ; +\cs_new_protected:Npn \__fp_array_gset:NNNNww #1#2#3#4#5 \__fp_sep: #6 \__fp_sep: { \__fp_array_bounds:NNnTF \msg_error:nneee #4 {#5} { \exp_after:wN \__fp_change_func_type:NNN - \__fp_use_i_until_s:nw #6 ; + \__fp_use_i_until_s:nw #6 \__fp_sep: \__fp_array_gset:w \__fp_array_gset_recover:Nw - #6 ; {#5} #1 #2 #3 + #6 \__fp_sep: {#5} #1 #2 #3 } { } } -\cs_new_protected:Npn \__fp_array_gset_recover:Nw #1#2 ; +\cs_new_protected:Npn \__fp_array_gset_recover:Nw #1#2 \__fp_sep: { - \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \__fp_error:nffn { unknown-type } { \tl_to_str:n { #2 \__fp_sep: } } { } { } \exp_after:wN #1 \c_nan_fp } \cs_new_protected:Npn \__fp_array_gset:w \s__fp \__fp_chk:w #1#2 @@ -22173,7 +22317,7 @@ \s__fp \__fp_chk:w #1 #2 } \cs_new_protected:Npn \__fp_array_gset_normal:w - \s__fp \__fp_chk:w 1 #1 #2 #3#4#5 ; #6#7#8#9 + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5 \__fp_sep: #6#7#8#9 { \__kernel_intarray_gset:Nnn #7 {#6} {#2} \__kernel_intarray_gset:Nnn #8 {#6} @@ -22203,7 +22347,7 @@ { \exp_after:wN \__fp_array_item:NwN \exp_after:wN #1 - \int_value:w \int_eval:n {#2} ; + \int_value:w \int_eval:n {#2} \__fp_sep: \__fp_to_decimal:w } \cs_generate_variant:Nn \fparray_item:Nn { c } @@ -22211,11 +22355,11 @@ { \exp_after:wN \__fp_array_item:NwN \exp_after:wN #1 - \int_value:w \int_eval:n {#2} ; + \int_value:w \int_eval:n {#2} \__fp_sep: \__fp_to_tl:w } \cs_generate_variant:Nn \fparray_item_to_tl:Nn { c } -\cs_new:Npn \__fp_array_item:NwN #1#2 ; #3 +\cs_new:Npn \__fp_array_item:NwN #1#2 \__fp_sep: #3 { \__fp_array_bounds:NNnTF \msg_expandable_error:nnfff #1 {#2} { \exp_after:wN \__fp_array_item:NNNnN #1 {#2} #3 } @@ -22224,22 +22368,22 @@ \cs_new:Npn \__fp_array_item:NNNnN #1#2#3#4 { \exp_after:wN \__fp_array_item:N - \int_value:w \__kernel_intarray_item:Nn #2 {#4} \exp_after:wN ; - \int_value:w \__kernel_intarray_item:Nn #3 {#4} \exp_after:wN ; - \int_value:w \__kernel_intarray_item:Nn #1 {#4} ; + \int_value:w \__kernel_intarray_item:Nn #2 {#4} \exp_after:wN \__fp_sep: + \int_value:w \__kernel_intarray_item:Nn #3 {#4} \exp_after:wN \__fp_sep: + \int_value:w \__kernel_intarray_item:Nn #1 {#4} \__fp_sep: } \cs_new:Npn \__fp_array_item:N #1 { \if_meaning:w 0 #1 \exp_after:wN \__fp_array_item_special:w \fi: \__fp_array_item:w #1 } -\cs_new:Npn \__fp_array_item:w #1 #2#3#4#5 #6 ; 1 #7 ; +\cs_new:Npn \__fp_array_item:w #1 #2#3#4#5 #6 \__fp_sep: 1 #7 \__fp_sep: { \exp_after:wN \__fp_array_item_normal:w \int_value:w \if_meaning:w #1 1 0 \else: 2 \fi: \exp_stop_f: - #7 ; {#2#3#4#5} {#6} ; + #7 \__fp_sep: {#2#3#4#5} {#6} \__fp_sep: } -\cs_new:Npn \__fp_array_item_special:w #1 ; #2 ; #3 ; #4 +\cs_new:Npn \__fp_array_item_special:w #1 \__fp_sep: #2 \__fp_sep: #3 \__fp_sep: #4 { \exp_after:wN #4 \exp:w \exp_end_continue_f:w @@ -22251,8 +22395,9 @@ \else: \exp_after:wN \c_minus_inf_fp \fi: } -\cs_new:Npn \__fp_array_item_normal:w #1 #2#3#4#5 #6 ; #7 ; #8 ; #9 - { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} ; } +\cs_new:Npn \__fp_array_item_normal:w + #1 #2#3#4#5 #6 \__fp_sep: #7 \__fp_sep: #8 \__fp_sep: #9 + { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} \__fp_sep: } \prg_new_eq_conditional:NNn \fparray_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \fparray_if_exist:c \cs_if_exist:c @@ -24995,27 +25140,30 @@ \__tl_analysis_map:NwNw #1 } \cs_new_protected:Npn \tl_analysis_show:N - { \__tl_analysis_show:NNN \msg_show:nneeee \tl_show:N } + { \__tl_analysis_show:NNnnN \msg_show:nneeee \tl_show:N {} {} } \cs_new_protected:Npn \tl_analysis_log:N - { \__tl_analysis_show:NNN \msg_log:nneeee \tl_log:N } -\cs_new_protected:Npn \__tl_analysis_show:NNN #1#2#3 { - \tl_if_exist:NTF #3 + \__tl_analysis_show:NNnnN \msg_log:nneeee \tl_log:N + { \iow_newline: >~ . } { . } + } +\cs_new_protected:Npn \__tl_analysis_show:NNnnN #1#2#3#4#5 + { + \tl_if_exist:NTF #5 { - \exp_args:No \__tl_analysis:n {#3} + \exp_args:No \__tl_analysis:n {#5} #1 { tl } { show-analysis } - { \token_to_str:N #3 } { \__tl_analysis_show: } { } { } + { \token_to_str:N #5 } { \__tl_analysis_show: } {#3} {#4} } { #2 #3 } } \cs_new_protected:Npn \tl_analysis_show:n - { \__tl_analysis_show:Nn \msg_show:nneeee } + { \__tl_analysis_show:Nnnn \msg_show:nneeee {} {} } \cs_new_protected:Npn \tl_analysis_log:n - { \__tl_analysis_show:Nn \msg_log:nneeee } -\cs_new_protected:Npn \__tl_analysis_show:Nn #1#2 + { \__tl_analysis_show:Nnnn \msg_log:nneeee { \iow_newline: >~ . } { . } } +\cs_new_protected:Npn \__tl_analysis_show:Nnnn #1#2#3#4 { - \__tl_analysis:n {#2} - #1 { tl } { show-analysis } { } { \__tl_analysis_show: } { } { } + \__tl_analysis:n {#4} + #1 { tl } { show-analysis } { } { \__tl_analysis_show: } {#2} {#3} } \cs_new:Npn \__tl_analysis_show: { @@ -25348,8 +25496,8 @@ { The~token~list~ \tl_if_empty:nF {#1} { #1 ~ } \tl_if_empty:nTF {#2} - { is~empty } - { contains~the~tokens: #2 } + { is~empty #3 } + { contains~the~tokens: #2 #4 } } %% File: l3regex.dtx \cs_new_eq:NN \__regex_int_eval:w \tex_numexpr:D diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex index e63ad6c9a..355f6dc1b 100644 --- a/texmf/tex/latex/l3kernel/expl3-generic.tex +++ b/texmf/tex/latex/l3kernel/expl3-generic.tex @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `generic,loader') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx index 29b9700c1..5e107c4ac 100644 --- a/texmf/tex/latex/l3kernel/expl3.ltx +++ b/texmf/tex/latex/l3kernel/expl3.ltx @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `2ekernel,loader') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.lua b/texmf/tex/latex/l3kernel/expl3.lua index f436dc4da..8478874bd 100644 --- a/texmf/tex/latex/l3kernel/expl3.lua +++ b/texmf/tex/latex/l3kernel/expl3.lua @@ -11,7 +11,7 @@ -- l3intarray.dtx (with options: `package,lua') -- l3pdf.dtx (with options: `package,lua') -- --- Copyright (C) 1990-2024 The LaTeX Project +-- Copyright (C) 1990-2025 The LaTeX Project -- -- It may be distributed and/or modified under the conditions of -- the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty index 7f73b6bdd..114fe9842 100644 --- a/texmf/tex/latex/l3kernel/expl3.sty +++ b/texmf/tex/latex/l3kernel/expl3.sty @@ -6,7 +6,7 @@ %% %% expl3.dtx (with options: `package,loader') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-12-25}% +\def\ExplFileDate{2025-01-18}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/texmf/tex/latex/l3kernel/l3debug.def b/texmf/tex/latex/l3kernel/l3debug.def index 7b5724918..4dd189fde 100644 --- a/texmf/tex/latex/l3kernel/l3debug.def +++ b/texmf/tex/latex/l3kernel/l3debug.def @@ -6,7 +6,7 @@ %% %% l3debug.dtx (with options: `package') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-12-25}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2025-01-18}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail diff --git a/texmf/tex/latex/l3kernel/l3doc.cls b/texmf/tex/latex/l3kernel/l3doc.cls index 0649af9fb..14e4c01f6 100644 --- a/texmf/tex/latex/l3kernel/l3doc.cls +++ b/texmf/tex/latex/l3kernel/l3doc.cls @@ -6,7 +6,7 @@ %% %% l3doc.dtx (with options: `class') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-12-25}{} +\ProvidesExplClass{l3doc}{2025-01-18}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq diff --git a/texmf/tex/latex/l3kernel/l3docstrip.tex b/texmf/tex/latex/l3kernel/l3docstrip.tex index eda3985bd..ab0a23bae 100644 --- a/texmf/tex/latex/l3kernel/l3docstrip.tex +++ b/texmf/tex/latex/l3kernel/l3docstrip.tex @@ -6,7 +6,7 @@ %% %% l3docstrip.dtx (with options: `program') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88591.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88591.def index 485fa39a1..334eb11de 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88591.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88591.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88591') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso885910.def b/texmf/tex/latex/l3kernel/l3str-enc-iso885910.def index a7af45675..e5efe8398 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso885910.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso885910.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885910') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso885911.def b/texmf/tex/latex/l3kernel/l3str-enc-iso885911.def index ec28015dd..4b1e383af 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso885911.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso885911.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885911') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso885913.def b/texmf/tex/latex/l3kernel/l3str-enc-iso885913.def index b28db7ded..9fdc01d2a 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso885913.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso885913.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885913') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso885914.def b/texmf/tex/latex/l3kernel/l3str-enc-iso885914.def index a154a1c0c..35816cbc8 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso885914.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso885914.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885914') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso885915.def b/texmf/tex/latex/l3kernel/l3str-enc-iso885915.def index ca071e992..f976fc6ab 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso885915.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso885915.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885915') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso885916.def b/texmf/tex/latex/l3kernel/l3str-enc-iso885916.def index 44d4a1ae6..273c55d24 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso885916.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso885916.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso885916') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88592.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88592.def index d54a4820c..897c07532 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88592.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88592.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88592') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88593.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88593.def index d195b703b..712722dce 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88593.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88593.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88593') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88594.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88594.def index 2249de98b..9fe91bc8b 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88594.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88594.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88594') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88595.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88595.def index e54409a6e..8d70b8a14 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88595.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88595.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88595') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88596.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88596.def index e7c6e888c..c047db5f3 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88596.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88596.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88596') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88597.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88597.def index 292b3600e..653f60578 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88597.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88597.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88597') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88598.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88598.def index eef8f134b..d82350194 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88598.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88598.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88598') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/texmf/tex/latex/l3kernel/l3str-enc-iso88599.def b/texmf/tex/latex/l3kernel/l3str-enc-iso88599.def index cb640b641..677706e16 100644 --- a/texmf/tex/latex/l3kernel/l3str-enc-iso88599.def +++ b/texmf/tex/latex/l3kernel/l3str-enc-iso88599.def @@ -6,7 +6,7 @@ %% %% l3str-convert.dtx (with options: `iso88599') %% -%% Copyright (C) 1990-2024 The LaTeX Project +%% Copyright (C) 1990-2025 The LaTeX Project %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of From 08926fa6af2c978cbd19f14597252877619f6338 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Thu, 30 Jan 2025 21:26:26 +0000 Subject: [PATCH 14/14] Step release tag (latex-lab) --- required/latex-lab/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/required/latex-lab/README.md b/required/latex-lab/README.md index 89d8d9f65..0285582b8 100644 --- a/required/latex-lab/README.md +++ b/required/latex-lab/README.md @@ -1,6 +1,6 @@ # LaTeX laboratory -Release 2024-11-01 +Release 2024-11-01 patch level 2 ## Overview