-% Tests whether an package is present in a specific version (or newer)
-% Syntax: \TestPackageVersion{<name>}{<yyyy/mm/dd>}
-% Note: This requires the package to be loaded first
-
-\newcommand{\TestPackageVersion}[2]{
- \message{^^J\prefix checking for package #1 at least as of #2...}
- \IfFileExists{#1.sty}
- {
- \@ifpackagelater{#1}{#2}{\existstrue}{\existsfalse}
- }
- {
- \existsfalse
- }
- \ifexists
- \message{yes^^J}
- \AddVariable{#1}{yes}
- \AddPackage{#1-#2}
- \else
- \message{no^^J}
- \AddVariable{#1}{no}
- \fi}
-
-
-% Test for the LaTeX version
-\newcommand{\TestLaTeXVersion}[1]{
- \message{^^J\prefix checking for LaTeX version at least as of #1...}
- \@ifl@t@r\fmtversion{#1}{\existstrue}{\existsfalse}
- \ifexists
- \message{yes^^J}
- \AddVariable{#1}{yes}
- \AddPackage{LaTeX-#1}
- \else
- \message{no^^J}
- \AddVariable{#1}{no}
- \fi}
-
+% 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}{%
+ \RequirePackage{#1}%
+ \protected@edef\package@@version{\csname ver@#1.sty\endcsname}%
+ \protected@edef\package@version{\expandafter\@parse@version\package@@version//00\@nil}%
+ }{}
+ \TestItem[#1]{#2}{package}{sty}{\AddPackage[\package@version]{#2}}{}
+}