]> git.lyx.org Git - lyx.git/blobdiff - lib/chkconfig.ltx
Amend b8502a3ea2735c4
[lyx.git] / lib / chkconfig.ltx
index 4b78d88545206f4e4db224cd3643a6a4bfb73365..957ea22d0855a3cabc760f3d938acce2b9e72132 100644 (file)
     #6
   \fi}
 
+% Tests whether an package is present in a specific version (or newer)
+% Syntax: \TestPackageVersion{<name>}{<yyyy/mm/dd>}
+
+\newcommand{\TestPackageVersion}[2]{
+   % The actual test only works if the package has been loaded before
+   \IfFileExists{#1.sty}{\RequirePackage{#1}}{}
+   \@TestPackageVersion{#1}{#2}
+}
+
+\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}
+
+
 % Adapted from ltxcheck.tex
 \newcommand{\TestFont}[2][\default]{
   \def\default{#2}
      {}% we have already defined this one.
 }
 
-% Only for compatibility. Will be removed later.
-\let\DeclareSGMLClass=\DeclareDocBookClass
-
-\newcommand{\DeclareDocBookClass}[2][\default]{
-  \message{^^J\prefix checking for docbook\space\space class \layoutname... }
-  \@ifundefined{hasdocbook}
-    {\message{no^^J}
-     \AddLayout[#1]{\layoutname}{#2}{false}{docbook}}
-    {\message{yes^^J}
-     \AddLayout[#1]{\layoutname}{#2}{true}{}}
-}
-
 % Stolen from article.cls
 \newcommand{\today}{\ifcase\month\or
   January\or February\or March\or April\or May\or June\or
 \message{^^J\prefix checking for LaTeX version... \fmtversion}
 \AddVariable{fmtversion}{\fmtversion}
 
+%%% Crucial versions
+% This one introduces \textsubscript
+\TestLaTeXVersion{2005/12/01}
+% This one introduces path encoding changes
+\TestLaTeXVersion{2019/10/01}
+% This introduces all math and text spaces
+% previously only available via amsmath
+\TestLaTeXVersion{2020/10/01}
+% This robustifies LaTeX commands
+\TestLaTeXVersion{2021/06/01}
+% Introduction of \\DocumentMetadata
+\TestLaTeXVersion{2022/06/01}
+
 %%% And now, the list of available languages
 % The trick is to know that \the\everyjob contains something like
 %  \typeout{LaTeX2e <2001/06/01>}
 \fi
 
 % (3) handle the result
+% FIXME: As of 2016, babel does not print out the loaded hyphenation patterns to
+%        the log anymore, so this discontinues to work. For possible workarounds
+%        (with babel), see https://tex.stackexchange.com/questions/330085/
+%        Leaving this activated for the time being, since it probably still
+%        works with older distributions.
 \message{^^J\prefix checking for available hyphenation patterns... \langs}
 \AddVariable{languages}{\langs}
 
 \TestPackage{babel}
 \TestPackage{beamerposter}
 \TestPackage{biblatex}
+\TestPackage{biblatex-chicago}
 \TestPackage{bibtopic}
 \TestPackage{bicaption}
 \TestPackage{bidi}
 \TestPackage{CJK}
 \TestPackage{calc}
 \TestPackage{cancel}
+\TestPackage{changebar}
 \TestPackage{chapterbib}
 \TestPackage{chemgreek}
 \TestPackage{chessboard}
 \TestPackage{covington}
 \TestPackage{cprotect}
 \TestPackage{csquotes}
+\TestPackage{drs}
 \TestPackage[koi8-r.def]{cyrillic}
-\TestPackage{dvipost}
 \TestPackage{endnotes}
+\TestPackage{enotez}
 \TestPackage{enumitem}
 \TestPackage{environ} % required by tcolorbox
 \TestPackage{esint}
 \TestPackage{nicefrac}
 \TestPackage{nomencl}
 \TestPackage{paralist}
+\TestPackage{parskip}
 \TestPackage{pdfcolmk}
 \TestPackage{pdflscape}
 \TestPackage{polyglossia}
 \TestPackage{pdfcomment}
 \TestPackage{pdfpages}
 \TestPackage{pgf} % required by tcolorbox
+\TestPackage{pict2e}
 \TestPackage{prettyref}
 \TestPackage{preview}
 \TestPackage{refstyle}
 \TestPackage{tcolorbox}
 \TestPackage{textcomp}
 \TestPackage{thswitch}
+\TestPackage{tikz}
 \TestPackage[turkmen.ldf]{turkmen}
 \TestPackage{ulem}
 \TestPackage{undertilde}
 \TestPackage{cochineal}
 \TestPackage{courier}
 \TestPackage{crimson}
+\TestPackage{CrimsonPro}
 \TestPackage{helvet}
 \TestPackage{mathpazo}
 \TestPackage{mathpple}
 \TestPackage{biolinum}
 \TestPackage{biolinum-type1}
 %\TestFont[glic1000]{cbgreek}% for Greek % suported by LyX but too large to force downloading
+\TestPackage{cantarell}
 \TestPackage{ccfonts}
+\TestPackage{Chivo}
 \TestFont[ccr10]{concrete} % required by ccfonts
 \TestFont[eorm10]{ecc} % required by ccfonts
 \TestPackage[ot1ccr.fd]{concmath} % required by ccfonts
 \TestPackage{eulervm}
 \TestPackage{feyn}
 \TestPackage{fourier}
+\TestPackage{FiraMono}
+\TestPackage{FiraSans}
 \TestPackage{garamondx}
 \TestPackage{plex-serif}
 \TestPackage{plex-sans}
 \TestPackage{libertineMono-type1}
 \TestPackage{libertineMono}
 \TestPackage{libertineRoman}
+\TestPackage{libertinus}
+\TestPackage{libertinust1math}
 \TestPackage{lmodern}
 \TestPackage{luximono}
 \TestPackage{mathdesign}% for Roman fonts
 \TestPackage{newtxmath}
 \TestPackage[binhex.tex]{binhex} % required by newtxmath
 \TestPackage{noto}
+\TestPackage{noto-serif}
+\TestPackage{noto-sans}
+\TestPackage{noto-mono}
 \TestPackage{paratype}
 \TestFont[psyr]{symbol}
 \TestPackage{tgadventor}
 %\TestPackage{mathabx}
 %\TestPackage{mathdesign}% But see above!
 
+%%% Specific package versions
+% This introduces \babelfonts
+\TestPackageVersion{babel}{2017/11/03}
+% This introduces multiple paragraphs in multirows
+\TestPackageVersion{multirow}{2021/01/29}
+% With this version, hyperref option unicode is true
+% by default
+\TestPackageVersion{hyperref}{2021/02/04}
+% As of this version, the ucs package must be explicitly
+% loaded to get utf8x (rather than utf8) encoding tables
+\TestPackageVersion{ucs}{2022/08/07}
+
 %%% Document classes
 % The list of layout files has been put in this file here by the
 % configure script.