% This script is in fact a complete rewrite of the original chkconfig
% script. Expect bugs.
-%%% If you want to add new packages/documentclasses to be recognized,
+%%% If you want to add new packages/document classes to be recognized,
%%% read the explanation that follow and jump to the section 'Actual
%%% inspection code' below. You do not need to understand the ugly
%%% LaTeX code below to help improving chkconfig.ltx :-)
%%% This inset will automatically display a boxed "yes" or "no"
%%% depending on the availability of the package.
%%%
+%%% Since \TestPackage does not find font metric (tfm) files, there's an
+%%% additional test \TestFont[<file>]{<name>} for this purpose.
+%%%
%%% For document classes, things are even simpler, since you do not
%%% need to edit this file. Just put your layout file in some place
%%% where LyX can find it and add if you wish a description in
% script generates the needed macro calls automatically.
% \TestPackage[<file>]{<name>} tests whether <name>.sty (or <file>,
% if it is provided) exists.
-% Both commands call \AddVariable to give value 'yes' or 'no' to
+% \TestFont[<file>]{<name>} test whether <name>.tfm (or <file>.tfm,
+% if provided) exists.
+% These three commands call \AddVariable to give value 'yes' or 'no' to
% the variable chk_<name>.
%%%
\newcommand{\AddLayout}[5][\default]{
\def\default{#2}
- \immediate\write\layouts{"#2" "#1" "#3" "#4" "#5"}}
+ \@ifundefined{category@#2}{%
+ \immediate\write\layouts{"#2" "#1" "#3" "#4" "#5" ""}%
+ }{%
+ \immediate\write\layouts{"#2" "#1" "#3" "#4" "#5" "\@nameuse{category@#2}"}%
+ }
+}
+
\newcommand{\AddVariable}[2]{
\immediate\write\vars{chk_#1='#2'}}
#6
\fi}
+% Adapted from ltxcheck.tex
+\newcommand{\TestFont}[2][\default]{
+ \def\default{#2}
+ \batchmode
+ \font\test=#1\relax
+ \nonstopmode
+ \message{^^J\prefix checking for font #2 [#1]...}
+ \ifx\test\nullfont
+ \message{no^^J}
+ \AddVariable{#2}{no}
+ \@tempswatrue
+ \else
+ \message{yes^^J}
+ \AddVariable{#2}{yes}
+ \AddPackage{#2}
+ \fi}
+
\newcommand{\TestPackage}[2][\default]{
\TestItem[#1]{#2}{package}{sty}{\AddPackage{#2}}{}}
{\AddLayout[\firstelement]{\layoutname}{#2}{false}{\missingelements}}
}
+\newcommand{\DeclareCategory}[2]{
+ \@ifundefined{category@#1}
+ {\global\@namedef{category@#1}{#2}}%
+ {}% we have already defined this one.
+}
+
% Only for compatibility. Will be removed later.
\let\DeclareSGMLClass=\DeclareDocBookClass
\TestPackage{color} % this one should be there if graphics.sty is there.
\TestPackage{covington}
\TestPackage{csquotes}
+\TestPackage[koi8-r.def]{cyrillic}
\TestPackage{dvipost}
\TestPackage{endnotes}
\TestPackage{enumitem}
\TestPackage{hhline}
\TestPackage{ifthen}
\TestPackage{iftex}
+\TestPackage[iso-8859-7.def]{greek-inputenc}
\TestPackage{fancybox}
\TestPackage{fancyhdr}
\TestPackage{fixltx2e}
\TestPackage[turkmen.ldf]{turkmen}
\TestPackage{ulem}
\TestPackage{undertilde}
+\TestPackage{unicode-math}
\TestPackage{units}
\TestPackage{url}
\TestPackage{varioref}
% Other font packages
\TestPackage{ae}
\TestPackage{bera}
+\TestPackage{biolinum-type1}
+\TestPackage{cbgreek}% for Greek
\TestPackage{ccfonts}
\TestPackage{cmbright}
\TestPackage{eco}
\TestPackage{libertine-type1}
\TestPackage{lmodern}
\TestPackage{luximono}
-\TestPackage{mathdesign}% For Roman fonts
+\TestPackage{mathdesign}% for Roman fonts
\TestPackage{mdbch}
\TestPackage{mdput}
\TestPackage{mdugm}
\TestPackage{MinionPro}
+\TestFont[rzmnr]{minion2newtx}
+\TestPackage{newtxmath}
\TestPackage{tgadventor}
\TestPackage{tgbonum}
\TestPackage{tgchorus}
\TestPackage{tgpagella}
\TestPackage{tgschola}
\TestPackage{tgtermes}
+\TestFont[uopr8a]{urwclassico}
\TestPackage{tipa}
\TestPackage{tipx}
\TestPackage{tone}