X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fchkconfig.ltx;h=bde9d59e4b97f435b51e1259e82eda3ce4a29a15;hb=7a79a416b8ab501ec8158afeb4171b5d92094b5e;hp=b7643703a6ea97ccedac0cb73d670015bcb9e10b;hpb=97a099b1379e041c457f9e78253f544d85f87916;p=lyx.git diff --git a/lib/chkconfig.ltx b/lib/chkconfig.ltx index b7643703a6..bde9d59e4b 100644 --- a/lib/chkconfig.ltx +++ b/lib/chkconfig.ltx @@ -75,8 +75,8 @@ \newcommand{\AddVariable}[2]{ \immediate\write\vars{chk_#1='#2'}} -\newcommand{\AddPackage}[1]{ - \immediate\write\packages{#1}} +\newcommand{\AddPackage}[2][]{ + \immediate\write\packages{#2 #1}} % Tests whether an item is present % Syntax: \TestItem[]{}{}{}{}{} @@ -120,28 +120,18 @@ #6 \fi} -% Tests whether an package is present in a specific version (or newer) -% Syntax: \TestPackageVersion{}{} -% 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} - +% 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}}{} +} % Adapted from ltxcheck.tex \newcommand{\TestFont}[2][\default]{ @@ -161,6 +151,7 @@ \fi} \newcommand{\TestPackage}[2][\default]{ + \def\default{#2} \TestItem[#1]{#2}{package}{sty}{\AddPackage{#2}}{}} \newcommand{\TestDocClass}[2]{ @@ -183,18 +174,6 @@ {}% 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 @@ -206,6 +185,8 @@ \newwrite{\layouts} \immediate\openout \layouts = textclass.lst.tmp \newwrite{\vars} \immediate\openout \vars = chkconfig.vars \newwrite{\packages} \immediate\openout \packages = packages.lst.tmp +% Version of the packages list +\immediate\write\packages{!!fileformat 2} \immediate\write\layouts{% # This file declares layouts and their associated definition files.^^J% @@ -227,6 +208,9 @@ \message{^^J\prefix checking for LaTeX version... \fmtversion} \AddVariable{fmtversion}{\fmtversion} +%%% Store the current LaTeX version +\AddPackage[\expandafter\@parse@version\fmtversion//00\@nil]{LaTeX} + %%% And now, the list of available languages % The trick is to know that \the\everyjob contains something like % \typeout{LaTeX2e <2001/06/01>} @@ -310,7 +294,7 @@ \TestPackage{array} \TestPackage{astron} \TestPackage{authordate1-4} -\TestPackage{babel} +\TestPackageAddVersion{babel} \TestPackage{beamerposter} \TestPackage{biblatex} \TestPackage{biblatex-chicago} @@ -324,6 +308,7 @@ \TestPackage{CJK} \TestPackage{calc} \TestPackage{cancel} +\TestPackage{changebar} \TestPackage{chapterbib} \TestPackage{chemgreek} \TestPackage{chessboard} @@ -335,8 +320,8 @@ \TestPackage{csquotes} \TestPackage{drs} \TestPackage[koi8-r.def]{cyrillic} -\TestPackage{dvipost} \TestPackage{endnotes} +\TestPackage{enotez} \TestPackage{enumitem} \TestPackage{environ} % required by tcolorbox \TestPackage{esint} @@ -358,7 +343,7 @@ \TestPackage[iso-8859-7.def]{greek-inputenc} \TestPackage{harvard} \TestPackage{hhline} -\TestPackage{hyperref} +\TestPackageAddVersion{hyperref} \TestPackage{hyphenat} \TestPackage{iftex} \TestPackage{ifthen} @@ -380,13 +365,13 @@ \TestPackage{mhchem} \TestPackage[mongolian.ldf]{mongolian} \TestPackage{mslapa} -\TestPackage{multirow} +\TestPackageAddVersion{multirow} \TestPackage{named} \TestPackage{natbib} \TestPackage{nicefrac} -\TestPackage{nomencl} +\TestPackageAddVersion{nomencl} \TestPackage{paralist} -\TestPackage{pdfcolmk} +\TestPackage{parskip} \TestPackage{pdflscape} \TestPackage{polyglossia} \TestPackage{pdfcomment} @@ -415,7 +400,9 @@ \TestPackage{tcolorbox} \TestPackage{textcomp} \TestPackage{thswitch} +\TestPackage{tikz} \TestPackage[turkmen.ldf]{turkmen} +\TestPackageAddVersion{ucs} \TestPackage{ulem} \TestPackage{undertilde} \TestPackage{unicode-math} @@ -460,6 +447,7 @@ \TestPackage{cochineal} \TestPackage{courier} \TestPackage{crimson} +\TestPackage{CrimsonPro} \TestPackage{helvet} \TestPackage{mathpazo} \TestPackage{mathpple} @@ -476,6 +464,7 @@ %\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 @@ -489,6 +478,8 @@ \TestPackage{eulervm} \TestPackage{feyn} \TestPackage{fourier} +\TestPackage{FiraMono} +\TestPackage{FiraSans} \TestPackage{garamondx} \TestPackage{plex-serif} \TestPackage{plex-sans} @@ -506,6 +497,8 @@ \TestPackage{libertineMono-type1} \TestPackage{libertineMono} \TestPackage{libertineRoman} +\TestPackage{libertinus} +\TestPackage{libertinust1math} \TestPackage{lmodern} \TestPackage{luximono} \TestPackage{mathdesign}% for Roman fonts @@ -556,11 +549,6 @@ %\TestPackage{mathabx} %\TestPackage{mathdesign}% But see above! -%%% Specific package versions -% This only works if the package has been loaded before -\IfFileExists{babel.sty}{\RequirePackage{babel}}{} -\TestPackageVersion{babel}{2017/11/03} - %%% Document classes % The list of layout files has been put in this file here by the % configure script.