summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltxcheck.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltxcheck.tex')
-rw-r--r--macros/latex-dev/base/ltxcheck.tex975
1 files changed, 975 insertions, 0 deletions
diff --git a/macros/latex-dev/base/ltxcheck.tex b/macros/latex-dev/base/ltxcheck.tex
new file mode 100644
index 0000000000..d5426aafa1
--- /dev/null
+++ b/macros/latex-dev/base/ltxcheck.tex
@@ -0,0 +1,975 @@
+% \iffalse meta-comment
+%
+% Copyright 1993-2016
+% The LaTeX3 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 2005/12/01 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 LaTeX3 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
+%
+