% \iffalse meta-comment
%
% Copyright (C) 1993-2026
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
% -------------------------------------------
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
%    https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This file has the LPPL maintenance status "maintained".
%
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.txt'. See also `legal.txt' for additional
% information.
%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
% \fi
%
% \iffalse
%% File `ltxcheck.tex'.
%% Copyright (C) 1994-1997 LaTeX Project, David Carlisle
%%
% LaTeX Test File.
% ================
%
% Processing this file with a newly installed LaTeX
% will test various aspects of the installation.
%
% To typeset the comments in this file, create a small
% file ltxcheck.drv that looks like the following (without the %)
%
%    \documentclass{ltxdoc}
%    \begin{document}
%    \DocInput{ltxcheck.tex}
%    \end{document}
%
% and process `latex ltxcheck.drv'.
%
\NeedsTeXFormat{LaTeX2e}[1997/06/01]
% \fi
%
% \StopEventually{}
% \CheckSum{643}
%
% \changes{v1.0c}{1994/03/15}
%         {Add \cmd{\NeedsTeXFormat}}
% \changes{v1.0t}{1996/09/25}
%         {Move ltxcheck to separate file}
% \changes{v1.0v}{1996/11/20}
%         {lowercase filenames /1044}
% \changes{v1.1d}{2004/02/11}
%         {Remove pict2e.sty}
%
\ProvidesFile{ltxcheck.tex}[2015/03/30 v1.1d LaTeX check file (DPC)]
%
% \GetFileInfo{ltxcheck.tex}
% \title{\textsf{ltxcheck}: The \LaTeX\ test program\thanks
%   {version~\fileversion, dated \filedate}}
% \author{David Carlisle}
% \date{\filedate}
% \MaintainedByLaTeXTeam{latex}
% \maketitle
%
% This file, |ltxcheck.tex| should be run after \LaTeX\ has been
% installed. It Checks some system dependent parts of \LaTeX\ are set up
% correctly for your system, and checks that the main input files and
% fonts that \LaTeX\ uses are present and can be found by \LaTeX.
%
%    \begin{macrocode}
\makeatletter
%    \end{macrocode}
%
%    \begin{macrocode}
\typeout{^^J%
LaTeX2e installation check file^^J%
===============================}
%    \end{macrocode}
%
%    \begin{macrocode}
\typeout{^^J%
 Before running this file through LaTeX2e you should have installed^^J%
 the Standard LaTeX files in their final `system' directories.^^J%
 This file should *not* be run in a directory that contains article.cls}
%    \end{macrocode}
%
% |\pause| just slows things down so that not too much appears on the
% screen at once, or scrolls off the top.
%    \begin{macrocode}
\def\pause{%
  \typeout{}%
  \message{** Hit return to continue: }%
  \read -1  to \xxx
  \typeout{}}
%    \end{macrocode}
%
%    \begin{macrocode}
\typeout{^^J%
  After certain tests, LaTeX will pause so that you can read the^^J%
  output without it scrolling off the screen.^^J%
  When you are ready just hit <return> and LaTeX will continue.^^J%
  When LaTeX pauses, you will see a prompt like the one below.^^J^^J%
  If a test fails, a message will be displayed followed by^^J%
  an error message starting `! BAD'.^^J%
  LaTeX will quit if you try to scroll past some error messages.}
\pause
%    \end{macrocode}
%
% Check that the system has defined |\@currdir| correctly
% by writing an |.aux| file and then trying to find it again.
%    \begin{macrocode}
\typeout{^^J%
  Checking the current directory syntax^^J%
  =====================================}
%    \end{macrocode}
%
%    \begin{macrocode}
\newif\iftest\testfalse
%    \end{macrocode}
%
%    \begin{macrocode}
\ifx\@currdir\@undefined
  \typeout{^^J%
  \noexpand\@currdir is undefined !!^^J%
  Something is seriously wrong with the LaTeX2e initialisation.^^J%
  Either you have corrupted files or this is a LaTeX bug.}
  \errmessage{BAD LaTeX2e system!!}
  \expandafter\@@end
\fi
%    \end{macrocode}
%
%    \begin{macrocode}
\ifx\@currdir\@empty
  \typeout{^^J%
  \noexpand\@currdir is defined to be empty.^^J%
  This means that LaTeX can not distinguish between a file^^J%
  aaaaa.tex^^J%
  that exists in the current directory, and  a file aaaaa.tex^^J%
  in another directory.^^J%
  It may be that this Operating System has no concept of `directory'^^J%
  in which case the setting is correct. If however it is possible to^^J%
  uniquely refer to a file then a suitable definition of
    \noexpand\@currdir^^J%
  should be added to texsys.cfg, and the format remade.}
  \pause
%    \end{macrocode}
%
%    \begin{macrocode}
\else
  \typeout{^^J%
\noexpand\@currdir is defined as
    \expandafter\strip@prefix\meaning\@currdir^^J%
  (Testing...)}
%    \end{macrocode}
%
%    \begin{macrocode}
\begingroup
\endlinechar=-1
\count@\time
\divide\count@ 60
\count2=-\count@
\multiply\count2 60
\advance\count2 \time
\edef\today{%
  \the\year/\two@digits{\the\month}/\two@digits{\the\day}:%
    \two@digits{\the\count@}:\two@digits{\the\count2}}
%    \end{macrocode}
%
%    \begin{macrocode}
  \immediate\openout15=ltxcheck.aux
  \immediate\write15{\today^^J}
  \immediate\closeout15 %
%    \end{macrocode}
%
%    \begin{macrocode}
  \openin\@inputcheck\@currdir ltxcheck.aux %
  \ifeof\@inputcheck
    \typeout{\@currdir ltxcheck.aux  not found}%
  \else
    \read\@inputcheck to \reserved@a
    \ifx\reserved@a\today
      \typeout{\@currdir ltxcheck.aux found}
      \testtrue
    \else
      \typeout{BAD: old file \reserved@a(should be \today)}%
      \testfalse
    \fi
  \fi
  \closein\@inputcheck
%    \end{macrocode}
%
%    \begin{macrocode}
  \iftest
    \endgroup
    \typeout{\noexpand \@currdir OK!}
  \else
  \endgroup
%    \end{macrocode}
%
%    \begin{macrocode}
  \typeout{^^J%
    The LaTeX2e installation has defined \noexpand\@currdir^^J%
    to be \expandafter\strip@prefix\meaning\@currdir.^^J%
    This appears to be incorrect.^^J%
    You should add a correct definition to texsys.cfg^^J%
    and rebuild the format.}
  \errmessage{BAD LaTeX2e system!!}
  \expandafter\expandafter\expandafter\@@end
  \fi
  \pause
%    \end{macrocode}
%
%    \begin{macrocode}
\fi
%    \end{macrocode}
%
% \changes{v1.0k}{1995/09/27}
%         {Check filename parser}
% Check the filename parser can at least cope with a simple
% name + extension, |article.cls|.
%    \begin{macrocode}
\typeout{^^J%
  Checking the filename parser^^J%
  ============================}
%    \end{macrocode}
%
%    \begin{macrocode}
\filename@parse{article.cls}
\def\reserved@a{article}
%    \end{macrocode}
%
%    \begin{macrocode}
\testtrue
\ifx\filename@base\reserved@a
  \ifx\filename@ext\@clsextension
  \else
    \testfalse
  \fi
\else
  \testfalse
\fi
\iftest
   \typeout{filename parser OK!}\pause
\else
  \typeout{^^J%
    The LaTeX2e installation has defined \noexpand\filename@parse.^^J%
    This appears to be incorrect.^^J%
    You should remove the incorrect definition from texsys.cfg^^J%
    and rebuild the format.}
  \errmessage{BAD LaTeX2e system!!}
  \expandafter\expandafter\expandafter\@@end
\fi
%
%    \end{macrocode}
%
% Check the input path by looking for |article.cls|. If |article.cls|
% is in the current directory it would be found anyway, so first check
% it is not there.
%    \begin{macrocode}
\typeout{^^J%
  Checking the input path^^J%
  =======================^^J}
%    \end{macrocode}
%
%    \begin{macrocode}
\begingroup
\let\input@path\@undefined
\ifx\@currdir\@empty\else
  \IfFileExists{\@currdir article.cls}
   {\typeout{%
      article.cls appears to be in current directory!^^J^^J%
      If this is the case, install article.cls into a^^J%
      `standard input directory'^^J%
      and copy ltxcheck.tex to another directory before^^J%
      processing with LaTeX.^^J%
      ^^J%
      If article.cls is not in the current directory,^^J%
      then you need to edit texsys.cfg.^^J%
      Read the comments in that file. If nothing else works, add:^^J%
      \string\let\string\@currdir\string\@empty^^J}%
    \errhelp{Move files, or edit texsys.cfg}
    \def\ArticleClassFoundInCurrentDirectory{%
      This file should not be run in a `standard input directory'}
    \errmessage{BAD: \ArticleClassFoundInCurrentDirectory}}
    {}
\fi
\endgroup
%    \end{macrocode}
%
%    \begin{macrocode}
\IfFileExists{article.cls}
  {\typeout{input path OK!}}
  {\typeout{^^J%
     LaTeX claims that article.cls is not on the system.^^J%
     Either LaTeX has been incorrectly installed, or the
     \noexpand\input@path^^J%
     is incorrect. A correct definition should be added to^^J%
     texsys.cfg, and the format remade.}
   \pause
   \typeout{^^J%
     Typical definitions of \noexpand\input@path include:^^J^^J%
     \string\let\string\input@path=\noexpand\@undefined
      (the default definition)^^J^^J%
     \string\def\string\input@path{\@percentchar^^J
       {/usr/lib/tex/inputs/} {/usr/local/lib/tex/inputs/} }^^J^^J%
     \string\def\string\input@path{\@percentchar^^J
       {c:/tex/inputs/} {a:/} }^^J^^J%
     \string\def\string\input@path{\@percentchar^^J
       {tex_inputs:} {SOMEDISK:[SOMEWHERE.TEX.INPUTS]} }^^J}%
   \pause
   \typeout{^^J%
     Note that \noexpand\input@path should be undefined
       unless your^^J%
     TeX installation does not make
       \noexpand\openin and \noexpand\input^^J%
     search the same directories.^^J%
     If \noexpand\input@path is defined, entries should be^^J%
     in the same syntax as \noexpand\@currdir^^J%
     ie full directory names that may be concatenated with the^^J%
     basename (note the final / and ] in the above examples).^^J%
     Some systems may need more complicated settings.^^J%
     See texsys.cfg for more examples.^^J%
    ! BAD \noexpand\input@path!!}
   \@@end}%
\pause
%    \end{macrocode}
%
% For versions prior to \TeX3 complain to the installer. (Although
% \LaTeX\ will work with these old \TeX\ versions).
% For versions between 3 and 3.14 check that \LaTeX\ is using the
% work-around for the |^^J| in |\message| bug.
%    \begin{macrocode}
\typeout{^^J%
  Checking the TeX version^^J%
  ========================}
%    \end{macrocode}
%
% \changes{v0.2j}{1994/02/25}
%         {\cs{noboundary} is \cs{relax} not undef in TeX2 (initialised
%         in 2e format)}
%    \begin{macrocode}
\dimen@\ifx\@TeXversion\@undefined4\else\@TeXversion\fi\p@%
\ifx\noboundary\relax
  \typeout{^^J%
    This is TeX 2. You will not be able to use all the new features^^J%
    of LaTeX2e with such an old TeX.^^J%
    The current version (1995/12/11) is TeX 3.14159.^^J%
    Consider upgrading your TeX.}
  \ifdim\dimen@<3\p@\else
     \errhelp{Check that texsys.cfg has not defined \@TeXversion}
     \def\OldTeX{%
       BAD: \noexpand\@TeXversion is incorrect: \meaning\@TeXversion}
     \errmessage{\OldTeX}
  \fi
\else
%    \end{macrocode}
%
% \changes{v1.0h}{1994/10/11}
%         {Check for TeX3.141}
%    \begin{macrocode}
    \ifdim\dimen@>3.14\p@
      \typeout{This appears to be a recent version of TeX!^^J%
       If the following `lines' all appear on the same line,^^J%
       separated by \string^\string^J %
       then there has been an incorrect installation.}
    \else
      \typeout{^^J%
       This appears to be a TeX between 3.0 and 3.14^^J%
       but the current version (1995/12/11) is TeX 3.14159^^J%
       consider upgrading your TeX.^^J%
       The following `lines' will appear on the same line,^^J%
       separated by \string^\string^J;^^J%
       the same problem may affect other messages from LaTeX.}
     \fi
%    \end{macrocode}
%
%    \begin{macrocode}
\message{line1^^Jline2^^Jline3}
\pause
%    \end{macrocode}
%
%    \begin{macrocode}
\fi
%    \end{macrocode}
%
%
% To check that the \LaTeX\ fonts have been installed, the well known
% trick of going into |\batchmode|, and testing for |\nullfont| is used.
% Not all fonts are tested, just a representative sample.
%    \begin{macrocode}
\typeout{^^J%
  Checking fonts^^J%
  =====================================}
%    \end{macrocode}
% \changes{v1.0h}{1994/10/11}
%         {Check for fonts}
%    \begin{macrocode}
\def\checkfont#1{%
  \batchmode
  \font\test=#1\relax
  \errorstopmode
  \ifx\test\nullfont
    \typeout{\@spaces! BAD: #1.tfm not found!}
    \@tempswatrue
  \else
    \typeout{\@spaces OK: #1.tfm found}
  \fi}
%    \end{macrocode}
%
%    \begin{macrocode}
\typeout{^^JChecking Standard TeX fonts...}
\@tempswafalse
\checkfont{cmr10}
\checkfont{cmr12}
\checkfont{cmmi10}
\if@tempswa
  \errhelp{Obtain a complete standard TeX font distribution.}
  \errmessage{BAD: Missing Standard Fonts}
\else
%    \end{macrocode}
% \changes{v1.0s}{1996/07/19}
%         {Check for bad cm fonts}
%    \begin{macrocode}
    \font\testcm=cmr10
    \testcm
    \setbox0\hbox{h{}o}
    \setbox2=\hbox{ho}
    \ifdim\wd0=\wd2
     \typeout{^^J%
OK: correct Computer Modern fonts installed.}%
    \else
     \typeout{^^J%
An unauthorised and incompatible release of the^^J%
Computer Modern fonts has been installed on your system.^^J%
The official fonts may be obtained from CTAN archives in:^^J%
ctan:fonts/cm^^J%
For further details see Donald Knuth's Home page:^^J%
http://www-cs-faculty.stanford.edu/\protect~knuth/cm.html}%
  \errhelp{Re-install Computer Modern fonts, and then rebuild LaTeX}
  \errmessage{BAD Standard fonts!!}
    \fi
%    \end{macrocode}
%
%    \begin{macrocode}
  \pause
\fi
%    \end{macrocode}
%
%    \begin{macrocode}
\typeout{^^JChecking LaTeX Picture Mode fonts...}
\@tempswafalse
\checkfont{lcircle10}
\checkfont{lcirclew10}
\if@tempswa
  \@tempswafalse
  \checkfont{circle10}
  \checkfont{circlew10}
  \if@tempswa
    \typeout{^^J! BAD: You do not have the picture mode fonts:^^J%
           lcircle10 and lcirclew10}
  \else
    \typeout{^^J! BAD:%
           You have the picture mode fonts with their old names:^^J%
           circle10 and circlew10 have been renamed to^^J%
           lcircle10 and lcirclew10}
  \fi
  \errhelp{Obtain a complete standard LaTeX font distribution.}
  \errmessage{BAD: Missing LaTeX Fonts}
\else
  \pause
\fi
%    \end{macrocode}
%
%    \begin{macrocode}
\typeout{^^JChecking Extra LaTeX Computer Modern fonts...}
\@tempswafalse
\checkfont{cmmib5}
\checkfont{cmmib7}
\checkfont{cmex7}
\if@tempswa
\typeout{! BAD:^^J%
 LaTeX2e uses a few `extra' Computer Modern fonts produced by^^J%
 The American Mathematical Society.^^J%
 If you install The AMSFONTS font collection, then these, and other,^^J%
 fonts will be available to LaTeX.^^J%
 Although installing AMSFONTS is recommended, LaTeX does not require^^J%
 The full collection; you may obtain a minimal set of extra LaTeX^^J%
 fonts from any CTAN archive, in: ctan:macros/latex/fonts/}
\errhelp{Obtain LaTeX fonts or  the AMSFONTS collection.}
\errmessage{BAD: Missing LaTeX Fonts}
\else
  \pause
\fi
%    \end{macrocode}
%
% \changes{v1.0k}{1995/09/27}
%         {Check for dc and tc fonts}
% \changes{v1.1a}{1997/01/14}
%         {Check for ec fonts}
% \changes{v1.1c}{1997/06/10}
%         {Modify messages now ec released}
%    \begin{macrocode}
\typeout{^^JChecking T1 encoded Computer Modern (dc & ec) fonts...}
%    \end{macrocode}
% \changes{v1.0m}{1995/10/31}
%         {Check the T1 fd files match the  dc release.}
% This command looks for the string |dcr17<| in the font tables for
% T1/cmr. If it is there, then the T1 fd files match the old dc fonts,
% for dc release 1.1 or earlier. If not then presumably new fd files
% are being used.
%    \begin{macrocode}
\def\dcrseventeen{%
  \begingroup
    \escapechar-1
    \xdef\reserved@a{%
      \noexpand\in@
        {\expandafter\string\csname dcr17\endcsname<}%
        {\expandafter\expandafter\expandafter
           \string\csname T1/cmr/m/n\endcsname<}}%
  \endgroup
  \reserved@a}
%    \end{macrocode}
% Similarly this command looks for the string |ecrm| in the font tables
% for T1/cmr. If it is there, then the T1 fd files match the ec fonts,
% for ec release 1.0 or later.
%    \begin{macrocode}
\def\ecrm{%
  \begingroup
    \escapechar-1
    \xdef\reserved@a{%
      \noexpand\in@
        {\expandafter\string\csname ecrm\endcsname}%
        {\expandafter\expandafter\expandafter
           \string\csname T1/cmr/m/n\endcsname}}%
  \endgroup
  \reserved@a}
%    \end{macrocode}
% \changes{v1.0o}{1995/11/14}
%    {dont produce a BAD message if just one set of dc fonts is missing}
% Remove the ``! BAD'' typeout while checking for dc fonts so
% as not to worry sites with just the new ones.
%    \begin{macrocode}
\def\checkfont#1{%
  \batchmode
  \font\test=#1\relax
  \errorstopmode
  \ifx\test\nullfont
    \typeout{\@spaces\@spaces #1.tfm not found}
    \@tempswatrue
  \else
    \typeout{\@spaces OK: #1.tfm found}
  \fi}
%    \end{macrocode}
%

%    \begin{macrocode}
\@tempswafalse
\checkfont{ecrm1000}
\if@tempswa
%    \end{macrocode}
% No ec fonts. Check the state of the dc fonts.
%
%    \begin{macrocode}
\typeout{No EC fonts found, checking DC fonts...}
\@tempswafalse
\checkfont{dcr10}
\if@tempswa
  \@tempswafalse
  \checkfont{tcr1000}
  \if@tempswa
%    \end{macrocode}
% No dc fonts at all.
%    \begin{macrocode}
    \typeout{^^J%
! BAD: No ec fonts found!!^^J%
LaTeX does not require the use of ec fonts^^J%
however they are strongly recommended.^^J%
The ec fonts are available in a more natural range of sizes^^J%
and allow better hyphenation and kerning than the^^J%
old fonts such as cmr10.^^J%
These ec fonts may be obtained from CTAN archives, in:^^J%
ctan:fonts/ec}
  \else
%    \end{macrocode}
% No old dc fonts, but new ones installed.
% First check whether the latest patch has been applied.
% \changes{v1.0p}{1995/12/11}
%         {Check for dc fonts 1.2 patch level 1 (Bernd Raichle) /2003}
% \changes{v1.0q}{1996/06/03}
%         {Check for dc fonts 1.3}
% \changes{v1.1b}{1997/01/24}
%         {extra closing brace removed from this branch}
%    \begin{macrocode}
    \font\testdc=dcr1000
    \testdc
    \setbox0\hbox{A{}y}
    \setbox2=\hbox{Ay}
    \ifdim\wd0>\wd2
     \typeout{^^J%
! BAD: dc fonts release 1.3 installed^^J%
The dc fonts are now replaced by the ec fonts^^J%
These ec fonts may be obtained from CTAN archives, in:^^J%
ctan:fonts/ec.}%
    \else
     \typeout{^^J%
! BAD dc fonts 1.2 or older installed.^^J%
The dc fonts are now replaced by the ec fonts^^J%
These ec fonts may be obtained from CTAN archives, in:^^J%
ctan:fonts/ec.}%
    \fi
    \dcrseventeen
    \ifin@
      \typeout{^^J%
The fd files for the obsolete release 1.1 of the^^J%
dc fonts have been loaded into the LaTeX format.^^J%
However, you appear to have at least release 1.2 of the dc fonts.^^J%
You should generate suitable fd files by running:^^J%
latex newdc.ins^^J%
and then rebuild the format by rerunning:^^J%
initex latex.ltx}
       \errmessage{BAD LaTeX2e system!!}
     \else
       \typeout{^^J%
         DC fonts OK!}
    \fi
  \fi
\else
  \@tempswafalse
  \checkfont{tcr1000}
  \if@tempswa
%    \end{macrocode}
% Old DC fonts, but no new ones.
%    \begin{macrocode}
    \typeout{^^J%
Old dc fonts found!!^^J%
Only the original dc fonts are on your system.^^J%
Later releases of the dc/ec fonts introduced^^J%
many improvements and are strongly recommended.^^J%
They may be obtained from CTAN archives, in:^^J%
ctan:fonts/ec.}
    \pause
    \dcrseventeen
    \ifin@\else
      \typeout{^^J%
The LaTeX2e installation has installed fd files for^^J%
release 1.2 (or later) of the dc fonts.^^J%
However, you appear to have only release 1.1 of these fonts.^^J%
You must now generate the correct fd files by running:^^J%
latex olddc.ins^^J%
and then rebuild the format by rerunning:^^J%
initex latex.ltx}
      \errmessage{BAD LaTeX2e system!!}
    \fi
  \else
%    \end{macrocode}
% Both old and new DC fonts.
%    \begin{macrocode}
    \font\testdc=dcr1000
    \testdc
    \setbox0\hbox{A{}y}
    \setbox2=\hbox{Ay}
    \ifdim\wd0>\wd2
     \typeout{^^J%
! BAD: dc fonts release 1.3 installed^^J%
The dc fonts are now replaced by the ec fonts^^J%
These ec fonts may be obtained from CTAN archives, in:^^J%
ctan:fonts/ec.}%
    \else
     \typeout{^^J%
! BAD dc fonts 1.2 or older installed.^^J%
The dc fonts are now replaced by the ec fonts^^J%
These ec fonts may be obtained from CTAN archives, in:^^J%
ctan:fonts/ec.}%
    \fi
%    \end{macrocode}
%
%    \begin{macrocode}
    \dcrseventeen
    \ifin@
      \typeout{^^J%
The fd files for the obsolete release 1.1 of the^^J%
dc fonts have been loaded into the LaTeX format.^^J%
However, you appear to have at least release 1.2 of the dcfonts.^^J%
You should use generate suitable fd files by running:^^J%
latex newdc.ins^^J%
and then rebuild the format by running:^^J%
initex latex.ltx^^J%
Otherwise LaTeX will always use the older fonts.}
       \errmessage{BAD LaTeX2e system!!}
    \else
      \ecrm
      \ifin@
        \typeout{^^J%
The fd files for the new EC fonts have been loaded into^^J%
the LaTeX format.^^J%
However, these fonts are not found by LaTeX.^^J%
You should either install the ec fonts, or generate suitable^^J%
fd files for the dc fonts by running: \space latex newdc.ins^^J%
and then rebuild the format by running: \space initex latex.ltx}
       \errmessage{BAD LaTeX2e system!!}
      \else
        \typeout{^^J%
DC fonts OK!^^J%
(Both old and new dc font releases are installed.)^^J%
Note that the dc fonts are expected to be replaced by ec^^J%
in January 1997.}
      \fi
    \fi
  \fi
\fi
%    \end{macrocode}
% Else EC fonts are found, so check whether LaTeX is going to use them.
%
%    \begin{macrocode}
\else
%    \end{macrocode}
%
%    \begin{macrocode}
  \ecrm
  \ifin@
   \typeout{EC fonts OK!}
  \else
    \typeout{%
EC fonts installed but LaTeX is still using dc fonts.^^J%
You may want to run ec.ins and remake the LaTeX format}
  \fi
%    \end{macrocode}
%
%    \begin{macrocode}
\fi
\pause
%    \end{macrocode}
%
%
%
% The following files will be unpacked by running iniTeX on
% |unpack.ins|.
%
%    \begin{macrocode}
\typeout{^^JChecking LaTeX input files...^^J}
%    \end{macrocode}
%
% If the specified file is not there, add it to the list.
%    \begin{macrocode}
\def\checkfile#1{%
  \IfFileExists{#1}{}{\edef\missingfile{\missingfile#1, }}}
%    \end{macrocode}
%
% Report any missing files in the last batch tested.
%    \begin{macrocode}
\def\filereport#1#2{%
\ifx\missingfile\@empty
 \typeout{^^J%
OK: The #1 files such as #2^^J%
are accessible to LaTeX.}
\pause
\expandafter\@gobbletwo
\else
  \typeout{^^J%
! BAD: The #1 files:^^J%
\missingfile^^J%
are not accessible to LaTeX.}
\errhelp{Check the installation!}
\let\missingfile\@empty
\fi
\errmessage{Missing LaTeX files}}
%    \end{macrocode}
%
% Kernel files:
%    \begin{macrocode}
\let\missingfile\@empty
%    \end{macrocode}
%
%    \begin{macrocode}
\checkfile{hyphen.ltx}
\checkfile{fontmath.ltx}
\checkfile{fonttext.ltx}
\checkfile{preload.ltx}
\checkfile{texsys.cfg}
\checkfile{latex.ltx}
%    \end{macrocode}
%
% Don't use |\filereport| here as the message is rather different
% as the |.ltx| files don't really need to be available to \LaTeX\
% once the format is made.
%    \begin{macrocode}
\ifx\missingfile\@empty
 \typeout{^^J%
OK: The files such as latex.ltx that are used to make^^J%
the format are  accessible to LaTeX.}
\else
  \typeout{^^J%
The files:^^J%
\missingfile^^J%
that are used to make the format are not accessible to LaTeX.^^J%
This is OK, but you will need those files if you need to remake the^^J%
the format later.}
\fi
\pause
\let\missingfile\@empty
%    \end{macrocode}
%
% Class files and class options:
%    \begin{macrocode}}
\checkfile{article.cls}
\checkfile{report.cls}
\checkfile{book.cls}
\checkfile{letter.cls}
\checkfile{ltxdoc.cls}
\checkfile{proc.cls}
\checkfile{slides.cls}
\checkfile{bk10.clo}
\checkfile{bk11.clo}
\checkfile{bk12.clo}
\checkfile{size10.clo}
\checkfile{size11.clo}
\checkfile{size12.clo}
\checkfile{fleqn.clo}
\checkfile{leqno.clo}
%    \end{macrocode}
%
%    \begin{macrocode}
\filereport{main class}{article.cls}
%    \end{macrocode}
%
% Package files:
%    \begin{macrocode}
\checkfile{alltt.sty}
\checkfile{doc.sty}
\checkfile{exscale.sty}
\checkfile{flafter.sty}
\checkfile{fontenc.sty}
\checkfile{graphpap.sty}
\checkfile{ifthen.sty}
\checkfile{inputenc.sty}
\checkfile{latexsym.sty}
\checkfile{makeidx.sty}
\checkfile{newlfont.sty}
\checkfile{oldlfont.sty}
\checkfile{shortvrb.sty}
\checkfile{showidx.sty}
\checkfile{slides.sty}
\checkfile{syntonly.sty}
\checkfile{tracefnt.sty}
%    \end{macrocode}
%
%
%    \begin{macrocode}
\filereport{main package}{ifthen.sty}
%    \end{macrocode}
%
% Font definition (.fd) files:
%    \begin{macrocode}}
\checkfile{omlcmm.fd}
\checkfile{omlcmr.fd}
\checkfile{omllcmm.fd}
\checkfile{omscmr.fd}
\checkfile{omscmsy.fd}
\checkfile{omslcmsy.fd}
\checkfile{omxcmex.fd}
\checkfile{omxlcmex.fd}
\checkfile{ot1cmdh.fd}
\checkfile{ot1cmfib.fd}
\checkfile{ot1cmfr.fd}
\checkfile{ot1cmr.fd}
\checkfile{ot1cmss.fd}
\checkfile{ot1cmtt.fd}
\checkfile{ot1cmvtt.fd}
\checkfile{ot1lcmss.fd}
\checkfile{ot1lcmtt.fd}
\checkfile{t1cmdh.fd}
\checkfile{t1cmfib.fd}
\checkfile{t1cmfr.fd}
\checkfile{t1cmr.fd}
\checkfile{t1cmss.fd}
\checkfile{t1cmtt.fd}
\checkfile{t1cmvtt.fd}
\checkfile{ts1cmr.fd}
\checkfile{ts1cmss.fd}
\checkfile{ts1cmtt.fd}
\checkfile{ts1cmvtt.fd}
\checkfile{ucmr.fd}
\checkfile{ucmss.fd}
\checkfile{ucmtt.fd}
\checkfile{ullasy.fd}
\checkfile{ulasy.fd}
%    \end{macrocode}
%
%
%    \begin{macrocode}
\filereport{font definition}{t1cmr.fd}
%    \end{macrocode}
%
% Font encoding files:
%    \begin{macrocode}
\checkfile{t1enc.def}
\checkfile{ot1enc.def}
\checkfile{omsenc.def}
\checkfile{omlenc.def}
%    \end{macrocode}
%
%
%    \begin{macrocode}
\filereport{font encoding}{t1enc.def}
%    \end{macrocode}
%
% Input encoding files:
%    \begin{macrocode}
\checkfile{ascii.def}
\checkfile{latin1.def}
\checkfile{latin2.def}
\checkfile{latin3.def}
\checkfile{latin5.def}
\checkfile{cp850.def}
\checkfile{cp852.def}
\checkfile{cp865.def}
\checkfile{cp437.def}
\checkfile{cp437de.def}
\checkfile{applemac.def}
\checkfile{next.def}
\checkfile{ansinew.def}
%    \end{macrocode}
%
%    \begin{macrocode}
\filereport{input encoding}{latin1.def}
%    \end{macrocode}
%
% Compatibility files:
%    \begin{macrocode}
\checkfile{article.sty}
\checkfile{book.sty}
\checkfile{letter.sty}
\checkfile{proc.sty}
\checkfile{report.sty}
\checkfile{fleqn.sty}
\checkfile{leqno.sty}
\checkfile{openbib.sty}
\checkfile{latex209.def}
%    \end{macrocode}
%
%
%    \begin{macrocode}
\filereport{compatibility mode}{article.sty}
%    \end{macrocode}
%
% Other files:
%    \begin{macrocode}
\checkfile{bezier.sty}
\checkfile{docstrip.tex}
\checkfile{slides.def}
\checkfile{sfonts.def}
\checkfile{t1enc.sty}
%    \end{macrocode}
%
%    \begin{macrocode}
\filereport{remaining}{sfonts.def}
%    \end{macrocode}
%
%    \begin{macrocode}
\@@end
%    \end{macrocode}
%
% \Finale
%
