Improve version test in chkconfig

This now only loads the package until it has the version information
and then ends the package input.

This way, we do not need to care about package peculiarities (having
to be loaded after \documentclass or internal dependencies which, if
not given, might break the whole configuration, see #13112)
This commit is contained in:
Juergen Spitzmueller 2024-10-18 10:10:41 +02:00
parent 19fedea29a
commit d0b559a31d
2 changed files with 15 additions and 1 deletions

View File

@ -120,12 +120,22 @@
#6
\fi}
% For the version test below, we need to load the tested package.
% However, we are only interested in the version information, so
% we redefine an internal method of \ProvidesPackage to quit
% as soon as we have that information
\let\chk@pr@videpackage\@pr@videpackage
\def\@pr@videpackage[#1]{\chk@pr@videpackage[#1]\endinput}
% Tests whether an package is present and also adds the version to the package list
\newcommand{\TestPackageAddVersion}[2][\default]{
\def\default{#2}
\def\package@version{}
% The actual test only works after the package has been loaded
\IfFileExists{#1.sty}{%
% The actual test only works after the package has been loaded,
% but with the redefinition of \@pr@videpackage above, we quit
% as early as possible
\RequirePackage{#1}%
\protected@edef\package@@version{\csname ver@#1.sty\endcsname}%
\protected@edef\package@version{\expandafter\@parse@version\package@@version//00\@nil}%

View File

@ -108,3 +108,7 @@ What's new
- Fix (only informal) check for hyphenation patterns in (re)configuration.
- Improve check for package versions in (re)configuration. Particularly,
configuration does not break any longer if a sub-dependency of a
tested package is missing (bug 13112),