diff options
author | Norbert Preining <norbert@preining.info> | 2024-09-04 03:04:32 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-09-04 03:04:32 +0000 |
commit | 5b2245e3ac1c10fe82b01f45b3e830616b26149f (patch) | |
tree | c3d1c2441f49b242aee5ced04f5a7e000c27edae /macros/latex | |
parent | d62e0417014cfe0dc6c41513f5a94be51b84ecc8 (diff) |
CTAN sync 202409040304
Diffstat (limited to 'macros/latex')
50 files changed, 680 insertions, 150 deletions
diff --git a/macros/latex/contrib/heria/heria-proposal.pdf b/macros/latex/contrib/heria/heria-proposal.pdf Binary files differindex 79892c24d2..c1f76bb52e 100644 --- a/macros/latex/contrib/heria/heria-proposal.pdf +++ b/macros/latex/contrib/heria/heria-proposal.pdf diff --git a/macros/latex/contrib/heria/heria.dtx b/macros/latex/contrib/heria/heria.dtx index 7da06a879d..7963db9d3a 100644 --- a/macros/latex/contrib/heria/heria.dtx +++ b/macros/latex/contrib/heria/heria.dtx @@ -33,7 +33,7 @@ %<class>\NeedsTeXFormat{LaTeX2e} %<class>\ProvidesClass{heria} %<*class> -[2024-08-14 v3.4.1.1 Class for Horizon Europe (R)IA proposals] +[2024-09-03 v3.4.1.2 Class for Horizon Europe (R)IA proposals] %</class> % %<*driver> @@ -526,6 +526,8 @@ % \subsection{Version history} % % \begin{description} +% \item[v3.4.1.2 (2024-09-03)] Fixed a bug where the column totals in +% Table 3.1f were doubled. % \item[v3.4.1.1 (2024-08-14)] Update documentation with a reference % to the \emph{TUGboat} paper on \textsf{heria}. % \item[v3.4.1.0 (2024-07-14)] Add support for version 3.4 of the @@ -1108,7 +1110,7 @@ \whiledo{\value{@secolumn}<\value{@wpcount}}{% \stepcounter{@secolumn}% \edef\serowtemp{\serowtemp&\fpeval{round(\csname % - @wpPersonMonths\arabic{@secolumn}\endcsname,0)}}% + @wpPersonMonths\arabic{@secolumn}\endcsname/2,0)}}% \@bsphack \protected@write\@auxout{}% {\string\expandafter\string\expandafter\string\expandafter% @@ -1117,7 +1119,7 @@ \arabic{@secolumn}},0)}}}% \@esphack } - \serowtemp & \fpeval{round(\setotalpm,0)} \\ + \serowtemp & \fpeval{round(\setotalpm/2,0)} \\ \hline \end{xltabular} \end{center} diff --git a/macros/latex/contrib/heria/heria.pdf b/macros/latex/contrib/heria/heria.pdf Binary files differindex 3295f000a9..7d160fd465 100644 --- a/macros/latex/contrib/heria/heria.pdf +++ b/macros/latex/contrib/heria/heria.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md index 4c4251c47e..a346f8e595 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md +++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md @@ -5,7 +5,17 @@ first release 0.95a, 2021-02-23 will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), this project uses date-based 'snapshot' version identifiers. +## [2024-09-02] +Version: 2024-09-02 v0.96k + +### Added + - l3pdfmeta.dtx: add standard test `Catalog_no_OCProperties_AS`, (issue#77) + +### Fixed + - l3pdfmeta.dtx: remove Catalog_no_OCProperties from pdf/a-2b onwards (issue#77) + ## [2024-08-17] +Version: 2024-08-17 v0.96j ### Added diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md index 9ac57108e0..d77eef9d6b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/README.md +++ b/macros/latex/contrib/pdfmanagement-testphase/README.md @@ -1,6 +1,6 @@ # LaTeX PDF management testphase bundle -Version: 0.96j, 2024-08-17 +Version: 0.96k, 2024-09-02 This package is used during a test phase to load the new PDF management code of LaTeX. diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty index 68272c9b16..856c960262 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty +++ b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty @@ -24,7 +24,7 @@ %% This file has the LPPL maintenance status "maintained". %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{color-ltx}[2024-08-17 v0.96j +\ProvidesPackage{color-ltx}[2024-09-02 v0.96k Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2022/01/06 v1.3d) (DPC)] \edef\Gin@codes{% \catcode`\noexpand\^^A\the\catcode`\^^A\relax diff --git a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty index eb3c8e4b86..a735e6b8f9 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty +++ b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty @@ -19,7 +19,7 @@ % % for those people who are interested. \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-08-17}{0.96j} +\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-09-02}{0.96k} {temporary patches for the colorspace package to test pdfresource management ... UF} diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx index f38e8d8811..9f00caa6a1 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx @@ -82,7 +82,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -965,7 +965,7 @@ %<@@=hyp> % \end{macrocode} % \begin{macrocode} -\ProvidesFile{hgeneric-testphase.def}[2024-08-17 v0.96j % +\ProvidesFile{hgeneric-testphase.def}[2024-09-02 v0.96k % generic Hyperref driver for the LaTeX PDF management testphase bundle] \RequirePackage{etoolbox} %why? diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf Binary files differindex ab0f008a55..bacd89ec77 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx index 8ab7e948ac..0af8a722ef 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx @@ -45,7 +45,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % @@ -56,27 +56,27 @@ % \begin{macrocode} %<drivers>\ProvidesExplFile %<*dvipdfmx> - {l3backend-testphase-dvipdfmx.def}{2024-08-17}{} + {l3backend-testphase-dvipdfmx.def}{2024-09-02}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-testphase-dvips.def}{2024-08-17}{} + {l3backend-testphase-dvips.def}{2024-09-02}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} %</dvips> %<*dvisvgm> - {l3backend-testphase-dvisvgm.def}{2024-08-17}{} + {l3backend-testphase-dvisvgm.def}{2024-09-02}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-testphase-luatex.def}{2024-08-17}{} + {l3backend-testphase-luatex.def}{2024-09-02}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-testphase-pdftex.def}{2024-08-17}{} + {l3backend-testphase-pdftex.def}{2024-09-02}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} %</pdftex> %<*xdvipdfmx> - {l3backend-testphase-xetex.def}{2024-08-17}{} + {l3backend-testphase-xetex.def}{2024-09-02}{} {LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX} %</xdvipdfmx> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf Binary files differindex f15724e4d4..e7f2afaee3 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx index 59268785a4..79a569c9d5 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -432,7 +432,7 @@ % \begin{macrocode} %<@@=pdfannot> %<*header> -\ProvidesExplPackage{l3pdfannot}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdfannot}{2024-09-02}{0.96k} {PDF-annotations} \RequirePackage{l3pdfdict} %</header> diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf Binary files differindex 568726ab7d..38a20a885e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx index 2c297fb5c7..99bd2e5eb1 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -208,7 +208,7 @@ % \begin{macrocode} %<@@=pdfdict> %<*header> -\ProvidesExplPackage{l3pdfdict}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdfdict}{2024-09-02}{0.96k} {Tools for PDF dictionaries (LaTeX PDF management testphase bundle)} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf Binary files differindex 37534467d5..227fa654eb 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx index 7cda9b3102..0ab10c4432 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf Binary files differindex 1981d6c95c..21e692b792 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx index 8514ce7200..e39a6f445e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx @@ -64,7 +64,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf Binary files differindex 1b9850003e..e40ffb4a4c 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx index ceca7dd26f..19822f2555 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf Binary files differindex f17a26c1b8..a8a5028729 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx index 3c71dc973e..4fc063380d 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx @@ -55,7 +55,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf Binary files differindex f6a8c91e70..d23684c882 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx index e26f875c37..b310582a36 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx @@ -83,7 +83,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf Binary files differindex dcbce59fbf..dcf6d39555 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx index bdd1c28ffc..22e01d7597 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf Binary files differindex 1551733a91..cd54254636 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx index 27deb954c3..c827383c2b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx @@ -69,7 +69,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -972,7 +972,7 @@ %<*package> %<@@=pdffield> \NeedsTeXFormat{LaTeX2e} -\ProvidesExplPackage{l3pdffield-testphase}{2024-08-17}{0.96j}% +\ProvidesExplPackage{l3pdffield-testphase}{2024-09-02}{0.96k}% {form fields} % \end{macrocode} % \subsection{hyperref specific command} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf Binary files differindex 395c405a56..1c859d4b52 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx index 68287a9d5c..d546cf21d6 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -398,7 +398,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdffile}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdffile}{2024-09-02}{0.96k} {embedding and referencing files in PDF---LaTeX PDF management testphase bundle} \RequirePackage{l3pdftools} %temporarily!! %</header> diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf Binary files differindex ec0b0616e8..e4f1276b06 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx index 2890995126..6a27256117 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx @@ -57,7 +57,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -632,7 +632,7 @@ %<@@=pdfmanagement> %<*header> % -\ProvidesExplPackage{l3pdfmanagement}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdfmanagement}{2024-09-02}{0.96k} {Management of core PDF dictionaries (LaTeX PDF management testphase bundle)} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf Binary files differindex 8f126de615..59b1627594 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx index a6d31a1e63..1126a42da4 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -190,6 +190,8 @@ % a test for at least the PDF-format will be added in future. % \item[|Catalog_no_OCProperties|] don't add |/OCProperties| to the catalog % {\em l3pdfmeta removes this entry at the end of the document} +% \item[|Catalog_OCProperties_no_AS|] +% do not use |/AS| optional content configuration dictionary. % \item[|Catalog_EmbeddedFiles|] ensure that an |EmbeddedFiles| name tree is % in the catalog. This is required for PDF/A-4f. % \item[|annot_widget_no_AA|] (rule 6.6.2-1) @@ -631,7 +633,7 @@ % \begin{macrocode} %<@@=pdfmeta> %<*header> -\ProvidesExplPackage{l3pdfmeta}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdfmeta}{2024-09-02}{0.96k} {PDF-Standards---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} @@ -887,7 +889,10 @@ % %=============== % Rule 6.1.13-1 CosDocument, isOptionalContentPresent == false - ,Catalog_no_OCProperties = + ,Catalog_no_OCProperties = + % Rule 6.9-4 The AS key shall not appear in any optional content configuration dictionary. + % actually only starting with A-2 but doesn't harm here either + ,Catalog_OCProperties_no_AS= %=============== % Rule 6.6.1-1: PDAction, S == "GoTo" || S == "GoToR" || S == "Thread" % || S == "URI" || S == "Named" || S == "SubmitForm" @@ -938,6 +943,11 @@ { g_@@_standard_pdf/A-2B_prop }{max_pdf_version}{1.7} \prop_gput:cnn { g_@@_standard_pdf/A-2B_prop }{omit_CID}{} +% OCG layers are allowed (with restrictions) +\prop_gremove:cn + { g_@@_standard_pdf/A-2B_prop } + { Catalog_no_OCProperties } + %A-2u ============== \prop_new:c { g_@@_standard_pdf/A-2U_prop } \prop_gset_eq:cc @@ -1023,7 +1033,8 @@ { g_@@_standard_pdf/A-4_prop }{conformance} \prop_gremove:cn { g_@@_standard_pdf/A-4_prop }{max_pdf_version} - +\prop_gremove:cn + { g_@@_standard_pdf/A-4_prop }{Catalog_OCProperties_no_AS} %A-4f ============== \prop_new:c { g_@@_standard_pdf/A-4F_prop } \prop_gset_eq:cc diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf Binary files differindex 9a5de67174..3cb6469d3c 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf Binary files differnew file mode 100644 index 0000000000..5d40c31cf9 --- /dev/null +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfoutline.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx index e6d655c96e..e5afe16ee6 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -235,7 +235,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdftools}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdftools}{2024-09-02}{0.96k} {candidate commands for l3pdf---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf Binary files differindex 88abccd671..1e4bc0eae6 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx index 4daa9d2b83..af40217669 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -132,7 +132,7 @@ % \begin{macrocode} %<@@=pdf> %<*header> -\ProvidesExplPackage{l3pdfxform}{2024-08-17}{0.96j} +\ProvidesExplPackage{l3pdfxform}{2024-09-02}{0.96k} {command to create xforms (beta)---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf Binary files differindex 2debc15494..e9982a66f2 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx index 3d29afa58b..0e5a73c436 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -220,7 +220,7 @@ % \begin{macrocode} %<@@=pdfmanagement> %<*header> -\ProvidesExplPackage{ltdocinit}{2024-08-17}{0.96j} +\ProvidesExplPackage{ltdocinit}{2024-09-02}{0.96k} {Initialize document metadata} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf Binary files differindex 7bfd5bb36b..c345fe240a 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx index 148d15ce95..06f5a9efee 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -63,7 +63,7 @@ % |debug={firstaidoff={name1,name2,...},...}|. % \begin{macrocode} %<*package> -\ProvidesExplPackage{pdfmanagement-firstaid}{2024-08-17}{0.96j} +\ProvidesExplPackage{pdfmanagement-firstaid}{2024-09-02}{0.96k} {LaTeX PDF management testphase bundle / firstaid-patches} %<@@=pdfmanagement> diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf Binary files differindex 8c4d7d88cb..1b9512a2ce 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx index af4520b433..53c913bb0a 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96j, released 2024-08-17} +% \date{Version 0.96k, released 2024-09-02} % % \maketitle % \begin{documentation} @@ -394,7 +394,7 @@ % \begin{macrocode} %<@@=pdf> %<*package> -\ProvidesExplPackage{pdfmanagement-testphase}{2024-08-17}{0.96j} +\ProvidesExplPackage{pdfmanagement-testphase}{2024-09-02}{0.96k} {LaTeX PDF management testphase bundle} \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} \IfFormatAtLeastTF{2020-10-01}{}{ @@ -422,7 +422,7 @@ % to allow to set it in the document. % \begin{macrocode} %<*header> -\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-08-17}{0.96j} +\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-09-02}{0.96k} {PDF~management~code~(testphase)} % \end{macrocode} % We define a boolean for the new delayed shipout. This is temporary. At some diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf Binary files differindex f2dc6282db..d028a25c0a 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty index 5fce11f19d..49059834a1 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty +++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty @@ -1,6 +1,6 @@ %% LaTeX2e file `xcolor-patches-tmp-ltx.sty' %% -\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-08-17 v0.96j patch xcolor for l3color] +\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-09-02 v0.96k patch xcolor for l3color] \@ifundefined{color_set:nn}{\RequirePackage{l3color}}{} \ExplSyntaxOn diff --git a/macros/latex/contrib/verifycommand/README.txt b/macros/latex/contrib/verifycommand/README.txt index 4ee9666691..bd4b792268 100644 --- a/macros/latex/contrib/verifycommand/README.txt +++ b/macros/latex/contrib/verifycommand/README.txt @@ -1,5 +1,5 @@ -LaTeX verifycommand package v1.00 README.txt +LaTeX verifycommand package v1.10 README.txt Files included are: diff --git a/macros/latex/contrib/verifycommand/verifycommand.dtx b/macros/latex/contrib/verifycommand/verifycommand.dtx index 4e1a1ae6d6..eb01d05e33 100644 --- a/macros/latex/contrib/verifycommand/verifycommand.dtx +++ b/macros/latex/contrib/verifycommand/verifycommand.dtx @@ -17,7 +17,7 @@ % \iffalse %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{verifycommand} -%<package> [2024/01/11 v1.00 Verify definitions have not changed.] +%<package> [2024/09/03 v1.10 Verify definitions have not changed.] % %<*driver> \documentclass{ltxdoc} @@ -77,7 +77,7 @@ \usepackage{microtype} - +\usepackage{nowidow} \usepackage[svgnames]{xcolor} @@ -233,6 +233,7 @@ \usepackage{\mypackagename} +%\usepackage[disable]{\mypackagename} @@ -301,6 +302,7 @@ pageanchor=true, % % \changes{v1.00}{2024/01/11}{\ 2024/01/11 Initial version.} +% \changes{v1.10}{2024/09/03}{\ 2024/09/03} % \GetFileInfo{\mypackagename.sty} @@ -353,11 +355,17 @@ pageanchor=true, % % To improve reliability, % the \pkg{verifycommand} package provides a way to verify that -% macros or environments have not changed. -% This allows a package author to check before patching a definition. +% macros or environments have not changed since the patches were +% last designed. +% This may be checked before applying the patch. % If a definition is not as expected, a warning is issued. % At the end of the compile, a list of all changed definitions is displayed. % +% Conditionals are provided, allowing multiple versions of a definition +% to be tested and patched, warning if no known version is found. +% Conditionals also allow the package to verify that several macros +% are unchanged before taking a single common action. +% % \vfill % % \footnotesize @@ -448,12 +456,51 @@ pageanchor=true, % expected values. % % -% \clearpage +% \section{Warnings} +% +% \changes{v1.10}{2024/09/03}{Docs: Added Warnings section.} +% +% The document \textit{\LaTeX\ for authors} (\cmds{texdoc usrguide} +% recommends the use of \LaTeX\ hooks where possible (\cmds{texdoc lthooks}). +% +% Commands created with \cs{NewDocumentCommand} and related may +% \watchout[kernel changes] +% change their definitions when the inner workings of +% \cs{NewDocumentCommand} are optimized. +% When this occurs, any checksums for these commands will +% change, even though the associated patches probably will continue to work. +% If you use \pkg{verifycommand} for these commands, expect the +% checksums to need updates at some point in the future. +% +% Use \cs{NewCommandCopy} and \cs{NewEnvironmentCopy} to copy commands +% for reuse. These work with all kinds of commmand definitions. +% See \cmds{texdoc usrguide} for details. +% +% Use \cs{ShowCommand} or \cs{ShowEnvironment} to see an existing definition, +% which again works with all forms of commands. +% % % \section{How to use \pkg{verifycommand}} % +% % \subsection{The user interface} % +% \changes{v1.10}{2024/06/25}{Docs: Added conditional tests.} +% +% In the following, \oarg{yourpackagename} is the package doing the +% testing and patching, +% and \oarg{theirpackagename} is the package which defines +% the original macro. +% Using these optional package names make it easier to find where +% to make changes if needed. +% +% If there is only one optional argument, +% \watchout[optional arguments] +% it is used as \oarg{yourpackagename}, +% to identify where to find the \cs{VerifyCommand} checksum entry. +% The second optional argument identifies what is being patched, +% in case it has been changed. +% % \needspace{2\baselineskip} % \DescribeMacro{\VerifyCommand} \oarg{yourpackagename} \oarg{theirpackagename} % \marg{\cs{macroname}} \marg{\MDfive\ checksum} @@ -464,13 +511,54 @@ pageanchor=true, % \fqquad \marg{begin \MDfive\ checksum} \marg{end \MDfive\ checksum} % % Use one of these macros just before patching a macro or environment, -% as seen below. +% as seen below. A test is performed to see if the definition +% is as expected before applying a patch. % % Note that there is one checksum for \cs{VerifyCommand}, but there -% are two checksums for \cs{VerifyEnvironment}: once for the begin section +% are two checksums for an environment: once for the begin section % and one for the end section. % -% If there is only one optional argument, it is used as your package name. +% It may be necessary to test for each of several possible versions of +% a definition, then patch accordingly. The following test and apply a +% true or false clause, without issuing a warning. +% +% \needspace{2\baselineskip} +% \DescribeMacro{\IfVerifyCommand} \oarg{yourpackagename} \oarg{theirpackagename} +% \marg{\cs{macroname}} \\ +% \fqquad \marg{\MDfive\ checksum} \\ +% \fqquad \marg{true} \marg{false} +% +% \needspace{3\baselineskip} +% \DescribeMacro{\IfVerifyEnvironmentBegin} \oarg{yourpackagename} \oarg{theirpackagename} +% \marg{\env{envname}} \\ +% \fqquad \marg{begin \MDfive\ checksum} \\ +% \fqquad \marg{true} \marg{false} +% +% \needspace{3\baselineskip} +% \DescribeMacro{\IfVerifyEnvironmentEnd} \oarg{yourpackagename} \oarg{theirpackagename} +% \marg{\env{envname}} \\ +% \fqquad \marg{end \MDfive\ checksum} \\ +% \fqquad \marg{true} \marg{false} +% +% Tests may be done as a group, either to try several versions of the same +% definition, or to verify several definitions and act if any of them fail: +% +% \DescribeMacro{\TestVerifyCommands} Starts a group of tests. +% +% \DescribeMacro{\IfVerifyCommandPassed} \marg{true} \marg{false} +% \quad Act if any of a group passed. +% May be used to try to patch multiple versions of a command. +% +% \DescribeMacro{\IfVerifyCommandFailed} \marg{true} \marg{false} +% \quad Act if any of a group failed. +% May be used to verify several definitions are unchanged. +% +% A warning may be also issued: +% +% \DescribeMacro{\VERCMDWarning} \marg{yourpackage} \marg{theirpackage} \marg{defn name} +% \quad Used to issue a warning that the macro has changed. +% +% See \cref{sec:conditionals} for examples of conditional tests. % % % \subsection{Placing the macros} @@ -483,70 +571,86 @@ pageanchor=true, % % \begin{sourceverb} % \VerifyCommand{\LaTeX}{} -% <patch \LaTeX here> +% (patch \LaTeX here) % % \VerifyCommand[mypackage]{\textcolor}{} -% <patch \textcolor here> +% (patch \textcolor here) % % \VerifyCommand[mypackage][graphics]{\rotatebox}{} -% <patch \rotatebox here> +% (patch \rotatebox here) % % \VerifyEnvironment{tabbing}{}{} -% <patch tabbing here> +% (patch tabbing here) % \end{sourceverb} % % % \subsection{Finding the checksums of the current definitions} +% \changes{v1.10}{2024/06/25}{Docs: ``Finding checksums'' reorganized.} % -% In the above examples, testing \cs{LaTeX} would print a warning showing -% the correct \MDfive\ checksum. -% Testing \cs{textcolor} would do the same, but as a \cs{PackageWarning} from \pkg{mypackage}. -% Testing \cs{rotatebox} would also mention the package being tested, \pkg{graphics}. -% Testing \env{tabbing} issues a separate warning for the begin and end sections. -% -% +% The warnings are issued and the correct checksums are given. +% The type of warning depends on the usage: +% \begin{itemize} +% \item Verifying \cs{LaTeX} would print a warning showing +% the correct \MDfive\ checksum. % \begin{sourceverb} -% Warning: Something may fail. A definition has changed: +% Warning: A definition has changed: % \LaTeX -% FAAAC6146C9A80F46A1F029B67923851 +% (FAAAC6146C9A80F46A1F029B67923851) % on input line 464. - -% Package mypackage Warning: Something may fail. A definition has changed: +% \end{sourceverb} +% \item Verifying \cs{textcolor} would do the same, +% but as a \cs{PackageWarning} from \pkg{mypackage}, +% which is the package doing the testing. +% \begin{sourceverb} +% Package mypackage Warning: A definition has changed: % (mypackage) \textcolor -% (mypackage) E1E2B5A908AA1BCDDF6BEA038596A381 +% (mypackage) (E1E2B5A908AA1BCDDF6BEA038596A381) % (mypackage) on input line 465. - -% Package mypackage Warning: Something may fail. A definition has changed: +% \end{sourceverb} +% \item Verifying \cs{rotatebox} would also issue a warning from \pkg{mypackage}, +% but also mention the package being tested, \pkg{graphics}. +% \begin{sourceverb} +% Package mypackage Warning: A definition has changed: % (mypackage) graphics: \rotatebox -% (mypackage) 2472999B02C97AC847128AF24C55D150 +% (mypackage) (2472999B02C97AC847128AF24C55D150) % (mypackage) on input line 466. -% -% Warning: Something may fail. A definition has changed: +% \end{sourceverb} +% \item Verifying \env{tabbing} issues a separate warning +% for the begin and end sections. +% \begin{sourceverb} +% Warning: A definition has changed: % tabbing -% 1AD73B4527AD30969CF3219F2FB1306B +% (1AD73B4527AD30969CF3219F2FB1306B) % on input line 518. % -% Warning: Something may fail. A definition has changed: +% Warning: A definition has changed: % (end)tabbing -% E8326AC43EE0A6E922A20F2A798BD177 +% (E8326AC43EE0A6E922A20F2A798BD177) % on input line 518. % \end{sourceverb} +% \end{itemize} +% % -% And at the end of the compile, a summary is given: +% At the end of the compile, a summary is given: % % \begin{sourceverb} % -------------------------------- -% WARNING: Something may fail. -% Definition changed: \LaTeX -% Definition changed: FAAAC6146C9A80F46A1F029B67923851 -% Definition changed: \textcolor -% Definition changed: E1E2B5A908AA1BCDDF6BEA038596A381 -% Definition changed: graphics: \rotatebox -% Definition changed: 2472999B02C97AC847128AF24C55D150 -% Definition changed: tabbing -% Definition changed: 1AD73B4527AD30969CF3219F2FB1306B -% Definition changed: (end)tabbing -% Definition changed: E8326AC43EE0A6E922A20F2A798BD177 +% Package verifycommand Warning: Definitions have changed. +% Patches for the following macros may need to be updated. +% See the previous warnings for line numbers. +% +% Syntax: Patching pkg -> Defining pkg: Macro (checksum) +% ----- +% (verifycommand) \LaTeX +% (FAAAC6146C9A80F46A1F029B67923851) +% (verifycommand) mypackage -> \textcolor +% (E1E2B5A908AA1BCDDF6BEA038596A381) +% (verifycommand) mypackage -> graphics: \rotatebox +% (2472999B02C97AC847128AF24C55D150) +% (verifycommand) tabbing +% (1AD73B4527AD30969CF3219F2FB1306B) +% (verifycommand) (end)tabbing +% (E8326AC43EE0A6E922A20F2A798BD177) % -------------------------------- % \end{sourceverb} % @@ -558,24 +662,24 @@ pageanchor=true, % % \begin{sourceverb} % \VerifyCommand{\LaTeX}{FAAAC6146C9A80F46A1F029B67923851} -% <patch \LaTeX here> +% (patch \LaTeX here) % % \VerifyCommand[mypackage]{\textcolor} % {E1E2B5A908AA1BCDDF6BEA038596A381} -% <patch \textcolor here> +% (patch \textcolor here) % % \VerifyCommand[mypackage][graphics]{\rotatebox} % {2472999B02C97AC847128AF24C55D150} -% <patch \rotatebox here> +% (patch \rotatebox here) % % \VerifyEnvironment{tabbing} % {1AD73B4527AD30969CF3219F2FB1306B}% beginning code % {E8326AC43EE0A6E922A20F2A798BD177}% endind code -% <patch tabbing here> +% (patch tabbing here) % \end{sourceverb} % % -% \subsection{When a definition is changed} +% \subsection{When a definition has changed} % % When something being verified changes at a later time, the resulting % warning will let the user know that the patches may not work @@ -584,14 +688,97 @@ pageanchor=true, % this warning will be issued before the patch is even attempted. % % When testing many packages in bulk, a utility such as \cmds{grep} -% can report the changed definitions. -% Search the log file for ``Definition changed:''. +% can report which macros have changed. +% Search the log file for ``\texttt{(verifycommand)}''. +% +% +% \subsection{Testing for changed macros} +% \label{sec:conditionals} +% +% \changes{v1.10}{2024/06/25}{Docs: Added conditional tests.} +% +% To test to see if a macro or environment has changed, use +% \cs{IfVerifyCommand}, \cs{IfVerifyEnvironmentBegin}, +% or \cs{IfVerifyEnvironmentEnd}. +% +% Example: +% \begin{sourceverb} +% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}{123}{True}{False} +% \end{sourceverb} +% Result: \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX}{}{True}{False} +% +% Example: +% \begin{sourceverb} +% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX} +% {FAAAC6146C9A80F46A1F029B67923851} +% {True}{False} +% \end{sourceverb} +% Result: +% \IfVerifyCommand[mypackage][LaTeX kernel]{\LaTeX} +% {FAAAC6146C9A80F46A1F029B67923851} +% {True}{False} +% (Assuming \cs{LaTeX} has not actually changed since +% this manual was generated.) +% +% Example: +% \begin{sourceverb} +% \IfVerifyEnvironmentEnd[mypackage][LaTeX kernel]{tabbing} +% {E8326AC43EE0A6E922A20F2A798BD177} +% {True}{False} +% \end{sourceverb} +% Result: +% \IfVerifyEnvironmentEnd[mypackage][LaTeX kernel]{tabbing} +% {E8326AC43EE0A6E922A20F2A798BD177} +% {True}{False} +% +% If the \pkg{verifycommand} package is disabled, these tests +% will always return true. +% +% These tests do not issue warnings if the test fails, so they may +% be used to test against several possible definitions, chosing the +% appropriate patch depending on which match is found. +% +% To try to patch multiple versions of the same command, +% and issue a warning if no match is found: +% +% \begin{sourceverb} +% \TestVerifyCommands +% +% \IfVerifyCommand[mypackage][theirpackage]{\theirmacro} +% {12312312312312312321312312312312} +% {(Patch an older version of the macro.)} +% +% \IfVerifyCommand[mypackage][theirpackage]{\theirmacro} +% {45645645645645645645645645645645} +% {(Patch a newer version of the macro.)} +% +% \IfVerifyCommandPassed +% {}% One of the patches worked. +% {\VERCMDWarning{mypackage}{theirpackage}{\theirmacro}} +% \end{sourceverb} +% +% To verify several commands have not changed: +% +% \begin{sourceverb} +% \TestVerifyCommands +% +% \VerifyCommand[mypackage][theirpackage]{\firstmacro} +% {78978978978978978978978978978978} +% \VerifyCommand[mypackage][theirpackage]{\secondmacro} +% {27272727272727272727277272727272} +% \VerifyCommand[mypackage][theirpackage]{\thirdmacro} +% {84838483848384838483848384838483} +% +% \IfVerifyCommandFailed +% {Something is not correct. (Warnings have been issued above.)} +% {}% All are fine. +% \end{sourceverb} % % % \subsection{Disabling the package} % % \pkg{verifycommand} relies on knowing the internal structure of -% various kinds of definitions. It is possible that these may change some day, +% various kinds of definitions. It is possible that these may change, % causing endless warnings for that kind of definition. % Should that happen, it will be necessary to disable the \pkg{verifycommand} % package until it can be updated. @@ -601,15 +788,22 @@ pageanchor=true, % \usepackage[disable]{verifycommand} % \end{sourceverb} % +% Package warnings will stop, +% and the conditional tests will always return true. +% +% If the package is disabled, the boolean \bool{VERCMDenable} +% will be |false|. This may be used to help decide which patches +% to apply as a default. % % % ^^A To trigger the checksums to be copied into the exmaples: +% \typeout{(verifycommand): The following warnings that definitions have changed} +% \typeout{are expected, and are for demonstration purposes:} % \VerifyCommand{\LaTeX}{} % \VerifyCommand[mypackage]{\textcolor}{} % \VerifyCommand[mypackage][graphics]{\rotatebox}{} % \VerifyEnvironment{tabbing}{}{} % -% % \clearpage % % ^^A \StopEventually{\PrintChanges\PrintIndex} @@ -638,7 +832,7 @@ pageanchor=true, % \PrintChanges % \phantomsection % \label{sec:changesend} -% +% \clearpage % % ^^A The instructions for the Index of Objects: % \IndexPrologue{ @@ -719,7 +913,7 @@ pageanchor=true, % % \typeout{--------------------------------} % \typeout{The following warning that} -% \typeout{something may fail is an} +% \typeout{definitions have changed is an} % \typeout{example of the output of this} % \typeout{package, and is not evidence of} % \typeout{a problem with the verifycommand} @@ -747,16 +941,16 @@ pageanchor=true, % % Package option to disable all functions. % -% \DescribeBoolean{VERCMD@enable} Is the package enabled? +% \DescribeBoolean{VERCMDenable} Is the package enabled? % \begin{macrocode} -\newbool{VERCMD@enable} -\booltrue{VERCMD@enable} +\newbool{VERCMDenable} +\booltrue{VERCMDenable} % \end{macrocode} % % \DescribeOption{disable} Turn off all functions. % \begin{macrocode} \DeclareOption{disable}{% - \boolfalse{VERCMD@enable}% + \boolfalse{VERCMDenable}% \typeout{----}% \typeout{Package verifycommand: Turned off by option 'disable'.}% \typeout{----}% @@ -788,6 +982,8 @@ pageanchor=true, % % The \MDfive\ hash is used for \env{lateximage} filenames for \SVG\ math. % +% The default definition if no MD5 function is found. +% This will be changed below if an MD5 function is available. % \begin{macrocode} \newcommand{\VERCMD@mdfivesum}[1]{% \PackageError{verifycommand} @@ -855,27 +1051,78 @@ pageanchor=true, % \end{macrocode} % \end{macro} +% \DescribeBoolean{VERCMD@this@ltxcmd} True if this command is +% defined by \cs{NewDocumentCommand} or related. +% \begin{macrocode} +\newbool{VERCMD@this@ltxcmd} +\boolfalse{VERCMD@this@ltxcmd} +% \end{macrocode} + +% \DescribeBoolean{VERCMD@failed@ltxcmd} True if any command that failed +% was defined by \cs{NewDocumentCommand} or related. +% \begin{macrocode} +\newbool{VERCMD@failed@ltxcmd} +\boolfalse{VERCMD@failed@ltxcmd} +% \end{macrocode} + % \begin{macro}{\VERCMD@addchanged} \marg{\MDfive sum} \marg{text} \qquad Add to the list of changed definitions. +% \changes{v1.10}{2024/08/25}{Revised summary message.} +% \changes{v1.10}{2024/08/28}{Added `\texttt{*}' if \cs{NewDocumentCommand} or related is used.} % \begin{macrocode} \newcommand*{\VERCMD@addchanged}[2]{% +% \end{macrocode} +% Newline control for pretty print. +% \begin{macrocode} \ifdefempty{\VERCMD@whatchanged}% {}% {\apptocmd{\VERCMD@whatchanged}{^^J}{}{}}% - \apptocmd{\VERCMD@whatchanged}{Definition changed: #2^^J}{}{}% - \apptocmd{\VERCMD@whatchanged}{Definition changed: \space\space\space#1}{}{}% +% \end{macrocode} +% ID the message as from \pkg{verifycommand}, add the text, +% add the checksum. +% \begin{macrocode} + \apptocmd{\VERCMD@whatchanged}{% + (verifycommand)\space\space#2^^J% + \space\space\space\space\space\space\space\space\space\space% + \space\space\space\space\space\space\space\space\space(#1)% + }{}{}% +% \end{macrocode} +% Optionally add a |*| after the checksum if the command was +% defined with \cs{NewCommand} or related. +% \begin{macrocode} + \ifbool{VERCMD@this@ltxcmd}{% + \apptocmd{\VERCMD@whatchanged}{ *}{}{}% + \booltrue{VERCMD@failed@ltxcmd}% + }{}% + \boolfalse{VERCMD@this@ltxcmd}% } % \end{macrocode} % \end{macro} % When the compile is finished, print the accumulated list of changed definitions. +% \changes{v1.10}{2024/08/25}{Revised summary message.} +% ^^A *date % \begin{macrocode} -\AfterEndDocument{ +\AtEndDocument{ \ifdefempty{\VERCMD@whatchanged}{}{% \typeout{--------------------------------}% - \typeout{WARNING: Something may fail.}% - \typeout{\VERCMD@whatchanged}% - \typeout{--------------------------------}% + \typeout{Package verifycommand Warning: Definitions have changed.}% + \typeout{Patches for the following macros may need to be updated.}% + \typeout{See the previous warnings for line numbers.}% + \typeout{}% + \typeout{Syntax:\space\space Patching pkg -> Defining pkg: Macro (checksum)}% + \typeout{-----}% + \typeout{\VERCMD@whatchanged} + \typeout{-----}% + \typeout{Look for updates to these packages.} +% + \ifbool{VERCMD@failed@ltxcmd}{ + \typeout{Any of the above marked with a * may be due to changes in LaTeX internals,} + \typeout{the most recently known of which was 2023/12/01.} + \typeout{If so, look for updates for the LaTeX sytem as well.} + }{} +% + \typeout{--------------------------------} } } % \end{macrocode} @@ -895,29 +1142,33 @@ pageanchor=true, % \end{macro} -% \begin{macro}{\VERCMD@Warning} \marg{yourpackage} \marg{theirpackage} \marg{defn name} +% \begin{macro}{\VERCMDWarning} \marg{yourpackage} \marg{theirpackage} \marg{defn name} % % If no package names, print a general warning. % If package names are given, print a \cs{PackageWarning}. +% Either way, also add to the summary report. +% \changes{v1.10}{2024/08/25}{Revised warning message.} % \begin{macrocode} -\newcommand*{\VERCMD@Warning}[3]{% +\newcommand*{\VERCMDWarning}[3]{% \ifblank{#1}% {% \VERCMD@ProgWarning{% - Something may fail. A definition has changed:\MessageBreak + A definition has changed:\MessageBreak \ifblank{#2}{}{#2: }\string#3\MessageBreak - \VERCMD@temp\MessageBreak - } - \expandafter\VERCMD@addchanged\expandafter{\VERCMD@temp}{\string#3}% + (\VERCMD@temp)\MessageBreak + }% + \expandafter\VERCMD@addchanged% + \expandafter{\VERCMD@temp}{\string#3}% }% {% \PackageWarning{#1}{% - Something may fail. A definition has changed:\MessageBreak% + A definition has changed:\MessageBreak% \ifblank{#2}{}{#2: }% \string#3\MessageBreak% - \VERCMD@temp\MessageBreak% + (\VERCMD@temp)\MessageBreak% }% - \expandafter\VERCMD@addchanged\expandafter{\VERCMD@temp}{\ifblank{#2}{}{#2: }\string#3}% + \expandafter\VERCMD@addchanged% + \expandafter{\VERCMD@temp}{#1 -> \ifblank{#2}{}{#2: }\string#3}% }% } % \end{macrocode} @@ -929,19 +1180,78 @@ pageanchor=true, % \end{macrocode} % % +% % \subsection{User interface} % -% \begin{macro}{\VerifyCommand} \oarg{yourpackage} \oarg{theirpackage} +% +% \DescribeBoolean{VERCMD@passed} True if any test passed. +% \changes{v1.10}{2024/08/28}{Added test groups.} +% \begin{macrocode} +\newbool{VERCMD@passed} +% \end{macrocode} +% +% \DescribeBoolean{VERCMD@failed} True if any test failed. +% \changes{v1.10}{2024/08/28}{Added test groups.} +% \begin{macrocode} +\newbool{VERCMD@failed} +% \end{macrocode} +% +% \begin{macro}{\TestVerifyCommands} +% Starts a new set of \cs{VerifyCommand} tests, +% after which the booleans will tell if any passed and if any failed. +% \changes{v1.10}{2024/08/28}{Added test groups.} +% \begin{macrocode} +\newcommand*{\TestVerifyCommands} +{ + \boolfalse{VERCMD@passed} + \boolfalse{VERCMD@failed} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\IfVerifyCommandPassed} \marg{true} \marg{false} +% If any of the \cs{VerifyCommand} tests passed, do the |true| clause. +% If none of them passed, do the |false| clause. +% \changes{v1.10}{2024/08/28}{Added test groups.} +% \begin{macrocode} +\newcommand*{\IfVerifyCommandPassed} + {% + \ifbool{VERCMD@passed}% + {\let\VERCMD@tempa\@firstoftwo}% + {\let\VERCMD@tempa\@secondoftwo}% + \VERCMD@tempa% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\IfVerifyCommandFailed} \marg{true} \marg{false} +% If any of the \cs{VerifyCommand} tests failed, do the |true| clause. +% If none of them failed, do the |false| clause. +% \changes{v1.10}{2024/08/28}{Added test groups.} +% \begin{macrocode} +\newcommand*{\IfVerifyCommandFailed} + {% + \ifbool{VERCMD@failed}% + {\let\VERCMD@tempa\@firstoftwo}% + {\let\VERCMD@tempa\@secondoftwo}% + \VERCMD@tempa% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\IfVerifyCommand} \oarg{yourpackage} \oarg{theirpackage} % \marg{\cs{commandname}} \marg{\MDfive\ checksum} +% \marg{true} \marg{false} +% \changes{v1.10}{2024/06/25}{Added conditional tests.} % % Test for various kinds of definitions, and convert them to \MDfive\ checksums. % \begin{macrocode} -\NewDocumentCommand{\VerifyCommand}{O{} O{} m m}{% +\NewDocumentCommand{\IfVerifyCommand}{O{} O{} m m}{% % \end{macrocode} % % Only if the package is enabled: % \begin{macrocode} - \ifbool{VERCMD@enable}{% + \ifbool{VERCMDenable}{% % \end{macrocode} % % Default to an un-detected definition type: @@ -949,11 +1259,18 @@ pageanchor=true, \edef\VERCMD@temp{Unknown~definition}% % \end{macrocode} % -% For \cs{NewDocumentCommand}, the macro name is ``|\name code|'' with a space in the middle. +% Will become true if found \cs{NewDocumentCommand} or related. +% \begin{macrocode} + \boolfalse{VERCMD@this@ltxcmd} +% \end{macrocode} +% +% For \cs{NewDocumentCommand}, the macro name is ``|\name code|'' +% with a space in the middle. % \begin{macrocode} % % NewDocumentCommand: \ifcsdef{\cs_to_str:N #3~code}% {% + \booltrue{VERCMD@this@ltxcmd}% \expandafter\VERCMD@mdfive% \csname \cs_to_str:N #3~code\endcsname% }% @@ -972,7 +1289,8 @@ pageanchor=true, {% % \end{macrocode} % -% For \cs{DeclareRobustCommand}, the macro name is ``|\name |'' with a trailing space. +% For \cs{DeclareRobustCommand}, the macro name is ``|\name |'' +% with a trailing space. % \begin{macrocode} % % DeclareRobustCommand: \ifcsdef{\cs_to_str:N #3~}% @@ -983,19 +1301,24 @@ pageanchor=true, {% % \end{macrocode} % -% For \cs{newcommand} with an option, the macro name is ``|\\name|'', with two backslashes. +% For \cs{newcommand} with an option, the macro name is ``|\\name|'', +% with two backslashes. % \begin{macrocode} % % newcommand w/ option: \ifcsdef{\VERCMD@backslash\cs_to_str:N #3}% {% \expandafter\VERCMD@mdfive% - \csname \VERCMD@backslash\cs_to_str:N #3\endcsname% + \csname % + \VERCMD@backslash% + \cs_to_str:N #3% + \endcsname% }% % \end{macrocode} % % For \cs{newcommand}, the macro name is ``|\name|''. % -% If none match, the default unknown definition warning is show in place of the checksum. +% If none match, the default unknown definition warning is shown +% in place of the checksum. % \begin{macrocode} {% % % newcommand: @@ -1008,33 +1331,65 @@ pageanchor=true, }% % \end{macrocode} % -% If the checksum does not match the expected value, issue a warning. +% If the checksum matches the expected value, do the following +% |true| clause, else do the following |false| clause. +% Also track the true and false tests for \cs{IfVerifyCommandPassed} +% and \cs{IfVerifyCommandFailed}. +% \changes{v1.10}{2024/08/28}{Added test groups.} % \begin{macrocode} \ifdefstring{\VERCMD@temp}{#4}% - {}% {% - \VERCMD@Warning{#1}{#2}{#3}% + \booltrue{VERCMD@passed}% + \let\VERCMD@tempa\@firstoftwo% + }% + {% + \booltrue{VERCMD@failed}% + \let\VERCMD@tempa\@secondoftwo% }% }% if package enabled - {}% if package not enabled + {\let\VERCMD@tempa\@firstoftwo}% if package not enabled + \VERCMD@tempa% } % \end{macrocode} % \end{macro} % % -% \begin{macro}{\VerifyEnvironment} \oarg{yourpackage} \oarg{theirpackage} -% \marg{\cs{commandname}} -% \marg{begin \MDfive\ checksum} -% \marg{end \MDfive\ checksum} +% \begin{macro}{\VerifyCommand} \oarg{yourpackage} \oarg{theirpackage} +% \marg{\cs{commandname}} \marg{\MDfive\ checksum} % -% Test both the begin and end section of the environment. +% Test for various kinds of definitions, and convert them to \MDfive\ checksums. % \begin{macrocode} -\NewDocumentCommand{\VerifyEnvironment}{O{} O{} m m m}{% +\NewDocumentCommand{\VerifyCommand}{O{} O{} m m}{% + \ifblank{#1}{% #1 blank + \IfVerifyCommand{#3}{#4}{}{\VERCMDWarning{}{}{#3}}% + }% #1 blank + {% #1 given + \ifblank{#2}{% #2 blank + \IfVerifyCommand[#1]{#3}{#4}{}{\VERCMDWarning{#1}{}{#3}}% + }% #2 blank + {% #2 given + \IfVerifyCommand[#1][#2]{#3}{#4}{}{\VERCMDWarning{#1}{#2}{#3}}% + }% #2 given + }% #1 given +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\IfVerifyEnvironmentBegin} +% \oarg{yourpackage} \oarg{theirpackage} +% \marg{\cs{commandname}} +% \marg{begin \MDfive\ checksum} +% \changes{v1.10}{2024/06/25}{Added conditional tests.} +% +% Test the begin section of the environment. +% \begin{macrocode} +\NewDocumentCommand{\IfVerifyEnvironmentBegin}{O{} O{} m m}{% % \end{macrocode} % % Only if the package is enabled: % \begin{macrocode} - \ifbool{VERCMD@enable}{% + \ifbool{VERCMDenable}{% % \end{macrocode} % % Default to an un-detected definition type: @@ -1042,11 +1397,17 @@ pageanchor=true, \edef\VERCMD@temp{Unknown~definition}% % \end{macrocode} % +% Will become true if found \cs{NewDocumentCommand} or related. +% \begin{macrocode} + \boolfalse{VERCMD@this@ltxcmd} +% \end{macrocode} +% % For \cs{NewDocumentEnvironment}, the macro name is ``|\environment name code|'' with internal spaces. % \begin{macrocode} % % NewDocumentEnvironment: \ifcsdef{environment~#3~code}% {% + \booltrue{VERCMD@this@ltxcmd}% \expandafter\VERCMD@mdfive% \csname environment~#3~code\endcsname% }% @@ -1075,26 +1436,62 @@ pageanchor=true, }% % \end{macrocode} % -% If the checksum does not match the expected value, issue a warning. +% Do the first or second next argument depending on a match: +% \changes{v1.10}{2024/08/28}{Added test groups.} % \begin{macrocode} \ifdefstring{\VERCMD@temp}{#4}% - {}% {% - \VERCMD@Warning{#1}{#2}{#3}% + \booltrue{VERCMD@passed}% + \let\VERCMD@tempa\@firstoftwo% + }% + {% + \booltrue{VERCMD@failed}% + \let\VERCMD@tempa\@secondoftwo% }% % \end{macrocode} % -% Reset the default to an un-detected definition type: +% \begin{macrocode} + }% if package enabled + {\let\VERCMD@tempa\@firstoftwo}% if package not enabled + \VERCMD@tempa% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\IfVerifyEnvironmentEnd} +% \oarg{yourpackage} \oarg{theirpackage} +% \marg{\cs{commandname}} +% \marg{end \MDfive\ checksum} +% \changes{v1.10}{2024/06/25}{Added conditional tests.} +% +% Test the end section of the environment. +% \begin{macrocode} +\NewDocumentCommand{\IfVerifyEnvironmentEnd}{O{} O{} m m}{% +% \end{macrocode} +% +% Only if the package is enabled: +% \begin{macrocode} + \ifbool{VERCMDenable}{% +% \end{macrocode} +% +% Default to an un-detected definition type: % \begin{macrocode} \edef\VERCMD@temp{Unknown~definition}% % \end{macrocode} % +% Will become true if found \cs{NewDocumentCommand} or related. +% \begin{macrocode} + \boolfalse{VERCMD@this@ltxcmd} +% \end{macrocode} +% % For \cs{NewDocumentEnvironment}, the ending macro name % is ``|\environment name end aux |'', with spaces and a trailing space. % \begin{macrocode} % % end DocumentEnvironment: \ifcsdef{environment~#3~end~aux~}% {% + \booltrue{VERCMD@this@ltxcmd}% \expandafter\VERCMD@mdfive \csname environment~#3~end~aux~\endcsname% }% @@ -1113,24 +1510,134 @@ pageanchor=true, }% % \end{macrocode} % -% If the checksum does not match the expected value, issue a warning. +% Do the first or second next argument depending on a match: +% \changes{v1.10}{2024/08/28}{Added test groups.} % \begin{macrocode} - \ifdefstring{\VERCMD@temp}{#5}% - {}% + \ifdefstring{\VERCMD@temp}{#4}% + {% + \booltrue{VERCMD@passed}% + \let\VERCMD@tempa\@firstoftwo% + }% {% - \VERCMD@Warning{#1}{#2}{(end)#3}% + \booltrue{VERCMD@failed}% + \let\VERCMD@tempa\@secondoftwo% }% }% if package enabled - {}% if package not enabled + {\let\VERCMD@tempa\@firstoftwo}% if package not enabled + \VERCMD@tempa% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\VerifyEnvironment} \oarg{yourpackage} \oarg{theirpackage} +% \marg{\cs{commandname}} +% \marg{begin \MDfive\ checksum} +% \marg{end \MDfive\ checksum} +% +% Test both the begin and end section of the environment. +% \begin{macrocode} +\NewDocumentCommand{\VerifyEnvironment}{O{} O{} m m m}{% +% begin: + \ifblank{#1}{% #1 blank + \IfVerifyEnvironmentBegin{#3}{#4}% + {}% + {\VERCMDWarning{}{}{#3}}% + }% #1 blank + {% #1 given + \ifblank{#2}{% #2 blank + \IfVerifyEnvironmentBegin[#1]{#3}{#4}% + {}% + {\VERCMDWarning{#1}{}{#3}}% + }% #2 blank + {% #2 given + \IfVerifyEnvironmentBegin[#1][#2]{#3}{#4}% + {}% + {\VERCMDWarning{#1}{#2}{#3}}% + }% #2 given + }% #1 given +% end: + \ifblank{#1}{% #1 blank + \IfVerifyEnvironmentEnd{#3}{#5}% + {}% + {\VERCMDWarning{}{}{(end)#3}}% + }% #1 blank + {% #1 given + \ifblank{#2}{% #2 blank + \IfVerifyEnvironmentEnd[#1]{#3}{#5}% + {}% + {\VERCMDWarning{#1}{}{(end)#3}}% + }% #2 blank + {% #2 given + \IfVerifyEnvironmentEnd[#1][#2]{#3}{#5}% + {}% + {\VERCMDWarning{#1}{#2}{(end)#3}}% + }% #2 given + }% #1 given } % \end{macrocode} % \end{macro} % +% % \begin{macrocode} \ExplSyntaxOff % \end{macrocode} % % +% \subsection{Verify infrastructure} +% +% \changes{v1.10}{2024/08/28}{Tests low-level \cs{NewDocumentCommand} code.} +% +% The low-level infrastructure for \cs{NewDocumentCommand} and related +% may change on occasion, causing a change in the resulting code and +% a verification error for such code. +% The following is done while generating the documentation +% for the \pkg{verifycommand} package, +% and verifies the definitions of the underlying +% infrastructure and issues a warning if any has changed. +% +% In the source for the following, \filenm{ltxcmd.dtx} uses |@@| which is +% replaced by |__cmd|. +% +% (Testing silently occurs here, without adding text to the documentation.) +% +% \ExplSyntaxOn +% +% \TestVerifyCommands +% +% ^^A *checksums +% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code:Nnn} +% {0911983C176452DDE1F471783F875529} +% +% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_optimized:Nnn} +% {CC1FE1C2D4782317D9E9EB391AD7FFE4} +% +% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code_aux:Nnn} +% {6675F7AC09F310F6AB963DAA0860BD37} +% +% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_cmd_code_expandable:Nnn} +% {8EDCF2A369B6F9CE43280D9118F01383} + +% \VerifyCommand[verifycommand][LaTeX kernel]{\__cmd_declare_env_internal:nnnn} +% {7F026120EACC68911B492D09A4B0F537} +% +% \ExplSyntaxOff +% +% \IfVerifyCommandFailed +% { +% \AfterEndDocument{ +% \PackageWarningNoLine{verifycommand}{% +% The internals for LaTeX \string\NewCommand\MessageBreak% +% and related have changed.\MessageBreak% +% Update the checksums in verifycommand.dtx\MessageBreak +% at `*checksums', and research when the\MessageBreak +% internals changed and update the date\MessageBreak +% in verifycommand.dtx at `*date'% +% }% +% } +% } +% {} +% % % \clearpage % diff --git a/macros/latex/contrib/verifycommand/verifycommand.pdf b/macros/latex/contrib/verifycommand/verifycommand.pdf Binary files differindex b58e11c6c2..19accc8682 100644 --- a/macros/latex/contrib/verifycommand/verifycommand.pdf +++ b/macros/latex/contrib/verifycommand/verifycommand.pdf |